0% found this document useful (0 votes)
85 views2 pages

Email With

Download as txt, pdf, or txt
Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1/ 2

REPORT zsend_email.

SELECT * UP TO 100 ROWS


FROM spfli
INTO TABLE @DATA(lt_spfli).

cl_salv_table=>factory( IMPORTING r_salv_table = DATA(lr_table)


CHANGING t_table = gt_na ).

DATA: lr_xldimension TYPE REF TO if_ixml_node,


lr_xlworksheet TYPE REF TO if_ixml_element.

DATA(lv_xlsx) = lr_table->to_xml( if_salv_bs_xml=>c_type_xlsx ).


DATA(lr_zip) = NEW cl_abap_zip( ).
lr_zip->load( lv_xlsx ).
lr_zip->get( EXPORTING name = 'xl/worksheets/sheet1.xml' IMPORTING content =
DATA(lv_file) ).

DATA(lr_file) = NEW cl_xml_document( ).


lr_file->parse_xstring( lv_file ).
* Row elements are under SheetData
DATA(lr_xlnode) = lr_file->find_node( 'sheetData' ).
DATA(lr_xlrows) = lr_xlnode->get_children( ).
* Create new element in the XML file
lr_xlworksheet ?= lr_file->find_node( 'worksheet' ).
DATA(lr_xlsheetpr) = cl_ixml=>create( )->create_document( )->create_element( name
= 'sheetPr' ).
DATA(lr_xloutlinepr) = cl_ixml=>create( )->create_document( )->create_element( name
= 'outlinePr' ).
lr_xlsheetpr->if_ixml_node~append_child( lr_xloutlinepr ).
lr_xloutlinepr->set_attribute( name = 'summaryBelow' value = 'false' ).
lr_xldimension ?= lr_file->find_node( 'dimension' ).
lr_xlworksheet->if_ixml_node~insert_child( new_child = lr_xlsheetpr ref_child =
lr_xldimension ).
* Create xstring and move it to XLSX
lr_file->render_2_xstring( IMPORTING stream = lv_file ).
lr_zip->delete( EXPORTING name = 'xl/worksheets/sheet1.xml' ).
lr_zip->add( EXPORTING name = 'xl/worksheets/sheet1.xml' content = lv_file ).
lv_xlsx = lr_zip->save( ).

DATA lv_size TYPE i.


DATA lt_bintab TYPE solix_tab.
DATA: main_text TYPE bcsy_text, "IT for emial body
w_text LIKE LINE OF main_text, "work area for email body
lv_subject TYPE char50 VALUE 'This is PI Doc deletion data'.
DATA: lo_sender TYPE REF TO if_sender_bcs VALUE IS INITIAL. "sender

* Convert to binary
CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
EXPORTING
buffer = lv_xlsx
IMPORTING
output_length = lv_size
TABLES
binary_tab = lt_bintab.

* create persistent send request


DATA(send_request) = cl_bcs=>create_persistent( ).
* create document object from internal table with text

w_text-line = 'This is the first line of email body'.


APPEND w_text TO main_text.
CLEAR w_text.
w_text-line = 'this is 2nd line of email body'.
APPEND w_text TO main_text.
CLEAR w_text.

DATA(document) = cl_document_bcs=>create_document(
i_type = 'RAW'
i_text = main_text
i_subject = lv_subject ).

DATA lt_att_head TYPE soli_tab.


APPEND '<(>&< )>SO_FILENAME=PI_Doc.xlsx' TO lt_att_head.

* add the spread sheet as attachment to document object


document->add_attachment(
i_attachment_type = 'xls'
i_attachment_subject = 'PI_Doc'
i_attachment_size = CONV so_obj_len( lv_size )
i_attachment_header = lt_att_head
i_att_content_hex = lt_bintab ).

send_request->set_document( document ).

lo_sender = cl_sapuser_bcs=>create( sy-uname ). "sender is the logged in user


* Set sender to send request
send_request->set_sender( i_sender = lo_sender ).

DATA(recipient) =
cl_cam_address_bcs=>create_internet_address( 'rahul820373@gmail.com' ).
send_request->add_recipient( recipient ).

DATA(lv_sent_to_all) = send_request->send( i_with_error_screen = 'X' ).


IF lv_sent_to_all = 'X'.
MESSAGE i000(8i) WITH 'Email send succesfully'.
ELSEIF lv_sent_to_all IS INITIAL.
MESSAGE i000(8i) WITH 'Email not send'.
ENDIF.
COMMIT WORK.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy