<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Email Prg in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/email-prg/m-p/1968347#M397529</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT ZEMAIL_ATTACH .&lt;/P&gt;&lt;P&gt;TABLES: ekko.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PARAMETERS: p_email TYPE somlreci1-receiver&lt;/P&gt;&lt;P&gt;DEFAULT 'test@sapdev.co.uk'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF t_ekpo,&lt;/P&gt;&lt;P&gt;ebeln TYPE ekpo-ebeln,&lt;/P&gt;&lt;P&gt;ebelp TYPE ekpo-ebelp,&lt;/P&gt;&lt;P&gt;aedat TYPE ekpo-aedat,&lt;/P&gt;&lt;P&gt;matnr TYPE ekpo-matnr,&lt;/P&gt;&lt;P&gt;END OF t_ekpo.&lt;/P&gt;&lt;P&gt;DATA: it_ekpo TYPE STANDARD TABLE OF t_ekpo INITIAL SIZE 0,&lt;/P&gt;&lt;P&gt;wa_ekpo TYPE t_ekpo.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF t_charekpo,&lt;/P&gt;&lt;P&gt;ebeln(10) TYPE c,&lt;/P&gt;&lt;P&gt;ebelp(5) TYPE c,&lt;/P&gt;&lt;P&gt;aedat(8) TYPE c,&lt;/P&gt;&lt;P&gt;matnr(18) TYPE c,&lt;/P&gt;&lt;P&gt;END OF t_charekpo.&lt;/P&gt;&lt;P&gt;DATA: wa_charekpo TYPE t_charekpo.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: it_message TYPE STANDARD TABLE OF solisti1 INITIAL SIZE 0&lt;/P&gt;&lt;P&gt;WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA: it_attach TYPE STANDARD TABLE OF solisti1 INITIAL SIZE 0&lt;/P&gt;&lt;P&gt;WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: t_packing_list LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;t_contents LIKE solisti1 OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;t_receivers LIKE somlreci1 OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;t_attachment LIKE solisti1 OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;t_object_header LIKE solisti1 OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;w_cnt TYPE i,&lt;/P&gt;&lt;P&gt;w_sent_all(1) TYPE c,&lt;/P&gt;&lt;P&gt;w_doc_data LIKE sodocchgi1,&lt;/P&gt;&lt;P&gt;gd_error TYPE sy-subrc,&lt;/P&gt;&lt;P&gt;gd_reciever TYPE sy-subrc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;*START_OF_SELECTION&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Retrieve sample data from table ekpo&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;PERFORM data_retrieval.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate table with detaisl to be entered into .xls file&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;PERFORM build_xls_data_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;*END-OF-SELECTION&lt;/P&gt;&lt;P&gt;END-OF-SELECTION.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate message body text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;perform populate_email_message_body.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Send file by email as .xls speadsheet&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;PERFORM send_file_as_email_attachment&lt;/P&gt;&lt;P&gt;tables it_message&lt;/P&gt;&lt;P&gt;it_attach&lt;/P&gt;&lt;P&gt;using p_email&lt;/P&gt;&lt;P&gt;'Example .xls documnet attachment'&lt;/P&gt;&lt;P&gt;'XLS'&lt;/P&gt;&lt;P&gt;'filename'&lt;/P&gt;&lt;P&gt;' '&lt;/P&gt;&lt;P&gt;' '&lt;/P&gt;&lt;P&gt;' '&lt;/P&gt;&lt;P&gt;changing gd_error&lt;/P&gt;&lt;P&gt;gd_reciever.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Instructs mail send program for SAPCONNECT to send email(rsconn01)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;PERFORM initiate_mail_execute_program.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form DATA_RETRIEVAL&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Retrieve data form EKPO table and populate itab it_ekko&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM data_retrieval.&lt;/P&gt;&lt;P&gt;SELECT ebeln ebelp aedat matnr&lt;/P&gt;&lt;P&gt;UP TO 10 ROWS&lt;/P&gt;&lt;P&gt;FROM ekpo&lt;/P&gt;&lt;P&gt;INTO TABLE it_ekpo.&lt;/P&gt;&lt;P&gt;ENDFORM. " DATA_RETRIEVAL&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form BUILD_XLS_DATA_TABLE&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Build data table for .xls document&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM build_xls_data_table.&lt;/P&gt;&lt;P&gt;CONSTANTS: con_cret TYPE x VALUE '0D', "OK for non Unicode&lt;/P&gt;&lt;P&gt;con_tab TYPE x VALUE '09'. "OK for non Unicode&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*If you have Unicode check active in program attributes thnen you will&lt;/P&gt;&lt;P&gt;*need to declare constants as follows&lt;/P&gt;&lt;P&gt;*class cl_abap_char_utilities definition load.&lt;/P&gt;&lt;P&gt;*constants:&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;con_tab type c value cl_abap_char_utilities=&amp;gt;HORIZONTAL_TAB,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;con_cret type c value cl_abap_char_utilities=&amp;gt;CR_LF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CONCATENATE 'EBELN' 'EBELP' 'AEDAT' 'MATNR'&lt;/P&gt;&lt;P&gt;INTO it_attach SEPARATED BY con_tab.&lt;/P&gt;&lt;P&gt;CONCATENATE con_cret it_attach INTO it_attach.&lt;/P&gt;&lt;P&gt;APPEND it_attach.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT it_ekpo INTO wa_charekpo.&lt;/P&gt;&lt;P&gt;CONCATENATE wa_charekpo-ebeln wa_charekpo-ebelp&lt;/P&gt;&lt;P&gt;wa_charekpo-aedat wa_charekpo-matnr&lt;/P&gt;&lt;P&gt;INTO it_attach SEPARATED BY con_tab.&lt;/P&gt;&lt;P&gt;CONCATENATE con_cret it_attach INTO it_attach.&lt;/P&gt;&lt;P&gt;APPEND it_attach.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM. " BUILD_XLS_DATA_TABLE&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form SEND_FILE_AS_EMAIL_ATTACHMENT&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Send email&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM send_file_as_email_attachment tables pit_message&lt;/P&gt;&lt;P&gt;pit_attach&lt;/P&gt;&lt;P&gt;using p_email&lt;/P&gt;&lt;P&gt;p_mtitle&lt;/P&gt;&lt;P&gt;p_format&lt;/P&gt;&lt;P&gt;p_filename&lt;/P&gt;&lt;P&gt;p_attdescription&lt;/P&gt;&lt;P&gt;p_sender_address&lt;/P&gt;&lt;P&gt;p_sender_addres_type&lt;/P&gt;&lt;P&gt;changing p_error&lt;/P&gt;&lt;P&gt;p_reciever.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: ld_error TYPE sy-subrc,&lt;/P&gt;&lt;P&gt;ld_reciever TYPE sy-subrc,&lt;/P&gt;&lt;P&gt;ld_mtitle LIKE sodocchgi1-obj_descr,&lt;/P&gt;&lt;P&gt;ld_email LIKE somlreci1-receiver,&lt;/P&gt;&lt;P&gt;ld_format TYPE so_obj_tp ,&lt;/P&gt;&lt;P&gt;ld_attdescription TYPE so_obj_nam ,&lt;/P&gt;&lt;P&gt;ld_attfilename TYPE so_obj_des ,&lt;/P&gt;&lt;P&gt;ld_sender_address LIKE soextreci1-receiver,&lt;/P&gt;&lt;P&gt;ld_sender_address_type LIKE soextreci1-adr_typ,&lt;/P&gt;&lt;P&gt;ld_receiver LIKE sy-subrc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ld_email = p_email.&lt;/P&gt;&lt;P&gt;ld_mtitle = p_mtitle.&lt;/P&gt;&lt;P&gt;ld_format = p_format.&lt;/P&gt;&lt;P&gt;ld_attdescription = p_attdescription.&lt;/P&gt;&lt;P&gt;ld_attfilename = p_filename.&lt;/P&gt;&lt;P&gt;ld_sender_address = p_sender_address.&lt;/P&gt;&lt;P&gt;ld_sender_address_type = p_sender_addres_type.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fill the document data.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;w_doc_data-doc_size = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate the subject/generic message attributes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;w_doc_data-obj_langu = sy-langu.&lt;/P&gt;&lt;P&gt;w_doc_data-obj_name = 'SAPRPT'.&lt;/P&gt;&lt;P&gt;w_doc_data-obj_descr = ld_mtitle .&lt;/P&gt;&lt;P&gt;w_doc_data-sensitivty = 'F'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fill the document data and get size of attachment&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CLEAR w_doc_data.&lt;/P&gt;&lt;P&gt;READ TABLE it_attach INDEX w_cnt.&lt;/P&gt;&lt;P&gt;w_doc_data-doc_size =&lt;/P&gt;&lt;P&gt;( w_cnt - 1 ) * 255 + STRLEN( it_attach ).&lt;/P&gt;&lt;P&gt;w_doc_data-obj_langu = sy-langu.&lt;/P&gt;&lt;P&gt;w_doc_data-obj_name = 'SAPRPT'.&lt;/P&gt;&lt;P&gt;w_doc_data-obj_descr = ld_mtitle.&lt;/P&gt;&lt;P&gt;w_doc_data-sensitivty = 'F'.&lt;/P&gt;&lt;P&gt;CLEAR t_attachment.&lt;/P&gt;&lt;P&gt;REFRESH t_attachment.&lt;/P&gt;&lt;P&gt;t_attachment[] = pit_attach[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Describe the body of the message&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CLEAR t_packing_list.&lt;/P&gt;&lt;P&gt;REFRESH t_packing_list.&lt;/P&gt;&lt;P&gt;t_packing_list-transf_bin = space.&lt;/P&gt;&lt;P&gt;t_packing_list-head_start = 1.&lt;/P&gt;&lt;P&gt;t_packing_list-head_num = 0.&lt;/P&gt;&lt;P&gt;t_packing_list-body_start = 1.&lt;/P&gt;&lt;P&gt;DESCRIBE TABLE it_message LINES t_packing_list-body_num.&lt;/P&gt;&lt;P&gt;t_packing_list-doc_type = 'RAW'.&lt;/P&gt;&lt;P&gt;APPEND t_packing_list.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Create attachment notification&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;t_packing_list-transf_bin = 'X'.&lt;/P&gt;&lt;P&gt;t_packing_list-head_start = 1.&lt;/P&gt;&lt;P&gt;t_packing_list-head_num = 1.&lt;/P&gt;&lt;P&gt;t_packing_list-body_start = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DESCRIBE TABLE t_attachment LINES t_packing_list-body_num.&lt;/P&gt;&lt;P&gt;t_packing_list-doc_type = ld_format.&lt;/P&gt;&lt;P&gt;t_packing_list-obj_descr = ld_attdescription.&lt;/P&gt;&lt;P&gt;t_packing_list-obj_name = ld_attfilename.&lt;/P&gt;&lt;P&gt;t_packing_list-doc_size = t_packing_list-body_num * 255.&lt;/P&gt;&lt;P&gt;APPEND t_packing_list.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Add the recipients email address&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CLEAR t_receivers.&lt;/P&gt;&lt;P&gt;REFRESH t_receivers.&lt;/P&gt;&lt;P&gt;t_receivers-receiver = ld_email.&lt;/P&gt;&lt;P&gt;t_receivers-rec_type = 'U'.&lt;/P&gt;&lt;P&gt;t_receivers-com_type = 'INT'.&lt;/P&gt;&lt;P&gt;t_receivers-notif_del = 'X'.&lt;/P&gt;&lt;P&gt;t_receivers-notif_ndel = 'X'.&lt;/P&gt;&lt;P&gt;APPEND t_receivers.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'SO_DOCUMENT_SEND_API1'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;document_data = w_doc_data&lt;/P&gt;&lt;P&gt;put_in_outbox = 'X'&lt;/P&gt;&lt;P&gt;sender_address = ld_sender_address&lt;/P&gt;&lt;P&gt;sender_address_type = ld_sender_address_type&lt;/P&gt;&lt;P&gt;commit_work = 'X'&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;sent_to_all = w_sent_all&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;packing_list = t_packing_list&lt;/P&gt;&lt;P&gt;contents_bin = t_attachment&lt;/P&gt;&lt;P&gt;contents_txt = it_message&lt;/P&gt;&lt;P&gt;receivers = t_receivers&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;too_many_receivers = 1&lt;/P&gt;&lt;P&gt;document_not_sent = 2&lt;/P&gt;&lt;P&gt;document_type_not_exist = 3&lt;/P&gt;&lt;P&gt;operation_no_authorization = 4&lt;/P&gt;&lt;P&gt;parameter_error = 5&lt;/P&gt;&lt;P&gt;x_error = 6&lt;/P&gt;&lt;P&gt;enqueue_error = 7&lt;/P&gt;&lt;P&gt;OTHERS = 8.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate zerror return code&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ld_error = sy-subrc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate zreceiver return code&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;LOOP AT t_receivers.&lt;/P&gt;&lt;P&gt;ld_receiver = t_receivers-retrn_code.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form INITIATE_MAIL_EXECUTE_PROGRAM&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Instructs mail send program for SAPCONNECT to send email.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM initiate_mail_execute_program.&lt;/P&gt;&lt;P&gt;WAIT UP TO 2 SECONDS.&lt;/P&gt;&lt;P&gt;SUBMIT rsconn01 WITH mode = 'INT'&lt;/P&gt;&lt;P&gt;WITH output = 'X'&lt;/P&gt;&lt;P&gt;AND RETURN.&lt;/P&gt;&lt;P&gt;ENDFORM. " INITIATE_MAIL_EXECUTE_PROGRAM&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form POPULATE_EMAIL_MESSAGE_BODY&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate message body text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form populate_email_message_body.&lt;/P&gt;&lt;P&gt;REFRESH it_message.&lt;/P&gt;&lt;P&gt;it_message = 'Please find attached a list test ekpo records'.&lt;/P&gt;&lt;P&gt;APPEND it_message.&lt;/P&gt;&lt;P&gt;endform. " POPULATE_EMAIL_MESSAGE_BODY&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope this helps.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Sruthi&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 19 Feb 2007 14:25:53 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-02-19T14:25:53Z</dc:date>
    <item>
      <title>Email Prg</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/email-prg/m-p/1968339#M397521</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello gurus,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I want to write a prg which will read the data .. create an excel file and &lt;/P&gt;&lt;P&gt;attach this excel file and send a mail to xyz@yahoo.com or xyz@rediff.com&lt;/P&gt;&lt;P&gt;or xyz@clientmail.com&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;could anybody pls send me the entire source code pls.&lt;/P&gt;&lt;P&gt;Don;t worry full points guaranteed ...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Rgds,&lt;/P&gt;&lt;P&gt;Aryan&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Message was edited by: &lt;/P&gt;&lt;P&gt;        Aryan T&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 19 Feb 2007 11:21:42 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/email-prg/m-p/1968339#M397521</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-02-19T11:21:42Z</dc:date>
    </item>
    <item>
      <title>Re: Email Prg</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/email-prg/m-p/1968340#M397522</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Also, do we need to configure something before sending the mail&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 19 Feb 2007 11:28:08 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/email-prg/m-p/1968340#M397522</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-02-19T11:28:08Z</dc:date>
    </item>
    <item>
      <title>Re: Email Prg</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/email-prg/m-p/1968341#M397523</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT ZV_REPT_CUST_LEDGER_MAIL_R2&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;       line-size 160 line-count 65(6) no standard page heading.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Report    :  Sending Customer Ledger Through Mail&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;tables: kna1,&lt;/P&gt;&lt;P&gt;        knkk,&lt;/P&gt;&lt;P&gt;        knvv,&lt;/P&gt;&lt;P&gt;        bkpf,&lt;/P&gt;&lt;P&gt;        bseg,&lt;/P&gt;&lt;P&gt;        bsid,&lt;/P&gt;&lt;P&gt;        bsad,&lt;/P&gt;&lt;P&gt;        vbrp,&lt;/P&gt;&lt;P&gt;        vbrk,&lt;/P&gt;&lt;P&gt;        konv,&lt;/P&gt;&lt;P&gt;        s001,&lt;/P&gt;&lt;P&gt;        t247.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="3" type="ul"&gt;&lt;P&gt;Added for E-Mail&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;include zincusmail.&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="3" type="ul"&gt;&lt;P&gt;End.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;selection-screen: begin of block head with frame title text-t01.&lt;/P&gt;&lt;P&gt;select-options: kunnr for  kna1-kunnr obligatory.&lt;/P&gt;&lt;P&gt;parameter     : spbup like s001-spbup obligatory,&lt;/P&gt;&lt;P&gt;                gjahr like bsid-gjahr obligatory.&lt;/P&gt;&lt;P&gt;select-options: kdgrp for knvv-kdgrp NO INTERVALS no-extension.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;selection-screen end of block head.&lt;/P&gt;&lt;P&gt;***Code Added by Ranga Raju Manthena&lt;/P&gt;&lt;P&gt;selection-screen: begin of block a with frame.&lt;/P&gt;&lt;P&gt;selection-screen begin of line.&lt;/P&gt;&lt;P&gt;selection-screen comment (32) c001.&lt;/P&gt;&lt;P&gt;parameter chk1 as checkbox.&lt;/P&gt;&lt;P&gt;selection-screen end of line.&lt;/P&gt;&lt;P&gt;selection-screen begin of line.&lt;/P&gt;&lt;P&gt;selection-screen comment (32) c002.&lt;/P&gt;&lt;P&gt;parameter chk2 as checkbox.&lt;/P&gt;&lt;P&gt;selection-screen end of line.&lt;/P&gt;&lt;P&gt;selection-screen end of block a.&lt;/P&gt;&lt;P&gt;***End of Edition&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data : begin of otab occurs 100,       " For Open Items&lt;/P&gt;&lt;P&gt;       kunnr like bsid-kunnr,&lt;/P&gt;&lt;P&gt;       budat like bsid-budat,&lt;/P&gt;&lt;P&gt;       belnr like bsid-belnr,&lt;/P&gt;&lt;P&gt;       blart like bsid-blart,&lt;/P&gt;&lt;P&gt;       bldat like bsid-bldat,&lt;/P&gt;&lt;P&gt;       xblnr like bsid-xblnr,&lt;/P&gt;&lt;P&gt;       shkzg like bsid-shkzg,&lt;/P&gt;&lt;P&gt;       wrbtr like bsid-wrbtr,&lt;/P&gt;&lt;P&gt;       fkimg like vbrp-fkimg,&lt;/P&gt;&lt;P&gt;       fkart like vbrk-fkart,&lt;/P&gt;&lt;P&gt;       zvonr like vbrk-zuonr,&lt;/P&gt;&lt;P&gt;       zuonr like bseg-zuonr,&lt;/P&gt;&lt;P&gt;       kbetr like konv-kbetr,&lt;/P&gt;&lt;P&gt;       matnr like vbrp-matnr,&lt;/P&gt;&lt;P&gt;       bstat  like bkpf-bstat,&lt;/P&gt;&lt;P&gt;       knuma like kona-knuma,       " Rebate Agreement No&lt;/P&gt;&lt;P&gt;       botext like kona-botext,     " Agreement Description&lt;/P&gt;&lt;P&gt;       sgtxt  like bseg-sgtxt,      " Credit-Debit note Description&lt;/P&gt;&lt;P&gt;       datab like kona-datab,&lt;/P&gt;&lt;P&gt;       datbi like kona-datbi,&lt;/P&gt;&lt;P&gt;end of otab.&lt;/P&gt;&lt;P&gt;*Modified on 24.04.2004 By Srinivas Yerra.&lt;/P&gt;&lt;P&gt;*data ttab like standard table of otab with header line.&lt;/P&gt;&lt;P&gt;data : begin of ttab occurs 100,       " For Open Items&lt;/P&gt;&lt;P&gt;       kunnr like bsid-kunnr,&lt;/P&gt;&lt;P&gt;       budat like bsid-budat,&lt;/P&gt;&lt;P&gt;       belnr like bsid-belnr,&lt;/P&gt;&lt;P&gt;       blart like bsid-blart,&lt;/P&gt;&lt;P&gt;       bldat like bsid-bldat,&lt;/P&gt;&lt;P&gt;       xblnr like bsid-xblnr,&lt;/P&gt;&lt;P&gt;       shkzg like bsid-shkzg,&lt;/P&gt;&lt;P&gt;       wrbtr like bsid-wrbtr,&lt;/P&gt;&lt;P&gt;       fkimg like vbrp-fkimg,&lt;/P&gt;&lt;P&gt;       fkart like vbrk-fkart,&lt;/P&gt;&lt;P&gt;       zvonr like vbrk-zuonr,&lt;/P&gt;&lt;P&gt;       zuonr like bseg-zuonr,&lt;/P&gt;&lt;P&gt;       kbetr like konv-kbetr,&lt;/P&gt;&lt;P&gt;       matnr like vbrp-matnr,&lt;/P&gt;&lt;P&gt;       bstat  like bkpf-bstat,&lt;/P&gt;&lt;P&gt;       knuma like kona-knuma,       " Rebate Agreement No&lt;/P&gt;&lt;P&gt;       botext like kona-botext,     " Agreement Description&lt;/P&gt;&lt;P&gt;       sgtxt  like bseg-sgtxt,      " Credit-Debit note Description&lt;/P&gt;&lt;P&gt;       datab like kona-datab,&lt;/P&gt;&lt;P&gt;       datbi like kona-datbi,&lt;/P&gt;&lt;P&gt;end of ttab.&lt;/P&gt;&lt;P&gt;*End Of Modification.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data : begin of ctab occurs 100,       " For Closed Items&lt;/P&gt;&lt;P&gt;       kunnr like bsad-kunnr,&lt;/P&gt;&lt;P&gt;       budat like bsad-budat,&lt;/P&gt;&lt;P&gt;       belnr like bsad-belnr,&lt;/P&gt;&lt;P&gt;       blart like bsad-blart,&lt;/P&gt;&lt;P&gt;       bldat like bsad-bldat,&lt;/P&gt;&lt;P&gt;       xblnr like bsid-xblnr,&lt;/P&gt;&lt;P&gt;       shkzg like bsad-shkzg,&lt;/P&gt;&lt;P&gt;       wrbtr like bsad-wrbtr,&lt;/P&gt;&lt;P&gt;       fkimg like vbrp-fkimg,&lt;/P&gt;&lt;P&gt;       fkart like vbrk-fkart,&lt;/P&gt;&lt;P&gt;       zvonr like vbrk-zuonr,&lt;/P&gt;&lt;P&gt;       zuonr like bseg-zuonr,&lt;/P&gt;&lt;P&gt;       kbetr like konv-kbetr,&lt;/P&gt;&lt;P&gt;end of ctab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: begin of itab occurs 50,&lt;/P&gt;&lt;P&gt;      kunnr like kna1-kunnr,           " Customer Code&lt;/P&gt;&lt;P&gt;      name1 like kna1-name1,           " Customer Name&lt;/P&gt;&lt;P&gt;      ssobl like knkk-ssobl,           " Security Deposit&lt;/P&gt;&lt;P&gt;      klimk like knkk-klimk,           " Credit Limit&lt;/P&gt;&lt;P&gt;      opbal like bsid-wrbtr,           " Opening Balance&lt;/P&gt;&lt;P&gt;      clbal like bsid-wrbtr,           " Closing Balance&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Added for E-Mail&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      smtp  like adr6-smtp_addr,       " E-Mail Address&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;End&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;end of itab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: begin of stab occurs 50,&lt;/P&gt;&lt;P&gt;      kunnr like kna1-kunnr,           " Customer Code&lt;/P&gt;&lt;P&gt;      shkzg like bsid-shkzg,           " S/H Flag&lt;/P&gt;&lt;P&gt;      sdamt like bsid-wrbtr,           " Security Deposit&lt;/P&gt;&lt;P&gt;end of stab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: begin of atab occurs 50,&lt;/P&gt;&lt;P&gt;      kunnr like kna1-kunnr,           " Customer Code&lt;/P&gt;&lt;P&gt;      belnr like bsid-belnr,           " Document No&lt;/P&gt;&lt;P&gt;      wrbtr like bsid-wrbtr,           " Security Deposit&lt;/P&gt;&lt;P&gt;end of atab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: dd    type i,&lt;/P&gt;&lt;P&gt;      ddd(2),&lt;/P&gt;&lt;P&gt;      flg   type i,&lt;/P&gt;&lt;P&gt;      elg   type i,&lt;/P&gt;&lt;P&gt;      glg   type i,&lt;/P&gt;&lt;P&gt;      pgno  type i,&lt;/P&gt;&lt;P&gt;      recs  type i,&lt;/P&gt;&lt;P&gt;      month type i,&lt;/P&gt;&lt;P&gt;      jump  like sy-linct,&lt;/P&gt;&lt;P&gt;      ddate like sy-datum,&lt;/P&gt;&lt;P&gt;      sdate like sy-datum,&lt;/P&gt;&lt;P&gt;      edate like sy-datum,&lt;/P&gt;&lt;P&gt;      rdate like sy-datum,&lt;/P&gt;&lt;P&gt;      code  like kna1-kunnr,&lt;/P&gt;&lt;P&gt;      name  like kna1-name1,&lt;/P&gt;&lt;P&gt;      narr(50),&lt;/P&gt;&lt;P&gt;      qanty like vbrp-fkimg,&lt;/P&gt;&lt;P&gt;      ssobl like knkk-ssobl,&lt;/P&gt;&lt;P&gt;      klimk like knkk-klimk,&lt;/P&gt;&lt;P&gt;      csamt like bsid-wrbtr,&lt;/P&gt;&lt;P&gt;      dramt like bsid-wrbtr,&lt;/P&gt;&lt;P&gt;      cramt like bsid-wrbtr,&lt;/P&gt;&lt;P&gt;      ttamt like bsid-wrbtr,&lt;/P&gt;&lt;P&gt;      opbal like bsid-wrbtr,&lt;/P&gt;&lt;P&gt;      dpbal like bsid-wrbtr,&lt;/P&gt;&lt;P&gt;      clbal like bsid-wrbtr,&lt;/P&gt;&lt;P&gt;      augdt like bsad-augdt,&lt;/P&gt;&lt;P&gt;      aobal like bsid-wrbtr,&lt;/P&gt;&lt;P&gt;      asbal like bsid-wrbtr,&lt;/P&gt;&lt;P&gt;      ahbal like bsid-wrbtr,&lt;/P&gt;&lt;P&gt;      ahbal_h like bsid-wrbtr,&lt;/P&gt;&lt;P&gt;      ahbal_s like bsid-wrbtr,&lt;/P&gt;&lt;P&gt;      aobal_h like bsid-wrbtr,&lt;/P&gt;&lt;P&gt;      aobal_s like bsid-wrbtr,&lt;/P&gt;&lt;P&gt;      lines   like sy-linct,&lt;/P&gt;&lt;P&gt;      v_matnr(2),&lt;/P&gt;&lt;P&gt;      v_fmonth(2),&lt;/P&gt;&lt;P&gt;      v_tmonth(2),&lt;/P&gt;&lt;P&gt;      fmondes(10),&lt;/P&gt;&lt;P&gt;      tmondes(10),&lt;/P&gt;&lt;P&gt;      t_cmm type i,&lt;/P&gt;&lt;P&gt;      t_cyy type i,&lt;/P&gt;&lt;P&gt;      t_fyy type i,&lt;/P&gt;&lt;P&gt;      t_dyy type i,&lt;/P&gt;&lt;P&gt;      year(4),&lt;/P&gt;&lt;P&gt;      mon(2),&lt;/P&gt;&lt;P&gt;      date(2),&lt;/P&gt;&lt;P&gt;      year1(4),&lt;/P&gt;&lt;P&gt;      mon1(2),&lt;/P&gt;&lt;P&gt;      date1(2),&lt;/P&gt;&lt;P&gt;      br(2),&lt;/P&gt;&lt;P&gt;      qty(10),&lt;/P&gt;&lt;P&gt;      kbetr(06),&lt;/P&gt;&lt;P&gt;      tqty(10).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data : v_gjahr like bsid-gjahr,&lt;/P&gt;&lt;P&gt;       a_belnr like bsid-belnr,&lt;/P&gt;&lt;P&gt;       a_wrbtr like bsid-wrbtr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;initialization.&lt;/P&gt;&lt;P&gt;  c001 = 'For Security Deposit Information'.&lt;/P&gt;&lt;P&gt;  c002 = 'For Quarterly Report'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON spbup.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;     if not spbup is initial.&lt;/P&gt;&lt;P&gt;     IF spbup+0(4) &amp;lt; '2004'.&lt;/P&gt;&lt;P&gt;     MESSAGE I001(Zmessage).&lt;/P&gt;&lt;P&gt;     MESSAGE E001(Zmessage).&lt;/P&gt;&lt;P&gt;     ENDIF.&lt;/P&gt;&lt;P&gt;     endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; AT SELECTION-SCREEN ON gjahr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;     if not gjahr is initial.&lt;/P&gt;&lt;P&gt;     IF gjahr+0(4) &amp;lt; '2004'.&lt;/P&gt;&lt;P&gt;     MESSAGE I001(Zmessage).&lt;/P&gt;&lt;P&gt;     MESSAGE E001(Zmessage).&lt;/P&gt;&lt;P&gt;     ENDIF.&lt;/P&gt;&lt;P&gt;     endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;at selection-screen.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  t_cmm  = spbup+4(2).&lt;/P&gt;&lt;P&gt;  t_cyy = spbup(4).&lt;/P&gt;&lt;P&gt;  t_fyy = gjahr.&lt;/P&gt;&lt;P&gt;  t_dyy = t_cyy - 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if t_cmm between 04 and 12.&lt;/P&gt;&lt;P&gt;    t_cmm = t_cmm - 3.&lt;/P&gt;&lt;P&gt;  elseif t_cmm between 01 and 03.&lt;/P&gt;&lt;P&gt;    t_cmm = t_cmm + 9.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if t_cmm between 01 and 09.&lt;/P&gt;&lt;P&gt;    if t_cyy &amp;lt;&amp;gt; t_fyy.&lt;/P&gt;&lt;P&gt;      message e008(zt).&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;  elseif t_cmm between 10 and 12.&lt;/P&gt;&lt;P&gt;    if t_cyy &amp;gt; t_fyy and t_dyy = t_fyy.&lt;/P&gt;&lt;P&gt;    else.&lt;/P&gt;&lt;P&gt;      message e008(zt).&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;top-of-page.&lt;/P&gt;&lt;P&gt;  perform header.                      " Procedure to Print Header&lt;/P&gt;&lt;P&gt;  if flg = 1.&lt;/P&gt;&lt;P&gt;    perform d_header.&lt;/P&gt;&lt;P&gt;    flg = 0.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;end-of-page.&lt;/P&gt;&lt;P&gt;  write: /0(157) sy-uline.&lt;/P&gt;&lt;P&gt;  pgno = pgno + 1.&lt;/P&gt;&lt;P&gt;  write: /110 'Page No : ', pgno.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;start-of-selection.&lt;/P&gt;&lt;P&gt;  perform get-date.&lt;/P&gt;&lt;P&gt;  perform get-cust.&lt;/P&gt;&lt;P&gt;  perform get-bsid.&lt;/P&gt;&lt;P&gt;  perform get-samt.&lt;/P&gt;&lt;P&gt;  perform get-bsad.&lt;/P&gt;&lt;P&gt;  perform get-vbrk.&lt;/P&gt;&lt;P&gt;  perform get-vbfa.&lt;/P&gt;&lt;P&gt;  perform get-bkpf.&lt;/P&gt;&lt;P&gt;  perform get-bseg.&lt;/P&gt;&lt;P&gt;  perform get-write.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  GET-CUST&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form get-cust.&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="3" type="ul"&gt;&lt;P&gt;Deleted for E-Mail&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; select kna1~kunnr&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        kna1~name1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        knkk~klimk&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        adr6~smtp_addr&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; into   (itab-kunnr,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        itab-name1,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        itab-klimk,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        itab-smtp)&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; from kna1 join knkk&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   on kna1&lt;SUB&gt;kunnr = knkk&lt;/SUB&gt;kunnr&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; join knvv&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   on kna1&lt;SUB&gt;kunnr = knvv&lt;/SUB&gt;kunnr&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; join adr6&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   on kna1&lt;SUB&gt;adrnr = adr6&lt;/SUB&gt;addrnumber&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; where  kna1~kunnr in kunnr and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        knvv~kdgrp in kdgrp.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   if sy-subrc eq 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     append itab.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     clear  itab.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   endif.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; endselect.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*DELETE ADJACENT DUPLICATES FROM ITAB.&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="3" type="ul"&gt;&lt;P&gt;End&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="3" type="ul"&gt;&lt;P&gt;Added for E-Mail&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;  select kna1~kunnr&lt;/P&gt;&lt;P&gt;         kna1~name1&lt;/P&gt;&lt;P&gt;         knkk~klimk&lt;/P&gt;&lt;P&gt;         adr6~smtp_addr&lt;/P&gt;&lt;P&gt;  into   (itab-kunnr,&lt;/P&gt;&lt;P&gt;         itab-name1,&lt;/P&gt;&lt;P&gt;         itab-klimk,&lt;/P&gt;&lt;P&gt;         itab-smtp)&lt;/P&gt;&lt;P&gt;  from kna1 join knkk&lt;/P&gt;&lt;P&gt;    on kna1&lt;SUB&gt;kunnr = knkk&lt;/SUB&gt;kunnr&lt;/P&gt;&lt;P&gt;  join knvv&lt;/P&gt;&lt;P&gt;    on kna1&lt;SUB&gt;kunnr = knvv&lt;/SUB&gt;kunnr&lt;/P&gt;&lt;P&gt;  join adr6&lt;/P&gt;&lt;P&gt;    on kna1&lt;SUB&gt;adrnr = adr6&lt;/SUB&gt;addrnumber&lt;/P&gt;&lt;P&gt;  where  kna1~kunnr in kunnr and&lt;/P&gt;&lt;P&gt;         knvv~kdgrp in kdgrp.&lt;/P&gt;&lt;P&gt;    if sy-subrc eq 0.&lt;/P&gt;&lt;P&gt;      append itab.&lt;/P&gt;&lt;P&gt;      clear  itab.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;  endselect.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DELETE ADJACENT DUPLICATES FROM ITAB.&lt;/P&gt;&lt;P&gt;delete itab where smtp is initial.&lt;/P&gt;&lt;P&gt;it_inad[] = itab[].&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="3" type="ul"&gt;&lt;P&gt;End&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;endform.                               " GET-CUST&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  GET-BSID&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form get-bsid.&lt;/P&gt;&lt;P&gt;  select kunnr&lt;/P&gt;&lt;P&gt;         blart&lt;/P&gt;&lt;P&gt;         bldat&lt;/P&gt;&lt;P&gt;         budat&lt;/P&gt;&lt;P&gt;         belnr&lt;/P&gt;&lt;P&gt;         xblnr&lt;/P&gt;&lt;P&gt;         shkzg&lt;/P&gt;&lt;P&gt;         wrbtr&lt;/P&gt;&lt;P&gt;  into   (otab-kunnr,&lt;/P&gt;&lt;P&gt;         otab-blart,&lt;/P&gt;&lt;P&gt;         otab-bldat,&lt;/P&gt;&lt;P&gt;         otab-budat,&lt;/P&gt;&lt;P&gt;         otab-belnr,&lt;/P&gt;&lt;P&gt;         otab-xblnr,&lt;/P&gt;&lt;P&gt;         otab-shkzg,&lt;/P&gt;&lt;P&gt;         otab-wrbtr)&lt;/P&gt;&lt;P&gt;  from   bsid&lt;/P&gt;&lt;P&gt;  where  ( umskz = ' ' or umskz = 'A' or umskz = 'E' ) and&lt;/P&gt;&lt;P&gt;         kunnr in kunnr and&lt;/P&gt;&lt;P&gt;         budat &amp;gt;= sdate and budat &amp;lt;= edate.&lt;/P&gt;&lt;P&gt;    if sy-subrc eq 0.&lt;/P&gt;&lt;P&gt;      collect otab.&lt;/P&gt;&lt;P&gt;      clear  otab.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;  endselect.&lt;/P&gt;&lt;P&gt;endform.                               " GET-BSID&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  GET-BSAD&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form get-bsad.&lt;/P&gt;&lt;P&gt;  select kunnr&lt;/P&gt;&lt;P&gt;         blart&lt;/P&gt;&lt;P&gt;         bldat&lt;/P&gt;&lt;P&gt;         budat&lt;/P&gt;&lt;P&gt;         belnr&lt;/P&gt;&lt;P&gt;         xblnr&lt;/P&gt;&lt;P&gt;         shkzg&lt;/P&gt;&lt;P&gt;         wrbtr&lt;/P&gt;&lt;P&gt;  into   (ctab-kunnr,&lt;/P&gt;&lt;P&gt;         ctab-blart,&lt;/P&gt;&lt;P&gt;         ctab-bldat,&lt;/P&gt;&lt;P&gt;         ctab-budat,&lt;/P&gt;&lt;P&gt;         ctab-belnr,&lt;/P&gt;&lt;P&gt;         ctab-xblnr,&lt;/P&gt;&lt;P&gt;         ctab-shkzg,&lt;/P&gt;&lt;P&gt;         ctab-wrbtr)&lt;/P&gt;&lt;P&gt;  from   bsad&lt;/P&gt;&lt;P&gt;  where  ( umskz = ' ' or umskz = 'A' or umskz = 'E' )&lt;/P&gt;&lt;P&gt;and&lt;/P&gt;&lt;P&gt;         kunnr in kunnr and&lt;/P&gt;&lt;P&gt;         budat &amp;gt;= sdate and budat &amp;lt;= edate&lt;/P&gt;&lt;P&gt;  order by kunnr.&lt;/P&gt;&lt;P&gt;    if sy-subrc eq 0.&lt;/P&gt;&lt;P&gt;      collect ctab.&lt;/P&gt;&lt;P&gt;      clear  ctab.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;  endselect.&lt;/P&gt;&lt;P&gt;  insert lines of ctab from 1 into otab index 1.&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="3" type="ul"&gt;&lt;P&gt;This code DELETE all AB documents which Debit and Credit&lt;/P&gt;&lt;/LI&gt;&lt;LI level="3" type="ul"&gt;&lt;P&gt;Amounts are Equal.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;*Modification on 05.05.2004 By Srinivas Yerra.&lt;/P&gt;&lt;P&gt;  loop at otab.&lt;/P&gt;&lt;P&gt;    atab-kunnr = otab-kunnr.&lt;/P&gt;&lt;P&gt;    atab-belnr = otab-belnr.&lt;/P&gt;&lt;P&gt;    if otab-shkzg = 'H'.&lt;/P&gt;&lt;P&gt;      atab-wrbtr = - otab-wrbtr.&lt;/P&gt;&lt;P&gt;      otab-wrbtr = otab-wrbtr * -1.&lt;/P&gt;&lt;P&gt;    else.&lt;/P&gt;&lt;P&gt;      atab-wrbtr = otab-wrbtr.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;    collect atab.&lt;/P&gt;&lt;P&gt;    modify otab.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;  loop at atab where wrbtr = 0.&lt;/P&gt;&lt;P&gt;    delete otab where kunnr = atab-kunnr&lt;/P&gt;&lt;P&gt;                  and belnr = atab-belnr.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                               " GET-BSAD&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  HEADER&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form header.&lt;/P&gt;&lt;P&gt;  write: /78 'Grasim Industries Ltd'.&lt;/P&gt;&lt;P&gt;  write: /76 'Cement Marketing Division'.&lt;/P&gt;&lt;P&gt;  skip 1.&lt;/P&gt;&lt;P&gt;  write: /80 'Customer Ledger'.&lt;/P&gt;&lt;P&gt;  write: /80 '----&lt;/P&gt;&lt;HR originaltext="----------" /&gt;&lt;P&gt;'.&lt;/P&gt;&lt;P&gt;  write:0(157) sy-uline.&lt;/P&gt;&lt;P&gt;endform.                               " HEADER&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  GET-DATE&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form get-date.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  concatenate spbup&lt;EM&gt;0(4) spbup&lt;/EM&gt;4(2) '01' into sdate.&lt;/P&gt;&lt;P&gt;  concatenate spbup&lt;EM&gt;0(4) spbup&lt;/EM&gt;4(2) '01' into ddate.&lt;/P&gt;&lt;P&gt;  concatenate spbup&lt;EM&gt;0(4) spbup&lt;/EM&gt;4(2) '01' into rdate.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if chk2 = 'X'.&lt;/P&gt;&lt;P&gt;    if spbup&lt;EM&gt;4(2) &amp;gt;= 04 and spbup&lt;/EM&gt;4(2) &amp;lt;= 06.&lt;/P&gt;&lt;P&gt;      concatenate spbup+0(4) '04' '01' into sdate.&lt;/P&gt;&lt;P&gt;    elseif spbup&lt;EM&gt;4(2) &amp;gt;= 07 and spbup&lt;/EM&gt;4(2) &amp;lt;= 09.&lt;/P&gt;&lt;P&gt;      concatenate spbup+0(4) '07' '01' into sdate.&lt;/P&gt;&lt;P&gt;    elseif spbup&lt;EM&gt;4(2) &amp;gt;= 10 and spbup&lt;/EM&gt;4(2) &amp;lt;= 12.&lt;/P&gt;&lt;P&gt;      concatenate spbup+0(4) '10' '01' into sdate.&lt;/P&gt;&lt;P&gt;    elseif spbup&lt;EM&gt;4(2) &amp;gt;= 01 and spbup&lt;/EM&gt;4(2) &amp;lt;= 03.&lt;/P&gt;&lt;P&gt;      concatenate spbup+0(4) '01' '01' into sdate.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  call function 'RE_LAST_DAY_OF_MONTH'&lt;/P&gt;&lt;P&gt;       exporting&lt;/P&gt;&lt;P&gt;            i_datum = ddate&lt;/P&gt;&lt;P&gt;       importing&lt;/P&gt;&lt;P&gt;            e_tt    = dd&lt;/P&gt;&lt;P&gt;       exceptions&lt;/P&gt;&lt;P&gt;            others  = 1.&lt;/P&gt;&lt;P&gt;  ddd = dd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  concatenate ddate+0(6) ddd into edate.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  rdate = sdate - 1.&lt;/P&gt;&lt;P&gt;  call function 'RE_LAST_DAY_OF_MONTH'&lt;/P&gt;&lt;P&gt;       exporting&lt;/P&gt;&lt;P&gt;            i_datum = rdate&lt;/P&gt;&lt;P&gt;       importing&lt;/P&gt;&lt;P&gt;            e_tt    = dd&lt;/P&gt;&lt;P&gt;       exceptions&lt;/P&gt;&lt;P&gt;            others  = 1.&lt;/P&gt;&lt;P&gt;  ddd = dd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  concatenate rdate+0(6) ddd into rdate.&lt;/P&gt;&lt;P&gt;endform.                               " GET-DATE&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  GET-WRITE&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form get-write.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    month = sdate+4(2).&lt;/P&gt;&lt;P&gt; perform update_otab.&lt;/P&gt;&lt;P&gt;  perform v_date.&lt;/P&gt;&lt;P&gt;  perform doc_data using fmondes t_cyy.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  sort otab by kunnr budat belnr.&lt;/P&gt;&lt;P&gt;  sort ctab by kunnr budat belnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  loop at itab.&lt;/P&gt;&lt;P&gt;    code = itab-kunnr.&lt;/P&gt;&lt;P&gt;    name = itab-name1.&lt;/P&gt;&lt;P&gt;    ssobl = itab-ssobl.&lt;/P&gt;&lt;P&gt;    klimk = itab-klimk.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    at new kunnr.&lt;/P&gt;&lt;P&gt;      pgno = 0. dramt = 0. cramt = 0.&lt;/P&gt;&lt;P&gt;      ttamt = 0. opbal = 0. clbal = 0. dpbal = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      call function 'Z_GET_OPENING_BALANCE1'&lt;/P&gt;&lt;P&gt;           exporting&lt;/P&gt;&lt;P&gt;                kunnr  = itab-kunnr&lt;/P&gt;&lt;P&gt;                gjahr  = gjahr&lt;/P&gt;&lt;P&gt;                month  = month&lt;/P&gt;&lt;P&gt;           importing&lt;/P&gt;&lt;P&gt;                opbal  = opbal&lt;/P&gt;&lt;P&gt;           exceptions&lt;/P&gt;&lt;P&gt;                others = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      perform v_date.&lt;/P&gt;&lt;P&gt;      perform get-abbal.&lt;/P&gt;&lt;P&gt;*Modified on 17.04.2004 By srinivas yerra.&lt;/P&gt;&lt;P&gt;      opbal =  opbal + aobal.&lt;/P&gt;&lt;P&gt;*end of Modification.&lt;/P&gt;&lt;P&gt;      move t_cyy to v_gjahr.&lt;/P&gt;&lt;P&gt;****Deleting customer if opening balance is zero and no transactions&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  exists&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    if opbal = 0.&lt;/P&gt;&lt;P&gt;     read table otab with key kunnr = itab-kunnr.&lt;/P&gt;&lt;P&gt;     if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      continue.&lt;/P&gt;&lt;P&gt;     endif.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;****End of modification&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="3" type="ul"&gt;&lt;P&gt;Added for E-Mail&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;      perform hide_write.&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="3" type="ul"&gt;&lt;P&gt;End&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      if chk1 = 'X'.&lt;/P&gt;&lt;P&gt;        write: /01 sy-vline,&lt;/P&gt;&lt;P&gt;                02 'Customer Code    :', itab-kunnr,&lt;/P&gt;&lt;P&gt;                90 'Run Date         :', sy-datum,&lt;/P&gt;&lt;P&gt;               157 sy-vline.&lt;/P&gt;&lt;P&gt;        write: /01 sy-vline,&lt;/P&gt;&lt;P&gt;                02 'Name             :', name,&lt;/P&gt;&lt;P&gt;                90 'Run Time         :', sy-uzeit,&lt;/P&gt;&lt;P&gt;               157 sy-vline.&lt;/P&gt;&lt;P&gt;        write: /01 sy-vline,&lt;/P&gt;&lt;P&gt;                02 'Security Deposit : ', ssobl left-justified,&lt;/P&gt;&lt;P&gt;                90 'Customer Ledger  : From', fmondes, v_gjahr,&lt;/P&gt;&lt;P&gt;               157 sy-vline.&lt;/P&gt;&lt;P&gt;        write: /01 sy-vline,&lt;/P&gt;&lt;P&gt;                "02 'Credit Limit     : ', klimk left-justified,&lt;/P&gt;&lt;P&gt;                109  'To  ', tmondes, v_gjahr,&lt;/P&gt;&lt;P&gt;                157 sy-vline.&lt;/P&gt;&lt;P&gt;      else.&lt;/P&gt;&lt;P&gt;        write: /01 sy-vline,&lt;/P&gt;&lt;P&gt;                02 'Customer Code    :', itab-kunnr,&lt;/P&gt;&lt;P&gt;                90 'Run Date         :', sy-datum,&lt;/P&gt;&lt;P&gt;               157 sy-vline.&lt;/P&gt;&lt;P&gt;        write: /01 sy-vline,&lt;/P&gt;&lt;P&gt;                02 'Name             :', name,&lt;/P&gt;&lt;P&gt;                90 'Run Time         :', sy-uzeit,&lt;/P&gt;&lt;P&gt;               157 sy-vline.&lt;/P&gt;&lt;P&gt;        write: /01 sy-vline,&lt;/P&gt;&lt;P&gt;                "02 'Security Deposit : ', ssobl left-justified,&lt;/P&gt;&lt;P&gt;                02 'Customer Ledger  : From', fmondes, v_gjahr,&lt;/P&gt;&lt;P&gt;               157 sy-vline.&lt;/P&gt;&lt;P&gt;        write: /01 sy-vline,&lt;/P&gt;&lt;P&gt;                "02 'Credit Limit     : ', klimk left-justified,&lt;/P&gt;&lt;P&gt;                21  'To  ', tmondes, v_gjahr,&lt;/P&gt;&lt;P&gt;                157 sy-vline.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;      clear : v_fmonth, fmondes, v_tmonth, tmondes.&lt;/P&gt;&lt;P&gt;      write:0(157) sy-uline.&lt;/P&gt;&lt;P&gt;      write:/1 sy-vline,&lt;/P&gt;&lt;P&gt;             2 'Document  No',&lt;/P&gt;&lt;P&gt;             14 sy-vline,&lt;/P&gt;&lt;P&gt;             15 'Document Dt',&lt;/P&gt;&lt;P&gt;             27 sy-vline,&lt;/P&gt;&lt;P&gt;             28 'D T',&lt;/P&gt;&lt;P&gt;             32  sy-vline,&lt;/P&gt;&lt;P&gt;             33 'Ref : No',&lt;/P&gt;&lt;P&gt;             46  sy-vline,&lt;/P&gt;&lt;P&gt;             47 '         Narration ',&lt;/P&gt;&lt;P&gt;             99  sy-vline,&lt;/P&gt;&lt;P&gt;             100 'Br',&lt;/P&gt;&lt;P&gt;             102   sy-vline,&lt;/P&gt;&lt;P&gt;             103 ' Quantity',&lt;/P&gt;&lt;P&gt;             113  sy-vline,&lt;/P&gt;&lt;P&gt;             114 ' Rate ',&lt;/P&gt;&lt;P&gt;             122  sy-vline,&lt;/P&gt;&lt;P&gt;             123 ' Debit Amount',&lt;/P&gt;&lt;P&gt;             139  sy-vline,&lt;/P&gt;&lt;P&gt;             140 '  Credit Amount',&lt;/P&gt;&lt;P&gt;             157  sy-vline.&lt;/P&gt;&lt;P&gt;    endat.&lt;/P&gt;&lt;P&gt;    loop at otab where kunnr = itab-kunnr.&lt;/P&gt;&lt;P&gt;      glg = 1. flg = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*if otab-blart = 'AB'.&lt;/P&gt;&lt;P&gt;        if otab-wrbtr &amp;gt;= 0.&lt;/P&gt;&lt;P&gt;          otab-shkzg = 'S'.&lt;/P&gt;&lt;P&gt;        else.&lt;/P&gt;&lt;P&gt;          otab-shkzg = 'H'.&lt;/P&gt;&lt;P&gt;          otab-wrbtr = otab-wrbtr * -1.&lt;/P&gt;&lt;P&gt;        endif.&lt;/P&gt;&lt;P&gt;*endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     if otab-blart = 'DA'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       if otab-wrbtr &amp;gt;= 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         otab-shkzg = 'H'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       else.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         otab-shkzg = 'S'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         otab-wrbtr = otab-wrbtr * -1.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       endif.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      case otab-fkart.&lt;/P&gt;&lt;P&gt;        when 'ZGB1'.              " NARR = 'Rebate  Credit Memo'.&lt;/P&gt;&lt;P&gt;          select single knuma from vbrk into otab-knuma&lt;/P&gt;&lt;P&gt;                              where vbeln = otab-belnr and&lt;/P&gt;&lt;P&gt;                                    fkart = 'ZGB1'.&lt;/P&gt;&lt;P&gt;          if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;            select single botext&lt;/P&gt;&lt;P&gt;                          datab&lt;/P&gt;&lt;P&gt;                          datbi from kona into (otab-botext,&lt;/P&gt;&lt;P&gt;                                                otab-datab,&lt;/P&gt;&lt;P&gt;                                                otab-datbi)&lt;/P&gt;&lt;P&gt;                                 where knuma = otab-knuma.&lt;/P&gt;&lt;P&gt;            if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;              modify otab.&lt;/P&gt;&lt;P&gt;            endif.&lt;/P&gt;&lt;P&gt;          endif.&lt;/P&gt;&lt;P&gt;          year  = otab-datab+0(4).&lt;/P&gt;&lt;P&gt;          mon   = otab-datab+4(2).&lt;/P&gt;&lt;P&gt;          date  = otab-datab+6(2).&lt;/P&gt;&lt;P&gt;          year1 = otab-datbi+0(4).&lt;/P&gt;&lt;P&gt;          mon1  = otab-datbi+4(2).&lt;/P&gt;&lt;P&gt;          date1 = otab-datbi+6(2).&lt;/P&gt;&lt;P&gt;         concatenate otab-botext '-' date '.' mon '.' year '-' 'TO' '-'&lt;/P&gt;&lt;P&gt;                                  date1 '.' mon1 '.' year1 into narr.&lt;/P&gt;&lt;P&gt;          clear : year, mon, date, year1, mon1, date1.&lt;/P&gt;&lt;P&gt;        when 'ZGDF'. narr = 'Frieght Debit Memo'.&lt;/P&gt;&lt;P&gt;        when 'ZGDP'. narr = 'Depot   Invoice'.&lt;/P&gt;&lt;P&gt;        when 'ZGF2'. narr = 'Factory Invoice'.&lt;/P&gt;&lt;P&gt;        when 'ZGG2' or 'ZGL2'.&lt;/P&gt;&lt;P&gt;          narr = otab-sgtxt.&lt;/P&gt;&lt;P&gt;        when 'ZGRE'. narr = 'Sales Return'.&lt;/P&gt;&lt;P&gt;        when 'ZGRR'. narr = 'Factory Invoice'.&lt;/P&gt;&lt;P&gt;        when 'S1'.   narr = 'Sales Cancellation'.&lt;/P&gt;&lt;P&gt;        when 'ZFS1'.  narr = 'Cancellation of FInv'.&lt;/P&gt;&lt;P&gt;        when others. narr = ' '.&lt;/P&gt;&lt;P&gt;      endcase.&lt;/P&gt;&lt;P&gt;      case otab-blart.&lt;/P&gt;&lt;P&gt;        when 'SV'.&lt;/P&gt;&lt;P&gt;          narr = otab-sgtxt.&lt;/P&gt;&lt;P&gt;        when 'DA'. narr = 'Customer Document'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Document Type NC,NA,NF,NE added for north Zone as requested by Sjain&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;by Gopal Jaiswal  on 01/05/2003&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;        when 'NC'. narr = 'Customer Document'.&lt;/P&gt;&lt;P&gt;        when 'NA'. narr = 'Customer Document'.&lt;/P&gt;&lt;P&gt;        when 'NF'.  narr = otab-sgtxt.&lt;/P&gt;&lt;P&gt;        when 'NE'. narr = 'Customer Document'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        when 'DC' or 'ND' or 'WD' or 'WC'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Document type ND added for North Zone by Gopal JAiswal on 01/05/2003&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          if otab-shkzg = 'S' or otab-shkzg = 'H'.&lt;/P&gt;&lt;P&gt;            narr = otab-sgtxt.&lt;/P&gt;&lt;P&gt;          endif.&lt;/P&gt;&lt;P&gt;        when 'DZ' or 'NP' or 'WP'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Document type NP added for North Zone by Gopal JAiswal on 01/05/2003&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          if otab-sgtxt+0(1) = 'D'.&lt;/P&gt;&lt;P&gt;            narr = 'Payment DD. No :'.&lt;/P&gt;&lt;P&gt;          else.&lt;/P&gt;&lt;P&gt;            narr = 'Payment Cheque. No. :'.&lt;/P&gt;&lt;P&gt;          endif.&lt;/P&gt;&lt;P&gt;          concatenate narr otab-zuonr into narr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      endcase.&lt;/P&gt;&lt;P&gt;      if elg = 0.&lt;/P&gt;&lt;P&gt;        format color 4 intensified on.&lt;/P&gt;&lt;P&gt;        write:/ sy-vline,&lt;/P&gt;&lt;P&gt;                14 sy-vline,&lt;/P&gt;&lt;P&gt;                27 sy-vline,&lt;/P&gt;&lt;P&gt;                32 sy-vline,&lt;/P&gt;&lt;P&gt;                46 sy-vline,&lt;/P&gt;&lt;P&gt;                'Opening Balance',&lt;/P&gt;&lt;P&gt;                99 sy-vline,&lt;/P&gt;&lt;P&gt;               102 sy-vline,&lt;/P&gt;&lt;P&gt;               113 sy-vline,&lt;/P&gt;&lt;P&gt;               122 sy-vline.&lt;/P&gt;&lt;P&gt;        if opbal &amp;gt;= 0.&lt;/P&gt;&lt;P&gt;          write: 123 opbal, 139 sy-vline,&lt;/P&gt;&lt;P&gt;                  157 sy-vline.&lt;/P&gt;&lt;P&gt;        else.&lt;/P&gt;&lt;P&gt;          dpbal = opbal.&lt;/P&gt;&lt;P&gt;          dpbal = opbal * -1.&lt;/P&gt;&lt;P&gt;          write:   139 sy-vline,&lt;/P&gt;&lt;P&gt;                  140 dpbal, sy-vline.&lt;/P&gt;&lt;P&gt;        endif.&lt;/P&gt;&lt;P&gt;        elg = 1.&lt;/P&gt;&lt;P&gt;        format reset.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;      v_matnr = otab-matnr+3(2).&lt;/P&gt;&lt;P&gt;      format color 2.&lt;/P&gt;&lt;P&gt;      write:/ sy-vline,&lt;/P&gt;&lt;P&gt;              otab-belnr, sy-vline,&lt;/P&gt;&lt;P&gt;              otab-budat, sy-vline,&lt;/P&gt;&lt;P&gt;              otab-blart, sy-vline.&lt;/P&gt;&lt;P&gt;      if otab-fkart = 'ZGDF'.&lt;/P&gt;&lt;P&gt;        write:  otab-zvonr, 46 sy-vline.&lt;/P&gt;&lt;P&gt;      else.&lt;/P&gt;&lt;P&gt;        write:  otab-xblnr, 46 sy-vline.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;      qty = otab-fkimg.&lt;/P&gt;&lt;P&gt;      kbetr = otab-kbetr.&lt;/P&gt;&lt;P&gt;      write:  narr,       99 sy-vline,&lt;/P&gt;&lt;P&gt;              100 v_matnr, 102 sy-vline,&lt;/P&gt;&lt;P&gt;              qty, 113 sy-vline,&lt;/P&gt;&lt;P&gt;              kbetr right-justified, 122 sy-vline.&lt;/P&gt;&lt;P&gt;      if otab-shkzg = 'S'.&lt;/P&gt;&lt;P&gt;        write:  123 otab-wrbtr, 139 sy-vline,&lt;/P&gt;&lt;P&gt;                157 sy-vline.&lt;/P&gt;&lt;P&gt;        dramt = dramt + otab-wrbtr.&lt;/P&gt;&lt;P&gt;      else.&lt;/P&gt;&lt;P&gt;        write:  139 sy-vline,&lt;/P&gt;&lt;P&gt;                140 otab-wrbtr, 157 sy-vline.&lt;/P&gt;&lt;P&gt;        format reset.&lt;/P&gt;&lt;P&gt;        cramt = cramt + otab-wrbtr.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;      qanty = qanty + otab-fkimg.&lt;/P&gt;&lt;P&gt;    endloop.&lt;/P&gt;&lt;P&gt;    if glg eq 0.&lt;/P&gt;&lt;P&gt;      format color 4 intensified on.&lt;/P&gt;&lt;P&gt;      write:/ sy-vline,&lt;/P&gt;&lt;P&gt;              14 sy-vline,&lt;/P&gt;&lt;P&gt;              27 sy-vline,&lt;/P&gt;&lt;P&gt;              32 sy-vline,&lt;/P&gt;&lt;P&gt;              46 sy-vline,&lt;/P&gt;&lt;P&gt;              'Opening Balance',&lt;/P&gt;&lt;P&gt;              99 sy-vline,&lt;/P&gt;&lt;P&gt;              102 sy-vline,&lt;/P&gt;&lt;P&gt;              113 sy-vline,&lt;/P&gt;&lt;P&gt;              122 sy-vline.&lt;/P&gt;&lt;P&gt;      if opbal &amp;gt;= 0.&lt;/P&gt;&lt;P&gt;        write: 123 opbal, 139 sy-vline,&lt;/P&gt;&lt;P&gt;                157 sy-vline.&lt;/P&gt;&lt;P&gt;      else.&lt;/P&gt;&lt;P&gt;        dpbal = opbal.&lt;/P&gt;&lt;P&gt;        dpbal = opbal * -1.&lt;/P&gt;&lt;P&gt;        write:  139 sy-vline,&lt;/P&gt;&lt;P&gt;                 140 dpbal, sy-vline.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;      format reset.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    write:0(157) sy-uline.&lt;/P&gt;&lt;P&gt;    at end of kunnr.&lt;/P&gt;&lt;P&gt;      ttamt = dramt - cramt.&lt;/P&gt;&lt;P&gt;      format color 3 intensified on.&lt;/P&gt;&lt;P&gt;      tqty = qanty.&lt;/P&gt;&lt;P&gt;      write:/ sy-vline,&lt;/P&gt;&lt;P&gt;       :53 'Totals' , 99 sy-vline, 102 sy-vline,&lt;/P&gt;&lt;P&gt;       103 tqty  right-justified,&lt;/P&gt;&lt;P&gt;       113 sy-vline, 122 sy-vline, 123 dramt,&lt;/P&gt;&lt;P&gt;                    139 sy-vline, 140 cramt,&lt;/P&gt;&lt;P&gt;                   sy-vline.&lt;/P&gt;&lt;P&gt;      write:0(157) sy-uline.&lt;/P&gt;&lt;P&gt;      if ttamt &amp;gt;= 0.&lt;/P&gt;&lt;P&gt;        write:/ sy-vline,&lt;/P&gt;&lt;P&gt;            :53 'Difference Amount' , 122 sy-vline, 123 ttamt,&lt;/P&gt;&lt;P&gt;                   139 sy-vline, 157 sy-vline.&lt;/P&gt;&lt;P&gt;      else.&lt;/P&gt;&lt;P&gt;        ttamt = ttamt * -1.&lt;/P&gt;&lt;P&gt;        write:/ sy-vline,&lt;/P&gt;&lt;P&gt;        :53 'Difference Amount' , 122 sy-vline, 139 sy-vline, 140 ttamt,&lt;/P&gt;&lt;P&gt;                                       sy-vline.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;      write:0(157) sy-uline.&lt;/P&gt;&lt;P&gt;      clbal = opbal + dramt - cramt.&lt;/P&gt;&lt;P&gt;      if clbal &amp;gt;= 0.&lt;/P&gt;&lt;P&gt;        write:/ sy-vline,&lt;/P&gt;&lt;P&gt;            :53 'Closing Balance  ' , 122 sy-vline, 123 clbal,&lt;/P&gt;&lt;P&gt;                                      139 sy-vline, 157 sy-vline.&lt;/P&gt;&lt;P&gt;      else.&lt;/P&gt;&lt;P&gt;        clbal = clbal * -1.&lt;/P&gt;&lt;P&gt;        write:/ sy-vline,&lt;/P&gt;&lt;P&gt;        :53 'Closing Balance  ' , 122 sy-vline, 139 sy-vline, 140 clbal,&lt;/P&gt;&lt;P&gt;                                       sy-vline.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;      write:0(157) sy-uline.&lt;/P&gt;&lt;P&gt;      format color 6 intensified off.&lt;/P&gt;&lt;P&gt;      write:/1(157) sy-uline.&lt;/P&gt;&lt;P&gt;      write:/1 sy-vline,&lt;/P&gt;&lt;P&gt;             2 'Note:-', text-t02,&lt;/P&gt;&lt;P&gt;           157 sy-vline.&lt;/P&gt;&lt;P&gt;      write:/1 sy-vline,&lt;/P&gt;&lt;P&gt;             2 text-t03,&lt;/P&gt;&lt;P&gt;           157 sy-vline.&lt;/P&gt;&lt;P&gt;      format reset.&lt;/P&gt;&lt;P&gt;      write:/1 sy-vline,&lt;/P&gt;&lt;P&gt;           120 'For Grasim Industries Ltd',&lt;/P&gt;&lt;P&gt;           157 sy-vline.&lt;/P&gt;&lt;P&gt;      write:/1 sy-vline,&lt;/P&gt;&lt;P&gt;           157 sy-vline.&lt;/P&gt;&lt;P&gt;      write:/1 sy-vline,&lt;/P&gt;&lt;P&gt;           157 sy-vline.&lt;/P&gt;&lt;P&gt;      write:/1 sy-vline,&lt;/P&gt;&lt;P&gt;           120 'C&amp;amp;F Agent / Accountant',&lt;/P&gt;&lt;P&gt;           157 sy-vline.&lt;/P&gt;&lt;P&gt;      write:/1(157) sy-uline.&lt;/P&gt;&lt;P&gt;      write:0(157) sy-uline.&lt;/P&gt;&lt;P&gt;      format reset.&lt;/P&gt;&lt;P&gt;      clear tqty.&lt;/P&gt;&lt;P&gt;      qanty = 0.&lt;/P&gt;&lt;P&gt;      name = ''.&lt;/P&gt;&lt;P&gt;      ssobl = 0.&lt;/P&gt;&lt;P&gt;      klimk = 0.&lt;/P&gt;&lt;P&gt;      elg = 0.&lt;/P&gt;&lt;P&gt;      glg = 0.&lt;/P&gt;&lt;P&gt;      flg = 0.&lt;/P&gt;&lt;P&gt;      lines = sy-linct - sy-linno.&lt;/P&gt;&lt;P&gt;      skip lines.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="3" type="ul"&gt;&lt;P&gt;Added for E-Mail&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;      perform end_write using itab-kunnr.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     new-page.&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="3" type="ul"&gt;&lt;P&gt;End&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    endat.&lt;/P&gt;&lt;P&gt;    clear : v_matnr, qty, br, kbetr.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;endform.                               " GET-WRITE&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  D_HEADER&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form d_header.&lt;/P&gt;&lt;P&gt;  write: / sy-vline, 2 'Customer Code    :', code,&lt;/P&gt;&lt;P&gt;         106 'Name             :', name, 157 sy-vline.&lt;/P&gt;&lt;P&gt;  write:0(157) sy-uline.&lt;/P&gt;&lt;P&gt;  write:/1 sy-vline,&lt;/P&gt;&lt;P&gt;         2 'Document  No',&lt;/P&gt;&lt;P&gt;         14 sy-vline,&lt;/P&gt;&lt;P&gt;         15 'Document Dt',&lt;/P&gt;&lt;P&gt;         27 sy-vline,&lt;/P&gt;&lt;P&gt;         28 'D T',&lt;/P&gt;&lt;P&gt;         32  sy-vline,&lt;/P&gt;&lt;P&gt;         33 'Ref : No',&lt;/P&gt;&lt;P&gt;         46  sy-vline,&lt;/P&gt;&lt;P&gt;         47 '         Narration ',&lt;/P&gt;&lt;P&gt;         99  sy-vline,&lt;/P&gt;&lt;P&gt;         100 'Br',&lt;/P&gt;&lt;P&gt;         102   sy-vline,&lt;/P&gt;&lt;P&gt;         103 ' Quantity',&lt;/P&gt;&lt;P&gt;         113  sy-vline,&lt;/P&gt;&lt;P&gt;         114 ' Rate ',&lt;/P&gt;&lt;P&gt;         122  sy-vline,&lt;/P&gt;&lt;P&gt;         123 ' Debit Amount',&lt;/P&gt;&lt;P&gt;         139  sy-vline,&lt;/P&gt;&lt;P&gt;         140 '  Credit Amount',&lt;/P&gt;&lt;P&gt;         157  sy-vline.&lt;/P&gt;&lt;P&gt;  write:0(157) sy-uline.&lt;/P&gt;&lt;P&gt;endform.                               " D_HEADER&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  GET-VBRK&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form get-vbrk.&lt;/P&gt;&lt;P&gt;  loop at otab.&lt;/P&gt;&lt;P&gt;    select * from vbrp where vbeln = otab-belnr.&lt;/P&gt;&lt;P&gt;      if sy-subrc eq 0.&lt;/P&gt;&lt;P&gt;        select * from vbrk where vbeln = otab-belnr.&lt;/P&gt;&lt;P&gt;          if sy-subrc eq 0.&lt;/P&gt;&lt;P&gt;            move vbrk-fkart to otab-fkart.&lt;/P&gt;&lt;P&gt;            move vbrp-fkimg to otab-fkimg.&lt;/P&gt;&lt;P&gt;            if otab-fkart = 'ZGDF'.&lt;/P&gt;&lt;P&gt;              move vbrk-zuonr to otab-zvonr.&lt;/P&gt;&lt;P&gt;            endif.&lt;/P&gt;&lt;P&gt;***Code added by Ranga Raju Manthena&lt;/P&gt;&lt;P&gt;            if otab-fkart = 'ZGDP' or otab-fkart = 'ZGF2'.&lt;/P&gt;&lt;P&gt;              select single xabln into otab-xblnr&lt;/P&gt;&lt;P&gt;                                  from likp&lt;/P&gt;&lt;P&gt;                                  where vbeln = vbrp-vgbel.&lt;/P&gt;&lt;P&gt;            endif.&lt;/P&gt;&lt;P&gt;            if otab-fkart = 'ZFS1'.&lt;/P&gt;&lt;P&gt;              clear otab-fkimg.&lt;/P&gt;&lt;P&gt;            endif.&lt;/P&gt;&lt;P&gt;***End of Insertion&lt;/P&gt;&lt;P&gt;            move vbrp-matnr to otab-matnr.&lt;/P&gt;&lt;P&gt;            modify otab.&lt;/P&gt;&lt;P&gt;          endif.&lt;/P&gt;&lt;P&gt;        endselect.&lt;/P&gt;&lt;P&gt;        select single * from konv where knumv = vbrk-knumv and&lt;/P&gt;&lt;P&gt;                                        kschl in ('ZTPR','ZNTP') and&lt;/P&gt;&lt;P&gt;                                        kwert &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;        if sy-subrc eq 0.&lt;/P&gt;&lt;P&gt;          move konv-kbetr to otab-kbetr.&lt;/P&gt;&lt;P&gt;          modify otab.&lt;/P&gt;&lt;P&gt;        endif.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;    endselect.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;endform.                               " GET-VBRK&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  GET-BKPF&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form get-bkpf.&lt;/P&gt;&lt;P&gt;  loop at otab where fkart = 'ZGDP'.&lt;/P&gt;&lt;P&gt;    select bktxt&lt;/P&gt;&lt;P&gt;           bstat&lt;/P&gt;&lt;P&gt;    into   (otab-xblnr,&lt;/P&gt;&lt;P&gt;            otab-bstat)&lt;/P&gt;&lt;P&gt;    from   bkpf&lt;/P&gt;&lt;P&gt;    where  belnr = otab-belnr.&lt;/P&gt;&lt;P&gt;      if sy-subrc eq 0.&lt;/P&gt;&lt;P&gt;        modify otab.&lt;/P&gt;&lt;P&gt;        clear  otab.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;    endselect.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;  delete otab where blart = 'AB' and bstat = 'A'.&lt;/P&gt;&lt;P&gt;endform.                               " GET-BKPF&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  GET-BSEG&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form get-bseg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Document type NP added for North Zone by Gopal JAiswal on 01/05/2003&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  loop at otab where blart = 'DZ' or blart = 'NP' or blart = 'WP'.&lt;/P&gt;&lt;P&gt;    select zuonr sgtxt&lt;/P&gt;&lt;P&gt;    into   (otab-zuonr, otab-sgtxt)&lt;/P&gt;&lt;P&gt;    from   bseg&lt;/P&gt;&lt;P&gt;    where  belnr = otab-belnr and&lt;/P&gt;&lt;P&gt;           bukrs = 'GMKT' and&lt;/P&gt;&lt;P&gt;           gjahr = gjahr and&lt;/P&gt;&lt;P&gt;           shkzg = 'S' and&lt;/P&gt;&lt;P&gt;           koart = 'S'.&lt;/P&gt;&lt;P&gt;      if sy-subrc eq 0.&lt;/P&gt;&lt;P&gt;        modify otab.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;    endselect.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Document type ND added for North Zone by Gopal JAiswal on 01/05/2003&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; loop at otab where blart = 'DZ' or  blart = 'NP' or blart = 'WP'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   select sgtxt&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          into (otab-sgtxt)&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   from   bseg&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   where  belnr = otab-belnr and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          bukrs = 'GMKT' and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          gjahr = gjahr and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          shkzg in ('S', 'H').&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     if sy-subrc eq 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       modify otab.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     endif.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   endselect.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; endloop.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Document type ND added for North Zone by Gopal JAiswal on 01/05/2003&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  loop at otab&lt;/P&gt;&lt;P&gt;    where blart = 'SV'&lt;/P&gt;&lt;P&gt;       or blart = 'DC'&lt;/P&gt;&lt;P&gt;       or blart = 'ND'&lt;/P&gt;&lt;P&gt;       or blart = 'NF'&lt;/P&gt;&lt;P&gt;       or blart = 'WD'&lt;/P&gt;&lt;P&gt;       or blart = 'WC'.&lt;/P&gt;&lt;P&gt;    select sgtxt&lt;/P&gt;&lt;P&gt;           into (otab-sgtxt)&lt;/P&gt;&lt;P&gt;    from   bseg&lt;/P&gt;&lt;P&gt;    where  belnr = otab-belnr and&lt;/P&gt;&lt;P&gt;           bukrs = 'GMKT' and&lt;/P&gt;&lt;P&gt;           gjahr = gjahr and&lt;/P&gt;&lt;P&gt;           shkzg in ('S', 'H') and&lt;/P&gt;&lt;P&gt;           kunnr = otab-kunnr.&lt;/P&gt;&lt;P&gt;      if sy-subrc eq 0.&lt;/P&gt;&lt;P&gt;        modify otab.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;    endselect.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;  loop at otab.&lt;/P&gt;&lt;P&gt;    if otab-fkart = 'ZGDF'.&lt;/P&gt;&lt;P&gt;      otab-fkimg = 0.&lt;/P&gt;&lt;P&gt;      modify otab.&lt;/P&gt;&lt;P&gt;    elseif otab-fkart = 'ZGRE'.&lt;/P&gt;&lt;P&gt;      otab-fkimg = otab-fkimg * -1.&lt;/P&gt;&lt;P&gt;      modify otab.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;    if otab-fkart = 'S1'.&lt;/P&gt;&lt;P&gt;      otab-fkimg = otab-fkimg * -1.&lt;/P&gt;&lt;P&gt;      modify otab.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;endform.                               " GET-BSEG&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  GET-SAMT&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form get-samt.&lt;/P&gt;&lt;P&gt;  loop at itab.&lt;/P&gt;&lt;P&gt;    select kunnr&lt;/P&gt;&lt;P&gt;           shkzg&lt;/P&gt;&lt;P&gt;           wrbtr&lt;/P&gt;&lt;P&gt;    into   (stab-kunnr,&lt;/P&gt;&lt;P&gt;           stab-shkzg,&lt;/P&gt;&lt;P&gt;           stab-sdamt)&lt;/P&gt;&lt;P&gt;    from   bsid&lt;/P&gt;&lt;P&gt;    where  ( umskz = 'J' or umskz = 'K' ) and&lt;/P&gt;&lt;P&gt;           kunnr = itab-kunnr and&lt;/P&gt;&lt;P&gt;           budat &amp;lt;= edate.&lt;/P&gt;&lt;P&gt;      if sy-subrc eq 0.&lt;/P&gt;&lt;P&gt;        if stab-shkzg = 'S'.&lt;/P&gt;&lt;P&gt;          csamt = csamt + stab-sdamt.&lt;/P&gt;&lt;P&gt;        elseif stab-shkzg = 'H'.&lt;/P&gt;&lt;P&gt;          csamt = csamt - stab-sdamt.&lt;/P&gt;&lt;P&gt;        endif.&lt;/P&gt;&lt;P&gt;        collect stab.&lt;/P&gt;&lt;P&gt;        clear  stab.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;    endselect.&lt;/P&gt;&lt;P&gt;    at end of kunnr.&lt;/P&gt;&lt;P&gt;      itab-ssobl = csamt.&lt;/P&gt;&lt;P&gt;      modify itab transporting ssobl.&lt;/P&gt;&lt;P&gt;      clear  itab.&lt;/P&gt;&lt;P&gt;      clear  csamt.&lt;/P&gt;&lt;P&gt;    endat.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;endform.                               " GET-SAMT&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  V_DATE&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form v_date.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  v_fmonth = sdate+4(2).&lt;/P&gt;&lt;P&gt;  select single ltx into fmondes from t247 where spras = 'EN' and&lt;/P&gt;&lt;P&gt;                                                 mnr = v_fmonth.&lt;/P&gt;&lt;P&gt;  v_tmonth = edate+4(2).&lt;/P&gt;&lt;P&gt;  select single ltx into tmondes from t247 where spras = 'EN' and&lt;/P&gt;&lt;P&gt;                                                 mnr = v_tmonth.&lt;/P&gt;&lt;P&gt;endform.                               " V_DATE&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  GET-ABBAL&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form get-abbal.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;For considering Advance Amounts for Opening Balances.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;For making diffrent H and S incase of Advances posting as a Debit&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;as per S Jain req as on 06.03.2003&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  select sum( wrbtr )&lt;/P&gt;&lt;P&gt;  into   aobal_h&lt;/P&gt;&lt;P&gt;  from   bsid&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Modified on 17.04.2004 By srinivas yerra.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  where  ( umskz = 'A' or umskz = 'E') and&lt;/P&gt;&lt;P&gt;         shkzg = 'H' and&lt;/P&gt;&lt;P&gt;         kunnr = itab-kunnr and&lt;/P&gt;&lt;P&gt;         budat &amp;lt;= rdate.&lt;/P&gt;&lt;P&gt;  aobal_h = aobal_h * -1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  select sum( wrbtr )&lt;/P&gt;&lt;P&gt;  into   aobal_s&lt;/P&gt;&lt;P&gt;  from   bsid&lt;/P&gt;&lt;P&gt;  where  ( umskz = 'A' or umskz = 'E') and&lt;/P&gt;&lt;P&gt;         shkzg = 'S' and&lt;/P&gt;&lt;P&gt;         kunnr = itab-kunnr and&lt;/P&gt;&lt;P&gt;         budat &amp;lt;= rdate.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  aobal = aobal_h + aobal_s.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  select sum( wrbtr )&lt;/P&gt;&lt;P&gt;  into   ahbal_h&lt;/P&gt;&lt;P&gt;  from   bsad&lt;/P&gt;&lt;P&gt;  where  ( umskz = 'A' or umskz = 'E') and&lt;/P&gt;&lt;P&gt;         shkzg = 'H' and&lt;/P&gt;&lt;P&gt;         kunnr = itab-kunnr and&lt;/P&gt;&lt;P&gt;         budat &amp;lt;= rdate and&lt;/P&gt;&lt;P&gt;         augdt &amp;gt;= sdate.               " BUDAT &amp;lt;= RDATE and&lt;/P&gt;&lt;P&gt;  ahbal_h = ahbal_h * -1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  select sum( wrbtr )&lt;/P&gt;&lt;P&gt;  into   ahbal_s&lt;/P&gt;&lt;P&gt;  from   bsad&lt;/P&gt;&lt;P&gt;  where  ( umskz = 'A' or umskz = 'E') and&lt;/P&gt;&lt;P&gt;*end of modification.&lt;/P&gt;&lt;P&gt;         shkzg = 'S' and&lt;/P&gt;&lt;P&gt;         kunnr = itab-kunnr and&lt;/P&gt;&lt;P&gt;         budat &amp;lt;= rdate and&lt;/P&gt;&lt;P&gt;         augdt &amp;gt;= sdate.               " BUDAT &amp;lt;= RDATE and&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ahbal = ahbal_h + ahbal_s.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  aobal = aobal + ahbal.&lt;/P&gt;&lt;P&gt;endform.                               " GET-ABBAL&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  GET-VBFA&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form get-vbfa.&lt;/P&gt;&lt;P&gt;  loop at otab.&lt;/P&gt;&lt;P&gt;    if otab-fkart = 'ZGRE'     or otab-fkart = 'S1'.&lt;/P&gt;&lt;P&gt;      select single vbelv from vbfa into otab-xblnr&lt;/P&gt;&lt;P&gt;                          where vbeln = otab-belnr and&lt;/P&gt;&lt;P&gt;                                vbtyp_v = 'M'.&lt;/P&gt;&lt;P&gt;      if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;        modify otab.&lt;/P&gt;&lt;P&gt;      endif.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;endform.                    " GET-VBFA&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  update_otab&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form update_otab.&lt;/P&gt;&lt;P&gt;ttab = otab.&lt;/P&gt;&lt;P&gt;ttab[] = otab[].&lt;/P&gt;&lt;P&gt;refresh otab.&lt;/P&gt;&lt;P&gt;clear otab.&lt;/P&gt;&lt;P&gt;*loop at ttab where blart = 'DZ'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               or blart = 'NP'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               or blart = 'WP'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               or blart = 'DA'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               or blart = 'NF'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               OR BLART = 'SV'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               OR BLART = 'RV'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               OR BLART = 'NE'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; if ttab-shkzg = 'S'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ttab-wrbtr = ttab-wrbtr * -1.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   modify ttab.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; endif.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;sort ttab by belnr.&lt;/P&gt;&lt;P&gt;loop at ttab.&lt;/P&gt;&lt;P&gt;at new belnr.&lt;/P&gt;&lt;P&gt;read table ttab index sy-tabix.&lt;/P&gt;&lt;P&gt;sum.&lt;/P&gt;&lt;P&gt;  collect ttab into otab.&lt;/P&gt;&lt;P&gt;endat.&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;endform.                    " update_otab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Include:&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  INCLUDE ZINCUSMAIL                                                 *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;include &amp;lt;symbol&amp;gt;.&lt;/P&gt;&lt;P&gt;data : i_doc_data like sodocchgi1.&lt;/P&gt;&lt;P&gt;data : begin of i_pack_list occurs 0.&lt;/P&gt;&lt;P&gt;        include structure sopcklsti1.&lt;/P&gt;&lt;P&gt;data : end of i_pack_list.&lt;/P&gt;&lt;P&gt;data : begin of i_receivers occurs 0.&lt;/P&gt;&lt;P&gt;        include structure somlreci1.&lt;/P&gt;&lt;P&gt;data : end of i_receivers.&lt;/P&gt;&lt;P&gt;data : begin of i_contents occurs 0.&lt;/P&gt;&lt;P&gt;        include structure solisti1.&lt;/P&gt;&lt;P&gt;data : end of i_contents.&lt;/P&gt;&lt;P&gt;data : begin of i_header occurs 0.&lt;/P&gt;&lt;P&gt;        include structure solisti1.&lt;/P&gt;&lt;P&gt;data : end of i_header.&lt;/P&gt;&lt;P&gt;data : begin of i_att occurs 0.&lt;/P&gt;&lt;P&gt;        include structure solisti1.&lt;/P&gt;&lt;P&gt;data : end of i_att.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal Table for Internet address.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;data: begin of it_inad occurs 0,&lt;/P&gt;&lt;P&gt;        kunnr like kna1-kunnr,           " Customer Code&lt;/P&gt;&lt;P&gt;        name1 like kna1-name1,           " Customer Name&lt;/P&gt;&lt;P&gt;        ssobl like knkk-ssobl,           " Security Deposit&lt;/P&gt;&lt;P&gt;        klimk like knkk-klimk,           " Credit Limit&lt;/P&gt;&lt;P&gt;        opbal like bsid-wrbtr,           " Opening Balance&lt;/P&gt;&lt;P&gt;        clbal like bsid-wrbtr,           " Closing Balance&lt;/P&gt;&lt;P&gt;        smtp  like adr6-smtp_addr,       " Internet mail (SMTP) address&lt;/P&gt;&lt;P&gt;      end of it_inad.&lt;/P&gt;&lt;P&gt;data : pdf_line(134),&lt;/P&gt;&lt;P&gt;       asdf like pdf_line occurs 0 with header line.&lt;/P&gt;&lt;P&gt;data : pdf_table like tline occurs 0 with header line,&lt;/P&gt;&lt;P&gt;       pdf_fsize type  i.&lt;/P&gt;&lt;P&gt;data : stuff(65000),&lt;/P&gt;&lt;P&gt;       len type i,&lt;/P&gt;&lt;P&gt;       pos type i,&lt;/P&gt;&lt;P&gt;       tab_lines like sy-tabix.&lt;/P&gt;&lt;P&gt;data:  spoolid    type tsp01-rqident,&lt;/P&gt;&lt;P&gt;       spdel      type tsp01sys.&lt;/P&gt;&lt;P&gt;data:  v_gjahrt like bsid-gjahr,&lt;/P&gt;&lt;P&gt;       fmondest(10),&lt;/P&gt;&lt;P&gt;       tmondest(10),&lt;/P&gt;&lt;P&gt;       kunnr1 like kna1-kunnr,&lt;/P&gt;&lt;P&gt;       gjah(4),&lt;/P&gt;&lt;P&gt;       fmon(10).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  hide_write&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form hide_write.&lt;/P&gt;&lt;P&gt;  new-page print on&lt;/P&gt;&lt;P&gt;    line-size 160&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   line-count 58&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    no-title&lt;/P&gt;&lt;P&gt;    no-heading&lt;/P&gt;&lt;P&gt;    destination 'LOCL'&lt;/P&gt;&lt;P&gt;    immediately ' '&lt;/P&gt;&lt;P&gt;    new list identification 'X'&lt;/P&gt;&lt;P&gt;    no dialog.&lt;/P&gt;&lt;P&gt;  set blank lines on.&lt;/P&gt;&lt;P&gt;endform.                    " hide_write&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  end_write&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form end_write using kunnr1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  set blank lines off.&lt;/P&gt;&lt;P&gt;  new-page print off.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***Using Spoolid we are getting PDF formated file&lt;/P&gt;&lt;P&gt;  spoolid = spdel-rqident = sy-spono.&lt;/P&gt;&lt;P&gt;  spdel-sys = sy-sysid.&lt;/P&gt;&lt;P&gt;  call function 'CONVERT_ABAPSPOOLJOB_2_PDF'&lt;/P&gt;&lt;P&gt;       exporting&lt;/P&gt;&lt;P&gt;            src_spoolid   = spoolid&lt;/P&gt;&lt;P&gt;            no_dialog     = 'X'&lt;/P&gt;&lt;P&gt;       importing&lt;/P&gt;&lt;P&gt;            pdf_bytecount = pdf_fsize&lt;/P&gt;&lt;P&gt;       tables&lt;/P&gt;&lt;P&gt;            pdf           = pdf_table&lt;/P&gt;&lt;P&gt;       exceptions&lt;/P&gt;&lt;P&gt;            others        = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***Delleting Spool request&lt;/P&gt;&lt;P&gt;  call function 'RSPO_IDELETE_SPOOLREQ'&lt;/P&gt;&lt;P&gt;       exporting&lt;/P&gt;&lt;P&gt;            spoolreq = spdel&lt;/P&gt;&lt;P&gt;       exceptions&lt;/P&gt;&lt;P&gt;            others   = 2.&lt;/P&gt;&lt;P&gt;***Converting PDF table line size 134 into standard list size 255&lt;/P&gt;&lt;P&gt;  loop at pdf_table into pdf_line.&lt;/P&gt;&lt;P&gt;    if pos = 34170.&lt;/P&gt;&lt;P&gt;     perform attach.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;    stuff+pos(134) = pdf_line.&lt;/P&gt;&lt;P&gt;    add 134 to pos.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;if not ( stuff is initial ).&lt;/P&gt;&lt;P&gt;  perform attach.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;clear pdf_line.&lt;/P&gt;&lt;P&gt;clear pdf_table[].&lt;/P&gt;&lt;P&gt;describe table i_att lines tab_lines.&lt;/P&gt;&lt;P&gt;i_pack_list-transf_bin = 'X'.&lt;/P&gt;&lt;P&gt;i_pack_list-head_start = '1'.&lt;/P&gt;&lt;P&gt;i_pack_list-head_num = '1'.&lt;/P&gt;&lt;P&gt;i_pack_list-body_start = '1'.&lt;/P&gt;&lt;P&gt;i_pack_list-body_num = tab_lines.&lt;/P&gt;&lt;P&gt;i_pack_list-doc_type = 'PDF'.&lt;/P&gt;&lt;P&gt;i_pack_list-obj_name = 'LedgerMail'.&lt;/P&gt;&lt;P&gt;concatenate fmon '-' gjah into i_pack_list-obj_descr.&lt;/P&gt;&lt;P&gt;*i_pack_list-obj_descr = '2092-Oct03'.&lt;/P&gt;&lt;P&gt;i_pack_list-obj_langu = 'E'.&lt;/P&gt;&lt;P&gt;i_pack_list-doc_size = tab_lines * 255.&lt;/P&gt;&lt;P&gt;append i_pack_list.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***Data for receivers list&lt;/P&gt;&lt;P&gt;loop at it_inad where kunnr eq kunnr1.&lt;/P&gt;&lt;P&gt;i_receivers-receiver = it_inad-smtp.&lt;/P&gt;&lt;P&gt;i_receivers-rec_type = 'U'.&lt;/P&gt;&lt;P&gt;i_receivers-rec_date = sy-datum.&lt;/P&gt;&lt;P&gt;i_receivers-express = 'X'.&lt;/P&gt;&lt;P&gt;i_receivers-com_type = 'INT'.&lt;/P&gt;&lt;P&gt;i_receivers-notif_del = 'X'.&lt;/P&gt;&lt;P&gt;append i_receivers.&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;call function 'SO_NEW_DOCUMENT_ATT_SEND_API1'&lt;/P&gt;&lt;P&gt;  exporting&lt;/P&gt;&lt;P&gt;    document_data                    = i_doc_data&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  PUT_IN_OUTBOX                    = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  SENT_TO_ALL                      =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  NEW_OBJECT_ID                    =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  tables&lt;/P&gt;&lt;P&gt;    packing_list                     = i_pack_list&lt;/P&gt;&lt;P&gt;    object_header                    = i_header&lt;/P&gt;&lt;P&gt;    contents_bin                     = i_att&lt;/P&gt;&lt;P&gt;    contents_txt                     = i_contents&lt;/P&gt;&lt;P&gt;    receivers                        = i_receivers&lt;/P&gt;&lt;P&gt; exceptions&lt;/P&gt;&lt;P&gt;   too_many_receivers               = 1&lt;/P&gt;&lt;P&gt;   document_not_sent                = 2&lt;/P&gt;&lt;P&gt;   document_type_not_exist          = 3&lt;/P&gt;&lt;P&gt;   operation_no_authorization       = 4&lt;/P&gt;&lt;P&gt;   parameter_error                  = 5&lt;/P&gt;&lt;P&gt;   x_error                          = 6&lt;/P&gt;&lt;P&gt;   enqueue_error                    = 7&lt;/P&gt;&lt;P&gt;   others                           = 8&lt;/P&gt;&lt;P&gt;          .&lt;/P&gt;&lt;P&gt;refresh i_att. clear i_att.&lt;/P&gt;&lt;P&gt;refresh i_receivers. clear i_receivers.&lt;/P&gt;&lt;P&gt;delete i_pack_list where doc_type = 'PDF'.&lt;/P&gt;&lt;P&gt;*refresh i_header.&lt;/P&gt;&lt;P&gt;*refresh i_contents.&lt;/P&gt;&lt;P&gt;*clear i_doc_data.&lt;/P&gt;&lt;P&gt;endform.                    " end_write&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  doc_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form doc_data using fmondest v_gjahrt.&lt;/P&gt;&lt;P&gt;gjah = v_gjahrt.&lt;/P&gt;&lt;P&gt;fmon = fmondest.&lt;/P&gt;&lt;P&gt;***Data for Document Data&lt;/P&gt;&lt;P&gt;i_doc_data-obj_name = 'LedgerMail'.&lt;/P&gt;&lt;P&gt;concatenate 'Customer Ledger for : ' fmondest gjah&lt;/P&gt;&lt;P&gt;into i_doc_data-obj_descr separated by space.&lt;/P&gt;&lt;P&gt;i_doc_data-obj_langu = 'E'.&lt;/P&gt;&lt;P&gt;i_doc_data-obj_prio = '1'.&lt;/P&gt;&lt;P&gt;i_doc_data-no_change = 'X'.&lt;/P&gt;&lt;P&gt;i_doc_data-doc_size = '5101'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***Data for Packing list&lt;/P&gt;&lt;P&gt;i_pack_list-head_start = '1'.&lt;/P&gt;&lt;P&gt;i_pack_list-head_num = '1'.&lt;/P&gt;&lt;P&gt;i_pack_list-body_start = '1'.&lt;/P&gt;&lt;P&gt;i_pack_list-body_num = '20'.&lt;/P&gt;&lt;P&gt;i_pack_list-doc_type = 'RAW'.&lt;/P&gt;&lt;P&gt;i_pack_list-obj_langu = 'E'.&lt;/P&gt;&lt;P&gt;append i_pack_list.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***Data for Header&lt;/P&gt;&lt;P&gt;i_header-line = 'Header'. append i_header.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***Data for contents&lt;/P&gt;&lt;P&gt;i_contents-line = 'Dear Customer,'. append i_contents.&lt;/P&gt;&lt;P&gt;i_contents-line = ' '. append i_contents.&lt;/P&gt;&lt;P&gt;concatenate 'Please find your enclosed Ledger for the month of : '&lt;/P&gt;&lt;P&gt;fmondest gjah into i_contents-line separated by space.&lt;/P&gt;&lt;P&gt;append i_contents.&lt;/P&gt;&lt;P&gt;i_contents-line = ' '. append i_contents.&lt;/P&gt;&lt;P&gt;i_contents-line = 'This is a computer generated document and does not&lt;/P&gt;&lt;P&gt;require a signature.'. append i_contents.&lt;/P&gt;&lt;P&gt;i_contents-line = ' '. append i_contents.&lt;/P&gt;&lt;P&gt;i_contents-line = 'Note : If you do not have Acrobat Reader please click&lt;/P&gt;&lt;P&gt; on the below link.'. append i_contents.&lt;/P&gt;&lt;P&gt;i_contents-line = ' '. append i_contents.&lt;/P&gt;&lt;P&gt;i_contents-line = 'http://www.adobe.com/products/acrobat/readstep2.html'&lt;/P&gt;&lt;P&gt;. append i_contents.&lt;/P&gt;&lt;P&gt;i_contents-line = ' '. append i_contents.&lt;/P&gt;&lt;P&gt;i_contents-line = ' '. append i_contents.&lt;/P&gt;&lt;P&gt;i_contents-line = ' '. append i_contents.&lt;/P&gt;&lt;P&gt;i_contents-line = ' '. append i_contents.&lt;/P&gt;&lt;P&gt;i_contents-line = ' '. append i_contents.&lt;/P&gt;&lt;P&gt;i_contents-line = ' '. append i_contents.&lt;/P&gt;&lt;P&gt;i_contents-line = ' '. append i_contents.&lt;/P&gt;&lt;P&gt;i_contents-line = ' '. append i_contents.&lt;/P&gt;&lt;P&gt;i_contents-line = ' '. append i_contents.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    " doc_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  attach&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form attach.&lt;/P&gt;&lt;P&gt;  clear pos.&lt;/P&gt;&lt;P&gt;  len = strlen( stuff ).&lt;/P&gt;&lt;P&gt;  while len &amp;gt; 0.&lt;/P&gt;&lt;P&gt;    subtract 255 from len.&lt;/P&gt;&lt;P&gt;    i_att = stuff+pos(255).&lt;/P&gt;&lt;P&gt;    append i_att.&lt;/P&gt;&lt;P&gt;    add 255 to pos.&lt;/P&gt;&lt;P&gt;  endwhile.&lt;/P&gt;&lt;P&gt;  clear pos.&lt;/P&gt;&lt;P&gt;  clear stuff.&lt;/P&gt;&lt;P&gt;endform.                    " attach&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regrads,&lt;/P&gt;&lt;P&gt;Anji&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 19 Feb 2007 11:28:57 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/email-prg/m-p/1968341#M397523</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-02-19T11:28:57Z</dc:date>
    </item>
    <item>
      <title>Re: Email Prg</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/email-prg/m-p/1968342#M397524</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;check this sample..&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapdevelopment.co.uk/reporting/email/attach_xls.htm" target="test_blank"&gt;http://www.sapdevelopment.co.uk/reporting/email/attach_xls.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Vasanth&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 19 Feb 2007 11:30:12 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/email-prg/m-p/1968342#M397524</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-02-19T11:30:12Z</dc:date>
    </item>
    <item>
      <title>Re: Email Prg</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/email-prg/m-p/1968343#M397525</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Refer this link&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapdevelopment.co.uk/reporting/email/email_mbody.htm" target="test_blank"&gt;http://www.sapdevelopment.co.uk/reporting/email/email_mbody.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapdevelopment.co.uk/reporting/email/emailhome.htm" target="test_blank"&gt;http://www.sapdevelopment.co.uk/reporting/email/emailhome.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapdevelopment.co.uk/reporting/rep_spooltopdf.htm" target="test_blank"&gt;http://www.sapdevelopment.co.uk/reporting/rep_spooltopdf.htm&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 19 Feb 2007 11:30:49 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/email-prg/m-p/1968343#M397525</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-02-19T11:30:49Z</dc:date>
    </item>
    <item>
      <title>Re: Email Prg</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/email-prg/m-p/1968344#M397526</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;This is the sample code previously I achieved the same requirement.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM send_mail_2 USING msgid msgno msgv1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;mailuser oder Gruppe like sy-uname default 'Ruckerk'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: express_hold_time LIKE sovaltime.&lt;/P&gt;&lt;P&gt;DATA: text LIKE sotxtinfo.&lt;/P&gt;&lt;P&gt;DATA: receiver LIKE somlreci1 OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ZF100 (FTP an UDB fehlgeschlagen)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;text-msgid = msgid.&lt;/P&gt;&lt;P&gt;text-msgno = msgno.&lt;/P&gt;&lt;P&gt;text-msgv1 = msgv1.&lt;/P&gt;&lt;P&gt;text-msgv2 = ' '.&lt;/P&gt;&lt;P&gt;text-msgv3 = ' '.&lt;/P&gt;&lt;P&gt;text-msgv4 = ' '.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;express_hold_time&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;express_hold_time-days = 01.&lt;/P&gt;&lt;P&gt;express_hold_time-h_min_sec = 240000.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;receiver&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;receiver-receiver = mreceivr.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Gruppe von Empfängern&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;receiver-rec_type = 'C'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;und Expressmeldung ausgeben&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;receiver-express = 'X'.&lt;/P&gt;&lt;P&gt;APPEND receiver.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'MESSAGE_SEND_AS_MAIL'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;msgid = text-msgid&lt;/P&gt;&lt;P&gt;msgno = text-msgno&lt;/P&gt;&lt;P&gt;msgv1 = text-msgv1&lt;/P&gt;&lt;P&gt;msgv2 = text-msgv2&lt;/P&gt;&lt;P&gt;msgv3 = text-msgv3&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;receivers = receiver.&lt;/P&gt;&lt;P&gt;IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;WRITE:/ 'hat nicht geklappt', 'SY-SUBRC =', sy-subrc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM print_error_report.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fehlermeldung zum Abbrechen des Report's ausgeben.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;MESSAGE e398 WITH 'Jobabbruch' msgv1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " SEND_MAIL_2&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;kumar&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 19 Feb 2007 11:44:51 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/email-prg/m-p/1968344#M397526</guid>
      <dc:creator>sreeramkumar_madisetty</dc:creator>
      <dc:date>2007-02-19T11:44:51Z</dc:date>
    </item>
    <item>
      <title>Re: Email Prg</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/email-prg/m-p/1968345#M397527</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello ,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for your reply .. the code works fine for txt extension but when I try it with&lt;/P&gt;&lt;P&gt;xls I get the following error&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SX_OUTGOING_VERSION_BUILD           No suitable conversion found for XLS&lt;/P&gt;&lt;P&gt;SX_GENERATE_NDR     Message cannot be processed as it cannot be converted&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;could you please guide&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 19 Feb 2007 13:24:19 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/email-prg/m-p/1968345#M397527</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-02-19T13:24:19Z</dc:date>
    </item>
    <item>
      <title>Re: Email Prg</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/email-prg/m-p/1968346#M397528</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi.,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Refer this for .XLS&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sapdevelopment.co.uk/reporting/email/attachhome.htm" target="test_blank"&gt;http://www.sapdevelopment.co.uk/reporting/email/attachhome.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward points for those replies which helped you.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 19 Feb 2007 13:32:44 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/email-prg/m-p/1968346#M397528</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-02-19T13:32:44Z</dc:date>
    </item>
    <item>
      <title>Re: Email Prg</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/email-prg/m-p/1968347#M397529</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT ZEMAIL_ATTACH .&lt;/P&gt;&lt;P&gt;TABLES: ekko.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PARAMETERS: p_email TYPE somlreci1-receiver&lt;/P&gt;&lt;P&gt;DEFAULT 'test@sapdev.co.uk'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF t_ekpo,&lt;/P&gt;&lt;P&gt;ebeln TYPE ekpo-ebeln,&lt;/P&gt;&lt;P&gt;ebelp TYPE ekpo-ebelp,&lt;/P&gt;&lt;P&gt;aedat TYPE ekpo-aedat,&lt;/P&gt;&lt;P&gt;matnr TYPE ekpo-matnr,&lt;/P&gt;&lt;P&gt;END OF t_ekpo.&lt;/P&gt;&lt;P&gt;DATA: it_ekpo TYPE STANDARD TABLE OF t_ekpo INITIAL SIZE 0,&lt;/P&gt;&lt;P&gt;wa_ekpo TYPE t_ekpo.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF t_charekpo,&lt;/P&gt;&lt;P&gt;ebeln(10) TYPE c,&lt;/P&gt;&lt;P&gt;ebelp(5) TYPE c,&lt;/P&gt;&lt;P&gt;aedat(8) TYPE c,&lt;/P&gt;&lt;P&gt;matnr(18) TYPE c,&lt;/P&gt;&lt;P&gt;END OF t_charekpo.&lt;/P&gt;&lt;P&gt;DATA: wa_charekpo TYPE t_charekpo.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: it_message TYPE STANDARD TABLE OF solisti1 INITIAL SIZE 0&lt;/P&gt;&lt;P&gt;WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA: it_attach TYPE STANDARD TABLE OF solisti1 INITIAL SIZE 0&lt;/P&gt;&lt;P&gt;WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: t_packing_list LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;t_contents LIKE solisti1 OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;t_receivers LIKE somlreci1 OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;t_attachment LIKE solisti1 OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;t_object_header LIKE solisti1 OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;w_cnt TYPE i,&lt;/P&gt;&lt;P&gt;w_sent_all(1) TYPE c,&lt;/P&gt;&lt;P&gt;w_doc_data LIKE sodocchgi1,&lt;/P&gt;&lt;P&gt;gd_error TYPE sy-subrc,&lt;/P&gt;&lt;P&gt;gd_reciever TYPE sy-subrc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;*START_OF_SELECTION&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Retrieve sample data from table ekpo&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;PERFORM data_retrieval.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate table with detaisl to be entered into .xls file&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;PERFORM build_xls_data_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;*END-OF-SELECTION&lt;/P&gt;&lt;P&gt;END-OF-SELECTION.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate message body text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;perform populate_email_message_body.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Send file by email as .xls speadsheet&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;PERFORM send_file_as_email_attachment&lt;/P&gt;&lt;P&gt;tables it_message&lt;/P&gt;&lt;P&gt;it_attach&lt;/P&gt;&lt;P&gt;using p_email&lt;/P&gt;&lt;P&gt;'Example .xls documnet attachment'&lt;/P&gt;&lt;P&gt;'XLS'&lt;/P&gt;&lt;P&gt;'filename'&lt;/P&gt;&lt;P&gt;' '&lt;/P&gt;&lt;P&gt;' '&lt;/P&gt;&lt;P&gt;' '&lt;/P&gt;&lt;P&gt;changing gd_error&lt;/P&gt;&lt;P&gt;gd_reciever.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Instructs mail send program for SAPCONNECT to send email(rsconn01)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;PERFORM initiate_mail_execute_program.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form DATA_RETRIEVAL&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Retrieve data form EKPO table and populate itab it_ekko&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM data_retrieval.&lt;/P&gt;&lt;P&gt;SELECT ebeln ebelp aedat matnr&lt;/P&gt;&lt;P&gt;UP TO 10 ROWS&lt;/P&gt;&lt;P&gt;FROM ekpo&lt;/P&gt;&lt;P&gt;INTO TABLE it_ekpo.&lt;/P&gt;&lt;P&gt;ENDFORM. " DATA_RETRIEVAL&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form BUILD_XLS_DATA_TABLE&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Build data table for .xls document&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM build_xls_data_table.&lt;/P&gt;&lt;P&gt;CONSTANTS: con_cret TYPE x VALUE '0D', "OK for non Unicode&lt;/P&gt;&lt;P&gt;con_tab TYPE x VALUE '09'. "OK for non Unicode&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*If you have Unicode check active in program attributes thnen you will&lt;/P&gt;&lt;P&gt;*need to declare constants as follows&lt;/P&gt;&lt;P&gt;*class cl_abap_char_utilities definition load.&lt;/P&gt;&lt;P&gt;*constants:&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;con_tab type c value cl_abap_char_utilities=&amp;gt;HORIZONTAL_TAB,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;con_cret type c value cl_abap_char_utilities=&amp;gt;CR_LF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CONCATENATE 'EBELN' 'EBELP' 'AEDAT' 'MATNR'&lt;/P&gt;&lt;P&gt;INTO it_attach SEPARATED BY con_tab.&lt;/P&gt;&lt;P&gt;CONCATENATE con_cret it_attach INTO it_attach.&lt;/P&gt;&lt;P&gt;APPEND it_attach.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT it_ekpo INTO wa_charekpo.&lt;/P&gt;&lt;P&gt;CONCATENATE wa_charekpo-ebeln wa_charekpo-ebelp&lt;/P&gt;&lt;P&gt;wa_charekpo-aedat wa_charekpo-matnr&lt;/P&gt;&lt;P&gt;INTO it_attach SEPARATED BY con_tab.&lt;/P&gt;&lt;P&gt;CONCATENATE con_cret it_attach INTO it_attach.&lt;/P&gt;&lt;P&gt;APPEND it_attach.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM. " BUILD_XLS_DATA_TABLE&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form SEND_FILE_AS_EMAIL_ATTACHMENT&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Send email&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM send_file_as_email_attachment tables pit_message&lt;/P&gt;&lt;P&gt;pit_attach&lt;/P&gt;&lt;P&gt;using p_email&lt;/P&gt;&lt;P&gt;p_mtitle&lt;/P&gt;&lt;P&gt;p_format&lt;/P&gt;&lt;P&gt;p_filename&lt;/P&gt;&lt;P&gt;p_attdescription&lt;/P&gt;&lt;P&gt;p_sender_address&lt;/P&gt;&lt;P&gt;p_sender_addres_type&lt;/P&gt;&lt;P&gt;changing p_error&lt;/P&gt;&lt;P&gt;p_reciever.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: ld_error TYPE sy-subrc,&lt;/P&gt;&lt;P&gt;ld_reciever TYPE sy-subrc,&lt;/P&gt;&lt;P&gt;ld_mtitle LIKE sodocchgi1-obj_descr,&lt;/P&gt;&lt;P&gt;ld_email LIKE somlreci1-receiver,&lt;/P&gt;&lt;P&gt;ld_format TYPE so_obj_tp ,&lt;/P&gt;&lt;P&gt;ld_attdescription TYPE so_obj_nam ,&lt;/P&gt;&lt;P&gt;ld_attfilename TYPE so_obj_des ,&lt;/P&gt;&lt;P&gt;ld_sender_address LIKE soextreci1-receiver,&lt;/P&gt;&lt;P&gt;ld_sender_address_type LIKE soextreci1-adr_typ,&lt;/P&gt;&lt;P&gt;ld_receiver LIKE sy-subrc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ld_email = p_email.&lt;/P&gt;&lt;P&gt;ld_mtitle = p_mtitle.&lt;/P&gt;&lt;P&gt;ld_format = p_format.&lt;/P&gt;&lt;P&gt;ld_attdescription = p_attdescription.&lt;/P&gt;&lt;P&gt;ld_attfilename = p_filename.&lt;/P&gt;&lt;P&gt;ld_sender_address = p_sender_address.&lt;/P&gt;&lt;P&gt;ld_sender_address_type = p_sender_addres_type.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fill the document data.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;w_doc_data-doc_size = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate the subject/generic message attributes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;w_doc_data-obj_langu = sy-langu.&lt;/P&gt;&lt;P&gt;w_doc_data-obj_name = 'SAPRPT'.&lt;/P&gt;&lt;P&gt;w_doc_data-obj_descr = ld_mtitle .&lt;/P&gt;&lt;P&gt;w_doc_data-sensitivty = 'F'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fill the document data and get size of attachment&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CLEAR w_doc_data.&lt;/P&gt;&lt;P&gt;READ TABLE it_attach INDEX w_cnt.&lt;/P&gt;&lt;P&gt;w_doc_data-doc_size =&lt;/P&gt;&lt;P&gt;( w_cnt - 1 ) * 255 + STRLEN( it_attach ).&lt;/P&gt;&lt;P&gt;w_doc_data-obj_langu = sy-langu.&lt;/P&gt;&lt;P&gt;w_doc_data-obj_name = 'SAPRPT'.&lt;/P&gt;&lt;P&gt;w_doc_data-obj_descr = ld_mtitle.&lt;/P&gt;&lt;P&gt;w_doc_data-sensitivty = 'F'.&lt;/P&gt;&lt;P&gt;CLEAR t_attachment.&lt;/P&gt;&lt;P&gt;REFRESH t_attachment.&lt;/P&gt;&lt;P&gt;t_attachment[] = pit_attach[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Describe the body of the message&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CLEAR t_packing_list.&lt;/P&gt;&lt;P&gt;REFRESH t_packing_list.&lt;/P&gt;&lt;P&gt;t_packing_list-transf_bin = space.&lt;/P&gt;&lt;P&gt;t_packing_list-head_start = 1.&lt;/P&gt;&lt;P&gt;t_packing_list-head_num = 0.&lt;/P&gt;&lt;P&gt;t_packing_list-body_start = 1.&lt;/P&gt;&lt;P&gt;DESCRIBE TABLE it_message LINES t_packing_list-body_num.&lt;/P&gt;&lt;P&gt;t_packing_list-doc_type = 'RAW'.&lt;/P&gt;&lt;P&gt;APPEND t_packing_list.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Create attachment notification&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;t_packing_list-transf_bin = 'X'.&lt;/P&gt;&lt;P&gt;t_packing_list-head_start = 1.&lt;/P&gt;&lt;P&gt;t_packing_list-head_num = 1.&lt;/P&gt;&lt;P&gt;t_packing_list-body_start = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DESCRIBE TABLE t_attachment LINES t_packing_list-body_num.&lt;/P&gt;&lt;P&gt;t_packing_list-doc_type = ld_format.&lt;/P&gt;&lt;P&gt;t_packing_list-obj_descr = ld_attdescription.&lt;/P&gt;&lt;P&gt;t_packing_list-obj_name = ld_attfilename.&lt;/P&gt;&lt;P&gt;t_packing_list-doc_size = t_packing_list-body_num * 255.&lt;/P&gt;&lt;P&gt;APPEND t_packing_list.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Add the recipients email address&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CLEAR t_receivers.&lt;/P&gt;&lt;P&gt;REFRESH t_receivers.&lt;/P&gt;&lt;P&gt;t_receivers-receiver = ld_email.&lt;/P&gt;&lt;P&gt;t_receivers-rec_type = 'U'.&lt;/P&gt;&lt;P&gt;t_receivers-com_type = 'INT'.&lt;/P&gt;&lt;P&gt;t_receivers-notif_del = 'X'.&lt;/P&gt;&lt;P&gt;t_receivers-notif_ndel = 'X'.&lt;/P&gt;&lt;P&gt;APPEND t_receivers.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'SO_DOCUMENT_SEND_API1'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;document_data = w_doc_data&lt;/P&gt;&lt;P&gt;put_in_outbox = 'X'&lt;/P&gt;&lt;P&gt;sender_address = ld_sender_address&lt;/P&gt;&lt;P&gt;sender_address_type = ld_sender_address_type&lt;/P&gt;&lt;P&gt;commit_work = 'X'&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;sent_to_all = w_sent_all&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;packing_list = t_packing_list&lt;/P&gt;&lt;P&gt;contents_bin = t_attachment&lt;/P&gt;&lt;P&gt;contents_txt = it_message&lt;/P&gt;&lt;P&gt;receivers = t_receivers&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;too_many_receivers = 1&lt;/P&gt;&lt;P&gt;document_not_sent = 2&lt;/P&gt;&lt;P&gt;document_type_not_exist = 3&lt;/P&gt;&lt;P&gt;operation_no_authorization = 4&lt;/P&gt;&lt;P&gt;parameter_error = 5&lt;/P&gt;&lt;P&gt;x_error = 6&lt;/P&gt;&lt;P&gt;enqueue_error = 7&lt;/P&gt;&lt;P&gt;OTHERS = 8.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate zerror return code&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ld_error = sy-subrc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate zreceiver return code&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;LOOP AT t_receivers.&lt;/P&gt;&lt;P&gt;ld_receiver = t_receivers-retrn_code.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form INITIATE_MAIL_EXECUTE_PROGRAM&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Instructs mail send program for SAPCONNECT to send email.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM initiate_mail_execute_program.&lt;/P&gt;&lt;P&gt;WAIT UP TO 2 SECONDS.&lt;/P&gt;&lt;P&gt;SUBMIT rsconn01 WITH mode = 'INT'&lt;/P&gt;&lt;P&gt;WITH output = 'X'&lt;/P&gt;&lt;P&gt;AND RETURN.&lt;/P&gt;&lt;P&gt;ENDFORM. " INITIATE_MAIL_EXECUTE_PROGRAM&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form POPULATE_EMAIL_MESSAGE_BODY&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate message body text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form populate_email_message_body.&lt;/P&gt;&lt;P&gt;REFRESH it_message.&lt;/P&gt;&lt;P&gt;it_message = 'Please find attached a list test ekpo records'.&lt;/P&gt;&lt;P&gt;APPEND it_message.&lt;/P&gt;&lt;P&gt;endform. " POPULATE_EMAIL_MESSAGE_BODY&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope this helps.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Sruthi&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 19 Feb 2007 14:25:53 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/email-prg/m-p/1968347#M397529</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-02-19T14:25:53Z</dc:date>
    </item>
    <item>
      <title>Re: Email Prg</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/email-prg/m-p/1968348#M397530</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Gurus,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Things are not working creates a problem for XLS format&lt;/P&gt;&lt;P&gt;but when I convert it to txt format it works fine&lt;/P&gt;&lt;P&gt;but the layout is not proper .. what could be the probs ?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;can anybody pls guide me&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;Aryan&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 20 Feb 2007 10:47:38 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/email-prg/m-p/1968348#M397530</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-02-20T10:47:38Z</dc:date>
    </item>
  </channel>
</rss>

