<?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: Sending mails in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/sending-mails/m-p/3191820#M760388</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;i have pasted a code here which is used to attach a excel file and send as a mail....try this and analyze this in debugger&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT  ZIND_GOODS_XLS_EMAIL MESSAGE-ID zmdm.&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Tables&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;TABLES: mara,marc,mard,mkpf,mseg,likp,t156ht,kna1,lfa1, vbfa, lips.&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Structures and Internal tables&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;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF itab OCCURS 0,&lt;/P&gt;&lt;P&gt;   lgort LIKE mseg-lgort,  " St Location&lt;/P&gt;&lt;P&gt;   name1 LIKE kna1-name1,  " Ship to Name&lt;/P&gt;&lt;P&gt;   ebeln LIKE mseg-ebeln,  " PO Num&lt;/P&gt;&lt;P&gt;   bktxt LIKE mkpf-bktxt,  " Delivery Header&lt;/P&gt;&lt;P&gt;   ort01 LIKE kna1-ort01,  " Ship to City&lt;/P&gt;&lt;P&gt;   budat LIKE mkpf-budat,  " Posting date&lt;/P&gt;&lt;P&gt;   bwart LIKE mseg-bwart,  " Movement Type&lt;/P&gt;&lt;P&gt;   btext LIKE t156ht-btext,  " Movement Type Text&lt;/P&gt;&lt;P&gt;   mblnr LIKE mkpf-mblnr,  " Mat Doc Number&lt;/P&gt;&lt;P&gt;   xblnr LIKE mkpf-xblnr,  " Dlvy No&lt;/P&gt;&lt;P&gt;   matnr LIKE mseg-matnr,  " Material No&lt;/P&gt;&lt;P&gt;   maktx LIKE makt-maktx,  " Mat Desc&lt;/P&gt;&lt;P&gt;   menge LIKE mseg-menge,  " Qty&lt;/P&gt;&lt;P&gt;   dmbtr LIKE mseg-dmbtr,  " Amount in local currency&lt;/P&gt;&lt;P&gt;*dmbtr(15) type c,&lt;/P&gt;&lt;P&gt;   kunnr LIKE mseg-kunnr,  " Customer NO&lt;/P&gt;&lt;P&gt;   lifnr LIKE mseg-lifnr,  " Vendor No&lt;/P&gt;&lt;P&gt;   kdauf LIKE mseg-kdauf,  "Sales order&lt;/P&gt;&lt;P&gt;   mat_kdauf LIKE mseg-mat_kdauf,   "SAles order for mvt type 653  "0001&lt;/P&gt;&lt;P&gt;   meins LIKE mseg-meins,&lt;/P&gt;&lt;P&gt;   werks LIKE mseg-werks,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;END OF itab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF t_fin OCCURS 0,&lt;/P&gt;&lt;P&gt;       lgort LIKE mseg-lgort,  " St Location&lt;/P&gt;&lt;P&gt;       lifnr LIKE mseg-lifnr,  " Customer Or Vendor&lt;/P&gt;&lt;P&gt;       name1 LIKE kna1-name1,  " Ship to Name&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ebeln LIKE mseg-ebeln,  " PO Num            "0001&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       ebeln LIKE vbak-bstnk,  " PO num             "0001&lt;/P&gt;&lt;P&gt;       bktxt LIKE mkpf-bktxt,  " Delivery Header&lt;/P&gt;&lt;P&gt;       ort01 LIKE kna1-ort01,  " Ship to City&lt;/P&gt;&lt;P&gt;       budat LIKE mkpf-budat,  " Posting date&lt;/P&gt;&lt;P&gt;       bwart LIKE mseg-bwart,  " Movement Type&lt;/P&gt;&lt;P&gt;       btext LIKE t156ht-btext," Movement Type Text&lt;/P&gt;&lt;P&gt;       mblnr LIKE mkpf-mblnr,  " Mat Doc Number&lt;/P&gt;&lt;P&gt;       xblnr LIKE mkpf-xblnr,  " Dlvy No&lt;/P&gt;&lt;P&gt;       matnr LIKE mseg-matnr,  " Material No&lt;/P&gt;&lt;P&gt;       maktx LIKE makt-maktx,  " Mat Desc&lt;/P&gt;&lt;P&gt;       menge(13) TYPE C,  " Qty&lt;/P&gt;&lt;P&gt;       dmbtr(13) TYPE C,  " Amount in local currency&lt;/P&gt;&lt;P&gt;    END OF t_fin.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; DATA : T_FIN TYPE STANDARD TABLE OF IT_FIN INITIAL SIZE 0 WITH HEADER LINE,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           WA_FIN TYPE IT_FIN.&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;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**********&lt;/P&gt;&lt;P&gt;     TYPES : BEGIN OF T_CHARTABLES,&lt;/P&gt;&lt;P&gt;             LGORT(4) TYPE C,&lt;/P&gt;&lt;P&gt;             LIFNR(10) TYPE C,&lt;/P&gt;&lt;P&gt;             NAME1(35) TYPE C,&lt;/P&gt;&lt;P&gt;             EBELN(20) TYPE C,&lt;/P&gt;&lt;P&gt;             BKTXT(25) TYPE C,&lt;/P&gt;&lt;P&gt;             ort01(35) TYPE C,&lt;/P&gt;&lt;P&gt;             BUDAT(8) TYPE C,&lt;/P&gt;&lt;P&gt;             BWART(3) TYPE C,&lt;/P&gt;&lt;P&gt;             BTEXT(20) TYPE C,&lt;/P&gt;&lt;P&gt;             MBLNR(10) TYPE C,&lt;/P&gt;&lt;P&gt;             XBLNR(16) TYPE C,&lt;/P&gt;&lt;P&gt;             MATNR(18) TYPE C,&lt;/P&gt;&lt;P&gt;             MAKTX(40) TYPE C,&lt;/P&gt;&lt;P&gt;             MENGE(13) TYPE C,&lt;/P&gt;&lt;P&gt;             DMBTR(13) TYPE C,&lt;/P&gt;&lt;P&gt;          END OF T_CHARTABLES.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : WA_CHARTABLES TYPE T_CHARTABLES.&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;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;Selection-screen&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;SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS: s_werks FOR marc-werks OBLIGATORY,&lt;/P&gt;&lt;P&gt;                s_lgort FOR mard-lgort DEFAULT '0010',&lt;/P&gt;&lt;P&gt;                s_matnr FOR mara-matnr,&lt;/P&gt;&lt;P&gt;                s_matkl FOR mara-matkl,&lt;/P&gt;&lt;P&gt;                s_budat FOR mkpf-budat,&lt;/P&gt;&lt;P&gt;                s_bwart FOR mseg-bwart.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK blk1.&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 'mailme.kar@gmail.com'.&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;  PERFORM 50_check_authority.&lt;/P&gt;&lt;P&gt;  PERFORM 75_EMAIL_VALIDITY.&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;START-OF-SELECTION.&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;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM 100_collect_dbrecs.&lt;/P&gt;&lt;P&gt;  PERFORM 200_process_dbrecs.&lt;/P&gt;&lt;P&gt;  PERFORM 300_xls_data_table.&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;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;STRONG&gt;----&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;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  perform 400_populate_email_mess_body.&lt;/P&gt;&lt;P&gt;&lt;/P&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;                                      'GOODS'&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;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  50_check_authority&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 50_check_authority .&lt;/P&gt;&lt;P&gt; TABLES: t001w.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT werks&lt;/P&gt;&lt;P&gt;        FROM t001w&lt;/P&gt;&lt;P&gt;        INTO t001w-werks&lt;/P&gt;&lt;P&gt;        WHERE werks IN s_werks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    AUTHORITY-CHECK OBJECT 'M_MATE_WRK'&lt;/P&gt;&lt;P&gt;               ID 'ACTVT' FIELD '03'&lt;/P&gt;&lt;P&gt;               ID 'WERKS' FIELD t001w-werks.&lt;/P&gt;&lt;P&gt;&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;      MESSAGE e000 WITH text-a00.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDSELECT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; AUTHORITY-CHECK OBJECT 'M_MATE_BUK'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                ID 'WERKS' FIELD s_bukrs.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    " 50_check_authority&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  100_collect_dbrecs&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 100_collect_dbrecs .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES : BEGIN OF stype_fields,&lt;/P&gt;&lt;P&gt;          fieldname          TYPE  name_feld,&lt;/P&gt;&lt;P&gt;          END OF stype_fields.&lt;/P&gt;&lt;P&gt;  TYPES : stab_fields         TYPE STANDARD TABLE&lt;/P&gt;&lt;P&gt;                              OF stype_fields&lt;/P&gt;&lt;P&gt;                              WITH DEFAULT KEY.&lt;/P&gt;&lt;P&gt;  DATA : l_t_fields           TYPE stab_fields.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;create table with the fields to be transported&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  APPEND 'MSEG~AUFNR' TO l_t_fields.&lt;/P&gt;&lt;P&gt;  APPEND 'MKPF~BKTXT' TO l_t_fields.&lt;/P&gt;&lt;P&gt;  APPEND 'MKPF~BLDAT' TO l_t_fields.&lt;/P&gt;&lt;P&gt;  APPEND 'MSEG~BPMNG' TO l_t_fields.&lt;/P&gt;&lt;P&gt;  APPEND 'MSEG~BPRME' TO l_t_fields.&lt;/P&gt;&lt;P&gt;  APPEND 'MSEG~BSTME' TO l_t_fields.&lt;/P&gt;&lt;P&gt;  APPEND 'MSEG~BSTMG' TO l_t_fields.&lt;/P&gt;&lt;P&gt;  APPEND 'MKPF~BUDAT' TO l_t_fields.&lt;/P&gt;&lt;P&gt;  APPEND 'MSEG~BWART' TO l_t_fields.&lt;/P&gt;&lt;P&gt;  APPEND 'MSEG~EBELN' TO l_t_fields.&lt;/P&gt;&lt;P&gt;  APPEND 'MSEG~EBELP' TO l_t_fields.&lt;/P&gt;&lt;P&gt;  APPEND 'MSEG~KUNNR' TO l_t_fields.&lt;/P&gt;&lt;P&gt;  APPEND 'MSEG~LGORT' TO l_t_fields.  " St Location&lt;/P&gt;&lt;P&gt;  APPEND 'MSEG~LIFNR' TO l_t_fields.  " Vendor Num&lt;/P&gt;&lt;P&gt;  APPEND 'MSEG~MATNR' TO l_t_fields.  " Mat No&lt;/P&gt;&lt;P&gt;  APPEND 'MSEG~KDAUF' TO l_t_fields.&lt;/P&gt;&lt;P&gt;  APPEND 'MSEG~MAT_KDAUF' TO l_t_fields.  "sales order for mvt type 653 "0001&lt;/P&gt;&lt;P&gt;  APPEND 'MKPF~MBLNR' TO l_t_fields.&lt;/P&gt;&lt;P&gt;  APPEND 'MSEG~MEINS' TO l_t_fields.&lt;/P&gt;&lt;P&gt;  APPEND 'MSEG~MENGE' TO l_t_fields.&lt;/P&gt;&lt;P&gt;  APPEND 'MSEG~WERKS' TO l_t_fields.&lt;/P&gt;&lt;P&gt;  APPEND 'MKPF~XBLNR' TO l_t_fields.&lt;/P&gt;&lt;P&gt;  APPEND 'MKPF~BKTXT' TO l_t_fields.&lt;/P&gt;&lt;P&gt;  APPEND 'MSEG~DMBTR' TO l_t_fields.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT (l_t_fields)&lt;/P&gt;&lt;P&gt;  INTO CORRESPONDING FIELDS OF TABLE itab&lt;/P&gt;&lt;P&gt;  FROM mkpf INNER JOIN mseg&lt;/P&gt;&lt;P&gt;  ON    mkpf&lt;SUB&gt;mandt = mseg&lt;/SUB&gt;mandt&lt;/P&gt;&lt;P&gt;    AND mkpf&lt;SUB&gt;mblnr = mseg&lt;/SUB&gt;mblnr&lt;/P&gt;&lt;P&gt;    AND mkpf&lt;SUB&gt;mjahr = mseg&lt;/SUB&gt;mjahr&lt;/P&gt;&lt;P&gt;     WHERE mkpf~budat IN s_budat&lt;/P&gt;&lt;P&gt;       AND mseg~bwart IN s_bwart&lt;/P&gt;&lt;P&gt;       AND mseg~lgort IN s_lgort&lt;/P&gt;&lt;P&gt;       AND mseg~matnr IN s_matnr&lt;/P&gt;&lt;P&gt;       AND mseg~werks IN s_werks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    " 100_collect_dbrecs&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  200_process_dbrecs&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 200_process_dbrecs .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: l_adrnr TYPE adrc-addrnumber.                       "0002&lt;/P&gt;&lt;P&gt;  LOOP AT itab.&lt;/P&gt;&lt;P&gt;    CLEAR: mara-matkl,t_fin.&lt;/P&gt;&lt;P&gt;    SELECT SINGLE matkl INTO mara-matkl&lt;/P&gt;&lt;P&gt;                        FROM mara&lt;/P&gt;&lt;P&gt;                       WHERE matnr EQ itab-matnr.&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      IF mara-matkl IN s_matkl.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        MOVE: itab-ebeln TO t_fin-ebeln.                    "0001&lt;/P&gt;&lt;P&gt;        IF NOT itab-kunnr IS INITIAL.&lt;/P&gt;&lt;P&gt;*mod 0002&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         SELECT SINGLE name1 ort01&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                            INTO (itab-name1,itab-ort01)&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                            FROM kna1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                            WHERE kunnr EQ itab-kunnr.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*end of 0002&lt;/P&gt;&lt;P&gt;*Begin of mod 0001&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         SELECT SINGLE kdauf FROM lips&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                              INTO lips-kdauf&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                         WHERE vbeln EQ itab-xblnr.&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;         SELECT SINGLE vbelv FROM vbfa&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                             INTO vbfa-vbelv&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                             WHERE vbeln EQ itab-xblnr&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                             AND vbtyp_n EQ 'J'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          SELECT SINGLE vgbel FROM lips&lt;/P&gt;&lt;P&gt;                              INTO lips-vgbel&lt;/P&gt;&lt;P&gt;                              WHERE vbeln EQ itab-xblnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;            SELECT SINGLE bstnk FROM vbak&lt;/P&gt;&lt;P&gt;                            INTO t_fin-ebeln&lt;/P&gt;&lt;P&gt;                            WHERE vbeln EQ lips-vgbel.&lt;/P&gt;&lt;P&gt;*begin of 0002&lt;/P&gt;&lt;P&gt;            CLEAR: l_adrnr.&lt;/P&gt;&lt;P&gt;            SELECT SINGLE adrnr INTO l_adrnr&lt;/P&gt;&lt;P&gt;                            FROM vbpa&lt;/P&gt;&lt;P&gt;                            WHERE vbeln EQ vbfa-vbelv&lt;/P&gt;&lt;P&gt;                            AND   parvw EQ 'WE'.&lt;/P&gt;&lt;P&gt;            IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;              SELECT SINGLE name1 mc_city1&lt;/P&gt;&lt;P&gt;                       INTO (itab-name1, itab-ort01)&lt;/P&gt;&lt;P&gt;                       FROM adrc&lt;/P&gt;&lt;P&gt;                       WHERE addrnumber EQ l_adrnr.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*end of 0002&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;*End of mod 0001&lt;/P&gt;&lt;P&gt;          t_fin-lifnr = itab-kunnr.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         MOVE: kna1-name1 to itab-name1,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               kna1-ort01 to itab-ort01.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        ELSEIF NOT itab-lifnr IS INITIAL.&lt;/P&gt;&lt;P&gt;          SELECT SINGLE name1 ort01&lt;/P&gt;&lt;P&gt;                            INTO (itab-name1,itab-ort01)&lt;/P&gt;&lt;P&gt;                            FROM lfa1&lt;/P&gt;&lt;P&gt;                            WHERE lifnr EQ itab-lifnr.&lt;/P&gt;&lt;P&gt;          t_fin-lifnr = itab-lifnr.&lt;/P&gt;&lt;P&gt;        ELSEIF NOT itab-kdauf IS INITIAL.&lt;/P&gt;&lt;P&gt;          SELECT SINGLE kunnr bstnk                         "0001&lt;/P&gt;&lt;P&gt;                          INTO (itab-kunnr,t_fin-ebeln)     "0001&lt;/P&gt;&lt;P&gt;                          FROM vbak&lt;/P&gt;&lt;P&gt;                          WHERE vbeln EQ itab-kdauf.&lt;/P&gt;&lt;P&gt;          IF sy-subrc EQ 0.                                 "0001&lt;/P&gt;&lt;P&gt;*Begin 0002&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           SELECT SINGLE name1 ort01&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                              INTO (itab-name1,itab-ort01)&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                              FROM kna1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                              WHERE kunnr EQ itab-kunnr.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            CLEAR: l_adrnr.&lt;/P&gt;&lt;P&gt;            SELECT SINGLE adrnr INTO l_adrnr&lt;/P&gt;&lt;P&gt;                            FROM vbpa&lt;/P&gt;&lt;P&gt;                            WHERE vbeln EQ itab-kdauf&lt;/P&gt;&lt;P&gt;                            AND   parvw EQ 'WE'.&lt;/P&gt;&lt;P&gt;            IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;              SELECT SINGLE name1 mc_city1&lt;/P&gt;&lt;P&gt;                       INTO (itab-name1, itab-ort01)&lt;/P&gt;&lt;P&gt;                       FROM adrc&lt;/P&gt;&lt;P&gt;                       WHERE addrnumber EQ l_adrnr.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*end of 0002&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            t_fin-lifnr = itab-kunnr.&lt;/P&gt;&lt;P&gt;          ENDIF.                                            "0001&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Begin of mod 0001&lt;/P&gt;&lt;P&gt;        ELSEIF NOT itab-mat_kdauf IS INITIAL AND itab-bwart EQ '653' .&lt;/P&gt;&lt;P&gt;          SELECT SINGLE kunnr bstnk&lt;/P&gt;&lt;P&gt;                          INTO (itab-kunnr,t_fin-ebeln)&lt;/P&gt;&lt;P&gt;                          FROM vbak&lt;/P&gt;&lt;P&gt;                          WHERE vbeln EQ itab-mat_kdauf.&lt;/P&gt;&lt;P&gt;          IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;            SELECT SINGLE name1 ort01&lt;/P&gt;&lt;P&gt;                               INTO (itab-name1,itab-ort01)&lt;/P&gt;&lt;P&gt;                               FROM kna1&lt;/P&gt;&lt;P&gt;                               WHERE kunnr EQ itab-kunnr.&lt;/P&gt;&lt;P&gt;            t_fin-lifnr = itab-kunnr.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;*End of mod 0001&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        SELECT SINGLE btext INTO itab-btext&lt;/P&gt;&lt;P&gt;                            FROM t156ht&lt;/P&gt;&lt;P&gt;                            WHERE bwart EQ itab-bwart&lt;/P&gt;&lt;P&gt;                             AND  spras EQ sy-langu.&lt;/P&gt;&lt;P&gt;        SELECT SINGLE maktx INTO itab-maktx&lt;/P&gt;&lt;P&gt;                            FROM makt&lt;/P&gt;&lt;P&gt;                            WHERE matnr EQ itab-matnr&lt;/P&gt;&lt;P&gt;                             AND  spras EQ sy-langu.&lt;/P&gt;&lt;P&gt;        MODIFY itab.&lt;/P&gt;&lt;P&gt;        MOVE:    itab-lgort TO t_fin-lgort,&lt;/P&gt;&lt;P&gt;                 itab-name1 TO t_fin-name1,&lt;/P&gt;&lt;P&gt;                 itab-bktxt TO t_fin-bktxt,&lt;/P&gt;&lt;P&gt;                 itab-ort01 TO t_fin-ort01,&lt;/P&gt;&lt;P&gt;                 itab-budat TO t_fin-budat,&lt;/P&gt;&lt;P&gt;                 itab-bwart TO t_fin-bwart,&lt;/P&gt;&lt;P&gt;                 itab-btext TO t_fin-btext,&lt;/P&gt;&lt;P&gt;                 itab-mblnr TO t_fin-mblnr,&lt;/P&gt;&lt;P&gt;                 itab-xblnr TO t_fin-xblnr,&lt;/P&gt;&lt;P&gt;                 itab-matnr TO t_fin-matnr,&lt;/P&gt;&lt;P&gt;                 itab-maktx TO t_fin-maktx,&lt;/P&gt;&lt;P&gt;                 itab-menge TO t_fin-menge,&lt;/P&gt;&lt;P&gt;                 itab-dmbtr TO t_fin-dmbtr.&lt;/P&gt;&lt;P&gt;        APPEND t_fin.&lt;/P&gt;&lt;P&gt;        CLEAR t_fin.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        DELETE itab.&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;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    " 200_process_dbrecs&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  75_EMAIL_VALIDITY&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 75_EMAIL_VALIDITY .&lt;/P&gt;&lt;P&gt;CONDENSE P_EMAIL NO-GAPS.&lt;/P&gt;&lt;P&gt;  if NOT P_EMAIL &amp;lt;&amp;gt; space OR NOT P_EMAIL CS '@' OR NOT P_EMAIL CA '.'.&lt;/P&gt;&lt;P&gt;    message 'Please Enter the Mail-Id in Proper Format' type 'W001'.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;endform.                    " 75_EMAIL_VALIDITY&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  300_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;P&gt;&lt;/P&gt;&lt;P&gt;form 300_xls_data_table .&lt;/P&gt;&lt;P&gt;constants:&lt;/P&gt;&lt;P&gt;    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;CR_LF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CONCATENATE 'LGORT' 'LIFNR' 'BWART' 'MATNR' 'MENGE' 'DMBTR' 'NAME1' 'EBELN' 'BKTXT' 'BUDAT' 'MBLNR' 'XBLNR' 'ORT01' 'BTEXT' 'MAKTX'&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 t_FIN INTO wa_CHARTABLES.&lt;/P&gt;&lt;P&gt;    CONCATENATE wa_charTABLES-LGORT wa_charTABLES-LIFNR WA_CHARTABLES-BWART WA_CHARTABLES-MATNR&lt;/P&gt;&lt;P&gt;               WA_CHARTABLES-MENGE WA_CHARTABLES-DMBTR WA_CHARTABLES-NAME1 WA_CHARTABLES-EBELN&lt;/P&gt;&lt;P&gt;               WA_CHARTABLES-BKTXT WA_CHARTABLES-BUDAT WA_CHARTABLES-MBLNR WA_CHARTABLES-XBLNR&lt;/P&gt;&lt;P&gt;               WA_CHARTABLES-ORT01 WA_CHARTABLES-BTEXT WA_CHARTABLES-MAKTX&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;&lt;/P&gt;&lt;P&gt;endform.                    " 300_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;P&gt;*&amp;amp;      Form  400_populate_email_mess_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;&lt;/P&gt;&lt;P&gt;form 400_populate_email_mess_body .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REFRESH it_message.&lt;/P&gt;&lt;P&gt;  it_message = 'Please find attached a list Goods Movement Report'.&lt;/P&gt;&lt;P&gt;  APPEND it_message.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    " 400_populate_email_mess_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_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;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;&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;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    " 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;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;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;&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;hope this will be useful...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards,&lt;/P&gt;&lt;P&gt;karthik&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 20 Dec 2007 04:43:41 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-12-20T04:43:41Z</dc:date>
    <item>
      <title>Sending mails</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sending-mails/m-p/3191817#M760385</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi all&lt;/P&gt;&lt;P&gt;  I need to send mail using sap ,any idia of it,please help me.BUT we are using exchange server,any idia.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;kanishka&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 20 Dec 2007 04:24:41 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sending-mails/m-p/3191817#M760385</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-12-20T04:24:41Z</dc:date>
    </item>
    <item>
      <title>Re: Sending mails</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sending-mails/m-p/3191818#M760386</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Perera,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Check SBWP transaction.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;K.Kiran.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 20 Dec 2007 04:29:16 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sending-mails/m-p/3191818#M760386</guid>
      <dc:creator>kiran_k8</dc:creator>
      <dc:date>2007-12-20T04:29:16Z</dc:date>
    </item>
    <item>
      <title>Re: Sending mails</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sending-mails/m-p/3191819#M760387</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;If u want to send mails outside, use FM&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; SO_DOCUMENT_SEND_API1,  if u want to send within SAP, in &lt;/P&gt;&lt;P&gt;RECEIVERS parameters specify the SAP inbox address&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;and if u want to see mails in SAP inbox, u can check in SBWP tcode&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 20 Dec 2007 04:34:40 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sending-mails/m-p/3191819#M760387</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-12-20T04:34:40Z</dc:date>
    </item>
    <item>
      <title>Re: Sending mails</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sending-mails/m-p/3191820#M760388</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;i have pasted a code here which is used to attach a excel file and send as a mail....try this and analyze this in debugger&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT  ZIND_GOODS_XLS_EMAIL MESSAGE-ID zmdm.&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Tables&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;TABLES: mara,marc,mard,mkpf,mseg,likp,t156ht,kna1,lfa1, vbfa, lips.&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Structures and Internal tables&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;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF itab OCCURS 0,&lt;/P&gt;&lt;P&gt;   lgort LIKE mseg-lgort,  " St Location&lt;/P&gt;&lt;P&gt;   name1 LIKE kna1-name1,  " Ship to Name&lt;/P&gt;&lt;P&gt;   ebeln LIKE mseg-ebeln,  " PO Num&lt;/P&gt;&lt;P&gt;   bktxt LIKE mkpf-bktxt,  " Delivery Header&lt;/P&gt;&lt;P&gt;   ort01 LIKE kna1-ort01,  " Ship to City&lt;/P&gt;&lt;P&gt;   budat LIKE mkpf-budat,  " Posting date&lt;/P&gt;&lt;P&gt;   bwart LIKE mseg-bwart,  " Movement Type&lt;/P&gt;&lt;P&gt;   btext LIKE t156ht-btext,  " Movement Type Text&lt;/P&gt;&lt;P&gt;   mblnr LIKE mkpf-mblnr,  " Mat Doc Number&lt;/P&gt;&lt;P&gt;   xblnr LIKE mkpf-xblnr,  " Dlvy No&lt;/P&gt;&lt;P&gt;   matnr LIKE mseg-matnr,  " Material No&lt;/P&gt;&lt;P&gt;   maktx LIKE makt-maktx,  " Mat Desc&lt;/P&gt;&lt;P&gt;   menge LIKE mseg-menge,  " Qty&lt;/P&gt;&lt;P&gt;   dmbtr LIKE mseg-dmbtr,  " Amount in local currency&lt;/P&gt;&lt;P&gt;*dmbtr(15) type c,&lt;/P&gt;&lt;P&gt;   kunnr LIKE mseg-kunnr,  " Customer NO&lt;/P&gt;&lt;P&gt;   lifnr LIKE mseg-lifnr,  " Vendor No&lt;/P&gt;&lt;P&gt;   kdauf LIKE mseg-kdauf,  "Sales order&lt;/P&gt;&lt;P&gt;   mat_kdauf LIKE mseg-mat_kdauf,   "SAles order for mvt type 653  "0001&lt;/P&gt;&lt;P&gt;   meins LIKE mseg-meins,&lt;/P&gt;&lt;P&gt;   werks LIKE mseg-werks,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;END OF itab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF t_fin OCCURS 0,&lt;/P&gt;&lt;P&gt;       lgort LIKE mseg-lgort,  " St Location&lt;/P&gt;&lt;P&gt;       lifnr LIKE mseg-lifnr,  " Customer Or Vendor&lt;/P&gt;&lt;P&gt;       name1 LIKE kna1-name1,  " Ship to Name&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ebeln LIKE mseg-ebeln,  " PO Num            "0001&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       ebeln LIKE vbak-bstnk,  " PO num             "0001&lt;/P&gt;&lt;P&gt;       bktxt LIKE mkpf-bktxt,  " Delivery Header&lt;/P&gt;&lt;P&gt;       ort01 LIKE kna1-ort01,  " Ship to City&lt;/P&gt;&lt;P&gt;       budat LIKE mkpf-budat,  " Posting date&lt;/P&gt;&lt;P&gt;       bwart LIKE mseg-bwart,  " Movement Type&lt;/P&gt;&lt;P&gt;       btext LIKE t156ht-btext," Movement Type Text&lt;/P&gt;&lt;P&gt;       mblnr LIKE mkpf-mblnr,  " Mat Doc Number&lt;/P&gt;&lt;P&gt;       xblnr LIKE mkpf-xblnr,  " Dlvy No&lt;/P&gt;&lt;P&gt;       matnr LIKE mseg-matnr,  " Material No&lt;/P&gt;&lt;P&gt;       maktx LIKE makt-maktx,  " Mat Desc&lt;/P&gt;&lt;P&gt;       menge(13) TYPE C,  " Qty&lt;/P&gt;&lt;P&gt;       dmbtr(13) TYPE C,  " Amount in local currency&lt;/P&gt;&lt;P&gt;    END OF t_fin.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; DATA : T_FIN TYPE STANDARD TABLE OF IT_FIN INITIAL SIZE 0 WITH HEADER LINE,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           WA_FIN TYPE IT_FIN.&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;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**********&lt;/P&gt;&lt;P&gt;     TYPES : BEGIN OF T_CHARTABLES,&lt;/P&gt;&lt;P&gt;             LGORT(4) TYPE C,&lt;/P&gt;&lt;P&gt;             LIFNR(10) TYPE C,&lt;/P&gt;&lt;P&gt;             NAME1(35) TYPE C,&lt;/P&gt;&lt;P&gt;             EBELN(20) TYPE C,&lt;/P&gt;&lt;P&gt;             BKTXT(25) TYPE C,&lt;/P&gt;&lt;P&gt;             ort01(35) TYPE C,&lt;/P&gt;&lt;P&gt;             BUDAT(8) TYPE C,&lt;/P&gt;&lt;P&gt;             BWART(3) TYPE C,&lt;/P&gt;&lt;P&gt;             BTEXT(20) TYPE C,&lt;/P&gt;&lt;P&gt;             MBLNR(10) TYPE C,&lt;/P&gt;&lt;P&gt;             XBLNR(16) TYPE C,&lt;/P&gt;&lt;P&gt;             MATNR(18) TYPE C,&lt;/P&gt;&lt;P&gt;             MAKTX(40) TYPE C,&lt;/P&gt;&lt;P&gt;             MENGE(13) TYPE C,&lt;/P&gt;&lt;P&gt;             DMBTR(13) TYPE C,&lt;/P&gt;&lt;P&gt;          END OF T_CHARTABLES.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : WA_CHARTABLES TYPE T_CHARTABLES.&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;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;Selection-screen&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;SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS: s_werks FOR marc-werks OBLIGATORY,&lt;/P&gt;&lt;P&gt;                s_lgort FOR mard-lgort DEFAULT '0010',&lt;/P&gt;&lt;P&gt;                s_matnr FOR mara-matnr,&lt;/P&gt;&lt;P&gt;                s_matkl FOR mara-matkl,&lt;/P&gt;&lt;P&gt;                s_budat FOR mkpf-budat,&lt;/P&gt;&lt;P&gt;                s_bwart FOR mseg-bwart.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK blk1.&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 'mailme.kar@gmail.com'.&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;  PERFORM 50_check_authority.&lt;/P&gt;&lt;P&gt;  PERFORM 75_EMAIL_VALIDITY.&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;START-OF-SELECTION.&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;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM 100_collect_dbrecs.&lt;/P&gt;&lt;P&gt;  PERFORM 200_process_dbrecs.&lt;/P&gt;&lt;P&gt;  PERFORM 300_xls_data_table.&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;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;STRONG&gt;----&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;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  perform 400_populate_email_mess_body.&lt;/P&gt;&lt;P&gt;&lt;/P&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;                                      'GOODS'&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;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  50_check_authority&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 50_check_authority .&lt;/P&gt;&lt;P&gt; TABLES: t001w.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT werks&lt;/P&gt;&lt;P&gt;        FROM t001w&lt;/P&gt;&lt;P&gt;        INTO t001w-werks&lt;/P&gt;&lt;P&gt;        WHERE werks IN s_werks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    AUTHORITY-CHECK OBJECT 'M_MATE_WRK'&lt;/P&gt;&lt;P&gt;               ID 'ACTVT' FIELD '03'&lt;/P&gt;&lt;P&gt;               ID 'WERKS' FIELD t001w-werks.&lt;/P&gt;&lt;P&gt;&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;      MESSAGE e000 WITH text-a00.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDSELECT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; AUTHORITY-CHECK OBJECT 'M_MATE_BUK'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                ID 'WERKS' FIELD s_bukrs.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    " 50_check_authority&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  100_collect_dbrecs&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 100_collect_dbrecs .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES : BEGIN OF stype_fields,&lt;/P&gt;&lt;P&gt;          fieldname          TYPE  name_feld,&lt;/P&gt;&lt;P&gt;          END OF stype_fields.&lt;/P&gt;&lt;P&gt;  TYPES : stab_fields         TYPE STANDARD TABLE&lt;/P&gt;&lt;P&gt;                              OF stype_fields&lt;/P&gt;&lt;P&gt;                              WITH DEFAULT KEY.&lt;/P&gt;&lt;P&gt;  DATA : l_t_fields           TYPE stab_fields.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;create table with the fields to be transported&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  APPEND 'MSEG~AUFNR' TO l_t_fields.&lt;/P&gt;&lt;P&gt;  APPEND 'MKPF~BKTXT' TO l_t_fields.&lt;/P&gt;&lt;P&gt;  APPEND 'MKPF~BLDAT' TO l_t_fields.&lt;/P&gt;&lt;P&gt;  APPEND 'MSEG~BPMNG' TO l_t_fields.&lt;/P&gt;&lt;P&gt;  APPEND 'MSEG~BPRME' TO l_t_fields.&lt;/P&gt;&lt;P&gt;  APPEND 'MSEG~BSTME' TO l_t_fields.&lt;/P&gt;&lt;P&gt;  APPEND 'MSEG~BSTMG' TO l_t_fields.&lt;/P&gt;&lt;P&gt;  APPEND 'MKPF~BUDAT' TO l_t_fields.&lt;/P&gt;&lt;P&gt;  APPEND 'MSEG~BWART' TO l_t_fields.&lt;/P&gt;&lt;P&gt;  APPEND 'MSEG~EBELN' TO l_t_fields.&lt;/P&gt;&lt;P&gt;  APPEND 'MSEG~EBELP' TO l_t_fields.&lt;/P&gt;&lt;P&gt;  APPEND 'MSEG~KUNNR' TO l_t_fields.&lt;/P&gt;&lt;P&gt;  APPEND 'MSEG~LGORT' TO l_t_fields.  " St Location&lt;/P&gt;&lt;P&gt;  APPEND 'MSEG~LIFNR' TO l_t_fields.  " Vendor Num&lt;/P&gt;&lt;P&gt;  APPEND 'MSEG~MATNR' TO l_t_fields.  " Mat No&lt;/P&gt;&lt;P&gt;  APPEND 'MSEG~KDAUF' TO l_t_fields.&lt;/P&gt;&lt;P&gt;  APPEND 'MSEG~MAT_KDAUF' TO l_t_fields.  "sales order for mvt type 653 "0001&lt;/P&gt;&lt;P&gt;  APPEND 'MKPF~MBLNR' TO l_t_fields.&lt;/P&gt;&lt;P&gt;  APPEND 'MSEG~MEINS' TO l_t_fields.&lt;/P&gt;&lt;P&gt;  APPEND 'MSEG~MENGE' TO l_t_fields.&lt;/P&gt;&lt;P&gt;  APPEND 'MSEG~WERKS' TO l_t_fields.&lt;/P&gt;&lt;P&gt;  APPEND 'MKPF~XBLNR' TO l_t_fields.&lt;/P&gt;&lt;P&gt;  APPEND 'MKPF~BKTXT' TO l_t_fields.&lt;/P&gt;&lt;P&gt;  APPEND 'MSEG~DMBTR' TO l_t_fields.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT (l_t_fields)&lt;/P&gt;&lt;P&gt;  INTO CORRESPONDING FIELDS OF TABLE itab&lt;/P&gt;&lt;P&gt;  FROM mkpf INNER JOIN mseg&lt;/P&gt;&lt;P&gt;  ON    mkpf&lt;SUB&gt;mandt = mseg&lt;/SUB&gt;mandt&lt;/P&gt;&lt;P&gt;    AND mkpf&lt;SUB&gt;mblnr = mseg&lt;/SUB&gt;mblnr&lt;/P&gt;&lt;P&gt;    AND mkpf&lt;SUB&gt;mjahr = mseg&lt;/SUB&gt;mjahr&lt;/P&gt;&lt;P&gt;     WHERE mkpf~budat IN s_budat&lt;/P&gt;&lt;P&gt;       AND mseg~bwart IN s_bwart&lt;/P&gt;&lt;P&gt;       AND mseg~lgort IN s_lgort&lt;/P&gt;&lt;P&gt;       AND mseg~matnr IN s_matnr&lt;/P&gt;&lt;P&gt;       AND mseg~werks IN s_werks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    " 100_collect_dbrecs&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  200_process_dbrecs&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 200_process_dbrecs .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: l_adrnr TYPE adrc-addrnumber.                       "0002&lt;/P&gt;&lt;P&gt;  LOOP AT itab.&lt;/P&gt;&lt;P&gt;    CLEAR: mara-matkl,t_fin.&lt;/P&gt;&lt;P&gt;    SELECT SINGLE matkl INTO mara-matkl&lt;/P&gt;&lt;P&gt;                        FROM mara&lt;/P&gt;&lt;P&gt;                       WHERE matnr EQ itab-matnr.&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      IF mara-matkl IN s_matkl.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        MOVE: itab-ebeln TO t_fin-ebeln.                    "0001&lt;/P&gt;&lt;P&gt;        IF NOT itab-kunnr IS INITIAL.&lt;/P&gt;&lt;P&gt;*mod 0002&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         SELECT SINGLE name1 ort01&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                            INTO (itab-name1,itab-ort01)&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                            FROM kna1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                            WHERE kunnr EQ itab-kunnr.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*end of 0002&lt;/P&gt;&lt;P&gt;*Begin of mod 0001&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         SELECT SINGLE kdauf FROM lips&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                              INTO lips-kdauf&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                         WHERE vbeln EQ itab-xblnr.&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;         SELECT SINGLE vbelv FROM vbfa&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                             INTO vbfa-vbelv&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                             WHERE vbeln EQ itab-xblnr&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                             AND vbtyp_n EQ 'J'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          SELECT SINGLE vgbel FROM lips&lt;/P&gt;&lt;P&gt;                              INTO lips-vgbel&lt;/P&gt;&lt;P&gt;                              WHERE vbeln EQ itab-xblnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;            SELECT SINGLE bstnk FROM vbak&lt;/P&gt;&lt;P&gt;                            INTO t_fin-ebeln&lt;/P&gt;&lt;P&gt;                            WHERE vbeln EQ lips-vgbel.&lt;/P&gt;&lt;P&gt;*begin of 0002&lt;/P&gt;&lt;P&gt;            CLEAR: l_adrnr.&lt;/P&gt;&lt;P&gt;            SELECT SINGLE adrnr INTO l_adrnr&lt;/P&gt;&lt;P&gt;                            FROM vbpa&lt;/P&gt;&lt;P&gt;                            WHERE vbeln EQ vbfa-vbelv&lt;/P&gt;&lt;P&gt;                            AND   parvw EQ 'WE'.&lt;/P&gt;&lt;P&gt;            IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;              SELECT SINGLE name1 mc_city1&lt;/P&gt;&lt;P&gt;                       INTO (itab-name1, itab-ort01)&lt;/P&gt;&lt;P&gt;                       FROM adrc&lt;/P&gt;&lt;P&gt;                       WHERE addrnumber EQ l_adrnr.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*end of 0002&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;*End of mod 0001&lt;/P&gt;&lt;P&gt;          t_fin-lifnr = itab-kunnr.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         MOVE: kna1-name1 to itab-name1,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               kna1-ort01 to itab-ort01.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        ELSEIF NOT itab-lifnr IS INITIAL.&lt;/P&gt;&lt;P&gt;          SELECT SINGLE name1 ort01&lt;/P&gt;&lt;P&gt;                            INTO (itab-name1,itab-ort01)&lt;/P&gt;&lt;P&gt;                            FROM lfa1&lt;/P&gt;&lt;P&gt;                            WHERE lifnr EQ itab-lifnr.&lt;/P&gt;&lt;P&gt;          t_fin-lifnr = itab-lifnr.&lt;/P&gt;&lt;P&gt;        ELSEIF NOT itab-kdauf IS INITIAL.&lt;/P&gt;&lt;P&gt;          SELECT SINGLE kunnr bstnk                         "0001&lt;/P&gt;&lt;P&gt;                          INTO (itab-kunnr,t_fin-ebeln)     "0001&lt;/P&gt;&lt;P&gt;                          FROM vbak&lt;/P&gt;&lt;P&gt;                          WHERE vbeln EQ itab-kdauf.&lt;/P&gt;&lt;P&gt;          IF sy-subrc EQ 0.                                 "0001&lt;/P&gt;&lt;P&gt;*Begin 0002&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           SELECT SINGLE name1 ort01&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                              INTO (itab-name1,itab-ort01)&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                              FROM kna1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                              WHERE kunnr EQ itab-kunnr.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            CLEAR: l_adrnr.&lt;/P&gt;&lt;P&gt;            SELECT SINGLE adrnr INTO l_adrnr&lt;/P&gt;&lt;P&gt;                            FROM vbpa&lt;/P&gt;&lt;P&gt;                            WHERE vbeln EQ itab-kdauf&lt;/P&gt;&lt;P&gt;                            AND   parvw EQ 'WE'.&lt;/P&gt;&lt;P&gt;            IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;              SELECT SINGLE name1 mc_city1&lt;/P&gt;&lt;P&gt;                       INTO (itab-name1, itab-ort01)&lt;/P&gt;&lt;P&gt;                       FROM adrc&lt;/P&gt;&lt;P&gt;                       WHERE addrnumber EQ l_adrnr.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*end of 0002&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            t_fin-lifnr = itab-kunnr.&lt;/P&gt;&lt;P&gt;          ENDIF.                                            "0001&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Begin of mod 0001&lt;/P&gt;&lt;P&gt;        ELSEIF NOT itab-mat_kdauf IS INITIAL AND itab-bwart EQ '653' .&lt;/P&gt;&lt;P&gt;          SELECT SINGLE kunnr bstnk&lt;/P&gt;&lt;P&gt;                          INTO (itab-kunnr,t_fin-ebeln)&lt;/P&gt;&lt;P&gt;                          FROM vbak&lt;/P&gt;&lt;P&gt;                          WHERE vbeln EQ itab-mat_kdauf.&lt;/P&gt;&lt;P&gt;          IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;            SELECT SINGLE name1 ort01&lt;/P&gt;&lt;P&gt;                               INTO (itab-name1,itab-ort01)&lt;/P&gt;&lt;P&gt;                               FROM kna1&lt;/P&gt;&lt;P&gt;                               WHERE kunnr EQ itab-kunnr.&lt;/P&gt;&lt;P&gt;            t_fin-lifnr = itab-kunnr.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;*End of mod 0001&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        SELECT SINGLE btext INTO itab-btext&lt;/P&gt;&lt;P&gt;                            FROM t156ht&lt;/P&gt;&lt;P&gt;                            WHERE bwart EQ itab-bwart&lt;/P&gt;&lt;P&gt;                             AND  spras EQ sy-langu.&lt;/P&gt;&lt;P&gt;        SELECT SINGLE maktx INTO itab-maktx&lt;/P&gt;&lt;P&gt;                            FROM makt&lt;/P&gt;&lt;P&gt;                            WHERE matnr EQ itab-matnr&lt;/P&gt;&lt;P&gt;                             AND  spras EQ sy-langu.&lt;/P&gt;&lt;P&gt;        MODIFY itab.&lt;/P&gt;&lt;P&gt;        MOVE:    itab-lgort TO t_fin-lgort,&lt;/P&gt;&lt;P&gt;                 itab-name1 TO t_fin-name1,&lt;/P&gt;&lt;P&gt;                 itab-bktxt TO t_fin-bktxt,&lt;/P&gt;&lt;P&gt;                 itab-ort01 TO t_fin-ort01,&lt;/P&gt;&lt;P&gt;                 itab-budat TO t_fin-budat,&lt;/P&gt;&lt;P&gt;                 itab-bwart TO t_fin-bwart,&lt;/P&gt;&lt;P&gt;                 itab-btext TO t_fin-btext,&lt;/P&gt;&lt;P&gt;                 itab-mblnr TO t_fin-mblnr,&lt;/P&gt;&lt;P&gt;                 itab-xblnr TO t_fin-xblnr,&lt;/P&gt;&lt;P&gt;                 itab-matnr TO t_fin-matnr,&lt;/P&gt;&lt;P&gt;                 itab-maktx TO t_fin-maktx,&lt;/P&gt;&lt;P&gt;                 itab-menge TO t_fin-menge,&lt;/P&gt;&lt;P&gt;                 itab-dmbtr TO t_fin-dmbtr.&lt;/P&gt;&lt;P&gt;        APPEND t_fin.&lt;/P&gt;&lt;P&gt;        CLEAR t_fin.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        DELETE itab.&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;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    " 200_process_dbrecs&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  75_EMAIL_VALIDITY&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 75_EMAIL_VALIDITY .&lt;/P&gt;&lt;P&gt;CONDENSE P_EMAIL NO-GAPS.&lt;/P&gt;&lt;P&gt;  if NOT P_EMAIL &amp;lt;&amp;gt; space OR NOT P_EMAIL CS '@' OR NOT P_EMAIL CA '.'.&lt;/P&gt;&lt;P&gt;    message 'Please Enter the Mail-Id in Proper Format' type 'W001'.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;endform.                    " 75_EMAIL_VALIDITY&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  300_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;P&gt;&lt;/P&gt;&lt;P&gt;form 300_xls_data_table .&lt;/P&gt;&lt;P&gt;constants:&lt;/P&gt;&lt;P&gt;    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;CR_LF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CONCATENATE 'LGORT' 'LIFNR' 'BWART' 'MATNR' 'MENGE' 'DMBTR' 'NAME1' 'EBELN' 'BKTXT' 'BUDAT' 'MBLNR' 'XBLNR' 'ORT01' 'BTEXT' 'MAKTX'&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 t_FIN INTO wa_CHARTABLES.&lt;/P&gt;&lt;P&gt;    CONCATENATE wa_charTABLES-LGORT wa_charTABLES-LIFNR WA_CHARTABLES-BWART WA_CHARTABLES-MATNR&lt;/P&gt;&lt;P&gt;               WA_CHARTABLES-MENGE WA_CHARTABLES-DMBTR WA_CHARTABLES-NAME1 WA_CHARTABLES-EBELN&lt;/P&gt;&lt;P&gt;               WA_CHARTABLES-BKTXT WA_CHARTABLES-BUDAT WA_CHARTABLES-MBLNR WA_CHARTABLES-XBLNR&lt;/P&gt;&lt;P&gt;               WA_CHARTABLES-ORT01 WA_CHARTABLES-BTEXT WA_CHARTABLES-MAKTX&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;&lt;/P&gt;&lt;P&gt;endform.                    " 300_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;P&gt;*&amp;amp;      Form  400_populate_email_mess_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;&lt;/P&gt;&lt;P&gt;form 400_populate_email_mess_body .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REFRESH it_message.&lt;/P&gt;&lt;P&gt;  it_message = 'Please find attached a list Goods Movement Report'.&lt;/P&gt;&lt;P&gt;  APPEND it_message.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    " 400_populate_email_mess_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_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;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;&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;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    " 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;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;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;&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;hope this will be useful...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards,&lt;/P&gt;&lt;P&gt;karthik&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 20 Dec 2007 04:43:41 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sending-mails/m-p/3191820#M760388</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-12-20T04:43:41Z</dc:date>
    </item>
  </channel>
</rss>

