<?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: syntax error in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/syntax-error/m-p/1672536#M297064</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;In the last FORM defintion, you need to specify the structure of P_W_DATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
*&amp;amp;-------------------------------------------------*
*&amp;amp; Form pre_process_record
*&amp;amp;-------------------------------------------------*
* text
*--------------------------------------------------*
* --&amp;gt;P_W_DATAIN text
* &amp;lt;--P_W_DATA text
*--------------------------------------------------*
FORM pre_process_record USING P_W_DATAIN 
CHANGING P_W_DATA LIKE w_data.


move p_w_datain to p_w_data-bukrs.

ENDFORM. " pre_process_record
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 16 Nov 2006 14:42:08 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2006-11-16T14:42:08Z</dc:date>
    <item>
      <title>syntax error</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/syntax-error/m-p/1672535#M297063</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi abappers&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am using the following code in my program.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i  m getting a syntax error that i do not understand? can any body help me out with this.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Narendiran Rathinavelu&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Report  ZTEST_RECUPLOAD&lt;/P&gt;&lt;P&gt;*&amp;amp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;&lt;/P&gt;&lt;P&gt;*&amp;amp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT  ZTEST_RECUPLOAD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*include bdcrecx1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;******************&lt;STRONG&gt;Selection screen&lt;/STRONG&gt;************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK 1 WITH FRAME TITLE TEXT-T01 .&lt;/P&gt;&lt;P&gt;PARAMETERS P_FILE   TYPE RLGRAP-FILENAME OBLIGATORY.&lt;/P&gt;&lt;P&gt;PARAMETERS P_SESSN  TYPE APQI-GROUPID DEFAULT 'RECURRING'.&lt;/P&gt;&lt;P&gt;PARAMETERS P_SESSN2 TYPE APQI-GROUPID DEFAULT 'RECURRING_E'.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;********************&lt;STRONG&gt;Type declaration&lt;/STRONG&gt;**********************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*type for data input table&lt;/P&gt;&lt;P&gt;TYPES : BEGIN OF TY_DATA,&lt;/P&gt;&lt;P&gt;        BUKRS    TYPE T001-BUKRS,         "Company code&lt;/P&gt;&lt;P&gt;        BLART    TYPE BKPF-BLART,         "Document type&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       BUDAT    TYPE BKPF-BUDAT,         "Posting date&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        DBBDT    TYPE BKDF-DBBDT,         "First run&lt;/P&gt;&lt;P&gt;        DBATR    TYPE BKDF-DBATR,         "Next run&lt;/P&gt;&lt;P&gt;        DBEDT    TYPE BKDF-DBEDT,         "last run&lt;/P&gt;&lt;P&gt;        DBMON    TYPE BKDF-DBMON,         "Run frequency&lt;/P&gt;&lt;P&gt;        DBTAG    TYPE BKDF-DBTAG,         "Run date&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       DBZHL    TYPE BKDF-DBZHL,         "no of runs&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        XBLNR    TYPE BKPF-XBLNR,         "reference(site)&lt;/P&gt;&lt;P&gt;        BKTXT    TYPE BKPF-BKTXT,         "document header data&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       USNAM    TYPE BKPF-USNAM,         "User name&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       CPUDT    TYPE BKPF-CPUDT,         "Entry date&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        BSCHL_1  TYPE BSEG-BSCHL,         "Posting key 1 item&lt;/P&gt;&lt;P&gt;        HKONT_1  TYPE BSEG-HKONT,         "Account 1 item&lt;/P&gt;&lt;P&gt;        DESC_1   TYPE CHAR40,             "Description vendor/GL 1 item&lt;/P&gt;&lt;P&gt;        MWSKZ_1  TYPE BSEG-MWSKZ,         "Tax code 1 item&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       MWSTS1_1 TYPE BSEG-MWSTS,         "Tax Amount 1 item&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        MWSTS2_1 TYPE BSEG-MWSTS,         "Amount is local currency 1 item&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       MWSTS3_1 TYPE BSEG-MWSTS,         "Amount is foreign currency 1 item&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        SGTXT_1  TYPE BSEG-SGTXT,         "Item text 1 item&lt;/P&gt;&lt;P&gt;        ZUONR_1  TYPE BSEG-ZUONR,         "Assignment 1 item&lt;/P&gt;&lt;P&gt;        BSCHL_2  TYPE BSEG-BSCHL,         "Posting key 2 item&lt;/P&gt;&lt;P&gt;        HKONT_2  TYPE BSEG-HKONT,         "Account 2 item&lt;/P&gt;&lt;P&gt;        DESC_2   TYPE CHAR40,             "Description vendor/GL 2 item&lt;/P&gt;&lt;P&gt;        MWSKZ_2  TYPE BSEG-MWSKZ,         "Tax code 2 item&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;       MWSTS1_2 TYPE BSEG-MWSTS,         "Tax Amount 2 item&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;        MWSTS2_2 TYPE BSEG-MWSTS,         "Amount is local currency 2 item&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       MWSTS3_2 TYPE BSEG-MWSTS,         "Amount is foreign currency 2 item&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        KOSTL    TYPE COBL-KOSTL,         "Cost center&lt;/P&gt;&lt;P&gt;        AUFNR    TYPE COBL-AUFNR,         "Internal order number&lt;/P&gt;&lt;P&gt;        SGTXT_2  TYPE BSEG-SGTXT,         "Item text 2 item&lt;/P&gt;&lt;P&gt;        ZUONR_2  TYPE BSEG-ZUONR,         "Assignment 2 item&lt;/P&gt;&lt;P&gt;      END OF TY_DATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*type for data error table&lt;/P&gt;&lt;P&gt;TYPES : BEGIN OF TY_ERROR,&lt;/P&gt;&lt;P&gt;         BUKRS    TYPE T001-BUKRS,         "Company code&lt;/P&gt;&lt;P&gt;        BLART    TYPE BKPF-BLART,         "Document type&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       BUDAT    TYPE BKPF-BUDAT,         "Posting date&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        DBBDT    TYPE BKDF-DBBDT,         "First run&lt;/P&gt;&lt;P&gt;        DBATR    TYPE BKDF-DBATR,         "Next run&lt;/P&gt;&lt;P&gt;        DBEDT    TYPE BKDF-DBEDT,         "last run&lt;/P&gt;&lt;P&gt;        DBMON    TYPE BKDF-DBMON,         "Run frequency&lt;/P&gt;&lt;P&gt;        DBTAG    TYPE BKDF-DBTAG,         "Run date&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       DBZHL    TYPE BKDF-DBZHL,         "no of runs&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        XBLNR    TYPE BKPF-XBLNR,         "reference(site)&lt;/P&gt;&lt;P&gt;        BKTXT    TYPE BKPF-BKTXT,         "document header data&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       USNAM    TYPE BKPF-USNAM,         "User name&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       CPUDT    TYPE BKPF-CPUDT,         "Entry date&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        BSCHL_1  TYPE BSEG-BSCHL,         "Posting key 1 item&lt;/P&gt;&lt;P&gt;        HKONT_1  TYPE BSEG-HKONT,         "Account 1 item&lt;/P&gt;&lt;P&gt;        DESC_1   TYPE CHAR40,             "Description vendor/GL 1 item&lt;/P&gt;&lt;P&gt;        MWSKZ_1  TYPE BSEG-MWSKZ,         "Tax code 1 item&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       MWSTS1_1 TYPE BSEG-MWSTS,         "Tax Amount 1 item&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        MWSTS2_1 TYPE BSEG-MWSTS,         "Amount is local currency 1 item&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       MWSTS3_1 TYPE BSEG-MWSTS,         "Amount is foreign currency 1 item&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        SGTXT_1  TYPE BSEG-SGTXT,         "Item text 1 item&lt;/P&gt;&lt;P&gt;        ZUONR_1  TYPE BSEG-ZUONR,         "Assignment 1 item&lt;/P&gt;&lt;P&gt;        BSCHL_2  TYPE BSEG-BSCHL,         "Posting key 2 item&lt;/P&gt;&lt;P&gt;        HKONT_2  TYPE BSEG-HKONT,         "Account 2 item&lt;/P&gt;&lt;P&gt;        DESC_2   TYPE CHAR40,             "Description vendor/GL 2 item&lt;/P&gt;&lt;P&gt;        MWSKZ_2  TYPE BSEG-MWSKZ,         "Tax code 2 item&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       MWSTS1_2 TYPE BSEG-MWSTS,         "Tax Amount 2 item&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        MWSTS2_2 TYPE BSEG-MWSTS,         "Amount is local currency 2 item&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       MWSTS3_2 TYPE BSEG-MWSTS,         "Amount is foreign currency 2 item&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        KOSTL    TYPE COBL-KOSTL,         "Cost center&lt;/P&gt;&lt;P&gt;        AUFNR    TYPE COBL-AUFNR,         "Internal order number&lt;/P&gt;&lt;P&gt;        SGTXT_2  TYPE BSEG-SGTXT,         "Item text 2 item&lt;/P&gt;&lt;P&gt;        ZUONR_2  TYPE BSEG-ZUONR,         "Assignment 2 item&lt;/P&gt;&lt;P&gt;      END OF TY_ERROR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;********************&lt;STRONG&gt;Data declaration&lt;/STRONG&gt;***********************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : T_DATA TYPE TABLE OF TY_DATA,   "Table to upload correct entries&lt;/P&gt;&lt;P&gt;       T_ERROR TYPE TABLE OF TY_ERROR. "Table to upload error data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : W_DATA TYPE TY_DATA,            "workarea for t_data&lt;/P&gt;&lt;P&gt;       W_ERROR TYPE TY_ERROR.          "workarea for t_error&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : T_BDCDATA TYPE TABLE OF BDCDATA,&lt;/P&gt;&lt;P&gt;       W_BDCDATA TYPE BDCDATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : T_SEL_FILE TYPE FILETABLE,&lt;/P&gt;&lt;P&gt;       W_RETURN_CODE TYPE I VALUE '0',&lt;/P&gt;&lt;P&gt;       W_SEL_FILE LIKE LINE OF T_SEL_FILE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : T_DATAIN TYPE TABLE OF TY_DATA,&lt;/P&gt;&lt;P&gt;       W_DATAIN TYPE string.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : W_FILE TYPE STRING.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;********************&lt;STRONG&gt;At Selection Screen&lt;/STRONG&gt;*********************************&lt;/P&gt;&lt;P&gt;*selection screen validations&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL METHOD CL_GUI_FRONTEND_SERVICES=&amp;gt;FILE_OPEN_DIALOG&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      WINDOW_TITLE            = 'Select File for upload'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   DEFAULT_EXTENSION       =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   DEFAULT_FILENAME        =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      FILE_FILTER             = '*.xls'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   WITH_ENCODING           =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   INITIAL_DIRECTORY       =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   MULTISELECTION          =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CHANGING&lt;/P&gt;&lt;P&gt;      FILE_TABLE              = T_SEL_FILE&lt;/P&gt;&lt;P&gt;      RC                      = W_RETURN_CODE&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   USER_ACTION             =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   FILE_ENCODING           =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      FILE_OPEN_DIALOG_FAILED = 1&lt;/P&gt;&lt;P&gt;      CNTL_ERROR              = 2&lt;/P&gt;&lt;P&gt;      ERROR_NO_GUI            = 3&lt;/P&gt;&lt;P&gt;      NOT_SUPPORTED_BY_GUI    = 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;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;  IF W_RETURN_CODE &amp;lt;&amp;gt; -1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    READ TABLE T_SEL_FILE INTO W_SEL_FILE INDEX 1.&lt;/P&gt;&lt;P&gt;    CLEAR P_FILE.&lt;/P&gt;&lt;P&gt;    MOVE W_SEL_FILE TO P_FILE.&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;*at selection screen&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON P_SESSN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF P_SESSN IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    P_SESSN = 'RECURRING'.&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;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON P_SESSN2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF P_SESSN2 IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    P_SESSN2 = 'RECURRING_E'.&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;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*********************Start of Selection ****************************&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  OPEN DATASET P_FILE FOR INPUT IN TEXT MODE ENCODING DEFAULT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*error message when file not found.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    MESSAGE 'File Not Found' TYPE 'E'.&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;&lt;/P&gt;&lt;P&gt;*********************************************************************&lt;/P&gt;&lt;P&gt;  DO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    READ DATASET P_FILE INTO w_datain.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC EQ 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      perform pre_process_record using w_datain&lt;/P&gt;&lt;P&gt;                                 changing w_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      PERFORM VALIDATE_DATA TABLES T_DATA&lt;/P&gt;&lt;P&gt;                                   T_ERROR&lt;/P&gt;&lt;P&gt;                            USING  W_DATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      EXIT.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDDO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLOSE DATASET P_FILE.&lt;/P&gt;&lt;P&gt;********************************************************************&lt;/P&gt;&lt;P&gt;*check if any error has occured.&lt;/P&gt;&lt;P&gt;  IF T_ERROR[] IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM FILL_BDC_TABLE TABLES T_ERROR&lt;/P&gt;&lt;P&gt;                                  T_BDCDATA&lt;/P&gt;&lt;P&gt;                           USING  P_SESSN2.&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;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Check if any records are present to be uploaded.&lt;/P&gt;&lt;P&gt;  IF T_DATA[] IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM FILL_BDC_TABLE TABLES T_DATA&lt;/P&gt;&lt;P&gt;                                  T_BDCDATA&lt;/P&gt;&lt;P&gt;                           USING  P_SESSN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    WRITE &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; 'No Correct Records were found to create session in SM35',&lt;/P&gt;&lt;P&gt;           / 'Please Check the File'.&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;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  validate_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Sub routine to check correctness of the uploaded data.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_T_DATA  table to upload correct entries&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_T_ERROR table to upload erroneous entries&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_W_DATA  current record&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM VALIDATE_DATA  TABLES   P_T_DATA STRUCTURE  W_DATA&lt;/P&gt;&lt;P&gt;                             P_T_ERROR STRUCTURE W_ERROR&lt;/P&gt;&lt;P&gt;                    USING    P_W_DATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA : L_W_LIFNR TYPE LFA1-LIFNR,&lt;/P&gt;&lt;P&gt;         L_W_SAKNR TYPE SKA1-SAKNR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA:  L_W_DATA  TYPE TY_DATA,&lt;/P&gt;&lt;P&gt;         L_W_ERROR TYPE TY_ERROR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  MOVE P_W_DATA TO L_W_DATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA : L_FG_ERROR TYPE C,&lt;/P&gt;&lt;P&gt;         L_W_DATE   TYPE SY-DATUM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CONSTANTS : C_X       TYPE C VALUE 'X',&lt;/P&gt;&lt;P&gt;              C_O2CA(4) TYPE C VALUE 'O2CA',&lt;/P&gt;&lt;P&gt;              C_ZK_1(2) TYPE C VALUE 'ZK',&lt;/P&gt;&lt;P&gt;              C_ZK_2(2) TYPE C VALUE 'zk',&lt;/P&gt;&lt;P&gt;              C_NUM(17) TYPE C VALUE '01234567890/.-, ',&lt;/P&gt;&lt;P&gt;              C_31(2)   TYPE C VALUE '31',&lt;/P&gt;&lt;P&gt;              C_40(2)   TYPE C VALUE '40'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  L_FG_ERROR = SPACE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*check document type is 'ZK'&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF NOT L_W_DATA-BLART NE C_ZK_1 OR&lt;/P&gt;&lt;P&gt;       L_W_DATA-BLART NE C_ZK_2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      L_FG_ERROR = C_X.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      EXIT.&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;&lt;/P&gt;&lt;P&gt;*check 1 item text fields are filled by numeric value.&lt;/P&gt;&lt;P&gt;    IF NOT L_W_DATA-SGTXT_1 CO C_NUM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      L_FG_ERROR = C_X.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      EXIT.&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;&lt;/P&gt;&lt;P&gt;*check 2 item text fields are filled by date.&lt;/P&gt;&lt;P&gt;    MOVE L_W_DATA-SGTXT_2 TO L_W_DATE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'DATE_CHECK_PLAUSIBILITY'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        DATE                      = L_W_DATE&lt;/P&gt;&lt;P&gt;      EXCEPTIONS&lt;/P&gt;&lt;P&gt;        PLAUSIBILITY_CHECK_FAILED = 1&lt;/P&gt;&lt;P&gt;        OTHERS                    = 2.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      L_FG_ERROR = C_X.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      EXIT.&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;&lt;/P&gt;&lt;P&gt;*check first posting key is '31'&lt;/P&gt;&lt;P&gt;    IF NOT L_W_DATA-BSCHL_1 EQ C_31.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      L_FG_ERROR = C_X.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      EXIT.&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;&lt;/P&gt;&lt;P&gt;*check second posting key is '40'&lt;/P&gt;&lt;P&gt;    IF NOT L_W_DATA-BSCHL_2 EQ C_40.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      L_FG_ERROR = C_X.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      EXIT.&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;*check valid Vendor&lt;/P&gt;&lt;P&gt;    SELECT SINGLE LIFNR FROM LFA1 INTO L_W_LIFNR&lt;/P&gt;&lt;P&gt;                        WHERE LIFNR = L_W_DATA-HKONT_1.&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;&lt;/P&gt;&lt;P&gt;      L_FG_ERROR = C_X.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      EXIT.&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;&lt;/P&gt;&lt;P&gt;*check valid G/L account.&lt;/P&gt;&lt;P&gt;    SELECT SINGLE SAKNR FROM SKA1 INTO L_W_SAKNR&lt;/P&gt;&lt;P&gt;                        WHERE KTOPL = C_O2CA AND&lt;/P&gt;&lt;P&gt;                              SAKNR = L_W_DATA-HKONT_2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      L_FG_ERROR = C_X.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      EXIT.&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;&lt;/P&gt;&lt;P&gt;*check 1 item assignment contains numeric value&lt;/P&gt;&lt;P&gt;    IF NOT L_W_DATA-ZUONR_1 CO C_NUM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      L_FG_ERROR = C_X.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      EXIT.&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;&lt;/P&gt;&lt;P&gt;*check 2 item assigment contains date value&lt;/P&gt;&lt;P&gt;    MOVE L_W_DATA-ZUONR_2 TO L_W_DATE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'DATE_CHECK_PLAUSIBILITY'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        DATE                      = L_W_DATE&lt;/P&gt;&lt;P&gt;      EXCEPTIONS&lt;/P&gt;&lt;P&gt;        PLAUSIBILITY_CHECK_FAILED = 1&lt;/P&gt;&lt;P&gt;        OTHERS                    = 2.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      L_FG_ERROR = C_X.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      EXIT.&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;*check if no error has occured&lt;/P&gt;&lt;P&gt;    IF NOT L_FG_ERROR EQ C_X.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      EXIT.&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;  ENDDO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*check error flag and insert error text.&lt;/P&gt;&lt;P&gt;  CASE L_FG_ERROR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    WHEN C_X.                        "When error has occured.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      APPEND L_W_DATA TO P_T_ERROR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    WHEN OTHERS.                     "When no error has occured.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      APPEND L_W_DATA TO P_T_DATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " validate_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  download_error_log&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Sub routine to download the error log&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_T_ERROR  error log&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM DOWNLOAD_ERROR_LOG  TABLES   P_T_ERROR STRUCTURE W_ERROR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA : L_FILENAME TYPE STRING,&lt;/P&gt;&lt;P&gt;         L_PATH     TYPE STRING,&lt;/P&gt;&lt;P&gt;         L_FULLPATH TYPE STRING.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL METHOD CL_GUI_FRONTEND_SERVICES=&amp;gt;FILE_SAVE_DIALOG&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      WINDOW_TITLE         = 'Save the Error log'&lt;/P&gt;&lt;P&gt;    CHANGING&lt;/P&gt;&lt;P&gt;      FILENAME             = L_FILENAME&lt;/P&gt;&lt;P&gt;      PATH                 = L_PATH&lt;/P&gt;&lt;P&gt;      FULLPATH             = L_FULLPATH&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      CNTL_ERROR           = 1&lt;/P&gt;&lt;P&gt;      ERROR_NO_GUI         = 2&lt;/P&gt;&lt;P&gt;      NOT_SUPPORTED_BY_GUI = 3&lt;/P&gt;&lt;P&gt;      OTHERS               = 4.&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;  CHECK L_FULLPATH IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'GUI_DOWNLOAD'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      FILENAME                = L_FULLPATH&lt;/P&gt;&lt;P&gt;      FILETYPE                = 'ASC'&lt;/P&gt;&lt;P&gt;      WRITE_FIELD_SEPARATOR   = 'X'&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      DATA_TAB                = P_T_ERROR&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      FILE_WRITE_ERROR        = 1&lt;/P&gt;&lt;P&gt;      NO_BATCH                = 2&lt;/P&gt;&lt;P&gt;      GUI_REFUSE_FILETRANSFER = 3&lt;/P&gt;&lt;P&gt;      INVALID_TYPE            = 4&lt;/P&gt;&lt;P&gt;      NO_AUTHORITY            = 5&lt;/P&gt;&lt;P&gt;      UNKNOWN_ERROR           = 6&lt;/P&gt;&lt;P&gt;      HEADER_NOT_ALLOWED      = 7&lt;/P&gt;&lt;P&gt;      SEPARATOR_NOT_ALLOWED   = 8&lt;/P&gt;&lt;P&gt;      FILESIZE_NOT_ALLOWED    = 9&lt;/P&gt;&lt;P&gt;      HEADER_TOO_LONG         = 10&lt;/P&gt;&lt;P&gt;      DP_ERROR_CREATE         = 11&lt;/P&gt;&lt;P&gt;      DP_ERROR_SEND           = 12&lt;/P&gt;&lt;P&gt;      DP_ERROR_WRITE          = 13&lt;/P&gt;&lt;P&gt;      UNKNOWN_DP_ERROR        = 14&lt;/P&gt;&lt;P&gt;      ACCESS_DENIED           = 15&lt;/P&gt;&lt;P&gt;      DP_OUT_OF_MEMORY        = 16&lt;/P&gt;&lt;P&gt;      DISK_FULL               = 17&lt;/P&gt;&lt;P&gt;      DP_TIMEOUT              = 18&lt;/P&gt;&lt;P&gt;      FILE_NOT_FOUND          = 19&lt;/P&gt;&lt;P&gt;      DATAPROVIDER_EXCEPTION  = 20&lt;/P&gt;&lt;P&gt;      CONTROL_FLUSH_ERROR     = 21&lt;/P&gt;&lt;P&gt;      OTHERS                  = 22.&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;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " download_error_log&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  fill_bdc_table&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      bdc session is created in SM35&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_T_DATA     correct data&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_T_BDCDATA  bdcdata&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_P_SESSN    session name&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM FILL_BDC_TABLE  TABLES   P_T_DATA STRUCTURE W_DATA&lt;/P&gt;&lt;P&gt;                              P_T_BDCDATA STRUCTURE BDCDATA&lt;/P&gt;&lt;P&gt;                     USING    P_P_SESSN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA : L_W_DATA TYPE TY_DATA.    "workarea for t_data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CONSTANTS: C_EUR(3) TYPE C VALUE 'EUR'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*open batch&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM OPEN_GROUP USING P_P_SESSN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT P_T_DATA INTO L_W_DATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*clear the bdc table&lt;/P&gt;&lt;P&gt;    REFRESH P_T_BDCDATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*initial screen&lt;/P&gt;&lt;P&gt;    PERFORM BDC_DYNPRO TABLES P_T_BDCDATA&lt;/P&gt;&lt;P&gt;                       USING  'SAPMF05A' '0106'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM : BDC_FIELD TABLES P_T_BDCDATA USING 'BDC_CURSOR' 'BKPF-WAERS',&lt;/P&gt;&lt;P&gt;              BDC_FIELD TABLES P_T_BDCDATA USING 'BDC_OKCODE' '/00',            "enter&lt;/P&gt;&lt;P&gt;              BDC_FIELD TABLES P_T_BDCDATA USING 'BKPF-BUKRS' L_W_DATA-BUKRS,   "company code&lt;/P&gt;&lt;P&gt;              BDC_FIELD TABLES P_T_BDCDATA USING 'BKDF-DBBDT' L_W_DATA-DBBDT,   "first run on&lt;/P&gt;&lt;P&gt;              BDC_FIELD TABLES P_T_BDCDATA USING 'BKDF-DBATR' L_W_DATA-DBATR,   "next run on&lt;/P&gt;&lt;P&gt;              BDC_FIELD TABLES P_T_BDCDATA USING 'BKDF-DBEDT' L_W_DATA-DBEDT,   "last run on&lt;/P&gt;&lt;P&gt;              BDC_FIELD TABLES P_T_BDCDATA USING 'BKDF-DBMON' L_W_DATA-DBMON,   "run frequency&lt;/P&gt;&lt;P&gt;              BDC_FIELD TABLES P_T_BDCDATA USING 'BKDF-DBTAG' L_W_DATA-DBTAG,   "run date&lt;/P&gt;&lt;P&gt;              BDC_FIELD TABLES P_T_BDCDATA USING 'BKPF-BLART' L_W_DATA-BLART,   "document type&lt;/P&gt;&lt;P&gt;              BDC_FIELD TABLES P_T_BDCDATA USING 'BKPF-WAERS' C_EUR,            "currency&lt;/P&gt;&lt;P&gt;              BDC_FIELD TABLES P_T_BDCDATA USING 'BKPF-XBLNR' L_W_DATA-XBLNR,   "reference&lt;/P&gt;&lt;P&gt;              BDC_FIELD TABLES P_T_BDCDATA USING 'BKPF-BKTXT' L_W_DATA-BKTXT,   "document header data&lt;/P&gt;&lt;P&gt;              BDC_FIELD TABLES P_T_BDCDATA USING 'RF05A-NEWBS' L_W_DATA-BSCHL_1,"posting key&lt;/P&gt;&lt;P&gt;              BDC_FIELD TABLES P_T_BDCDATA USING 'RF05A-NEWKO' L_W_DATA-HKONT_1."account no&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*second screen (First line item)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM BDC_DYNPRO TABLES P_T_BDCDATA&lt;/P&gt;&lt;P&gt;                       USING 'SAPMF05A' '0302'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM : BDC_FIELD TABLES P_T_BDCDATA USING 'BDC_CURSOR' 'RF05A-NEWKO',&lt;/P&gt;&lt;P&gt;              BDC_FIELD TABLES P_T_BDCDATA USING 'BDC_OKCODE' '/00',              "enter&lt;/P&gt;&lt;P&gt;              BDC_FIELD TABLES P_T_BDCDATA USING 'BSEG-WRBTR' L_W_DATA-MWSTS2_1,  "amount in LC&lt;/P&gt;&lt;P&gt;              BDC_FIELD TABLES P_T_BDCDATA USING 'BSEG-MWSKZ' L_W_DATA-MWSKZ_1,   "tax code&lt;/P&gt;&lt;P&gt;              BDC_FIELD TABLES P_T_BDCDATA USING 'BSEG-ZUONR' L_W_DATA-ZUONR_1,   "assignment&lt;/P&gt;&lt;P&gt;              BDC_FIELD TABLES P_T_BDCDATA USING 'BSEG-SGTXT' L_W_DATA-SGTXT_1,   "item level text&lt;/P&gt;&lt;P&gt;              BDC_FIELD TABLES P_T_BDCDATA USING 'RF05A-NEWBS' L_W_DATA-BSCHL_2,  "posting key&lt;/P&gt;&lt;P&gt;              BDC_FIELD TABLES P_T_BDCDATA USING 'RF05A-NEWKO' L_W_DATA-HKONT_2.  "account no&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*third screen (Second line item)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM BDC_DYNPRO TABLES P_T_BDCDATA&lt;/P&gt;&lt;P&gt;                       USING 'SAPMF05A' '0300'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM : BDC_FIELD TABLES P_T_BDCDATA USING 'BDC_CURSOR' 'BSEG-EBELN',&lt;/P&gt;&lt;P&gt;              BDC_FIELD TABLES P_T_BDCDATA USING 'BDC_OKCODE' '=AB',              "overview button&lt;/P&gt;&lt;P&gt;              BDC_FIELD TABLES P_T_BDCDATA USING 'BSEG-WRBTR' L_W_DATA-MWSTS2_2,  "amount in LC&lt;/P&gt;&lt;P&gt;              BDC_FIELD TABLES P_T_BDCDATA USING 'BSEG-MWSKZ' L_W_DATA-MWSKZ_2,   "tax code&lt;/P&gt;&lt;P&gt;              BDC_FIELD TABLES P_T_BDCDATA USING 'BSEG-ZUONR' L_W_DATA-ZUONR_2,   "assigment&lt;/P&gt;&lt;P&gt;              BDC_FIELD TABLES P_T_BDCDATA USING 'BSEG-SGTXT' L_W_DATA-SGTXT_2.   "item text&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*fourth screen (pop up)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM BDC_DYNPRO TABLES P_T_BDCDATA&lt;/P&gt;&lt;P&gt;                       USING 'SAPLKACB' '0002'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM : BDC_FIELD TABLES P_T_BDCDATA USING 'BDC_CURSOR' 'COBL-KOSTL',&lt;/P&gt;&lt;P&gt;              BDC_FIELD TABLES P_T_BDCDATA USING 'BDC_OKCODE' '=ENTE',            "ok button&lt;/P&gt;&lt;P&gt;              BDC_FIELD TABLES P_T_BDCDATA USING 'COBL-KOSTL' L_W_DATA-KOSTL,     "cost center&lt;/P&gt;&lt;P&gt;              BDC_FIELD TABLES P_T_BDCDATA USING 'COBL-AUFNR' L_W_DATA-AUFNR.     "order number&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*fifth screen&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM BDC_FIELD TABLES P_T_BDCDATA&lt;/P&gt;&lt;P&gt;                      USING 'SAPMF05A' '0070'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM : BDC_FIELD TABLES P_T_BDCDATA USING 'BDC_CURSOR' 'RF05A-NEWBS',&lt;/P&gt;&lt;P&gt;              BDC_FIELD TABLES P_T_BDCDATA USING 'BDC_OKCODE' '=BU'.              "save document&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM BDC_INSERT TABLES P_T_BDCDATA&lt;/P&gt;&lt;P&gt;                        USING 'ZREC_ENTRY'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*close the batch.&lt;/P&gt;&lt;P&gt;  PERFORM CLOSE_GROUP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " fill_bdc_table&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  bdc_dynpro&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      bdc screen insert sub routine&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_T_BDCDATA  BDC table&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_PROGRAM    Program name&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_SCREEN     Screen no&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM BDC_DYNPRO  TABLES   P_T_BDCDATA STRUCTURE BDCDATA&lt;/P&gt;&lt;P&gt;                 USING    VALUE(P_PROGRAM)&lt;/P&gt;&lt;P&gt;                          VALUE(P_SCREEN).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CONSTANTS C_X TYPE C VALUE 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA L_W_BDCDATA TYPE BDCDATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  L_W_BDCDATA-PROGRAM = P_PROGRAM.&lt;/P&gt;&lt;P&gt;  L_W_BDCDATA-DYNPRO = P_SCREEN.&lt;/P&gt;&lt;P&gt;  L_W_BDCDATA-DYNBEGIN = C_X.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  APPEND L_W_BDCDATA TO P_T_BDCDATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " bdc_dynpro&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  bdc_field&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      bdc field screen routine&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_T_BDCDATA  BDC table&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_FIELD    Field name&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_VALUE      Value&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM BDC_FIELD  TABLES   P_T_BDCDATA STRUCTURE BDCDATA&lt;/P&gt;&lt;P&gt;                USING    VALUE(P_FIELD)&lt;/P&gt;&lt;P&gt;                         VALUE(P_VALUE).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA L_W_BDCDATA TYPE BDCDATA.     "Work area&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  L_W_BDCDATA-FNAM = P_FIELD.&lt;/P&gt;&lt;P&gt;  L_W_BDCDATA-FVAL = P_VALUE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  APPEND L_W_BDCDATA TO P_T_BDCDATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " bdc_field&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  open_group&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      bdc  open group in sm35&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_P_SESSN  session name&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM OPEN_GROUP  USING    P_P_SESSN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CONSTANTS C_X TYPE C VALUE 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'BDC_OPEN_GROUP'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      CLIENT              = SY-MANDT&lt;/P&gt;&lt;P&gt;      GROUP               = P_P_SESSN&lt;/P&gt;&lt;P&gt;      KEEP                = C_X&lt;/P&gt;&lt;P&gt;      USER                = SY-UNAME&lt;/P&gt;&lt;P&gt;      PROG                = SY-CPROG&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      CLIENT_INVALID      = 1&lt;/P&gt;&lt;P&gt;      DESTINATION_INVALID = 2&lt;/P&gt;&lt;P&gt;      GROUP_INVALID       = 3&lt;/P&gt;&lt;P&gt;      GROUP_IS_LOCKED     = 4&lt;/P&gt;&lt;P&gt;      HOLDDATE_INVALID    = 5&lt;/P&gt;&lt;P&gt;      INTERNAL_ERROR      = 6&lt;/P&gt;&lt;P&gt;      QUEUE_ERROR         = 7&lt;/P&gt;&lt;P&gt;      RUNNING             = 8&lt;/P&gt;&lt;P&gt;      SYSTEM_LOCK_ERROR   = 9&lt;/P&gt;&lt;P&gt;      USER_INVALID        = 10&lt;/P&gt;&lt;P&gt;      OTHERS              = 11.&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;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " open_group&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  bdc_insert&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      bdc insert in sm35&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_T_BDCDATA  bdcdata table&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_tcode      transaction&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM BDC_INSERT  TABLES   P_T_BDCDATA STRUCTURE BDCDATA&lt;/P&gt;&lt;P&gt;                 USING    VALUE(P_TCODE).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'BDC_INSERT'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      TCODE            = P_TCODE&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      DYNPROTAB        = P_T_BDCDATA&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      INTERNAL_ERROR   = 1&lt;/P&gt;&lt;P&gt;      NOT_OPEN         = 2&lt;/P&gt;&lt;P&gt;      QUEUE_ERROR      = 3&lt;/P&gt;&lt;P&gt;      TCODE_INVALID    = 4&lt;/P&gt;&lt;P&gt;      PRINTING_INVALID = 5&lt;/P&gt;&lt;P&gt;      POSTING_INVALID  = 6&lt;/P&gt;&lt;P&gt;      OTHERS           = 7.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;P&gt;            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " bdc_insert&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  close_group&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      bdc close group in sm35&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM CLOSE_GROUP .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'BDC_CLOSE_GROUP'&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      NOT_OPEN    = 1&lt;/P&gt;&lt;P&gt;      QUEUE_ERROR = 2&lt;/P&gt;&lt;P&gt;      OTHERS      = 3.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;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;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " close_group&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  pre_process_record&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_W_DATAIN  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     &amp;lt;--P_W_DATA  text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM pre_process_record  USING    P_W_DATAIN&lt;/P&gt;&lt;P&gt;                         CHANGING P_W_DATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;move p_w_datain to p_w_data-bukrs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " pre_process_record&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Nov 2006 14:34:10 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/syntax-error/m-p/1672535#M297063</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-11-16T14:34:10Z</dc:date>
    </item>
    <item>
      <title>Re: syntax error</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/syntax-error/m-p/1672536#M297064</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;In the last FORM defintion, you need to specify the structure of P_W_DATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
*&amp;amp;-------------------------------------------------*
*&amp;amp; Form pre_process_record
*&amp;amp;-------------------------------------------------*
* text
*--------------------------------------------------*
* --&amp;gt;P_W_DATAIN text
* &amp;lt;--P_W_DATA text
*--------------------------------------------------*
FORM pre_process_record USING P_W_DATAIN 
CHANGING P_W_DATA LIKE w_data.


move p_w_datain to p_w_data-bukrs.

ENDFORM. " pre_process_record
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Nov 2006 14:42:08 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/syntax-error/m-p/1672536#M297064</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-11-16T14:42:08Z</dc:date>
    </item>
    <item>
      <title>Re: syntax error</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/syntax-error/m-p/1672537#M297065</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;W_data is a structure , but its saying it is not a workarea.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Narendiran Rathinavelu&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Nov 2006 14:42:36 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/syntax-error/m-p/1672537#M297065</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-11-16T14:42:36Z</dc:date>
    </item>
    <item>
      <title>Re: syntax error</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/syntax-error/m-p/1672538#M297066</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Naren,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Let me know what syntax error is occured? &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Vinod.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Nov 2006 14:42:57 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/syntax-error/m-p/1672538#M297066</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-11-16T14:42:57Z</dc:date>
    </item>
    <item>
      <title>Re: syntax error</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/syntax-error/m-p/1672539#M297067</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I think the syntax error that you are referring to is coming from here, you need to specify the structure of P_W_DATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;form pre_process_record using p_w_datain
                     changing p_w_data structure w_data.


  move p_w_datain to p_w_data-bukrs.

endform. " pre_process_record&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Rich Heilman&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Nov 2006 14:45:41 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/syntax-error/m-p/1672539#M297067</guid>
      <dc:creator>RichHeilman</dc:creator>
      <dc:date>2006-11-16T14:45:41Z</dc:date>
    </item>
    <item>
      <title>Re: syntax error</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/syntax-error/m-p/1672540#M297068</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks it works&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Narendiran Rathinavelu&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Nov 2006 14:46:35 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/syntax-error/m-p/1672540#M297068</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-11-16T14:46:35Z</dc:date>
    </item>
    <item>
      <title>Re: syntax error</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/syntax-error/m-p/1672541#M297069</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;PRE&gt;&lt;CODE&gt;copy paste this code




*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Report ZTEST_RECUPLOAD
*&amp;amp;
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;
*&amp;amp;
*&amp;amp;---------------------------------------------------------------------*

REPORT ZTEST_RECUPLOAD.

*include bdcrecx1.

*******************Selection screen*************************************

SELECTION-SCREEN BEGIN OF BLOCK 1 WITH FRAME TITLE TEXT-T01 .
PARAMETERS P_FILE TYPE RLGRAP-FILENAME OBLIGATORY.
PARAMETERS P_SESSN TYPE APQI-GROUPID DEFAULT 'RECURRING'.
PARAMETERS P_SESSN2 TYPE APQI-GROUPID DEFAULT 'RECURRING_E'.
SELECTION-SCREEN END OF BLOCK 1.





*********************Type declaration***********************************

*type for data input table
TYPES : BEGIN OF TY_DATA,
BUKRS TYPE T001-BUKRS, "Company code
BLART TYPE BKPF-BLART, "Document type
* BUDAT TYPE BKPF-BUDAT, "Posting date
DBBDT TYPE BKDF-DBBDT, "First run
DBATR TYPE BKDF-DBATR, "Next run
DBEDT TYPE BKDF-DBEDT, "last run
DBMON TYPE BKDF-DBMON, "Run frequency
DBTAG TYPE BKDF-DBTAG, "Run date
* DBZHL TYPE BKDF-DBZHL, "no of runs
XBLNR TYPE BKPF-XBLNR, "reference(site)
BKTXT TYPE BKPF-BKTXT, "document header data
* USNAM TYPE BKPF-USNAM, "User name
* CPUDT TYPE BKPF-CPUDT, "Entry date
BSCHL_1 TYPE BSEG-BSCHL, "Posting key 1 item
HKONT_1 TYPE BSEG-HKONT, "Account 1 item
DESC_1 TYPE CHAR40, "Description vendor/GL 1 item
MWSKZ_1 TYPE BSEG-MWSKZ, "Tax code 1 item
* MWSTS1_1 TYPE BSEG-MWSTS, "Tax Amount 1 item
MWSTS2_1 TYPE BSEG-MWSTS, "Amount is local currency 1 item
* MWSTS3_1 TYPE BSEG-MWSTS, "Amount is foreign currency 1 item
SGTXT_1 TYPE BSEG-SGTXT, "Item text 1 item
ZUONR_1 TYPE BSEG-ZUONR, "Assignment 1 item
BSCHL_2 TYPE BSEG-BSCHL, "Posting key 2 item
HKONT_2 TYPE BSEG-HKONT, "Account 2 item
DESC_2 TYPE CHAR40, "Description vendor/GL 2 item
MWSKZ_2 TYPE BSEG-MWSKZ, "Tax code 2 item
** MWSTS1_2 TYPE BSEG-MWSTS, "Tax Amount 2 item
MWSTS2_2 TYPE BSEG-MWSTS, "Amount is local currency 2 item
* MWSTS3_2 TYPE BSEG-MWSTS, "Amount is foreign currency 2 item
KOSTL TYPE COBL-KOSTL, "Cost center
AUFNR TYPE COBL-AUFNR, "Internal order number
SGTXT_2 TYPE BSEG-SGTXT, "Item text 2 item
ZUONR_2 TYPE BSEG-ZUONR, "Assignment 2 item
END OF TY_DATA.

*type for data error table
TYPES : BEGIN OF TY_ERROR,
BUKRS TYPE T001-BUKRS, "Company code
BLART TYPE BKPF-BLART, "Document type
* BUDAT TYPE BKPF-BUDAT, "Posting date
DBBDT TYPE BKDF-DBBDT, "First run
DBATR TYPE BKDF-DBATR, "Next run
DBEDT TYPE BKDF-DBEDT, "last run
DBMON TYPE BKDF-DBMON, "Run frequency
DBTAG TYPE BKDF-DBTAG, "Run date
* DBZHL TYPE BKDF-DBZHL, "no of runs
XBLNR TYPE BKPF-XBLNR, "reference(site)
BKTXT TYPE BKPF-BKTXT, "document header data
* USNAM TYPE BKPF-USNAM, "User name
* CPUDT TYPE BKPF-CPUDT, "Entry date
BSCHL_1 TYPE BSEG-BSCHL, "Posting key 1 item
HKONT_1 TYPE BSEG-HKONT, "Account 1 item
DESC_1 TYPE CHAR40, "Description vendor/GL 1 item
MWSKZ_1 TYPE BSEG-MWSKZ, "Tax code 1 item
* MWSTS1_1 TYPE BSEG-MWSTS, "Tax Amount 1 item
MWSTS2_1 TYPE BSEG-MWSTS, "Amount is local currency 1 item
* MWSTS3_1 TYPE BSEG-MWSTS, "Amount is foreign currency 1 item
SGTXT_1 TYPE BSEG-SGTXT, "Item text 1 item
ZUONR_1 TYPE BSEG-ZUONR, "Assignment 1 item
BSCHL_2 TYPE BSEG-BSCHL, "Posting key 2 item
HKONT_2 TYPE BSEG-HKONT, "Account 2 item
DESC_2 TYPE CHAR40, "Description vendor/GL 2 item
MWSKZ_2 TYPE BSEG-MWSKZ, "Tax code 2 item
* MWSTS1_2 TYPE BSEG-MWSTS, "Tax Amount 2 item
MWSTS2_2 TYPE BSEG-MWSTS, "Amount is local currency 2 item
* MWSTS3_2 TYPE BSEG-MWSTS, "Amount is foreign currency 2 item
KOSTL TYPE COBL-KOSTL, "Cost center
AUFNR TYPE COBL-AUFNR, "Internal order number
SGTXT_2 TYPE BSEG-SGTXT, "Item text 2 item
ZUONR_2 TYPE BSEG-ZUONR, "Assignment 2 item
END OF TY_ERROR.



*********************Data declaration************************************

DATA : T_DATA TYPE TABLE OF TY_DATA, "Table to upload correct entries
T_ERROR TYPE TABLE OF TY_ERROR. "Table to upload error data

DATA : W_DATA type TY_DATA, "workarea for t_data
W_ERROR TYPE TY_ERROR. "workarea for t_error


DATA : T_BDCDATA TYPE TABLE OF BDCDATA,
W_BDCDATA TYPE BDCDATA.

DATA : T_SEL_FILE TYPE FILETABLE,
W_RETURN_CODE TYPE I VALUE '0',
W_SEL_FILE LIKE LINE OF T_SEL_FILE.


DATA : T_DATAIN TYPE TABLE OF TY_DATA,
W_DATAIN TYPE string.

DATA : W_FILE TYPE STRING.




*********************At Selection Screen**********************************
*selection screen validations
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.


CALL METHOD CL_GUI_FRONTEND_SERVICES=&amp;gt;FILE_OPEN_DIALOG
EXPORTING
WINDOW_TITLE = 'Select File for upload'
* DEFAULT_EXTENSION =
* DEFAULT_FILENAME =
FILE_FILTER = '*.xls'
* WITH_ENCODING =
* INITIAL_DIRECTORY =
* MULTISELECTION =
CHANGING
FILE_TABLE = T_SEL_FILE
RC = W_RETURN_CODE
* USER_ACTION =
* FILE_ENCODING =
EXCEPTIONS
FILE_OPEN_DIALOG_FAILED = 1
CNTL_ERROR = 2
ERROR_NO_GUI = 3
NOT_SUPPORTED_BY_GUI = 4
OTHERS = 5
.
IF SY-SUBRC &amp;lt;&amp;gt; 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

IF W_RETURN_CODE &amp;lt;&amp;gt; -1.

READ TABLE T_SEL_FILE INTO W_SEL_FILE INDEX 1.
CLEAR P_FILE.
MOVE W_SEL_FILE TO P_FILE.

ENDIF.

*at selection screen

AT SELECTION-SCREEN ON P_SESSN.

IF P_SESSN IS INITIAL.

P_SESSN = 'RECURRING'.

ENDIF.


AT SELECTION-SCREEN ON P_SESSN2.

IF P_SESSN2 IS INITIAL.

P_SESSN2 = 'RECURRING_E'.

ENDIF.




*********************Start of Selection ****************************
START-OF-SELECTION.

OPEN DATASET P_FILE FOR INPUT IN TEXT MODE ENCODING DEFAULT.

*error message when file not found.
IF SY-SUBRC &amp;lt;&amp;gt; 0.

MESSAGE 'File Not Found' TYPE 'E'.

ENDIF.
********************************************************************

*********************************************************************
DO.

READ DATASET P_FILE INTO w_datain.

IF SY-SUBRC EQ 0.

perform pre_process_record using w_datain
changing w_data.

PERFORM VALIDATE_DATA TABLES T_DATA
T_ERROR
USING W_DATA.

ELSE.
EXIT.
ENDIF.
ENDDO.

CLOSE DATASET P_FILE.
********************************************************************
*check if any error has occured.
IF T_ERROR[] IS NOT INITIAL.

PERFORM FILL_BDC_TABLE TABLES T_ERROR
T_BDCDATA
USING P_SESSN2.


ENDIF.



*Check if any records are present to be uploaded.
IF T_DATA[] IS NOT INITIAL.

PERFORM FILL_BDC_TABLE TABLES T_DATA
T_BDCDATA
USING P_SESSN.

ELSE.

WRITE :/ 'No Correct Records were found to create session in SM35',
/ 'Please Check the File'.

ENDIF.


*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Form validate_data
*&amp;amp;---------------------------------------------------------------------*
* Sub routine to check correctness of the uploaded data.
*----------------------------------------------------------------------*
* --&amp;gt;P_T_DATA table to upload correct entries
* --&amp;gt;P_T_ERROR table to upload erroneous entries
* --&amp;gt;P_W_DATA current record
*----------------------------------------------------------------------*
FORM VALIDATE_DATA TABLES P_T_DATA STRUCTURE W_DATA
P_T_ERROR STRUCTURE W_ERROR
USING P_W_DATA structure w_data .

DATA : L_W_LIFNR TYPE LFA1-LIFNR,
L_W_SAKNR TYPE SKA1-SAKNR.


DATA: L_W_DATA TYPE TY_DATA,
L_W_ERROR TYPE TY_ERROR.

MOVE P_W_DATA TO L_W_DATA.

DATA : L_FG_ERROR TYPE C,
L_W_DATE TYPE SY-DATUM.

CONSTANTS : C_X TYPE C VALUE 'X',
C_O2CA(4) TYPE C VALUE 'O2CA',
C_ZK_1(2) TYPE C VALUE 'ZK',
C_ZK_2(2) TYPE C VALUE 'zk',
C_NUM(17) TYPE C VALUE '01234567890/.-, ',
C_31(2) TYPE C VALUE '31',
C_40(2) TYPE C VALUE '40'.

L_FG_ERROR = SPACE.

DO.

*check document type is 'ZK'

IF NOT L_W_DATA-BLART NE C_ZK_1 OR
L_W_DATA-BLART NE C_ZK_2.

L_FG_ERROR = C_X.

EXIT.

ENDIF.


*check 1 item text fields are filled by numeric value.
IF NOT L_W_DATA-SGTXT_1 CO C_NUM.

L_FG_ERROR = C_X.

EXIT.

ENDIF.


*check 2 item text fields are filled by date.
MOVE L_W_DATA-SGTXT_2 TO L_W_DATE.

CALL FUNCTION 'DATE_CHECK_PLAUSIBILITY'
EXPORTING
DATE = L_W_DATE
EXCEPTIONS
PLAUSIBILITY_CHECK_FAILED = 1
OTHERS = 2.
IF SY-SUBRC &amp;lt;&amp;gt; 0.

L_FG_ERROR = C_X.

EXIT.

ENDIF.


*check first posting key is '31'
IF NOT L_W_DATA-BSCHL_1 EQ C_31.

L_FG_ERROR = C_X.

EXIT.

ENDIF.


*check second posting key is '40'
IF NOT L_W_DATA-BSCHL_2 EQ C_40.

L_FG_ERROR = C_X.

EXIT.

ENDIF.

*check valid Vendor
SELECT SINGLE LIFNR FROM LFA1 INTO L_W_LIFNR
WHERE LIFNR = L_W_DATA-HKONT_1.

IF SY-SUBRC &amp;lt;&amp;gt; 0.

L_FG_ERROR = C_X.

EXIT.

ENDIF.


*check valid G/L account.
SELECT SINGLE SAKNR FROM SKA1 INTO L_W_SAKNR
WHERE KTOPL = C_O2CA AND
SAKNR = L_W_DATA-HKONT_2.

IF SY-SUBRC &amp;lt;&amp;gt; 0.

L_FG_ERROR = C_X.

EXIT.

ENDIF.


*check 1 item assignment contains numeric value
IF NOT L_W_DATA-ZUONR_1 CO C_NUM.

L_FG_ERROR = C_X.

EXIT.

ENDIF.


*check 2 item assigment contains date value
MOVE L_W_DATA-ZUONR_2 TO L_W_DATE.

CALL FUNCTION 'DATE_CHECK_PLAUSIBILITY'
EXPORTING
DATE = L_W_DATE
EXCEPTIONS
PLAUSIBILITY_CHECK_FAILED = 1
OTHERS = 2.
IF SY-SUBRC &amp;lt;&amp;gt; 0.

L_FG_ERROR = C_X.

EXIT.

ENDIF.

*check if no error has occured
IF NOT L_FG_ERROR EQ C_X.

EXIT.

ENDIF.

ENDDO.


*check error flag and insert error text.
CASE L_FG_ERROR.

WHEN C_X. "When error has occured.

APPEND L_W_DATA TO P_T_ERROR.


WHEN OTHERS. "When no error has occured.

APPEND L_W_DATA TO P_T_DATA.


ENDCASE.


ENDFORM. " validate_data
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Form download_error_log
*&amp;amp;---------------------------------------------------------------------*
* Sub routine to download the error log
*----------------------------------------------------------------------*
* --&amp;gt;P_T_ERROR error log
*----------------------------------------------------------------------*
FORM DOWNLOAD_ERROR_LOG TABLES P_T_ERROR STRUCTURE W_ERROR.

DATA : L_FILENAME TYPE STRING,
L_PATH TYPE STRING,
L_FULLPATH TYPE STRING.

CALL METHOD CL_GUI_FRONTEND_SERVICES=&amp;gt;FILE_SAVE_DIALOG
EXPORTING
WINDOW_TITLE = 'Save the Error log'
CHANGING
FILENAME = L_FILENAME
PATH = L_PATH
FULLPATH = L_FULLPATH
EXCEPTIONS
CNTL_ERROR = 1
ERROR_NO_GUI = 2
NOT_SUPPORTED_BY_GUI = 3
OTHERS = 4.
IF SY-SUBRC &amp;lt;&amp;gt; 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

CHECK L_FULLPATH IS NOT INITIAL.

CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
FILENAME = L_FULLPATH
FILETYPE = 'ASC'
WRITE_FIELD_SEPARATOR = 'X'
TABLES
DATA_TAB = P_T_ERROR
EXCEPTIONS
FILE_WRITE_ERROR = 1
NO_BATCH = 2
GUI_REFUSE_FILETRANSFER = 3
INVALID_TYPE = 4
NO_AUTHORITY = 5
UNKNOWN_ERROR = 6
HEADER_NOT_ALLOWED = 7
SEPARATOR_NOT_ALLOWED = 8
FILESIZE_NOT_ALLOWED = 9
HEADER_TOO_LONG = 10
DP_ERROR_CREATE = 11
DP_ERROR_SEND = 12
DP_ERROR_WRITE = 13
UNKNOWN_DP_ERROR = 14
ACCESS_DENIED = 15
DP_OUT_OF_MEMORY = 16
DISK_FULL = 17
DP_TIMEOUT = 18
FILE_NOT_FOUND = 19
DATAPROVIDER_EXCEPTION = 20
CONTROL_FLUSH_ERROR = 21
OTHERS = 22.
IF SY-SUBRC &amp;lt;&amp;gt; 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.


ENDFORM. " download_error_log
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Form fill_bdc_table
*&amp;amp;---------------------------------------------------------------------*
* bdc session is created in SM35
*----------------------------------------------------------------------*
* --&amp;gt;P_T_DATA correct data
* --&amp;gt;P_T_BDCDATA bdcdata
* --&amp;gt;P_P_SESSN session name
*----------------------------------------------------------------------*
FORM FILL_BDC_TABLE TABLES P_T_DATA STRUCTURE W_DATA
P_T_BDCDATA STRUCTURE BDCDATA
USING P_P_SESSN.

DATA : L_W_DATA TYPE TY_DATA. "workarea for t_data

CONSTANTS: C_EUR(3) TYPE C VALUE 'EUR'.


*open batch

PERFORM OPEN_GROUP USING P_P_SESSN.

LOOP AT P_T_DATA INTO L_W_DATA.

*clear the bdc table
REFRESH P_T_BDCDATA.


*initial screen
PERFORM BDC_DYNPRO TABLES P_T_BDCDATA
USING 'SAPMF05A' '0106'.


PERFORM : BDC_FIELD TABLES P_T_BDCDATA USING 'BDC_CURSOR' 'BKPF-WAERS',
BDC_FIELD TABLES P_T_BDCDATA USING 'BDC_OKCODE' '/00', "enter
BDC_FIELD TABLES P_T_BDCDATA USING 'BKPF-BUKRS' L_W_DATA-BUKRS, "company code
BDC_FIELD TABLES P_T_BDCDATA USING 'BKDF-DBBDT' L_W_DATA-DBBDT, "first run on
BDC_FIELD TABLES P_T_BDCDATA USING 'BKDF-DBATR' L_W_DATA-DBATR, "next run on
BDC_FIELD TABLES P_T_BDCDATA USING 'BKDF-DBEDT' L_W_DATA-DBEDT, "last run on
BDC_FIELD TABLES P_T_BDCDATA USING 'BKDF-DBMON' L_W_DATA-DBMON, "run frequency
BDC_FIELD TABLES P_T_BDCDATA USING 'BKDF-DBTAG' L_W_DATA-DBTAG, "run date
BDC_FIELD TABLES P_T_BDCDATA USING 'BKPF-BLART' L_W_DATA-BLART, "document type
BDC_FIELD TABLES P_T_BDCDATA USING 'BKPF-WAERS' C_EUR, "currency
BDC_FIELD TABLES P_T_BDCDATA USING 'BKPF-XBLNR' L_W_DATA-XBLNR, "reference
BDC_FIELD TABLES P_T_BDCDATA USING 'BKPF-BKTXT' L_W_DATA-BKTXT, "document header data
BDC_FIELD TABLES P_T_BDCDATA USING 'RF05A-NEWBS' L_W_DATA-BSCHL_1,"posting key
BDC_FIELD TABLES P_T_BDCDATA USING 'RF05A-NEWKO' L_W_DATA-HKONT_1."account no


*second screen (First line item)

PERFORM BDC_DYNPRO TABLES P_T_BDCDATA
USING 'SAPMF05A' '0302'.

PERFORM : BDC_FIELD TABLES P_T_BDCDATA USING 'BDC_CURSOR' 'RF05A-NEWKO',
BDC_FIELD TABLES P_T_BDCDATA USING 'BDC_OKCODE' '/00', "enter
BDC_FIELD TABLES P_T_BDCDATA USING 'BSEG-WRBTR' L_W_DATA-MWSTS2_1, "amount in LC
BDC_FIELD TABLES P_T_BDCDATA USING 'BSEG-MWSKZ' L_W_DATA-MWSKZ_1, "tax code
BDC_FIELD TABLES P_T_BDCDATA USING 'BSEG-ZUONR' L_W_DATA-ZUONR_1, "assignment
BDC_FIELD TABLES P_T_BDCDATA USING 'BSEG-SGTXT' L_W_DATA-SGTXT_1, "item level text
BDC_FIELD TABLES P_T_BDCDATA USING 'RF05A-NEWBS' L_W_DATA-BSCHL_2, "posting key
BDC_FIELD TABLES P_T_BDCDATA USING 'RF05A-NEWKO' L_W_DATA-HKONT_2. "account no


*third screen (Second line item)

PERFORM BDC_DYNPRO TABLES P_T_BDCDATA
USING 'SAPMF05A' '0300'.

PERFORM : BDC_FIELD TABLES P_T_BDCDATA USING 'BDC_CURSOR' 'BSEG-EBELN',
BDC_FIELD TABLES P_T_BDCDATA USING 'BDC_OKCODE' '=AB', "overview button
BDC_FIELD TABLES P_T_BDCDATA USING 'BSEG-WRBTR' L_W_DATA-MWSTS2_2, "amount in LC
BDC_FIELD TABLES P_T_BDCDATA USING 'BSEG-MWSKZ' L_W_DATA-MWSKZ_2, "tax code
BDC_FIELD TABLES P_T_BDCDATA USING 'BSEG-ZUONR' L_W_DATA-ZUONR_2, "assigment
BDC_FIELD TABLES P_T_BDCDATA USING 'BSEG-SGTXT' L_W_DATA-SGTXT_2. "item text


*fourth screen (pop up)

PERFORM BDC_DYNPRO TABLES P_T_BDCDATA
USING 'SAPLKACB' '0002'.

PERFORM : BDC_FIELD TABLES P_T_BDCDATA USING 'BDC_CURSOR' 'COBL-KOSTL',
BDC_FIELD TABLES P_T_BDCDATA USING 'BDC_OKCODE' '=ENTE', "ok button
BDC_FIELD TABLES P_T_BDCDATA USING 'COBL-KOSTL' L_W_DATA-KOSTL, "cost center
BDC_FIELD TABLES P_T_BDCDATA USING 'COBL-AUFNR' L_W_DATA-AUFNR. "order number


*fifth screen

PERFORM BDC_FIELD TABLES P_T_BDCDATA
USING 'SAPMF05A' '0070'.

PERFORM : BDC_FIELD TABLES P_T_BDCDATA USING 'BDC_CURSOR' 'RF05A-NEWBS',
BDC_FIELD TABLES P_T_BDCDATA USING 'BDC_OKCODE' '=BU'. "save document

PERFORM BDC_INSERT TABLES P_T_BDCDATA
USING 'ZREC_ENTRY'.

ENDLOOP.


*close the batch.
PERFORM CLOSE_GROUP.


ENDFORM. " fill_bdc_table
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Form bdc_dynpro
*&amp;amp;---------------------------------------------------------------------*
* bdc screen insert sub routine
*----------------------------------------------------------------------*
* --&amp;gt;P_T_BDCDATA BDC table
* --&amp;gt;P_PROGRAM Program name
* --&amp;gt;P_SCREEN Screen no
*----------------------------------------------------------------------*
FORM BDC_DYNPRO TABLES P_T_BDCDATA STRUCTURE BDCDATA
USING VALUE(P_PROGRAM)
VALUE(P_SCREEN).

CONSTANTS C_X TYPE C VALUE 'X'.

DATA L_W_BDCDATA TYPE BDCDATA.

L_W_BDCDATA-PROGRAM = P_PROGRAM.
L_W_BDCDATA-DYNPRO = P_SCREEN.
L_W_BDCDATA-DYNBEGIN = C_X.

APPEND L_W_BDCDATA TO P_T_BDCDATA.


ENDFORM. " bdc_dynpro
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Form bdc_field
*&amp;amp;---------------------------------------------------------------------*
* bdc field screen routine
*----------------------------------------------------------------------*
* --&amp;gt;P_T_BDCDATA BDC table
* --&amp;gt;P_FIELD Field name
* --&amp;gt;P_VALUE Value
*----------------------------------------------------------------------*
FORM BDC_FIELD TABLES P_T_BDCDATA STRUCTURE BDCDATA
USING VALUE(P_FIELD)
VALUE(P_VALUE).

DATA L_W_BDCDATA TYPE BDCDATA. "Work area

L_W_BDCDATA-FNAM = P_FIELD.
L_W_BDCDATA-FVAL = P_VALUE.

APPEND L_W_BDCDATA TO P_T_BDCDATA.

ENDFORM. " bdc_field
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Form open_group
*&amp;amp;---------------------------------------------------------------------*
* bdc open group in sm35
*----------------------------------------------------------------------*
* --&amp;gt;P_P_SESSN session name
*----------------------------------------------------------------------*
FORM OPEN_GROUP USING P_P_SESSN.

CONSTANTS C_X TYPE C VALUE 'X'.

CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
CLIENT = SY-MANDT
GROUP = P_P_SESSN
KEEP = C_X
USER = SY-UNAME
PROG = SY-CPROG
EXCEPTIONS
CLIENT_INVALID = 1
DESTINATION_INVALID = 2
GROUP_INVALID = 3
GROUP_IS_LOCKED = 4
HOLDDATE_INVALID = 5
INTERNAL_ERROR = 6
QUEUE_ERROR = 7
RUNNING = 8
SYSTEM_LOCK_ERROR = 9
USER_INVALID = 10
OTHERS = 11.
IF SY-SUBRC &amp;lt;&amp;gt; 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.



ENDFORM. " open_group
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Form bdc_insert
*&amp;amp;---------------------------------------------------------------------*
* bdc insert in sm35
*----------------------------------------------------------------------*
* --&amp;gt;P_T_BDCDATA bdcdata table
* --&amp;gt;P_tcode transaction
*----------------------------------------------------------------------*
FORM BDC_INSERT TABLES P_T_BDCDATA STRUCTURE BDCDATA
USING VALUE(P_TCODE).

CALL FUNCTION 'BDC_INSERT'
EXPORTING
TCODE = P_TCODE
TABLES
DYNPROTAB = P_T_BDCDATA
EXCEPTIONS
INTERNAL_ERROR = 1
NOT_OPEN = 2
QUEUE_ERROR = 3
TCODE_INVALID = 4
PRINTING_INVALID = 5
POSTING_INVALID = 6
OTHERS = 7.
IF SY-SUBRC &amp;lt;&amp;gt; 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

ENDFORM. " bdc_insert
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Form close_group
*&amp;amp;---------------------------------------------------------------------*
* bdc close group in sm35
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
FORM CLOSE_GROUP .

CALL FUNCTION 'BDC_CLOSE_GROUP'
EXCEPTIONS
NOT_OPEN = 1
QUEUE_ERROR = 2
OTHERS = 3.
IF SY-SUBRC &amp;lt;&amp;gt; 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.



ENDFORM. " close_group
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp; Form pre_process_record
*&amp;amp;---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --&amp;gt;P_W_DATAIN text
* &amp;lt;--P_W_DATA text
*----------------------------------------------------------------------*
FORM pre_process_record USING P_W_DATAIN
CHANGING P_W_DATA structure w_data.


move p_w_datain to p_w_data-bukrs.

ENDFORM. " pre_process_record&lt;/CODE&gt;&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Nov 2006 14:47:46 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/syntax-error/m-p/1672541#M297069</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-11-16T14:47:46Z</dc:date>
    </item>
  </channel>
</rss>

