ABAP 傳送郵件的兩種方式
阿新 • • 發佈:2019-01-07
REPORT ZDDTEST005.
DATA: WA_ZBCFILE TYPE ZBCFILE.
DATA: IT_ZBCFILE LIKE TABLE OF WA_ZBCFILE.
DATA: BEGIN OF IT_MAILCONTENT OCCURS 0,
PLANT LIKE ZBCFILE-PLANT,
LOCATION LIKE ZBCFILE-LOCATION,
END OF IT_MAILCONTENT.
DATA: WA_MAILCONTENT LIKE IT_MAILCONTENT.
DATA: SEND_REQUEST TYPE REF TO CL_BCS,
DOCUMENT TYPE REF TO CL_DOCUMENT_BCS,
FAIL TYPE REF TO CX_BCS,
RECIPIENT TYPE REF TO IF_RECIPIENT_BCS.
DATA: LS TYPE STRING,
L_INDEX TYPE I,
L_CONTENT TYPE STRING,
MAILTO TYPE AD_SMTPADR,
MAIN_TEXT TYPE BCSY_TEXT,
TITLE TYPE SO_OBJ_DES,
MAIL_SENDER_LR TYPE REF TO IF_SENDER_BCS,
P_SENDER LIKE ADR6-SMTP_ADDR.
SELECT * FROM ZBCFILE
INTO CORRESPONDING FIELDS OF TABLE IT_ZBCFILE.
LOOP AT IT_ZBCFILE INTO WA_ZBCFILE.
WA_MAILCONTENT-PLANT = WA_ZBCFILE-PLANT.
WA_MAILCONTENT-LOCATION = WA_ZBCFILE-LOCATION.
APPEND WA_MAILCONTENT TO IT_MAILCONTENT.
ENDLOOP.
IF NOT IT_MAILCONTENT[] IS INITIAL.
SORT IT_MAILCONTENT BY PLANT LOCATION.
DELETE ADJACENT DUPLICATES FROM IT_MAILCONTENT COMPARING PLANT LOCATION.
CLEAR: WA_MAILCONTENT.
L_CONTENT = 'please maintain area mapping at TCODE¡GZPPE91¡Asome B\C FILE failed.'.
APPEND L_CONTENT TO MAIN_TEXT.
L_CONTENT = 'Plant Location'.
APPEND L_CONTENT TO MAIN_TEXT.
LOOP AT IT_MAILCONTENT INTO WA_MAILCONTENT.
CLEAR L_CONTENT.
CONCATENATE WA_MAILCONTENT-PLANT WA_MAILCONTENT-LOCATION INTO L_CONTENT SEPARATED BY ' '.
APPEND L_CONTENT TO MAIN_TEXT.
ENDLOOP.
TITLE = 'B\C FILE failed.'.
CONCATENATE SY-SYSID SY-TCODE TITLE INTO TITLE SEPARATED BY ''.
MAILTO = ' [email protected]'.
P_SENDER = '[email protected]'.
TRY.
DATA: WA_ZBCFILE TYPE ZBCFILE.
DATA: IT_ZBCFILE LIKE TABLE OF WA_ZBCFILE.
DATA: BEGIN OF IT_MAILCONTENT OCCURS 0,
PLANT LIKE ZBCFILE-PLANT,
LOCATION LIKE ZBCFILE-LOCATION,
END OF IT_MAILCONTENT.
DATA: WA_MAILCONTENT LIKE IT_MAILCONTENT.
DATA: SEND_REQUEST TYPE REF TO CL_BCS,
DOCUMENT TYPE REF TO CL_DOCUMENT_BCS,
FAIL TYPE REF TO CX_BCS,
RECIPIENT TYPE REF TO IF_RECIPIENT_BCS.
DATA: LS TYPE STRING,
L_INDEX TYPE I,
L_CONTENT TYPE STRING,
MAILTO TYPE AD_SMTPADR,
MAIN_TEXT TYPE BCSY_TEXT,
TITLE TYPE SO_OBJ_DES,
MAIL_SENDER_LR TYPE REF TO IF_SENDER_BCS,
P_SENDER LIKE ADR6-SMTP_ADDR.
SELECT * FROM ZBCFILE
INTO CORRESPONDING FIELDS OF TABLE IT_ZBCFILE.
LOOP AT IT_ZBCFILE INTO WA_ZBCFILE.
WA_MAILCONTENT-PLANT = WA_ZBCFILE-PLANT.
WA_MAILCONTENT-LOCATION = WA_ZBCFILE-LOCATION.
APPEND WA_MAILCONTENT TO IT_MAILCONTENT.
ENDLOOP.
IF NOT IT_MAILCONTENT[] IS INITIAL.
SORT IT_MAILCONTENT BY PLANT LOCATION.
DELETE ADJACENT DUPLICATES FROM IT_MAILCONTENT COMPARING PLANT LOCATION.
CLEAR: WA_MAILCONTENT.
L_CONTENT = 'please maintain area mapping at TCODE¡GZPPE91¡Asome B\C FILE failed.'.
APPEND L_CONTENT TO MAIN_TEXT.
L_CONTENT = 'Plant Location'.
APPEND L_CONTENT TO MAIN_TEXT.
LOOP AT IT_MAILCONTENT INTO WA_MAILCONTENT.
CLEAR L_CONTENT.
CONCATENATE WA_MAILCONTENT-PLANT WA_MAILCONTENT-LOCATION INTO L_CONTENT SEPARATED BY ' '.
APPEND L_CONTENT TO MAIN_TEXT.
ENDLOOP.
TITLE = 'B\C FILE failed.'.
CONCATENATE SY-SYSID SY-TCODE TITLE INTO TITLE SEPARATED BY ''.
MAILTO = '
P_SENDER = '[email protected]'.
TRY.