<?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: urgent require in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/urgent-require/m-p/2810718#M657023</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Puneet..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is the Code for Generating PDF and Sending as attachment thru Mail.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT z_broadcasting_example&lt;/P&gt;&lt;P&gt;  NO STANDARD PAGE HEADING&lt;/P&gt;&lt;P&gt;  LINE-SIZE 254.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&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;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;TABLES: adrp,  "Persons (central address administration)&lt;/P&gt;&lt;P&gt;        bhdgd, "Common data area batch heading routine&lt;/P&gt;&lt;P&gt;        bsik,  "Accounting: Secondary Index for Vendors&lt;/P&gt;&lt;P&gt;        usr21, "Assign user name address key&lt;/P&gt;&lt;P&gt;        zt001. "Textos aviso pago anticipos y liquidaciones gastos viaje&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&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;General data definition&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;TYPE-POOLS: icon. "Zuordnung: Ikonenbezeichner in Listen zu ASCII-Codes&lt;/P&gt;&lt;P&gt;TYPE-POOLS: slis. "Globale Typen für generische Listbausteine&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: d_linsz            LIKE sy-linsz.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&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;Constants&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;CONSTANTS: c_yes(1)        TYPE c VALUE 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&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&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;DATA: e_variant  TYPE disvariant.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&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;Internal tables&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF t_list OCCURS 0,&lt;/P&gt;&lt;P&gt;        checkbox(1) TYPE c,&lt;/P&gt;&lt;P&gt;        xref3_tech LIKE bsik-xref3,&lt;/P&gt;&lt;P&gt;        lifnr LIKE bsik-lifnr,&lt;/P&gt;&lt;P&gt;        name1 LIKE lfa1-name1,&lt;/P&gt;&lt;P&gt;        bukrs LIKE bsik-bukrs,&lt;/P&gt;&lt;P&gt;        belnr LIKE bsik-belnr,&lt;/P&gt;&lt;P&gt;        gjahr LIKE bsik-gjahr,&lt;/P&gt;&lt;P&gt;        buzei LIKE bsik-buzei,&lt;/P&gt;&lt;P&gt;        budat LIKE bsik-budat,&lt;/P&gt;&lt;P&gt;        shkzg LIKE bsik-shkzg,&lt;/P&gt;&lt;P&gt;        wrbtr LIKE bsik-wrbtr,&lt;/P&gt;&lt;P&gt;        waers LIKE bsik-waers,&lt;/P&gt;&lt;P&gt;        xref1 LIKE bsik-xref1,&lt;/P&gt;&lt;P&gt;        xref3 LIKE bsik-xref3,&lt;/P&gt;&lt;P&gt;        sgtxt LIKE bsik-sgtxt,&lt;/P&gt;&lt;P&gt;        tabix_tech LIKE sy-tabix,&lt;/P&gt;&lt;P&gt;      END OF t_list.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF t_items OCCURS 0,&lt;/P&gt;&lt;P&gt;        bukrs LIKE bsik-bukrs,&lt;/P&gt;&lt;P&gt;        belnr LIKE bsik-belnr,&lt;/P&gt;&lt;P&gt;        gjahr LIKE bsik-gjahr,&lt;/P&gt;&lt;P&gt;        buzei LIKE bsik-buzei,&lt;/P&gt;&lt;P&gt;        xref3 LIKE bsik-xref3,&lt;/P&gt;&lt;P&gt;      END OF t_items.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&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;Ranges&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&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;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: BEGIN OF BLOCK aaa WITH FRAME TITLE text-000.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS: s_lifnr FOR bsik-lifnr,&lt;/P&gt;&lt;P&gt;                s_bukrs FOR bsik-bukrs,&lt;/P&gt;&lt;P&gt;                s_umskz FOR bsik-umskz,&lt;/P&gt;&lt;P&gt;                s_budat FOR bsik-budat,&lt;/P&gt;&lt;P&gt;                s_wrbtr FOR bsik-wrbtr,&lt;/P&gt;&lt;P&gt;                s_dmbtr FOR bsik-dmbtr,&lt;/P&gt;&lt;P&gt;                s_ebeln FOR bsik-ebeln,&lt;/P&gt;&lt;P&gt;                s_sgtxt FOR bsik-sgtxt,&lt;/P&gt;&lt;P&gt;                s_xref1 FOR bsik-xref1,&lt;/P&gt;&lt;P&gt;                s_xref3 FOR bsik-xref3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: SKIP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PARAMETERS: p_vari LIKE disvariant-variant.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: END OF BLOCK aaa.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PARAMETERS: p_spool(1) TYPE c NO-DISPLAY DEFAULT space.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&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;Events&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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_vari.&lt;/P&gt;&lt;P&gt;  CLEAR e_variant.&lt;/P&gt;&lt;P&gt;  e_variant-report   = sy-cprog.&lt;/P&gt;&lt;P&gt;  e_variant-username = sy-uname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            i_save     = c_yes&lt;/P&gt;&lt;P&gt;       CHANGING&lt;/P&gt;&lt;P&gt;            cs_variant = e_variant&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            not_found  = 2.&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    p_vari = e_variant-variant.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM f4_for_variant.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&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;Main program&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;  CLEAR e_variant.&lt;/P&gt;&lt;P&gt;  e_variant-report   = sy-cprog.&lt;/P&gt;&lt;P&gt;  e_variant-username = sy-uname.&lt;/P&gt;&lt;P&gt;  e_variant-variant  = p_vari.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM load_data.&lt;/P&gt;&lt;P&gt;  PERFORM show_list.&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;*----&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;Routines&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  f4_for_variant&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM f4_for_variant.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  DATA: l_exit(1) TYPE c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_VARIANT_F4'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            is_variant          = e_variant&lt;/P&gt;&lt;P&gt;            i_tabname_header    = 'T_LIST'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          i_tabname_item      = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          IT_DEFAULT_FIELDCAT =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            i_save              = 'A'&lt;/P&gt;&lt;P&gt;       IMPORTING&lt;/P&gt;&lt;P&gt;            e_exit              = l_exit&lt;/P&gt;&lt;P&gt;            es_variant          = e_variant&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            not_found           = 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 2.&lt;/P&gt;&lt;P&gt;    MESSAGE ID sy-msgid TYPE 'S'  NUMBER sy-msgno&lt;/P&gt;&lt;P&gt;            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    IF l_exit = space.&lt;/P&gt;&lt;P&gt;      p_vari = e_variant-variant.&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;ENDFORM.                    " f4_for_variant&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  top_of_list&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;      Mostramos la cabecera del listado de errores, usando&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      la rutina BATCH-HEADING del programa RSBTCHH0 (consultar&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      documentación de dicho programa).&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM top_of_list.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  bhdgd-line1 = sy-title.&lt;/P&gt;&lt;P&gt;  bhdgd-line2 = space.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CATCH SYSTEM-EXCEPTIONS bcd_field_overflow = 1.&lt;/P&gt;&lt;P&gt;    bhdgd-lines = sy-linsz.&lt;/P&gt;&lt;P&gt;  ENDCATCH.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 1.&lt;/P&gt;&lt;P&gt;    bhdgd-lines = 999.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  bhdgd-uname = sy-uname.&lt;/P&gt;&lt;P&gt;  bhdgd-repid = sy-cprog.&lt;/P&gt;&lt;P&gt;  bhdgd-inifl = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM batch-heading(rsbtchh0).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ULINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  FORMAT INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;ENDFORM.                    " top_of_list&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  print_selections&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM print_selections.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  DATA: BEGIN OF lt_selecciones OCCURS 100,&lt;/P&gt;&lt;P&gt;          flag(1) TYPE c,&lt;/P&gt;&lt;P&gt;          olength TYPE x,&lt;/P&gt;&lt;P&gt;          line LIKE raldb-infoline,&lt;/P&gt;&lt;P&gt;        END OF lt_selecciones.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  d_linsz = sy-linsz - 2.&lt;/P&gt;&lt;P&gt;  sy-lisel = '*** Final de listado ***'(010).&lt;/P&gt;&lt;P&gt;  PERFORM just_routine(rsbtchh0)&lt;/P&gt;&lt;P&gt;    USING sy-lisel sy-linsz.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  FORMAT RESET.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ULINE.&lt;/P&gt;&lt;P&gt;  WRITE: / sy-vline NO-GAP, sy-lisel+2(d_linsz) NO-GAP, sy-vline.&lt;/P&gt;&lt;P&gt;  ULINE.&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;  CALL FUNCTION 'PRINT_SELECTIONS'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            mode      = 'TABLE'&lt;/P&gt;&lt;P&gt;            rname     = sy-cprog&lt;/P&gt;&lt;P&gt;            rvariante = ''&lt;/P&gt;&lt;P&gt;       TABLES&lt;/P&gt;&lt;P&gt;            infotab   = lt_selecciones.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT lt_selecciones.&lt;/P&gt;&lt;P&gt;    WRITE: / lt_selecciones-line COLOR COL_NORMAL INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;ENDFORM.                    " print_selections&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  load_data&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM load_data.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  CLEAR: t_list.&lt;/P&gt;&lt;P&gt;  REFRESH: t_list.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF p_spool IS INITIAL.&lt;/P&gt;&lt;P&gt;    SELECT *&lt;/P&gt;&lt;P&gt;      INTO CORRESPONDING FIELDS OF TABLE t_list&lt;/P&gt;&lt;P&gt;      FROM bsik&lt;/P&gt;&lt;P&gt;      WHERE lifnr IN s_lifnr&lt;/P&gt;&lt;P&gt;        AND bukrs IN s_bukrs&lt;/P&gt;&lt;P&gt;        AND umskz IN s_umskz&lt;/P&gt;&lt;P&gt;        AND budat IN s_budat&lt;/P&gt;&lt;P&gt;        AND wrbtr IN s_wrbtr&lt;/P&gt;&lt;P&gt;        AND dmbtr IN s_dmbtr&lt;/P&gt;&lt;P&gt;        AND ebeln IN s_ebeln&lt;/P&gt;&lt;P&gt;        AND sgtxt IN s_sgtxt&lt;/P&gt;&lt;P&gt;        AND xref1 IN s_xref1&lt;/P&gt;&lt;P&gt;        AND xref3 IN s_xref3.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    CLEAR: t_items.&lt;/P&gt;&lt;P&gt;    REFRESH: t_items.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IMPORT t_items FROM MEMORY ID 'ADV_PAYMENTS'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SELECT *&lt;/P&gt;&lt;P&gt;      INTO CORRESPONDING FIELDS OF TABLE t_list&lt;/P&gt;&lt;P&gt;      FROM bsik&lt;/P&gt;&lt;P&gt;      FOR ALL ENTRIES IN t_items&lt;/P&gt;&lt;P&gt;      WHERE bukrs = t_items-bukrs&lt;/P&gt;&lt;P&gt;        AND belnr = t_items-belnr&lt;/P&gt;&lt;P&gt;        AND gjahr = t_items-gjahr&lt;/P&gt;&lt;P&gt;        AND buzei = t_items-buzei&lt;/P&gt;&lt;P&gt;        AND lifnr IN s_lifnr&lt;/P&gt;&lt;P&gt;        AND bukrs IN s_bukrs&lt;/P&gt;&lt;P&gt;        AND umskz IN s_umskz&lt;/P&gt;&lt;P&gt;        AND budat IN s_budat&lt;/P&gt;&lt;P&gt;        AND wrbtr IN s_wrbtr&lt;/P&gt;&lt;P&gt;        AND dmbtr IN s_dmbtr&lt;/P&gt;&lt;P&gt;        AND ebeln IN s_ebeln&lt;/P&gt;&lt;P&gt;        AND sgtxt IN s_sgtxt&lt;/P&gt;&lt;P&gt;        AND xref1 IN s_xref1&lt;/P&gt;&lt;P&gt;        AND xref3 IN s_xref3.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SORT t_list&lt;/P&gt;&lt;P&gt;    BY lifnr&lt;/P&gt;&lt;P&gt;       gjahr&lt;/P&gt;&lt;P&gt;       bukrs&lt;/P&gt;&lt;P&gt;       belnr&lt;/P&gt;&lt;P&gt;       buzei.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fill data:&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  - Vendor name&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  - Technical fields&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  - Signed amount&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT t_list.&lt;/P&gt;&lt;P&gt;    CLEAR: t_list-name1.&lt;/P&gt;&lt;P&gt;    SELECT SINGLE name1&lt;/P&gt;&lt;P&gt;      INTO t_list-name1&lt;/P&gt;&lt;P&gt;      FROM lfa1&lt;/P&gt;&lt;P&gt;      WHERE lifnr = t_list-lifnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF t_list-shkzg = 'H'.&lt;/P&gt;&lt;P&gt;      t_list-wrbtr = t_list-wrbtr * ( -1 ).&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    t_list-xref3_tech = t_list-xref3.&lt;/P&gt;&lt;P&gt;    t_list-tabix_tech = sy-tabix.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    MODIFY t_list.&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;ENDFORM.                    " load_data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  show_list&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM show_list.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  DATA: le_layout   TYPE slis_layout_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: lt_fieldcat TYPE slis_t_fieldcat_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: lt_events   TYPE slis_t_event.&lt;/P&gt;&lt;P&gt;  DATA: le_events   TYPE slis_alv_event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: le_print    TYPE slis_print_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Layout control&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR le_layout.&lt;/P&gt;&lt;P&gt;  le_layout-f2code               = '&amp;amp;ETA'.&lt;/P&gt;&lt;P&gt;  le_layout-colwidth_optimize    = space.&lt;/P&gt;&lt;P&gt;  le_layout-no_colhead           = space.&lt;/P&gt;&lt;P&gt;  le_layout-zebra                = c_yes.&lt;/P&gt;&lt;P&gt;  le_layout-box_fieldname        = 'CHECKBOX'.&lt;/P&gt;&lt;P&gt;  le_layout-detail_initial_lines = c_yes.&lt;/P&gt;&lt;P&gt;  le_layout-detail_popup         = space.&lt;/P&gt;&lt;P&gt;  le_layout-confirmation_prompt  = c_yes.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fill the field catalog&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM fill_field_catalog&lt;/P&gt;&lt;P&gt;    USING lt_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Events TOP-OF-PAGE y END-OF-LIST.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  le_events-name = 'TOP_OF_PAGE'.&lt;/P&gt;&lt;P&gt;  le_events-form = 'TOP_OF_LIST'.&lt;/P&gt;&lt;P&gt;  APPEND le_events TO lt_events.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  le_events-name = 'END_OF_LIST'.&lt;/P&gt;&lt;P&gt;  le_events-form = 'PRINT_SELECTIONS'.&lt;/P&gt;&lt;P&gt;  APPEND le_events TO lt_events.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Printing control&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  le_print-no_print_selinfos  = c_yes.&lt;/P&gt;&lt;P&gt;  le_print-no_coverpage       = c_yes.&lt;/P&gt;&lt;P&gt;  le_print-no_print_listinfos = c_yes.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    I_INTERFACE_CHECK              = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    I_BYPASSING_BUFFER             =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    I_BUFFER_ACTIVE                = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      i_callback_program             = sy-cprog&lt;/P&gt;&lt;P&gt;      i_callback_pf_status_set       = 'SET_PF_STATUS'&lt;/P&gt;&lt;P&gt;      i_callback_user_command        = 'USER_COMMAND'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    I_STRUCTURE_NAME               =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      is_layout                      = le_layout&lt;/P&gt;&lt;P&gt;      it_fieldcat                    = lt_fieldcat&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    IT_EXCLUDING                   =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    IT_SPECIAL_GROUPS              =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    IT_SORT                        =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    IT_FILTER                      =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    IS_SEL_HIDE                    =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    I_DEFAULT                      = 'X'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     i_save                         = 'U'&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      i_save                         = 'A'&lt;/P&gt;&lt;P&gt;      is_variant                     = e_variant&lt;/P&gt;&lt;P&gt;      it_events                      = lt_events&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    IT_EVENT_EXIT                  =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      is_print                       = le_print&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    IS_REPREP_ID                   =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    I_SCREEN_START_COLUMN          = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    I_SCREEN_START_LINE            = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    I_SCREEN_END_COLUMN            = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    I_SCREEN_END_LINE              = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    E_EXIT_CAUSED_BY_CALLER        =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    ES_EXIT_CAUSED_BY_USER         =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      t_outtab                       = t_list&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      program_error                  = 1&lt;/P&gt;&lt;P&gt;      OTHERS                         = 2.&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 ID sy-msgid TYPE sy-msgty NUMBER sy-msgno&lt;/P&gt;&lt;P&gt;      WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;ENDFORM.                    " show_list&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  fill_field_catalog&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/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;_T_FIELDCAT  text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM fill_field_catalog&lt;/P&gt;&lt;P&gt;  USING &lt;U&gt;t&lt;/U&gt;fieldcat TYPE slis_t_fieldcat_alv.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  DATA: le_fieldcat TYPE slis_fieldcat_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_program_name               = sy-cprog&lt;/P&gt;&lt;P&gt;      i_internal_tabname           = 'T_LIST'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    I_STRUCTURE_NAME             =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      i_client_never_display       = c_yes&lt;/P&gt;&lt;P&gt;      i_inclname                   = sy-cprog&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    I_BYPASSING_BUFFER           =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    I_BUFFER_ACTIVE              =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CHANGING&lt;/P&gt;&lt;P&gt;      ct_fieldcat                  = &lt;U&gt;t&lt;/U&gt;fieldcat&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    INCONSISTENT_INTERFACE       = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    PROGRAM_ERROR                = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    OTHERS                       = 3&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            .&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;  le_fieldcat-key = space.&lt;/P&gt;&lt;P&gt;  le_fieldcat-emphasize = c_yes.&lt;/P&gt;&lt;P&gt;  MODIFY &lt;U&gt;t&lt;/U&gt;fieldcat&lt;/P&gt;&lt;P&gt;    FROM le_fieldcat&lt;/P&gt;&lt;P&gt;    TRANSPORTING key emphasize&lt;/P&gt;&lt;P&gt;    WHERE key = c_yes.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  le_fieldcat-tech = c_yes.&lt;/P&gt;&lt;P&gt;  MODIFY &lt;U&gt;t&lt;/U&gt;fieldcat&lt;/P&gt;&lt;P&gt;    FROM le_fieldcat&lt;/P&gt;&lt;P&gt;    TRANSPORTING tech&lt;/P&gt;&lt;P&gt;    WHERE fieldname CP '*TECH'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  le_fieldcat-tech = c_yes.&lt;/P&gt;&lt;P&gt;  MODIFY &lt;U&gt;t&lt;/U&gt;fieldcat&lt;/P&gt;&lt;P&gt;    FROM le_fieldcat&lt;/P&gt;&lt;P&gt;    TRANSPORTING tech&lt;/P&gt;&lt;P&gt;    WHERE fieldname = 'SHKZG'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  le_fieldcat-cfieldname = 'WAERS'.&lt;/P&gt;&lt;P&gt;  MODIFY &lt;U&gt;t&lt;/U&gt;fieldcat&lt;/P&gt;&lt;P&gt;    FROM le_fieldcat&lt;/P&gt;&lt;P&gt;    TRANSPORTING cfieldname&lt;/P&gt;&lt;P&gt;    WHERE datatype = 'CURR'.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;ENDFORM.                    " fill_field_catalog&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  set_pf_status&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM set_pf_status USING rt_extab TYPE slis_t_extab.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  SET PF-STATUS 'MAIN' EXCLUDING rt_extab.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;ENDFORM.                    " set_pf_status&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  user_command&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM user_command  USING r_ucomm LIKE sy-ucomm&lt;/P&gt;&lt;P&gt;                         rs_selfield TYPE slis_selfield.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  CASE r_ucomm.&lt;/P&gt;&lt;P&gt;    WHEN 'MAIL'.&lt;/P&gt;&lt;P&gt;      LOOP AT t_list&lt;/P&gt;&lt;P&gt;        TRANSPORTING NO FIELDS&lt;/P&gt;&lt;P&gt;        WHERE NOT checkbox IS initial.&lt;/P&gt;&lt;P&gt;        EXIT.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;      IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;        PERFORM broadcast_mails.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        CLEAR: t_list-checkbox.&lt;/P&gt;&lt;P&gt;        MODIFY t_list&lt;/P&gt;&lt;P&gt;          TRANSPORTING checkbox&lt;/P&gt;&lt;P&gt;          WHERE NOT checkbox IS initial.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        MESSAGE s780(3g).&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    WHEN OTHERS.&lt;/P&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  rs_selfield-refresh    = c_yes.&lt;/P&gt;&lt;P&gt;  rs_selfield-col_stable = c_yes.&lt;/P&gt;&lt;P&gt;  rs_selfield-row_stable = c_yes.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;ENDFORM.                    " user_command&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  broadcast_mails&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM broadcast_mails.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  SORT t_list&lt;/P&gt;&lt;P&gt;    BY checkbox&lt;/P&gt;&lt;P&gt;       xref3_tech&lt;/P&gt;&lt;P&gt;       lifnr&lt;/P&gt;&lt;P&gt;       bukrs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT t_list.&lt;/P&gt;&lt;P&gt;    IF NOT t_list-checkbox IS INITIAL.&lt;/P&gt;&lt;P&gt;      AT NEW xref3_tech.&lt;/P&gt;&lt;P&gt;        CLEAR: t_items.&lt;/P&gt;&lt;P&gt;        REFRESH: t_items.&lt;/P&gt;&lt;P&gt;      ENDAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      MOVE-CORRESPONDING t_list TO t_items.&lt;/P&gt;&lt;P&gt;      APPEND t_items.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      AT END OF xref3_tech.&lt;/P&gt;&lt;P&gt;        EXPORT t_items TO MEMORY ID 'ADV_PAYMENTS'.&lt;/P&gt;&lt;P&gt;        PERFORM send_mail&lt;/P&gt;&lt;P&gt;          USING t_list-xref3_tech.&lt;/P&gt;&lt;P&gt;      ENDAT.&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;  SORT t_list&lt;/P&gt;&lt;P&gt;    BY tabix_tech.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;ENDFORM.                    " broadcast_mails&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  send_mail&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/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;_RECEIVER  text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM send_mail USING    _receiver TYPE c.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  DATA: le_parameters LIKE pri_params.&lt;/P&gt;&lt;P&gt;  DATA: l_valid(1) TYPE c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: lt_pdf TYPE TABLE OF tline WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;  DATA: l_spool_c LIKE tsp01_sp0r-rqid_char.&lt;/P&gt;&lt;P&gt;  DATA: l_spool_i LIKE tsp01-rqident.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Retrieve default print parameters&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'GET_PRINT_PARAMETERS'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    ARCHIVE_ID                   = C_CHAR_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    ARCHIVE_INFO                 = C_CHAR_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    ARCHIVE_MODE                 = C_CHAR_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    ARCHIVE_TEXT                 = C_CHAR_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    AR_OBJECT                    = C_CHAR_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    ARCHIVE_REPORT               = C_CHAR_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    AUTHORITY                    = C_CHAR_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    COPIES                       = C_NUM3_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    COVER_PAGE                   = C_CHAR_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    DATA_SET                     = C_CHAR_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    DEPARTMENT                   = C_CHAR_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    DESTINATION                  = C_CHAR_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    EXPIRATION                   = C_NUM1_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    IMMEDIATELY                  = C_CHAR_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    IN_ARCHIVE_PARAMETERS        = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    IN_PARAMETERS                = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    LAYOUT                       = C_CHAR_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    LINE_COUNT                   = C_INT_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    LINE_SIZE                    = C_INT_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    LIST_NAME                    = C_CHAR_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    LIST_TEXT                    = C_CHAR_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    MODE                         = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    NEW_LIST_ID                  = C_CHAR_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      no_dialog                    = c_yes&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    RECEIVER                     = C_CHAR_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    RELEASE                      = C_CHAR_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    REPORT                       = C_CHAR_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    SAP_COVER_PAGE               = C_CHAR_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    HOST_COVER_PAGE              = C_CHAR_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    PRIORITY                     = C_NUM1_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    SAP_OBJECT                   = C_CHAR_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    TYPE                         = C_CHAR_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    USER                         = SY-UNAME&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    DRAFT                        = C_CHAR_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    OUT_ARCHIVE_PARAMETERS       =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      out_parameters               = le_parameters&lt;/P&gt;&lt;P&gt;      valid                        = l_valid&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    ARCHIVE_INFO_NOT_FOUND       = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    INVALID_PRINT_PARAMS         = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    INVALID_ARCHIVE_PARAMS       = 3&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    OTHERS                       = 4&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            .&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fill the following parameters:&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  - Print immediately: no&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  - Delete after output: no&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  - New SPOOL request: yes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  le_parameters-primm = space.&lt;/P&gt;&lt;P&gt;  le_parameters-prrel = space.&lt;/P&gt;&lt;P&gt;  le_parameters-prnew = c_yes.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Retrieve width and print format&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM prepare_print_format&lt;/P&gt;&lt;P&gt;    USING le_parameters.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Call the list on background&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SUBMIT (sy-repid)&lt;/P&gt;&lt;P&gt;    TO SAP-SPOOL&lt;/P&gt;&lt;P&gt;    SPOOL PARAMETERS le_parameters&lt;/P&gt;&lt;P&gt;    WITHOUT SPOOL DYNPRO&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   USING SELECTION-SET p_vari1&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    WITH p_spool = c_yes&lt;/P&gt;&lt;P&gt;    AND RETURN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get the SPOOL number&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  GET PARAMETER ID 'SPI' FIELD l_spool_c.&lt;/P&gt;&lt;P&gt;  l_spool_i = l_spool_c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Convert SPOOL to PDF&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      src_spoolid                    = l_spool_i&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    NO_DIALOG                      =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    DST_DEVICE                     =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    PDF_DESTINATION                =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    PDF_BYTECOUNT                  =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    PDF_SPOOLID                    =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    LIST_PAGECOUNT                 =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    BTC_JOBNAME                    =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    BTC_JOBCOUNT                   =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      pdf                            = lt_pdf&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    ERR_NO_ABAP_SPOOLJOB           = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    ERR_NO_SPOOLJOB                = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    ERR_NO_PERMISSION              = 3&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    ERR_CONV_NOT_POSSIBLE          = 4&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    ERR_BAD_DESTDEVICE             = 5&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    USER_CANCELLED                 = 6&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    ERR_SPOOLERROR                 = 7&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    ERR_TEMSEERROR                 = 8&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    ERR_BTCJOB_OPEN_FAILED         = 9&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    ERR_BTCJOB_SUBMIT_FAILED       = 10&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    ERR_BTCJOB_CLOSE_FAILED        = 11&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    OTHERS                         = 12&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            .&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Build the mail&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM build_mail&lt;/P&gt;&lt;P&gt;    TABLES lt_pdf&lt;/P&gt;&lt;P&gt;    USING _receiver.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;ENDFORM.                    " send_mail&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  prepare_print_format&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/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;lt;-&amp;gt;_PARAMETERS  text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM prepare_print_format USING    &lt;U&gt;parameters LIKE pri&lt;/U&gt;params.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  DATA: BEGIN OF lt_report_source OCCURS 0,&lt;/P&gt;&lt;P&gt;          line(72) TYPE c,&lt;/P&gt;&lt;P&gt;        END OF lt_report_source.&lt;/P&gt;&lt;P&gt;  DATA: l_string_linsz TYPE string.&lt;/P&gt;&lt;P&gt;  DATA: l_tabix LIKE sy-tabix.&lt;/P&gt;&lt;P&gt;  DATA: BEGIN OF lt_sentencia OCCURS 0,&lt;/P&gt;&lt;P&gt;          line(72) TYPE c,&lt;/P&gt;&lt;P&gt;        END OF lt_sentencia.&lt;/P&gt;&lt;P&gt;  DATA: lt_tsp1d TYPE TABLE OF tsp1d WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  READ REPORT sy-repid INTO lt_report_source.&lt;/P&gt;&lt;P&gt;  CHECK sy-subrc = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: l_tabix.&lt;/P&gt;&lt;P&gt;  WHILE NOT l_string_linsz CS '.'.&lt;/P&gt;&lt;P&gt;    ADD 1 TO l_tabix.&lt;/P&gt;&lt;P&gt;    READ TABLE lt_report_source&lt;/P&gt;&lt;P&gt;      INDEX l_tabix.&lt;/P&gt;&lt;P&gt;    TRANSLATE lt_report_source-line TO UPPER CASE.&lt;/P&gt;&lt;P&gt;    IF l_string_linsz CS 'REPORT'&lt;/P&gt;&lt;P&gt;      OR lt_report_source-line CS 'REPORT'.&lt;/P&gt;&lt;P&gt;      CONCATENATE l_string_linsz&lt;/P&gt;&lt;P&gt;                  lt_report_source-line&lt;/P&gt;&lt;P&gt;        INTO l_string_linsz&lt;/P&gt;&lt;P&gt;        SEPARATED BY space.&lt;/P&gt;&lt;P&gt;      CONDENSE l_string_linsz.&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;  ENDWHILE.&lt;/P&gt;&lt;P&gt;  TRANSLATE l_string_linsz USING '. '.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: lt_report_source.&lt;/P&gt;&lt;P&gt;  REFRESH: lt_report_source.&lt;/P&gt;&lt;P&gt;  FREE: lt_report_source.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SPLIT l_string_linsz AT space INTO TABLE lt_sentencia.&lt;/P&gt;&lt;P&gt;  LOOP AT lt_sentencia&lt;/P&gt;&lt;P&gt;    WHERE line CS 'LINE-SIZE'.&lt;/P&gt;&lt;P&gt;    l_tabix = sy-tabix.&lt;/P&gt;&lt;P&gt;    EXIT.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  ADD 1 TO l_tabix.&lt;/P&gt;&lt;P&gt;  READ TABLE lt_sentencia&lt;/P&gt;&lt;P&gt;    INDEX l_tabix.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT *&lt;/P&gt;&lt;P&gt;    INTO CORRESPONDING FIELDS OF TABLE lt_tsp1d&lt;/P&gt;&lt;P&gt;    FROM tsp1d&lt;/P&gt;&lt;P&gt;    WHERE type = 'L'&lt;/P&gt;&lt;P&gt;      AND outcolumns &amp;gt;= lt_sentencia-line.&lt;/P&gt;&lt;P&gt;  SORT lt_tsp1d&lt;/P&gt;&lt;P&gt;    BY outcolumns.&lt;/P&gt;&lt;P&gt;  READ TABLE lt_tsp1d&lt;/P&gt;&lt;P&gt;    INDEX 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;U&gt;parameters-linct = lt&lt;/U&gt;tsp1d-outrows.&lt;/P&gt;&lt;P&gt;&lt;U&gt;parameters-linsz = lt&lt;/U&gt;sentencia-line.&lt;/P&gt;&lt;P&gt;&lt;U&gt;parameters-paart = lt&lt;/U&gt;tsp1d-papart.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;ENDFORM.                    " prepare_print_format&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  build_mail&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/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;_T_PDF  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;_RECEIVER  text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM build_mail     TABLES &lt;U&gt;t&lt;/U&gt;pdf STRUCTURE tline&lt;/P&gt;&lt;P&gt;                    USING _receiver TYPE c.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  DATA: l_length_t_pdf TYPE i.&lt;/P&gt;&lt;P&gt;  DATA: l_string TYPE xstring.&lt;/P&gt;&lt;P&gt;  DATA: l_string_bck TYPE string.&lt;/P&gt;&lt;P&gt;  DATA: l_length_string TYPE i.&lt;/P&gt;&lt;P&gt;  DATA: l_length_objbin TYPE i.&lt;/P&gt;&lt;P&gt;  DATA: l_max_tabix TYPE i.&lt;/P&gt;&lt;P&gt;  DATA: l_dif TYPE i.&lt;/P&gt;&lt;P&gt;  DATA: l_hex_null TYPE x VALUE '00'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: lt_objtxt           LIKE solisti1   OCCURS 10 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;  DATA: l_tab_lines         LIKE sy-tabix.&lt;/P&gt;&lt;P&gt;  DATA: le_doc_chng         LIKE sodocchgi1.&lt;/P&gt;&lt;P&gt;  DATA: lt_objpack          LIKE sopcklsti1 OCCURS 2 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;  DATA: lt_objhead          LIKE solisti1   OCCURS 1 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;  DATA: lt_reclist          LIKE somlreci1  OCCURS 5 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;  DATA: lt_contents_bin     LIKE solisti1   OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Mail text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;(...here you should fill table lt_objtxt-line)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  lt_objtxt-line = 'First line of text'.&lt;/P&gt;&lt;P&gt;  append lt_objtxt.&lt;/P&gt;&lt;P&gt;  lt_objtxt-line = 'Second line'.&lt;/P&gt;&lt;P&gt;  append lt_objtxt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE lt_objtxt LINES l_tab_lines.&lt;/P&gt;&lt;P&gt;  READ TABLE lt_objtxt INDEX l_tab_lines.&lt;/P&gt;&lt;P&gt;  le_doc_chng-doc_size = ( l_tab_lines - 1 ) * 255&lt;/P&gt;&lt;P&gt;                         + STRLEN( lt_objtxt ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  le_doc_chng-obj_descr = 'This mail is about broadcasting'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR lt_objpack-transf_bin.&lt;/P&gt;&lt;P&gt;  lt_objpack-head_start = 1.&lt;/P&gt;&lt;P&gt;  lt_objpack-head_num   = 0.&lt;/P&gt;&lt;P&gt;  lt_objpack-body_start = 1.&lt;/P&gt;&lt;P&gt;  lt_objpack-body_num   = l_tab_lines.&lt;/P&gt;&lt;P&gt;  lt_objpack-doc_type   = 'RAW'.&lt;/P&gt;&lt;P&gt;  APPEND lt_objpack.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Attached file, in PDF-format&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  DESCRIBE FIELD &lt;U&gt;t&lt;/U&gt;pdf LENGTH l_length_t_pdf.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: l_string_bck,&lt;/P&gt;&lt;P&gt;         l_string.&lt;/P&gt;&lt;P&gt;  LOOP AT &lt;U&gt;t&lt;/U&gt;pdf.&lt;/P&gt;&lt;P&gt;    CONCATENATE l_string_bck &lt;U&gt;t&lt;/U&gt;pdf INTO l_string_bck.&lt;/P&gt;&lt;P&gt;    l_dif = l_length_t_pdf - STRLEN( &lt;U&gt;t&lt;/U&gt;pdf ).&lt;/P&gt;&lt;P&gt;    DO l_dif TIMES.&lt;/P&gt;&lt;P&gt;      CONCATENATE l_string_bck l_hex_null INTO l_string_bck.&lt;/P&gt;&lt;P&gt;    ENDDO.&lt;/P&gt;&lt;P&gt;    CONCATENATE l_string &lt;U&gt;t&lt;/U&gt;pdf INTO l_string.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  sy-subrc = 0.&lt;/P&gt;&lt;P&gt;  WHILE sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    REPLACE l_hex_null WITH space INTO l_string_bck.&lt;/P&gt;&lt;P&gt;  ENDWHILE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_length_string = strlen( l_string_bck ).&lt;/P&gt;&lt;P&gt;  DESCRIBE FIELD lt_contents_bin LENGTH l_length_objbin.&lt;/P&gt;&lt;P&gt;  l_max_tabix = ceil( l_length_string / l_length_objbin * '1.0' ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DO l_max_tabix TIMES.&lt;/P&gt;&lt;P&gt;    lt_contents_bin = l_string_bck.&lt;/P&gt;&lt;P&gt;    APPEND lt_contents_bin.&lt;/P&gt;&lt;P&gt;    IF sy-tabix &amp;lt;&amp;gt; l_max_tabix.&lt;/P&gt;&lt;P&gt;      l_string_bck = l_string_bck+l_length_objbin.&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;  DESCRIBE TABLE lt_contents_bin LINES l_tab_lines.&lt;/P&gt;&lt;P&gt;  APPEND lt_objhead.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  lt_objpack-transf_bin = c_yes.&lt;/P&gt;&lt;P&gt;  lt_objpack-head_start = 1.&lt;/P&gt;&lt;P&gt;  lt_objpack-head_num   = 1.&lt;/P&gt;&lt;P&gt;  lt_objpack-body_start = 1.&lt;/P&gt;&lt;P&gt;  lt_objpack-body_num   = l_tab_lines.&lt;/P&gt;&lt;P&gt;  lt_objpack-doc_type   = 'PDF'.&lt;/P&gt;&lt;P&gt;  lt_objpack-obj_name   = 'Advance payments'.&lt;/P&gt;&lt;P&gt;  WRITE sy-datum TO lt_objpack-obj_descr.&lt;/P&gt;&lt;P&gt;  CONCATENATE 'List of advance payments till'&lt;/P&gt;&lt;P&gt;              lt_objpack-obj_descr&lt;/P&gt;&lt;P&gt;    INTO lt_objpack-obj_descr&lt;/P&gt;&lt;P&gt;    SEPARATED BY space.&lt;/P&gt;&lt;P&gt;  CONCATENATE lt_objpack-obj_descr&lt;/P&gt;&lt;P&gt;              '.PDF'&lt;/P&gt;&lt;P&gt;    INTO lt_objpack-obj_descr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  lt_objpack-doc_size   = ( l_tab_lines - 1 ) * 255.&lt;/P&gt;&lt;P&gt;  LOOP AT lt_contents_bin.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  lt_objpack-doc_size = lt_objpack-doc_size + STRLEN( lt_contents_bin ).&lt;/P&gt;&lt;P&gt;  APPEND lt_objpack.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Receiver list&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SELECT SINGLE adr6~smtp_addr&lt;/P&gt;&lt;P&gt;    INTO lt_reclist-receiver&lt;/P&gt;&lt;P&gt;    FROM adr6 INNER JOIN usr21 ON adr6&lt;SUB&gt;addrnumber = usr21&lt;/SUB&gt;addrnumber&lt;/P&gt;&lt;P&gt;                              AND adr6&lt;SUB&gt;persnumber = usr21&lt;/SUB&gt;persnumber&lt;/P&gt;&lt;P&gt;    WHERE usr21~bname = _receiver&lt;/P&gt;&lt;P&gt;      AND adr6~date_from &amp;lt;= sy-datum&lt;/P&gt;&lt;P&gt;      AND adr6~flgdefault = c_yes.&lt;/P&gt;&lt;P&gt;  lt_reclist-rec_type = 'U'.&lt;/P&gt;&lt;P&gt;  APPEND lt_reclist.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Finally! we send the mail&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      document_data                    = le_doc_chng&lt;/P&gt;&lt;P&gt;      put_in_outbox                    = c_yes&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      packing_list                     = lt_objpack&lt;/P&gt;&lt;P&gt;      object_header                    = lt_objhead&lt;/P&gt;&lt;P&gt;      contents_bin                     = lt_contents_bin&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     contents_hex                     =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      contents_txt                     = lt_objtxt&lt;/P&gt;&lt;P&gt;      receivers                        = lt_reclist&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;ENDFORM.                    " build_mail&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;B&gt;&lt;/B&gt;&lt;/P&gt;&lt;P&gt;REWARD IF HELPFUL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 26 Sep 2007 10:02:45 GMT</pubDate>
    <dc:creator>varma_narayana</dc:creator>
    <dc:date>2007-09-26T10:02:45Z</dc:date>
    <item>
      <title>urgent require</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/urgent-require/m-p/2810717#M657022</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi dear ,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;can you provide me the source code for as follows.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Functionality is required that will allow the document to be downloaded from SAP to the user&amp;#146;s local drive as a PDF document. This will allow the user to send the document with a personalized message to the customer and also allow the user to send multiple documents to the customer in a single email.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i require as soon as possible.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks.&lt;/P&gt;&lt;P&gt;Puneet.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 26 Sep 2007 09:59:06 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/urgent-require/m-p/2810717#M657022</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-26T09:59:06Z</dc:date>
    </item>
    <item>
      <title>Re: urgent require</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/urgent-require/m-p/2810718#M657023</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Puneet..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is the Code for Generating PDF and Sending as attachment thru Mail.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT z_broadcasting_example&lt;/P&gt;&lt;P&gt;  NO STANDARD PAGE HEADING&lt;/P&gt;&lt;P&gt;  LINE-SIZE 254.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&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;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;TABLES: adrp,  "Persons (central address administration)&lt;/P&gt;&lt;P&gt;        bhdgd, "Common data area batch heading routine&lt;/P&gt;&lt;P&gt;        bsik,  "Accounting: Secondary Index for Vendors&lt;/P&gt;&lt;P&gt;        usr21, "Assign user name address key&lt;/P&gt;&lt;P&gt;        zt001. "Textos aviso pago anticipos y liquidaciones gastos viaje&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&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;General data definition&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;TYPE-POOLS: icon. "Zuordnung: Ikonenbezeichner in Listen zu ASCII-Codes&lt;/P&gt;&lt;P&gt;TYPE-POOLS: slis. "Globale Typen für generische Listbausteine&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: d_linsz            LIKE sy-linsz.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&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;Constants&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;CONSTANTS: c_yes(1)        TYPE c VALUE 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&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&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;DATA: e_variant  TYPE disvariant.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&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;Internal tables&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF t_list OCCURS 0,&lt;/P&gt;&lt;P&gt;        checkbox(1) TYPE c,&lt;/P&gt;&lt;P&gt;        xref3_tech LIKE bsik-xref3,&lt;/P&gt;&lt;P&gt;        lifnr LIKE bsik-lifnr,&lt;/P&gt;&lt;P&gt;        name1 LIKE lfa1-name1,&lt;/P&gt;&lt;P&gt;        bukrs LIKE bsik-bukrs,&lt;/P&gt;&lt;P&gt;        belnr LIKE bsik-belnr,&lt;/P&gt;&lt;P&gt;        gjahr LIKE bsik-gjahr,&lt;/P&gt;&lt;P&gt;        buzei LIKE bsik-buzei,&lt;/P&gt;&lt;P&gt;        budat LIKE bsik-budat,&lt;/P&gt;&lt;P&gt;        shkzg LIKE bsik-shkzg,&lt;/P&gt;&lt;P&gt;        wrbtr LIKE bsik-wrbtr,&lt;/P&gt;&lt;P&gt;        waers LIKE bsik-waers,&lt;/P&gt;&lt;P&gt;        xref1 LIKE bsik-xref1,&lt;/P&gt;&lt;P&gt;        xref3 LIKE bsik-xref3,&lt;/P&gt;&lt;P&gt;        sgtxt LIKE bsik-sgtxt,&lt;/P&gt;&lt;P&gt;        tabix_tech LIKE sy-tabix,&lt;/P&gt;&lt;P&gt;      END OF t_list.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF t_items OCCURS 0,&lt;/P&gt;&lt;P&gt;        bukrs LIKE bsik-bukrs,&lt;/P&gt;&lt;P&gt;        belnr LIKE bsik-belnr,&lt;/P&gt;&lt;P&gt;        gjahr LIKE bsik-gjahr,&lt;/P&gt;&lt;P&gt;        buzei LIKE bsik-buzei,&lt;/P&gt;&lt;P&gt;        xref3 LIKE bsik-xref3,&lt;/P&gt;&lt;P&gt;      END OF t_items.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&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;Ranges&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&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;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: BEGIN OF BLOCK aaa WITH FRAME TITLE text-000.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS: s_lifnr FOR bsik-lifnr,&lt;/P&gt;&lt;P&gt;                s_bukrs FOR bsik-bukrs,&lt;/P&gt;&lt;P&gt;                s_umskz FOR bsik-umskz,&lt;/P&gt;&lt;P&gt;                s_budat FOR bsik-budat,&lt;/P&gt;&lt;P&gt;                s_wrbtr FOR bsik-wrbtr,&lt;/P&gt;&lt;P&gt;                s_dmbtr FOR bsik-dmbtr,&lt;/P&gt;&lt;P&gt;                s_ebeln FOR bsik-ebeln,&lt;/P&gt;&lt;P&gt;                s_sgtxt FOR bsik-sgtxt,&lt;/P&gt;&lt;P&gt;                s_xref1 FOR bsik-xref1,&lt;/P&gt;&lt;P&gt;                s_xref3 FOR bsik-xref3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: SKIP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PARAMETERS: p_vari LIKE disvariant-variant.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: END OF BLOCK aaa.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PARAMETERS: p_spool(1) TYPE c NO-DISPLAY DEFAULT space.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&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;Events&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&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_vari.&lt;/P&gt;&lt;P&gt;  CLEAR e_variant.&lt;/P&gt;&lt;P&gt;  e_variant-report   = sy-cprog.&lt;/P&gt;&lt;P&gt;  e_variant-username = sy-uname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            i_save     = c_yes&lt;/P&gt;&lt;P&gt;       CHANGING&lt;/P&gt;&lt;P&gt;            cs_variant = e_variant&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            not_found  = 2.&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    p_vari = e_variant-variant.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM f4_for_variant.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&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;Main program&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;  CLEAR e_variant.&lt;/P&gt;&lt;P&gt;  e_variant-report   = sy-cprog.&lt;/P&gt;&lt;P&gt;  e_variant-username = sy-uname.&lt;/P&gt;&lt;P&gt;  e_variant-variant  = p_vari.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM load_data.&lt;/P&gt;&lt;P&gt;  PERFORM show_list.&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;*----&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;Routines&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  f4_for_variant&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM f4_for_variant.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  DATA: l_exit(1) TYPE c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_VARIANT_F4'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            is_variant          = e_variant&lt;/P&gt;&lt;P&gt;            i_tabname_header    = 'T_LIST'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          i_tabname_item      = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          IT_DEFAULT_FIELDCAT =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            i_save              = 'A'&lt;/P&gt;&lt;P&gt;       IMPORTING&lt;/P&gt;&lt;P&gt;            e_exit              = l_exit&lt;/P&gt;&lt;P&gt;            es_variant          = e_variant&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            not_found           = 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 2.&lt;/P&gt;&lt;P&gt;    MESSAGE ID sy-msgid TYPE 'S'  NUMBER sy-msgno&lt;/P&gt;&lt;P&gt;            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    IF l_exit = space.&lt;/P&gt;&lt;P&gt;      p_vari = e_variant-variant.&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;ENDFORM.                    " f4_for_variant&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  top_of_list&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;      Mostramos la cabecera del listado de errores, usando&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      la rutina BATCH-HEADING del programa RSBTCHH0 (consultar&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      documentación de dicho programa).&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM top_of_list.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  bhdgd-line1 = sy-title.&lt;/P&gt;&lt;P&gt;  bhdgd-line2 = space.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CATCH SYSTEM-EXCEPTIONS bcd_field_overflow = 1.&lt;/P&gt;&lt;P&gt;    bhdgd-lines = sy-linsz.&lt;/P&gt;&lt;P&gt;  ENDCATCH.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 1.&lt;/P&gt;&lt;P&gt;    bhdgd-lines = 999.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  bhdgd-uname = sy-uname.&lt;/P&gt;&lt;P&gt;  bhdgd-repid = sy-cprog.&lt;/P&gt;&lt;P&gt;  bhdgd-inifl = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM batch-heading(rsbtchh0).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ULINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  FORMAT INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;ENDFORM.                    " top_of_list&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  print_selections&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM print_selections.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  DATA: BEGIN OF lt_selecciones OCCURS 100,&lt;/P&gt;&lt;P&gt;          flag(1) TYPE c,&lt;/P&gt;&lt;P&gt;          olength TYPE x,&lt;/P&gt;&lt;P&gt;          line LIKE raldb-infoline,&lt;/P&gt;&lt;P&gt;        END OF lt_selecciones.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  d_linsz = sy-linsz - 2.&lt;/P&gt;&lt;P&gt;  sy-lisel = '*** Final de listado ***'(010).&lt;/P&gt;&lt;P&gt;  PERFORM just_routine(rsbtchh0)&lt;/P&gt;&lt;P&gt;    USING sy-lisel sy-linsz.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  FORMAT RESET.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ULINE.&lt;/P&gt;&lt;P&gt;  WRITE: / sy-vline NO-GAP, sy-lisel+2(d_linsz) NO-GAP, sy-vline.&lt;/P&gt;&lt;P&gt;  ULINE.&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;  CALL FUNCTION 'PRINT_SELECTIONS'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            mode      = 'TABLE'&lt;/P&gt;&lt;P&gt;            rname     = sy-cprog&lt;/P&gt;&lt;P&gt;            rvariante = ''&lt;/P&gt;&lt;P&gt;       TABLES&lt;/P&gt;&lt;P&gt;            infotab   = lt_selecciones.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT lt_selecciones.&lt;/P&gt;&lt;P&gt;    WRITE: / lt_selecciones-line COLOR COL_NORMAL INTENSIFIED OFF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;ENDFORM.                    " print_selections&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  load_data&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM load_data.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  CLEAR: t_list.&lt;/P&gt;&lt;P&gt;  REFRESH: t_list.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF p_spool IS INITIAL.&lt;/P&gt;&lt;P&gt;    SELECT *&lt;/P&gt;&lt;P&gt;      INTO CORRESPONDING FIELDS OF TABLE t_list&lt;/P&gt;&lt;P&gt;      FROM bsik&lt;/P&gt;&lt;P&gt;      WHERE lifnr IN s_lifnr&lt;/P&gt;&lt;P&gt;        AND bukrs IN s_bukrs&lt;/P&gt;&lt;P&gt;        AND umskz IN s_umskz&lt;/P&gt;&lt;P&gt;        AND budat IN s_budat&lt;/P&gt;&lt;P&gt;        AND wrbtr IN s_wrbtr&lt;/P&gt;&lt;P&gt;        AND dmbtr IN s_dmbtr&lt;/P&gt;&lt;P&gt;        AND ebeln IN s_ebeln&lt;/P&gt;&lt;P&gt;        AND sgtxt IN s_sgtxt&lt;/P&gt;&lt;P&gt;        AND xref1 IN s_xref1&lt;/P&gt;&lt;P&gt;        AND xref3 IN s_xref3.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    CLEAR: t_items.&lt;/P&gt;&lt;P&gt;    REFRESH: t_items.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IMPORT t_items FROM MEMORY ID 'ADV_PAYMENTS'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SELECT *&lt;/P&gt;&lt;P&gt;      INTO CORRESPONDING FIELDS OF TABLE t_list&lt;/P&gt;&lt;P&gt;      FROM bsik&lt;/P&gt;&lt;P&gt;      FOR ALL ENTRIES IN t_items&lt;/P&gt;&lt;P&gt;      WHERE bukrs = t_items-bukrs&lt;/P&gt;&lt;P&gt;        AND belnr = t_items-belnr&lt;/P&gt;&lt;P&gt;        AND gjahr = t_items-gjahr&lt;/P&gt;&lt;P&gt;        AND buzei = t_items-buzei&lt;/P&gt;&lt;P&gt;        AND lifnr IN s_lifnr&lt;/P&gt;&lt;P&gt;        AND bukrs IN s_bukrs&lt;/P&gt;&lt;P&gt;        AND umskz IN s_umskz&lt;/P&gt;&lt;P&gt;        AND budat IN s_budat&lt;/P&gt;&lt;P&gt;        AND wrbtr IN s_wrbtr&lt;/P&gt;&lt;P&gt;        AND dmbtr IN s_dmbtr&lt;/P&gt;&lt;P&gt;        AND ebeln IN s_ebeln&lt;/P&gt;&lt;P&gt;        AND sgtxt IN s_sgtxt&lt;/P&gt;&lt;P&gt;        AND xref1 IN s_xref1&lt;/P&gt;&lt;P&gt;        AND xref3 IN s_xref3.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SORT t_list&lt;/P&gt;&lt;P&gt;    BY lifnr&lt;/P&gt;&lt;P&gt;       gjahr&lt;/P&gt;&lt;P&gt;       bukrs&lt;/P&gt;&lt;P&gt;       belnr&lt;/P&gt;&lt;P&gt;       buzei.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fill data:&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  - Vendor name&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  - Technical fields&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  - Signed amount&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT t_list.&lt;/P&gt;&lt;P&gt;    CLEAR: t_list-name1.&lt;/P&gt;&lt;P&gt;    SELECT SINGLE name1&lt;/P&gt;&lt;P&gt;      INTO t_list-name1&lt;/P&gt;&lt;P&gt;      FROM lfa1&lt;/P&gt;&lt;P&gt;      WHERE lifnr = t_list-lifnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF t_list-shkzg = 'H'.&lt;/P&gt;&lt;P&gt;      t_list-wrbtr = t_list-wrbtr * ( -1 ).&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    t_list-xref3_tech = t_list-xref3.&lt;/P&gt;&lt;P&gt;    t_list-tabix_tech = sy-tabix.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    MODIFY t_list.&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;ENDFORM.                    " load_data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  show_list&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM show_list.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  DATA: le_layout   TYPE slis_layout_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: lt_fieldcat TYPE slis_t_fieldcat_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: lt_events   TYPE slis_t_event.&lt;/P&gt;&lt;P&gt;  DATA: le_events   TYPE slis_alv_event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: le_print    TYPE slis_print_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Layout control&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR le_layout.&lt;/P&gt;&lt;P&gt;  le_layout-f2code               = '&amp;amp;ETA'.&lt;/P&gt;&lt;P&gt;  le_layout-colwidth_optimize    = space.&lt;/P&gt;&lt;P&gt;  le_layout-no_colhead           = space.&lt;/P&gt;&lt;P&gt;  le_layout-zebra                = c_yes.&lt;/P&gt;&lt;P&gt;  le_layout-box_fieldname        = 'CHECKBOX'.&lt;/P&gt;&lt;P&gt;  le_layout-detail_initial_lines = c_yes.&lt;/P&gt;&lt;P&gt;  le_layout-detail_popup         = space.&lt;/P&gt;&lt;P&gt;  le_layout-confirmation_prompt  = c_yes.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fill the field catalog&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM fill_field_catalog&lt;/P&gt;&lt;P&gt;    USING lt_fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Events TOP-OF-PAGE y END-OF-LIST.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  le_events-name = 'TOP_OF_PAGE'.&lt;/P&gt;&lt;P&gt;  le_events-form = 'TOP_OF_LIST'.&lt;/P&gt;&lt;P&gt;  APPEND le_events TO lt_events.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  le_events-name = 'END_OF_LIST'.&lt;/P&gt;&lt;P&gt;  le_events-form = 'PRINT_SELECTIONS'.&lt;/P&gt;&lt;P&gt;  APPEND le_events TO lt_events.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Printing control&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  le_print-no_print_selinfos  = c_yes.&lt;/P&gt;&lt;P&gt;  le_print-no_coverpage       = c_yes.&lt;/P&gt;&lt;P&gt;  le_print-no_print_listinfos = c_yes.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    I_INTERFACE_CHECK              = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    I_BYPASSING_BUFFER             =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    I_BUFFER_ACTIVE                = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      i_callback_program             = sy-cprog&lt;/P&gt;&lt;P&gt;      i_callback_pf_status_set       = 'SET_PF_STATUS'&lt;/P&gt;&lt;P&gt;      i_callback_user_command        = 'USER_COMMAND'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    I_STRUCTURE_NAME               =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      is_layout                      = le_layout&lt;/P&gt;&lt;P&gt;      it_fieldcat                    = lt_fieldcat&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    IT_EXCLUDING                   =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    IT_SPECIAL_GROUPS              =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    IT_SORT                        =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    IT_FILTER                      =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    IS_SEL_HIDE                    =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    I_DEFAULT                      = 'X'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     i_save                         = 'U'&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      i_save                         = 'A'&lt;/P&gt;&lt;P&gt;      is_variant                     = e_variant&lt;/P&gt;&lt;P&gt;      it_events                      = lt_events&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    IT_EVENT_EXIT                  =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      is_print                       = le_print&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    IS_REPREP_ID                   =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    I_SCREEN_START_COLUMN          = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    I_SCREEN_START_LINE            = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    I_SCREEN_END_COLUMN            = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    I_SCREEN_END_LINE              = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    E_EXIT_CAUSED_BY_CALLER        =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    ES_EXIT_CAUSED_BY_USER         =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      t_outtab                       = t_list&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      program_error                  = 1&lt;/P&gt;&lt;P&gt;      OTHERS                         = 2.&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 ID sy-msgid TYPE sy-msgty NUMBER sy-msgno&lt;/P&gt;&lt;P&gt;      WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;ENDFORM.                    " show_list&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  fill_field_catalog&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/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;_T_FIELDCAT  text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM fill_field_catalog&lt;/P&gt;&lt;P&gt;  USING &lt;U&gt;t&lt;/U&gt;fieldcat TYPE slis_t_fieldcat_alv.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  DATA: le_fieldcat TYPE slis_fieldcat_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_program_name               = sy-cprog&lt;/P&gt;&lt;P&gt;      i_internal_tabname           = 'T_LIST'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    I_STRUCTURE_NAME             =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      i_client_never_display       = c_yes&lt;/P&gt;&lt;P&gt;      i_inclname                   = sy-cprog&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    I_BYPASSING_BUFFER           =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    I_BUFFER_ACTIVE              =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CHANGING&lt;/P&gt;&lt;P&gt;      ct_fieldcat                  = &lt;U&gt;t&lt;/U&gt;fieldcat&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    INCONSISTENT_INTERFACE       = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    PROGRAM_ERROR                = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    OTHERS                       = 3&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            .&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;  le_fieldcat-key = space.&lt;/P&gt;&lt;P&gt;  le_fieldcat-emphasize = c_yes.&lt;/P&gt;&lt;P&gt;  MODIFY &lt;U&gt;t&lt;/U&gt;fieldcat&lt;/P&gt;&lt;P&gt;    FROM le_fieldcat&lt;/P&gt;&lt;P&gt;    TRANSPORTING key emphasize&lt;/P&gt;&lt;P&gt;    WHERE key = c_yes.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  le_fieldcat-tech = c_yes.&lt;/P&gt;&lt;P&gt;  MODIFY &lt;U&gt;t&lt;/U&gt;fieldcat&lt;/P&gt;&lt;P&gt;    FROM le_fieldcat&lt;/P&gt;&lt;P&gt;    TRANSPORTING tech&lt;/P&gt;&lt;P&gt;    WHERE fieldname CP '*TECH'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  le_fieldcat-tech = c_yes.&lt;/P&gt;&lt;P&gt;  MODIFY &lt;U&gt;t&lt;/U&gt;fieldcat&lt;/P&gt;&lt;P&gt;    FROM le_fieldcat&lt;/P&gt;&lt;P&gt;    TRANSPORTING tech&lt;/P&gt;&lt;P&gt;    WHERE fieldname = 'SHKZG'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  le_fieldcat-cfieldname = 'WAERS'.&lt;/P&gt;&lt;P&gt;  MODIFY &lt;U&gt;t&lt;/U&gt;fieldcat&lt;/P&gt;&lt;P&gt;    FROM le_fieldcat&lt;/P&gt;&lt;P&gt;    TRANSPORTING cfieldname&lt;/P&gt;&lt;P&gt;    WHERE datatype = 'CURR'.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;ENDFORM.                    " fill_field_catalog&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  set_pf_status&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM set_pf_status USING rt_extab TYPE slis_t_extab.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  SET PF-STATUS 'MAIN' EXCLUDING rt_extab.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;ENDFORM.                    " set_pf_status&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  user_command&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM user_command  USING r_ucomm LIKE sy-ucomm&lt;/P&gt;&lt;P&gt;                         rs_selfield TYPE slis_selfield.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  CASE r_ucomm.&lt;/P&gt;&lt;P&gt;    WHEN 'MAIL'.&lt;/P&gt;&lt;P&gt;      LOOP AT t_list&lt;/P&gt;&lt;P&gt;        TRANSPORTING NO FIELDS&lt;/P&gt;&lt;P&gt;        WHERE NOT checkbox IS initial.&lt;/P&gt;&lt;P&gt;        EXIT.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;      IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;        PERFORM broadcast_mails.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        CLEAR: t_list-checkbox.&lt;/P&gt;&lt;P&gt;        MODIFY t_list&lt;/P&gt;&lt;P&gt;          TRANSPORTING checkbox&lt;/P&gt;&lt;P&gt;          WHERE NOT checkbox IS initial.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        MESSAGE s780(3g).&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    WHEN OTHERS.&lt;/P&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  rs_selfield-refresh    = c_yes.&lt;/P&gt;&lt;P&gt;  rs_selfield-col_stable = c_yes.&lt;/P&gt;&lt;P&gt;  rs_selfield-row_stable = c_yes.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;ENDFORM.                    " user_command&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  broadcast_mails&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM broadcast_mails.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  SORT t_list&lt;/P&gt;&lt;P&gt;    BY checkbox&lt;/P&gt;&lt;P&gt;       xref3_tech&lt;/P&gt;&lt;P&gt;       lifnr&lt;/P&gt;&lt;P&gt;       bukrs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT t_list.&lt;/P&gt;&lt;P&gt;    IF NOT t_list-checkbox IS INITIAL.&lt;/P&gt;&lt;P&gt;      AT NEW xref3_tech.&lt;/P&gt;&lt;P&gt;        CLEAR: t_items.&lt;/P&gt;&lt;P&gt;        REFRESH: t_items.&lt;/P&gt;&lt;P&gt;      ENDAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      MOVE-CORRESPONDING t_list TO t_items.&lt;/P&gt;&lt;P&gt;      APPEND t_items.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      AT END OF xref3_tech.&lt;/P&gt;&lt;P&gt;        EXPORT t_items TO MEMORY ID 'ADV_PAYMENTS'.&lt;/P&gt;&lt;P&gt;        PERFORM send_mail&lt;/P&gt;&lt;P&gt;          USING t_list-xref3_tech.&lt;/P&gt;&lt;P&gt;      ENDAT.&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;  SORT t_list&lt;/P&gt;&lt;P&gt;    BY tabix_tech.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;ENDFORM.                    " broadcast_mails&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  send_mail&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/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;_RECEIVER  text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM send_mail USING    _receiver TYPE c.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  DATA: le_parameters LIKE pri_params.&lt;/P&gt;&lt;P&gt;  DATA: l_valid(1) TYPE c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: lt_pdf TYPE TABLE OF tline WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;  DATA: l_spool_c LIKE tsp01_sp0r-rqid_char.&lt;/P&gt;&lt;P&gt;  DATA: l_spool_i LIKE tsp01-rqident.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Retrieve default print parameters&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'GET_PRINT_PARAMETERS'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    ARCHIVE_ID                   = C_CHAR_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    ARCHIVE_INFO                 = C_CHAR_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    ARCHIVE_MODE                 = C_CHAR_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    ARCHIVE_TEXT                 = C_CHAR_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    AR_OBJECT                    = C_CHAR_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    ARCHIVE_REPORT               = C_CHAR_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    AUTHORITY                    = C_CHAR_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    COPIES                       = C_NUM3_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    COVER_PAGE                   = C_CHAR_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    DATA_SET                     = C_CHAR_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    DEPARTMENT                   = C_CHAR_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    DESTINATION                  = C_CHAR_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    EXPIRATION                   = C_NUM1_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    IMMEDIATELY                  = C_CHAR_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    IN_ARCHIVE_PARAMETERS        = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    IN_PARAMETERS                = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    LAYOUT                       = C_CHAR_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    LINE_COUNT                   = C_INT_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    LINE_SIZE                    = C_INT_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    LIST_NAME                    = C_CHAR_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    LIST_TEXT                    = C_CHAR_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    MODE                         = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    NEW_LIST_ID                  = C_CHAR_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      no_dialog                    = c_yes&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    RECEIVER                     = C_CHAR_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    RELEASE                      = C_CHAR_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    REPORT                       = C_CHAR_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    SAP_COVER_PAGE               = C_CHAR_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    HOST_COVER_PAGE              = C_CHAR_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    PRIORITY                     = C_NUM1_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    SAP_OBJECT                   = C_CHAR_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    TYPE                         = C_CHAR_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    USER                         = SY-UNAME&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    DRAFT                        = C_CHAR_UNKNOWN&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    OUT_ARCHIVE_PARAMETERS       =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      out_parameters               = le_parameters&lt;/P&gt;&lt;P&gt;      valid                        = l_valid&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    ARCHIVE_INFO_NOT_FOUND       = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    INVALID_PRINT_PARAMS         = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    INVALID_ARCHIVE_PARAMS       = 3&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    OTHERS                       = 4&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            .&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fill the following parameters:&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  - Print immediately: no&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  - Delete after output: no&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  - New SPOOL request: yes&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  le_parameters-primm = space.&lt;/P&gt;&lt;P&gt;  le_parameters-prrel = space.&lt;/P&gt;&lt;P&gt;  le_parameters-prnew = c_yes.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Retrieve width and print format&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM prepare_print_format&lt;/P&gt;&lt;P&gt;    USING le_parameters.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Call the list on background&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SUBMIT (sy-repid)&lt;/P&gt;&lt;P&gt;    TO SAP-SPOOL&lt;/P&gt;&lt;P&gt;    SPOOL PARAMETERS le_parameters&lt;/P&gt;&lt;P&gt;    WITHOUT SPOOL DYNPRO&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   USING SELECTION-SET p_vari1&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    WITH p_spool = c_yes&lt;/P&gt;&lt;P&gt;    AND RETURN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get the SPOOL number&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  GET PARAMETER ID 'SPI' FIELD l_spool_c.&lt;/P&gt;&lt;P&gt;  l_spool_i = l_spool_c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Convert SPOOL to PDF&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      src_spoolid                    = l_spool_i&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    NO_DIALOG                      =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    DST_DEVICE                     =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    PDF_DESTINATION                =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    PDF_BYTECOUNT                  =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    PDF_SPOOLID                    =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    LIST_PAGECOUNT                 =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    BTC_JOBNAME                    =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    BTC_JOBCOUNT                   =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      pdf                            = lt_pdf&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    ERR_NO_ABAP_SPOOLJOB           = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    ERR_NO_SPOOLJOB                = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    ERR_NO_PERMISSION              = 3&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    ERR_CONV_NOT_POSSIBLE          = 4&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    ERR_BAD_DESTDEVICE             = 5&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    USER_CANCELLED                 = 6&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    ERR_SPOOLERROR                 = 7&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    ERR_TEMSEERROR                 = 8&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    ERR_BTCJOB_OPEN_FAILED         = 9&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    ERR_BTCJOB_SUBMIT_FAILED       = 10&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    ERR_BTCJOB_CLOSE_FAILED        = 11&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    OTHERS                         = 12&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            .&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Build the mail&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM build_mail&lt;/P&gt;&lt;P&gt;    TABLES lt_pdf&lt;/P&gt;&lt;P&gt;    USING _receiver.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;ENDFORM.                    " send_mail&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  prepare_print_format&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/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;lt;-&amp;gt;_PARAMETERS  text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM prepare_print_format USING    &lt;U&gt;parameters LIKE pri&lt;/U&gt;params.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  DATA: BEGIN OF lt_report_source OCCURS 0,&lt;/P&gt;&lt;P&gt;          line(72) TYPE c,&lt;/P&gt;&lt;P&gt;        END OF lt_report_source.&lt;/P&gt;&lt;P&gt;  DATA: l_string_linsz TYPE string.&lt;/P&gt;&lt;P&gt;  DATA: l_tabix LIKE sy-tabix.&lt;/P&gt;&lt;P&gt;  DATA: BEGIN OF lt_sentencia OCCURS 0,&lt;/P&gt;&lt;P&gt;          line(72) TYPE c,&lt;/P&gt;&lt;P&gt;        END OF lt_sentencia.&lt;/P&gt;&lt;P&gt;  DATA: lt_tsp1d TYPE TABLE OF tsp1d WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  READ REPORT sy-repid INTO lt_report_source.&lt;/P&gt;&lt;P&gt;  CHECK sy-subrc = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: l_tabix.&lt;/P&gt;&lt;P&gt;  WHILE NOT l_string_linsz CS '.'.&lt;/P&gt;&lt;P&gt;    ADD 1 TO l_tabix.&lt;/P&gt;&lt;P&gt;    READ TABLE lt_report_source&lt;/P&gt;&lt;P&gt;      INDEX l_tabix.&lt;/P&gt;&lt;P&gt;    TRANSLATE lt_report_source-line TO UPPER CASE.&lt;/P&gt;&lt;P&gt;    IF l_string_linsz CS 'REPORT'&lt;/P&gt;&lt;P&gt;      OR lt_report_source-line CS 'REPORT'.&lt;/P&gt;&lt;P&gt;      CONCATENATE l_string_linsz&lt;/P&gt;&lt;P&gt;                  lt_report_source-line&lt;/P&gt;&lt;P&gt;        INTO l_string_linsz&lt;/P&gt;&lt;P&gt;        SEPARATED BY space.&lt;/P&gt;&lt;P&gt;      CONDENSE l_string_linsz.&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;  ENDWHILE.&lt;/P&gt;&lt;P&gt;  TRANSLATE l_string_linsz USING '. '.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: lt_report_source.&lt;/P&gt;&lt;P&gt;  REFRESH: lt_report_source.&lt;/P&gt;&lt;P&gt;  FREE: lt_report_source.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SPLIT l_string_linsz AT space INTO TABLE lt_sentencia.&lt;/P&gt;&lt;P&gt;  LOOP AT lt_sentencia&lt;/P&gt;&lt;P&gt;    WHERE line CS 'LINE-SIZE'.&lt;/P&gt;&lt;P&gt;    l_tabix = sy-tabix.&lt;/P&gt;&lt;P&gt;    EXIT.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  ADD 1 TO l_tabix.&lt;/P&gt;&lt;P&gt;  READ TABLE lt_sentencia&lt;/P&gt;&lt;P&gt;    INDEX l_tabix.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT *&lt;/P&gt;&lt;P&gt;    INTO CORRESPONDING FIELDS OF TABLE lt_tsp1d&lt;/P&gt;&lt;P&gt;    FROM tsp1d&lt;/P&gt;&lt;P&gt;    WHERE type = 'L'&lt;/P&gt;&lt;P&gt;      AND outcolumns &amp;gt;= lt_sentencia-line.&lt;/P&gt;&lt;P&gt;  SORT lt_tsp1d&lt;/P&gt;&lt;P&gt;    BY outcolumns.&lt;/P&gt;&lt;P&gt;  READ TABLE lt_tsp1d&lt;/P&gt;&lt;P&gt;    INDEX 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;U&gt;parameters-linct = lt&lt;/U&gt;tsp1d-outrows.&lt;/P&gt;&lt;P&gt;&lt;U&gt;parameters-linsz = lt&lt;/U&gt;sentencia-line.&lt;/P&gt;&lt;P&gt;&lt;U&gt;parameters-paart = lt&lt;/U&gt;tsp1d-papart.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;ENDFORM.                    " prepare_print_format&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  build_mail&lt;/P&gt;&lt;P&gt;*&amp;amp;----&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;/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;_T_PDF  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;_RECEIVER  text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM build_mail     TABLES &lt;U&gt;t&lt;/U&gt;pdf STRUCTURE tline&lt;/P&gt;&lt;P&gt;                    USING _receiver TYPE c.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  DATA: l_length_t_pdf TYPE i.&lt;/P&gt;&lt;P&gt;  DATA: l_string TYPE xstring.&lt;/P&gt;&lt;P&gt;  DATA: l_string_bck TYPE string.&lt;/P&gt;&lt;P&gt;  DATA: l_length_string TYPE i.&lt;/P&gt;&lt;P&gt;  DATA: l_length_objbin TYPE i.&lt;/P&gt;&lt;P&gt;  DATA: l_max_tabix TYPE i.&lt;/P&gt;&lt;P&gt;  DATA: l_dif TYPE i.&lt;/P&gt;&lt;P&gt;  DATA: l_hex_null TYPE x VALUE '00'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: lt_objtxt           LIKE solisti1   OCCURS 10 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;  DATA: l_tab_lines         LIKE sy-tabix.&lt;/P&gt;&lt;P&gt;  DATA: le_doc_chng         LIKE sodocchgi1.&lt;/P&gt;&lt;P&gt;  DATA: lt_objpack          LIKE sopcklsti1 OCCURS 2 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;  DATA: lt_objhead          LIKE solisti1   OCCURS 1 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;  DATA: lt_reclist          LIKE somlreci1  OCCURS 5 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;  DATA: lt_contents_bin     LIKE solisti1   OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Mail text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;(...here you should fill table lt_objtxt-line)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  lt_objtxt-line = 'First line of text'.&lt;/P&gt;&lt;P&gt;  append lt_objtxt.&lt;/P&gt;&lt;P&gt;  lt_objtxt-line = 'Second line'.&lt;/P&gt;&lt;P&gt;  append lt_objtxt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE lt_objtxt LINES l_tab_lines.&lt;/P&gt;&lt;P&gt;  READ TABLE lt_objtxt INDEX l_tab_lines.&lt;/P&gt;&lt;P&gt;  le_doc_chng-doc_size = ( l_tab_lines - 1 ) * 255&lt;/P&gt;&lt;P&gt;                         + STRLEN( lt_objtxt ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  le_doc_chng-obj_descr = 'This mail is about broadcasting'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR lt_objpack-transf_bin.&lt;/P&gt;&lt;P&gt;  lt_objpack-head_start = 1.&lt;/P&gt;&lt;P&gt;  lt_objpack-head_num   = 0.&lt;/P&gt;&lt;P&gt;  lt_objpack-body_start = 1.&lt;/P&gt;&lt;P&gt;  lt_objpack-body_num   = l_tab_lines.&lt;/P&gt;&lt;P&gt;  lt_objpack-doc_type   = 'RAW'.&lt;/P&gt;&lt;P&gt;  APPEND lt_objpack.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Attached file, in PDF-format&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  DESCRIBE FIELD &lt;U&gt;t&lt;/U&gt;pdf LENGTH l_length_t_pdf.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: l_string_bck,&lt;/P&gt;&lt;P&gt;         l_string.&lt;/P&gt;&lt;P&gt;  LOOP AT &lt;U&gt;t&lt;/U&gt;pdf.&lt;/P&gt;&lt;P&gt;    CONCATENATE l_string_bck &lt;U&gt;t&lt;/U&gt;pdf INTO l_string_bck.&lt;/P&gt;&lt;P&gt;    l_dif = l_length_t_pdf - STRLEN( &lt;U&gt;t&lt;/U&gt;pdf ).&lt;/P&gt;&lt;P&gt;    DO l_dif TIMES.&lt;/P&gt;&lt;P&gt;      CONCATENATE l_string_bck l_hex_null INTO l_string_bck.&lt;/P&gt;&lt;P&gt;    ENDDO.&lt;/P&gt;&lt;P&gt;    CONCATENATE l_string &lt;U&gt;t&lt;/U&gt;pdf INTO l_string.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  sy-subrc = 0.&lt;/P&gt;&lt;P&gt;  WHILE sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    REPLACE l_hex_null WITH space INTO l_string_bck.&lt;/P&gt;&lt;P&gt;  ENDWHILE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_length_string = strlen( l_string_bck ).&lt;/P&gt;&lt;P&gt;  DESCRIBE FIELD lt_contents_bin LENGTH l_length_objbin.&lt;/P&gt;&lt;P&gt;  l_max_tabix = ceil( l_length_string / l_length_objbin * '1.0' ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DO l_max_tabix TIMES.&lt;/P&gt;&lt;P&gt;    lt_contents_bin = l_string_bck.&lt;/P&gt;&lt;P&gt;    APPEND lt_contents_bin.&lt;/P&gt;&lt;P&gt;    IF sy-tabix &amp;lt;&amp;gt; l_max_tabix.&lt;/P&gt;&lt;P&gt;      l_string_bck = l_string_bck+l_length_objbin.&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;  DESCRIBE TABLE lt_contents_bin LINES l_tab_lines.&lt;/P&gt;&lt;P&gt;  APPEND lt_objhead.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  lt_objpack-transf_bin = c_yes.&lt;/P&gt;&lt;P&gt;  lt_objpack-head_start = 1.&lt;/P&gt;&lt;P&gt;  lt_objpack-head_num   = 1.&lt;/P&gt;&lt;P&gt;  lt_objpack-body_start = 1.&lt;/P&gt;&lt;P&gt;  lt_objpack-body_num   = l_tab_lines.&lt;/P&gt;&lt;P&gt;  lt_objpack-doc_type   = 'PDF'.&lt;/P&gt;&lt;P&gt;  lt_objpack-obj_name   = 'Advance payments'.&lt;/P&gt;&lt;P&gt;  WRITE sy-datum TO lt_objpack-obj_descr.&lt;/P&gt;&lt;P&gt;  CONCATENATE 'List of advance payments till'&lt;/P&gt;&lt;P&gt;              lt_objpack-obj_descr&lt;/P&gt;&lt;P&gt;    INTO lt_objpack-obj_descr&lt;/P&gt;&lt;P&gt;    SEPARATED BY space.&lt;/P&gt;&lt;P&gt;  CONCATENATE lt_objpack-obj_descr&lt;/P&gt;&lt;P&gt;              '.PDF'&lt;/P&gt;&lt;P&gt;    INTO lt_objpack-obj_descr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  lt_objpack-doc_size   = ( l_tab_lines - 1 ) * 255.&lt;/P&gt;&lt;P&gt;  LOOP AT lt_contents_bin.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  lt_objpack-doc_size = lt_objpack-doc_size + STRLEN( lt_contents_bin ).&lt;/P&gt;&lt;P&gt;  APPEND lt_objpack.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Receiver list&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SELECT SINGLE adr6~smtp_addr&lt;/P&gt;&lt;P&gt;    INTO lt_reclist-receiver&lt;/P&gt;&lt;P&gt;    FROM adr6 INNER JOIN usr21 ON adr6&lt;SUB&gt;addrnumber = usr21&lt;/SUB&gt;addrnumber&lt;/P&gt;&lt;P&gt;                              AND adr6&lt;SUB&gt;persnumber = usr21&lt;/SUB&gt;persnumber&lt;/P&gt;&lt;P&gt;    WHERE usr21~bname = _receiver&lt;/P&gt;&lt;P&gt;      AND adr6~date_from &amp;lt;= sy-datum&lt;/P&gt;&lt;P&gt;      AND adr6~flgdefault = c_yes.&lt;/P&gt;&lt;P&gt;  lt_reclist-rec_type = 'U'.&lt;/P&gt;&lt;P&gt;  APPEND lt_reclist.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Finally! we send the mail&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      document_data                    = le_doc_chng&lt;/P&gt;&lt;P&gt;      put_in_outbox                    = c_yes&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      packing_list                     = lt_objpack&lt;/P&gt;&lt;P&gt;      object_header                    = lt_objhead&lt;/P&gt;&lt;P&gt;      contents_bin                     = lt_contents_bin&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     contents_hex                     =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      contents_txt                     = lt_objtxt&lt;/P&gt;&lt;P&gt;      receivers                        = lt_reclist&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;ENDFORM.                    " build_mail&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;B&gt;&lt;/B&gt;&lt;/P&gt;&lt;P&gt;REWARD IF HELPFUL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 26 Sep 2007 10:02:45 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/urgent-require/m-p/2810718#M657023</guid>
      <dc:creator>varma_narayana</dc:creator>
      <dc:date>2007-09-26T10:02:45Z</dc:date>
    </item>
    <item>
      <title>Re: urgent require</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/urgent-require/m-p/2810719#M657024</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;What type of document it is?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 26 Sep 2007 10:06:26 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/urgent-require/m-p/2810719#M657024</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-26T10:06:26Z</dc:date>
    </item>
    <item>
      <title>Re: urgent require</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/urgent-require/m-p/2810720#M657025</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;To convert sap to pdf:&lt;/P&gt;&lt;P&gt;SAP have created a standard program RSTXPDFT4 to convert your Sapscripts/Lists/Smartforms spools into a PDF format. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Specify the spool number and you will be able to download the  spool into your local harddisk. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It look exactly like what you see during a spool display. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please note that it is not restricted to spool only.  Any reports in the spool can be converted using the program 'RSTXPDFT4'. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For sending mail, check the following link:&lt;/P&gt;&lt;P&gt;&lt;A href="http://sap-img.com/abap/sending-email-with-attachment.htm" target="test_blank"&gt;http://sap-img.com/abap/sending-email-with-attachment.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Bhaskar&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 26 Sep 2007 10:11:24 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/urgent-require/m-p/2810720#M657025</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-26T10:11:24Z</dc:date>
    </item>
    <item>
      <title>Re: urgent require</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/urgent-require/m-p/2810721#M657026</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Maybe you could hire an abap programmer to do this for you?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 26 Sep 2007 12:37:48 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/urgent-require/m-p/2810721#M657026</guid>
      <dc:creator>dhorions</dc:creator>
      <dc:date>2007-09-26T12:37:48Z</dc:date>
    </item>
  </channel>
</rss>

