Video 2: ABAP For ALL - Email Functionality Part 2

Just2Share
Just2Share
5.6 هزار بار بازدید - 2 سال پیش - Explained the options like CC,
Explained the options like CC, BCC and Attachment in Email.

Program Code: (Angel brackets are removed, pls add it after copy paste)

DATA: lv_subject TYPE so_obj_des VALUE 'Email Subject',
     lv_sender  TYPE ad_smtpadr VALUE '[email protected]'.

DATA: it_email_body TYPE bcsy_text,
     it_receivers  TYPE bcsy_smtpa.

DATA: obj_docu           TYPE REF TO cl_document_bcs,
     obj_sender         TYPE REF TO if_sender_bcs,
     obj_sender_request TYPE REF TO cl_bcs,
     obj_receivers      TYPE REF TO if_recipient_bcs.

it_email_body = VALUE #( ( line = 'Configuration Fails Notification' )
                        ( line = 'Please reach on call people' ) ).

it_receivers = VALUE #( ( '[email protected]' )
                       ( '[email protected]' )
                       ( '[email protected]' ) ).

TRY .
*TRY.
   obj_docu = cl_document_bcs=create_document(
     EXPORTING
       i_type         = 'HTM'
       i_text         = it_email_body
       i_subject      = lv_subject ).

* Sender
   obj_sender = cl_cam_address_bcs=create_internet_address(
     EXPORTING
       i_address_string = lv_sender ).

* Request
   Obj_sender_request = cl_bcs=create_persistent( ).
*  Obj_sender_request =

   CALL METHOD obj_sender_request-set_sender
     EXPORTING
       i_sender = obj_sender.

* receiver
   LOOP AT it_receivers INTO DATA(wa_receivers).
     DATA(lv_index) = sy-tabix.
     obj_receivers = cl_cam_address_bcs=create_internet_address(
       EXPORTING
         i_address_string = wa_receivers )
        .
     IF lv_index EQ 1.

       CALL METHOD obj_sender_request-add_recipient
         EXPORTING
           i_recipient = obj_receivers
           i_express   = 'X'.
     ELSEIF lv_index EQ 2.
       CALL METHOD obj_sender_request-add_recipient
         EXPORTING
           i_recipient = obj_receivers
*           i_express   = 'X'
           i_copy      = 'X'.

     ELSEIF lv_index EQ 3.
       CALL METHOD obj_sender_request-add_recipient
         EXPORTING
           i_recipient  = obj_receivers
           i_express    = 'X'
           i_blind_copy = 'X'.
     ENDIF.

   ENDLOOP.

* Attachment
   DATA: lv_fname       TYPE rs38l_fnam,
         lv_binfilesize TYPE so_obj_len,
         lv_file        TYPE xstring.

   DATA: it_otfdata    TYPE ssfcrescl,
         it_otf        TYPE TABLE OF itcoo,
         it_lines      TYPE TABLE OF tline,
         it_binary_tab TYPE solix_tab.

   DATA: ls_ctrlop TYPE ssfctrlop,
         ls_outopt TYPE ssfcompop.

   ls_ctrlop-getotf    = 'X'.
   ls_ctrlop-no_dialog = 'X'.
   ls_ctrlop-preview   = space.

   "Output Options
   ls_outopt-tdnoprev  = 'X'.
   ls_outopt-tddest    = 'LOCL'.
   ls_outopt-tdnoprint = 'X'.

   CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
     EXPORTING
       formname = 'ZJI_SF_WINDOWS'
     IMPORTING
       fm_name  = lv_fname.

   CALL FUNCTION lv_fname
     EXPORTING
       control_parameters = ls_ctrlop
       output_options     = ls_outopt
     IMPORTING
       job_output_info    = it_otfdata.

   it_otf = it_otfdata-otfdata[].

   CALL FUNCTION 'CONVERT_OTF'
     EXPORTING
       format       = 'PDF'
     IMPORTING
       bin_filesize = lv_binfilesize
       bin_file     = lv_file
     TABLES
       otf          = it_otf[]
       lines        = it_lines[].

   CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
     EXPORTING
       buffer     = lv_file
     TABLES
       binary_tab = it_binary_tab.

*TRY.
   CALL METHOD obj_docu-add_attachment
     EXPORTING
       i_attachment_type    = 'PDF'
       i_attachment_subject = 'PO Document'
       i_attachment_size    = lv_binfilesize
       i_att_content_hex    = it_binary_tab.

   CALL METHOD obj_sender_request-set_document
     EXPORTING
       i_document = obj_docu.

*TRY.
   CALL METHOD obj_sender_request-send
     EXPORTING
       i_with_error_screen = 'X'
     RECEIVING
       result              = DATA(lv_sent).

   COMMIT WORK.
*  CATCH cx_send_req_bcs.
*ENDTRY.
 CATCH cx_bcs INTO DATA(obj_exception).

ENDTRY.
2 سال پیش در تاریخ 1401/04/01 منتشر شده است.
5,636 بـار بازدید شده
... بیشتر