Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 3

Conversion of Internal Table to XL:

1. APPEND Work_Area TO Internal_Table.


2. CONCATENATE text-001 text-002 text-003
INTO lv_string SEPARATED BY lc_tabdel. ( DATA : lv_string TYPE string;
CONSTANTS: lc_tabdel TYPE c VALUE cl_abap_char_utilities=>horizontal_tab,
lc_newline TYPE c VALUE cl_abap_char_utilities=>newline.)
3. lv_string2 = lv_string.
CLEAR lv_string. (DATA : lv_string2 TYPE string).
4. LOOP AT Internal_table to Work_area.
5. CONCATENATE wa_final-001_value wa_final-002_value wa_final-003_value
INTO lv_string SEPARATED BY lc_tabdel.
6. CONCATENATE lv_string2 lv_string INTO lv_string2 SEPARATED BY lc_newline.
CLEAR Lv_string.
7. ENDLOOP.
8. XL Conversion Using "string_to_solix" Method. Use Below Code:
9. TRY.
cl_bcs_convert=>string_to_solix(
EXPORTING
iv_string = lv_string2
iv_codepage = '4103' "suitable for MS Excel, leave empty
iv_add_bom = 'X' "for other doc types
IMPORTING
et_solix = lt_binary_content
ev_size = size ).
CATCH cx_bcs.
MESSAGE e445(so) INTO lv_message .
ENDTRY.
10. PERFORM send_mail.
11. Prepare to send mail:
12. TRY.
13. lo_bcs = cl_bcs=>create_persistent( ).
14. CREATE EMAIL BODY:
15. CLEAR wa_text. REFRESH: it_text.(DATA : it_text TYPE bcsy_text,
"Table for message body
wa_text LIKE LINE OF it_text. "work area for message body).
16. wa_text-line = '<html>'.
APPEND wa_text TO it_text.
CLEAR wa_text. wa_text-line = '<body>'.
APPEND wa_text TO it_text.
CLEAR wa_text.
"FIRST LINE
CONCATENATE '<p>' 'Dear Recipient,' '</p>'
INTO wa_text-line.
APPEND wa_text TO it_text.
CLEAR wa_text.
wa_text-line = space.
APPEND wa_text TO it_text.
CLEAR wa_text.
"SECOND LINE

wa_text-line = '<p>' && | Kindly find the attached Invoice Details for the Month as
on : SY-DATE – 1. | && '</p>'.
APPEND wa_text TO it_text.
CLEAR wa_text. wa_text-line = '</body>'.
APPEND wa_text TO it_text.
CLEAR wa_text.

wa_text-line = '</html>'.
APPEND wa_text TO it_text.
CLEAR wa_text.
17. CREATE EMAIL-DOCUMENT:
18. lo_doc_bcs = cl_document_bcs=>create_document(
i_type = 'HTM'
i_text = it_text[]
i_subject = lv_subject ). "SUBJECT OF THE EMAIL(DATA: lv_subject
TYPE so_obj_des,
att_subject TYPE sood-objdes.) (CONCATENATE 'INVOICE DETAILS FOR THE
MONTH OF : ' month INTO lv_subject SEPARATED BY space.
19.
ADD ATTACHMENT TO DOCUMENT AND ADD DOCUMENT TO SEND REQUE
ST:
20. CALL METHOD lo_doc_bcs->add_attachment
EXPORTING
i_attachment_type = 'XLS'
i_attachment_size = lv_bin_filesize
i_attachment_subject = att_subject
i_att_content_hex = lt_binary_content.

* ADD DOCUMENT TO SEND REQUEST


CALL METHOD lo_bcs->set_document( lo_doc_bcs ). (CONCATENATE
'INVOICE_ FOR_THE_MONTH_AS_ON' sy-date into
att_subject SEPARATED BY '_'.
21. ADD RECIPIENT (E–MAIL ADDRESS):
22. dliname = List/Mail_ID.
TRY.
lo_recep ?= cl_distributionlist_bcs=>getu_persistent( i_dliname = dliname
i_private = '' ).
CATCH cx_address_bcs.
ENDTRY.
************************************************************************
*****
"ADD RECIPIENT WITH ITS RESPECTIVE ATTRIBUTES TO SEND REQUEST
CALL METHOD lo_bcs->add_recipient
EXPORTING
i_recipient = lo_recep.

******* SET SEND IMMEDIATELY


CALL METHOD lo_bcs->set_send_immediately
EXPORTING
i_send_immediately = 'X'.
******** SEND THE EMAIL
CALL METHOD lo_bcs->send(
EXPORTING
i_with_error_screen = 'X'
RECEIVING
result = lv_sent_to_all ).

IF lv_sent_to_all IS NOT INITIAL.


COMMIT WORK.
* WAIT UP TO 1 SECONDS.
ENDIF.
23. *-----------------& EXCEPTION HANDLING *------------------------
CATCH cx_bcs INTO lo_cx_bcx.
"APPROPRIATE EXCEPTION HANDLING
WRITE: 'EXCEPTION:', lo_cx_bcx->error_type.
24. ENDTRY. (DATA: lt_binary_content TYPE solix_tab.

DATA: lv_bin_filesize TYPE so_obj_len,


lv_sent_to_all TYPE os_boolean.

DATA: lo_bcs TYPE REF TO cl_bcs,


lo_doc_bcs TYPE REF TO cl_document_bcs,
lo_recep TYPE REF TO if_recipient_bcs,
lo_cx_bcx TYPE REF TO cx_bcs,
dliname LIKE soobjinfi1-obj_name.)

You might also like