1. 程式人生 > >ABAP 傳送郵件的兩種方式

ABAP 傳送郵件的兩種方式

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.