<?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 bdc in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/bdc/m-p/4081155#M975833</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi frnds,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In transaction fbv3 there is a field "Amt in loc curr"(bseg-dmbtr) that is picking of the values &lt;/P&gt;&lt;P&gt;from "VBSEGS-DMBTR".&lt;/P&gt;&lt;P&gt;I have a session method bdc in which the requirement is to:-&lt;/P&gt;&lt;P&gt;a) the user will pick the values from a flat file for the field "Amt in loc curr"&lt;/P&gt;&lt;P&gt;   and if there are values in the flat files it will pick it and display it in the&lt;/P&gt;&lt;P&gt;   amt in loc curr field.&lt;/P&gt;&lt;P&gt;      if for some rows values are not there it will pick up the values of vbsegs-dmbtr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;note:- in this bdc there is no such field or table decalred as "VBSEGS-DMBTR"&lt;/P&gt;&lt;P&gt;       &lt;/P&gt;&lt;P&gt;       but it picks the values in tcode fbv3 for amt in loc curr field.&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;Tables                                                               *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;TABLES:&lt;/P&gt;&lt;P&gt;  ZINC1,&lt;/P&gt;&lt;P&gt;  CSKS,                                " Cost Center table&lt;/P&gt;&lt;P&gt;  SKB1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;  C_ZERO                TYPE P DECIMALS 2      VALUE 0,&lt;/P&gt;&lt;P&gt;  C_TRANS_MODE          TYPE C                 VALUE 'N',&lt;/P&gt;&lt;P&gt;  C_TRANS_UPDATE        TYPE C                 VALUE 'S'   ,&lt;/P&gt;&lt;P&gt;  C_TCDE                LIKE SY-TCODE          VALUE 'F-65',&lt;/P&gt;&lt;P&gt;  C_DEBIT(2)            TYPE C                 VALUE '40',&lt;/P&gt;&lt;P&gt;  C_CREDIT(2)           TYPE C                 VALUE '50',&lt;/P&gt;&lt;P&gt;  C_OFFSET_NUM(3)       TYPE C                 VALUE '998',&lt;/P&gt;&lt;P&gt;  C_OFFSET_ACCOUNT(6)   TYPE C                 VALUE '225100',&lt;/P&gt;&lt;P&gt;  C_DFLT_TAX_CODE(2)    TYPE C                 VALUE 'I0',&lt;/P&gt;&lt;P&gt;  C_DFLT_TAX_JURIS(15)  TYPE C                  VALUE 'CA9513400'.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;- Strings----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;   W_HEADER(47),                       " Holds header data&lt;/P&gt;&lt;P&gt;   W_OLD_HEADER(47) VALUE 'XXXXXXXXXX'.&lt;/P&gt;&lt;P&gt;DATA V_LINE_TEXT(50).                  "syalla 07/11/00&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;- Variables -&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;  V_WORKPATH LIKE ZOUT1-ZWORKPATH,&lt;/P&gt;&lt;P&gt;  V_DATASET LIKE V_WORKPATH,&lt;/P&gt;&lt;P&gt;  V_DEBIT LIKE BSEG-WRBTR,&lt;/P&gt;&lt;P&gt;  V_CREDIT LIKE V_DEBIT,&lt;/P&gt;&lt;P&gt;  V_OFFSET_BALANCE_AMOUNT(16) TYPE C,&lt;/P&gt;&lt;P&gt;  V_OFFSET_AMOUNT(16) TYPE C,&lt;/P&gt;&lt;P&gt;  V_OFFSET_POSTING_KEY(2)  TYPE C,&lt;/P&gt;&lt;P&gt;  V_OFFSET_BALANCE_POSTING LIKE  V_OFFSET_POSTING_KEY,&lt;/P&gt;&lt;P&gt;  V_TOT_RECS LIKE SY-TABIX,&lt;/P&gt;&lt;P&gt;  V_CURRENT_REC LIKE SY-TABIX,&lt;/P&gt;&lt;P&gt;  V_NO_REC_INSERTED TYPE I,&lt;/P&gt;&lt;P&gt;  V_POSTDT(10) TYPE C,&lt;/P&gt;&lt;P&gt;  V_DATE(10) TYPE C VALUE '05/07/1997'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;- Counters -&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;  V_MSG_CNTR     TYPE I,&lt;/P&gt;&lt;P&gt;  V_COUNTER      TYPE I VALUE 1,&lt;/P&gt;&lt;P&gt;  V_CNTR TYPE N.&lt;/P&gt;&lt;P&gt;DATA: FLAG1(1) TYPE C.&lt;/P&gt;&lt;P&gt;DATA: ERROR_FLAG TYPE C,&lt;/P&gt;&lt;P&gt;      SESSION_ID LIKE APQI-QID.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;- Flags -&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;  V_FIRST_TIME_FLAG VALUE 'Y',         " First time flag&lt;/P&gt;&lt;P&gt;  V_NEWDOC_FLAG VALUE 'N',&lt;/P&gt;&lt;P&gt;  V_FILE  LIKE RLGRAP-FILENAME.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;- Structures -&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;*Structure to hold BDC script&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF T_BDCDATA OCCURS 100.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE BDCDATA.&lt;/P&gt;&lt;P&gt;DATA: END OF T_BDCDATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Table to hold the messages displayed during processing&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF T_MSG OCCURS 20.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE FIMSG.&lt;/P&gt;&lt;P&gt;DATA: END OF T_MSG.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;- Internal Tables -&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Table to hold accounting info from desired fields&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF T_INTAB OCCURS 10000,&lt;/P&gt;&lt;P&gt;        COMPANY_CODE(4) TYPE C VALUE SPACE,&lt;/P&gt;&lt;P&gt;        COST_CNTR(10)    TYPE C VALUE SPACE,&lt;/P&gt;&lt;P&gt;        POSTING_KEY(2)  TYPE C,&lt;/P&gt;&lt;P&gt;        GL_ACCNT        LIKE BSEG-HKONT,&lt;/P&gt;&lt;P&gt;        AMOUNT(16) TYPE C,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       LINE_DESC(50)   TYPE C,   "syalla 07/11/00&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        LINE_DESC(102)   TYPE C,       "syalla 07/11/00&lt;/P&gt;&lt;P&gt;        TAX_CODE(2)     TYPE C,&lt;/P&gt;&lt;P&gt;        JURIS_CODE(15)  TYPE C,&lt;/P&gt;&lt;P&gt;        POSID LIKE       PRPS-POSID,&lt;/P&gt;&lt;P&gt;        PROF_CTR(10)     TYPE C,&lt;/P&gt;&lt;P&gt;        NETWORK(12)      TYPE C,&lt;/P&gt;&lt;P&gt;        VORNR(4)         TYPE C,&lt;/P&gt;&lt;P&gt;        ALLOCATION LIKE  BSEG-ZUONR,&lt;/P&gt;&lt;P&gt;        ACCTG_DATE(10)   TYPE C VALUE SPACE,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;begin of code added by manasm&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        AMT_LOC_CURR(20) TYPE C,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;end of code added by manasm&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;END OF T_INTAB.&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;Input Parameters :                                                   *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Select Options (S_...)                                             *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Parameters     (P_...)                                             *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PARAMETERS:&lt;/P&gt;&lt;P&gt;  P_DOCDT          LIKE SY-DATUM OBLIGATORY,&lt;/P&gt;&lt;P&gt;  P_POSTDT         LIKE SY-DATUM OBLIGATORY,&lt;/P&gt;&lt;P&gt;  P_BUKRS          LIKE BKPF-BUKRS OBLIGATORY,&lt;/P&gt;&lt;P&gt;  P_DT             LIKE BKPF-BLART OBLIGATORY,&lt;/P&gt;&lt;P&gt;  P_CUR            LIKE BKPF-WAERS OBLIGATORY,&lt;/P&gt;&lt;P&gt;  P_HDRTXT         LIKE BKPF-BKTXT OBLIGATORY,&lt;/P&gt;&lt;P&gt;  P_REFDOC         LIKE BKPF-XBLNR OBLIGATORY,&lt;/P&gt;&lt;P&gt;  P_DFTTXK         AS CHECKBOX,&lt;/P&gt;&lt;P&gt;  P_BDCNME         LIKE APQI-GROUPID,&lt;/P&gt;&lt;P&gt;  P_INTID          LIKE ZINC1-ZINTID DEFAULT 'JRNL',&lt;/P&gt;&lt;P&gt;  P_FILE LIKE      IBIPPARMS-PATH DEFAULT 'DRIVE:\PATH\FILE',&lt;/P&gt;&lt;P&gt;  P_LOCAL(1)       DEFAULT 'X'  .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN SKIP 2.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF LINE.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN COMMENT 1(76) TEXT-001.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF LINE.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF LINE.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN COMMENT 1(16) TEXT-002.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF LINE.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK B1.&lt;/P&gt;&lt;P&gt;************************************************************************&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;  CALL FUNCTION 'F4_FILENAME'&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      FILE_NAME = P_FILE&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;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.                    "Main processing&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Changed and added by Vijay Chavva on 7/26/00.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;This report execution will be monitored from now onwards.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;DV1K921585&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  INCLUDE ZREPTRAC.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;upload the flat file from either the local drive or remote server.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  MOVE P_FILE TO V_FILE.&lt;/P&gt;&lt;P&gt;  PERFORM F_UPLOAD_FILE.&lt;/P&gt;&lt;P&gt;  PERFORM F_VALIDATE_INPUT_DATA CHANGING ERROR_FLAG.&lt;/P&gt;&lt;P&gt;  CHECK ERROR_FLAG = SPACE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM F_BDC_OPEN_GROUP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;put the date in correct format.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  WRITE P_DOCDT MM/DD/YYYY TO V_DATE.&lt;/P&gt;&lt;P&gt;  WRITE P_POSTDT MM/DD/YYYY TO V_POSTDT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;total number of records in int tab.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  DESCRIBE TABLE T_INTAB LINES V_TOT_RECS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate bdc table and call transaction at header change.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM F_POPULATE_BDC_TABLE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Save at end of header for last rec in loop (on screen 2)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM F_SAVE_LAST_DATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;call f-65 using the data in t_bdcdata for last record in loop.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM F_BDC_CALL_TRANSACTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;close bdc group.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM F_BDC_CLOSE_GROUP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Report on error messages.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM F_MSG_WRITE_MESSAGES.&lt;/P&gt;&lt;P&gt;  IF V_NO_REC_INSERTED = 0.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'BDC_OBJECT_DELETE'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        QUEUE_ID         = SESSION_ID&lt;/P&gt;&lt;P&gt;      EXCEPTIONS&lt;/P&gt;&lt;P&gt;        NOT_FOUND        = 1&lt;/P&gt;&lt;P&gt;        INVALID_DATATYPE = 2&lt;/P&gt;&lt;P&gt;        OTHERS           = 3.&lt;/P&gt;&lt;P&gt;  ENDIF.&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;END-OF-SELECTION.    "Error handling and clean-up processing&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;&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;TOP-OF-PAGE.         "Header (Appears always on top of the screen.)&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;  PERFORM HEADER USING SY-TITLE SY-REPID '' ''.&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;END-OF-PAGE.                           "Footer&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  f_upload_file&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;Read file from the interface architecture or from a local file       *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;depending on how the "Local file" flag is set.                       *&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 F_UPLOAD_FILE.&lt;/P&gt;&lt;P&gt;  DATA NO_LINES TYPE I.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF P_LOCAL NE 'X'.&lt;/P&gt;&lt;P&gt;    PERFORM F_GET_INBOUND_DIRECTORY.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    OPEN DATASET V_DATASET FOR INPUT IN TEXT MODE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;read dataset into internal table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    DO.&lt;/P&gt;&lt;P&gt;      READ DATASET V_DATASET INTO T_INTAB.&lt;/P&gt;&lt;P&gt;      IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;        EXIT.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      APPEND T_INTAB.&lt;/P&gt;&lt;P&gt;    ENDDO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'WS_UPLOAD'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        FILENAME            = V_FILE&lt;/P&gt;&lt;P&gt;        FILETYPE            = 'DAT'&lt;/P&gt;&lt;P&gt;      TABLES&lt;/P&gt;&lt;P&gt;        DATA_TAB            = T_INTAB&lt;/P&gt;&lt;P&gt;      EXCEPTIONS&lt;/P&gt;&lt;P&gt;        CONVERSION_ERROR    = 1&lt;/P&gt;&lt;P&gt;        INVALID_TABLE_WIDTH = 2&lt;/P&gt;&lt;P&gt;        INVALID_TYPE        = 3&lt;/P&gt;&lt;P&gt;        NO_BATCH            = 4&lt;/P&gt;&lt;P&gt;        UNKNOWN_ERROR       = 5&lt;/P&gt;&lt;P&gt;        OTHERS              = 6.&lt;/P&gt;&lt;P&gt;    If SY-SUBRC NE C_ZERO.&lt;/P&gt;&lt;P&gt;      MESSAGE E904 WITH P_FILE.&lt;/P&gt;&lt;P&gt;      PERFORM F_MSG_COLLECT.&lt;/P&gt;&lt;P&gt;      Stop.&lt;/P&gt;&lt;P&gt;    Endif.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  DELETE T_INTAB INDEX 1.&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE T_INTAB LINES NO_LINES.&lt;/P&gt;&lt;P&gt;  DELETE T_INTAB INDEX NO_LINES.&lt;/P&gt;&lt;P&gt;ENDFORM.                               " f_upload_file&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  F_BDC_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;Opens the session to process the 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 F_BDC_OPEN_GROUP.&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_BDCNME&lt;/P&gt;&lt;P&gt;      USER                = SY-UNAME&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      QID                 = SESSION_ID&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      CLIENT_INVALID      = 01&lt;/P&gt;&lt;P&gt;      DESTINATION_INVALID = 02&lt;/P&gt;&lt;P&gt;      GROUP_INVALID       = 03&lt;/P&gt;&lt;P&gt;      HOLDDATE_INVALID    = 04&lt;/P&gt;&lt;P&gt;      INTERNAL_ERROR      = 05&lt;/P&gt;&lt;P&gt;      QUEUE_ERROR         = 06&lt;/P&gt;&lt;P&gt;      RUNNING             = 07&lt;/P&gt;&lt;P&gt;      USER_INVALID        = 08.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC NE C_ZERO.&lt;/P&gt;&lt;P&gt;    MESSAGE E904 WITH 'BDC_OPEN_GROUP'.&lt;/P&gt;&lt;P&gt;    PERFORM F_MSG_COLLECT.&lt;/P&gt;&lt;P&gt;    STOP.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " F_BDC_OPEN_GROUP&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  F_MSG_COLLECT&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;Stores the message in the internal table T_MSG.                      *&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 F_MSG_COLLECT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR T_MSG.&lt;/P&gt;&lt;P&gt;  T_MSG-MSGID = SY-MSGID.&lt;/P&gt;&lt;P&gt;  T_MSG-MSGTY = SY-MSGTY.&lt;/P&gt;&lt;P&gt;  T_MSG-MSGNO = SY-MSGNO.&lt;/P&gt;&lt;P&gt;  T_MSG-MSGV1 = SY-MSGV1.&lt;/P&gt;&lt;P&gt;  T_MSG-MSGV2 = SY-MSGV2.&lt;/P&gt;&lt;P&gt;  T_MSG-MSGV3 = SY-MSGV3.&lt;/P&gt;&lt;P&gt;  T_MSG-MSGV4 = SY-MSGV4.&lt;/P&gt;&lt;P&gt;  APPEND T_MSG.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " F_MSG_COLLECT&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  F_BDC_ADD_DYNPRO_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;Creates script based on internal table                               *&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 F_BDC_ADD_DYNPRO_DATA USING DYNBEGIN NAME VALUE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR T_BDCDATA.&lt;/P&gt;&lt;P&gt;  IF DYNBEGIN = 'X'.&lt;/P&gt;&lt;P&gt;    MOVE NAME   TO T_BDCDATA-PROGRAM.&lt;/P&gt;&lt;P&gt;    MOVE VALUE  TO T_BDCDATA-DYNPRO.&lt;/P&gt;&lt;P&gt;    MOVE 'X'    TO T_BDCDATA-DYNBEGIN.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    MOVE NAME   TO T_BDCDATA-FNAM.&lt;/P&gt;&lt;P&gt;    MOVE VALUE  TO T_BDCDATA-FVAL.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  APPEND T_BDCDATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "F_BDC_ADD_DYNPRO_DATA&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  F_BDC_INSERT_TRANSACTION&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;Places script into SAP session to be processed                       *&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 F_BDC_INSERT_TRANSACTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  TRANSLATE C_TCDE TO UPPER CASE.&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'BDC_INSERT'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      TCODE          = C_TCDE&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      DYNPROTAB      = T_BDCDATA&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      INTERNAL_ERROR = 01&lt;/P&gt;&lt;P&gt;      NOT_OPEN       = 02&lt;/P&gt;&lt;P&gt;      QUEUE_ERROR    = 03&lt;/P&gt;&lt;P&gt;      TCODE_INVALID  = 04.&lt;/P&gt;&lt;P&gt;  IF V_CURRENT_REC EQ V_TOT_RECS.&lt;/P&gt;&lt;P&gt;    MESSAGE S002 WITH P_BDCNME.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC NE C_ZERO.&lt;/P&gt;&lt;P&gt;    MESSAGE E904 WITH 'BDC_INSERT'.&lt;/P&gt;&lt;P&gt;    PERFORM F_MSG_COLLECT.&lt;/P&gt;&lt;P&gt;    STOP.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    V_NO_REC_INSERTED = V_NO_REC_INSERTED + 1.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " F_BDC_INSERT_TRANSACTION&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  F_BDC_CALL_TRANSACTION&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;This form places the script created by F_BDC_ADD_DYNPRO_Data into the*&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;opened session.  It will be processed automatically and leave errors *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;to be processed by the user 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;FORM F_BDC_CALL_TRANSACTION.&lt;/P&gt;&lt;P&gt;  DATA: V_INFO(20) VALUE 'for set # '.&lt;/P&gt;&lt;P&gt;  V_CNTR = V_CNTR + 1.&lt;/P&gt;&lt;P&gt;  CALL TRANSACTION C_TCDE&lt;/P&gt;&lt;P&gt;     Using T_BDCDATA&lt;/P&gt;&lt;P&gt;     MODE C_TRANS_MODE&lt;/P&gt;&lt;P&gt;     UPDATE C_TRANS_UPDATE.&lt;/P&gt;&lt;P&gt;  If Sy-Subrc NE 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   perform f_msg_collect.     "syalla 06/07/00 asr#9886&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CONCATENATE P_BDCNME V_INFO V_CNTR INTO V_INFO.&lt;/P&gt;&lt;P&gt;    MESSAGE S003 WITH V_INFO.&lt;/P&gt;&lt;P&gt;    PERFORM F_MSG_COLLECT.&lt;/P&gt;&lt;P&gt;    PERFORM F_BDC_INSERT_TRANSACTION.&lt;/P&gt;&lt;P&gt;  Else.&lt;/P&gt;&lt;P&gt;  Endif.&lt;/P&gt;&lt;P&gt;  Refresh T_BDCDATA.&lt;/P&gt;&lt;P&gt;ENDFORM.                               " F_BDC_CALL_TRANSACTION&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  F_BDC_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;Closes the session to be processed                                   *&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 F_BDC_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    = 01&lt;/P&gt;&lt;P&gt;      QUEUE_ERROR = 02.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC NE C_ZERO.&lt;/P&gt;&lt;P&gt;    MESSAGE E904 WITH 'BDC_CLOSE_GROUP'.&lt;/P&gt;&lt;P&gt;    PERFORM F_MSG_COLLECT.&lt;/P&gt;&lt;P&gt;    STOP.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    PERFORM F_MSG_COLLECT.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " F_BDC_CLOSE_GROUP&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  F_MSG_WRITE_MESSAGES&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;If no error messages were found then it says that the program has    *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;been completed successfully. If there are messages it displays them. *&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 F_MSG_WRITE_MESSAGES.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE T_MSG LINES V_MSG_CNTR.&lt;/P&gt;&lt;P&gt;  IF V_MSG_CNTR LT 1.&lt;/P&gt;&lt;P&gt;    MESSAGE I001.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    SORT T_MSG BY MSGTY.&lt;/P&gt;&lt;P&gt;    WRITE:&lt;/P&gt;&lt;P&gt;      / 'The following',&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       V_MSG_CNTR,      "SYALLA 06/07/00 ASR#&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        'messages were written:'.&lt;/P&gt;&lt;P&gt;    SKIP.&lt;/P&gt;&lt;P&gt;    PERFORM GET_ERROR_COST_CENTERS.    "SYALLA 06/07/00 ASR#9886&lt;/P&gt;&lt;P&gt;    ULINE.&lt;/P&gt;&lt;P&gt;    IF  FLAG1 = 'X'.&lt;/P&gt;&lt;P&gt;      WRITE:&lt;/P&gt;&lt;P&gt;/ 'Program completed with errors. Use SM35 to process the BDC session:',&lt;/P&gt;&lt;P&gt;  P_BDCNME.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      WRITE:&lt;/P&gt;&lt;P&gt; 'Program completed Successfully use SM35 to process the BDC session: ',&lt;/P&gt;&lt;P&gt;      P_BDCNME.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Begin Of delete SYALLA 07/18/00&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   LOOP AT T_MSG.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ON CHANGE OF T_MSG-MSGTY.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       SKIP.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       WRITE:&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         / 'Message type','Successful'.&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;           T_MSG-MSGTY.       "SYALLA 07/18/00&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       ULINE.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ENDON.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     CALL FUNCTION 'WRITE_MESSAGE'&lt;/P&gt;&lt;/LI&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;               MSGID  = T_MSG-MSGID&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               MSGNO  = T_MSG-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               MSGTY  = T_MSG-MSGTY&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               MSGV1  = T_MSG-MSGV1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               MSGV2  = T_MSG-MSGV2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               MSGV3  = T_MSG-MSGV3&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               MSGV4  = T_MSG-MSGV4&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               MSGV5  = SPACE&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;               MESSG  = T_MESSAGE&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;               OTHERS = 1.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     WRITE: / T_MESSAGE-MSGTX.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ENDLOOP.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;End Of delete SYALLA 07/18/00&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;ENDFORM.                               " F_MSG_WRITE_MESSAGES&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  F_GET_INBOUND_DIRECTORY&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;  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;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM F_GET_INBOUND_DIRECTORY.&lt;/P&gt;&lt;P&gt;  SELECT SINGLE * FROM ZINC1&lt;/P&gt;&lt;P&gt;    WHERE ZINTID = P_INTID.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;    MESSAGE E903 WITH P_INTID 'INTID' 'ZINC1'.&lt;/P&gt;&lt;P&gt;    PERFORM F_MSG_COLLECT.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC = 0 AND ZINC1-ZPROCESS = 'X'.&lt;/P&gt;&lt;P&gt;    V_WORKPATH = ZINC1-ZWORKPATH.&lt;/P&gt;&lt;P&gt;    CONCATENATE V_WORKPATH P_FILE INTO V_DATASET.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                               " F_GET_INBOUND_DIRECTORY&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  f_fill_all_screens&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;      This subroutine populated the bdc table when the header changes*&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;  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;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM F_FILL_ALL_SCREENS.&lt;/P&gt;&lt;P&gt;  IF V_FIRST_TIME_FLAG EQ 'N'.         "If not first loop&lt;/P&gt;&lt;P&gt;*save at end of header (on screen 2)&lt;/P&gt;&lt;P&gt;    PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;          'X'           'SAPLF040'         '0300',&lt;/P&gt;&lt;P&gt;          ' '           'bdc_okcode'       '/11',&lt;/P&gt;&lt;P&gt;          'X'           'SAPLKACB'         '0002',&lt;/P&gt;&lt;P&gt;          ' '           'bdc_okcode'       '/8'.&lt;/P&gt;&lt;P&gt;    PERFORM F_BDC_CALL_TRANSACTION.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  V_FIRST_TIME_FLAG = 'N'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*top of screen 1&lt;/P&gt;&lt;P&gt;  PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;  'X'           'SAPLF040'         '0100',&lt;/P&gt;&lt;P&gt;  ' '           'bkpf-bukrs'       T_INTAB-COMPANY_CODE,&lt;/P&gt;&lt;P&gt;  ' '           'bkpf-bldat'       T_INTAB-ACCTG_DATE,&lt;/P&gt;&lt;P&gt;  ' '           'bkpf-budat'       V_POSTDT,&lt;/P&gt;&lt;P&gt;  ' '           'bkpf-blart'       P_DT,&lt;/P&gt;&lt;P&gt;  ' '           'bkpf-waers'       P_CUR,&lt;/P&gt;&lt;P&gt;  ' '           'bkpf-bktxt'       P_HDRTXT,&lt;/P&gt;&lt;P&gt;  ' '           'bkpf-xblnr'       P_REFDOC,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*bottom of screen 1&lt;/P&gt;&lt;P&gt;  ' '           'rf05v-newko'      T_INTAB-GL_ACCNT,&lt;/P&gt;&lt;P&gt;  ' '           'rf05v-newbs'      T_INTAB-POSTING_KEY,&lt;/P&gt;&lt;P&gt;  ' '           'bdc_okcode'       '/0'.&lt;/P&gt;&lt;P&gt;  V_LINE_TEXT  = T_INTAB-LINE_DESC.    "syalla 07/11/00&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*top of screen 2&lt;/P&gt;&lt;P&gt;  PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;  'X'           'SAPLF040'         '0300',&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ' '           'bseg-wrbtr'       T_INTAB-AMOUNT,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;begin of code added by manasm&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;*IF T_INTAB-AMT_LOC_CURR NE SPACE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ' '           'bseg-dmbtr'       T_INTAB-AMT_LOC_CURR,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ' '           'bdc_okcode'       '/0'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ' '           'bdc_okcode'       '/0'.&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;**end of code added by manasm&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; ' '           'bseg-sgtxt'       T_INTAB-LINE_DESC,  "syalla 07/11/00&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**begin of code added by manas&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; 'X'           'SAPLF040'         '0300',&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;**end of code added by manas&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ' '           'bseg-sgtxt'       V_LINE_TEXT,  "syalla 07/11/00&lt;/P&gt;&lt;P&gt;  ' '           'BSEG-ZUONR'       T_INTAB-ALLOCATION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR V_LINE_TEXT.                   "syalla 07/11/00&lt;/P&gt;&lt;P&gt;  IF T_INTAB-TAX_CODE NE SPACE.                             "new&lt;/P&gt;&lt;P&gt;    PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;        ' '           'bseg-mwskz'       T_INTAB-TAX_CODE.&lt;/P&gt;&lt;P&gt;    IF T_INTAB-JURIS_CODE NE SPACE.&lt;/P&gt;&lt;P&gt;      PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;          ' '           'bseg-txjcd'       T_INTAB-JURIS_CODE.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;        ' '           'bdc_okcode'       '/0'.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;    ' '           'bdc_okcode'       '/0'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  IF T_INTAB-PROF_CTR NE SPACE AND T_INTAB-COST_CNTR NE SPACE.&lt;/P&gt;&lt;P&gt;    PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;    'X'           'SAPLKACB'         '0002',&lt;/P&gt;&lt;P&gt;    ' '           'cobl-prctr'       T_INTAB-PROF_CTR,&lt;/P&gt;&lt;P&gt;    ' '           'cobl-kostl'       T_INTAB-COST_CNTR,&lt;/P&gt;&lt;P&gt;    ' '           'bdc_okcode'       '/8'.&lt;/P&gt;&lt;P&gt;  ELSEIF T_INTAB-COST_CNTR NE  SPACE.&lt;/P&gt;&lt;P&gt;    PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;    'X'           'SAPLKACB'         '0002',&lt;/P&gt;&lt;P&gt;    ' '           'cobl-kostl'       T_INTAB-COST_CNTR,&lt;/P&gt;&lt;P&gt;    ' '           'bdc_okcode'       '/8'.&lt;/P&gt;&lt;P&gt;  ELSEIF T_INTAB-PROF_CTR NE  SPACE.&lt;/P&gt;&lt;P&gt;    PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;    'X'           'SAPLKACB'         '0002',&lt;/P&gt;&lt;P&gt;    ' '           'cobl-prctr'       T_INTAB-PROF_CTR,&lt;/P&gt;&lt;P&gt;    ' '           'bdc_okcode'       '/8'.&lt;/P&gt;&lt;P&gt;  ELSEIF T_INTAB-POSID NE SPACE.&lt;/P&gt;&lt;P&gt;    PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;    'X'           'SAPLKACB'         '0002',&lt;/P&gt;&lt;P&gt;    ' '           'COBL-PS_PSP_PNR'  T_INTAB-POSID,&lt;/P&gt;&lt;P&gt;    ' '           'bdc_okcode'       '/8'.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;    'X'           'SAPLKACB'         '0002',&lt;/P&gt;&lt;P&gt;    ' '           'bdc_okcode'       '/8'.&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.                               " f_fill_all_screens&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  f_fill_screen_two&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;    This subroutine will post next line items.  So it will do the    *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    bottom of screen 2 and it will do the coding block or screen thre*&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;  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;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM F_FILL_SCREEN_TWO.&lt;/P&gt;&lt;P&gt;*bottom of screen 2&lt;/P&gt;&lt;P&gt;  PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt; 'X'           'SAPLF040'         '0300',&lt;/P&gt;&lt;P&gt;  ' '           'rf05v-newko'      T_INTAB-GL_ACCNT,&lt;/P&gt;&lt;P&gt;  ' '           'rf05v-newbs'      T_INTAB-POSTING_KEY,&lt;/P&gt;&lt;P&gt;  ' '           'RF05V-NEWBK'      T_INTAB-COMPANY_CODE,&lt;/P&gt;&lt;P&gt;  ' '           'bdc_okcode'       '/0',&lt;/P&gt;&lt;P&gt;  'X'           'SAPLKACB'         '0002',&lt;/P&gt;&lt;P&gt;  ' '           'BDC_OKCODE'        '/8'.&lt;/P&gt;&lt;P&gt;  V_LINE_TEXT = T_INTAB-LINE_DESC.     "syalla 07/11/00&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*top of screen 2&lt;/P&gt;&lt;P&gt;  PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;   'X'           'SAPLF040'         '0300',&lt;/P&gt;&lt;P&gt;   ' '           'bseg-wrbtr'       T_INTAB-AMOUNT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*begin of code added by manasm&lt;/P&gt;&lt;P&gt;IF T_INTAB-AMT_LOC_CURR NE SPACE.&lt;/P&gt;&lt;P&gt;  PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;  ' '           'bseg-dmbtr'       T_INTAB-AMT_LOC_CURR,&lt;/P&gt;&lt;P&gt;  ' '           'bdc_okcode'       '/0'.&lt;/P&gt;&lt;P&gt; ELSE .&lt;/P&gt;&lt;P&gt;  PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;  ' '           'bdc_okcode'       '/0'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;*end of code added by manasm&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;' '           'bseg-sgtxt'       T_INTAB-LINE_DESC ,    "syalla07/11/0&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*begin of code added by manas&lt;/P&gt;&lt;P&gt; PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;  'X'           'SAPLF040'         '0300',&lt;/P&gt;&lt;P&gt;*end of code added by manas&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ' '           'bseg-sgtxt'       V_LINE_TEXT,  "syalla 07/11/00&lt;/P&gt;&lt;P&gt;  ' '           'BSEG-ZUONR'       T_INTAB-ALLOCATION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR V_LINE_TEXT.&lt;/P&gt;&lt;P&gt;  IF T_INTAB-TAX_CODE NE SPACE.                             "new&lt;/P&gt;&lt;P&gt;    PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;        ' '           'bseg-mwskz'       T_INTAB-TAX_CODE.&lt;/P&gt;&lt;P&gt;    IF T_INTAB-JURIS_CODE NE SPACE.&lt;/P&gt;&lt;P&gt;      PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;          ' '           'bseg-txjcd'       T_INTAB-JURIS_CODE.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;        ' '           'bdc_okcode'       '/0'.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;    ' '           'bdc_okcode'       '/0'.&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;  IF T_INTAB-PROF_CTR NE SPACE AND T_INTAB-COST_CNTR NE SPACE.&lt;/P&gt;&lt;P&gt;    PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;    'X'           'SAPLKACB'         '0002',&lt;/P&gt;&lt;P&gt;    ' '           'cobl-prctr'       T_INTAB-PROF_CTR,&lt;/P&gt;&lt;P&gt;    ' '           'cobl-kostl'       T_INTAB-COST_CNTR,&lt;/P&gt;&lt;P&gt;    ' '           'bdc_okcode'       '/8'.&lt;/P&gt;&lt;P&gt;  ELSEIF T_INTAB-COST_CNTR NE  SPACE.&lt;/P&gt;&lt;P&gt;    PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;    'X'           'SAPLKACB'         '0002',&lt;/P&gt;&lt;P&gt;    ' '           'cobl-kostl'       T_INTAB-COST_CNTR,&lt;/P&gt;&lt;P&gt;    ' '           'bdc_okcode'       '/8'.&lt;/P&gt;&lt;P&gt;  ELSEIF T_INTAB-PROF_CTR NE  SPACE.&lt;/P&gt;&lt;P&gt;    PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;    'X'           'SAPLKACB'         '0002',&lt;/P&gt;&lt;P&gt;    ' '           'COBL-PRCTR'       T_INTAB-PROF_CTR,&lt;/P&gt;&lt;P&gt;    ' '           'bdc_okcode'       '/8'.&lt;/P&gt;&lt;P&gt;  ELSEIF T_INTAB-POSID NE SPACE.&lt;/P&gt;&lt;P&gt;    PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;    'X'           'SAPLKACB'         '0002',&lt;/P&gt;&lt;P&gt;    ' '           'COBL-PS_PSP_PNR'  T_INTAB-POSID,&lt;/P&gt;&lt;P&gt;    ' '           'bdc_okcode'       '/8'.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;    'X'           'SAPLKACB'         '0002',&lt;/P&gt;&lt;P&gt;    ' '           'bdc_okcode'       '/8'.&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;ENDFORM.                               " f_fill_screen_two&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  F_FILL_OFFSET_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;      This subroutine will post to the offset account and offset     *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      amount and it will be considered another line item but it's    *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      purpose is to balance debits and credits if a document is being*&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      split becuase SAP allows only 999 line items per doc or per    *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      header.&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;  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;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM F_FILL_OFFSET_RECORD USING V_OFFSET_AMOUNT V_OFFSET_POSTING_KEY.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*bottom of screen 2&lt;/P&gt;&lt;P&gt;  PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt; 'X'           'SAPLF040'         '0300',&lt;/P&gt;&lt;P&gt;  ' '           'rf05v-newko'      C_OFFSET_ACCOUNT,&lt;/P&gt;&lt;P&gt;  ' '           'rf05v-newbs'      V_OFFSET_POSTING_KEY,&lt;/P&gt;&lt;P&gt;  ' '           'bdc_okcode'       '/0',&lt;/P&gt;&lt;P&gt;  'X'           'SAPLKACB'         '0002',&lt;/P&gt;&lt;P&gt;  ' '           'BDC_OKCODE'        '/8'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*top of screen 2&lt;/P&gt;&lt;P&gt;  PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;  'X'           'SAPLF040'         '0300',&lt;/P&gt;&lt;P&gt;  ' '           'bseg-wrbtr'       V_OFFSET_AMOUNT,&lt;/P&gt;&lt;P&gt;  ' '           'bdc_okcode'       '/0',&lt;/P&gt;&lt;P&gt;  'X'           'SAPLKACB'         '0002',&lt;/P&gt;&lt;P&gt;  ' '           'bdc_okcode'       '/8'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Here, I am assigning that offset amount into another variable so that&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;when we do another offset entry at the beginning of the next doc,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;inorder to zero out the offset account, then we can call upon this&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;variable which will store the amount of the offset entry for the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;previous doc.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  V_OFFSET_BALANCE_AMOUNT = V_OFFSET_AMOUNT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;This is also a preparation for the offset entry at the beginning of&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;the next doc.  We want to store the opposit of the current posting so&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;that we can correctly post a debit or a credit.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF V_OFFSET_POSTING_KEY = C_CREDIT.&lt;/P&gt;&lt;P&gt;    V_OFFSET_BALANCE_POSTING = C_DEBIT.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    V_OFFSET_BALANCE_POSTING = C_CREDIT.&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;Since we already posted to the offset for the current doc, we want to&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;zero out these variable so they can be initialized for the next doc.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  V_CREDIT = 0.&lt;/P&gt;&lt;P&gt;  V_DEBIT = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;We want to save the doc and then we want to call the transaction again&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;since that's the only way f-02 will allow you to input new header&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;data.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM F_SAVE_LAST_DATA.&lt;/P&gt;&lt;P&gt;  PERFORM F_BDC_CALL_TRANSACTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " F_FILL_OFFSET_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;P&gt;*&amp;amp;      Form  F_SAVE_LAST_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;     save the current doc before you can post to a different header  *&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;  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;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM F_SAVE_LAST_DATA.&lt;/P&gt;&lt;P&gt;  PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;          'X'           'SAPLF040'         '0300',&lt;/P&gt;&lt;P&gt;          ' '           'bdc_okcode'       '/11',&lt;/P&gt;&lt;P&gt;          'X'           'SAPLKACB'         '0002',&lt;/P&gt;&lt;P&gt;          ' '           'bdc_okcode'       '/8'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " F_SAVE_LAST_DATA&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  F_POST_CREDIT_DEBIT_BALANCE&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;      This subroutine keeps a running tab of the credits and debits  *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      for each document.                                             *&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;  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;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM F_POST_CREDIT_DEBIT_BALANCE.&lt;/P&gt;&lt;P&gt;  IF T_INTAB-POSTING_KEY = C_CREDIT.&lt;/P&gt;&lt;P&gt;    V_CREDIT = V_CREDIT + T_INTAB-AMOUNT.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    V_DEBIT = V_DEBIT + T_INTAB-AMOUNT.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                               " F_POST_CREDIT_DEBIT_BALANCE&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  f_post_to_offset_account&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;      This sub posts to the offset account.                          *&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;  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;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM F_POST_TO_OFFSET_ACCOUNT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF V_DEBIT &amp;gt; V_CREDIT.&lt;/P&gt;&lt;P&gt;    V_OFFSET_AMOUNT = V_DEBIT - V_CREDIT.&lt;/P&gt;&lt;P&gt;    V_OFFSET_POSTING_KEY = C_CREDIT.&lt;/P&gt;&lt;P&gt;    PERFORM F_FILL_OFFSET_RECORD USING V_OFFSET_AMOUNT&lt;/P&gt;&lt;P&gt;                                 V_OFFSET_POSTING_KEY.&lt;/P&gt;&lt;P&gt;  ELSEIF V_CREDIT &amp;gt; V_DEBIT.&lt;/P&gt;&lt;P&gt;    V_OFFSET_AMOUNT = V_CREDIT - V_DEBIT.&lt;/P&gt;&lt;P&gt;    V_OFFSET_POSTING_KEY = C_DEBIT.&lt;/P&gt;&lt;P&gt;    PERFORM F_FILL_OFFSET_RECORD USING V_OFFSET_AMOUNT&lt;/P&gt;&lt;P&gt;                                V_OFFSET_POSTING_KEY.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    "F_POST_TO_OFFSET_ACCOUNT&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  F_CONCAT_HEADER&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;      concatenates the fields into one variable for comparison       *&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;  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;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM F_CONCAT_HEADER.&lt;/P&gt;&lt;P&gt;  CONCATENATE:" t_intab-company_code SRINIP ASR 15071&lt;/P&gt;&lt;P&gt;               P_DT P_REFDOC P_HDRTXT INTO W_HEADER.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " F_CONCAT_HEADER&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  F_BALANCE_OFFSET_ACCOUNT&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;      This will be the offset posting with the header info, which is *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      at the beginning of the next document.  It basically zeros out *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      the offset account.&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;  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;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM F_BALANCE_OFFSET_ACCOUNT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*top of screen 1&lt;/P&gt;&lt;P&gt;  PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;  'X'           'SAPLF040'         '0100',&lt;/P&gt;&lt;P&gt;  ' '           'bkpf-bukrs'       T_INTAB-COMPANY_CODE,&lt;/P&gt;&lt;P&gt;  ' '           'bkpf-bldat'       T_INTAB-ACCTG_DATE,&lt;/P&gt;&lt;P&gt;  ' '           'bkpf-budat'       V_POSTDT,&lt;/P&gt;&lt;P&gt;  ' '           'bkpf-blart'       P_DT,&lt;/P&gt;&lt;P&gt;  ' '           'bkpf-waers'       P_CUR,&lt;/P&gt;&lt;P&gt;  ' '           'bkpf-bktxt'       P_HDRTXT,&lt;/P&gt;&lt;P&gt;  ' '           'bkpf-xblnr'       P_REFDOC,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*bottom of screen 1&lt;/P&gt;&lt;P&gt;  ' '           'rf05v-newko'      C_OFFSET_ACCOUNT,&lt;/P&gt;&lt;P&gt;  ' '           'rf05v-newbs'      V_OFFSET_BALANCE_POSTING,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;' '           'RF05V-NEWBK'      t_intab-company_code,&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ' '           'bdc_okcode'       '/0'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*top of screen 2&lt;/P&gt;&lt;P&gt;  PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;  'X'           'SAPLF040'         '0300',&lt;/P&gt;&lt;P&gt;  ' '           'bseg-wrbtr'       V_OFFSET_BALANCE_AMOUNT,&lt;/P&gt;&lt;P&gt;  ' '           'bdc_okcode'       '/0',&lt;/P&gt;&lt;P&gt;  'X'           'SAPLKACB'         '0002',&lt;/P&gt;&lt;P&gt;  ' '           'bdc_okcode'       '/8'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Since this is actually the first line item in a new doc, then the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;amount has to be stored so that it won't throw off the balance at the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;end of the doc.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF V_OFFSET_BALANCE_POSTING EQ C_CREDIT.&lt;/P&gt;&lt;P&gt;    V_CREDIT = V_CREDIT + V_OFFSET_BALANCE_AMOUNT.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    V_DEBIT = V_DEBIT + V_OFFSET_BALANCE_AMOUNT.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " F_BALANCE_OFFSET_ACCOUNT&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  F_POPULATE_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;      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;  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;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM F_POPULATE_BDC_TABLE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT T_INTAB.&lt;/P&gt;&lt;P&gt;    SET PARAMETER ID 'PRC' FIELD '          '.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    V_CURRENT_REC = SY-TABIX.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Hardcode the date to current date, the currency to 'USD'&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    T_INTAB-ACCTG_DATE = V_DATE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  t_intab-company_code = p_bukrs. "SRINIP ASR 15071&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    T_INTAB-LINE_DESC  = T_INTAB-LINE_DESC.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Need to keep a running tab of the credits and debits for each document&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM F_POST_CREDIT_DEBIT_BALANCE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;loop through internal table and make the five key fields into one&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;variable called header.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM F_CONCAT_HEADER.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;populate relevant parts of internal bdc table if the header changes,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;and when it stays the same&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF V_NEWDOC_FLAG EQ 'Y'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;if it's a new doc., meaning there are 999 line items posted already&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;and it's about to save but the debits don't equal the credits then&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;the first thing it'll do in the new doc is post to the offset account&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;the same amount that was posted in the last line item in the previous&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;doc.  This offset line item will pull a new header as well and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;immediately after the offset is posted then the current line item in&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;our loop will post as the next line item.  So that's two entries, thus&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;why the counter is incremented by two.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      IF V_OFFSET_BALANCE_AMOUNT NE 0.&lt;/P&gt;&lt;P&gt;        PERFORM F_BALANCE_OFFSET_ACCOUNT.&lt;/P&gt;&lt;P&gt;        PERFORM F_FILL_SCREEN_TWO.&lt;/P&gt;&lt;P&gt;        V_COUNTER = 2.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;if it's a new doc but the entries are balanced then we just continue&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;and enter another line item and increment the counter by one.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        PERFORM F_FILL_ALL_SCREENS.&lt;/P&gt;&lt;P&gt;        V_COUNTER = 1.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;since we did all the offset accounting necessary at the beginning of&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;a new doc then we indicate that it no longer a new doc and we empty&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;out our variable that keeps track of the offset amount.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      V_NEWDOC_FLAG = 'N'.&lt;/P&gt;&lt;P&gt;      V_OFFSET_BALANCE_AMOUNT = 0.&lt;/P&gt;&lt;P&gt;    ELSEIF W_HEADER NE W_OLD_HEADER.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If the header has changed then we know right away that it is a new doc&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;until it reaches 999 line items. This will be the first posting so the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;counter is set to one.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      PERFORM F_FILL_ALL_SCREENS.&lt;/P&gt;&lt;P&gt;      V_COUNTER = 1.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;The first 998 line items should be read into the first SAP document&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Line item number 999 should be offset account whose amount should&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;balance this initial document.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      IF ( V_COUNTER EQ C_OFFSET_NUM ).&lt;/P&gt;&lt;P&gt;        PERFORM F_FILL_SCREEN_TWO.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;we post an offset amount only if the debits and credits don't equal&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;out for the current doc., and we indicate that we need to start a new&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;doc because the maximum num of line items has been reached.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        IF V_DEBIT NE V_CREDIT.&lt;/P&gt;&lt;P&gt;          PERFORM F_POST_TO_OFFSET_ACCOUNT.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        V_NEWDOC_FLAG = 'Y'.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If it's not a new doc, and it's not a new header then we know it's&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;just another line item and we post the data in the current header as&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;the next line item.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        PERFORM F_FILL_SCREEN_TWO.&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;reset the old header with the current header.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    MOVE W_HEADER TO W_OLD_HEADER.&lt;/P&gt;&lt;P&gt;    V_COUNTER = V_COUNTER + 1.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " F_POPULATE_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  F_VALIDATE_INPUT_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;      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 F_VALIDATE_INPUT_DATA CHANGING ERROR_FLAG.&lt;/P&gt;&lt;P&gt;  DATA:   DOC_TOTAL LIKE BSEG-WRBTR,&lt;/P&gt;&lt;P&gt;          CUR_DOC_AMT LIKE BSEG-WRBTR,&lt;/P&gt;&lt;P&gt;          NO_ZERO_DOCS TYPE I.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR ERROR_FLAG.&lt;/P&gt;&lt;P&gt;  READ TABLE T_INTAB INDEX 1.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;    IF T_INTAB-COMPANY_CODE &amp;lt;&amp;gt; P_BUKRS.&lt;/P&gt;&lt;P&gt;      WRITE:/'Comp Code on screen must match comp code in first',&lt;/P&gt;&lt;P&gt;             'record in input file'.&lt;/P&gt;&lt;P&gt;      ERROR_FLAG = 'X'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  LOOP AT T_INTAB.&lt;/P&gt;&lt;P&gt;    CUR_DOC_AMT = T_INTAB-AMOUNT.&lt;/P&gt;&lt;P&gt;    IF CUR_DOC_AMT = 0.&lt;/P&gt;&lt;P&gt;      NO_ZERO_DOCS = NO_ZERO_DOCS + 1.&lt;/P&gt;&lt;P&gt;      DELETE T_INTAB.&lt;/P&gt;&lt;P&gt;      CONTINUE.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    IF T_INTAB-POSTING_KEY = 40.&lt;/P&gt;&lt;P&gt;      DOC_TOTAL = DOC_TOTAL + CUR_DOC_AMT.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      DOC_TOTAL = DOC_TOTAL - CUR_DOC_AMT.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Check if tax code is needed for this record&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF T_INTAB-TAX_CODE = SPACE AND P_DFTTXK = 'X'.&lt;/P&gt;&lt;P&gt;      SHIFT T_INTAB-GL_ACCNT RIGHT DELETING TRAILING SPACE.&lt;/P&gt;&lt;P&gt;      TRANSLATE T_INTAB-GL_ACCNT USING ' 0'.&lt;/P&gt;&lt;P&gt;      SELECT SINGLE * FROM SKB1 WHERE BUKRS = T_INTAB-COMPANY_CODE&lt;/P&gt;&lt;P&gt;                                  AND SAKNR = T_INTAB-GL_ACCNT&lt;/P&gt;&lt;P&gt;                                  AND MWSKZ &amp;lt;&amp;gt; SPACE.&lt;/P&gt;&lt;P&gt;      IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;        T_INTAB-TAX_CODE = C_DFLT_TAX_CODE.&lt;/P&gt;&lt;P&gt;        T_INTAB-JURIS_CODE = C_DFLT_TAX_JURIS.&lt;/P&gt;&lt;P&gt;        MODIFY T_INTAB.&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;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Check if there is difference in credits and debits.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF DOC_TOTAL &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    SKIP 3.&lt;/P&gt;&lt;P&gt;    WRITE:/ 'Credits and Debits do not equal in the document.',&lt;/P&gt;&lt;P&gt;            'The difference is:', DOC_TOTAL CURRENCY P_CUR.&lt;/P&gt;&lt;P&gt;    ERROR_FLAG = 'X'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF NO_ZERO_DOCS &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    WRITE: /'No of line with zero amounts deleted:', NO_ZERO_DOCS.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                               " F_VALIDATE_INPUT_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  GET_ERROR_COST_CENTERS&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;  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;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM GET_ERROR_COST_CENTERS.&lt;/P&gt;&lt;P&gt;  DATA: V_MSSG(22) TYPE C,V_COSTCTR(10) TYPE C,V_STRLEN(3) TYPE C,&lt;/P&gt;&lt;P&gt;        V_SAKNR(10) TYPE C.&lt;/P&gt;&lt;P&gt;  DATA TABIND TYPE I.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT T_INTAB.&lt;/P&gt;&lt;P&gt;    TABIND = SY-TABIX + 1.&lt;/P&gt;&lt;P&gt;    IF  T_INTAB-GL_ACCNT+0(4) = '0000'.&lt;/P&gt;&lt;P&gt;      T_INTAB-GL_ACCNT = T_INTAB-GL_ACCNT+4(6).&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    IF T_INTAB-GL_ACCNT &amp;gt;= '600000' AND T_INTAB-GL_ACCNT &amp;lt;= '999999'.&lt;/P&gt;&lt;P&gt;      CLEAR: V_COSTCTR,V_SAKNR,V_STRLEN.&lt;/P&gt;&lt;P&gt;      CONCATENATE '00000' T_INTAB-COST_CNTR INTO V_COSTCTR.&lt;/P&gt;&lt;P&gt;      IF T_INTAB-COST_CNTR = SPACE AND T_INTAB-POSID = SPACE AND&lt;/P&gt;&lt;P&gt;         T_INTAB-PROF_CTR = SPACE AND T_INTAB-NETWORK = SPACE.&lt;/P&gt;&lt;P&gt;        IF V_MSSG EQ ' '.&lt;/P&gt;&lt;P&gt;          SKIP.&lt;/P&gt;&lt;P&gt;          V_MSSG = 'Message type: Error'.&lt;/P&gt;&lt;P&gt;          WRITE:/ V_MSSG.&lt;/P&gt;&lt;P&gt;          ULINE.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        WRITE:/ TABIND, 'G/L Account', T_INTAB-GL_ACCNT,&lt;/P&gt;&lt;P&gt;                'requires cost object(i.e WBS, cost center etc)'.&lt;/P&gt;&lt;P&gt;        FLAG1 = 'X'.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        IF T_INTAB-COST_CNTR &amp;lt;&amp;gt; SPACE.&lt;/P&gt;&lt;P&gt;          SELECT SINGLE * FROM CSKS WHERE KOKRS = 'CA01' AND&lt;/P&gt;&lt;P&gt;                                          KOSTL = V_COSTCTR&lt;/P&gt;&lt;P&gt;                                          AND ( DATBI &amp;gt;= P_POSTDT AND&lt;/P&gt;&lt;P&gt;                   DATAB &amp;lt;= P_POSTDT ) AND BUKRS = T_INTAB-COMPANY_CODE.&lt;/P&gt;&lt;P&gt;          IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;            IF V_MSSG EQ ' '.&lt;/P&gt;&lt;P&gt;              SKIP.&lt;/P&gt;&lt;P&gt;              V_MSSG = 'Message type: Error'.&lt;/P&gt;&lt;P&gt;              WRITE:/ V_MSSG.&lt;/P&gt;&lt;P&gt;              ULINE.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;            WRITE:/ TABIND, 'Cost center CA01 /'.&lt;/P&gt;&lt;P&gt;            WRITE: T_INTAB-COST_CNTR NO-ZERO.&lt;/P&gt;&lt;P&gt;            WRITE: 'does not exist on ' .&lt;/P&gt;&lt;P&gt;            WRITE: V_POSTDT, 'and in company code',&lt;/P&gt;&lt;P&gt;                   T_INTAB-COMPANY_CODE .&lt;/P&gt;&lt;P&gt;            WRITE: '.'.&lt;/P&gt;&lt;P&gt;            FLAG1 = 'X'.&lt;/P&gt;&lt;P&gt;          ELSE.&lt;/P&gt;&lt;P&gt;            IF CSKS-BKZKP = 'X'.&lt;/P&gt;&lt;P&gt;              IF V_MSSG EQ ' '.&lt;/P&gt;&lt;P&gt;                SKIP.&lt;/P&gt;&lt;P&gt;                V_MSSG = 'Message type: Error'.&lt;/P&gt;&lt;P&gt;                WRITE:/ V_MSSG.&lt;/P&gt;&lt;P&gt;                ULINE.&lt;/P&gt;&lt;P&gt;              ENDIF.&lt;/P&gt;&lt;P&gt;              WRITE:/ TABIND, 'Cost center CA01 /'.&lt;/P&gt;&lt;P&gt;              WRITE: T_INTAB-COST_CNTR NO-ZERO.&lt;/P&gt;&lt;P&gt;              WRITE: 'Blocked on'.&lt;/P&gt;&lt;P&gt;              WRITE: V_POSTDT, 'and in company code',&lt;/P&gt;&lt;P&gt;                     T_INTAB-COMPANY_CODE .&lt;/P&gt;&lt;P&gt;              WRITE: '.'.&lt;/P&gt;&lt;P&gt;              FLAG1 = 'X'.&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;    ENDIF.&lt;/P&gt;&lt;P&gt;    CLEAR V_STRLEN.                    "syalla 07/11/00&lt;/P&gt;&lt;P&gt;    V_STRLEN = STRLEN( T_INTAB-LINE_DESC ).  "syalla 07/11/00&lt;/P&gt;&lt;P&gt;    IF V_STRLEN &amp;gt; 50.                  "syalla 07/11/00&lt;/P&gt;&lt;P&gt;      IF V_MSSG = ' '.                 "syalla 07/11/00&lt;/P&gt;&lt;P&gt;        V_MSSG = 'Message type: Error'."syalla 07/11/00&lt;/P&gt;&lt;P&gt;        WRITE:/ V_MSSG.                "syalla 07/11/00&lt;/P&gt;&lt;P&gt;        ULINE.                         "syalla 07/11/00&lt;/P&gt;&lt;P&gt;      ENDIF.                           "syalla 07/11/00&lt;/P&gt;&lt;P&gt;      IF V_STRLEN &amp;gt; 100.               "syalla 07/11/00&lt;/P&gt;&lt;P&gt;        WRITE: TABIND,&lt;/P&gt;&lt;P&gt;       T_INTAB-LINE_DESC ,'Text exceeds field width shown partial text'.&lt;/P&gt;&lt;P&gt;      ELSE.                            "SYALLA 07/11/00&lt;/P&gt;&lt;P&gt;        WRITE: TABIND,&lt;/P&gt;&lt;P&gt;        T_INTAB-LINE_DESC ,'Text exceeds field width'.  "syalla 07/11/00&lt;/P&gt;&lt;P&gt;        FLAG1 = 'X'.&lt;/P&gt;&lt;P&gt;      ENDIF.                           "SYALLA 07/11/00&lt;/P&gt;&lt;P&gt;    ENDIF.                             "syalla 07/11/00&lt;/P&gt;&lt;P&gt;    CLEAR: V_STRLEN.                   "syalla 07/11/00&lt;/P&gt;&lt;P&gt;    V_STRLEN = STRLEN( T_INTAB-GL_ACCNT ).&lt;/P&gt;&lt;P&gt;    IF V_STRLEN = 1.&lt;/P&gt;&lt;P&gt;      CONCATENATE '000000000' T_INTAB-GL_ACCNT INTO V_SAKNR.&lt;/P&gt;&lt;P&gt;    ELSEIF V_STRLEN = 2.&lt;/P&gt;&lt;P&gt;      CONCATENATE '00000000' T_INTAB-GL_ACCNT INTO V_SAKNR.&lt;/P&gt;&lt;P&gt;    ELSEIF V_STRLEN = 3.&lt;/P&gt;&lt;P&gt;      CONCATENATE '0000000' T_INTAB-GL_ACCNT INTO V_SAKNR.&lt;/P&gt;&lt;P&gt;    ELSEIF V_STRLEN = 4.&lt;/P&gt;&lt;P&gt;      CONCATENATE '000000' T_INTAB-GL_ACCNT INTO V_SAKNR.&lt;/P&gt;&lt;P&gt;    ELSEIF V_STRLEN = 5.&lt;/P&gt;&lt;P&gt;      CONCATENATE '00000' T_INTAB-GL_ACCNT INTO V_SAKNR.&lt;/P&gt;&lt;P&gt;    ELSEIF V_STRLEN = 6.&lt;/P&gt;&lt;P&gt;      CONCATENATE '0000' T_INTAB-GL_ACCNT INTO V_SAKNR.&lt;/P&gt;&lt;P&gt;    ELSEIF V_STRLEN = 7.&lt;/P&gt;&lt;P&gt;      CONCATENATE '000' T_INTAB-GL_ACCNT INTO V_SAKNR.&lt;/P&gt;&lt;P&gt;    ELSEIF V_STRLEN = 8.&lt;/P&gt;&lt;P&gt;      CONCATENATE '00' T_INTAB-GL_ACCNT INTO V_SAKNR.&lt;/P&gt;&lt;P&gt;    ELSEIF V_STRLEN = 9.&lt;/P&gt;&lt;P&gt;      CONCATENATE '0' T_INTAB-GL_ACCNT INTO V_SAKNR.&lt;/P&gt;&lt;P&gt;    ELSEIF V_STRLEN = 10.&lt;/P&gt;&lt;P&gt;      V_SAKNR = T_INTAB-GL_ACCNT .&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    SELECT SINGLE * FROM SKB1 WHERE BUKRS = T_INTAB-COMPANY_CODE AND&lt;/P&gt;&lt;P&gt;                                    SAKNR = V_SAKNR AND&lt;/P&gt;&lt;P&gt;                                    XLOEB = ' '.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC &amp;lt;&amp;gt; 0 .&lt;/P&gt;&lt;P&gt;      IF V_MSSG EQ ' '.&lt;/P&gt;&lt;P&gt;        SKIP.&lt;/P&gt;&lt;P&gt;        V_MSSG = 'Message type: Error'.&lt;/P&gt;&lt;P&gt;        WRITE:/ V_MSSG.&lt;/P&gt;&lt;P&gt;        ULINE.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      WRITE:/ TABIND, 'G/L account'.&lt;/P&gt;&lt;P&gt;      FLAG1 = 'X'.&lt;/P&gt;&lt;P&gt;      WRITE: T_INTAB-GL_ACCNT NO-ZERO.&lt;/P&gt;&lt;P&gt;      WRITE: T_INTAB-COMPANY_CODE NO-ZERO.&lt;/P&gt;&lt;P&gt;      WRITE: 'does not exist '.&lt;/P&gt;&lt;P&gt;      WRITE: '.'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM.                               " GET_ERROR_COST_CENTERS&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 26 Jun 2008 10:44:41 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-06-26T10:44:41Z</dc:date>
    <item>
      <title>bdc</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bdc/m-p/4081155#M975833</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi frnds,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In transaction fbv3 there is a field "Amt in loc curr"(bseg-dmbtr) that is picking of the values &lt;/P&gt;&lt;P&gt;from "VBSEGS-DMBTR".&lt;/P&gt;&lt;P&gt;I have a session method bdc in which the requirement is to:-&lt;/P&gt;&lt;P&gt;a) the user will pick the values from a flat file for the field "Amt in loc curr"&lt;/P&gt;&lt;P&gt;   and if there are values in the flat files it will pick it and display it in the&lt;/P&gt;&lt;P&gt;   amt in loc curr field.&lt;/P&gt;&lt;P&gt;      if for some rows values are not there it will pick up the values of vbsegs-dmbtr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;note:- in this bdc there is no such field or table decalred as "VBSEGS-DMBTR"&lt;/P&gt;&lt;P&gt;       &lt;/P&gt;&lt;P&gt;       but it picks the values in tcode fbv3 for amt in loc curr field.&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;Tables                                                               *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;TABLES:&lt;/P&gt;&lt;P&gt;  ZINC1,&lt;/P&gt;&lt;P&gt;  CSKS,                                " Cost Center table&lt;/P&gt;&lt;P&gt;  SKB1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;  C_ZERO                TYPE P DECIMALS 2      VALUE 0,&lt;/P&gt;&lt;P&gt;  C_TRANS_MODE          TYPE C                 VALUE 'N',&lt;/P&gt;&lt;P&gt;  C_TRANS_UPDATE        TYPE C                 VALUE 'S'   ,&lt;/P&gt;&lt;P&gt;  C_TCDE                LIKE SY-TCODE          VALUE 'F-65',&lt;/P&gt;&lt;P&gt;  C_DEBIT(2)            TYPE C                 VALUE '40',&lt;/P&gt;&lt;P&gt;  C_CREDIT(2)           TYPE C                 VALUE '50',&lt;/P&gt;&lt;P&gt;  C_OFFSET_NUM(3)       TYPE C                 VALUE '998',&lt;/P&gt;&lt;P&gt;  C_OFFSET_ACCOUNT(6)   TYPE C                 VALUE '225100',&lt;/P&gt;&lt;P&gt;  C_DFLT_TAX_CODE(2)    TYPE C                 VALUE 'I0',&lt;/P&gt;&lt;P&gt;  C_DFLT_TAX_JURIS(15)  TYPE C                  VALUE 'CA9513400'.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;- Strings----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;   W_HEADER(47),                       " Holds header data&lt;/P&gt;&lt;P&gt;   W_OLD_HEADER(47) VALUE 'XXXXXXXXXX'.&lt;/P&gt;&lt;P&gt;DATA V_LINE_TEXT(50).                  "syalla 07/11/00&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;- Variables -&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;  V_WORKPATH LIKE ZOUT1-ZWORKPATH,&lt;/P&gt;&lt;P&gt;  V_DATASET LIKE V_WORKPATH,&lt;/P&gt;&lt;P&gt;  V_DEBIT LIKE BSEG-WRBTR,&lt;/P&gt;&lt;P&gt;  V_CREDIT LIKE V_DEBIT,&lt;/P&gt;&lt;P&gt;  V_OFFSET_BALANCE_AMOUNT(16) TYPE C,&lt;/P&gt;&lt;P&gt;  V_OFFSET_AMOUNT(16) TYPE C,&lt;/P&gt;&lt;P&gt;  V_OFFSET_POSTING_KEY(2)  TYPE C,&lt;/P&gt;&lt;P&gt;  V_OFFSET_BALANCE_POSTING LIKE  V_OFFSET_POSTING_KEY,&lt;/P&gt;&lt;P&gt;  V_TOT_RECS LIKE SY-TABIX,&lt;/P&gt;&lt;P&gt;  V_CURRENT_REC LIKE SY-TABIX,&lt;/P&gt;&lt;P&gt;  V_NO_REC_INSERTED TYPE I,&lt;/P&gt;&lt;P&gt;  V_POSTDT(10) TYPE C,&lt;/P&gt;&lt;P&gt;  V_DATE(10) TYPE C VALUE '05/07/1997'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;- Counters -&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;  V_MSG_CNTR     TYPE I,&lt;/P&gt;&lt;P&gt;  V_COUNTER      TYPE I VALUE 1,&lt;/P&gt;&lt;P&gt;  V_CNTR TYPE N.&lt;/P&gt;&lt;P&gt;DATA: FLAG1(1) TYPE C.&lt;/P&gt;&lt;P&gt;DATA: ERROR_FLAG TYPE C,&lt;/P&gt;&lt;P&gt;      SESSION_ID LIKE APQI-QID.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;- Flags -&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;  V_FIRST_TIME_FLAG VALUE 'Y',         " First time flag&lt;/P&gt;&lt;P&gt;  V_NEWDOC_FLAG VALUE 'N',&lt;/P&gt;&lt;P&gt;  V_FILE  LIKE RLGRAP-FILENAME.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;- Structures -&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;*Structure to hold BDC script&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF T_BDCDATA OCCURS 100.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE BDCDATA.&lt;/P&gt;&lt;P&gt;DATA: END OF T_BDCDATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Table to hold the messages displayed during processing&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF T_MSG OCCURS 20.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE FIMSG.&lt;/P&gt;&lt;P&gt;DATA: END OF T_MSG.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;- Internal Tables -&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Table to hold accounting info from desired fields&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF T_INTAB OCCURS 10000,&lt;/P&gt;&lt;P&gt;        COMPANY_CODE(4) TYPE C VALUE SPACE,&lt;/P&gt;&lt;P&gt;        COST_CNTR(10)    TYPE C VALUE SPACE,&lt;/P&gt;&lt;P&gt;        POSTING_KEY(2)  TYPE C,&lt;/P&gt;&lt;P&gt;        GL_ACCNT        LIKE BSEG-HKONT,&lt;/P&gt;&lt;P&gt;        AMOUNT(16) TYPE C,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       LINE_DESC(50)   TYPE C,   "syalla 07/11/00&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        LINE_DESC(102)   TYPE C,       "syalla 07/11/00&lt;/P&gt;&lt;P&gt;        TAX_CODE(2)     TYPE C,&lt;/P&gt;&lt;P&gt;        JURIS_CODE(15)  TYPE C,&lt;/P&gt;&lt;P&gt;        POSID LIKE       PRPS-POSID,&lt;/P&gt;&lt;P&gt;        PROF_CTR(10)     TYPE C,&lt;/P&gt;&lt;P&gt;        NETWORK(12)      TYPE C,&lt;/P&gt;&lt;P&gt;        VORNR(4)         TYPE C,&lt;/P&gt;&lt;P&gt;        ALLOCATION LIKE  BSEG-ZUONR,&lt;/P&gt;&lt;P&gt;        ACCTG_DATE(10)   TYPE C VALUE SPACE,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;begin of code added by manasm&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        AMT_LOC_CURR(20) TYPE C,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;end of code added by manasm&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;END OF T_INTAB.&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;Input Parameters :                                                   *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Select Options (S_...)                                             *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Parameters     (P_...)                                             *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PARAMETERS:&lt;/P&gt;&lt;P&gt;  P_DOCDT          LIKE SY-DATUM OBLIGATORY,&lt;/P&gt;&lt;P&gt;  P_POSTDT         LIKE SY-DATUM OBLIGATORY,&lt;/P&gt;&lt;P&gt;  P_BUKRS          LIKE BKPF-BUKRS OBLIGATORY,&lt;/P&gt;&lt;P&gt;  P_DT             LIKE BKPF-BLART OBLIGATORY,&lt;/P&gt;&lt;P&gt;  P_CUR            LIKE BKPF-WAERS OBLIGATORY,&lt;/P&gt;&lt;P&gt;  P_HDRTXT         LIKE BKPF-BKTXT OBLIGATORY,&lt;/P&gt;&lt;P&gt;  P_REFDOC         LIKE BKPF-XBLNR OBLIGATORY,&lt;/P&gt;&lt;P&gt;  P_DFTTXK         AS CHECKBOX,&lt;/P&gt;&lt;P&gt;  P_BDCNME         LIKE APQI-GROUPID,&lt;/P&gt;&lt;P&gt;  P_INTID          LIKE ZINC1-ZINTID DEFAULT 'JRNL',&lt;/P&gt;&lt;P&gt;  P_FILE LIKE      IBIPPARMS-PATH DEFAULT 'DRIVE:\PATH\FILE',&lt;/P&gt;&lt;P&gt;  P_LOCAL(1)       DEFAULT 'X'  .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN SKIP 2.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF LINE.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN COMMENT 1(76) TEXT-001.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF LINE.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF LINE.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN COMMENT 1(16) TEXT-002.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF LINE.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK B1.&lt;/P&gt;&lt;P&gt;************************************************************************&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;  CALL FUNCTION 'F4_FILENAME'&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      FILE_NAME = P_FILE&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;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.                    "Main processing&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Changed and added by Vijay Chavva on 7/26/00.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;This report execution will be monitored from now onwards.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;DV1K921585&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  INCLUDE ZREPTRAC.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;upload the flat file from either the local drive or remote server.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  MOVE P_FILE TO V_FILE.&lt;/P&gt;&lt;P&gt;  PERFORM F_UPLOAD_FILE.&lt;/P&gt;&lt;P&gt;  PERFORM F_VALIDATE_INPUT_DATA CHANGING ERROR_FLAG.&lt;/P&gt;&lt;P&gt;  CHECK ERROR_FLAG = SPACE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM F_BDC_OPEN_GROUP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;put the date in correct format.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  WRITE P_DOCDT MM/DD/YYYY TO V_DATE.&lt;/P&gt;&lt;P&gt;  WRITE P_POSTDT MM/DD/YYYY TO V_POSTDT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;total number of records in int tab.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  DESCRIBE TABLE T_INTAB LINES V_TOT_RECS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate bdc table and call transaction at header change.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM F_POPULATE_BDC_TABLE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Save at end of header for last rec in loop (on screen 2)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM F_SAVE_LAST_DATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;call f-65 using the data in t_bdcdata for last record in loop.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM F_BDC_CALL_TRANSACTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;close bdc group.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM F_BDC_CLOSE_GROUP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Report on error messages.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM F_MSG_WRITE_MESSAGES.&lt;/P&gt;&lt;P&gt;  IF V_NO_REC_INSERTED = 0.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'BDC_OBJECT_DELETE'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        QUEUE_ID         = SESSION_ID&lt;/P&gt;&lt;P&gt;      EXCEPTIONS&lt;/P&gt;&lt;P&gt;        NOT_FOUND        = 1&lt;/P&gt;&lt;P&gt;        INVALID_DATATYPE = 2&lt;/P&gt;&lt;P&gt;        OTHERS           = 3.&lt;/P&gt;&lt;P&gt;  ENDIF.&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;END-OF-SELECTION.    "Error handling and clean-up processing&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;&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;TOP-OF-PAGE.         "Header (Appears always on top of the screen.)&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;  PERFORM HEADER USING SY-TITLE SY-REPID '' ''.&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;END-OF-PAGE.                           "Footer&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  f_upload_file&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;Read file from the interface architecture or from a local file       *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;depending on how the "Local file" flag is set.                       *&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 F_UPLOAD_FILE.&lt;/P&gt;&lt;P&gt;  DATA NO_LINES TYPE I.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF P_LOCAL NE 'X'.&lt;/P&gt;&lt;P&gt;    PERFORM F_GET_INBOUND_DIRECTORY.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    OPEN DATASET V_DATASET FOR INPUT IN TEXT MODE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;read dataset into internal table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    DO.&lt;/P&gt;&lt;P&gt;      READ DATASET V_DATASET INTO T_INTAB.&lt;/P&gt;&lt;P&gt;      IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;        EXIT.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      APPEND T_INTAB.&lt;/P&gt;&lt;P&gt;    ENDDO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'WS_UPLOAD'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        FILENAME            = V_FILE&lt;/P&gt;&lt;P&gt;        FILETYPE            = 'DAT'&lt;/P&gt;&lt;P&gt;      TABLES&lt;/P&gt;&lt;P&gt;        DATA_TAB            = T_INTAB&lt;/P&gt;&lt;P&gt;      EXCEPTIONS&lt;/P&gt;&lt;P&gt;        CONVERSION_ERROR    = 1&lt;/P&gt;&lt;P&gt;        INVALID_TABLE_WIDTH = 2&lt;/P&gt;&lt;P&gt;        INVALID_TYPE        = 3&lt;/P&gt;&lt;P&gt;        NO_BATCH            = 4&lt;/P&gt;&lt;P&gt;        UNKNOWN_ERROR       = 5&lt;/P&gt;&lt;P&gt;        OTHERS              = 6.&lt;/P&gt;&lt;P&gt;    If SY-SUBRC NE C_ZERO.&lt;/P&gt;&lt;P&gt;      MESSAGE E904 WITH P_FILE.&lt;/P&gt;&lt;P&gt;      PERFORM F_MSG_COLLECT.&lt;/P&gt;&lt;P&gt;      Stop.&lt;/P&gt;&lt;P&gt;    Endif.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  DELETE T_INTAB INDEX 1.&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE T_INTAB LINES NO_LINES.&lt;/P&gt;&lt;P&gt;  DELETE T_INTAB INDEX NO_LINES.&lt;/P&gt;&lt;P&gt;ENDFORM.                               " f_upload_file&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  F_BDC_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;Opens the session to process the 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 F_BDC_OPEN_GROUP.&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_BDCNME&lt;/P&gt;&lt;P&gt;      USER                = SY-UNAME&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      QID                 = SESSION_ID&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      CLIENT_INVALID      = 01&lt;/P&gt;&lt;P&gt;      DESTINATION_INVALID = 02&lt;/P&gt;&lt;P&gt;      GROUP_INVALID       = 03&lt;/P&gt;&lt;P&gt;      HOLDDATE_INVALID    = 04&lt;/P&gt;&lt;P&gt;      INTERNAL_ERROR      = 05&lt;/P&gt;&lt;P&gt;      QUEUE_ERROR         = 06&lt;/P&gt;&lt;P&gt;      RUNNING             = 07&lt;/P&gt;&lt;P&gt;      USER_INVALID        = 08.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC NE C_ZERO.&lt;/P&gt;&lt;P&gt;    MESSAGE E904 WITH 'BDC_OPEN_GROUP'.&lt;/P&gt;&lt;P&gt;    PERFORM F_MSG_COLLECT.&lt;/P&gt;&lt;P&gt;    STOP.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " F_BDC_OPEN_GROUP&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  F_MSG_COLLECT&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;Stores the message in the internal table T_MSG.                      *&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 F_MSG_COLLECT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR T_MSG.&lt;/P&gt;&lt;P&gt;  T_MSG-MSGID = SY-MSGID.&lt;/P&gt;&lt;P&gt;  T_MSG-MSGTY = SY-MSGTY.&lt;/P&gt;&lt;P&gt;  T_MSG-MSGNO = SY-MSGNO.&lt;/P&gt;&lt;P&gt;  T_MSG-MSGV1 = SY-MSGV1.&lt;/P&gt;&lt;P&gt;  T_MSG-MSGV2 = SY-MSGV2.&lt;/P&gt;&lt;P&gt;  T_MSG-MSGV3 = SY-MSGV3.&lt;/P&gt;&lt;P&gt;  T_MSG-MSGV4 = SY-MSGV4.&lt;/P&gt;&lt;P&gt;  APPEND T_MSG.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " F_MSG_COLLECT&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  F_BDC_ADD_DYNPRO_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;Creates script based on internal table                               *&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 F_BDC_ADD_DYNPRO_DATA USING DYNBEGIN NAME VALUE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR T_BDCDATA.&lt;/P&gt;&lt;P&gt;  IF DYNBEGIN = 'X'.&lt;/P&gt;&lt;P&gt;    MOVE NAME   TO T_BDCDATA-PROGRAM.&lt;/P&gt;&lt;P&gt;    MOVE VALUE  TO T_BDCDATA-DYNPRO.&lt;/P&gt;&lt;P&gt;    MOVE 'X'    TO T_BDCDATA-DYNBEGIN.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    MOVE NAME   TO T_BDCDATA-FNAM.&lt;/P&gt;&lt;P&gt;    MOVE VALUE  TO T_BDCDATA-FVAL.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  APPEND T_BDCDATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "F_BDC_ADD_DYNPRO_DATA&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  F_BDC_INSERT_TRANSACTION&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;Places script into SAP session to be processed                       *&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 F_BDC_INSERT_TRANSACTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  TRANSLATE C_TCDE TO UPPER CASE.&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'BDC_INSERT'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      TCODE          = C_TCDE&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      DYNPROTAB      = T_BDCDATA&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      INTERNAL_ERROR = 01&lt;/P&gt;&lt;P&gt;      NOT_OPEN       = 02&lt;/P&gt;&lt;P&gt;      QUEUE_ERROR    = 03&lt;/P&gt;&lt;P&gt;      TCODE_INVALID  = 04.&lt;/P&gt;&lt;P&gt;  IF V_CURRENT_REC EQ V_TOT_RECS.&lt;/P&gt;&lt;P&gt;    MESSAGE S002 WITH P_BDCNME.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC NE C_ZERO.&lt;/P&gt;&lt;P&gt;    MESSAGE E904 WITH 'BDC_INSERT'.&lt;/P&gt;&lt;P&gt;    PERFORM F_MSG_COLLECT.&lt;/P&gt;&lt;P&gt;    STOP.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    V_NO_REC_INSERTED = V_NO_REC_INSERTED + 1.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " F_BDC_INSERT_TRANSACTION&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  F_BDC_CALL_TRANSACTION&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;This form places the script created by F_BDC_ADD_DYNPRO_Data into the*&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;opened session.  It will be processed automatically and leave errors *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;to be processed by the user 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;FORM F_BDC_CALL_TRANSACTION.&lt;/P&gt;&lt;P&gt;  DATA: V_INFO(20) VALUE 'for set # '.&lt;/P&gt;&lt;P&gt;  V_CNTR = V_CNTR + 1.&lt;/P&gt;&lt;P&gt;  CALL TRANSACTION C_TCDE&lt;/P&gt;&lt;P&gt;     Using T_BDCDATA&lt;/P&gt;&lt;P&gt;     MODE C_TRANS_MODE&lt;/P&gt;&lt;P&gt;     UPDATE C_TRANS_UPDATE.&lt;/P&gt;&lt;P&gt;  If Sy-Subrc NE 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   perform f_msg_collect.     "syalla 06/07/00 asr#9886&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CONCATENATE P_BDCNME V_INFO V_CNTR INTO V_INFO.&lt;/P&gt;&lt;P&gt;    MESSAGE S003 WITH V_INFO.&lt;/P&gt;&lt;P&gt;    PERFORM F_MSG_COLLECT.&lt;/P&gt;&lt;P&gt;    PERFORM F_BDC_INSERT_TRANSACTION.&lt;/P&gt;&lt;P&gt;  Else.&lt;/P&gt;&lt;P&gt;  Endif.&lt;/P&gt;&lt;P&gt;  Refresh T_BDCDATA.&lt;/P&gt;&lt;P&gt;ENDFORM.                               " F_BDC_CALL_TRANSACTION&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  F_BDC_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;Closes the session to be processed                                   *&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 F_BDC_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    = 01&lt;/P&gt;&lt;P&gt;      QUEUE_ERROR = 02.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC NE C_ZERO.&lt;/P&gt;&lt;P&gt;    MESSAGE E904 WITH 'BDC_CLOSE_GROUP'.&lt;/P&gt;&lt;P&gt;    PERFORM F_MSG_COLLECT.&lt;/P&gt;&lt;P&gt;    STOP.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    PERFORM F_MSG_COLLECT.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " F_BDC_CLOSE_GROUP&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  F_MSG_WRITE_MESSAGES&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;If no error messages were found then it says that the program has    *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;been completed successfully. If there are messages it displays them. *&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 F_MSG_WRITE_MESSAGES.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE T_MSG LINES V_MSG_CNTR.&lt;/P&gt;&lt;P&gt;  IF V_MSG_CNTR LT 1.&lt;/P&gt;&lt;P&gt;    MESSAGE I001.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    SORT T_MSG BY MSGTY.&lt;/P&gt;&lt;P&gt;    WRITE:&lt;/P&gt;&lt;P&gt;      / 'The following',&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       V_MSG_CNTR,      "SYALLA 06/07/00 ASR#&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        'messages were written:'.&lt;/P&gt;&lt;P&gt;    SKIP.&lt;/P&gt;&lt;P&gt;    PERFORM GET_ERROR_COST_CENTERS.    "SYALLA 06/07/00 ASR#9886&lt;/P&gt;&lt;P&gt;    ULINE.&lt;/P&gt;&lt;P&gt;    IF  FLAG1 = 'X'.&lt;/P&gt;&lt;P&gt;      WRITE:&lt;/P&gt;&lt;P&gt;/ 'Program completed with errors. Use SM35 to process the BDC session:',&lt;/P&gt;&lt;P&gt;  P_BDCNME.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      WRITE:&lt;/P&gt;&lt;P&gt; 'Program completed Successfully use SM35 to process the BDC session: ',&lt;/P&gt;&lt;P&gt;      P_BDCNME.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Begin Of delete SYALLA 07/18/00&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   LOOP AT T_MSG.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ON CHANGE OF T_MSG-MSGTY.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       SKIP.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       WRITE:&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         / 'Message type','Successful'.&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;           T_MSG-MSGTY.       "SYALLA 07/18/00&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       ULINE.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ENDON.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     CALL FUNCTION 'WRITE_MESSAGE'&lt;/P&gt;&lt;/LI&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;               MSGID  = T_MSG-MSGID&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               MSGNO  = T_MSG-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               MSGTY  = T_MSG-MSGTY&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               MSGV1  = T_MSG-MSGV1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               MSGV2  = T_MSG-MSGV2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               MSGV3  = T_MSG-MSGV3&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               MSGV4  = T_MSG-MSGV4&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               MSGV5  = SPACE&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;               MESSG  = T_MESSAGE&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;               OTHERS = 1.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     WRITE: / T_MESSAGE-MSGTX.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ENDLOOP.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;End Of delete SYALLA 07/18/00&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;ENDFORM.                               " F_MSG_WRITE_MESSAGES&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  F_GET_INBOUND_DIRECTORY&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;  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;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM F_GET_INBOUND_DIRECTORY.&lt;/P&gt;&lt;P&gt;  SELECT SINGLE * FROM ZINC1&lt;/P&gt;&lt;P&gt;    WHERE ZINTID = P_INTID.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;    MESSAGE E903 WITH P_INTID 'INTID' 'ZINC1'.&lt;/P&gt;&lt;P&gt;    PERFORM F_MSG_COLLECT.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC = 0 AND ZINC1-ZPROCESS = 'X'.&lt;/P&gt;&lt;P&gt;    V_WORKPATH = ZINC1-ZWORKPATH.&lt;/P&gt;&lt;P&gt;    CONCATENATE V_WORKPATH P_FILE INTO V_DATASET.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                               " F_GET_INBOUND_DIRECTORY&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  f_fill_all_screens&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;      This subroutine populated the bdc table when the header changes*&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;  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;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM F_FILL_ALL_SCREENS.&lt;/P&gt;&lt;P&gt;  IF V_FIRST_TIME_FLAG EQ 'N'.         "If not first loop&lt;/P&gt;&lt;P&gt;*save at end of header (on screen 2)&lt;/P&gt;&lt;P&gt;    PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;          'X'           'SAPLF040'         '0300',&lt;/P&gt;&lt;P&gt;          ' '           'bdc_okcode'       '/11',&lt;/P&gt;&lt;P&gt;          'X'           'SAPLKACB'         '0002',&lt;/P&gt;&lt;P&gt;          ' '           'bdc_okcode'       '/8'.&lt;/P&gt;&lt;P&gt;    PERFORM F_BDC_CALL_TRANSACTION.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  V_FIRST_TIME_FLAG = 'N'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*top of screen 1&lt;/P&gt;&lt;P&gt;  PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;  'X'           'SAPLF040'         '0100',&lt;/P&gt;&lt;P&gt;  ' '           'bkpf-bukrs'       T_INTAB-COMPANY_CODE,&lt;/P&gt;&lt;P&gt;  ' '           'bkpf-bldat'       T_INTAB-ACCTG_DATE,&lt;/P&gt;&lt;P&gt;  ' '           'bkpf-budat'       V_POSTDT,&lt;/P&gt;&lt;P&gt;  ' '           'bkpf-blart'       P_DT,&lt;/P&gt;&lt;P&gt;  ' '           'bkpf-waers'       P_CUR,&lt;/P&gt;&lt;P&gt;  ' '           'bkpf-bktxt'       P_HDRTXT,&lt;/P&gt;&lt;P&gt;  ' '           'bkpf-xblnr'       P_REFDOC,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*bottom of screen 1&lt;/P&gt;&lt;P&gt;  ' '           'rf05v-newko'      T_INTAB-GL_ACCNT,&lt;/P&gt;&lt;P&gt;  ' '           'rf05v-newbs'      T_INTAB-POSTING_KEY,&lt;/P&gt;&lt;P&gt;  ' '           'bdc_okcode'       '/0'.&lt;/P&gt;&lt;P&gt;  V_LINE_TEXT  = T_INTAB-LINE_DESC.    "syalla 07/11/00&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*top of screen 2&lt;/P&gt;&lt;P&gt;  PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;  'X'           'SAPLF040'         '0300',&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ' '           'bseg-wrbtr'       T_INTAB-AMOUNT,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;begin of code added by manasm&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;*IF T_INTAB-AMT_LOC_CURR NE SPACE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ' '           'bseg-dmbtr'       T_INTAB-AMT_LOC_CURR,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ' '           'bdc_okcode'       '/0'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ELSE.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ' '           'bdc_okcode'       '/0'.&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;**end of code added by manasm&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; ' '           'bseg-sgtxt'       T_INTAB-LINE_DESC,  "syalla 07/11/00&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**begin of code added by manas&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; 'X'           'SAPLF040'         '0300',&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;**end of code added by manas&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ' '           'bseg-sgtxt'       V_LINE_TEXT,  "syalla 07/11/00&lt;/P&gt;&lt;P&gt;  ' '           'BSEG-ZUONR'       T_INTAB-ALLOCATION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR V_LINE_TEXT.                   "syalla 07/11/00&lt;/P&gt;&lt;P&gt;  IF T_INTAB-TAX_CODE NE SPACE.                             "new&lt;/P&gt;&lt;P&gt;    PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;        ' '           'bseg-mwskz'       T_INTAB-TAX_CODE.&lt;/P&gt;&lt;P&gt;    IF T_INTAB-JURIS_CODE NE SPACE.&lt;/P&gt;&lt;P&gt;      PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;          ' '           'bseg-txjcd'       T_INTAB-JURIS_CODE.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;        ' '           'bdc_okcode'       '/0'.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;    ' '           'bdc_okcode'       '/0'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  IF T_INTAB-PROF_CTR NE SPACE AND T_INTAB-COST_CNTR NE SPACE.&lt;/P&gt;&lt;P&gt;    PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;    'X'           'SAPLKACB'         '0002',&lt;/P&gt;&lt;P&gt;    ' '           'cobl-prctr'       T_INTAB-PROF_CTR,&lt;/P&gt;&lt;P&gt;    ' '           'cobl-kostl'       T_INTAB-COST_CNTR,&lt;/P&gt;&lt;P&gt;    ' '           'bdc_okcode'       '/8'.&lt;/P&gt;&lt;P&gt;  ELSEIF T_INTAB-COST_CNTR NE  SPACE.&lt;/P&gt;&lt;P&gt;    PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;    'X'           'SAPLKACB'         '0002',&lt;/P&gt;&lt;P&gt;    ' '           'cobl-kostl'       T_INTAB-COST_CNTR,&lt;/P&gt;&lt;P&gt;    ' '           'bdc_okcode'       '/8'.&lt;/P&gt;&lt;P&gt;  ELSEIF T_INTAB-PROF_CTR NE  SPACE.&lt;/P&gt;&lt;P&gt;    PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;    'X'           'SAPLKACB'         '0002',&lt;/P&gt;&lt;P&gt;    ' '           'cobl-prctr'       T_INTAB-PROF_CTR,&lt;/P&gt;&lt;P&gt;    ' '           'bdc_okcode'       '/8'.&lt;/P&gt;&lt;P&gt;  ELSEIF T_INTAB-POSID NE SPACE.&lt;/P&gt;&lt;P&gt;    PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;    'X'           'SAPLKACB'         '0002',&lt;/P&gt;&lt;P&gt;    ' '           'COBL-PS_PSP_PNR'  T_INTAB-POSID,&lt;/P&gt;&lt;P&gt;    ' '           'bdc_okcode'       '/8'.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;    'X'           'SAPLKACB'         '0002',&lt;/P&gt;&lt;P&gt;    ' '           'bdc_okcode'       '/8'.&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.                               " f_fill_all_screens&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  f_fill_screen_two&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;    This subroutine will post next line items.  So it will do the    *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    bottom of screen 2 and it will do the coding block or screen thre*&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;  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;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM F_FILL_SCREEN_TWO.&lt;/P&gt;&lt;P&gt;*bottom of screen 2&lt;/P&gt;&lt;P&gt;  PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt; 'X'           'SAPLF040'         '0300',&lt;/P&gt;&lt;P&gt;  ' '           'rf05v-newko'      T_INTAB-GL_ACCNT,&lt;/P&gt;&lt;P&gt;  ' '           'rf05v-newbs'      T_INTAB-POSTING_KEY,&lt;/P&gt;&lt;P&gt;  ' '           'RF05V-NEWBK'      T_INTAB-COMPANY_CODE,&lt;/P&gt;&lt;P&gt;  ' '           'bdc_okcode'       '/0',&lt;/P&gt;&lt;P&gt;  'X'           'SAPLKACB'         '0002',&lt;/P&gt;&lt;P&gt;  ' '           'BDC_OKCODE'        '/8'.&lt;/P&gt;&lt;P&gt;  V_LINE_TEXT = T_INTAB-LINE_DESC.     "syalla 07/11/00&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*top of screen 2&lt;/P&gt;&lt;P&gt;  PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;   'X'           'SAPLF040'         '0300',&lt;/P&gt;&lt;P&gt;   ' '           'bseg-wrbtr'       T_INTAB-AMOUNT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*begin of code added by manasm&lt;/P&gt;&lt;P&gt;IF T_INTAB-AMT_LOC_CURR NE SPACE.&lt;/P&gt;&lt;P&gt;  PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;  ' '           'bseg-dmbtr'       T_INTAB-AMT_LOC_CURR,&lt;/P&gt;&lt;P&gt;  ' '           'bdc_okcode'       '/0'.&lt;/P&gt;&lt;P&gt; ELSE .&lt;/P&gt;&lt;P&gt;  PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;  ' '           'bdc_okcode'       '/0'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;*end of code added by manasm&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;' '           'bseg-sgtxt'       T_INTAB-LINE_DESC ,    "syalla07/11/0&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*begin of code added by manas&lt;/P&gt;&lt;P&gt; PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;  'X'           'SAPLF040'         '0300',&lt;/P&gt;&lt;P&gt;*end of code added by manas&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ' '           'bseg-sgtxt'       V_LINE_TEXT,  "syalla 07/11/00&lt;/P&gt;&lt;P&gt;  ' '           'BSEG-ZUONR'       T_INTAB-ALLOCATION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR V_LINE_TEXT.&lt;/P&gt;&lt;P&gt;  IF T_INTAB-TAX_CODE NE SPACE.                             "new&lt;/P&gt;&lt;P&gt;    PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;        ' '           'bseg-mwskz'       T_INTAB-TAX_CODE.&lt;/P&gt;&lt;P&gt;    IF T_INTAB-JURIS_CODE NE SPACE.&lt;/P&gt;&lt;P&gt;      PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;          ' '           'bseg-txjcd'       T_INTAB-JURIS_CODE.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;        ' '           'bdc_okcode'       '/0'.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;    ' '           'bdc_okcode'       '/0'.&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;  IF T_INTAB-PROF_CTR NE SPACE AND T_INTAB-COST_CNTR NE SPACE.&lt;/P&gt;&lt;P&gt;    PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;    'X'           'SAPLKACB'         '0002',&lt;/P&gt;&lt;P&gt;    ' '           'cobl-prctr'       T_INTAB-PROF_CTR,&lt;/P&gt;&lt;P&gt;    ' '           'cobl-kostl'       T_INTAB-COST_CNTR,&lt;/P&gt;&lt;P&gt;    ' '           'bdc_okcode'       '/8'.&lt;/P&gt;&lt;P&gt;  ELSEIF T_INTAB-COST_CNTR NE  SPACE.&lt;/P&gt;&lt;P&gt;    PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;    'X'           'SAPLKACB'         '0002',&lt;/P&gt;&lt;P&gt;    ' '           'cobl-kostl'       T_INTAB-COST_CNTR,&lt;/P&gt;&lt;P&gt;    ' '           'bdc_okcode'       '/8'.&lt;/P&gt;&lt;P&gt;  ELSEIF T_INTAB-PROF_CTR NE  SPACE.&lt;/P&gt;&lt;P&gt;    PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;    'X'           'SAPLKACB'         '0002',&lt;/P&gt;&lt;P&gt;    ' '           'COBL-PRCTR'       T_INTAB-PROF_CTR,&lt;/P&gt;&lt;P&gt;    ' '           'bdc_okcode'       '/8'.&lt;/P&gt;&lt;P&gt;  ELSEIF T_INTAB-POSID NE SPACE.&lt;/P&gt;&lt;P&gt;    PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;    'X'           'SAPLKACB'         '0002',&lt;/P&gt;&lt;P&gt;    ' '           'COBL-PS_PSP_PNR'  T_INTAB-POSID,&lt;/P&gt;&lt;P&gt;    ' '           'bdc_okcode'       '/8'.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;    'X'           'SAPLKACB'         '0002',&lt;/P&gt;&lt;P&gt;    ' '           'bdc_okcode'       '/8'.&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;ENDFORM.                               " f_fill_screen_two&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  F_FILL_OFFSET_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;      This subroutine will post to the offset account and offset     *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      amount and it will be considered another line item but it's    *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      purpose is to balance debits and credits if a document is being*&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      split becuase SAP allows only 999 line items per doc or per    *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      header.&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;  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;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM F_FILL_OFFSET_RECORD USING V_OFFSET_AMOUNT V_OFFSET_POSTING_KEY.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*bottom of screen 2&lt;/P&gt;&lt;P&gt;  PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt; 'X'           'SAPLF040'         '0300',&lt;/P&gt;&lt;P&gt;  ' '           'rf05v-newko'      C_OFFSET_ACCOUNT,&lt;/P&gt;&lt;P&gt;  ' '           'rf05v-newbs'      V_OFFSET_POSTING_KEY,&lt;/P&gt;&lt;P&gt;  ' '           'bdc_okcode'       '/0',&lt;/P&gt;&lt;P&gt;  'X'           'SAPLKACB'         '0002',&lt;/P&gt;&lt;P&gt;  ' '           'BDC_OKCODE'        '/8'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*top of screen 2&lt;/P&gt;&lt;P&gt;  PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;  'X'           'SAPLF040'         '0300',&lt;/P&gt;&lt;P&gt;  ' '           'bseg-wrbtr'       V_OFFSET_AMOUNT,&lt;/P&gt;&lt;P&gt;  ' '           'bdc_okcode'       '/0',&lt;/P&gt;&lt;P&gt;  'X'           'SAPLKACB'         '0002',&lt;/P&gt;&lt;P&gt;  ' '           'bdc_okcode'       '/8'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Here, I am assigning that offset amount into another variable so that&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;when we do another offset entry at the beginning of the next doc,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;inorder to zero out the offset account, then we can call upon this&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;variable which will store the amount of the offset entry for the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;previous doc.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  V_OFFSET_BALANCE_AMOUNT = V_OFFSET_AMOUNT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;This is also a preparation for the offset entry at the beginning of&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;the next doc.  We want to store the opposit of the current posting so&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;that we can correctly post a debit or a credit.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF V_OFFSET_POSTING_KEY = C_CREDIT.&lt;/P&gt;&lt;P&gt;    V_OFFSET_BALANCE_POSTING = C_DEBIT.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    V_OFFSET_BALANCE_POSTING = C_CREDIT.&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;Since we already posted to the offset for the current doc, we want to&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;zero out these variable so they can be initialized for the next doc.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  V_CREDIT = 0.&lt;/P&gt;&lt;P&gt;  V_DEBIT = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;We want to save the doc and then we want to call the transaction again&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;since that's the only way f-02 will allow you to input new header&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;data.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM F_SAVE_LAST_DATA.&lt;/P&gt;&lt;P&gt;  PERFORM F_BDC_CALL_TRANSACTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " F_FILL_OFFSET_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;P&gt;*&amp;amp;      Form  F_SAVE_LAST_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;     save the current doc before you can post to a different header  *&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;  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;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM F_SAVE_LAST_DATA.&lt;/P&gt;&lt;P&gt;  PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;          'X'           'SAPLF040'         '0300',&lt;/P&gt;&lt;P&gt;          ' '           'bdc_okcode'       '/11',&lt;/P&gt;&lt;P&gt;          'X'           'SAPLKACB'         '0002',&lt;/P&gt;&lt;P&gt;          ' '           'bdc_okcode'       '/8'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " F_SAVE_LAST_DATA&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  F_POST_CREDIT_DEBIT_BALANCE&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;      This subroutine keeps a running tab of the credits and debits  *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      for each document.                                             *&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;  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;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM F_POST_CREDIT_DEBIT_BALANCE.&lt;/P&gt;&lt;P&gt;  IF T_INTAB-POSTING_KEY = C_CREDIT.&lt;/P&gt;&lt;P&gt;    V_CREDIT = V_CREDIT + T_INTAB-AMOUNT.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    V_DEBIT = V_DEBIT + T_INTAB-AMOUNT.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                               " F_POST_CREDIT_DEBIT_BALANCE&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  f_post_to_offset_account&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;      This sub posts to the offset account.                          *&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;  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;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM F_POST_TO_OFFSET_ACCOUNT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF V_DEBIT &amp;gt; V_CREDIT.&lt;/P&gt;&lt;P&gt;    V_OFFSET_AMOUNT = V_DEBIT - V_CREDIT.&lt;/P&gt;&lt;P&gt;    V_OFFSET_POSTING_KEY = C_CREDIT.&lt;/P&gt;&lt;P&gt;    PERFORM F_FILL_OFFSET_RECORD USING V_OFFSET_AMOUNT&lt;/P&gt;&lt;P&gt;                                 V_OFFSET_POSTING_KEY.&lt;/P&gt;&lt;P&gt;  ELSEIF V_CREDIT &amp;gt; V_DEBIT.&lt;/P&gt;&lt;P&gt;    V_OFFSET_AMOUNT = V_CREDIT - V_DEBIT.&lt;/P&gt;&lt;P&gt;    V_OFFSET_POSTING_KEY = C_DEBIT.&lt;/P&gt;&lt;P&gt;    PERFORM F_FILL_OFFSET_RECORD USING V_OFFSET_AMOUNT&lt;/P&gt;&lt;P&gt;                                V_OFFSET_POSTING_KEY.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    "F_POST_TO_OFFSET_ACCOUNT&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  F_CONCAT_HEADER&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;      concatenates the fields into one variable for comparison       *&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;  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;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM F_CONCAT_HEADER.&lt;/P&gt;&lt;P&gt;  CONCATENATE:" t_intab-company_code SRINIP ASR 15071&lt;/P&gt;&lt;P&gt;               P_DT P_REFDOC P_HDRTXT INTO W_HEADER.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " F_CONCAT_HEADER&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  F_BALANCE_OFFSET_ACCOUNT&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;      This will be the offset posting with the header info, which is *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      at the beginning of the next document.  It basically zeros out *&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      the offset account.&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;  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;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM F_BALANCE_OFFSET_ACCOUNT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*top of screen 1&lt;/P&gt;&lt;P&gt;  PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;  'X'           'SAPLF040'         '0100',&lt;/P&gt;&lt;P&gt;  ' '           'bkpf-bukrs'       T_INTAB-COMPANY_CODE,&lt;/P&gt;&lt;P&gt;  ' '           'bkpf-bldat'       T_INTAB-ACCTG_DATE,&lt;/P&gt;&lt;P&gt;  ' '           'bkpf-budat'       V_POSTDT,&lt;/P&gt;&lt;P&gt;  ' '           'bkpf-blart'       P_DT,&lt;/P&gt;&lt;P&gt;  ' '           'bkpf-waers'       P_CUR,&lt;/P&gt;&lt;P&gt;  ' '           'bkpf-bktxt'       P_HDRTXT,&lt;/P&gt;&lt;P&gt;  ' '           'bkpf-xblnr'       P_REFDOC,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*bottom of screen 1&lt;/P&gt;&lt;P&gt;  ' '           'rf05v-newko'      C_OFFSET_ACCOUNT,&lt;/P&gt;&lt;P&gt;  ' '           'rf05v-newbs'      V_OFFSET_BALANCE_POSTING,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;' '           'RF05V-NEWBK'      t_intab-company_code,&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ' '           'bdc_okcode'       '/0'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*top of screen 2&lt;/P&gt;&lt;P&gt;  PERFORM F_BDC_ADD_DYNPRO_DATA USING:&lt;/P&gt;&lt;P&gt;  'X'           'SAPLF040'         '0300',&lt;/P&gt;&lt;P&gt;  ' '           'bseg-wrbtr'       V_OFFSET_BALANCE_AMOUNT,&lt;/P&gt;&lt;P&gt;  ' '           'bdc_okcode'       '/0',&lt;/P&gt;&lt;P&gt;  'X'           'SAPLKACB'         '0002',&lt;/P&gt;&lt;P&gt;  ' '           'bdc_okcode'       '/8'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Since this is actually the first line item in a new doc, then the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;amount has to be stored so that it won't throw off the balance at the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;end of the doc.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF V_OFFSET_BALANCE_POSTING EQ C_CREDIT.&lt;/P&gt;&lt;P&gt;    V_CREDIT = V_CREDIT + V_OFFSET_BALANCE_AMOUNT.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    V_DEBIT = V_DEBIT + V_OFFSET_BALANCE_AMOUNT.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " F_BALANCE_OFFSET_ACCOUNT&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  F_POPULATE_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;      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;  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;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM F_POPULATE_BDC_TABLE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT T_INTAB.&lt;/P&gt;&lt;P&gt;    SET PARAMETER ID 'PRC' FIELD '          '.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    V_CURRENT_REC = SY-TABIX.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Hardcode the date to current date, the currency to 'USD'&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    T_INTAB-ACCTG_DATE = V_DATE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  t_intab-company_code = p_bukrs. "SRINIP ASR 15071&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    T_INTAB-LINE_DESC  = T_INTAB-LINE_DESC.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Need to keep a running tab of the credits and debits for each document&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM F_POST_CREDIT_DEBIT_BALANCE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;loop through internal table and make the five key fields into one&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;variable called header.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM F_CONCAT_HEADER.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;populate relevant parts of internal bdc table if the header changes,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;and when it stays the same&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF V_NEWDOC_FLAG EQ 'Y'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;if it's a new doc., meaning there are 999 line items posted already&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;and it's about to save but the debits don't equal the credits then&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;the first thing it'll do in the new doc is post to the offset account&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;the same amount that was posted in the last line item in the previous&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;doc.  This offset line item will pull a new header as well and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;immediately after the offset is posted then the current line item in&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;our loop will post as the next line item.  So that's two entries, thus&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;why the counter is incremented by two.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      IF V_OFFSET_BALANCE_AMOUNT NE 0.&lt;/P&gt;&lt;P&gt;        PERFORM F_BALANCE_OFFSET_ACCOUNT.&lt;/P&gt;&lt;P&gt;        PERFORM F_FILL_SCREEN_TWO.&lt;/P&gt;&lt;P&gt;        V_COUNTER = 2.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;if it's a new doc but the entries are balanced then we just continue&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;and enter another line item and increment the counter by one.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        PERFORM F_FILL_ALL_SCREENS.&lt;/P&gt;&lt;P&gt;        V_COUNTER = 1.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;since we did all the offset accounting necessary at the beginning of&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;a new doc then we indicate that it no longer a new doc and we empty&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;out our variable that keeps track of the offset amount.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      V_NEWDOC_FLAG = 'N'.&lt;/P&gt;&lt;P&gt;      V_OFFSET_BALANCE_AMOUNT = 0.&lt;/P&gt;&lt;P&gt;    ELSEIF W_HEADER NE W_OLD_HEADER.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If the header has changed then we know right away that it is a new doc&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;until it reaches 999 line items. This will be the first posting so the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;counter is set to one.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      PERFORM F_FILL_ALL_SCREENS.&lt;/P&gt;&lt;P&gt;      V_COUNTER = 1.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;The first 998 line items should be read into the first SAP document&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Line item number 999 should be offset account whose amount should&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;balance this initial document.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      IF ( V_COUNTER EQ C_OFFSET_NUM ).&lt;/P&gt;&lt;P&gt;        PERFORM F_FILL_SCREEN_TWO.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;we post an offset amount only if the debits and credits don't equal&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;out for the current doc., and we indicate that we need to start a new&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;doc because the maximum num of line items has been reached.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        IF V_DEBIT NE V_CREDIT.&lt;/P&gt;&lt;P&gt;          PERFORM F_POST_TO_OFFSET_ACCOUNT.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        V_NEWDOC_FLAG = 'Y'.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If it's not a new doc, and it's not a new header then we know it's&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;just another line item and we post the data in the current header as&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;the next line item.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        PERFORM F_FILL_SCREEN_TWO.&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;reset the old header with the current header.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    MOVE W_HEADER TO W_OLD_HEADER.&lt;/P&gt;&lt;P&gt;    V_COUNTER = V_COUNTER + 1.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                               " F_POPULATE_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  F_VALIDATE_INPUT_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;      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 F_VALIDATE_INPUT_DATA CHANGING ERROR_FLAG.&lt;/P&gt;&lt;P&gt;  DATA:   DOC_TOTAL LIKE BSEG-WRBTR,&lt;/P&gt;&lt;P&gt;          CUR_DOC_AMT LIKE BSEG-WRBTR,&lt;/P&gt;&lt;P&gt;          NO_ZERO_DOCS TYPE I.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR ERROR_FLAG.&lt;/P&gt;&lt;P&gt;  READ TABLE T_INTAB INDEX 1.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;    IF T_INTAB-COMPANY_CODE &amp;lt;&amp;gt; P_BUKRS.&lt;/P&gt;&lt;P&gt;      WRITE:/'Comp Code on screen must match comp code in first',&lt;/P&gt;&lt;P&gt;             'record in input file'.&lt;/P&gt;&lt;P&gt;      ERROR_FLAG = 'X'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  LOOP AT T_INTAB.&lt;/P&gt;&lt;P&gt;    CUR_DOC_AMT = T_INTAB-AMOUNT.&lt;/P&gt;&lt;P&gt;    IF CUR_DOC_AMT = 0.&lt;/P&gt;&lt;P&gt;      NO_ZERO_DOCS = NO_ZERO_DOCS + 1.&lt;/P&gt;&lt;P&gt;      DELETE T_INTAB.&lt;/P&gt;&lt;P&gt;      CONTINUE.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    IF T_INTAB-POSTING_KEY = 40.&lt;/P&gt;&lt;P&gt;      DOC_TOTAL = DOC_TOTAL + CUR_DOC_AMT.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      DOC_TOTAL = DOC_TOTAL - CUR_DOC_AMT.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Check if tax code is needed for this record&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF T_INTAB-TAX_CODE = SPACE AND P_DFTTXK = 'X'.&lt;/P&gt;&lt;P&gt;      SHIFT T_INTAB-GL_ACCNT RIGHT DELETING TRAILING SPACE.&lt;/P&gt;&lt;P&gt;      TRANSLATE T_INTAB-GL_ACCNT USING ' 0'.&lt;/P&gt;&lt;P&gt;      SELECT SINGLE * FROM SKB1 WHERE BUKRS = T_INTAB-COMPANY_CODE&lt;/P&gt;&lt;P&gt;                                  AND SAKNR = T_INTAB-GL_ACCNT&lt;/P&gt;&lt;P&gt;                                  AND MWSKZ &amp;lt;&amp;gt; SPACE.&lt;/P&gt;&lt;P&gt;      IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;        T_INTAB-TAX_CODE = C_DFLT_TAX_CODE.&lt;/P&gt;&lt;P&gt;        T_INTAB-JURIS_CODE = C_DFLT_TAX_JURIS.&lt;/P&gt;&lt;P&gt;        MODIFY T_INTAB.&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;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Check if there is difference in credits and debits.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF DOC_TOTAL &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    SKIP 3.&lt;/P&gt;&lt;P&gt;    WRITE:/ 'Credits and Debits do not equal in the document.',&lt;/P&gt;&lt;P&gt;            'The difference is:', DOC_TOTAL CURRENCY P_CUR.&lt;/P&gt;&lt;P&gt;    ERROR_FLAG = 'X'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF NO_ZERO_DOCS &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    WRITE: /'No of line with zero amounts deleted:', NO_ZERO_DOCS.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                               " F_VALIDATE_INPUT_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  GET_ERROR_COST_CENTERS&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;  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;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM GET_ERROR_COST_CENTERS.&lt;/P&gt;&lt;P&gt;  DATA: V_MSSG(22) TYPE C,V_COSTCTR(10) TYPE C,V_STRLEN(3) TYPE C,&lt;/P&gt;&lt;P&gt;        V_SAKNR(10) TYPE C.&lt;/P&gt;&lt;P&gt;  DATA TABIND TYPE I.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT T_INTAB.&lt;/P&gt;&lt;P&gt;    TABIND = SY-TABIX + 1.&lt;/P&gt;&lt;P&gt;    IF  T_INTAB-GL_ACCNT+0(4) = '0000'.&lt;/P&gt;&lt;P&gt;      T_INTAB-GL_ACCNT = T_INTAB-GL_ACCNT+4(6).&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    IF T_INTAB-GL_ACCNT &amp;gt;= '600000' AND T_INTAB-GL_ACCNT &amp;lt;= '999999'.&lt;/P&gt;&lt;P&gt;      CLEAR: V_COSTCTR,V_SAKNR,V_STRLEN.&lt;/P&gt;&lt;P&gt;      CONCATENATE '00000' T_INTAB-COST_CNTR INTO V_COSTCTR.&lt;/P&gt;&lt;P&gt;      IF T_INTAB-COST_CNTR = SPACE AND T_INTAB-POSID = SPACE AND&lt;/P&gt;&lt;P&gt;         T_INTAB-PROF_CTR = SPACE AND T_INTAB-NETWORK = SPACE.&lt;/P&gt;&lt;P&gt;        IF V_MSSG EQ ' '.&lt;/P&gt;&lt;P&gt;          SKIP.&lt;/P&gt;&lt;P&gt;          V_MSSG = 'Message type: Error'.&lt;/P&gt;&lt;P&gt;          WRITE:/ V_MSSG.&lt;/P&gt;&lt;P&gt;          ULINE.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        WRITE:/ TABIND, 'G/L Account', T_INTAB-GL_ACCNT,&lt;/P&gt;&lt;P&gt;                'requires cost object(i.e WBS, cost center etc)'.&lt;/P&gt;&lt;P&gt;        FLAG1 = 'X'.&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;        IF T_INTAB-COST_CNTR &amp;lt;&amp;gt; SPACE.&lt;/P&gt;&lt;P&gt;          SELECT SINGLE * FROM CSKS WHERE KOKRS = 'CA01' AND&lt;/P&gt;&lt;P&gt;                                          KOSTL = V_COSTCTR&lt;/P&gt;&lt;P&gt;                                          AND ( DATBI &amp;gt;= P_POSTDT AND&lt;/P&gt;&lt;P&gt;                   DATAB &amp;lt;= P_POSTDT ) AND BUKRS = T_INTAB-COMPANY_CODE.&lt;/P&gt;&lt;P&gt;          IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;            IF V_MSSG EQ ' '.&lt;/P&gt;&lt;P&gt;              SKIP.&lt;/P&gt;&lt;P&gt;              V_MSSG = 'Message type: Error'.&lt;/P&gt;&lt;P&gt;              WRITE:/ V_MSSG.&lt;/P&gt;&lt;P&gt;              ULINE.&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;P&gt;            WRITE:/ TABIND, 'Cost center CA01 /'.&lt;/P&gt;&lt;P&gt;            WRITE: T_INTAB-COST_CNTR NO-ZERO.&lt;/P&gt;&lt;P&gt;            WRITE: 'does not exist on ' .&lt;/P&gt;&lt;P&gt;            WRITE: V_POSTDT, 'and in company code',&lt;/P&gt;&lt;P&gt;                   T_INTAB-COMPANY_CODE .&lt;/P&gt;&lt;P&gt;            WRITE: '.'.&lt;/P&gt;&lt;P&gt;            FLAG1 = 'X'.&lt;/P&gt;&lt;P&gt;          ELSE.&lt;/P&gt;&lt;P&gt;            IF CSKS-BKZKP = 'X'.&lt;/P&gt;&lt;P&gt;              IF V_MSSG EQ ' '.&lt;/P&gt;&lt;P&gt;                SKIP.&lt;/P&gt;&lt;P&gt;                V_MSSG = 'Message type: Error'.&lt;/P&gt;&lt;P&gt;                WRITE:/ V_MSSG.&lt;/P&gt;&lt;P&gt;                ULINE.&lt;/P&gt;&lt;P&gt;              ENDIF.&lt;/P&gt;&lt;P&gt;              WRITE:/ TABIND, 'Cost center CA01 /'.&lt;/P&gt;&lt;P&gt;              WRITE: T_INTAB-COST_CNTR NO-ZERO.&lt;/P&gt;&lt;P&gt;              WRITE: 'Blocked on'.&lt;/P&gt;&lt;P&gt;              WRITE: V_POSTDT, 'and in company code',&lt;/P&gt;&lt;P&gt;                     T_INTAB-COMPANY_CODE .&lt;/P&gt;&lt;P&gt;              WRITE: '.'.&lt;/P&gt;&lt;P&gt;              FLAG1 = 'X'.&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;    ENDIF.&lt;/P&gt;&lt;P&gt;    CLEAR V_STRLEN.                    "syalla 07/11/00&lt;/P&gt;&lt;P&gt;    V_STRLEN = STRLEN( T_INTAB-LINE_DESC ).  "syalla 07/11/00&lt;/P&gt;&lt;P&gt;    IF V_STRLEN &amp;gt; 50.                  "syalla 07/11/00&lt;/P&gt;&lt;P&gt;      IF V_MSSG = ' '.                 "syalla 07/11/00&lt;/P&gt;&lt;P&gt;        V_MSSG = 'Message type: Error'."syalla 07/11/00&lt;/P&gt;&lt;P&gt;        WRITE:/ V_MSSG.                "syalla 07/11/00&lt;/P&gt;&lt;P&gt;        ULINE.                         "syalla 07/11/00&lt;/P&gt;&lt;P&gt;      ENDIF.                           "syalla 07/11/00&lt;/P&gt;&lt;P&gt;      IF V_STRLEN &amp;gt; 100.               "syalla 07/11/00&lt;/P&gt;&lt;P&gt;        WRITE: TABIND,&lt;/P&gt;&lt;P&gt;       T_INTAB-LINE_DESC ,'Text exceeds field width shown partial text'.&lt;/P&gt;&lt;P&gt;      ELSE.                            "SYALLA 07/11/00&lt;/P&gt;&lt;P&gt;        WRITE: TABIND,&lt;/P&gt;&lt;P&gt;        T_INTAB-LINE_DESC ,'Text exceeds field width'.  "syalla 07/11/00&lt;/P&gt;&lt;P&gt;        FLAG1 = 'X'.&lt;/P&gt;&lt;P&gt;      ENDIF.                           "SYALLA 07/11/00&lt;/P&gt;&lt;P&gt;    ENDIF.                             "syalla 07/11/00&lt;/P&gt;&lt;P&gt;    CLEAR: V_STRLEN.                   "syalla 07/11/00&lt;/P&gt;&lt;P&gt;    V_STRLEN = STRLEN( T_INTAB-GL_ACCNT ).&lt;/P&gt;&lt;P&gt;    IF V_STRLEN = 1.&lt;/P&gt;&lt;P&gt;      CONCATENATE '000000000' T_INTAB-GL_ACCNT INTO V_SAKNR.&lt;/P&gt;&lt;P&gt;    ELSEIF V_STRLEN = 2.&lt;/P&gt;&lt;P&gt;      CONCATENATE '00000000' T_INTAB-GL_ACCNT INTO V_SAKNR.&lt;/P&gt;&lt;P&gt;    ELSEIF V_STRLEN = 3.&lt;/P&gt;&lt;P&gt;      CONCATENATE '0000000' T_INTAB-GL_ACCNT INTO V_SAKNR.&lt;/P&gt;&lt;P&gt;    ELSEIF V_STRLEN = 4.&lt;/P&gt;&lt;P&gt;      CONCATENATE '000000' T_INTAB-GL_ACCNT INTO V_SAKNR.&lt;/P&gt;&lt;P&gt;    ELSEIF V_STRLEN = 5.&lt;/P&gt;&lt;P&gt;      CONCATENATE '00000' T_INTAB-GL_ACCNT INTO V_SAKNR.&lt;/P&gt;&lt;P&gt;    ELSEIF V_STRLEN = 6.&lt;/P&gt;&lt;P&gt;      CONCATENATE '0000' T_INTAB-GL_ACCNT INTO V_SAKNR.&lt;/P&gt;&lt;P&gt;    ELSEIF V_STRLEN = 7.&lt;/P&gt;&lt;P&gt;      CONCATENATE '000' T_INTAB-GL_ACCNT INTO V_SAKNR.&lt;/P&gt;&lt;P&gt;    ELSEIF V_STRLEN = 8.&lt;/P&gt;&lt;P&gt;      CONCATENATE '00' T_INTAB-GL_ACCNT INTO V_SAKNR.&lt;/P&gt;&lt;P&gt;    ELSEIF V_STRLEN = 9.&lt;/P&gt;&lt;P&gt;      CONCATENATE '0' T_INTAB-GL_ACCNT INTO V_SAKNR.&lt;/P&gt;&lt;P&gt;    ELSEIF V_STRLEN = 10.&lt;/P&gt;&lt;P&gt;      V_SAKNR = T_INTAB-GL_ACCNT .&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    SELECT SINGLE * FROM SKB1 WHERE BUKRS = T_INTAB-COMPANY_CODE AND&lt;/P&gt;&lt;P&gt;                                    SAKNR = V_SAKNR AND&lt;/P&gt;&lt;P&gt;                                    XLOEB = ' '.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC &amp;lt;&amp;gt; 0 .&lt;/P&gt;&lt;P&gt;      IF V_MSSG EQ ' '.&lt;/P&gt;&lt;P&gt;        SKIP.&lt;/P&gt;&lt;P&gt;        V_MSSG = 'Message type: Error'.&lt;/P&gt;&lt;P&gt;        WRITE:/ V_MSSG.&lt;/P&gt;&lt;P&gt;        ULINE.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      WRITE:/ TABIND, 'G/L account'.&lt;/P&gt;&lt;P&gt;      FLAG1 = 'X'.&lt;/P&gt;&lt;P&gt;      WRITE: T_INTAB-GL_ACCNT NO-ZERO.&lt;/P&gt;&lt;P&gt;      WRITE: T_INTAB-COMPANY_CODE NO-ZERO.&lt;/P&gt;&lt;P&gt;      WRITE: 'does not exist '.&lt;/P&gt;&lt;P&gt;      WRITE: '.'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM.                               " GET_ERROR_COST_CENTERS&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 26 Jun 2008 10:44:41 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bdc/m-p/4081155#M975833</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-06-26T10:44:41Z</dc:date>
    </item>
    <item>
      <title>Re: bdc</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bdc/m-p/4081156#M975834</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;All you have to do is write a condition where you pass the value to the field VBSEGS-DMBTR... When you dont find the value for this in the flatfile. Do no execute that sepecific statement.. It will automatically pick the default valu..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;VIjay&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 26 Jun 2008 10:52:57 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bdc/m-p/4081156#M975834</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-06-26T10:52:57Z</dc:date>
    </item>
    <item>
      <title>Re: bdc</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bdc/m-p/4081157#M975835</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Dear Daniel,&lt;/P&gt;&lt;P&gt;CAn you tell me the steps in your recording so that I can hekp you better&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Vijay&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 26 Jun 2008 11:03:20 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bdc/m-p/4081157#M975835</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-06-26T11:03:20Z</dc:date>
    </item>
  </channel>
</rss>

