Code: Alles auswählen.
*&---------------------------------------------------------------------*
*& Report ZMAILMATERIALANLAGE
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZMAILMATERIALANLAGE.
TABLES MARA.
DATA: OBJPACK LIKE SOPCKLSTI1 OCCURS 2 WITH HEADER LINE,
OBJHEAD LIKE SOLISTI1 OCCURS 1 WITH HEADER LINE,
OBJBIN LIKE SOLISTI1 OCCURS 10 WITH HEADER LINE,
OBJTXT LIKE SOLISTI1 OCCURS 10 WITH HEADER LINE,
RECLIST LIKE SOMLRECI1 OCCURS 5 WITH HEADER LINE,
DOC_CHNG LIKE SODOCCHGI1,
TAB_LINES LIKE SY-TABIX.
DATA: MARA1 TYPE TABLE OF MARA WITH HEADER LINE.
DATA: MATNR LIKE MARA-MATNR,
MAKTX LIKE MARA-/CMD/MATKURZTEXT,
ERNAM LIKE MARA-ERNAM.
DATA: JAHR(4),
MONAT(2),
TAG(2),
DATUM(10).
JAHR = SY-DATUM(4).
MONAT = SY-DATUM+4(2).
TAG = SY-DATUM+6(2).
CONCATENATE TAG MONAT JAHR INTO DATUM SEPARATED BY '.'.
SELECT * FROM MARA INTO TABLE MARA1
WHERE ERSDA = SY-DATUM.
* Erstellen des zu versendenden Dokuments
DOC_CHNG-OBJ_NAME = 'Materialanlage'.
CONCATENATE 'Materialanlagen vom' DATUM INTO DOC_CHNG-OBJ_DESCR .
OBJTXT = 'Materialanlage am'.
APPEND OBJTXT.
OBJTXT = ''.
APPEND OBJTXT.
OBJTXT = 'Materialnummer____Materialkurztext________________________Ersteller___'.
APPEND OBJTXT.
OBJTXT = '----------------------------------------------------------------------'.
APPEND OBJTXT.
CONCATENATE 'ARTNR' 'HERST' 'MATTXT' 'EAN' 'LTYP' 'LPL' 'BME' 'LÄNGE' 'BREITE' 'HÖHE' 'VOLUMEN' 'GEWICHT NETTO' 'GEWICHT BRUTTO' '' INTO OBJBIN SEPARATED BY ';'.
APPEND OBJBIN.
LOOP AT MARA1.
MOVE: MARA1-MATNR TO MATNR,
MARA1-/CMD/MATKURZTEXT TO MAKTX,
MARA1-ERNAM TO ERNAM.
SHIFT MATNR LEFT DELETING LEADING '0'.
CONCATENATE MATNR MAKTX ERNAM INTO OBJBIN SEPARATED BY ';'.
CONCATENATE: MATNR '__________________________________________' INTO MATNR,
MAKTX '__________________________________________' INTO MAKTX,
ERNAM '__________________________________________' INTO ERNAM.
CONCATENATE MATNR MAKTX ERNAM INTO OBJTXT.
CLEAR: MATNR, MAKTX, ERNAM.
APPEND OBJTXT.
APPEND OBJBIN.
ENDLOOP.
DESCRIBE TABLE OBJTXT LINES TAB_LINES.
READ TABLE OBJTXT INDEX TAB_LINES.
DOC_CHNG-DOC_SIZE = ( TAB_LINES - 1 ) * 255 + STRLEN( OBJTXT ).
* Erstellen des Eintrags zum komprimierten Dokument
CLEAR OBJPACK-TRANSF_BIN.
OBJPACK-HEAD_START = 1.
OBJPACK-HEAD_NUM = 0.
OBJPACK-BODY_START = 1.
OBJPACK-BODY_NUM = TAB_LINES.
OBJPACK-DOC_TYPE = 'RAW'.
APPEND OBJPACK.
* Erstellen der Anlage für das Dokument
DESCRIBE TABLE OBJBIN LINES TAB_LINES.
CONCATENATE DATUM ' Materialanlage.csv' into objhead.
APPEND OBJHEAD.
* Erstellen des Eintrags zur komprimierten Anlage
OBJPACK-TRANSF_BIN = 'X'.
OBJPACK-HEAD_START = 1.
OBJPACK-HEAD_NUM = 1.
OBJPACK-BODY_START = 1.
OBJPACK-BODY_NUM = TAB_LINES.
OBJPACK-DOC_TYPE = 'CSV'.
OBJPACK-OBJ_NAME = 'ANLAGE'.
OBJPACK-OBJ_DESCR = 'Abbildung Objekt 138'.
OBJPACK-DOC_SIZE = TAB_LINES * 255.
APPEND OBJPACK.
* Füllen der Empfängerliste
RECLIST-RECEIVER = 'TEST@TEST.com'.
RECLIST-REC_TYPE = 'U'.
APPEND RECLIST.
* Versenden des Dokuments
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
DOCUMENT_DATA = DOC_CHNG
PUT_IN_OUTBOX = 'X'
COMMIT_WORK = 'X'
TABLES
PACKING_LIST = OBJPACK
OBJECT_HEADER = OBJHEAD
CONTENTS_BIN = OBJBIN
CONTENTS_TXT = OBJTXT
RECEIVERS = RECLIST
EXCEPTIONS
TOO_MANY_RECEIVERS = 1
DOCUMENT_NOT_SENT = 2
OPERATION_NO_AUTHORIZATION = 4
OTHERS = 99.Code: Alles auswählen.
DATA: lt_string TYPE stringtab.Code: Alles auswählen.
CONCATENATE LINES OF lt_string INTO ld_string SEPARATED BY CL_ABAP_CHAR_UTILITITES=>CR_LF.Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
Adrian
Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag:
Adrian