Você está na página 1de 3

FORM mail .

CONSTANTS:
gc_tab TYPE c VALUE cl_bcs_convert=>gc_tab,
gc_crlf TYPE c VALUE cl_bcs_convert=>gc_crlf.

DATA send_request TYPE REF TO cl_bcs.


DATA document TYPE REF TO cl_document_bcs.
DATA recipient TYPE REF TO if_recipient_bcs.
DATA bcs_exception TYPE REF TO cx_bcs.

DATA: main_text TYPE bcsy_text,


wa_main_text TYPE soli.
DATA binary_content TYPE solix_tab.
DATA size TYPE so_obj_len.
DATA sent_to_all TYPE os_boolean.

DATA lv_string TYPE string.


DATA ls_t100 TYPE t100.
DATA: lv_err.
DATA : lv_subject TYPE char50.

CONCATENATE 'Vendor' gc_tab


'Purchase Organization' gc_tab
'Message' gc_crlf
INTO lv_string.

LOOP AT gt_alv INTO wa_alv WHERE status = '@08@'.

CONCATENATE lv_string
wa_alv-lifnr gc_tab
wa_alv-ekorg gc_tab
wa_alv-msg gc_crlf
INTO lv_string.

ENDLOOP.

* data lines

* --------------------------------------------------------------
* convert the text string into UTF-16LE binary data including
* byte-order-mark. Mircosoft Excel prefers these settings
* all this is done by new class cl_bcs_convert (see note 1151257)

TRY.
cl_bcs_convert=>string_to_solix(
EXPORTING
iv_string = lv_string
iv_codepage = '4103' "suitable for MS Excel, leave empty
iv_add_bom = 'X' "for other doc types
IMPORTING
et_solix = binary_content
ev_size = size ).
CATCH cx_bcs.
MESSAGE e445(so).
ENDTRY.

TRY.

* -------- create persistent send request ------------------------


send_request = cl_bcs=>create_persistent( ).

lv_subject = 'Vendor Blocking Program Result' .

CONCATENATE 'Dear User,' ' '


INTO wa_main_text-line SEPARATED BY space.
APPEND wa_main_text TO main_text.
CLEAR wa_main_text.
APPEND wa_main_text TO main_text.

CONCATENATE 'Please find attached log for vendors that were blocked
automatically.' ' '
INTO wa_main_text-line SEPARATED BY space.
APPEND wa_main_text TO main_text. "#EC NOTEXT
CLEAR wa_main_text.
APPEND wa_main_text TO main_text.

CONCATENATE 'Regards,' ' '


INTO wa_main_text-line SEPARATED BY space.
APPEND wa_main_text TO main_text.
CLEAR wa_main_text.
* APPEND wa_main_text TO main_text.

CONCATENATE 'SAP Team' ' '


INTO wa_main_text-line SEPARATED BY space.
APPEND wa_main_text TO main_text.

document = cl_document_bcs=>create_document(
i_type = 'RAW'
i_text = main_text
i_subject = lv_subject ). "#EC NOTEXT

* add the spread sheet as attachment to document object


document->add_attachment(
i_attachment_type = 'xls' "#EC NOTEXT
i_attachment_subject = lv_subject "#EC NOTEXT
i_attachment_size = size
i_att_content_hex = binary_content ).

* add document object to send request


send_request->set_document( document ).

* --------- add recipient (e-mail address) -----------------------


* create recipient object
recipient = cl_cam_address_bcs=>create_internet_address( p_mail ).

* add recipient object to send request


send_request->add_recipient( recipient ).

* ---------- send document ---------------------------------------


sent_to_all = send_request->send( i_with_error_screen = 'X' ).
COMMIT WORK.

IF sent_to_all IS INITIAL.
MESSAGE s500(sbcoms) WITH p_mail.
ELSE.
MESSAGE s022(so).
ENDIF.

* ------------ exception handling ----------------------------------


* replace this rudimentary exception handling with your own one !!!
CATCH cx_bcs INTO bcs_exception.
MESSAGE i865(so) WITH bcs_exception->error_type.
ENDTRY.

ENDFORM. " MAIL

Você também pode gostar