<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Write_form invalid in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/write-form-invalid/m-p/3779349#M909352</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;r you developiong smartform or sap script.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;in smartforms open_form,close_form are not available.&lt;/P&gt;&lt;P&gt;system will generate function module after we have to call in print program that's it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;but in case of scripts your code is correct.&lt;/P&gt;&lt;P&gt;check this point also.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;in your code open_form is missing and &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;in write_form you didn't mention window name  and place where it has to display.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;see below it is the flow of calling function modules in sap script program.&lt;/P&gt;&lt;P&gt;&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                              = 'ZSCRIPT1'&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;  SPONUMIV                          =&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;/UL&gt;&lt;P&gt; EXCEPTIONS&lt;/P&gt;&lt;P&gt;   CANCELED                          = 1&lt;/P&gt;&lt;P&gt;   DEVICE                            = 2&lt;/P&gt;&lt;P&gt;   FORM                              = 3&lt;/P&gt;&lt;P&gt;   OPTIONS                           = 4&lt;/P&gt;&lt;P&gt;   UNCLOSED                          = 5&lt;/P&gt;&lt;P&gt;   MAIL_OPTIONS                      = 6&lt;/P&gt;&lt;P&gt;   ARCHIVE_ERROR                     = 7&lt;/P&gt;&lt;P&gt;   INVALID_FAX_NUMBER                = 8&lt;/P&gt;&lt;P&gt;   MORE_PARAMS_NEEDED_IN_BATCH       = 9&lt;/P&gt;&lt;P&gt;   SPOOL_ERROR                       = 10&lt;/P&gt;&lt;P&gt;   CODEPAGE                          = 11&lt;/P&gt;&lt;P&gt;   OTHERS                            = 12&lt;/P&gt;&lt;P&gt;          .&lt;/P&gt;&lt;P&gt;IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt; MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;P&gt;         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'START_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  ARCHIVE_INDEX          =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;   FORM                   = 'ZFORM1'&lt;/P&gt;&lt;UL&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              = 'X'&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;   PROGRAM                = 'ZSCRIPT1'&lt;/P&gt;&lt;UL&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;  CODEPAGE               = 7&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  OTHERS                 = 8&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;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt; EXPORTING&lt;/P&gt;&lt;UL&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;/UL&gt;&lt;P&gt;   WINDOW                         = 'HEADER'&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;  PENDING_LINES                  =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt; EXCEPTIONS&lt;/P&gt;&lt;P&gt;   ELEMENT                        = 1&lt;/P&gt;&lt;P&gt;   FUNCTION                       = 2&lt;/P&gt;&lt;P&gt;   TYPE                           = 3&lt;/P&gt;&lt;P&gt;   UNOPENED                       = 4&lt;/P&gt;&lt;P&gt;   UNSTARTED                      = 5&lt;/P&gt;&lt;P&gt;   WINDOW                         = 6&lt;/P&gt;&lt;P&gt;   BAD_PAGEFORMAT_FOR_PRINT       = 7&lt;/P&gt;&lt;P&gt;   SPOOL_ERROR                    = 8&lt;/P&gt;&lt;P&gt;   OTHERS                         = 9&lt;/P&gt;&lt;P&gt;          .&lt;/P&gt;&lt;P&gt;IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;write:/ 'ERROR IN HEADER'.&lt;/P&gt;&lt;P&gt;&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;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt; EXPORTING&lt;/P&gt;&lt;UL&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;/UL&gt;&lt;P&gt;   WINDOW                         = 'MAIN'&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;  PENDING_LINES                  =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt; EXCEPTIONS&lt;/P&gt;&lt;P&gt;   ELEMENT                        = 1&lt;/P&gt;&lt;P&gt;   FUNCTION                       = 2&lt;/P&gt;&lt;P&gt;   TYPE                           = 3&lt;/P&gt;&lt;P&gt;   UNOPENED                       = 4&lt;/P&gt;&lt;P&gt;   UNSTARTED                      = 5&lt;/P&gt;&lt;P&gt;   WINDOW                         = 6&lt;/P&gt;&lt;P&gt;   BAD_PAGEFORMAT_FOR_PRINT       = 7&lt;/P&gt;&lt;P&gt;   SPOOL_ERROR                    = 8&lt;/P&gt;&lt;P&gt;   OTHERS                         = 9&lt;/P&gt;&lt;P&gt;          .&lt;/P&gt;&lt;P&gt;IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;write:/ 'ERROR IN HEADER'.&lt;/P&gt;&lt;P&gt;&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;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt; EXPORTING&lt;/P&gt;&lt;UL&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;/UL&gt;&lt;P&gt;   WINDOW                         = 'FOOTER'&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;  PENDING_LINES                  =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt; EXCEPTIONS&lt;/P&gt;&lt;P&gt;   ELEMENT                        = 1&lt;/P&gt;&lt;P&gt;   FUNCTION                       = 2&lt;/P&gt;&lt;P&gt;   TYPE                           = 3&lt;/P&gt;&lt;P&gt;   UNOPENED                       = 4&lt;/P&gt;&lt;P&gt;   UNSTARTED                      = 5&lt;/P&gt;&lt;P&gt;   WINDOW                         = 6&lt;/P&gt;&lt;P&gt;   BAD_PAGEFORMAT_FOR_PRINT       = 7&lt;/P&gt;&lt;P&gt;   SPOOL_ERROR                    = 8&lt;/P&gt;&lt;P&gt;   OTHERS                         = 9&lt;/P&gt;&lt;P&gt;          .&lt;/P&gt;&lt;P&gt;IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;write:/ 'ERROR IN HEADER'.&lt;/P&gt;&lt;P&gt;&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;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;  CODEPAGE                       = 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;&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;  CODEPAGE                       = 5&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  OTHERS                         = 6&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          .&lt;/P&gt;&lt;P&gt;1.open_form and Start form &lt;/P&gt;&lt;P&gt; 2.end_form and Close_form. &lt;/P&gt;&lt;P&gt;whether all 4 modules are required in the driver pgm . &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Open_form =&amp;gt; It assign the form and printer, It should be first. &lt;/P&gt;&lt;P&gt;Start_form =&amp;gt;  It start Writing mode. You can use write_form  in loop to write more than one lines befor End_form.  &lt;/P&gt;&lt;P&gt;End_form =&amp;gt; It end writing mode of current page and will require to start again through Start_form. &lt;/P&gt;&lt;P&gt;Close_form=&amp;gt; it end the Form. After this you can not start again for created file. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I hope it will solve your problem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Reward points&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Edited by: jeevitha on Apr 25, 2008 11:40 AM&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 25 Apr 2008 06:09:37 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-04-25T06:09:37Z</dc:date>
    <item>
      <title>Write_form invalid</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/write-form-invalid/m-p/3779348#M909351</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Gurus,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am trying to execute the SO smartform and when i do that i get the error from the program that"write_form invali,start_form missing".&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am attaching the program belwo, please tell me the required changes. Thank You:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             Print of an order confirmation by SAPscript&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;REPORT ZZ_RVADOR01 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;INCLUDE RVADTABL.&lt;/P&gt;&lt;P&gt;INCLUDE ZZ_RVDIREKT.                   "COPY OF STANDARD INCLUDE&lt;/P&gt;&lt;P&gt;INCLUDE ZZ_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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;data for access to central address maintenance&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;INCLUDE ZZ_SDZAVDAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;&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 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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM PROCESSING                                               *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      ........                                                      *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM 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;  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;  PERFORM CALL_SMARTFORM.&lt;/P&gt;&lt;P&gt;  CHECK RETCODE = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***********************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      S U B R O U T I N E S                                         *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;***********************************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM ALTERNATIVE_ITEM                                         *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      A text is printed, if the item is an alternative item.        *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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 'START_FORM'&lt;/P&gt;&lt;P&gt;   EXPORTING&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    ARCHIVE_INDEX          =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     FORM                   =  LAYTYPE'ZZ_SOC'&lt;/P&gt;&lt;UL&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;/UL&gt;&lt;P&gt; EXCEPTIONS&lt;/P&gt;&lt;P&gt;     FORM                   = 1&lt;/P&gt;&lt;P&gt;     FORMAT                 = 2&lt;/P&gt;&lt;P&gt;     UNENDED                = 3&lt;/P&gt;&lt;P&gt;     UNOPENED               = 4&lt;/P&gt;&lt;P&gt;     UNUSED                 = 5&lt;/P&gt;&lt;P&gt;     SPOOL_ERROR            = 6&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    CODEPAGE               = 7&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    OTHERS                 = 8&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;  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.&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;/UL&gt;&lt;P&gt; EXCEPTIONS&lt;/P&gt;&lt;P&gt;   UNOPENED                       = 1&lt;/P&gt;&lt;UL&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;  CODEPAGE                       = 5&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;   OTHERS                         = 2&lt;/P&gt;&lt;P&gt;          .&lt;/P&gt;&lt;P&gt;IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM CHECK_REPEAT                                             *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      A text is printed, if it is a repeat print for the document.  *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM DELIVERY_DATE                                            *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      If the delivery date in the item is different to the header   *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      date and there are no scheduled quantities, the delivery date *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      is printed in the item block.                                 *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM DIFFERENT_CONSIGNEE                                      *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      If the consignee in the item is different to the header con-  *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      signee, it is printed by this routine.                        *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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;  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;  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.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM DIFFERENT_REFERENCE_NO                                   *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      If the reference number in the item is different to the header*&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      reference number, it is printed by this routine.              *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM DIFFERENT_TERMS                                          *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      If the terms in the item are different to the header terms,   *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      they are printed by this routine.                             *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM 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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Print different validity-data for the position&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Notice-rules for the positions.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM END_PRINT                                                *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                                                    *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Pricing data init&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM FORM_CLOSE                                               *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      End of printing the form                                      *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;bei Druckansicht im Anlegen gibt es noch keine Belegnummer - für die&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Anzeige temporäre Belegnummer übergeben und danach zurücknehmen, damit&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Folgeverarbeitung noch funktioniert&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM FORM_OPEN                                                *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Start of printing the form                                    *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  US_SCREEN  Output on screen                                   *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 ' ' = printer                                      *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                 'X' = screen                                       *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  US_COUNTRY County for telecommunication and SET COUNTRY       *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Send confirmation to user who send the document.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF  nast-nacha EQ '2'.&lt;/P&gt;&lt;P&gt;    nast-usnam = vbdka-ernam.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; get fax country key&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM FORM_TITLE_PRINT                                         *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Printing of the form title depending of the field VBTYP       *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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;&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.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM GET_DATA                                                 *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      General provision of data for the form                        *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;fill address key --&amp;gt; necessary for emails&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Fetch servicecontract-data and notice-data for head and position.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM GET_ITEM_BILLING_SCHEDULES                               *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      In this routine the billing schedules are fetched from the    *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      database.                                                     *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  ITEM_BILLING_SCHEDULES_PRINT&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      This routine prints the billing shedules of a salesdocument    *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      position.                                                      *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM  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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Output of the following printlines&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF NOT FPLTDR-PERIO IS INITIAL.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    periodische Fakturen&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_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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    bei periodischen nur eine Zeile&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      EXIT.&lt;/P&gt;&lt;P&gt;    ELSEIF FPLTDR-FAREG CA '14'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    prozentuale Teilfakturierung&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    wertmäßige  Teilfakturierung&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Schlußrechnung&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM.&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;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      FORM  GET_ITEM_ADDIS&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Additionals data are fetched from database&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM 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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          FI_LANGUAGE           = SY-LANGU&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM GET_ITEM_CHARACTERISTICS                                 *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      In this routine the configuration data item is fetched from   *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      the database.                                                 *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Beschreibung der Merkmale wegen Objektmerkmalen auf sdcom-vkond holen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;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;        KEY_DATE                     = SY-DATUM&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        BYPASSING_BUFFER             = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        WITH_PREPARED_PATTERN        = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        I_AENNR                      = ' '&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;        AMBIGUOUS_OBJ_CHARACTERISTIC =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Preisfindungsmerkmale / Merkmale auf VCSD_UPDATE herausnehmen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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 &amp;lt;&amp;gt; 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.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM GET_ITEM_PRICES                                          *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      In this routine the price data for the item is fetched from   *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      the database.                                                 *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM GET_HEADER_PRICES                                        *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      In this routine the price data for the header is fetched from *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      the database.                                                 *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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;&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.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  HEADER_DATA_PRINT&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Printing of header data like terms, weights ....               *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM HEADER_PRICE_PRINT                                       *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Printout of the header prices                                 *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM HEADER_TEXT_PRINT                                        *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Printout of the headertexts                                   *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM ITEM_BILLING_CORRECTION_HEADER                          *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      In the case of a billing correction, the header of the item   *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      debit memo / credit memo position, is printed by this routine *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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;&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Gutschriftsanforderung&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Lastschriftssanforderung&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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.&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  ITEM_ADDIS_PRINT&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Printout of item additionals&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM 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;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM ITEM_CHARACERISTICS_PRINT                                *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Printout of the item characteristics -&amp;gt; configuration         *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM ITEM_DELIVERY_CONFIRMATION                               *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      If the delivery date is not confirmed, a text is printed      *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM ITEM_AGREED_DELIVERY_TIME                                *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      If an agreed delivery time and the corresponding text is      *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      available on item level, the text is printed                  *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM ITEM_PRICE_PRINT                                         *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Printout of the item prices                                   *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM ITEM_PRINT                                               *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Printout of the items                                         *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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;  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;  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;  LOOP AT TVBDPA.&lt;/P&gt;&lt;P&gt;    VBDPA = TVBDPA.&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;    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;        PERFORM ITEM_PRICE_PRINT.&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;        PERFORM ITEM_SERIALS_PRINT.&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;  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.&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM ITEM_REFERENCE_BILLING                                  *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      If the reference number of the billing is printed by this     *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      routine. In case (debit memo / credit memo)                   *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM ITEM_REJECTED                                            *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      A text is printed, if the item is rejected                    *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM MAIN_ITEM                                                *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      A text is printed, if the item is a main item                 *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM ITEM_TEXT_PRINT                                          *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Printout of the item texts                                    *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM PROTOCOL_UPDATE                                          *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      The messages are collected for the processing protocol.       *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM SCHEDULE_HEADER                                          *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      If there are schedules in the item, then here is printed the  *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      header for the schedules.                                     *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM SCHEDULE_PRINT                                           *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      This routine prints the schedules for an item.                *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM SENDER                                                   *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      This routine determines the address of the sender (Table VKO) *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; SELECT SINGLE * FROM TVBUR  WHERE VKBUR = VBDKA-VKBUR.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IF SY-SUBRC NE 0.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   SYST-MSGID = 'VN'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   SYST-MSGNO = '203'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   SYST-MSGTY = 'E'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   SYST-MSGV1 = 'TVBUR'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   SYST-MSGV2 = SYST-SUBRC.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   PERFORM PROTOCOL_UPDATE.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM TVBDPAU_CREATE                                           *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      This routine is creating a table which includes the subitem-  *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      numbers                                                       *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Append work area to internal table TVBDPAU&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Start filling new work area&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM VALIDITY_PRINT                                           *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      This routine is printing the period of validity for offers    *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      and contracts                                                 *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;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.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  HEADER_NOTICE_PRINT&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      This routine prints the notice-rules of the contract-header.   *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Kündigungsbedingungen auf Kopfebene.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    For the first time a headertext is printed.&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 = '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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If notice-rules exists a empty line is printed.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  GET_ITEM_SERIALS&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      This routine give back the serialnumbers of salesdocument      *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      position. The numbers are processed as print-lines in the      *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      table KOMSER_PRINT.                                            *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  US_VBELN  Salesdocument&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  US_POSNR  Position of the salesdocument&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM 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;&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;beim Anlegen ist Belegnummer leer - deshalb Dummy-Belegnummer&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Read the Serialnumbers of a Position.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  REFRESH: TKOMSER,&lt;/P&gt;&lt;P&gt;           TKOMSER_PRINT.&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;       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;  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;&lt;/P&gt;&lt;P&gt;  CHECK SY-SUBRC EQ 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Serialnummern übergeben&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Process the stringtable for Printing.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;&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;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  ITEM_SERIALS_PRINT&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      This routine prints the serialnumbers of a salesdocument       *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      position.                                                      *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM 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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Output of the Headerline&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_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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Output of the following printlines&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_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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If serialnumbers exists a empty line is printed.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  HEADER_INTER_PRINT&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Prints the message that if other condition for the positions   *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      exists they are printed there.                                 *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&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;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  GET_CONTROLL_DATA&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Checks if servicedata for the header exists.                   *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Checks if servicedata for the position exists.                 *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Checks if noticedata for the header exists.                    *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Checks if noticedata for the position exists.                  *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM 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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Exists servicedata for the header?&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Exists servicedata for the position?&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Exists noticedata for the header?&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Exists noticedata for the position?&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  HEADER_SERV_PRINT&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Output of the validity of a service-contract.                  *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM 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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Output of the validity.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  get_fax_land&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_NAST_TLAND  text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;form 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;&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;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  CALL_SMARTFORM&lt;/P&gt;&lt;P&gt;*&amp;amp;----&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; --&amp;gt;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*----&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;FORM CALL_SMARTFORM .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA : l_fm_name TYPE rs38l_fnam,&lt;/P&gt;&lt;P&gt;         l_arcindex type toa_dara,&lt;/P&gt;&lt;P&gt;         l_arctab type  tsfdara,&lt;/P&gt;&lt;P&gt;         l_arcparam type arc_params,&lt;/P&gt;&lt;P&gt;         l_control type ssfctrlop,&lt;/P&gt;&lt;P&gt;         l_receipt type swotobjid,&lt;/P&gt;&lt;P&gt;         l_sender  type swotobjid,&lt;/P&gt;&lt;P&gt;         l_output type ssfcompop,&lt;/P&gt;&lt;P&gt;         l_vbtyp type vbdka-vbtyp,&lt;/P&gt;&lt;P&gt;         l_job_info type ssfcrescl,&lt;/P&gt;&lt;P&gt;         tvbdka type vbdka occurs 1 with header line,&lt;/P&gt;&lt;P&gt;         tnast like nast occurs 1 with header line,&lt;/P&gt;&lt;P&gt;         taddr_key like addr_key occurs 1 with header line.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        tvbdpa like vbdpa occurs 1 with header line.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      formname           = tnapr-sform&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      fm_name            = l_fm_name&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      no_form            = 1&lt;/P&gt;&lt;P&gt;      no_function_module = 2&lt;/P&gt;&lt;P&gt;      OTHERS             = 3.&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;*Call the smartform dynamically&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION l_fm_name&lt;/P&gt;&lt;P&gt;  EXPORTING&lt;/P&gt;&lt;P&gt;    ARCHIVE_INDEX             = l_arcindex&lt;/P&gt;&lt;P&gt;   ARCHIVE_INDEX_TAB          = l_arctab&lt;/P&gt;&lt;P&gt;   ARCHIVE_PARAMETERS         = l_arcparam&lt;/P&gt;&lt;P&gt;   CONTROL_PARAMETERS         = l_control&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  MAIL_APPL_OBJ              =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   MAIL_RECIPIENT             = l_sender&lt;/P&gt;&lt;P&gt;   MAIL_SENDER                = l_receipt&lt;/P&gt;&lt;P&gt;   OUTPUT_OPTIONS             = l_output&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  USER_SETTINGS              = 'X'&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    ZVBDKA                     = tvbdka&lt;/P&gt;&lt;P&gt;    ZNAST                      = tnast&lt;/P&gt;&lt;P&gt;    ZADDRES                    = taddr_key&lt;/P&gt;&lt;P&gt; IMPORTING&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  DOCUMENT_OUTPUT_INFO       =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;   JOB_OUTPUT_INFO            = l_job_info&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  JOB_OUTPUT_OPTIONS         =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  TABLES&lt;/P&gt;&lt;P&gt;    ZTVBDPA                    = tvbdpa&lt;/P&gt;&lt;P&gt; EXCEPTIONS&lt;/P&gt;&lt;P&gt;   FORMATTING_ERROR           = 1&lt;/P&gt;&lt;P&gt;   INTERNAL_ERROR             = 2&lt;/P&gt;&lt;P&gt;   SEND_ERROR                 = 3&lt;/P&gt;&lt;P&gt;   USER_CANCELED              = 4&lt;/P&gt;&lt;P&gt;   OTHERS                     = 5&lt;/P&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;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " CALL_SMARTFORM&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks and Regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Rakesh&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 25 Apr 2008 05:10:54 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/write-form-invalid/m-p/3779348#M909351</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-04-25T05:10:54Z</dc:date>
    </item>
    <item>
      <title>Re: Write_form invalid</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/write-form-invalid/m-p/3779349#M909352</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;r you developiong smartform or sap script.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;in smartforms open_form,close_form are not available.&lt;/P&gt;&lt;P&gt;system will generate function module after we have to call in print program that's it.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;but in case of scripts your code is correct.&lt;/P&gt;&lt;P&gt;check this point also.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;in your code open_form is missing and &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;in write_form you didn't mention window name  and place where it has to display.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;see below it is the flow of calling function modules in sap script program.&lt;/P&gt;&lt;P&gt;&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                              = 'ZSCRIPT1'&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;  SPONUMIV                          =&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;/UL&gt;&lt;P&gt; EXCEPTIONS&lt;/P&gt;&lt;P&gt;   CANCELED                          = 1&lt;/P&gt;&lt;P&gt;   DEVICE                            = 2&lt;/P&gt;&lt;P&gt;   FORM                              = 3&lt;/P&gt;&lt;P&gt;   OPTIONS                           = 4&lt;/P&gt;&lt;P&gt;   UNCLOSED                          = 5&lt;/P&gt;&lt;P&gt;   MAIL_OPTIONS                      = 6&lt;/P&gt;&lt;P&gt;   ARCHIVE_ERROR                     = 7&lt;/P&gt;&lt;P&gt;   INVALID_FAX_NUMBER                = 8&lt;/P&gt;&lt;P&gt;   MORE_PARAMS_NEEDED_IN_BATCH       = 9&lt;/P&gt;&lt;P&gt;   SPOOL_ERROR                       = 10&lt;/P&gt;&lt;P&gt;   CODEPAGE                          = 11&lt;/P&gt;&lt;P&gt;   OTHERS                            = 12&lt;/P&gt;&lt;P&gt;          .&lt;/P&gt;&lt;P&gt;IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt; MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;P&gt;         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'START_FORM'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  ARCHIVE_INDEX          =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;   FORM                   = 'ZFORM1'&lt;/P&gt;&lt;UL&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              = 'X'&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;   PROGRAM                = 'ZSCRIPT1'&lt;/P&gt;&lt;UL&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;  CODEPAGE               = 7&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  OTHERS                 = 8&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;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt; EXPORTING&lt;/P&gt;&lt;UL&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;/UL&gt;&lt;P&gt;   WINDOW                         = 'HEADER'&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;  PENDING_LINES                  =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt; EXCEPTIONS&lt;/P&gt;&lt;P&gt;   ELEMENT                        = 1&lt;/P&gt;&lt;P&gt;   FUNCTION                       = 2&lt;/P&gt;&lt;P&gt;   TYPE                           = 3&lt;/P&gt;&lt;P&gt;   UNOPENED                       = 4&lt;/P&gt;&lt;P&gt;   UNSTARTED                      = 5&lt;/P&gt;&lt;P&gt;   WINDOW                         = 6&lt;/P&gt;&lt;P&gt;   BAD_PAGEFORMAT_FOR_PRINT       = 7&lt;/P&gt;&lt;P&gt;   SPOOL_ERROR                    = 8&lt;/P&gt;&lt;P&gt;   OTHERS                         = 9&lt;/P&gt;&lt;P&gt;          .&lt;/P&gt;&lt;P&gt;IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;write:/ 'ERROR IN HEADER'.&lt;/P&gt;&lt;P&gt;&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;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt; EXPORTING&lt;/P&gt;&lt;UL&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;/UL&gt;&lt;P&gt;   WINDOW                         = 'MAIN'&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;  PENDING_LINES                  =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt; EXCEPTIONS&lt;/P&gt;&lt;P&gt;   ELEMENT                        = 1&lt;/P&gt;&lt;P&gt;   FUNCTION                       = 2&lt;/P&gt;&lt;P&gt;   TYPE                           = 3&lt;/P&gt;&lt;P&gt;   UNOPENED                       = 4&lt;/P&gt;&lt;P&gt;   UNSTARTED                      = 5&lt;/P&gt;&lt;P&gt;   WINDOW                         = 6&lt;/P&gt;&lt;P&gt;   BAD_PAGEFORMAT_FOR_PRINT       = 7&lt;/P&gt;&lt;P&gt;   SPOOL_ERROR                    = 8&lt;/P&gt;&lt;P&gt;   OTHERS                         = 9&lt;/P&gt;&lt;P&gt;          .&lt;/P&gt;&lt;P&gt;IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;write:/ 'ERROR IN HEADER'.&lt;/P&gt;&lt;P&gt;&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;CALL FUNCTION 'WRITE_FORM'&lt;/P&gt;&lt;P&gt; EXPORTING&lt;/P&gt;&lt;UL&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;/UL&gt;&lt;P&gt;   WINDOW                         = 'FOOTER'&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;  PENDING_LINES                  =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt; EXCEPTIONS&lt;/P&gt;&lt;P&gt;   ELEMENT                        = 1&lt;/P&gt;&lt;P&gt;   FUNCTION                       = 2&lt;/P&gt;&lt;P&gt;   TYPE                           = 3&lt;/P&gt;&lt;P&gt;   UNOPENED                       = 4&lt;/P&gt;&lt;P&gt;   UNSTARTED                      = 5&lt;/P&gt;&lt;P&gt;   WINDOW                         = 6&lt;/P&gt;&lt;P&gt;   BAD_PAGEFORMAT_FOR_PRINT       = 7&lt;/P&gt;&lt;P&gt;   SPOOL_ERROR                    = 8&lt;/P&gt;&lt;P&gt;   OTHERS                         = 9&lt;/P&gt;&lt;P&gt;          .&lt;/P&gt;&lt;P&gt;IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;write:/ 'ERROR IN HEADER'.&lt;/P&gt;&lt;P&gt;&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;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;  CODEPAGE                       = 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;&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;  CODEPAGE                       = 5&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  OTHERS                         = 6&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          .&lt;/P&gt;&lt;P&gt;1.open_form and Start form &lt;/P&gt;&lt;P&gt; 2.end_form and Close_form. &lt;/P&gt;&lt;P&gt;whether all 4 modules are required in the driver pgm . &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Open_form =&amp;gt; It assign the form and printer, It should be first. &lt;/P&gt;&lt;P&gt;Start_form =&amp;gt;  It start Writing mode. You can use write_form  in loop to write more than one lines befor End_form.  &lt;/P&gt;&lt;P&gt;End_form =&amp;gt; It end writing mode of current page and will require to start again through Start_form. &lt;/P&gt;&lt;P&gt;Close_form=&amp;gt; it end the Form. After this you can not start again for created file. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I hope it will solve your problem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Reward points&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Edited by: jeevitha on Apr 25, 2008 11:40 AM&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 25 Apr 2008 06:09:37 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/write-form-invalid/m-p/3779349#M909352</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-04-25T06:09:37Z</dc:date>
    </item>
  </channel>
</rss>

