*&---------------------------------------------------------------------*
*& Report ZPOSTEINGANG_EINKAUFSBELEG *
*& *
*&---------------------------------------------------------------------*
*& *
*& *
*&---------------------------------------------------------------------*
REPORT zposteingang_einkaufsbeleg
. *** ----------------------------------------------------------------
*** Lesen Posteingang über Tabellen
*** Keine Berechtigungsprüfung!!!!!
*** ----------------------------------------------------------------
hex_return(2) TYPE c VALUE %_cr_lf.
BEGIN OF t_test OCCURS 0,
line(255),
END OF t_test,
l_souc LIKE souc,
l_soud LIKE soud,
l_sood LIKE sood,
t_sofm LIKE sofm OCCURS 0 WITH HEADER LINE,
t_docs LIKE sood4 OCCURS 0 WITH HEADER LINE,
l_docs LIKE sood4,
t_folder_cont LIKE somt OCCURS 0 WITH HEADER LINE,
t_object_cont LIKE soli OCCURS 0 WITH HEADER LINE,
t_object_head LIKE soli OCCURS 0 WITH HEADER LINE,
t_object_para LIKE selc OCCURS 0 WITH HEADER LINE,
t_object_parb LIKE soop1 OCCURS 0 WITH HEADER LINE,
l_object_id LIKE soodk.
DATA t_phio_object
TYPE TABLE OF sdokobject
.
DATA lv_tdname
TYPE nast
-tdname
.
PARAMETERS: p_ebeln
TYPE ekko
-ebeln
DEFAULT '4500000000'.
*-- Beleginformation lesen
SELECT SINGLE tdname
FROM nast
INTO lv_tdname
WHERE objky
= p_ebeln
AND tdname
NE ' '.
* FOL28000000000004SCR41000000000001
*-- Posteingangsmappe zur weiteren Verarbeitung auswählen
l_object_id-objtp = lv_tdname(3).
l_object_id-objyr = lv_tdname+3(2).
l_object_id-objno = lv_tdname+5(12).
*-- Alle Inhalte dieser Mappe lesen
SELECT * FROM sofm
INTO TABLE t_sofm
WHERE foltp = lv_tdname(3)
AND folyr = lv_tdname+3(2)
AND folno = lv_tdname+5(12)
AND doctp = lv_tdname+17(3)
AND docyr = lv_tdname+20(2)
AND docno = lv_tdname+22.
*-- Header-Information zu dieser Mappe lesen
SELECT SINGLE * FROM sood
INTO l_sood
WHERE objtp = t_sofm-doctp
AND objyr = t_sofm-docyr
AND objno = t_sofm-docno.
*-- Überschrift ausgeben
WRITE: / l_sood
-objnam
, l_sood
-objdes
. *-- Status
*-- Dokument wurde gelesen
WRITE icon_mail_sap_read
AS ICON. *-- Dokument wurde noch nicht gelesen
WRITE icon_mail_sap_unread
AS ICON.
l_object_id-objtp = t_sofm-doctp.
l_object_id-objyr = t_sofm-docyr.
l_object_id-objno = t_sofm-docno.
*-- Dokumenteninhalt lesen (Ohne Berechtigungsprüfung)
t_object_cont
t_object_para
t_object_parb
USING l_object_id
sy-subrc.
*-- Dokument ausgeben
*-- CarriageReturn + NewLine herausfiltern
REPLACE hex_return
WITH '~' INTO t_object_cont
-line. *-- Zeilenumbruch
SPLIT t_object_cont
-line AT '~' INTO TABLE t_test
.
*&---------------------------------------------------------------------*
*& Form get_loio
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->T_SOFM text
*----------------------------------------------------------------------*
FORM get_loio
TABLES i_phio_object
STRUCTURE sdokobject
USING i_sofm
TYPE sofm
. DATA rcode
TYPE sonv
-rcode
. DATA objcont
TYPE TABLE OF soli
. DATA objhead
TYPE TABLE OF soli
. DATA objpara
LIKE selc
OCCURS 0 WITH HEADER LINE. DATA objparb
LIKE soop1
OCCURS 0 WITH HEADER LINE. DATA attach_id
TYPE soodk
.
DATA t_sofm
TYPE TABLE OF sofm
.
file_access_info TYPE TABLE OF sdokfilaci,
file_content_ascii TYPE TABLE OF sdokcntasc,
file_content_binary TYPE TABLE OF sdokcntbin.
SELECT * FROM sofm
INTO TABLE t_sofm
WHERE foltp = i_sofm-doctp AND
folyr = i_sofm-docyr AND
folno = i_sofm-docno.
*
* attach_id-objtp = 'EXT'.
* attach_id-objyr = 41.
* attach_id-objno = '000000000022'.
LOOP AT t_sofm
INTO s_sofm
.
attach_id-objtp = s_sofm-doctp.
attach_id-objyr = s_sofm-docyr.
attach_id-objno = s_sofm-docno.
* Read content of the object if desired
objcont
objpara
objparb
USING attach_id
rcode.
DATA loio_object
TYPE sdokobject
. DATA s_phio_object
TYPE sdokobject
.
DATA context TYPE TABLE OF sdokpropty
.
CALL FUNCTION 'SO_KPRO_DATA_FROM_OBJCONT_GET'
IMPORTING
loio_object = loio_object
objcont = objcont
context = context
EXCEPTIONS
missing_kpro_data = 1
OTHERS = 2.
CALL FUNCTION 'SO_LOIO_PHIO_GET'
EXPORTING
loio_object = loio_object
IMPORTING
phio_object = s_phio_object
context = context
EXCEPTIONS
kpro_inconsistency = 105
x_error = 1000
OTHERS = 1000.
APPEND s_phio_object
TO i_phio_object
.
CALL FUNCTION 'SDOK_PHIO_LOAD_CONTENT'
EXPORTING
object_id = s_phio_object
* CLIENT = SY-MANDT
* AS_IS_MODE =
* RAW_MODE =
* TEXT_AS_STREAM =
file_access_info = file_access_info
file_content_ascii = file_content_ascii
file_content_binary = file_content_binary
EXCEPTIONS
not_existing = 1
not_authorized = 2
no_content = 3
bad_storage_type = 4
OTHERS = 5.