<?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: Excel file on application server in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/excel-file-on-application-server/m-p/1849724#M360097</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Peter,&lt;/P&gt;&lt;P&gt;I think it's possible to send an email via&lt;/P&gt;&lt;P&gt;SO_DOCUMENT_SEND_API1 with an EXCEL-Attachment.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;At this time i haven't an SAP-System.&lt;/P&gt;&lt;P&gt;Search in this Forum with SO_DOCUMENT_SEND_API1 and&lt;/P&gt;&lt;P&gt;EXCEL, i think you can find any ideas.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards, Dieter&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here one link&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards, Dieter&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Message was edited by: &lt;/P&gt;&lt;P&gt;        Dieter Gröhn&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 29 Jan 2007 15:50:44 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-01-29T15:50:44Z</dc:date>
    <item>
      <title>Excel file on application server</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/excel-file-on-application-server/m-p/1849723#M360096</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;We have a requirement where we will schedule a program in background and download data to 4 excel files.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My question is&lt;/P&gt;&lt;P&gt;1) Can we download data to the application server in.xls format?&lt;/P&gt;&lt;P&gt;2) If yes, then how can we send these excel files from application server to the user via e-mail? Any sample code would be welcome.&lt;/P&gt;&lt;P&gt;3) If we cant have the excel files mailed from application server to the users, then how can we save have the excel file from the application server to the desktop, so that we can mail the file manually?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 29 Jan 2007 15:39:17 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/excel-file-on-application-server/m-p/1849723#M360096</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-01-29T15:39:17Z</dc:date>
    </item>
    <item>
      <title>Re: Excel file on application server</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/excel-file-on-application-server/m-p/1849724#M360097</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Peter,&lt;/P&gt;&lt;P&gt;I think it's possible to send an email via&lt;/P&gt;&lt;P&gt;SO_DOCUMENT_SEND_API1 with an EXCEL-Attachment.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;At this time i haven't an SAP-System.&lt;/P&gt;&lt;P&gt;Search in this Forum with SO_DOCUMENT_SEND_API1 and&lt;/P&gt;&lt;P&gt;EXCEL, i think you can find any ideas.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards, Dieter&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here one link&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards, Dieter&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Message was edited by: &lt;/P&gt;&lt;P&gt;        Dieter Gröhn&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 29 Jan 2007 15:50:44 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/excel-file-on-application-server/m-p/1849724#M360097</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-01-29T15:50:44Z</dc:date>
    </item>
    <item>
      <title>Re: Excel file on application server</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/excel-file-on-application-server/m-p/1849725#M360098</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;peter,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You just give file extension as .xls for your first requirement.&lt;/P&gt;&lt;P&gt;for second requirement check this code.&lt;/P&gt;&lt;P&gt;REPORT  ZWPLC_CREST_DATA NO STANDARD PAGE HEADING&lt;/P&gt;&lt;P&gt;                                   LINE-SIZE  255&lt;/P&gt;&lt;P&gt;                                   LINE-COUNT 65.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLES:somlreci1.&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;GLOBAL VARIABLES                                                     *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;DATA g_mask(20) TYPE c VALUE ',&lt;STRONG&gt;.&lt;/STRONG&gt;, &lt;STRONG&gt;.&lt;/STRONG&gt;.'.&lt;/P&gt;&lt;P&gt;DATA v_index TYPE sy-index.&lt;/P&gt;&lt;P&gt;DATA p_index TYPE sy-index.&lt;/P&gt;&lt;P&gt;DATA p_error TYPE C.&lt;/P&gt;&lt;P&gt;DATA p_reform TYPE C.&lt;/P&gt;&lt;P&gt;DATA:w_cnt TYPE i,&lt;/P&gt;&lt;P&gt;     w_sent_all(1) TYPE c,&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;     w_doc_data LIKE sodocchgi1.&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;CONSTANTS                                                            *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;CONSTANTS: con_tab  type c value cl_abap_char_utilities=&amp;gt;HORIZONTAL_TAB,&lt;/P&gt;&lt;P&gt;           con_cret type c value cl_abap_char_utilities=&amp;gt;newline.&lt;/P&gt;&lt;P&gt;**********************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;STRUCTURES                                                           *&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;Structure used for flat file data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES :&lt;/P&gt;&lt;P&gt;        BEGIN OF x_data,&lt;/P&gt;&lt;P&gt;          data(1020) TYPE c,&lt;/P&gt;&lt;P&gt;        END   OF x_data.&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;      BEGIN OF wa_upload,&lt;/P&gt;&lt;P&gt;        spart      TYPE spart,   "Product Line.&lt;/P&gt;&lt;P&gt;        matnr      TYPE matnr,   "Product Number.&lt;/P&gt;&lt;P&gt;        zctry(4)      TYPE C,"Geographic Hierarchy Country.&lt;/P&gt;&lt;P&gt;        zwstdt      TYPE char10,  "Start Date.&lt;/P&gt;&lt;P&gt;        zweddt     TYPE char10,  "Change date date.&lt;/P&gt;&lt;P&gt;     END OF wa_upload.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FIELD-SYMBOLS: &amp;lt;FS&amp;gt;.&lt;/P&gt;&lt;P&gt;&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;INTERNAL TABLES                                                      *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;*DATA:t_upload TYPE STANDARD TABLE OF wa_upload.&lt;/P&gt;&lt;P&gt;DATA:t_zwwwgehrdf LIKE zwwwgehrdf OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA:t_zwwwgehrdf_hash LIKE HASHED TABLE OF t_zwwwgehrdf&lt;/P&gt;&lt;P&gt;                        WITH UNIQUE KEY zwishp WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA:t_mara TYPE STANDARD TABLE OF mara WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA:t_mara_hash LIKE HASHED TABLE OF t_mara&lt;/P&gt;&lt;P&gt;                        WITH UNIQUE KEY matnr WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA:t_error TYPE STANDARD TABLE OF x_data WITH HEADER LINE.&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;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;DATA:lw_data TYPE STANDARD TABLE OF x_data WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;     BEGIN OF t_upload OCCURS 0,&lt;/P&gt;&lt;P&gt;       matnr      TYPE matnr,    "Product Number.&lt;/P&gt;&lt;P&gt;       zwgehrrg   TYPE zwgehrrg, "Geographic Hierarchy Region.&lt;/P&gt;&lt;P&gt;       zwgehrct   TYPE zwgehrct, "Geographic Hierarchy Country.&lt;/P&gt;&lt;P&gt;       zwgbev     TYPE zwgbev,   "Global Event Code.&lt;/P&gt;&lt;P&gt;       zwpldt     TYPE char10,   "Planned Date.&lt;/P&gt;&lt;P&gt;       zwpltm     TYPE char8,    "Planned Time.&lt;/P&gt;&lt;P&gt;       zwacdt     TYPE char10,   "Actual date.&lt;/P&gt;&lt;P&gt;       zwactm     TYPE char8,    "Actual Time.&lt;/P&gt;&lt;P&gt;       zwenfl     TYPE zwenfl,   "Encrypt Flag&lt;/P&gt;&lt;P&gt;       zwcrdt     TYPE char10 ,  "Created date.&lt;/P&gt;&lt;P&gt;       zwcrtm     TYPE char8 ,   "Created Time.&lt;/P&gt;&lt;P&gt;       zwcrus     TYPE zwcrus ,  "Created User.&lt;/P&gt;&lt;P&gt;       zwchdt     TYPE char10,   "Changed date&lt;/P&gt;&lt;P&gt;       zwchtm     TYPE char8,   "Change Time.&lt;/P&gt;&lt;P&gt;       zwchus     TYPE zwchus,   "Change User.&lt;/P&gt;&lt;P&gt;       xloek      TYPE xloek,    "Item Is Deleted.&lt;/P&gt;&lt;P&gt;      END OF t_upload.&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;SELECTION-SCREEN                                                     *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PARAMETER:&lt;/P&gt;&lt;P&gt;                 p_infile TYPE localfile OBLIGATORY,&lt;/P&gt;&lt;P&gt;                 p_otfile TYPE localfile OBLIGATORY.&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS:  p_email  FOR somlreci1-receiver.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK  b1.&lt;/P&gt;&lt;P&gt;&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;P&gt;&lt;STRONG&gt;--&lt;/STRONG&gt;&lt;DEL&gt;&lt;STRONG&gt;&lt;/STRONG&gt;&lt;/DEL&gt;&lt;/P&gt;&lt;HR originaltext="----------" /&gt;At Selection-Screen- -&lt;HR originaltext="-------------------------------" /&gt;&lt;P&gt;&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;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_infile.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'TB_LIMIT_WS_FILENAME_GET'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      def_filename     = p_infile&lt;/P&gt;&lt;P&gt;      mask             = g_mask&lt;/P&gt;&lt;P&gt;      title            = 'INPUT FILE'&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      filename         = p_infile&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      selection_cancel = 1&lt;/P&gt;&lt;P&gt;      selection_error  = 2&lt;/P&gt;&lt;P&gt;      OTHERS           = 3.&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_otfile.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'TB_LIMIT_WS_FILENAME_GET'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      def_filename     = p_infile&lt;/P&gt;&lt;P&gt;      mask             = g_mask&lt;/P&gt;&lt;P&gt;      title            = 'INPUT FILE'&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      filename         = p_infile&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      selection_cancel = 1&lt;/P&gt;&lt;P&gt;      selection_error  = 2&lt;/P&gt;&lt;P&gt;      OTHERS           = 3.&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&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;INITIALIZATION                                                       *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;INITIALIZATION.&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;AT SELECTION SCREEN                                                  *&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;TOP-OF-PAGE                                                          *&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;START-OF-SELECTION                                                   *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;  PERFORM Get_file.&lt;/P&gt;&lt;P&gt;  PERFORM write_file.&lt;/P&gt;&lt;P&gt;  IF p_error = 'X'.&lt;/P&gt;&lt;P&gt;    PERFORM populate_message_body.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF p_reform = 'X'.&lt;/P&gt;&lt;P&gt;    PERFORM send_attachment tables it_message&lt;/P&gt;&lt;P&gt;                               it_attach&lt;/P&gt;&lt;P&gt;                        using&lt;/P&gt;&lt;P&gt;                       'Crest to PLC Error Report'&lt;/P&gt;&lt;P&gt;                                        'XLS'&lt;/P&gt;&lt;P&gt;                                        p_infile&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;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;END-OF-SELECTION                                                   *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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_file&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;&lt;/P&gt;&lt;P&gt;FORM get_file.&lt;/P&gt;&lt;P&gt;*Local variables.&lt;/P&gt;&lt;P&gt;  DATA :l_date(10) TYPE c.&lt;/P&gt;&lt;P&gt;  DATA :l_time(8)  TYPE c.&lt;/P&gt;&lt;P&gt;  DATA : wa_error TYPE x_data.&lt;/P&gt;&lt;P&gt;  DATA : p_sep(1) VALUE ',' .&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Determine file path&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'Z_W_PREFIX_PATH'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      logical_file   = 'ZLF_NT_DATA'&lt;/P&gt;&lt;P&gt;      input_file     = p_infile&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      filename       = p_infile&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      file_not_found = 1&lt;/P&gt;&lt;P&gt;      too_small      = 2&lt;/P&gt;&lt;P&gt;      OTHERS         = 3.&lt;/P&gt;&lt;P&gt;&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;Creted Date and Time Format&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  l_date = sy-datum.&lt;/P&gt;&lt;P&gt;  concatenate l_date&lt;EM&gt;4(2) '/' l_date&lt;/EM&gt;6(2) '/'&lt;/P&gt;&lt;P&gt;  l_date+0(4) into l_date.&lt;/P&gt;&lt;P&gt;  l_time = sy-uzeit.&lt;/P&gt;&lt;P&gt;  concatenate l_time&lt;EM&gt;0(2) ':' l_time&lt;/EM&gt;2(2) ':'&lt;/P&gt;&lt;P&gt;  l_time+4(2) into l_time.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Get Data From Mara Table.&lt;/P&gt;&lt;P&gt; SELECT matnr spart FROM mara INTO CORRESPONDING FIELDS OF TABLE t_mara&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;  t_mara_hash[] = t_mara[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Get data From Zwwwgehrdf Table.&lt;/P&gt;&lt;P&gt;  SELECT * FROM  zwwwgehrdf INTO TABLE t_zwwwgehrdf.&lt;/P&gt;&lt;P&gt;  t_zwwwgehrdf_hash[] = t_zwwwgehrdf[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Get File From App server and Process the File.&lt;/P&gt;&lt;P&gt;  OPEN DATASET p_infile  FOR INPUT IN TEXT MODE encoding default.&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    DO.&lt;/P&gt;&lt;P&gt;      TRY.&lt;/P&gt;&lt;P&gt;          READ DATASET p_infile INTO lw_data.&lt;/P&gt;&lt;P&gt;        CATCH cx_sy_conversion_codepage cx_sy_codepage_converter_init.&lt;/P&gt;&lt;P&gt;      ENDTRY.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;        wa_upload = lw_data.&lt;/P&gt;&lt;P&gt;        IF NOT wa_upload-matnr = space.&lt;/P&gt;&lt;P&gt;          APPEND lw_data.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Split The records at comma.&lt;/P&gt;&lt;P&gt;        SPLIT wa_upload AT ',' INTO  wa_upload-spart  wa_upload-matnr&lt;/P&gt;&lt;P&gt;                            wa_upload-zctry  wa_upload-zwstdt&lt;/P&gt;&lt;P&gt;                            wa_upload-zweddt.&lt;/P&gt;&lt;P&gt;*validate Material Number And Country.&lt;/P&gt;&lt;P&gt;        IF NOT wa_upload  IS INITIAL.&lt;/P&gt;&lt;P&gt;          READ TABLE t_mara_hash WITH KEY matnr = wa_upload-matnr.&lt;/P&gt;&lt;P&gt;          IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;            READ TABLE t_mara WITH KEY matnr = wa_upload-matnr&lt;/P&gt;&lt;P&gt;                                       spart = wa_upload-spart.&lt;/P&gt;&lt;P&gt;            IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;              READ TABLE t_zwwwgehrdf_hash WITH KEY zwishp =&lt;/P&gt;&lt;P&gt;                                           wa_upload-zctry.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Reformat The Internal table.&lt;/P&gt;&lt;P&gt;              IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;*Validate start date and format.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                IF NOT wa_upload-zwstdt IS INITIAL.&lt;/P&gt;&lt;P&gt;                  TRANSLATE wa_upload-zwstdt USING ' $'.&lt;/P&gt;&lt;P&gt;                  IF  NOT wa_upload-zwstdt  CA '$'.&lt;/P&gt;&lt;P&gt;                    MOVE-CORRESPONDING wa_upload TO t_upload.&lt;/P&gt;&lt;P&gt;                    t_upload-zwgehrct = wa_upload-zctry.&lt;/P&gt;&lt;P&gt;                    t_upload-zwgehrrg = 'ALL'.&lt;/P&gt;&lt;P&gt;                    t_upload-zwgbev = 'GA'.&lt;/P&gt;&lt;P&gt;                    t_upload-zwpldt = wa_upload-zwstdt.&lt;/P&gt;&lt;P&gt;                    t_upload-zwpltm = '06:00:00'.&lt;/P&gt;&lt;P&gt;                    t_upload-zwacdt = wa_upload-zwstdt.&lt;/P&gt;&lt;P&gt;                    t_upload-zwactm = '06:00:00'.&lt;/P&gt;&lt;P&gt;                    t_upload-zwcrdt = l_date.&lt;/P&gt;&lt;P&gt;                    t_upload-zwcrtm = l_time.&lt;/P&gt;&lt;P&gt;                    t_upload-zwcrus = sy-uname.&lt;/P&gt;&lt;P&gt;                    APPEND t_upload.&lt;/P&gt;&lt;P&gt;                  ELSE.&lt;/P&gt;&lt;P&gt;                    CONCATENATE wa_upload-matnr 'Invalid Date Format'&lt;/P&gt;&lt;P&gt;                      INTO wa_error SEPARATED BY SPACE .&lt;/P&gt;&lt;P&gt;                  ENDIF.&lt;/P&gt;&lt;P&gt;                ENDIF.&lt;/P&gt;&lt;P&gt;*Validate End date and format.&lt;/P&gt;&lt;P&gt;                IF NOT wa_upload-zweddt IS INITIAL.&lt;/P&gt;&lt;P&gt;                  TRANSLATE wa_upload-zweddt USING' $'.&lt;/P&gt;&lt;P&gt;                  IF  NOT wa_upload-zweddt CA '$'.&lt;/P&gt;&lt;P&gt;                    MOVE-CORRESPONDING wa_upload TO t_upload.&lt;/P&gt;&lt;P&gt;                    t_upload-zwgehrct = wa_upload-zctry.&lt;/P&gt;&lt;P&gt;                    t_upload-zwgehrrg = 'ALL'.&lt;/P&gt;&lt;P&gt;                    t_upload-zwgbev = 'ES'.&lt;/P&gt;&lt;P&gt;                    t_upload-zwpldt = wa_upload-zweddt.&lt;/P&gt;&lt;P&gt;                    t_upload-zwpltm = '06:00:00'.&lt;/P&gt;&lt;P&gt;                    t_upload-zwacdt = wa_upload-zweddt.&lt;/P&gt;&lt;P&gt;                    t_upload-zwactm = '06:00:00'.&lt;/P&gt;&lt;P&gt;                    t_upload-zwcrdt = l_date.&lt;/P&gt;&lt;P&gt;                    t_upload-zwcrtm = l_time.&lt;/P&gt;&lt;P&gt;                    t_upload-zwcrus = sy-uname.&lt;/P&gt;&lt;P&gt;                    APPEND t_upload.&lt;/P&gt;&lt;P&gt;*Error Handling.&lt;/P&gt;&lt;P&gt;                  ELSE.&lt;/P&gt;&lt;P&gt;                    CONCATENATE wa_upload-matnr 'Invalid Date Format'&lt;/P&gt;&lt;P&gt;                     INTO wa_error SEPARATED BY SPACE .&lt;/P&gt;&lt;P&gt;                  ENDIF.&lt;/P&gt;&lt;P&gt;                ENDIF..&lt;/P&gt;&lt;P&gt;              ELSE.&lt;/P&gt;&lt;P&gt;                READ TABLE t_zwwwgehrdf_hash WITH KEY zwatctgp =&lt;/P&gt;&lt;P&gt;                                            wa_upload-zctry.&lt;/P&gt;&lt;P&gt;                IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;             LOOP AT t_zwwwgehrdf_hash WHERE zwatctgp = wa_upload-zctry.&lt;/P&gt;&lt;P&gt;                    IF NOT wa_upload-zweddt IS INITIAL.&lt;/P&gt;&lt;P&gt;                      TRANSLATE wa_upload-zweddt USING' $'.&lt;/P&gt;&lt;P&gt;                      IF  NOT wa_upload-zweddt CA '$'.&lt;/P&gt;&lt;P&gt;                        MOVE-CORRESPONDING wa_upload TO t_upload.&lt;/P&gt;&lt;P&gt;                        t_upload-zwgehrct = t_zwwwgehrdf_hash-zwishp.&lt;/P&gt;&lt;P&gt;                        t_upload-zwgehrrg = 'ALL'.&lt;/P&gt;&lt;P&gt;                        t_upload-zwgbev = 'GA'.&lt;/P&gt;&lt;P&gt;                        t_upload-zwpldt = wa_upload-zwstdt.&lt;/P&gt;&lt;P&gt;                        t_upload-zwpltm = '06:00:00'.&lt;/P&gt;&lt;P&gt;                        t_upload-zwacdt = wa_upload-zwstdt.&lt;/P&gt;&lt;P&gt;                        t_upload-zwactm = '06:00:00'.&lt;/P&gt;&lt;P&gt;                        t_upload-zwcrdt = l_date.&lt;/P&gt;&lt;P&gt;                        t_upload-zwcrtm = l_time.&lt;/P&gt;&lt;P&gt;                        t_upload-zwcrus = sy-uname.&lt;/P&gt;&lt;P&gt;                        APPEND t_upload.&lt;/P&gt;&lt;P&gt;                      ELSE.&lt;/P&gt;&lt;P&gt;                      CONCATENATE wa_upload-matnr 'Invalid Date Format'&lt;/P&gt;&lt;P&gt;                        INTO wa_error SEPARATED BY SPACE .&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;*Validate End date and format.&lt;/P&gt;&lt;P&gt;                    IF NOT wa_upload-zweddt IS INITIAL.&lt;/P&gt;&lt;P&gt;                      TRANSLATE wa_upload-zweddt USING' $'.&lt;/P&gt;&lt;P&gt;                      IF  NOT wa_upload-zweddt CA '$'.&lt;/P&gt;&lt;P&gt;                        MOVE-CORRESPONDING wa_upload TO t_upload.&lt;/P&gt;&lt;P&gt;                        t_upload-zwgehrct = t_zwwwgehrdf_hash-zwishp.&lt;/P&gt;&lt;P&gt;                        t_upload-zwgehrrg = 'ALL'.&lt;/P&gt;&lt;P&gt;                        t_upload-zwgbev = 'ES'.&lt;/P&gt;&lt;P&gt;                        t_upload-zwpldt = wa_upload-zweddt.&lt;/P&gt;&lt;P&gt;                        t_upload-zwpltm = '06:00:00'.&lt;/P&gt;&lt;P&gt;                        t_upload-zwacdt = wa_upload-zweddt.&lt;/P&gt;&lt;P&gt;                        t_upload-zwactm = '06:00:00'.&lt;/P&gt;&lt;P&gt;                        t_upload-zwcrdt = l_date.&lt;/P&gt;&lt;P&gt;                        t_upload-zwcrtm = l_time.&lt;/P&gt;&lt;P&gt;                        t_upload-zwcrus = sy-uname.&lt;/P&gt;&lt;P&gt;                        APPEND t_upload.&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;&lt;/P&gt;&lt;P&gt;                ELSE.&lt;/P&gt;&lt;P&gt;                  CONCATENATE  wa_upload-zctry&lt;/P&gt;&lt;P&gt;           'Invalid Country Code'  p_sep INTO wa_error SEPARATED BY&lt;/P&gt;&lt;P&gt;                  SPACE.&lt;/P&gt;&lt;P&gt;                ENDIF.&lt;/P&gt;&lt;P&gt;              ENDIF.&lt;/P&gt;&lt;P&gt;            ELSE.&lt;/P&gt;&lt;P&gt;              CONCATENATE  wa_upload-spart&lt;/P&gt;&lt;P&gt;              'Invalid Product Line '  INTO wa_error SEPARATED BY&lt;/P&gt;&lt;P&gt;               SPACE.&lt;/P&gt;&lt;P&gt;              READ TABLE t_zwwwgehrdf_hash WITH KEY ZWISHP =&lt;/P&gt;&lt;P&gt;                                             wa_upload-zctry.&lt;/P&gt;&lt;P&gt;              IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;                READ TABLE t_zwwwgehrdf_hash WITH KEY zwatctgp =&lt;/P&gt;&lt;P&gt;                                           wa_upload-zctry.&lt;/P&gt;&lt;P&gt;                IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                  CONCATENATE  wa_error p_sep wa_upload-zctry&lt;/P&gt;&lt;P&gt;           'Invalid Country Code'  INTO wa_error SEPARATED BY SPACE.&lt;/P&gt;&lt;P&gt;                ENDIF.&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;&lt;/P&gt;&lt;P&gt;          ELSE.&lt;/P&gt;&lt;P&gt;            CONCATENATE wa_upload-matnr&lt;/P&gt;&lt;P&gt;            'Invalid Material Number '&lt;/P&gt;&lt;P&gt;               INTO wa_error SEPARATED BY SPACE.&lt;/P&gt;&lt;P&gt;            READ TABLE t_mara WITH KEY matnr = wa_upload-matnr&lt;/P&gt;&lt;P&gt;                                       spart = wa_upload-spart.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;              CONCATENATE  wa_error p_sep wa_upload-spart&lt;/P&gt;&lt;P&gt;             'Invalid Product Line ' INTO wa_error SEPARATED BY&lt;/P&gt;&lt;P&gt;             SPACE .&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;            READ TABLE t_zwwwgehrdf_hash WITH KEY zwishp =&lt;/P&gt;&lt;P&gt;                                       wa_upload-zctry.&lt;/P&gt;&lt;P&gt;            IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;              READ TABLE t_zwwwgehrdf_hash WITH KEY zwatctgp =&lt;/P&gt;&lt;P&gt;                                         wa_upload-zctry.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;              IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;                CONCATENATE  wa_error p_Sep wa_upload-zctry&lt;/P&gt;&lt;P&gt;          'Invalid Country Code '  INTO wa_error SEPARATED BY SPACE.&lt;/P&gt;&lt;P&gt;              ENDIF.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;        ELSE.&lt;/P&gt;&lt;P&gt;          CONTINUE.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        EXIT.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      CLEAR t_upload.&lt;/P&gt;&lt;P&gt;      CLEAR wa_upload.&lt;/P&gt;&lt;P&gt;      IF wa_error IS NOT INiTIAL.&lt;/P&gt;&lt;P&gt;        APPEND wa_error TO t_error.&lt;/P&gt;&lt;P&gt;        p_reform = 'X'.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDDO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SORT t_error BY data.&lt;/P&gt;&lt;P&gt;    DELETE  ADJACENT DUPLICATES FROM t_error  COMPARING data.&lt;/P&gt;&lt;P&gt;    it_message = 'Error in File'.&lt;/P&gt;&lt;P&gt;    Append it_message.&lt;/P&gt;&lt;P&gt;    LOOP AT t_error.&lt;/P&gt;&lt;P&gt;      it_attach = t_error.&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;  ELSE.&lt;/P&gt;&lt;P&gt;    CONCATENATE  'Error opening file ' p_infile INTO it_message.&lt;/P&gt;&lt;P&gt;    APPEND it_message.&lt;/P&gt;&lt;P&gt;    WRITE:/ it_message.&lt;/P&gt;&lt;P&gt;    p_error = 'X'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    "get_file.&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  write_file&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 write_file.&lt;/P&gt;&lt;P&gt;  DATA l_index TYPE sy-index.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Determine file path&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'Z_W_PREFIX_PATH'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      logical_file   = 'ZLF_NT_DATA'&lt;/P&gt;&lt;P&gt;      input_file     = p_otfile&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      filename       = p_otfile&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      file_not_found = 1&lt;/P&gt;&lt;P&gt;      too_small      = 2&lt;/P&gt;&lt;P&gt;      OTHERS         = 3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Send Reformated file to App server.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE t_error LINES p_index.&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE lw_data LINES l_index.&lt;/P&gt;&lt;P&gt;  v_index = l_index - p_index.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF t_upload[] IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    OPEN DATASET p_otfile FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      LOOP AT t_upload.&lt;/P&gt;&lt;P&gt;        TRANSFER t_upload TO p_otfile.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;WRITE &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; 'PLC Crest Reformated  File data is downloaded sucessfully to',&lt;/P&gt;&lt;P&gt;               60 p_otfile COLOR 7 INVERSE,&lt;/P&gt;&lt;P&gt;             / 'Total number of records Reformated are:',&lt;/P&gt;&lt;P&gt;               60 v_index COLOR 7 INVERSE,&lt;/P&gt;&lt;P&gt;             / 'Total number of Error records  are:',&lt;/P&gt;&lt;P&gt;               60 p_index COLOR 7 INVERSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      SKIP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CLOSE DATASET p_otfile.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      MESSAGE e398(00) WITH 'Error in opening  output file - ' p_otfile.&lt;/P&gt;&lt;P&gt;      SKIP.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt; WRITE:/ 'PLC Crest Reformated  File data is downloaded sucessfully to',&lt;/P&gt;&lt;P&gt;               60 p_otfile COLOR 7 INVERSE,&lt;/P&gt;&lt;P&gt;             / 'Total number of records Reformated are:',&lt;/P&gt;&lt;P&gt;               60 v_index COLOR 7 INVERSE,&lt;/P&gt;&lt;P&gt;             / 'Total number of Error records  are:',&lt;/P&gt;&lt;P&gt;               60 p_index COLOR 7 INVERSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&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;ENDFORM.                    "write_file&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_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;      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_message_body.&lt;/P&gt;&lt;P&gt;*Email Message only For File opening Errors.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; w_doc_data-obj_name = 'TEST'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  w_doc_data-obj_descr = 'Crest to Plc Data'.&lt;/P&gt;&lt;P&gt;  w_doc_data-obj_langu = sy-langu.&lt;/P&gt;&lt;P&gt;  loop  at p_email.&lt;/P&gt;&lt;P&gt; t_receivers-receiver = p_email-low.&lt;/P&gt;&lt;P&gt;    t_receivers-rec_type = 'U'.&lt;/P&gt;&lt;P&gt;    append t_receivers.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;  call function 'SO_NEW_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;      document_type              = 'RAW'&lt;/P&gt;&lt;P&gt;      put_in_outbox              = 'X'&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      object_header              = it_message&lt;/P&gt;&lt;P&gt;      object_content             = 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;P&gt;  if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    commit work.&lt;/P&gt;&lt;P&gt;    SUBMIT rsconn01 USING SELECTION-SET 'SAP&amp;amp;CONNECTINT' AND RETURN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;P&gt;    MESSAGE s027(vv) WITH 'E-mail not sent'.&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;ENDFORM.                    "populate_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;P&gt;*&amp;amp;      Form  send_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;      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;PIT_MESSAGEtext&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;PIT_ATTACH text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_EMAIL    text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_MTITLE   text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_FORMAT   text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_FILENAME text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_ATTDESCRItextN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_SENDER_ADtextS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_SENDER_ADtext_TYPE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_ERROR    text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_RECIEVER 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 send_attachment tables pit_message&lt;/P&gt;&lt;P&gt;                            pit_attach&lt;/P&gt;&lt;P&gt;                     using&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;*Send Error File via Email With Attachment.&lt;/P&gt;&lt;P&gt;  DATA:&lt;/P&gt;&lt;P&gt;          ld_mtitle LIKE sodocchgi1-obj_descr,&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;&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_filename.&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;  w_doc_data-doc_size = 1.&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;&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;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  =  p_filename.&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;  LOOP AT p_email.&lt;/P&gt;&lt;P&gt;    t_receivers-receiver = p_email-low.&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;    APPEND t_receivers.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&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;      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;  if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    commit work.&lt;/P&gt;&lt;P&gt;    SUBMIT rsconn01 USING SELECTION-SET 'SAP&amp;amp;CONNECTINT' AND RETURN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;P&gt;    MESSAGE s027(vv) WITH 'E-mail not sent'.&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;ENDFORM.                    "send_attachment&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;for ur 3 rd requirement . use open dataset and store data in internal table then use gui_download.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope this sloves your problem.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 29 Jan 2007 15:52:49 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/excel-file-on-application-server/m-p/1849725#M360098</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-01-29T15:52:49Z</dc:date>
    </item>
  </channel>
</rss>

