Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- METHOD send_mail.
- DATA: lt_message_body TYPE bcsy_text,
- lt_bin TYPE solix_tab,
- lt_lines TYPE TABLE OF tline,
- ls_vbap TYPE vbap,
- ls_eina TYPE eina.
- CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
- EXPORTING
- buffer = i_pdf
- TABLES
- binary_tab = lt_bin.
- CALL FUNCTION 'READ_TEXT'
- EXPORTING
- id = 'ST'
- language = ws_print_data-s_nast-spras
- name = 'ZSD_SALES_ORDER_MAIL_CONF'
- object = 'TEXT'
- TABLES
- lines = lt_lines
- EXCEPTIONS
- id = 1
- language = 2
- name = 3
- not_found = 4
- object = 5
- reference_check = 6
- wrong_access_to_archive = 7
- OTHERS = 8.
- LOOP AT lt_lines ASSIGNING FIELD-SYMBOL(<ls_line>).
- APPEND <ls_line>-tdline TO lt_message_body.
- ENDLOOP.
- DATA: l_so(10),
- l_subject(50),
- l_name(35),
- l_so2(15).
- l_so = ws_sales_order-s_vbak-vbeln.
- l_so2 = ws_sales_order-s_vbak-auart.
- SHIFT l_so LEFT DELETING LEADING '0'.
- DATA:ls_lfa1 TYPE lfa1.
- READ TABLE ws_sales_order-t_vbap INDEX 1 INTO ls_vbap.
- *if sy-subrc = 0.
- IF ls_vbap IS NOT INITIAL AND ls_vbap-pstyv = 'YB1'
- OR ls_vbap-pstyv = 'ZTQ1'
- OR ls_vbap-pstyv = 'ZTAB'.
- DATA: ls_eban TYPE eban,
- ls_vbep TYPE vbep.
- SELECT SINGLE *
- FROM vbep
- INTO ls_vbep
- WHERE vbeln = ls_vbap-vbeln.
- IF sy-subrc = 0.
- SELECT SINGLE *
- FROM eban
- INTO ls_eban
- WHERE banfn = ls_vbep-banfn.
- IF sy-subrc = 0.
- SELECT SINGLE *
- FROM lfa1
- INTO CORRESPONDING FIELDS OF ls_lfa1
- WHERE lifnr = ls_eban-flief.
- l_name = ls_lfa1-name1.
- CONCATENATE 'SO' l_so l_name INTO l_subject SEPARATED BY space.
- ENDIF.
- ENDIF.
- ELSE.
- CONCATENATE 'SO' l_so 'Confirmation' INTO l_subject SEPARATED BY space.
- ENDIF.
- DATA(lo_document) = cl_document_bcs=>create_document( i_type = 'RAW'
- i_text = lt_message_body
- i_subject = CONV #( l_subject ) ).
- TRY.
- lo_document->add_attachment( i_attachment_type = 'PDF'
- i_attachment_subject = CONV #( l_subject )
- i_att_content_hex = lt_bin ).
- CATCH cx_document_bcs INTO DATA(lo_document_bcs).
- add_message( i_type = 'E' i_number = '010' ).
- ENDTRY.
- DATA(lo_send_request) = cl_bcs=>create_persistent( ).
- lo_send_request->set_document( lo_document ).
- DATA(lo_sender) = cl_sapuser_bcs=>create( sy-uname ).
- lo_send_request->set_sender( EXPORTING i_sender = lo_sender ).
- TRY.
- DATA(lo_recipient) = cl_cam_address_bcs=>create_internet_address( CONV #( get_email_address( ) ) ).
- lo_send_request->add_recipient( i_recipient = lo_recipient i_express = 'X' ).
- DATA(l_result) = lo_send_request->send( i_with_error_screen = ' ' ).
- * commit work.
- CATCH cx_address_bcs.
- add_message( i_type = 'E' i_number = '011' ).
- ENDTRY.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement