<?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 SAP Scripts in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/sap-scripts/m-p/3271896#M782138</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Friends,&lt;/P&gt;&lt;P&gt;                    Please help me with some code related to SAP scripts&lt;/P&gt;&lt;P&gt;and any good documents added to it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Ashish.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 16 Jan 2008 08:27:20 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-01-16T08:27:20Z</dc:date>
    <item>
      <title>SAP Scripts</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sap-scripts/m-p/3271896#M782138</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Friends,&lt;/P&gt;&lt;P&gt;                    Please help me with some code related to SAP scripts&lt;/P&gt;&lt;P&gt;and any good documents added to it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Ashish.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 16 Jan 2008 08:27:20 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sap-scripts/m-p/3271896#M782138</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-16T08:27:20Z</dc:date>
    </item>
    <item>
      <title>Re: SAP Scripts</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sap-scripts/m-p/3271897#M782139</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;SAPScripts&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://esnips.com/doc/1ff9f8e8-0a4c-42a7-8819-6e3ff9e7ab44/sapscripts.pdf" target="test_blank"&gt;http://esnips.com/doc/1ff9f8e8-0a4c-42a7-8819-6e3ff9e7ab44/sapscripts.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://esnips.com/doc/1e487f0c-8009-4ae1-9f9c-c07bd953dbfa/script-command.pdf" target="test_blank"&gt;http://esnips.com/doc/1e487f0c-8009-4ae1-9f9c-c07bd953dbfa/script-command.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://esnips.com/doc/64d4eccb-e09b-48e1-9be9-e2818d73f074/faqss.pdf" target="test_blank"&gt;http://esnips.com/doc/64d4eccb-e09b-48e1-9be9-e2818d73f074/faqss.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://esnips.com/doc/cb7e39b4-3161-437f-bfc6-21e6a50e1b39/sscript.pdf" target="test_blank"&gt;http://esnips.com/doc/cb7e39b4-3161-437f-bfc6-21e6a50e1b39/sscript.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://esnips.com/doc/fced4d36-ba52-4df9-ab35-b3d194830bbf/symbols-in-scripts.pdf" target="test_blank"&gt;http://esnips.com/doc/fced4d36-ba52-4df9-ab35-b3d194830bbf/symbols-in-scripts.pdf&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://esnips.com/doc/b57e8989-ccf0-40d0-8992-8183be831030/sapscript-how-to-calculate-totals-and-subtotals.htm" target="test_blank"&gt;http://esnips.com/doc/b57e8989-ccf0-40d0-8992-8183be831030/sapscript-how-to-calculate-totals-and-subtotals.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SAP SCRIPT FIELDS&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://help.sap.com/saphelp_erp2005vp/helpdata/en/d1/8033ea454211d189710000e8322d00/content.htm" target="test_blank"&gt;http://help.sap.com/saphelp_erp2005vp/helpdata/en/d1/8033ea454211d189710000e8322d00/content.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;scripts easy material&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.allsaplinks.com/sap_script_made_easy.html" target="test_blank"&gt;http://www.allsaplinks.com/sap_script_made_easy.html&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A class="jive_macro jive_macro_message" href="https://community.sap.com/" __jive_macro_name="message" modifiedtitle="true" __default_attr="3902612"&gt;&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 16 Jan 2008 08:32:34 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sap-scripts/m-p/3271897#M782139</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-16T08:32:34Z</dc:date>
    </item>
    <item>
      <title>Re: SAP Scripts</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sap-scripts/m-p/3271898#M782140</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Check these links.&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sap-basis-abap.com/sapabap01.htm" target="test_blank"&gt;http://www.sap-basis-abap.com/sapabap01.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sap-img.com/sapscripts.htm" target="test_blank"&gt;http://www.sap-img.com/sapscripts.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Also check this thread..U can find all the details&lt;/P&gt;&lt;P&gt;&lt;A class="jive_macro jive_macro_thread" href="https://community.sap.com/" __jive_macro_name="thread" modifiedtitle="true" __default_attr="401419"&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Maha&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 16 Jan 2008 08:37:13 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sap-scripts/m-p/3271898#M782140</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-16T08:37:13Z</dc:date>
    </item>
    <item>
      <title>Re: SAP Scripts</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sap-scripts/m-p/3271899#M782141</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Ashish,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;this code will guide u.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT zzz_jaytest .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Types Declaration&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;TYPES : BEGIN OF ty_pa0001,&lt;/P&gt;&lt;P&gt;pernr TYPE pa0001-pernr,&lt;/P&gt;&lt;P&gt;bukrs TYPE pa0001-bukrs,&lt;/P&gt;&lt;P&gt;werks TYPE pa0001-werks,&lt;/P&gt;&lt;P&gt;END OF ty_pa0001.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal Table Declaration&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA : i_pa0001 TYPE STANDARD TABLE OF ty_pa0001, "For pa0001 Details&lt;/P&gt;&lt;P&gt;i_otf TYPE STANDARD TABLE OF itcoo, "For OTF data&lt;/P&gt;&lt;P&gt;i_content_txt TYPE soli_tab, "Content&lt;/P&gt;&lt;P&gt;i_content_bin TYPE solix_tab, "Content&lt;/P&gt;&lt;P&gt;i_objhead TYPE soli_tab,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Work Area Declaration&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;w_pa0001 TYPE ty_pa0001, "For pa0001 Details&lt;/P&gt;&lt;P&gt;w_res TYPE itcpp, "SAPscript output&lt;/P&gt;&lt;P&gt;"parameters&lt;/P&gt;&lt;P&gt;w_otf TYPE itcoo, "For OTF&lt;/P&gt;&lt;P&gt;w_pdf TYPE solisti1, "For PDF&lt;/P&gt;&lt;P&gt;w_transfer_bin TYPE sx_boolean, "Content&lt;/P&gt;&lt;P&gt;w_options TYPE itcpo, "SAPscript output&lt;/P&gt;&lt;P&gt;"interface&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Variable Declaration&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;v_len_in TYPE so_obj_len,&lt;/P&gt;&lt;P&gt;v_size TYPE i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Constants Declaration&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CONSTANTS : c_x TYPE c VALUE 'X', "X&lt;/P&gt;&lt;P&gt;c_locl(4) TYPE c VALUE 'LOCL', "Local Printer&lt;/P&gt;&lt;P&gt;c_otf TYPE sx_format VALUE 'OTF', "OTF&lt;/P&gt;&lt;P&gt;c_pdf TYPE sx_format VALUE 'PDF', "PDF&lt;/P&gt;&lt;P&gt;c_printer TYPE sx_devtype VALUE 'PRINTER', "PRINTER&lt;/P&gt;&lt;P&gt;c_bin TYPE char10 VALUE 'BIN', "BIN&lt;/P&gt;&lt;P&gt;c_name TYPE string VALUE 'C:\ZZZ_JAYTEST.PDF',"Downloading&lt;/P&gt;&lt;P&gt;"File Name&lt;/P&gt;&lt;P&gt;c_form(11) TYPE c VALUE 'ZZZ_JAYTEST'. "Form Name&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Selecting the records from pa0001&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;SELECT pernr bukrs werks FROM pa0001&lt;/P&gt;&lt;P&gt;INTO TABLE i_pa0001 UP TO 10 ROWS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Setting the options&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;w_options-tdcopies = 1 ."Number of copies&lt;/P&gt;&lt;P&gt;w_options-tdnoprev = c_x."No print preview&lt;/P&gt;&lt;P&gt;w_options-tdgetotf = c_x."Return of OTF table&lt;/P&gt;&lt;P&gt;w_options-tddest = c_locl."Spool: Output device&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Opening the form&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CALL FUNCTION 'OPEN_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;form = c_form&lt;/P&gt;&lt;P&gt;device = c_printer&lt;/P&gt;&lt;P&gt;language = sy-langu&lt;/P&gt;&lt;P&gt;OPTIONS = w_options&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;RESULT = w_res.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT i_pa0001 INTO w_pa0001.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Writting into the form&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'MAIN'&lt;/P&gt;&lt;P&gt;window = 'MAIN'.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Closing the form&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CALL FUNCTION 'CLOSE_FORM'&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;RESULT = w_res&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;otfdata = i_otf&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;unopened = 1&lt;/P&gt;&lt;P&gt;bad_pageformat_for_print = 2&lt;/P&gt;&lt;P&gt;send_error = 3&lt;/P&gt;&lt;P&gt;spool_error = 4&lt;/P&gt;&lt;P&gt;codepage = 5&lt;/P&gt;&lt;P&gt;OTHERS = 6.&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Converting OTF data to single line&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;LOOP AT i_otf INTO w_otf.&lt;/P&gt;&lt;P&gt;CONCATENATE w_otf-tdprintcom w_otf-tdprintpar&lt;/P&gt;&lt;P&gt;INTO w_pdf.&lt;/P&gt;&lt;P&gt;APPEND w_pdf TO i_content_txt.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Converting to PDF Format&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CALL FUNCTION 'SX_OBJECT_CONVERT_OTF_PDF'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;format_src = c_otf&lt;/P&gt;&lt;P&gt;format_dst = c_pdf&lt;/P&gt;&lt;P&gt;devtype = c_printer&lt;/P&gt;&lt;P&gt;CHANGING&lt;/P&gt;&lt;P&gt;transfer_bin = w_transfer_bin&lt;/P&gt;&lt;P&gt;content_txt = i_content_txt&lt;/P&gt;&lt;P&gt;content_bin = i_content_bin&lt;/P&gt;&lt;P&gt;objhead = i_objhead&lt;/P&gt;&lt;P&gt;len = v_len_in&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;err_conv_failed = 1&lt;/P&gt;&lt;P&gt;OTHERS = 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;v_size = v_len_in.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Downloading the PDF File&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CALL FUNCTION 'GUI_DOWNLOAD'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;bin_filesize = v_size&lt;/P&gt;&lt;P&gt;filename = c_name&lt;/P&gt;&lt;P&gt;filetype = c_bin&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;data_tab = i_content_bin. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you r using this function module check it once....&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;call function 'CONVERT_OTF'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;format = 'PDF'&lt;/P&gt;&lt;P&gt;max_linewidth = 132&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;bin_filesize = v_len_in&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;otf = i_otf&lt;/P&gt;&lt;P&gt;lines = i_tline&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;err_max_linewidth = 1&lt;/P&gt;&lt;P&gt;err_format = 2&lt;/P&gt;&lt;P&gt;err_conv_not_possible = 3&lt;/P&gt;&lt;P&gt;others = 4.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fehlerhandling&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;if sy-subrc &amp;lt;&amp;gt; 0.&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;or u can use the standard program RSTXPDFT4 to download the script into PDF format onto a particular location&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;follow this link for sample program.&lt;/P&gt;&lt;P&gt;&lt;A href="http://searchsap.techtarget.com/tip/0,289483,sid21_gci1121833,00.html" target="test_blank"&gt;http://searchsap.techtarget.com/tip/0,289483,sid21_gci1121833,00.html&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;kindly reward if found helpful.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;cheers,&lt;/P&gt;&lt;P&gt;Hema.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 16 Jan 2008 08:40:51 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sap-scripts/m-p/3271899#M782141</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-16T08:40:51Z</dc:date>
    </item>
    <item>
      <title>Re: SAP Scripts</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sap-scripts/m-p/3271900#M782142</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Check the print program..This will be very helpfull to you. Every thing is in the print prog..Make sure you create a prog of type subrout.pool.&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;P&gt;&lt;STRONG&gt;Print of an order confirmation by SAPscript&lt;/STRONG&gt; &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------------" /&gt;&lt;P&gt;REPORT zprint_prog_cont_form LINE-COUNT 100 MESSAGE-ID vn.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLES: komk, "Communicationarea for conditions&lt;/P&gt;&lt;P&gt;komp, "Communicationarea for conditions&lt;/P&gt;&lt;P&gt;komvd, "Communicationarea for conditions&lt;/P&gt;&lt;P&gt;vbco3, "Communicationarea for view&lt;/P&gt;&lt;P&gt;vbdka, "Headerview&lt;/P&gt;&lt;P&gt;vbdpa, "Itemview&lt;/P&gt;&lt;P&gt;vbdpau, "Subitemnumbers&lt;/P&gt;&lt;P&gt;conf_out, "Configuration data&lt;/P&gt;&lt;P&gt;sadr, "Addresses&lt;/P&gt;&lt;P&gt;tvag, "Reason for rejection&lt;/P&gt;&lt;P&gt;vedka, "Servicecontract head data&lt;/P&gt;&lt;P&gt;vedpa, "Servicecontract position data&lt;/P&gt;&lt;P&gt;vedkn, "Servicecontract head notice data&lt;/P&gt;&lt;P&gt;vedpn, "Servicecontract pos. notice data&lt;/P&gt;&lt;P&gt;riserls, "Serialnumbers&lt;/P&gt;&lt;P&gt;komser, "Serialnumbers for print&lt;/P&gt;&lt;P&gt;tvbur, "Sales office&lt;/P&gt;&lt;P&gt;tvko, "Sales organisation&lt;/P&gt;&lt;P&gt;adrs, "Communicationarea for Address&lt;/P&gt;&lt;P&gt;fpltdr, "billing schedules&lt;/P&gt;&lt;P&gt;wtad_addis_in_so_print, "additional&lt;/P&gt;&lt;P&gt;wtad_buying_print_extra_text, "texts belonging to additional&lt;/P&gt;&lt;P&gt;komv, "Addition by Sharat&lt;/P&gt;&lt;P&gt;t685t. "Addition by Sharat&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;INCLUDE rvadtabl.&lt;/P&gt;&lt;P&gt;INCLUDE rvdirekt.&lt;/P&gt;&lt;P&gt;INCLUDE vedadata.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*ENHANCEMENT-POINT RVADOR01_01 SPOTS ES_RVADOR01 STATIC.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data for access to central address maintenance &lt;/P&gt;&lt;P&gt;INCLUDE sdzavdat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - &lt;/P&gt;&lt;P&gt;TYPE-POOLS: addi.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA price_print_mode(1) TYPE c. "Print-mode&lt;/P&gt;&lt;P&gt;DATA: retcode LIKE sy-subrc. "Returncode&lt;/P&gt;&lt;P&gt;DATA: repeat(1) TYPE c.&lt;/P&gt;&lt;P&gt;DATA: xscreen(1) TYPE c. "Output on printer or screen&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF steu, "Controldata for output&lt;/P&gt;&lt;P&gt;vdkex(1) TYPE c,&lt;/P&gt;&lt;P&gt;vdpex(1) TYPE c,&lt;/P&gt;&lt;P&gt;kbkex(1) TYPE c,&lt;/P&gt;&lt;P&gt;kbpex(1) TYPE c,&lt;/P&gt;&lt;P&gt;END OF steu.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF tvbdpa OCCURS 0. "Internal table for items&lt;/P&gt;&lt;P&gt;INCLUDE STRUCTURE vbdpa.&lt;/P&gt;&lt;P&gt;DATA: END OF tvbdpa.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*DATA: BEGIN OF tvbdpa OCCURS 0. "Internal table for items&lt;/P&gt;&lt;P&gt;*DATA: pltxt TYPE c LENGTH 40.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;INCLUDE STRUCTURE vbdpa. &lt;/P&gt;&lt;P&gt;*DATA: END OF tvbdpa.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF tkomv OCCURS 50.&lt;/P&gt;&lt;P&gt;INCLUDE STRUCTURE komv.&lt;/P&gt;&lt;P&gt;DATA: END OF tkomv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF tkomvd OCCURS 50.&lt;/P&gt;&lt;P&gt;INCLUDE STRUCTURE komvd.&lt;/P&gt;&lt;P&gt;DATA: END OF tkomvd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF tvbdpau OCCURS 5.&lt;/P&gt;&lt;P&gt;INCLUDE STRUCTURE vbdpau.&lt;/P&gt;&lt;P&gt;DATA: END OF tvbdpau.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF tkomcon OCCURS 50.&lt;/P&gt;&lt;P&gt;INCLUDE STRUCTURE conf_out.&lt;/P&gt;&lt;P&gt;DATA: END OF tkomcon.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF tkomservh OCCURS 1.&lt;/P&gt;&lt;P&gt;INCLUDE STRUCTURE vedka.&lt;/P&gt;&lt;P&gt;DATA: END OF tkomservh.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF tkomservp OCCURS 5.&lt;/P&gt;&lt;P&gt;INCLUDE STRUCTURE vedpa.&lt;/P&gt;&lt;P&gt;DATA: END OF tkomservp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF tkomservhn OCCURS 5.&lt;/P&gt;&lt;P&gt;INCLUDE STRUCTURE vedkn.&lt;/P&gt;&lt;P&gt;DATA: END OF tkomservhn.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF tkomservpn OCCURS 5.&lt;/P&gt;&lt;P&gt;INCLUDE STRUCTURE vedpn.&lt;/P&gt;&lt;P&gt;DATA: END OF tkomservpn.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF tkomser OCCURS 5.&lt;/P&gt;&lt;P&gt;INCLUDE STRUCTURE riserls.&lt;/P&gt;&lt;P&gt;DATA: END OF tkomser.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF tkomser_print OCCURS 5.&lt;/P&gt;&lt;P&gt;INCLUDE STRUCTURE komser.&lt;/P&gt;&lt;P&gt;DATA: END OF tkomser_print.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF tfpltdr OCCURS 5.&lt;/P&gt;&lt;P&gt;INCLUDE STRUCTURE fpltdr.&lt;/P&gt;&lt;P&gt;DATA: END OF tfpltdr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: taddi_print TYPE addi_so_print_itab WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Begin of data diclaration by Sharat for Changes.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF tvbdpa_temp OCCURS 0. "Internal table for items&lt;/P&gt;&lt;P&gt;INCLUDE STRUCTURE vbdpa.&lt;/P&gt;&lt;P&gt;DATA: END OF tvbdpa_temp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: v_test TYPE c LENGTH 10.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF ty_cont_sumry,&lt;/P&gt;&lt;P&gt;pltxt TYPE c LENGTH 40,&lt;/P&gt;&lt;P&gt;posnr TYPE posnr,&lt;/P&gt;&lt;P&gt;pltxt1 TYPE c LENGTH 15,&lt;/P&gt;&lt;P&gt;pltxt2 TYPE c LENGTH 15,&lt;/P&gt;&lt;P&gt;pltxt3 TYPE c LENGTH 10,&lt;/P&gt;&lt;P&gt;name TYPE ad_name1,&lt;/P&gt;&lt;P&gt;name1 TYPE c LENGTH 15,&lt;/P&gt;&lt;P&gt;name2 TYPE c LENGTH 15,&lt;/P&gt;&lt;P&gt;name3 TYPE c LENGTH 10,&lt;/P&gt;&lt;P&gt;city TYPE ad_city1,&lt;/P&gt;&lt;P&gt;city1 TYPE c LENGTH 15,&lt;/P&gt;&lt;P&gt;city2 TYPE c LENGTH 15,&lt;/P&gt;&lt;P&gt;city3 TYPE c LENGTH 10,&lt;/P&gt;&lt;P&gt;state TYPE regio,&lt;/P&gt;&lt;P&gt;item TYPE i,&lt;/P&gt;&lt;P&gt;mothly_tot TYPE netwr,&lt;/P&gt;&lt;P&gt;ext_tot TYPE netwr,&lt;/P&gt;&lt;P&gt;cont_subtax TYPE netwr,&lt;/P&gt;&lt;P&gt;cont_tottax TYPE netwr,&lt;/P&gt;&lt;P&gt;END OF ty_cont_sumry.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: st_cont_sumry TYPE ty_cont_sumry,&lt;/P&gt;&lt;P&gt;st_cont_sumry1 TYPE ty_cont_sumry.&lt;/P&gt;&lt;P&gt;DATA: g_cont_subtot TYPE mwsbp.&lt;/P&gt;&lt;P&gt;DATA: g_cont_exttot TYPE mwsbp.&lt;/P&gt;&lt;P&gt;DATA: g_cont_subtax TYPE mwsbp."mwsbp.&lt;/P&gt;&lt;P&gt;DATA: g_cont_tottax TYPE kzwis."mwsbp.&lt;/P&gt;&lt;P&gt;DATA: g_cont_subadj TYPE netwr."mwsbp.&lt;/P&gt;&lt;P&gt;DATA: g_cont_adjtot TYPE netwr."mwsbp.&lt;/P&gt;&lt;P&gt;DATA: g_cont_adj TYPE netwr."mwsbp.&lt;/P&gt;&lt;P&gt;DATA: g_cont_adjexttot TYPE netwr."mwsbp.&lt;/P&gt;&lt;P&gt;DATA: g_cont_grantmontot TYPE mwsbp."mwsbp.&lt;/P&gt;&lt;P&gt;DATA: g_cont_grantexttot TYPE kzwis."mwsbp.&lt;/P&gt;&lt;P&gt;DATA: gt_cont_sumry TYPE STANDARD TABLE OF ty_cont_sumry,&lt;/P&gt;&lt;P&gt;gt_cont_sumry1 TYPE STANDARD TABLE OF ty_cont_sumry.&lt;/P&gt;&lt;P&gt;DATA: g_pltxt TYPE c LENGTH 40.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*end of data diclaration by Sharat for Changes.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: pr_kappl(01) TYPE c VALUE 'V'. "Application for pricing&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM entry USING return_code TYPE i&lt;/P&gt;&lt;P&gt;us_screen TYPE c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLEAR retcode.&lt;/P&gt;&lt;P&gt;xscreen = us_screen.&lt;/P&gt;&lt;P&gt;PERFORM processing.&lt;/P&gt;&lt;P&gt;IF retcode NE 0.&lt;/P&gt;&lt;P&gt;return_code = 1.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;return_code = 0.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. "ENTRY&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;P&gt;FORM PROCESSING * &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;P&gt;........ * &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-------------------------------------------------------------------" /&gt;&lt;P&gt;FORM processing.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM get_data.&lt;/P&gt;&lt;P&gt;CHECK retcode = 0.&lt;/P&gt;&lt;P&gt;PERFORM form_open USING xscreen vbdka-land1.&lt;/P&gt;&lt;P&gt;CHECK retcode = 0.&lt;/P&gt;&lt;P&gt;PERFORM form_title_print.&lt;/P&gt;&lt;P&gt;CHECK retcode = 0.&lt;/P&gt;&lt;P&gt;PERFORM validity_print.&lt;/P&gt;&lt;P&gt;CHECK retcode = 0.&lt;/P&gt;&lt;P&gt;PERFORM header_data_print.&lt;/P&gt;&lt;P&gt;CHECK retcode = 0.&lt;/P&gt;&lt;P&gt;PERFORM header_serv_print.&lt;/P&gt;&lt;P&gt;CHECK retcode = 0.&lt;/P&gt;&lt;P&gt;PERFORM header_notice_print.&lt;/P&gt;&lt;P&gt;CHECK retcode = 0.&lt;/P&gt;&lt;P&gt;PERFORM header_inter_print.&lt;/P&gt;&lt;P&gt;CHECK retcode = 0.&lt;/P&gt;&lt;P&gt;PERFORM header_text_print.&lt;/P&gt;&lt;P&gt;CHECK retcode = 0.&lt;/P&gt;&lt;P&gt;PERFORM item_print.&lt;/P&gt;&lt;P&gt;CHECK retcode = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM end_print. &lt;/P&gt;&lt;P&gt;CHECK retcode = 0.&lt;/P&gt;&lt;P&gt;PERFORM form_close.&lt;/P&gt;&lt;P&gt;CHECK retcode = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. "PROCESSING&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***********************************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;S U B R O U T I N E S * &lt;/P&gt;&lt;P&gt;***********************************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM ALTERNATIVE_ITEM * &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;P&gt;A text is printed, if the item is an alternative item. * &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;P&gt;FORM alternative_item.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CHECK vbdpa-grpos CN '0'.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'ALTERNATIVE_ITEM'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. "ALTERNATIVE_ITEM&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;P&gt;FORM CHECK_REPEAT * &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;P&gt;A text is printed, if it is a repeat print for the document. * &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;P&gt;FORM check_repeat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLEAR repeat.&lt;/P&gt;&lt;P&gt;SELECT * INTO *nast FROM nast WHERE kappl = nast-kappl&lt;/P&gt;&lt;P&gt;AND objky = nast-objky&lt;/P&gt;&lt;P&gt;AND kschl = nast-kschl&lt;/P&gt;&lt;P&gt;AND spras = nast-spras&lt;/P&gt;&lt;P&gt;AND parnr = nast-parnr&lt;/P&gt;&lt;P&gt;AND parvw = nast-parvw&lt;/P&gt;&lt;P&gt;AND nacha BETWEEN '1' AND '4'.&lt;/P&gt;&lt;P&gt;CHECK *nast-vstat = '1'.&lt;/P&gt;&lt;P&gt;repeat = 'X'.&lt;/P&gt;&lt;P&gt;EXIT.&lt;/P&gt;&lt;P&gt;ENDSELECT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. "CHECK_REPEAT&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;P&gt;FORM DELIVERY_DATE * &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;P&gt;If the delivery date in the item is different to the header * &lt;/P&gt;&lt;P&gt;date and there are no scheduled quantities, the delivery date * &lt;/P&gt;&lt;P&gt;is printed in the item block. * &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;P&gt;FORM delivery_date.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF vbdka-lfdat = space AND&lt;/P&gt;&lt;P&gt;vbdpa-lfdat NE space AND&lt;/P&gt;&lt;P&gt;vbdpa-etenr_da = space.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'ITEM_DELIVERY_DATE'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&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. "DELIVERY_DATE&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;P&gt;FORM DIFFERENT_CONSIGNEE * &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;P&gt;If the consignee in the item is different to the header con- * &lt;/P&gt;&lt;P&gt;signee, it is printed by this routine. * &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;P&gt;FORM different_consignee.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CHECK vbdka-name1_we NE vbdpa-name1_we&lt;/P&gt;&lt;P&gt;OR vbdka-name2_we NE vbdpa-name2_we&lt;/P&gt;&lt;P&gt;OR vbdka-name3_we NE vbdpa-name3_we&lt;/P&gt;&lt;P&gt;OR vbdka-name4_we NE vbdpa-name4_we&lt;/P&gt;&lt;P&gt;OR vbdka-stras_we NE vbdpa-stras_we&lt;/P&gt;&lt;P&gt;OR vbdka-pfach_we NE vbdpa-pfach_we&lt;/P&gt;&lt;P&gt;OR vbdka-pstlz_we NE vbdpa-pstlz_we&lt;/P&gt;&lt;P&gt;OR vbdka-pstl2_we NE vbdpa-pstl2_we&lt;/P&gt;&lt;P&gt;OR vbdka-ort01_we NE vbdpa-ort01_we&lt;/P&gt;&lt;P&gt;OR vbdka-pfort_we NE vbdpa-pfort_we&lt;/P&gt;&lt;P&gt;OR vbdka-land1_we NE vbdpa-land1_we.&lt;/P&gt;&lt;P&gt;CHECK vbdpa-name1_we NE space&lt;/P&gt;&lt;P&gt;OR vbdpa-name2_we NE space&lt;/P&gt;&lt;P&gt;OR vbdpa-name3_we NE space&lt;/P&gt;&lt;P&gt;OR vbdpa-name4_we NE space&lt;/P&gt;&lt;P&gt;OR vbdpa-stras_we NE space&lt;/P&gt;&lt;P&gt;OR vbdpa-pfach_we NE space&lt;/P&gt;&lt;P&gt;OR vbdpa-pstlz_we NE space&lt;/P&gt;&lt;P&gt;OR vbdpa-pstl2_we NE space&lt;/P&gt;&lt;P&gt;OR vbdpa-ort01_we NE space&lt;/P&gt;&lt;P&gt;OR vbdpa-pfort_we NE space&lt;/P&gt;&lt;P&gt;OR vbdpa-land1_we NE space.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'ITEM_CONSIGNEE'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. "DIFFERENT_CONSIGNEE&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;P&gt;FORM DIFFERENT_REFERENCE_NO * &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;P&gt;If the reference number in the item is different to the header* &lt;/P&gt;&lt;P&gt;reference number, it is printed by this routine. * &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;P&gt;FORM different_reference_no.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CHECK vbdpa-vbeln_vang NE vbdka-vbeln_vang&lt;/P&gt;&lt;P&gt;OR vbdpa-vbtyp_vang NE vbdka-vbtyp_vang.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'ITEM_REFERENCE_NO'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. "DIFFERENT_REFERENCE_NO&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;P&gt;FORM DIFFERENT_TERMS * &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;P&gt;If the terms in the item are different to the header terms, * &lt;/P&gt;&lt;P&gt;they are printed by this routine. * &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-------------------------------------------------------------------" /&gt;&lt;P&gt;FORM different_terms.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: us_vposn LIKE vedpa-vposn.&lt;/P&gt;&lt;P&gt;DATA: us_text(1) TYPE c. "Flag for Noticetext was printed&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF vbdpa-zterm NE vbdka-zterm AND&lt;/P&gt;&lt;P&gt;vbdpa-zterm NE space.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'ITEM_TERMS_OF_PAYMENT'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;IF vbdpa-inco1 NE space.&lt;/P&gt;&lt;P&gt;IF vbdpa-inco1 NE vbdka-inco1 OR&lt;/P&gt;&lt;P&gt;vbdpa-inco2 NE vbdka-inco2.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'ITEM_TERMS_OF_DELIVERY'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Print different validity-data for the position &lt;/P&gt;&lt;P&gt;READ TABLE tkomservp WITH KEY vbdpa-posnr.&lt;/P&gt;&lt;P&gt;IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;vedpa = tkomservp.&lt;/P&gt;&lt;P&gt;IF vedpa-vbegdat NE space AND&lt;/P&gt;&lt;P&gt;vedpa-venddat NE space AND&lt;/P&gt;&lt;P&gt;NOT vedpa-vbegdat IS INITIAL AND&lt;/P&gt;&lt;P&gt;NOT vedpa-venddat IS INITIAL.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'ITEM_TERMS_OF_SERV1'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ELSEIF vedpa-vbegdat NE space AND&lt;/P&gt;&lt;P&gt;NOT vedpa-vbegdat IS INITIAL.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'ITEM_TERMS_OF_SERV2'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'ITEM_TERMS_OF_SERV3'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Notice-rules for the positions. &lt;/P&gt;&lt;P&gt;MOVE vbdpa-posnr TO us_vposn.&lt;/P&gt;&lt;P&gt;CLEAR us_text.&lt;/P&gt;&lt;P&gt;LOOP AT tkomservpn WHERE vposn = us_vposn.&lt;/P&gt;&lt;P&gt;vedpn = tkomservpn.&lt;/P&gt;&lt;P&gt;IF us_text IS INITIAL.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'ITEM_TERMS_OF_NOTTXT'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;us_text = charx.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'ITEM_TERMS_OF_NOTICE'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;IF NOT us_text IS INITIAL.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'EMPTY_LINE'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&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. "DIFFERENT_TERMS&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;P&gt;FORM END_PRINT * &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;/LI&gt;&lt;/UL&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="-------------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM end_print.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM get_header_prices.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'CONTROL_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;command = 'PROTECT'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM header_price_print.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF NOT price_print_mode EQ chara AND&lt;/P&gt;&lt;P&gt;xscreen IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Pricing data init &lt;/P&gt;&lt;P&gt;CALL FUNCTION 'RV_PRICE_PRINT_GET_BUFFER'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;i_init = charx&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;t_tkomv = tkomv&lt;/P&gt;&lt;P&gt;t_tkomvd = tkomvd.&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;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'END_VALUES'.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'CONTROL_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;command = 'ENDPROTECT'.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'SUPPLEMENT_TEXT'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLEAR g_cont_subtot.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. "END_PRINT&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;P&gt;FORM FORM_CLOSE * &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;P&gt;End of printing the form * &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;P&gt;FORM form_close.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA da_clear_vbeln(1) TYPE c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;bei Druckansicht im Anlegen gibt es noch keine Belegnummer - für die &lt;/P&gt;&lt;P&gt;Anzeige temporäre Belegnummer übergeben und danach zurücknehmen, damit &lt;/P&gt;&lt;P&gt;Folgeverarbeitung noch funktioniert &lt;/P&gt;&lt;P&gt;IF vbdka-vbeln IS INITIAL.&lt;/P&gt;&lt;P&gt;da_clear_vbeln = charx.&lt;/P&gt;&lt;P&gt;vbdka-vbeln = '$000000001'.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'CLOSE_FORM'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;OTHERS = 1.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;retcode = 1.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;SET COUNTRY space.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF da_clear_vbeln EQ charx.&lt;/P&gt;&lt;P&gt;CLEAR vbdka-vbeln.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. "FORM_CLOSE&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;P&gt;FORM FORM_OPEN * &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;P&gt;Start of printing the form * &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;P&gt;--&amp;gt; US_SCREEN Output on screen * &lt;/P&gt;&lt;P&gt;' ' = printer * &lt;/P&gt;&lt;P&gt;'X' = screen * &lt;/P&gt;&lt;P&gt;--&amp;gt; US_COUNTRY County for telecommunication and SET COUNTRY * &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;P&gt;FORM form_open USING us_screen TYPE c&lt;/P&gt;&lt;P&gt;us_country TYPE c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Send confirmation to user who send the document. &lt;/P&gt;&lt;P&gt;IF nast-nacha EQ '2'.&lt;/P&gt;&lt;P&gt;nast-usnam = vbdka-ernam.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;get fax country key &lt;/P&gt;&lt;P&gt;IF nast-teltx IS INITIAL AND nast-manue NE 'X'.&lt;/P&gt;&lt;P&gt;PERFORM get_fax_land USING nast-tland.&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;INCLUDE rvadopfo.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. "FORM_OPEN&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;P&gt;FORM FORM_TITLE_PRINT * &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;P&gt;Printing of the form title depending of the field VBTYP * &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;P&gt;FORM form_title_print.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CASE vbdka-vbtyp.&lt;/P&gt;&lt;P&gt;WHEN 'A'.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'TITLE_A'&lt;/P&gt;&lt;P&gt;window = 'TITLE'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*ENHANCEMENT-SECTION FORM_TITLE_PRINT_01 SPOTS ES_RVADOR01.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*END-ENHANCEMENT-SECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;WHEN 'B'.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'TITLE_B'&lt;/P&gt;&lt;P&gt;window = 'TITLE'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;WHEN 'C'.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'TITLE_C'&lt;/P&gt;&lt;P&gt;window = 'TITLE'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;WHEN 'E'.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'TITLE_E'&lt;/P&gt;&lt;P&gt;window = 'TITLE'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;WHEN 'F'.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'TITLE_F'&lt;/P&gt;&lt;P&gt;window = 'TITLE'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;WHEN 'G'.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'TITLE_F'&lt;/P&gt;&lt;P&gt;window = 'TITLE'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;WHEN 'H'.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'TITLE_H'&lt;/P&gt;&lt;P&gt;window = 'TITLE'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;WHEN 'K'.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'TITLE_K'&lt;/P&gt;&lt;P&gt;window = 'TITLE'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;WHEN 'L'.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'TITLE_L'&lt;/P&gt;&lt;P&gt;window = 'TITLE'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;WHEN OTHERS.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'TITLE_OTHERS'&lt;/P&gt;&lt;P&gt;window = 'TITLE'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDCASE.&lt;/P&gt;&lt;P&gt;IF repeat NE space.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'REPEAT'&lt;/P&gt;&lt;P&gt;window = 'REPEAT'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&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. "FORM_TITLE_PRINT&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;P&gt;&lt;/P&gt;&lt;P&gt;FORM GET_DATA * &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;P&gt;General provision of data for the form * &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;P&gt;FORM get_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: us_veda_vbeln LIKE veda-vbeln.&lt;/P&gt;&lt;P&gt;DATA: us_veda_posnr_low LIKE veda-vposn.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: da_mess LIKE vbfs OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'RV_PRICE_PRINT_GET_MODE'&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;e_print_mode = price_print_mode.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF price_print_mode EQ chara.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'RV_PRICE_PRINT_REFRESH'&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;tkomv = tkomv.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLEAR komk.&lt;/P&gt;&lt;P&gt;CLEAR komp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;vbco3-mandt = sy-mandt.&lt;/P&gt;&lt;P&gt;vbco3-spras = nast-spras.&lt;/P&gt;&lt;P&gt;vbco3-vbeln = nast-objky.&lt;/P&gt;&lt;P&gt;vbco3-kunde = nast-parnr.&lt;/P&gt;&lt;P&gt;vbco3-parvw = nast-parvw.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'RV_DOCUMENT_PRINT_VIEW'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;comwa = vbco3&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;kopf = vbdka&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;pos = tvbdpa&lt;/P&gt;&lt;P&gt;mess = da_mess&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;fehler_bei_datenbeschaffung = 1.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;retcode = 1.&lt;/P&gt;&lt;P&gt;EXIT.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;LOOP AT da_mess.&lt;/P&gt;&lt;P&gt;sy-msgid = da_mess-msgid.&lt;/P&gt;&lt;P&gt;sy-msgno = da_mess-msgno.&lt;/P&gt;&lt;P&gt;sy-msgty = da_mess-msgty.&lt;/P&gt;&lt;P&gt;sy-msgv1 = da_mess-msgv1.&lt;/P&gt;&lt;P&gt;sy-msgv2 = da_mess-msgv2.&lt;/P&gt;&lt;P&gt;sy-msgv3 = da_mess-msgv3.&lt;/P&gt;&lt;P&gt;sy-msgv4 = da_mess-msgv4.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;fill address key --&amp;gt; necessary for emails &lt;/P&gt;&lt;P&gt;addr_key-addrnumber = vbdka-adrnr.&lt;/P&gt;&lt;P&gt;addr_key-persnumber = vbdka-adrnp.&lt;/P&gt;&lt;P&gt;addr_key-addr_type = vbdka-address_type.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Fetch servicecontract-data and notice-data for head and position. &lt;/P&gt;&lt;P&gt;us_veda_vbeln = vbdka-vbeln.&lt;/P&gt;&lt;P&gt;us_veda_posnr_low = posnr_low.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'SD_VEDA_GET_PRINT_DATA'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;i_document_number = us_veda_vbeln&lt;/P&gt;&lt;P&gt;i_language = sy-langu&lt;/P&gt;&lt;P&gt;i_posnr_low = us_veda_posnr_low&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;print_data_pos = tkomservp&lt;/P&gt;&lt;P&gt;print_data_head = tkomservh&lt;/P&gt;&lt;P&gt;print_notice_pos = tkomservpn&lt;/P&gt;&lt;P&gt;print_notice_head = tkomservhn.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM get_controll_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM sender.&lt;/P&gt;&lt;P&gt;PERFORM check_repeat.&lt;/P&gt;&lt;P&gt;PERFORM tvbdpau_create.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. "GET_DATA&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;P&gt;FORM GET_ITEM_BILLING_SCHEDULES * &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;P&gt;In this routine the billing schedules are fetched from the * &lt;/P&gt;&lt;P&gt;database. * &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;P&gt;FORM get_item_billing_schedules.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REFRESH tfpltdr.&lt;/P&gt;&lt;P&gt;CHECK NOT vbdpa-fplnr IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'BILLING_SCHED_PRINTVIEW_READ'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;i_fplnr = vbdpa-fplnr&lt;/P&gt;&lt;P&gt;i_language = nast-spras&lt;/P&gt;&lt;P&gt;i_vbeln = vbdka-vbeln&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;zfpltdr = tfpltdr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. "GET_ITEM_BILLING_SCHEDULES&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp; Form ITEM_BILLING_SCHEDULES_PRINT&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This routine prints the billing shedules of a salesdocument * &lt;/P&gt;&lt;P&gt;position. * &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------------" /&gt;&lt;P&gt;FORM item_billing_schedules_print.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: first_line(1) TYPE c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;first_line = charx.&lt;/P&gt;&lt;P&gt;LOOP AT tfpltdr.&lt;/P&gt;&lt;P&gt;fpltdr = tfpltdr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Output of the following printlines &lt;/P&gt;&lt;P&gt;IF NOT fpltdr-perio IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;periodische Fakturen &lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'ITEM_BILLING_SCHEDULE_PERIODIC'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;bei periodischen nur eine Zeile &lt;/P&gt;&lt;P&gt;EXIT.&lt;/P&gt;&lt;P&gt;ELSEIF fpltdr-fareg CA '14'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;prozentuale Teilfakturierung &lt;/P&gt;&lt;P&gt;IF NOT first_line IS INITIAL.&lt;/P&gt;&lt;P&gt;CLEAR first_line.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'ITEM_BILLING_SCHEDULE_PERCENT_HEADER'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'ITEM_BILLING_SCHEDULE_PERCENT'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ELSEIF fpltdr-fareg CA '235'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;wertmäßige Teilfakturierung &lt;/P&gt;&lt;P&gt;IF NOT first_line IS INITIAL.&lt;/P&gt;&lt;P&gt;CLEAR first_line.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'ITEM_BILLING_SCHEDULE_VALUE_HEADER'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'ITEM_BILLING_SCHEDULE_VALUE'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ELSEIF fpltdr-fareg CA '3'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Schlußrechnung &lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM. "ITEM_BILLING_SCHEDULES_PRINT&lt;/P&gt;&lt;P&gt;*eject&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp; FORM GET_ITEM_ADDIS&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Additionals data are fetched from database &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------------" /&gt;&lt;P&gt;FORM get_item_addis.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLEAR: taddi_print.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WTAD_ADDIS_IN_SO_PRINT'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;fi_vbeln = vbdka-vbeln&lt;/P&gt;&lt;P&gt;fi_posnr = vbdpa-posnr&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FI_LANGUAGE = SY-LANGU &lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;fet_addis_in_so_print = taddi_print&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;addis_not_active = 1&lt;/P&gt;&lt;P&gt;no_addis_for_so_item = 2&lt;/P&gt;&lt;P&gt;OTHERS = 3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " GET_ITEM_ADDIS&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;P&gt;FORM GET_ITEM_CHARACTERISTICS * &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;P&gt;In this routine the configuration data item is fetched from * &lt;/P&gt;&lt;P&gt;the database. * &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;P&gt;FORM get_item_characteristics.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA da_t_cabn LIKE cabn OCCURS 10 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF da_key,&lt;/P&gt;&lt;P&gt;mandt LIKE cabn-mandt,&lt;/P&gt;&lt;P&gt;atinn LIKE cabn-atinn,&lt;/P&gt;&lt;P&gt;END OF da_key.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REFRESH tkomcon.&lt;/P&gt;&lt;P&gt;CHECK NOT vbdpa-cuobj IS INITIAL AND&lt;/P&gt;&lt;P&gt;vbdpa-attyp NE var_typ.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'VC_I_GET_CONFIGURATION'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;instance = vbdpa-cuobj&lt;/P&gt;&lt;P&gt;language = nast-spras&lt;/P&gt;&lt;P&gt;print_sales = charx&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;configuration = tkomcon&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;OTHERS = 4.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;RANGES : da_in_cabn FOR da_t_cabn-atinn.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Beschreibung der Merkmale wegen Objektmerkmalen auf sdcom-vkond holen &lt;/P&gt;&lt;P&gt;CLEAR da_in_cabn. REFRESH da_in_cabn.&lt;/P&gt;&lt;P&gt;LOOP AT tkomcon.&lt;/P&gt;&lt;P&gt;da_in_cabn-option = 'EQ'.&lt;/P&gt;&lt;P&gt;da_in_cabn-sign = 'I'.&lt;/P&gt;&lt;P&gt;da_in_cabn-low = tkomcon-atinn.&lt;/P&gt;&lt;P&gt;APPEND da_in_cabn.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLEAR da_t_cabn. REFRESH da_t_cabn.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'CLSE_SELECT_CABN'&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;EXPORTING &lt;/P&gt;&lt;P&gt;KEY_DATE = SY-DATUM &lt;/P&gt;&lt;P&gt;BYPASSING_BUFFER = ' ' &lt;/P&gt;&lt;P&gt;WITH_PREPARED_PATTERN = ' ' &lt;/P&gt;&lt;P&gt;I_AENNR = ' ' &lt;/P&gt;&lt;P&gt;IMPORTING &lt;/P&gt;&lt;P&gt;AMBIGUOUS_OBJ_CHARACTERISTIC = &lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;in_cabn = da_in_cabn&lt;/P&gt;&lt;P&gt;t_cabn = da_t_cabn&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;no_entry_found = 1&lt;/P&gt;&lt;P&gt;OTHERS = 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Preisfindungsmerkmale / Merkmale auf VCSD_UPDATE herausnehmen &lt;/P&gt;&lt;P&gt;SORT da_t_cabn.&lt;/P&gt;&lt;P&gt;LOOP AT tkomcon.&lt;/P&gt;&lt;P&gt;da_key-mandt = sy-mandt.&lt;/P&gt;&lt;P&gt;da_key-atinn = tkomcon-atinn.&lt;/P&gt;&lt;P&gt;READ TABLE da_t_cabn WITH KEY da_key BINARY SEARCH.&lt;/P&gt;&lt;P&gt;IF sy-subrc 0 OR&lt;/P&gt;&lt;P&gt;( ( da_t_cabn-attab = 'SDCOM' AND&lt;/P&gt;&lt;P&gt;da_t_cabn-atfel = 'VKOND' ) OR&lt;/P&gt;&lt;P&gt;( da_t_cabn-attab = 'VCSD_UPDATE' ) ) .&lt;/P&gt;&lt;P&gt;DELETE tkomcon.&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;ENDFORM. "GET_ITEM_CHARACTERISTICS&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;P&gt;FORM GET_ITEM_PRICES * &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;P&gt;In this routine the price data for the item is fetched from * &lt;/P&gt;&lt;P&gt;the database. * &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;P&gt;FORM get_item_prices.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLEAR: komp,&lt;/P&gt;&lt;P&gt;tkomv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF komk-knumv NE vbdka-knumv OR&lt;/P&gt;&lt;P&gt;komk-knumv IS INITIAL.&lt;/P&gt;&lt;P&gt;CLEAR komk.&lt;/P&gt;&lt;P&gt;komk-mandt = sy-mandt.&lt;/P&gt;&lt;P&gt;komk-kalsm = vbdka-kalsm.&lt;/P&gt;&lt;P&gt;komk-kappl = pr_kappl.&lt;/P&gt;&lt;P&gt;komk-waerk = vbdka-waerk.&lt;/P&gt;&lt;P&gt;komk-knumv = vbdka-knumv.&lt;/P&gt;&lt;P&gt;komk-knuma = vbdka-knuma.&lt;/P&gt;&lt;P&gt;komk-vbtyp = vbdka-vbtyp.&lt;/P&gt;&lt;P&gt;komk-land1 = vbdka-land1.&lt;/P&gt;&lt;P&gt;komk-vkorg = vbdka-vkorg.&lt;/P&gt;&lt;P&gt;komk-vtweg = vbdka-vtweg.&lt;/P&gt;&lt;P&gt;komk-spart = vbdka-spart.&lt;/P&gt;&lt;P&gt;komk-bukrs = vbdka-bukrs_vf.&lt;/P&gt;&lt;P&gt;komk-hwaer = vbdka-waers.&lt;/P&gt;&lt;P&gt;komk-prsdt = vbdka-erdat.&lt;/P&gt;&lt;P&gt;komk-kurst = vbdka-kurst.&lt;/P&gt;&lt;P&gt;komk-kurrf = vbdka-kurrf.&lt;/P&gt;&lt;P&gt;komk-kurrf_dat = vbdka-kurrf_dat.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;komp-kposn = vbdpa-posnr.&lt;/P&gt;&lt;P&gt;komp-kursk = vbdpa-kursk.&lt;/P&gt;&lt;P&gt;komp-kursk_dat = vbdpa-kursk_dat.&lt;/P&gt;&lt;P&gt;IF vbdka-vbtyp CA 'HKNOT6'.&lt;/P&gt;&lt;P&gt;IF vbdpa-shkzg CA ' A'.&lt;/P&gt;&lt;P&gt;komp-shkzg = 'X'.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;IF vbdpa-shkzg CA 'BX'.&lt;/P&gt;&lt;P&gt;komp-shkzg = 'X'.&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;IF price_print_mode EQ chara.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'RV_PRICE_PRINT_ITEM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;comm_head_i = komk&lt;/P&gt;&lt;P&gt;comm_item_i = komp&lt;/P&gt;&lt;P&gt;language = nast-spras&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;comm_head_e = komk&lt;/P&gt;&lt;P&gt;comm_item_e = komp&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;tkomv = tkomv&lt;/P&gt;&lt;P&gt;tkomvd = tkomvd.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'RV_PRICE_PRINT_ITEM_BUFFER'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;comm_head_i = komk&lt;/P&gt;&lt;P&gt;comm_item_i = komp&lt;/P&gt;&lt;P&gt;language = nast-spras&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;comm_head_e = komk&lt;/P&gt;&lt;P&gt;comm_item_e = komp&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;tkomv = tkomv&lt;/P&gt;&lt;P&gt;tkomvd = tkomvd.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. "GET_ITEM_PRICES&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;P&gt;FORM GET_HEADER_PRICES * &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;P&gt;In this routine the price data for the header is fetched from * &lt;/P&gt;&lt;P&gt;the database. * &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;P&gt;FORM get_header_prices.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT tvbdpa.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'SD_TAX_CODE_MAINTAIN'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;key_knumv = vbdka-knumv&lt;/P&gt;&lt;P&gt;key_kposn = tvbdpa-posnr&lt;/P&gt;&lt;P&gt;i_application = ' '&lt;/P&gt;&lt;P&gt;i_pricing_procedure = vbdka-kalsm&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;xkomv = tkomv.&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;IF price_print_mode EQ chara.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'RV_PRICE_PRINT_HEAD'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;comm_head_i = komk&lt;/P&gt;&lt;P&gt;language = nast-spras&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;comm_head_e = komk&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;tkomv = tkomv&lt;/P&gt;&lt;P&gt;tkomvd = tkomvd.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'RV_PRICE_PRINT_HEAD_BUFFER'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;comm_head_i = komk&lt;/P&gt;&lt;P&gt;language = nast-spras&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;comm_head_e = komk&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;tkomv = tkomv&lt;/P&gt;&lt;P&gt;tkomvd = tkomvd.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. "GET_HEADER_PRICES&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp; Form HEADER_DATA_PRINT&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&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;Printing of header data like terms, weights .... * &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;P&gt;FORM header_data_print.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'HEADER_DATA'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " HEADER_DATA_PRINT&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;P&gt;FORM HEADER_PRICE_PRINT * &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;P&gt;Printout of the header prices * &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;P&gt;FORM header_price_print.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT tkomvd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT FIRST.&lt;/P&gt;&lt;P&gt;IF komk-supos NE 0.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'ITEM_SUM'.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'UNDER_LINE'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;komvd = tkomvd.&lt;/P&gt;&lt;P&gt;IF komvd-koaid = 'D'.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'TAX_LINE'.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;IF NOT komvd-kntyp EQ 'f'.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'SUM_LINE'.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;DESCRIBE TABLE tkomvd LINES sy-tfill.&lt;/P&gt;&lt;P&gt;IF sy-tfill = 0.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'UNDER_LINE'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&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. "HEADER_PRICE_PRINT&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;P&gt;FORM HEADER_TEXT_PRINT * &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;P&gt;Printout of the headertexts * &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;P&gt;FORM header_text_print.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'HEADER_TEXT'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. "HEADER_TEXT_PRINT&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;P&gt;FORM ITEM_BILLING_CORRECTION_HEADER * &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;P&gt;In the case of a billing correction, the header of the item * &lt;/P&gt;&lt;P&gt;debit memo / credit memo position, is printed by this routine * &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;P&gt;FORM item_billing_correction_header USING us_ganf TYPE c&lt;/P&gt;&lt;P&gt;us_lanf TYPE c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CHECK vbdka-vbklt EQ vbklt_rech_korr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF vbdka-vbtyp = vbtyp_ganf.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Gutschriftsanforderung &lt;/P&gt;&lt;P&gt;IF vbdpa-shkzg = charx.&lt;/P&gt;&lt;P&gt;IF us_ganf IS INITIAL.&lt;/P&gt;&lt;P&gt;MOVE charx TO us_ganf.&lt;/P&gt;&lt;P&gt;MOVE space TO us_lanf.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'CORRECTION_TEXT_K'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;IF us_lanf IS INITIAL.&lt;/P&gt;&lt;P&gt;MOVE charx TO us_lanf.&lt;/P&gt;&lt;P&gt;MOVE space TO us_ganf.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'CORRECTION_TEXT_L'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF vbdka-vbtyp = vbtyp_lanf.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Lastschriftssanforderung &lt;/P&gt;&lt;P&gt;IF vbdpa-shkzg = space.&lt;/P&gt;&lt;P&gt;IF us_lanf IS INITIAL.&lt;/P&gt;&lt;P&gt;MOVE charx TO us_lanf.&lt;/P&gt;&lt;P&gt;MOVE space TO us_ganf.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'CORRECTION_TEXT_L'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;IF us_ganf IS INITIAL.&lt;/P&gt;&lt;P&gt;MOVE charx TO us_ganf.&lt;/P&gt;&lt;P&gt;MOVE space TO us_lanf.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'CORRECTION_TEXT_K'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM. "ITEM_BILLING_CORRECTION_HEADER&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp; Form ITEM_ADDIS_PRINT&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Printout of item additionals &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------------" /&gt;&lt;P&gt;FORM item_addis_print.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT taddi_print.&lt;/P&gt;&lt;P&gt;MOVE-CORRESPONDING taddi_print TO wtad_addis_in_so_print.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'ITEM_ADDI_SO_INFO'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;OTHERS = 1.&lt;/P&gt;&lt;P&gt;LOOP AT taddi_print-addi_so_extra_text_info&lt;/P&gt;&lt;P&gt;INTO wtad_buying_print_extra_text.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'ITEM_ADDI_EXTRA_TEXT'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;OTHERS = 1.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " ITEM_ADDIS_PRINT&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;P&gt;FORM ITEM_CHARACERISTICS_PRINT * &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;P&gt;Printout of the item characteristics -&amp;gt; configuration * &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;P&gt;FORM item_characteristics_print.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT tkomcon.&lt;/P&gt;&lt;P&gt;conf_out = tkomcon.&lt;/P&gt;&lt;P&gt;IF sy-tabix = 1.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'ITEM_LINE_CONFIGURATION_HEADER'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;OTHERS = 1.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'ITEM_LINE_CONFIGURATION'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;OTHERS = 1.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. "ITEM_CHARACTERISTICS_PRINT&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;P&gt;FORM ITEM_DELIVERY_CONFIRMATION * &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;P&gt;If the delivery date is not confirmed, a text is printed * &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;P&gt;FORM item_delivery_confirmation.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CHECK vbdka-vbtyp NE vbtyp_ganf AND vbdka-vbtyp NE vbtyp_lanf.&lt;/P&gt;&lt;P&gt;CHECK vbdpa-lfdat = space.&lt;/P&gt;&lt;P&gt;CHECK vbdpa-kwmeng NE 0.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'ITEM_DELIVERY_CONFIRMATION'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. "ITEM_DELIVERY_CONFIRMATION&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;P&gt;FORM ITEM_AGREED_DELIVERY_TIME * &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;P&gt;If an agreed delivery time and the corresponding text is * &lt;/P&gt;&lt;P&gt;available on item level, the text is printed * &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;P&gt;FORM item_agreed_delivery_time.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CHECK vbdka-vbtyp EQ 'B' OR vbdka-vbtyp EQ 'G'.&lt;/P&gt;&lt;P&gt;CHECK vbdpa-delco NE space AND vbdpa-delco_bez NE space.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'ITEM_AGREED_DELIVERY_TIME'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. "ITEM_AGREED_DELIVERY_TIME&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;P&gt;FORM ITEM_PRICE_PRINT * &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;P&gt;Printout of the item prices * &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;P&gt;FORM item_price_print.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT tkomvd.&lt;/P&gt;&lt;P&gt;komvd = tkomvd.&lt;/P&gt;&lt;P&gt;IF sy-tabix = 1 AND&lt;/P&gt;&lt;P&gt;( komvd-koaid = charb OR&lt;/P&gt;&lt;P&gt;komvd-kschl = space ).&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'ITEM_LINE_PRICE_QUANTITY'.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;IF komvd-kntyp NE 'f'.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'ITEM_LINE_PRICE_TEXT'.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'ITEM_LINE_REBATE_IN_KIND'.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. "ITEM_PRICE_PRINT&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;P&gt;FORM ITEM_PRINT * &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;P&gt;Printout of the 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;P&gt;FORM item_print.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: da_subrc LIKE sy-subrc,&lt;/P&gt;&lt;P&gt;da_dragr LIKE tvag-dragr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: da_ganf(1) TYPE c, "Print flag for billing correction &lt;/P&gt;&lt;P&gt;da_lanf(1) TYPE c. "Print flag for billing correction &lt;/P&gt;&lt;P&gt;DATA: l_obknr TYPE objknr.&lt;/P&gt;&lt;P&gt;DATA: l_equnr TYPE equnr.&lt;/P&gt;&lt;P&gt;DATA: stru_bapi_itob_eq_only TYPE bapi_itob_eq_only.&lt;/P&gt;&lt;P&gt;DATA: stru_bapi_itob TYPE bapi_itob.&lt;/P&gt;&lt;P&gt;DATA: stru_addr TYPE addr1_sel.&lt;/P&gt;&lt;P&gt;DATA: stru_adr TYPE sadr.&lt;/P&gt;&lt;P&gt;DATA: l_pltxt TYPE c LENGTH 40,&lt;/P&gt;&lt;P&gt;l_pltxt_temp TYPE c LENGTH 40.&lt;/P&gt;&lt;P&gt;DATA: str1 TYPE c LENGTH 14.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM' "First header &lt;/P&gt;&lt;P&gt;EXPORTING element = 'ITEM_HEADER_DATA' &lt;/P&gt;&lt;P&gt;EXCEPTIONS OTHERS = 1. &lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0. &lt;/P&gt;&lt;P&gt;PERFORM protocol_update. &lt;/P&gt;&lt;P&gt;ENDIF. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;tvbdpa_temp] = tvbdpa[.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT tvbdpa.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;vbdpa = tvbdpa.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT SINGLE obknr FROM ser02&lt;/P&gt;&lt;P&gt;INTO l_obknr&lt;/P&gt;&lt;P&gt;WHERE sdaufnr = nast-objky&lt;/P&gt;&lt;P&gt;AND posnr = vbdpa-posnr.&lt;/P&gt;&lt;P&gt;IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;SELECT SINGLE equnr FROM objk&lt;/P&gt;&lt;P&gt;INTO l_equnr&lt;/P&gt;&lt;P&gt;WHERE obknr = l_obknr.&lt;/P&gt;&lt;P&gt;IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'BAPI_EQUI_GETDETAIL'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;equipment = l_equnr&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;data_general_exp = stru_bapi_itob&lt;/P&gt;&lt;P&gt;data_specific_exp = stru_bapi_itob_eq_only.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;stru_addr-addrnumber = stru_bapi_itob-read_adrnr.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'ADDR_GET'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;address_selection = stru_addr&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;sadr = stru_adr&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;parameter_error = 1&lt;/P&gt;&lt;P&gt;address_not_exist = 2&lt;/P&gt;&lt;P&gt;version_not_exist = 3&lt;/P&gt;&lt;P&gt;internal_error = 4&lt;/P&gt;&lt;P&gt;OTHERS = 5.&lt;/P&gt;&lt;P&gt;IF sy-subrc 0.&lt;/P&gt;&lt;P&gt;&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;SELECT SINGLE pltxt FROM iflo&lt;/P&gt;&lt;P&gt;INTO l_pltxt&lt;/P&gt;&lt;P&gt;WHERE tplnr = stru_bapi_itob_eq_only-read_floc&lt;/P&gt;&lt;P&gt;AND spras = 'E'.&lt;/P&gt;&lt;P&gt;IF l_pltxt_temp l_pltxt.&lt;/P&gt;&lt;P&gt;IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;MOVE l_pltxt TO l_pltxt_temp.&lt;/P&gt;&lt;P&gt;SPLIT l_pltxt AT space INTO st_cont_sumry-pltxt1 st_cont_sumry-pltxt2 st_cont_sumry-pltxt3.&lt;/P&gt;&lt;P&gt;REPLACE ALL OCCURRENCES OF ',' IN st_cont_sumry-pltxt1 WITH space.&lt;/P&gt;&lt;P&gt;REPLACE ALL OCCURRENCES OF ',' IN st_cont_sumry-pltxt2 WITH space.&lt;/P&gt;&lt;P&gt;REPLACE ALL OCCURRENCES OF ',' IN st_cont_sumry-pltxt3 WITH space.&lt;/P&gt;&lt;P&gt;MOVE l_pltxt TO st_cont_sumry-pltxt.&lt;/P&gt;&lt;P&gt;CLEAR: g_cont_subtax, g_cont_tottax.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;MOVE l_pltxt_temp TO st_cont_sumry-pltxt.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: st_cont_sumry-name_temp LIKE st_cont_sumry-name,&lt;/P&gt;&lt;P&gt;st_cont_sumry-city_temp LIKE st_cont_sumry-city,&lt;/P&gt;&lt;P&gt;st_cont_sumry-state_temp LIKE st_cont_sumry-state.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MOVE stru_adr-name1 TO st_cont_sumry-name.&lt;/P&gt;&lt;P&gt;MOVE stru_adr-name1 TO st_cont_sumry-name_temp.&lt;/P&gt;&lt;P&gt;SPLIT stru_adr-name1 AT space INTO st_cont_sumry-name1 st_cont_sumry-name2 st_cont_sumry-name3.&lt;/P&gt;&lt;P&gt;REPLACE ALL OCCURRENCES OF ',' IN st_cont_sumry-name1 WITH space.&lt;/P&gt;&lt;P&gt;REPLACE ALL OCCURRENCES OF ',' IN st_cont_sumry-name2 WITH space.&lt;/P&gt;&lt;P&gt;REPLACE ALL OCCURRENCES OF ',' IN st_cont_sumry-name3 WITH space.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MOVE stru_adr-ort01 TO st_cont_sumry-city.&lt;/P&gt;&lt;P&gt;MOVE stru_adr-ort01 TO st_cont_sumry-city_temp.&lt;/P&gt;&lt;P&gt;SPLIT stru_adr-ort01 AT space INTO st_cont_sumry-city1 st_cont_sumry-city2 st_cont_sumry-city3.&lt;/P&gt;&lt;P&gt;REPLACE ALL OCCURRENCES OF ',' IN st_cont_sumry-city1 WITH space.&lt;/P&gt;&lt;P&gt;REPLACE ALL OCCURRENCES OF ',' IN st_cont_sumry-city2 WITH space.&lt;/P&gt;&lt;P&gt;REPLACE ALL OCCURRENCES OF ',' IN st_cont_sumry-city3 WITH space.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MOVE stru_adr-regio TO st_cont_sumry-state.&lt;/P&gt;&lt;P&gt;MOVE stru_adr-regio TO st_cont_sumry-state_temp.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;MOVE l_pltxt_temp TO st_cont_sumry-pltxt.&lt;/P&gt;&lt;P&gt;MOVE st_cont_sumry-name_temp TO st_cont_sumry-name.&lt;/P&gt;&lt;P&gt;MOVE st_cont_sumry-city_temp TO st_cont_sumry-city.&lt;/P&gt;&lt;P&gt;MOVE st_cont_sumry-state_temp TO st_cont_sumry-state.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MOVE vbdpa-zmeng TO str1.&lt;/P&gt;&lt;P&gt;MOVE str1+0(9) TO st_cont_sumry-item.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MOVE vbdpa-netpr TO st_cont_sumry-mothly_tot. &lt;/P&gt;&lt;P&gt;st_cont_sumry-mothly_tot = st_cont_sumry-item * vbdpa-netpr.&lt;/P&gt;&lt;P&gt;MOVE vbdpa-netwr TO st_cont_sumry-ext_tot.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;g_cont_subtot = g_cont_subtot + st_cont_sumry-mothly_tot."vbdpa-netpr.&lt;/P&gt;&lt;P&gt;g_cont_exttot = g_cont_exttot + vbdpa-netwr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;komk-mandt = sy-mandt.&lt;/P&gt;&lt;P&gt;komk-kalsm = vbdka-kalsm.&lt;/P&gt;&lt;P&gt;komk-kappl = pr_kappl.&lt;/P&gt;&lt;P&gt;komk-waerk = vbdka-waerk.&lt;/P&gt;&lt;P&gt;komk-knumv = vbdka-knumv.&lt;/P&gt;&lt;P&gt;komk-knuma = vbdka-knuma.&lt;/P&gt;&lt;P&gt;komk-vbtyp = vbdka-vbtyp.&lt;/P&gt;&lt;P&gt;komk-land1 = vbdka-land1.&lt;/P&gt;&lt;P&gt;komk-vkorg = vbdka-vkorg.&lt;/P&gt;&lt;P&gt;komk-vtweg = vbdka-vtweg.&lt;/P&gt;&lt;P&gt;komk-spart = vbdka-spart.&lt;/P&gt;&lt;P&gt;komk-bukrs = vbdka-bukrs_vf.&lt;/P&gt;&lt;P&gt;komk-hwaer = vbdka-waers.&lt;/P&gt;&lt;P&gt;komk-prsdt = vbdka-erdat.&lt;/P&gt;&lt;P&gt;komk-kurst = vbdka-kurst.&lt;/P&gt;&lt;P&gt;komk-kurrf = vbdka-kurrf.&lt;/P&gt;&lt;P&gt;komk-kurrf_dat = vbdka-kurrf_dat.&lt;/P&gt;&lt;P&gt;komp-kposn = vbdpa-posnr.&lt;/P&gt;&lt;P&gt;komp-kursk = vbdpa-kursk.&lt;/P&gt;&lt;P&gt;komp-kursk_dat = vbdpa-kursk_dat.&lt;/P&gt;&lt;P&gt;IF vbdka-vbtyp CA 'HKNOT6'.&lt;/P&gt;&lt;P&gt;IF vbdpa-shkzg CA ' A'.&lt;/P&gt;&lt;P&gt;komp-shkzg = 'X'.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;IF vbdpa-shkzg CA 'BX'.&lt;/P&gt;&lt;P&gt;komp-shkzg = 'X'.&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;IF price_print_mode EQ chara.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'RV_PRICE_PRINT_ITEM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;comm_head_i = komk&lt;/P&gt;&lt;P&gt;comm_item_i = komp&lt;/P&gt;&lt;P&gt;language = nast-spras&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;comm_head_e = komk&lt;/P&gt;&lt;P&gt;comm_item_e = komp&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;tkomv = tkomv&lt;/P&gt;&lt;P&gt;tkomvd = tkomvd.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'RV_PRICE_PRINT_ITEM_BUFFER'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;comm_head_i = komk&lt;/P&gt;&lt;P&gt;comm_item_i = komp&lt;/P&gt;&lt;P&gt;language = nast-spras&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;comm_item_e = komp&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;tkomv = tkomv.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;g_cont_subtax = g_cont_subtax + komp-mwsbp.&lt;/P&gt;&lt;P&gt;IF NOT komp-mwsbp IS INITIAL.&lt;/P&gt;&lt;P&gt;g_cont_tottax = g_cont_tottax + komp-kzwi1.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;MOVE: g_cont_subtax TO st_cont_sumry-cont_subtax,&lt;/P&gt;&lt;P&gt;g_cont_tottax TO st_cont_sumry-cont_tottax.&lt;/P&gt;&lt;P&gt;CLEAR: komk,komp, tkomv,tkomvd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MOVE vbdpa-posnr TO st_cont_sumry-posnr.&lt;/P&gt;&lt;P&gt;APPEND st_cont_sumry TO gt_cont_sumry.&lt;/P&gt;&lt;P&gt;CLEAR: vbdpa,st_cont_sumry.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLEAR st_cont_sumry.&lt;/P&gt;&lt;P&gt;LOOP AT gt_cont_sumry INTO st_cont_sumry.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MOVE st_cont_sumry TO st_cont_sumry1.&lt;/P&gt;&lt;P&gt;AT END OF pltxt.&lt;/P&gt;&lt;P&gt;SUM.&lt;/P&gt;&lt;P&gt;MOVE st_cont_sumry-item TO st_cont_sumry1-item.&lt;/P&gt;&lt;P&gt;MOVE st_cont_sumry-mothly_tot TO st_cont_sumry1-mothly_tot.&lt;/P&gt;&lt;P&gt;MOVE st_cont_sumry-ext_tot TO st_cont_sumry1-ext_tot.&lt;/P&gt;&lt;P&gt;MOVE st_cont_sumry-cont_subtax TO st_cont_sumry1-cont_subtax.&lt;/P&gt;&lt;P&gt;MOVE st_cont_sumry-cont_tottax TO st_cont_sumry1-cont_tottax.&lt;/P&gt;&lt;P&gt;APPEND st_cont_sumry1 TO gt_cont_sumry1.&lt;/P&gt;&lt;P&gt;ENDAT.&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;CALL FUNCTION 'CONTROL_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;command = 'ENDPROTECT'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'CONTROL_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;command = 'PROTECT'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM' "First header&lt;/P&gt;&lt;P&gt;EXPORTING element = 'ITEM_HEADER_DATA'&lt;/P&gt;&lt;P&gt;EXCEPTIONS OTHERS = 1.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLEAR st_cont_sumry.&lt;/P&gt;&lt;P&gt;SORT gt_cont_sumry1 BY pltxt.&lt;/P&gt;&lt;P&gt;LOOP AT gt_cont_sumry1 INTO st_cont_sumry.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM' "First header &lt;/P&gt;&lt;P&gt;EXPORTING element = 'ITEM_HEADER_DATA' &lt;/P&gt;&lt;P&gt;EXCEPTIONS OTHERS = 1. &lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0. &lt;/P&gt;&lt;P&gt;PERFORM protocol_update. &lt;/P&gt;&lt;P&gt;ENDIF. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'CONTROL_FORM' &lt;/P&gt;&lt;P&gt;EXPORTING &lt;/P&gt;&lt;P&gt;command = 'ENDPROTECT'. &lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'CONTROL_FORM' &lt;/P&gt;&lt;P&gt;EXPORTING &lt;/P&gt;&lt;P&gt;command = 'PROTECT'. &lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM' "First header &lt;/P&gt;&lt;P&gt;EXPORTING element = 'ITEM_HEADER_DATA' &lt;/P&gt;&lt;P&gt;EXCEPTIONS OTHERS = 1. &lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0. &lt;/P&gt;&lt;P&gt;PERFORM protocol_update. &lt;/P&gt;&lt;P&gt;ENDIF. &lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM' &lt;/P&gt;&lt;P&gt;EXPORTING &lt;/P&gt;&lt;P&gt;element = 'ITEM_LINE_HEADER_CUSTOM_DATA'. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'CONTROL_FORM' &lt;/P&gt;&lt;P&gt;EXPORTING &lt;/P&gt;&lt;P&gt;command = 'ENDPROTECT'. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'ITEM_LINE_HEADER_CUSTOM_DATA'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT LAST.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SUM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MOVE st_cont_sumry-mothly_tot TO g_cont_subtot.&lt;/P&gt;&lt;P&gt;MOVE st_cont_sumry-cont_subtax TO g_cont_subtax.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;g_cont_grantmontot = g_cont_subtot + g_cont_subtax.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MOVE st_cont_sumry-ext_tot TO g_cont_exttot.&lt;/P&gt;&lt;P&gt;MOVE st_cont_sumry-cont_tottax TO g_cont_tottax.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;g_cont_grantexttot = g_cont_exttot + g_cont_tottax.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'ITEM_LINE_HEADER_TOTAL_DATA'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'CONTROL_FORM' &lt;/P&gt;&lt;P&gt;EXPORTING &lt;/P&gt;&lt;P&gt;command = 'ENDPROTECT'. &lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'CONTROL_FORM' &lt;/P&gt;&lt;P&gt;EXPORTING &lt;/P&gt;&lt;P&gt;command = 'PROTECT'. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM' &lt;/P&gt;&lt;P&gt;EXPORTING &lt;/P&gt;&lt;P&gt;element = 'ITEM_LINE_HEADER_TOTAL_DATA'. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'CONTROL_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;command = 'ENDPROTECT'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM print_itemdata. &lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'CONTROL_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;command = 'NEW-PAGE'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM print_itemdata.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM' "Deactivate Header&lt;/P&gt;&lt;P&gt;EXPORTING element = 'ITEM_HEADER'&lt;/P&gt;&lt;P&gt;function = 'DELETE'&lt;/P&gt;&lt;P&gt;type = 'TOP'&lt;/P&gt;&lt;P&gt;EXCEPTIONS OTHERS = 1.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REFRESH: gt_cont_sumry1,gt_cont_sumry.&lt;/P&gt;&lt;P&gt;CLEAR: st_cont_sumry, g_cont_subtax, g_cont_tottax,&lt;/P&gt;&lt;P&gt;st_cont_sumry,st_cont_sumry1,&lt;/P&gt;&lt;P&gt;g_cont_exttot,g_cont_subtax,g_cont_tottax,&lt;/P&gt;&lt;P&gt;g_cont_subadj,g_cont_adjtot,g_cont_adj,&lt;/P&gt;&lt;P&gt;g_cont_adjexttot,g_cont_grantmontot,g_cont_grantexttot.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM' "First header &lt;/P&gt;&lt;P&gt;EXPORTING element = 'ITEM_HEADER' &lt;/P&gt;&lt;P&gt;EXCEPTIONS OTHERS = 1. &lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0. &lt;/P&gt;&lt;P&gt;PERFORM protocol_update. &lt;/P&gt;&lt;P&gt;ENDIF. &lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM' "Activate header &lt;/P&gt;&lt;P&gt;EXPORTING element = 'ITEM_HEADER' &lt;/P&gt;&lt;P&gt;type = 'TOP' &lt;/P&gt;&lt;P&gt;EXCEPTIONS OTHERS = 1. &lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0. &lt;/P&gt;&lt;P&gt;PERFORM protocol_update. &lt;/P&gt;&lt;P&gt;ENDIF. &lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT tvbdpa. &lt;/P&gt;&lt;P&gt;vbdpa = tvbdpa. &lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;key_data-sdaufnr = vbdka-vbeln. &lt;/P&gt;&lt;P&gt;key_data-posnr = vbdpa-posnr. &lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT SINGLE * FROM veda &lt;/P&gt;&lt;P&gt;WHERE vbeln = vbdka-vbeln &lt;/P&gt;&lt;P&gt;AND vposn = vbdpa-posnr. &lt;/P&gt;&lt;P&gt;IF sy-subrc 0. &lt;/P&gt;&lt;P&gt;SELECT SINGLE * FROM veda &lt;/P&gt;&lt;P&gt;WHERE vbeln = vbdka-vbeln. &lt;/P&gt;&lt;P&gt;ENDIF. &lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;**ENHANCEMENT-POINT ITEM_PRINT_01 SPOTS ES_RVADOR01.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF vbdpa-dragr EQ space. "Print rejected item? &lt;/P&gt;&lt;P&gt;IF vbdpa-posnr_neu NE space. "Item &lt;/P&gt;&lt;P&gt;PERFORM item_billing_correction_header USING da_ganf da_lanf. &lt;/P&gt;&lt;P&gt;PERFORM get_item_serials. &lt;/P&gt;&lt;P&gt;PERFORM get_item_characteristics. &lt;/P&gt;&lt;P&gt;PERFORM get_item_billing_schedules. &lt;/P&gt;&lt;P&gt;PERFORM get_item_prices. &lt;/P&gt;&lt;P&gt;PERFORM get_item_addis. &lt;/P&gt;&lt;P&gt;CALL FUNCTION 'CONTROL_FORM' &lt;/P&gt;&lt;P&gt;EXPORTING &lt;/P&gt;&lt;P&gt;command = 'ENDPROTECT'. &lt;/P&gt;&lt;P&gt;CALL FUNCTION 'CONTROL_FORM' &lt;/P&gt;&lt;P&gt;EXPORTING &lt;/P&gt;&lt;P&gt;command = 'PROTECT'. &lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM' &lt;/P&gt;&lt;P&gt;EXPORTING &lt;/P&gt;&lt;P&gt;element = 'ITEM_LINE'. &lt;/P&gt;&lt;P&gt;PERFORM item_rejected. &lt;/P&gt;&lt;P&gt;**-&amp;gt; Commented by sharat END&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM item_price_print. &lt;/P&gt;&lt;P&gt;**-&amp;gt; End&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;**-&amp;gt; Change by Sharat BEGIN&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM item_serials_print. &lt;/P&gt;&lt;P&gt;PERFORM item_price_print_costum. &lt;/P&gt;&lt;P&gt;**-&amp;gt;END&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'CONTROL_FORM' &lt;/P&gt;&lt;P&gt;EXPORTING &lt;/P&gt;&lt;P&gt;command = 'ENDPROTECT'. &lt;/P&gt;&lt;P&gt;PERFORM item_text_print. &lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;**-&amp;gt; Commented by sharat END&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM item_serials_print. &lt;/P&gt;&lt;P&gt;PERFORM item_price_print_costum. &lt;/P&gt;&lt;P&gt;**-&amp;gt; End&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM item_characteristics_print. &lt;/P&gt;&lt;P&gt;PERFORM item_addis_print. &lt;/P&gt;&lt;P&gt;PERFORM item_reference_billing. &lt;/P&gt;&lt;P&gt;PERFORM alternative_item. &lt;/P&gt;&lt;P&gt;PERFORM delivery_date. &lt;/P&gt;&lt;P&gt;PERFORM item_delivery_confirmation. &lt;/P&gt;&lt;P&gt;PERFORM item_agreed_delivery_time. &lt;/P&gt;&lt;P&gt;PERFORM item_billing_schedules_print. &lt;/P&gt;&lt;P&gt;PERFORM different_reference_no. &lt;/P&gt;&lt;P&gt;PERFORM different_terms. &lt;/P&gt;&lt;P&gt;PERFORM different_consignee. &lt;/P&gt;&lt;P&gt;PERFORM schedule_header. &lt;/P&gt;&lt;P&gt;PERFORM main_item. &lt;/P&gt;&lt;P&gt;ELSE. &lt;/P&gt;&lt;P&gt;PERFORM schedule_print. &lt;/P&gt;&lt;P&gt;ENDIF. &lt;/P&gt;&lt;P&gt;**ENHANCEMENT-POINT ITEM_PRINT_03 SPOTS ES_RVADOR01 STATIC.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;**ENHANCEMENT-POINT ITEM_PRINT_02 SPOTS ES_RVADOR01.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDIF. &lt;/P&gt;&lt;P&gt;ENDLOOP. &lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM' "Deactivate Header &lt;/P&gt;&lt;P&gt;EXPORTING element = 'ITEM_HEADER' &lt;/P&gt;&lt;P&gt;function = 'DELETE' &lt;/P&gt;&lt;P&gt;type = 'TOP' &lt;/P&gt;&lt;P&gt;EXCEPTIONS OTHERS = 1. &lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0. &lt;/P&gt;&lt;P&gt;PERFORM protocol_update. &lt;/P&gt;&lt;P&gt;ENDIF. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. "ITEM_PRINT&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;P&gt;FORM ITEM_REFERENCE_BILLING * &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;P&gt;If the reference number of the billing is printed by this * &lt;/P&gt;&lt;P&gt;routine. In case (debit memo / credit memo) * &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;P&gt;FORM item_reference_billing.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CHECK vbdka-vbklt EQ vbklt_rech_korr.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'ITEM_REFERENCE_BILLING'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. "ITEM_REFERENCE_BILLING&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;P&gt;&lt;/P&gt;&lt;P&gt;FORM ITEM_REJECTED * &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;P&gt;A text is printed, if the item is rejected * &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;P&gt;FORM item_rejected.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CHECK NOT vbdpa-abgru IS INITIAL.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'ITEM_REJECTED'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. "ITEM_REJECTED&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;P&gt;FORM MAIN_ITEM * &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;P&gt;A text is printed, if the item is a main item * &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;P&gt;FORM main_item.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT tvbdpau INTO vbdpau&lt;/P&gt;&lt;P&gt;WHERE posnr EQ vbdpa-posnr.&lt;/P&gt;&lt;P&gt;IF vbdpau-uposb IS INITIAL.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'ONE_SUBITEM'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'SEVERAL_SUBITEMS'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. "MAIN_ITEM&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;P&gt;FORM ITEM_TEXT_PRINT * &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;P&gt;Printout of the item texts * &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;P&gt;FORM item_text_print.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'ITEM_TEXT'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. "ITEM_TEXT_PRINT&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;P&gt;FORM PROTOCOL_UPDATE * &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;P&gt;The messages are collected for the processing protocol. * &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;P&gt;FORM protocol_update.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CHECK xscreen = space.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'NAST_PROTOCOL_UPDATE'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;msg_arbgb = syst-msgid&lt;/P&gt;&lt;P&gt;msg_nr = syst-msgno&lt;/P&gt;&lt;P&gt;msg_ty = syst-msgty&lt;/P&gt;&lt;P&gt;msg_v1 = syst-msgv1&lt;/P&gt;&lt;P&gt;msg_v2 = syst-msgv2&lt;/P&gt;&lt;P&gt;msg_v3 = syst-msgv3&lt;/P&gt;&lt;P&gt;msg_v4 = syst-msgv4&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;OTHERS = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. "PROTOCOL_UPDATE&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;P&gt;FORM SCHEDULE_HEADER * &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;P&gt;If there are schedules in the item, then here is printed the * &lt;/P&gt;&lt;P&gt;header for the schedules. * &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;P&gt;FORM schedule_header.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CHECK vbdpa-etenr_da NE space.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'CONTROL_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;command = 'PROTECT'.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'ITEM_SCHEDULE_HEADER'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. "SCHEDULE_HEADER&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;P&gt;FORM SCHEDULE_PRINT * &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;P&gt;This routine prints the schedules for an item. * &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;P&gt;FORM schedule_print.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CHECK vbdpa-lfrel EQ 'X'.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'ITEM_SCHEDULE_PRINT'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. "SCHEDULE_PRINT&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;P&gt;FORM SENDER * &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;P&gt;This routine determines the address of the sender (Table VKO) * &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;P&gt;FORM sender.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT SINGLE * FROM tvko WHERE vkorg = vbdka-vkorg.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;syst-msgid = 'VN'.&lt;/P&gt;&lt;P&gt;syst-msgno = '203'.&lt;/P&gt;&lt;P&gt;syst-msgty = 'E'.&lt;/P&gt;&lt;P&gt;syst-msgv1 = 'TVKO'.&lt;/P&gt;&lt;P&gt;syst-msgv2 = syst-subrc.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;EXIT.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLEAR gv_fb_addr_get_selection.&lt;/P&gt;&lt;P&gt;gv_fb_addr_get_selection-addrnumber = tvko-adrnr. "SADR40A&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'ADDR_GET'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;address_selection = gv_fb_addr_get_selection&lt;/P&gt;&lt;P&gt;address_group = 'CA01'&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;sadr = sadr&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;OTHERS = 01.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;CLEAR sadr.&lt;/P&gt;&lt;P&gt;ENDIF. "SADR40A&lt;/P&gt;&lt;P&gt;vbdka-sland = sadr-land1.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;syst-msgid = 'VN'.&lt;/P&gt;&lt;P&gt;syst-msgno = '203'.&lt;/P&gt;&lt;P&gt;syst-msgty = 'E'.&lt;/P&gt;&lt;P&gt;syst-msgv1 = 'SADR'.&lt;/P&gt;&lt;P&gt;syst-msgv2 = syst-subrc.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT SINGLE * FROM TVBUR WHERE VKBUR = VBDKA-VKBUR. &lt;/P&gt;&lt;P&gt;IF SY-SUBRC NE 0. &lt;/P&gt;&lt;P&gt;SYST-MSGID = 'VN'. &lt;/P&gt;&lt;P&gt;SYST-MSGNO = '203'. &lt;/P&gt;&lt;P&gt;SYST-MSGTY = 'E'. &lt;/P&gt;&lt;P&gt;SYST-MSGV1 = 'TVBUR'. &lt;/P&gt;&lt;P&gt;SYST-MSGV2 = SYST-SUBRC. &lt;/P&gt;&lt;P&gt;PERFORM PROTOCOL_UPDATE. &lt;/P&gt;&lt;P&gt;ENDIF. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. "SENDER&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;P&gt;FORM TVBDPAU_CREATE * &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;P&gt;This routine is creating a table which includes the subitem- * &lt;/P&gt;&lt;P&gt;numbers * &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;P&gt;FORM tvbdpau_create.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLEAR tvbdpau.&lt;/P&gt;&lt;P&gt;REFRESH tvbdpau.&lt;/P&gt;&lt;P&gt;LOOP AT tvbdpa.&lt;/P&gt;&lt;P&gt;IF tvbdpa-uepos IS INITIAL OR&lt;/P&gt;&lt;P&gt;tvbdpa-uepos NE tvbdpau-posnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Append work area to internal table TVBDPAU &lt;/P&gt;&lt;P&gt;IF tvbdpau-uposv &amp;gt; 0.&lt;/P&gt;&lt;P&gt;APPEND tvbdpau.&lt;/P&gt;&lt;P&gt;CLEAR tvbdpau.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Start filling new work area &lt;/P&gt;&lt;P&gt;tvbdpau-posnr = tvbdpa-posnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF NOT tvbdpa-uepos IS INITIAL AND&lt;/P&gt;&lt;P&gt;tvbdpa-uepos NE tvbdpau-posnr.&lt;/P&gt;&lt;P&gt;tvbdpau-posnr = tvbdpa-uepos.&lt;/P&gt;&lt;P&gt;tvbdpau-uepvw = tvbdpa-uepvw.&lt;/P&gt;&lt;P&gt;tvbdpau-uposv = tvbdpa-posnr.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;IF tvbdpau-uposv IS INITIAL OR&lt;/P&gt;&lt;P&gt;tvbdpau-uposv &amp;gt; tvbdpa-posnr.&lt;/P&gt;&lt;P&gt;tvbdpau-uposv = tvbdpa-posnr.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;IF tvbdpau-uposb &amp;lt; tvbdpa-posnr AND&lt;/P&gt;&lt;P&gt;tvbdpau-uposv &amp;lt; tvbdpa-posnr.&lt;/P&gt;&lt;P&gt;tvbdpau-uposb = tvbdpa-posnr.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;tvbdpau-uepvw = tvbdpa-uepvw. "UPOS-Verwendung&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;IF tvbdpau-uposv &amp;gt; 0.&lt;/P&gt;&lt;P&gt;APPEND tvbdpau.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;SORT tvbdpau.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. "TVBDPAU_CREATE&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;P&gt;FORM VALIDITY_PRINT * &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;P&gt;This routine is printing the period of validity for offers * &lt;/P&gt;&lt;P&gt;and contracts * &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;P&gt;FORM validity_print.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CHECK steu-vdkex EQ space.&lt;/P&gt;&lt;P&gt;CASE vbdka-vbtyp.&lt;/P&gt;&lt;P&gt;WHEN 'B'.&lt;/P&gt;&lt;P&gt;IF vbdka-angdt CN '0' OR&lt;/P&gt;&lt;P&gt;vbdka-bnddt CN '0'.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'VALIDITY_OFFER'&lt;/P&gt;&lt;P&gt;window = 'VALIDITY'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;WHEN 'E'.&lt;/P&gt;&lt;P&gt;IF vbdka-guebg CN '0' OR&lt;/P&gt;&lt;P&gt;vbdka-gueen CN '0'.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'VALIDITY_CONTRACT'&lt;/P&gt;&lt;P&gt;window = 'VALIDITY'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;WHEN 'F'.&lt;/P&gt;&lt;P&gt;IF vbdka-guebg CN '0' OR&lt;/P&gt;&lt;P&gt;vbdka-gueen CN '0'.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'VALIDITY_CONTRACT'&lt;/P&gt;&lt;P&gt;window = 'VALIDITY'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;WHEN 'G'.&lt;/P&gt;&lt;P&gt;IF vbdka-guebg CN '0' OR&lt;/P&gt;&lt;P&gt;vbdka-gueen CN '0'.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'VALIDITY_CONTRACT'&lt;/P&gt;&lt;P&gt;window = 'VALIDITY'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDCASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. "VALIDITY_PRINT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp; Form HEADER_NOTICE_PRINT&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This routine prints the notice-rules of the contract-header. * &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;P&gt;--&amp;gt; p1 text &lt;/P&gt;&lt;P&gt;&amp;lt;-- p2 text &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------------" /&gt;&lt;P&gt;FORM header_notice_print.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: us_text(1) TYPE c. "Kz. falls Text für Kündigungsbed.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Kündigungsbedingungen auf Kopfebene. &lt;/P&gt;&lt;P&gt;CLEAR us_text.&lt;/P&gt;&lt;P&gt;LOOP AT tkomservhn.&lt;/P&gt;&lt;P&gt;vedkn = tkomservhn.&lt;/P&gt;&lt;P&gt;IF us_text IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For the first time a headertext is printed. &lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'HEADER_TERMS_OF_NOTTXT'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;us_text = charx.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'HEADER_TERMS_OF_NOTICE'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&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;If notice-rules exists a empty line is printed. &lt;/P&gt;&lt;P&gt;IF NOT us_text IS INITIAL.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'EMPTY_LINE'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&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. " HEADER_NOTICE_PRINT&lt;/P&gt;&lt;P&gt;*eject&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp; Form GET_ITEM_SERIALS&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This routine give back the serialnumbers of salesdocument * &lt;/P&gt;&lt;P&gt;position. The numbers are processed as print-lines in the * &lt;/P&gt;&lt;P&gt;table KOMSER_PRINT. * &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;P&gt;--&amp;gt; US_VBELN Salesdocument &lt;/P&gt;&lt;P&gt;--&amp;gt; US_POSNR Position of the salesdocument &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------------" /&gt;&lt;P&gt;FORM get_item_serials.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: key_data LIKE rserob,&lt;/P&gt;&lt;P&gt;sernos LIKE rserob OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;serxx LIKE rserxx OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;key_data-taser = 'SER02'.&lt;/P&gt;&lt;P&gt;key_data-sdaufnr = vbdka-vbeln.&lt;/P&gt;&lt;P&gt;key_data-posnr = vbdpa-posnr.&lt;/P&gt;&lt;P&gt;IF key_data-sdaufnr IS INITIAL AND NOT&lt;/P&gt;&lt;P&gt;key_data-posnr IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;beim Anlegen ist Belegnummer leer - deshalb Dummy-Belegnummer &lt;/P&gt;&lt;P&gt;key_data-sdaufnr = char$.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Read the Serialnumbers of a Position. &lt;/P&gt;&lt;P&gt;REFRESH: tkomser,&lt;/P&gt;&lt;P&gt;tkomser_print.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'GET_SERNOS_OF_DOCUMENT'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;key_data = key_data&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;sernos = sernos&lt;/P&gt;&lt;P&gt;*-&amp;gt;Begin of change by Sharat added new line one&lt;/P&gt;&lt;P&gt;serxx = serxx&lt;/P&gt;&lt;P&gt;*-&amp;gt;end of change by Sharat&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;key_parameter_error = 1&lt;/P&gt;&lt;P&gt;no_supported_access = 2&lt;/P&gt;&lt;P&gt;no_data_found = 3&lt;/P&gt;&lt;P&gt;OTHERS = 4.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-&amp;gt; Comented by Sharat BEGIN&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0 AND &lt;/P&gt;&lt;P&gt;sy-subrc NE 3. &lt;/P&gt;&lt;P&gt;PERFORM protocol_update. &lt;/P&gt;&lt;P&gt;ENDIF. &lt;/P&gt;&lt;P&gt;*-&amp;gt; Comented by Sharat END&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-&amp;gt;Begin of change by Sharat&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF ty_seri,&lt;/P&gt;&lt;P&gt;sernr TYPE gernr,&lt;/P&gt;&lt;P&gt;END OF ty_seri.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: lt_seri TYPE TABLE OF ty_seri,&lt;/P&gt;&lt;P&gt;wa_seri LIKE LINE OF lt_seri.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT serxx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT sernr FROM objk&lt;/P&gt;&lt;P&gt;INTO TABLE lt_seri&lt;/P&gt;&lt;P&gt;WHERE obknr = serxx-obknr.&lt;/P&gt;&lt;P&gt;IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;tkomser-vbeln = sernos-sdaufnr.&lt;/P&gt;&lt;P&gt;tkomser-posnr = sernos-posnr.&lt;/P&gt;&lt;P&gt;LOOP AT lt_seri INTO wa_seri.&lt;/P&gt;&lt;P&gt;tkomser-sernr = wa_seri-sernr.&lt;/P&gt;&lt;P&gt;APPEND tkomser.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDIF.&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;*-&amp;gt;END of changes by Sharat&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-&amp;gt; Comented by Sharat BEGIN&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CHECK sy-subrc EQ 0. &lt;/P&gt;&lt;P&gt;Serialnummern übergeben &lt;/P&gt;&lt;P&gt;tkomser-vbeln = sernos-sdaufnr. &lt;/P&gt;&lt;P&gt;tkomser-posnr = sernos-posnr. &lt;/P&gt;&lt;P&gt;LOOP AT sernos. &lt;/P&gt;&lt;P&gt;tkomser-sernr = sernos-sernr. &lt;/P&gt;&lt;P&gt;APPEND tkomser. &lt;/P&gt;&lt;P&gt;ENDLOOP. &lt;/P&gt;&lt;P&gt;*-&amp;gt; Comented by Sharat END&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Process the stringtable for Printing. &lt;/P&gt;&lt;P&gt;CALL FUNCTION 'PROCESS_SERIALS_FOR_PRINT'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;i_boundary_left = '(_'&lt;/P&gt;&lt;P&gt;i_boundary_right = '_)'&lt;/P&gt;&lt;P&gt;i_sep_char_strings = ',_'&lt;/P&gt;&lt;P&gt;i_sep_char_interval = '_-_'&lt;/P&gt;&lt;P&gt;i_use_interval = 'X'&lt;/P&gt;&lt;P&gt;i_boundary_method = 'C'&lt;/P&gt;&lt;P&gt;i_line_length = 50&lt;/P&gt;&lt;P&gt;i_no_zero = 'X'&lt;/P&gt;&lt;P&gt;i_alphabet = sy-abcde&lt;/P&gt;&lt;P&gt;i_digits = '0123456789'&lt;/P&gt;&lt;P&gt;i_special_chars = '-'&lt;/P&gt;&lt;P&gt;i_with_second_digit = ' '&lt;/P&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;serials = tkomser&lt;/P&gt;&lt;P&gt;serials_print = tkomser_print&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;boundary_missing = 01&lt;/P&gt;&lt;P&gt;interval_separation_missing = 02&lt;/P&gt;&lt;P&gt;length_to_small = 03&lt;/P&gt;&lt;P&gt;internal_error = 04&lt;/P&gt;&lt;P&gt;wrong_method = 05&lt;/P&gt;&lt;P&gt;wrong_serial = 06&lt;/P&gt;&lt;P&gt;two_equal_serials = 07&lt;/P&gt;&lt;P&gt;serial_with_wrong_char = 08&lt;/P&gt;&lt;P&gt;serial_separation_missing = 09.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " GET_ITEM_SERIALS&lt;/P&gt;&lt;P&gt;*eject&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp; Form ITEM_SERIALS_PRINT&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&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;This routine prints the serialnumbers of a salesdocument * &lt;/P&gt;&lt;P&gt;position. * &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------------" /&gt;&lt;P&gt;FORM item_serials_print.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: first_line(1) TYPE c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;first_line = charx.&lt;/P&gt;&lt;P&gt;LOOP AT tkomser_print.&lt;/P&gt;&lt;P&gt;komser = tkomser_print.&lt;/P&gt;&lt;P&gt;IF NOT first_line IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Output of the Headerline &lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'ITEM_LINE_SERIAL_HEADER'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;CLEAR first_line.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Output of the following printlines &lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'ITEM_LINE_SERIAL'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If serialnumbers exists a empty line is printed. &lt;/P&gt;&lt;P&gt;IF first_line IS INITIAL.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'EMPTY_LINE'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&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. " ITEM_SERIALS_PRINT&lt;/P&gt;&lt;P&gt;*eject&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp; Form HEADER_INTER_PRINT&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&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;Prints the message that if other condition for the positions * &lt;/P&gt;&lt;P&gt;exists they are printed there. * &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;P&gt;--&amp;gt; p1 text &lt;/P&gt;&lt;P&gt;&amp;lt;-- p2 text &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------------" /&gt;&lt;P&gt;FORM header_inter_print.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CHECK NOT steu-vdkex IS INITIAL.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'HEADER_TERMS_OF_TXTEND'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " HEADER_INTER_PRINT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp; Form GET_CONTROLL_DATA&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Checks if servicedata for the header exists. * &lt;/P&gt;&lt;P&gt;Checks if servicedata for the position exists. * &lt;/P&gt;&lt;P&gt;Checks if noticedata for the header exists. * &lt;/P&gt;&lt;P&gt;Checks if noticedata for the position exists. * &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------------" /&gt;&lt;P&gt;FORM get_controll_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: lines TYPE i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Exists servicedata for the header? &lt;/P&gt;&lt;P&gt;DESCRIBE TABLE tkomservh LINES lines.&lt;/P&gt;&lt;P&gt;IF lines GT 0.&lt;/P&gt;&lt;P&gt;steu-vdkex = 'X'.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Exists servicedata for the position? &lt;/P&gt;&lt;P&gt;DESCRIBE TABLE tkomservp LINES lines.&lt;/P&gt;&lt;P&gt;IF lines GT 0.&lt;/P&gt;&lt;P&gt;steu-vdpex = 'X'.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Exists noticedata for the header? &lt;/P&gt;&lt;P&gt;DESCRIBE TABLE tkomservhn LINES lines.&lt;/P&gt;&lt;P&gt;IF lines GT 0.&lt;/P&gt;&lt;P&gt;steu-kbkex = 'X'.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Exists noticedata for the position? &lt;/P&gt;&lt;P&gt;DESCRIBE TABLE tkomservpn LINES lines.&lt;/P&gt;&lt;P&gt;IF lines GT 0.&lt;/P&gt;&lt;P&gt;steu-kbpex = 'X'.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " GET_CONTROLL_DATA&lt;/P&gt;&lt;P&gt;*eject&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp; Form HEADER_SERV_PRINT&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&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;Output of the validity of a service-contract. * &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------------" /&gt;&lt;P&gt;FORM header_serv_print.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CHECK NOT steu-vdkex IS INITIAL.&lt;/P&gt;&lt;P&gt;READ TABLE tkomservh INDEX 1.&lt;/P&gt;&lt;P&gt;MOVE tkomservh TO vedka.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Output of the validity. &lt;/P&gt;&lt;P&gt;IF NOT vedka-venddat IS INITIAL OR&lt;/P&gt;&lt;P&gt;vedka-venddat EQ space.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'HEADER_TERMS_OF_SERV1'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ELSEIF vedka-vbegdat NE space AND&lt;/P&gt;&lt;P&gt;NOT vedka-vbegdat IS INITIAL.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'HEADER_TERMS_OF_SERV2'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'HEADER_TERMS_OF_SERV3'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;element = 1&lt;/P&gt;&lt;P&gt;window = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&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. " HEADER_SERV_PRINT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp; Form get_fax_land&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;text &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;P&gt;--&amp;gt;P_NAST_TLAND text &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------------" /&gt;&lt;P&gt;FORM get_fax_land USING p_nast_land LIKE nast-tland.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA l_land LIKE nast-tland .&lt;/P&gt;&lt;P&gt;CLEAR l_land.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF NOT addr_key-addrnumber IS INITIAL.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WFMC_FAXNUMBER_FOR_ADDRESS'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;adrnr = addr_key-addrnumber&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;tland = l_land&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;addr_not_exist = 1&lt;/P&gt;&lt;P&gt;OTHERS = 2.&lt;/P&gt;&lt;P&gt;IF sy-subrc = 0 AND NOT l_land IS INITIAL.&lt;/P&gt;&lt;P&gt;p_nast_land = l_land.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM. " get_fax_land&lt;/P&gt;&lt;P&gt;*ENHANCEMENT-POINT RVADOFOI_01 SPOTS ES_RVADOR01 STATIC.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*ENHANCEMENT-POINT RVADOR01_03 SPOTS ES_RVADOR01 STATIC.&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp; Form item_price_print_costum&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&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;text &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;P&gt;--&amp;gt; p1 text &lt;/P&gt;&lt;P&gt;&amp;lt;-- p2 text &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------------" /&gt;&lt;P&gt;FORM item_price_print_costum .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT tkomv WHERE kposn = vbdpa-posnr.&lt;/P&gt;&lt;P&gt;IF tkomv-kschl CP 'Z*'.&lt;/P&gt;&lt;P&gt;komv = tkomv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'CONDITION_TEXTS_GET'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;pi_kappl = 'V'&lt;/P&gt;&lt;P&gt;pi_kschl = tkomv-kschl&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PI_KOTABNR = &lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;pe_i_t685t = t685t&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PE_I_TMC1T = &lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'ITEM_LINE_PRICE_QUANTITY'.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " item_price_print_costum&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&amp;amp; Form print_itemdata&lt;/P&gt;&lt;P&gt;&amp;amp;----&lt;/P&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;text &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;P&gt;--&amp;gt; p1 text &lt;/P&gt;&lt;P&gt;&amp;lt;-- p2 text &lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="--------------------------------------------------------------------" /&gt;&lt;P&gt;FORM print_itemdata .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: da_ganf(1) TYPE c, "Print flag for billing correction&lt;/P&gt;&lt;P&gt;da_lanf(1) TYPE c. "Print flag for billing correction&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: wa_cont_sumry_temp LIKE LINE OF gt_cont_sumry.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM' "First header&lt;/P&gt;&lt;P&gt;EXPORTING element = 'ITEM_HEADER'&lt;/P&gt;&lt;P&gt;EXCEPTIONS OTHERS = 1.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM' "Activate header&lt;/P&gt;&lt;P&gt;EXPORTING element = 'ITEM_HEADER'&lt;/P&gt;&lt;P&gt;type = 'TOP'&lt;/P&gt;&lt;P&gt;EXCEPTIONS OTHERS = 1.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SORT gt_cont_sumry BY pltxt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT gt_cont_sumry INTO wa_cont_sumry_temp." WHERE posnr &amp;lt;= st_cont_sumry-posnr.&lt;/P&gt;&lt;P&gt;AT NEW pltxt.&lt;/P&gt;&lt;P&gt;MOVE wa_cont_sumry_temp-pltxt TO g_pltxt.&lt;/P&gt;&lt;P&gt;ENDAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;READ TABLE tvbdpa_temp WITH KEY posnr = wa_cont_sumry_temp-posnr. &lt;/P&gt;&lt;P&gt;IF sy-subrc = 0. &lt;/P&gt;&lt;P&gt;READ TABLE tvbdpa_temp WITH KEY posnr = wa_cont_sumry_temp-posnr.&lt;/P&gt;&lt;P&gt;IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;vbdpa = tvbdpa_temp.&lt;/P&gt;&lt;P&gt;DELETE tvbdpa_temp WHERE posnr = wa_cont_sumry_temp-posnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;key_data-sdaufnr = vbdka-vbeln. &lt;/P&gt;&lt;P&gt;key_data-posnr = vbdpa-posnr. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT SINGLE * FROM veda&lt;/P&gt;&lt;P&gt;WHERE vbeln = vbdka-vbeln&lt;/P&gt;&lt;P&gt;AND vposn = vbdpa-posnr.&lt;/P&gt;&lt;P&gt;IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;SELECT SINGLE * FROM veda&lt;/P&gt;&lt;P&gt;WHERE vbeln = vbdka-vbeln.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*ENHANCEMENT-POINT ITEM_PRINT_01 SPOTS ES_RVADOR01.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF vbdpa-dragr EQ space. "Print rejected item?&lt;/P&gt;&lt;P&gt;IF vbdpa-posnr_neu NE space. "Item&lt;/P&gt;&lt;P&gt;PERFORM item_billing_correction_header USING da_ganf da_lanf.&lt;/P&gt;&lt;P&gt;PERFORM get_item_serials.&lt;/P&gt;&lt;P&gt;PERFORM get_item_characteristics.&lt;/P&gt;&lt;P&gt;PERFORM get_item_billing_schedules.&lt;/P&gt;&lt;P&gt;PERFORM get_item_prices.&lt;/P&gt;&lt;P&gt;PERFORM get_item_addis.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'CONTROL_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;command = 'ENDPROTECT'.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'CONTROL_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;command = 'PROTECT'.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'ITEM_LINE'.&lt;/P&gt;&lt;P&gt;PERFORM item_rejected.&lt;/P&gt;&lt;P&gt;*-&amp;gt; Commented by sharat END&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM item_price_print. &lt;/P&gt;&lt;P&gt;*-&amp;gt; End&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-&amp;gt; Change by Sharat BEGIN&lt;/P&gt;&lt;P&gt;PERFORM item_serials_print.&lt;/P&gt;&lt;P&gt;PERFORM item_price_print_costum.&lt;/P&gt;&lt;P&gt;*-&amp;gt;END&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'CONTROL_FORM' &lt;/P&gt;&lt;P&gt;EXPORTING &lt;/P&gt;&lt;P&gt;command = 'ENDPROTECT'. &lt;/P&gt;&lt;P&gt;PERFORM item_text_print.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-&amp;gt; Commented by sharat END&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM item_serials_print. &lt;/P&gt;&lt;P&gt;PERFORM item_price_print_costum. &lt;/P&gt;&lt;P&gt;*-&amp;gt; End&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM item_characteristics_print.&lt;/P&gt;&lt;P&gt;PERFORM item_addis_print.&lt;/P&gt;&lt;P&gt;PERFORM item_reference_billing.&lt;/P&gt;&lt;P&gt;PERFORM alternative_item.&lt;/P&gt;&lt;P&gt;PERFORM delivery_date.&lt;/P&gt;&lt;P&gt;PERFORM item_delivery_confirmation.&lt;/P&gt;&lt;P&gt;PERFORM item_agreed_delivery_time.&lt;/P&gt;&lt;P&gt;PERFORM item_billing_schedules_print.&lt;/P&gt;&lt;P&gt;PERFORM different_reference_no.&lt;/P&gt;&lt;P&gt;PERFORM different_terms.&lt;/P&gt;&lt;P&gt;PERFORM different_consignee.&lt;/P&gt;&lt;P&gt;PERFORM schedule_header.&lt;/P&gt;&lt;P&gt;PERFORM main_item.&lt;/P&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;P&gt;PERFORM schedule_print.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;*ENHANCEMENT-POINT ITEM_PRINT_03 SPOTS ES_RVADOR01 STATIC.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*ENHANCEMENT-POINT ITEM_PRINT_02 SPOTS ES_RVADOR01.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;DATA: l_line TYPE i,&lt;/P&gt;&lt;P&gt;l_tabix TYPE sy-tabix.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DESCRIBE TABLE gt_cont_sumry1 LINES l_line.&lt;/P&gt;&lt;P&gt;READ TABLE gt_cont_sumry1 INTO st_cont_sumry WITH KEY posnr = wa_cont_sumry_temp-posnr.&lt;/P&gt;&lt;P&gt;IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;MOVE sy-tabix TO l_tabix.&lt;/P&gt;&lt;P&gt;MOVE st_cont_sumry-mothly_tot TO g_cont_subtot.&lt;/P&gt;&lt;P&gt;MOVE st_cont_sumry-cont_subtax TO g_cont_subtax.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;g_cont_grantmontot = g_cont_subtot + g_cont_subtax.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;MOVE st_cont_sumry-ext_tot TO g_cont_exttot.&lt;/P&gt;&lt;P&gt;MOVE st_cont_sumry-cont_tottax TO g_cont_tottax.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;g_cont_grantexttot = g_cont_exttot + g_cont_tottax.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;element = 'ITEM_LINE_HEADER_TOTAL_DATA'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM end_print. &lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM' &lt;/P&gt;&lt;P&gt;EXPORTING &lt;/P&gt;&lt;P&gt;element = 'END_VALUES'. &lt;/P&gt;&lt;P&gt;IF l_tabix l_line.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'CONTROL_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;command = 'NEW-PAGE'.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'CONTROL_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;command = 'ENDPROTECT'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;CLEAR g_pltxt.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT tvbdpa. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;vbdpa = tvbdpa. &lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;key_data-sdaufnr = vbdka-vbeln. &lt;/P&gt;&lt;P&gt;key_data-posnr = vbdpa-posnr. &lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT SINGLE * FROM veda &lt;/P&gt;&lt;P&gt;WHERE vbeln = vbdka-vbeln &lt;/P&gt;&lt;P&gt;AND vposn = vbdpa-posnr. &lt;/P&gt;&lt;P&gt;IF sy-subrc 0. &lt;/P&gt;&lt;P&gt;SELECT SINGLE * FROM veda &lt;/P&gt;&lt;P&gt;WHERE vbeln = vbdka-vbeln. &lt;/P&gt;&lt;P&gt;ENDIF. &lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;**ENHANCEMENT-POINT ITEM_PRINT_01 SPOTS ES_RVADOR01.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF vbdpa-dragr EQ space. "Print rejected item? &lt;/P&gt;&lt;P&gt;IF vbdpa-posnr_neu NE space. "Item &lt;/P&gt;&lt;P&gt;PERFORM item_billing_correction_header USING da_ganf da_lanf. &lt;/P&gt;&lt;P&gt;PERFORM get_item_serials. &lt;/P&gt;&lt;P&gt;PERFORM get_item_characteristics. &lt;/P&gt;&lt;P&gt;PERFORM get_item_billing_schedules. &lt;/P&gt;&lt;P&gt;PERFORM get_item_prices. &lt;/P&gt;&lt;P&gt;PERFORM get_item_addis. &lt;/P&gt;&lt;P&gt;CALL FUNCTION 'CONTROL_FORM' &lt;/P&gt;&lt;P&gt;EXPORTING &lt;/P&gt;&lt;P&gt;command = 'ENDPROTECT'. &lt;/P&gt;&lt;P&gt;CALL FUNCTION 'CONTROL_FORM' &lt;/P&gt;&lt;P&gt;EXPORTING &lt;/P&gt;&lt;P&gt;command = 'PROTECT'. &lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM' &lt;/P&gt;&lt;P&gt;EXPORTING &lt;/P&gt;&lt;P&gt;element = 'ITEM_LINE'. &lt;/P&gt;&lt;P&gt;PERFORM item_rejected. &lt;/P&gt;&lt;P&gt;**-&amp;gt; Commented by sharat END&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM item_price_print. &lt;/P&gt;&lt;P&gt;**-&amp;gt; End&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;**-&amp;gt; Change by Sharat BEGIN&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM item_serials_print. &lt;/P&gt;&lt;P&gt;PERFORM item_price_print_costum. &lt;/P&gt;&lt;P&gt;**-&amp;gt;END&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'CONTROL_FORM' &lt;/P&gt;&lt;P&gt;EXPORTING &lt;/P&gt;&lt;P&gt;command = 'ENDPROTECT'. &lt;/P&gt;&lt;P&gt;PERFORM item_text_print. &lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;**-&amp;gt; Commented by sharat END&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM item_serials_print. &lt;/P&gt;&lt;P&gt;PERFORM item_price_print_costum. &lt;/P&gt;&lt;P&gt;**-&amp;gt; End&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM item_characteristics_print. &lt;/P&gt;&lt;P&gt;PERFORM item_addis_print. &lt;/P&gt;&lt;P&gt;PERFORM item_reference_billing. &lt;/P&gt;&lt;P&gt;PERFORM alternative_item. &lt;/P&gt;&lt;P&gt;PERFORM delivery_date. &lt;/P&gt;&lt;P&gt;PERFORM item_delivery_confirmation. &lt;/P&gt;&lt;P&gt;PERFORM item_agreed_delivery_time. &lt;/P&gt;&lt;P&gt;PERFORM item_billing_schedules_print. &lt;/P&gt;&lt;P&gt;PERFORM different_reference_no. &lt;/P&gt;&lt;P&gt;PERFORM different_terms. &lt;/P&gt;&lt;P&gt;PERFORM different_consignee. &lt;/P&gt;&lt;P&gt;PERFORM schedule_header. &lt;/P&gt;&lt;P&gt;PERFORM main_item. &lt;/P&gt;&lt;P&gt;ELSE. &lt;/P&gt;&lt;P&gt;PERFORM schedule_print. &lt;/P&gt;&lt;P&gt;ENDIF. &lt;/P&gt;&lt;P&gt;**ENHANCEMENT-POINT ITEM_PRINT_03 SPOTS ES_RVADOR01 STATIC.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;**ENHANCEMENT-POINT ITEM_PRINT_02 SPOTS ES_RVADOR01.&lt;/P&gt;&lt;P&gt;&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;CALL FUNCTION 'WRITE_FORM' "Deactivate Header&lt;/P&gt;&lt;P&gt;EXPORTING element = 'ITEM_HEADER'&lt;/P&gt;&lt;P&gt;function = 'DELETE'&lt;/P&gt;&lt;P&gt;type = 'TOP'&lt;/P&gt;&lt;P&gt;EXCEPTIONS OTHERS = 1.&lt;/P&gt;&lt;P&gt;IF sy-subrc NE 0.&lt;/P&gt;&lt;P&gt;PERFORM protocol_update.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " print_itemdata&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 16 Jan 2008 08:41:14 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sap-scripts/m-p/3271900#M782142</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-16T08:41:14Z</dc:date>
    </item>
    <item>
      <title>Re: SAP Scripts</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sap-scripts/m-p/3271901#M782143</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Ashish,&lt;/P&gt;&lt;P&gt;also check out this,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Structure of a print program&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;OPEN_FORM function&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLOSE_FORM function&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;WRITE_FORM&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START_FORM function&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;END_FORM function&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CONTROL_FORM function&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The print program is used to print forms. The program retieves the necesary data from datbase tables, defines the order of in which text elements are printed, chooses a form for printing and selects an output device and print options. &lt;/P&gt;&lt;P&gt;Function modules in a printprogram:&lt;/P&gt;&lt;P&gt;&amp;#149; When you print a form you must used the staments OPEN_FORM and CLOSE_FORM. To combine forms into a single spool request use START_FORM and END_FORM. &lt;/P&gt;&lt;P&gt;&amp;#149; To print textelements in a form use WRITE_FORM. The order in which the textelements are printed, is determined by the order of the WRITE_FORM statements. Note: for printing lines in the body, you can also use the WRITE_FORM_LINES function module. &lt;/P&gt;&lt;P&gt;&amp;#149; To transfer control command to a form use CONTROL_FORM. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Structure of a print program&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Read data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;Tables: xxx.&lt;/P&gt;&lt;P&gt;SELECT *&lt;/P&gt;&lt;P&gt;FROM xxx.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Open form printing - Must be called before working with any of the other form function modules.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Must be ended with function module CLOSE FORM &lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;call function 'OPEN_FORM'.....&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;To begin several indentical forms containing different data within a single spool request, begin each form using START_FORM, and end it using END_FORM&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;call funtion 'START_FORM'.....&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Write text elements to a window of the form&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;call function 'WRITE_FORM'.....&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Ends spool request started with START_FORM&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;call funtion 'END_FORM'.....&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Closes form printing&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;call function 'CLOSE_FORM'...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;OPEN_FORM function&lt;/P&gt;&lt;P&gt;Syntax:&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'OPEN_FORM'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;APPLICATION = 'TX'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ARCHIVE_INDEX =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ARCHIVE_PARAMS =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;DEVICE = 'PRINTER'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;DIALOG = 'X'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FORM = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;LANGUAGE = SY-LANGU&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;OPTIONS =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MAIL_SENDER =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MAIL_RECIPIENT =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MAIL_APPL_OBJECT =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;RAW_DATA_INTERFACE = '*'&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;LANGUAGE =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;NEW_ARCHIVE_PARAMS =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;RESULT =&lt;/P&gt;&lt;/LI&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;CANCELED = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;DEVICE = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FORM = 3&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;OPTIONS = 4&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;UNCLOSED = 5&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MAIL_OPTIONS = 6&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ARCHIVE_ERROR = 7&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;INVALID_FAX_NUMBER = 8&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MORE_PARAMS_NEEDED_IN_BATCH = 9&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SPOOL_ERROR = 10&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;OTHERS = 11&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;Some important parameters:&lt;/P&gt;&lt;P&gt;FORM Name of the form&lt;/P&gt;&lt;P&gt;DEVICE &amp;#149; PRINTER : Print output using spool &lt;/P&gt;&lt;P&gt;&amp;#149; TELEFAX: Fax output &lt;/P&gt;&lt;P&gt;&amp;#149; SCREEN: Output to screen &lt;/P&gt;&lt;P&gt;OPTIONS Used to control attrubutes for printing or faxing (Number of copies, immediate output....&lt;/P&gt;&lt;P&gt;The input for the parameter is structure ITCPO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLOSE_FORM function&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'CLOSE_FORM'&lt;/P&gt;&lt;UL&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;RESULT =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;RDI_RESULT =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;OTFDATA =&lt;/P&gt;&lt;/LI&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;UNOPENED = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;BAD_PAGEFORMAT_FOR_PRINT = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SEND_ERROR = 3&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SPOOL_ERROR = 4&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;OTHERS = 5&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;Paramerters:&lt;/P&gt;&lt;P&gt;RESULT Returns status information and print/fax parameters after the form has been printed. RESULT is of structure ITCPP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;WRITE_FORM function&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ELEMENT = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FUNCTION = 'SET'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;TYPE = 'BODY'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;WINDOW = 'MAIN'&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;PENDING_LINES =&lt;/P&gt;&lt;/LI&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;ELEMENT = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FUNCTION = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;TYPE = 3&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;UNOPENED = 4&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;UNSTARTED = 5&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;WINDOW = 6&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;BAD_PAGEFORMAT_FOR_PRINT = 7&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SPOOL_ERROR = 8&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;OTHERS = 9&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;Some important parameters:&lt;/P&gt;&lt;P&gt;ELEMENT Specifies which textelement is printed&lt;/P&gt;&lt;P&gt;WINDOW Specifies which window is printed&lt;/P&gt;&lt;P&gt;TYPE Specifies the output area of the main window. This can be:&lt;/P&gt;&lt;P&gt;&amp;#149; TOP - Used for headers &lt;/P&gt;&lt;P&gt;&amp;#149; BODY &lt;/P&gt;&lt;P&gt;&amp;#149; BOTTOM - Used for footers &lt;/P&gt;&lt;P&gt;FUNCTION Specifies whether text is to be appended, replaced or added&lt;/P&gt;&lt;P&gt;Example of how to use the WRITE_FORM function module together with a script.&lt;/P&gt;&lt;P&gt;Form layout of the MAIN window&lt;/P&gt;&lt;P&gt;/E INTRODUCTION&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Dear Customer&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;...........................&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/E ITEM_HEADER&lt;/P&gt;&lt;P&gt;IH Carrier, Departure&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/E ITEM_LINE&lt;/P&gt;&lt;P&gt;IL &amp;amp;SBOOK-CARRID&amp;amp;, &amp;amp;SPFLI-DEPTIME&amp;amp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/E CLOSING_REMARK&lt;/P&gt;&lt;P&gt;The print program&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Writing INTRODUCTION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;ELEMENT = 'INTRODUCTION'&lt;/P&gt;&lt;P&gt;FUNCTION = 'SET'&lt;/P&gt;&lt;P&gt;TYPE = 'BODY'&lt;/P&gt;&lt;P&gt;WINDOW = 'MAIN'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;OTHERS = 8&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Writing ITEM_HEADER&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;ELEMENT = 'ITEM_HEADER'&lt;/P&gt;&lt;P&gt;FUNCTION = 'SET'&lt;/P&gt;&lt;P&gt;TYPE = 'BODY'&lt;/P&gt;&lt;P&gt;WINDOW = 'MAIN'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;OTHERS = 8&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Set ITEM_HEADER into TOP area of main window for subsequent pages&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;ELEMENT = 'ITEM_HEADER'&lt;/P&gt;&lt;P&gt;FUNCTION = 'SET'&lt;/P&gt;&lt;P&gt;TYPE = 'TOP'&lt;/P&gt;&lt;P&gt;WINDOW = 'MAIN'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;OTHERS = 8&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Write ITEM_LINE&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;LOOP AT .....&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;ELEMENT = 'ITEM_LINE'&lt;/P&gt;&lt;P&gt;FUNCTION = 'SET'&lt;/P&gt;&lt;P&gt;TYPE = 'BODY'&lt;/P&gt;&lt;P&gt;WINDOW = 'MAIN'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;OTHERS = 8.&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;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Delete ITEM_HEADER from TOP area of main window&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;ELEMENT = 'ITEM_HEADER'&lt;/P&gt;&lt;P&gt;FUNCTION = 'DELETE'&lt;/P&gt;&lt;P&gt;TYPE = 'TOP'&lt;/P&gt;&lt;P&gt;WINDOW = 'MAIN'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;OTHERS = 8&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Print CLOSING_REMARK&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;ELEMENT = 'CLOSING_REMARK'&lt;/P&gt;&lt;P&gt;FUNCTION = 'SET'&lt;/P&gt;&lt;P&gt;TYPE = 'BODY'&lt;/P&gt;&lt;P&gt;WINDOW = 'MAIN'&lt;/P&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;P&gt;OTHERS = 8&lt;/P&gt;&lt;P&gt;START_FORM function&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'START_FORM'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ARCHIVE_INDEX =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FORM = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;LANGUAGE = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;STARTPAGE = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;PROGRAM = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MAIL_APPL_OBJECT =&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;LANGUAGE =&lt;/P&gt;&lt;/LI&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;FORM = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FORMAT = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;UNENDED = 3&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;UNOPENED = 4&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;UNUSED = 5&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SPOOL_ERROR = 6&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;OTHERS = 7&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;END_FORM function&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'END_FORM'&lt;/P&gt;&lt;UL&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;RESULT =&lt;/P&gt;&lt;/LI&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;UNOPENED = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;BAD_PAGEFORMAT_FOR_PRINT = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SPOOL_ERROR = 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;P&gt;CONTROL_FORM function&lt;/P&gt;&lt;P&gt;The CONTROL_FORM function module alows you to create SapScript control statements from within an APAB program.&lt;/P&gt;&lt;P&gt;Syntax:&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'CONTROL_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;command =&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;UNOPENED = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;UNSTARTED = 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;Example:&lt;/P&gt;&lt;P&gt;Protecting the text element ITEM_LINE&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'CONTROL_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;COMMAND = 'PROTECT'.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;TEXELEMENT = 'ITEM_LINE'.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'CONTROL_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;COMMAND = 'ENDPROTECT'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;cheers,&lt;/P&gt;&lt;P&gt;Hema.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 16 Jan 2008 08:41:39 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sap-scripts/m-p/3271901#M782143</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-16T08:41:39Z</dc:date>
    </item>
    <item>
      <title>Re: SAP Scripts</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/sap-scripts/m-p/3271902#M782144</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, can you tell how i can MEDRUCK DRIVER PROGRAM and how  ican execute it?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 20 Jan 2008 14:51:18 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/sap-scripts/m-p/3271902#M782144</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-01-20T14:51:18Z</dc:date>
    </item>
  </channel>
</rss>

