<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: bdc session sample program in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/bdc-session-sample-program/m-p/2435503#M544754</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi,&lt;/P&gt;&lt;P&gt;check this one:&lt;/P&gt;&lt;P&gt;example1:&lt;/P&gt;&lt;P&gt;REPORT  ZSR_BDC_MADHU_SESSION.&lt;/P&gt;&lt;P&gt;PARAMETER: P_FILE LIKE RLGRAP-FILENAME DEFAULT 'C:/DATA2.TXT'.&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF FF,&lt;/P&gt;&lt;P&gt;        LIFNR LIKE RF02K-LIFNR,&lt;/P&gt;&lt;P&gt; KTOKK LIKE RF02K-KTOKK,&lt;/P&gt;&lt;P&gt;	 NAME1 LIKE LFA1-NAME1,&lt;/P&gt;&lt;P&gt;	 SORTL LIKE LFA1-SORTL,&lt;/P&gt;&lt;P&gt;	 LAND1 LIKE LFA1-LAND1,&lt;/P&gt;&lt;P&gt;        SPRAS LIKE LFA1-SPRAS,&lt;/P&gt;&lt;P&gt;      END   OF FF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: P_FILE1 TYPE STRING,&lt;/P&gt;&lt;P&gt;      V_INDEX TYPE I VALUE 1,&lt;/P&gt;&lt;P&gt;      V_INDEX1 TYPE I VALUE 1,&lt;/P&gt;&lt;P&gt;      VS_COUNT TYPE I VALUE 0,&lt;/P&gt;&lt;P&gt;      VF_COUNT TYPE I VALUE 0,&lt;/P&gt;&lt;P&gt;      VT_COUNT TYPE I VALUE 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: IT_FF TYPE FF OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA: IF_FF TYPE FF OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA: IS_FF TYPE FF OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: IT_BDC LIKE BDCDATA OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: IT_MSG TYPE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;  PERFORM GET_DATA.&lt;/P&gt;&lt;P&gt;  PERFORM GENERATE.&lt;/P&gt;&lt;P&gt;  PERFORM BDC_INSERT.&lt;/P&gt;&lt;P&gt;  PERFORM CLOSE_SESSION.&lt;/P&gt;&lt;P&gt;FORM GET_DATA .&lt;/P&gt;&lt;P&gt;  P_FILE1 = P_FILE.&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'GUI_UPLOAD'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      FILENAME                      = P_FILE1&lt;/P&gt;&lt;P&gt;      FILETYPE                      = 'ASC'&lt;/P&gt;&lt;P&gt;      HAS_FIELD_SEPARATOR           = 'X'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  HEADER_LENGTH                 = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  READ_BY_LINE                  = 'X'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     DAT_MODE                      =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  CODEPAGE                      = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IGNORE_CERR                   = ABAP_TRUE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  REPLACEMENT                   = '#'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  CHECK_BOM                     = ' '&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;  FILELENGTH                    =&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;    TABLES&lt;/P&gt;&lt;P&gt;      DATA_TAB                      = IT_FF&lt;/P&gt;&lt;P&gt;   EXCEPTIONS&lt;/P&gt;&lt;P&gt;     FILE_OPEN_ERROR               = 1&lt;/P&gt;&lt;P&gt;     FILE_READ_ERROR               = 2&lt;/P&gt;&lt;P&gt;     NO_BATCH                      = 3&lt;/P&gt;&lt;P&gt;     GUI_REFUSE_FILETRANSFER       = 4&lt;/P&gt;&lt;P&gt;     INVALID_TYPE                  = 5&lt;/P&gt;&lt;P&gt;     NO_AUTHORITY                  = 6&lt;/P&gt;&lt;P&gt;     UNKNOWN_ERROR                 = 7&lt;/P&gt;&lt;P&gt;     BAD_DATA_FORMAT               = 8&lt;/P&gt;&lt;P&gt;     HEADER_NOT_ALLOWED            = 9&lt;/P&gt;&lt;P&gt;     SEPARATOR_NOT_ALLOWED         = 10&lt;/P&gt;&lt;P&gt;     HEADER_TOO_LONG               = 11&lt;/P&gt;&lt;P&gt;     UNKNOWN_DP_ERROR              = 12&lt;/P&gt;&lt;P&gt;     ACCESS_DENIED                 = 13&lt;/P&gt;&lt;P&gt;     DP_OUT_OF_MEMORY              = 14&lt;/P&gt;&lt;P&gt;     DISK_FULL                     = 15&lt;/P&gt;&lt;P&gt;     DP_TIMEOUT                    = 16&lt;/P&gt;&lt;P&gt;     OTHERS                        = 17.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " get_data&lt;/P&gt;&lt;P&gt;FORM GENERATE .&lt;/P&gt;&lt;P&gt;  DATA: LV_MSG(255) TYPE C.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT IT_FF.&lt;/P&gt;&lt;P&gt;    PERFORM POPULATE USING :&lt;/P&gt;&lt;P&gt;    'SAPMF02K'	'0100' 'X',&lt;/P&gt;&lt;P&gt;    	'' 'BDC_OKCODE'	'/00',&lt;/P&gt;&lt;P&gt;    	'' 'RF02K-LIFNR' IT_FF-LIFNR,&lt;/P&gt;&lt;P&gt;    	'' 'RF02K-KTOKK' IT_FF-KTOKK,&lt;/P&gt;&lt;P&gt;    'SAPMF02K'	'110'	'X',&lt;/P&gt;&lt;P&gt;    	'' 'BDC_OKCODE'	'/00',&lt;/P&gt;&lt;P&gt;    	'' 'LFA1-NAME1'	IT_FF-NAME1,&lt;/P&gt;&lt;P&gt;    	'' 'LFA1-SORTL'	IT_FF-SORTL,&lt;/P&gt;&lt;P&gt;    	'' 'LFA1-LAND1'	IT_FF-LAND1,&lt;/P&gt;&lt;P&gt;       '' 'lfa1-spras'     IT_FF-SPRAS,&lt;/P&gt;&lt;P&gt;    'SAPMF02K'	'120'	'X',&lt;/P&gt;&lt;P&gt;    	'' 'BDC_OKCODE'	'/00',&lt;/P&gt;&lt;P&gt;    'SAPMF02K'	'0130'	'X',&lt;/P&gt;&lt;P&gt;    	'' 'BDC_OKCODE'	'=ENTR',&lt;/P&gt;&lt;P&gt;    'SAPLSPO1'	'0300'	'X',&lt;/P&gt;&lt;P&gt;    	'' 'BDC_OKCODE'	'=YES'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL TRANSACTION 'XK01'&lt;/P&gt;&lt;P&gt;      USING IT_BDC&lt;/P&gt;&lt;P&gt;      MODE   'N'&lt;/P&gt;&lt;P&gt;      UPDATE 'S'&lt;/P&gt;&lt;P&gt;      MESSAGES INTO IT_MSG.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;      READ TABLE IT_FF INDEX V_INDEX.&lt;/P&gt;&lt;P&gt;      IS_FF-LIFNR = IT_FF-LIFNR.&lt;/P&gt;&lt;P&gt;      IS_FF-KTOKK = IT_FF-KTOKK.&lt;/P&gt;&lt;P&gt;      IS_FF-NAME1 = IT_FF-NAME1.&lt;/P&gt;&lt;P&gt;      IS_FF-SORTL = IT_FF-SORTL.&lt;/P&gt;&lt;P&gt;      IS_FF-LAND1 = IT_FF-LAND1.&lt;/P&gt;&lt;P&gt;      IS_FF-SPRAS = IT_FF-SPRAS.&lt;/P&gt;&lt;P&gt;      APPEND IS_FF.&lt;/P&gt;&lt;P&gt;      VS_COUNT = VS_COUNT + 1.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      READ TABLE IT_FF INDEX V_INDEX.&lt;/P&gt;&lt;P&gt;      IF_FF-LIFNR = IT_FF-LIFNR.&lt;/P&gt;&lt;P&gt;      IF_FF-NAME1 = IT_FF-NAME1.&lt;/P&gt;&lt;P&gt;      IF_FF-SORTL = IT_FF-SORTL.&lt;/P&gt;&lt;P&gt;      IF_FF-LAND1 = IT_FF-LAND1.&lt;/P&gt;&lt;P&gt;      IF_FF-SPRAS = IT_FF-SPRAS.&lt;/P&gt;&lt;P&gt;      APPEND IF_FF.&lt;/P&gt;&lt;P&gt;      VF_COUNT = VF_COUNT + 1.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    V_INDEX = V_INDEX + 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF NOT IT_MSG[] IS INITIAL.&lt;/P&gt;&lt;P&gt;      LOOP AT IT_MSG.&lt;/P&gt;&lt;P&gt;        CALL FUNCTION 'FORMAT_MESSAGE'&lt;/P&gt;&lt;P&gt;          EXPORTING&lt;/P&gt;&lt;P&gt;            ID        = IT_MSG-MSGID&lt;/P&gt;&lt;P&gt;            LANG      = '-D'&lt;/P&gt;&lt;P&gt;            NO        = IT_MSG-MSGNR&lt;/P&gt;&lt;P&gt;            V1        = IT_MSG-MSGV1&lt;/P&gt;&lt;P&gt;            V2        = IT_MSG-MSGV2&lt;/P&gt;&lt;P&gt;            V3        = IT_MSG-MSGV3&lt;/P&gt;&lt;P&gt;            V4        = IT_MSG-MSGV4&lt;/P&gt;&lt;P&gt;          IMPORTING&lt;/P&gt;&lt;P&gt;            MSG       = LV_MSG&lt;/P&gt;&lt;P&gt;          EXCEPTIONS&lt;/P&gt;&lt;P&gt;            NOT_FOUND = 1&lt;/P&gt;&lt;P&gt;            OTHERS    = 2.&lt;/P&gt;&lt;P&gt;        IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;          WRITE:/ LV_MSG.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    CLEAR: IT_BDC[],&lt;/P&gt;&lt;P&gt;           IT_MSG[].&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  VT_COUNT = VS_COUNT + VF_COUNT.&lt;/P&gt;&lt;P&gt;  WRITE:/ 'total = ' , VT_COUNT.&lt;/P&gt;&lt;P&gt;  WRITE:/ 'succesfully = ' , VS_COUNT.&lt;/P&gt;&lt;P&gt;  LOOP AT IS_FF.&lt;/P&gt;&lt;P&gt;    WRITE:/ IS_FF-LIFNR,&lt;/P&gt;&lt;P&gt;            IS_FF-KTOKK,&lt;/P&gt;&lt;P&gt;            IS_FF-NAME1,&lt;/P&gt;&lt;P&gt;            IS_FF-SORTL,&lt;/P&gt;&lt;P&gt;            IS_FF-LAND1.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  LOOP AT IF_FF.&lt;/P&gt;&lt;P&gt;    WRITE:/ IF_FF-LIFNR,&lt;/P&gt;&lt;P&gt;          IF_FF-KTOKK,&lt;/P&gt;&lt;P&gt;          IF_FF-NAME1,&lt;/P&gt;&lt;P&gt;          IF_FF-SORTL,&lt;/P&gt;&lt;P&gt;          IF_FF-LAND1.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " generate&lt;/P&gt;&lt;P&gt;FORM POPULATE  USING    VALUE(P_VAL1)&lt;/P&gt;&lt;P&gt;                        VALUE(P_VAL2)&lt;/P&gt;&lt;P&gt;                        VALUE(P_VAL3).&lt;/P&gt;&lt;P&gt;  IF NOT P_VAL1 IS INITIAL.&lt;/P&gt;&lt;P&gt;    IT_BDC-PROGRAM  = P_VAL1.&lt;/P&gt;&lt;P&gt;    IT_BDC-DYNPRO   = P_VAL2.&lt;/P&gt;&lt;P&gt;    IT_BDC-DYNBEGIN = P_VAL3.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    IT_BDC-FNAM     = P_VAL2.&lt;/P&gt;&lt;P&gt;    IT_BDC-FVAL     = P_VAL3.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  APPEND IT_BDC.&lt;/P&gt;&lt;P&gt;  CLEAR  IT_BDC.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " POPULATE&lt;/P&gt;&lt;P&gt;FORM CLOSE_SESSION .&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'BDC_CLOSE_GROUP'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  NOT_OPEN          = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  QUEUE_ERROR       = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  OTHERS            = 3&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            .&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " close_session&lt;/P&gt;&lt;P&gt;FORM BDC_INSERT .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: LV_DATE LIKE SY-DATUM.&lt;/P&gt;&lt;P&gt;  LV_DATE = SY-DATUM - 1.&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    DEST                      = FILLER8&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     GROUP                     = 'ZSR'&lt;/P&gt;&lt;P&gt;     HOLDDATE                  = LV_DATE&lt;/P&gt;&lt;P&gt;     KEEP                      = 'X'&lt;/P&gt;&lt;P&gt;     USER                      = SY-UNAME&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    RECORD                    = FILLER1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    PROG                      = SY-CPROG&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;    QID                       =&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;    CLIENT_INVALID            = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    DESTINATION_INVALID       = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    GROUP_INVALID             = 3&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    GROUP_IS_LOCKED           = 4&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    HOLDDATE_INVALID          = 5&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    INTERNAL_ERROR            = 6&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    QUEUE_ERROR               = 7&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    RUNNING                   = 8&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    SYSTEM_LOCK_ERROR         = 9&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    USER_INVALID              = 10&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    OTHERS                    = 11&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            .&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT IF_FF.&lt;/P&gt;&lt;P&gt;      PERFORM POPULATE USING :&lt;/P&gt;&lt;P&gt;    'SAPMF02K'	'0100'	'X',&lt;/P&gt;&lt;P&gt;    	'' 'BDC_OKCODE'	'/00',&lt;/P&gt;&lt;P&gt;    	'' 'RF02K-LIFNR' IF_FF-LIFNR,&lt;/P&gt;&lt;P&gt;    	'' 'RF02K-KTOKK' IF_FF-KTOKK,&lt;/P&gt;&lt;P&gt;    'SAPMF02K'	'0110'	'X',&lt;/P&gt;&lt;P&gt;    	'' 'BDC_OKCODE'	'/00',&lt;/P&gt;&lt;P&gt;    	'' 'LFA1-NAME1'	IF_FF-NAME1,&lt;/P&gt;&lt;P&gt;    	'' 'LFA1-SORTL'	IF_FF-SORTL,&lt;/P&gt;&lt;P&gt;    	'' 'LFA1-LAND1'	IF_FF-LAND1,&lt;/P&gt;&lt;P&gt;    'SAPMF02K'	'0120'	'X',&lt;/P&gt;&lt;P&gt;    	'' 'BDC_OKCODE'	'/00',&lt;/P&gt;&lt;P&gt;    'SAPLSPO1'	'0300'	'X',&lt;/P&gt;&lt;P&gt;    	'' 'BDC_OKCODE'	'=YES'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CALL FUNCTION 'BDC_INSERT'&lt;/P&gt;&lt;P&gt;     EXPORTING&lt;/P&gt;&lt;P&gt;       TCODE                  = 'XK01'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POST_LOCAL             = NOVBLOCAL&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  PRINTING               = NOPRINT&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  SIMUBATCH              = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  CTUPARAMS              = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        TABLES&lt;/P&gt;&lt;P&gt;          DYNPROTAB              = IT_BDC.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  INTERNAL_ERROR         = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  NOT_OPEN               = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  QUEUE_ERROR            = 3&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  TCODE_INVALID          = 4&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  PRINTING_INVALID       = 5&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POSTING_INVALID        = 6&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  OTHERS                 = 7&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      .&lt;/P&gt;&lt;P&gt;      CLEAR IT_BDC[].&lt;/P&gt;&lt;P&gt;      IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " bdc_insert&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;example 2:simple one&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;REPORT  ZSR_BDC_SESSION.&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF ITAB OCCURS 0,&lt;/P&gt;&lt;P&gt;         LIFNR LIKE RF02K-LIFNR,&lt;/P&gt;&lt;P&gt;         KTOKK LIKE RF02K-KTOKK,&lt;/P&gt;&lt;P&gt;         NAME1 LIKE LFA1-NAME1,&lt;/P&gt;&lt;P&gt;         SORTL LIKE LFA1-SORTL,&lt;/P&gt;&lt;P&gt;         LAND1 LIKE LFA1-LAND1,&lt;/P&gt;&lt;P&gt;         SPRAS LIKE LFA1-SPRAS,&lt;/P&gt;&lt;P&gt;      END OF ITAB.&lt;/P&gt;&lt;P&gt;DATA : BDCTAB LIKE BDCDATA OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      BDCMSG LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'GUI_UPLOAD'&lt;/P&gt;&lt;P&gt;  EXPORTING&lt;/P&gt;&lt;P&gt;    FILENAME                      = 'z:\flatfiles\sr1.txt'&lt;/P&gt;&lt;P&gt;   FILETYPE                      = 'ASC'&lt;/P&gt;&lt;P&gt;   HAS_FIELD_SEPARATOR           = 'X'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  HEADER_LENGTH                 = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  READ_BY_LINE                  = 'X'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  DAT_MODE                      = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  CODEPAGE                      = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IGNORE_CERR                   = ABAP_TRUE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  REPLACEMENT                   = '#'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  CHECK_BOM                     = ' '&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;  FILELENGTH                    =&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;  TABLES&lt;/P&gt;&lt;P&gt;    DATA_TAB                      = ITAB&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  FILE_OPEN_ERROR               = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  FILE_READ_ERROR               = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  NO_BATCH                      = 3&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  GUI_REFUSE_FILETRANSFER       = 4&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  INVALID_TYPE                  = 5&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  NO_AUTHORITY                  = 6&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  UNKNOWN_ERROR                 = 7&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  BAD_DATA_FORMAT               = 8&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  HEADER_NOT_ALLOWED            = 9&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  SEPARATOR_NOT_ALLOWED         = 10&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  HEADER_TOO_LONG               = 11&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  UNKNOWN_DP_ERROR              = 12&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  ACCESS_DENIED                 = 13&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  DP_OUT_OF_MEMORY              = 14&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  DISK_FULL                     = 15&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  DP_TIMEOUT                    = 16&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  OTHERS                        = 17&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          .&lt;/P&gt;&lt;P&gt;IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;*perform open_group.&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  DEST                      = FILLER8&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;   GROUP                     = 'SR'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  HOLDDATE                  = FILLER8&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;   KEEP                      = 'X'&lt;/P&gt;&lt;P&gt;   USER                      = SY-UNAME&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  RECORD                    = FILLER1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  PROG                      = SY-CPROG&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;  QID                       =&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;  CLIENT_INVALID            = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  DESTINATION_INVALID       = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  GROUP_INVALID             = 3&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  GROUP_IS_LOCKED           = 4&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  HOLDDATE_INVALID          = 5&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  INTERNAL_ERROR            = 6&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  QUEUE_ERROR               = 7&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  RUNNING                   = 8&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  SYSTEM_LOCK_ERROR         = 9&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  USER_INVALID              = 10&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  OTHERS                    = 11&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          .&lt;/P&gt;&lt;P&gt;IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;LOOP AT ITAB.&lt;/P&gt;&lt;P&gt;PERFORM BDC_DYNPRO      USING 'SAPMF02K' '0100'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD       USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                              'RF02K-KTOKK'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD       USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                              '/00'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD       USING 'RF02K-LIFNR'&lt;/P&gt;&lt;P&gt;                              ITAB-LIFNR.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD       USING 'RF02K-KTOKK'&lt;/P&gt;&lt;P&gt;                              ITAB-KTOKK.&lt;/P&gt;&lt;P&gt;PERFORM BDC_DYNPRO      USING 'SAPMF02K' '0110'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD       USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                              'LFA1-SPRAS'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD       USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                              '/00'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD       USING 'LFA1-NAME1'&lt;/P&gt;&lt;P&gt;                              ITAB-NAME1.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD       USING 'LFA1-SORTL'&lt;/P&gt;&lt;P&gt;                              ITAB-SORTL.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD       USING 'LFA1-LAND1'&lt;/P&gt;&lt;P&gt;                              ITAB-LAND1.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD       USING 'LFA1-SPRAS'&lt;/P&gt;&lt;P&gt;                              ITAB-SPRAS.&lt;/P&gt;&lt;P&gt;PERFORM BDC_DYNPRO      USING 'SAPMF02K' '0120'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD       USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                              'LFA1-KUNNR'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD       USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                              '/00'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_DYNPRO      USING 'SAPMF02K' '0130'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD       USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                              'LFBK-BANKS(01)'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD       USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                              '=ENTR'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_DYNPRO      USING 'SAPLSPO1' '0300'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD       USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                              '=YES'.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'BDC_INSERT'&lt;/P&gt;&lt;P&gt; EXPORTING&lt;/P&gt;&lt;P&gt;   TCODE                  = 'XK01'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POST_LOCAL             = NOVBLOCAL&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  PRINTING               = NOPRINT&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  SIMUBATCH              = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  CTUPARAMS              = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  TABLES&lt;/P&gt;&lt;P&gt;    DYNPROTAB              = BDCTAB&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  INTERNAL_ERROR         = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  NOT_OPEN               = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  QUEUE_ERROR            = 3&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  TCODE_INVALID          = 4&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  PRINTING_INVALID       = 5&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POSTING_INVALID        = 6&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  OTHERS                 = 7&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          .&lt;/P&gt;&lt;P&gt;IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'BDC_CLOSE_GROUP'.&lt;/P&gt;&lt;P&gt;*perform close_group.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  bdc_dynpro&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_0069   text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_0070   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 BDC_DYNPRO  USING    VALUE(P_0069)&lt;/P&gt;&lt;P&gt;                          VALUE(P_0070).&lt;/P&gt;&lt;P&gt;  CLEAR BDCTAB.&lt;/P&gt;&lt;P&gt;  BDCTAB-PROGRAM  = P_0069.&lt;/P&gt;&lt;P&gt;  BDCTAB-DYNPRO   = P_0070.&lt;/P&gt;&lt;P&gt;  BDCTAB-DYNBEGIN = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND BDCTAB.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " bdc_dynpro&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  bdc_field&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_0074   text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_0075   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 BDC_FIELD  USING    VALUE(P_0074)&lt;/P&gt;&lt;P&gt;                         VALUE(P_0075).&lt;/P&gt;&lt;P&gt;IF P_0075 IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    CLEAR BDCTAB.&lt;/P&gt;&lt;P&gt;    BDCTAB-FNAM = P_0074.&lt;/P&gt;&lt;P&gt;    BDCTAB-FVAL = P_0075.&lt;/P&gt;&lt;P&gt;    APPEND BDCTAB.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " bdc_field&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 22 Jun 2007 04:38:52 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-06-22T04:38:52Z</dc:date>
    <item>
      <title>bdc session sample program</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bdc-session-sample-program/m-p/2435501#M544752</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please any body send a sample program for bdc session method.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;sreedhar.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 21 Jun 2007 14:27:57 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bdc-session-sample-program/m-p/2435501#M544752</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-21T14:27:57Z</dc:date>
    </item>
    <item>
      <title>Re: bdc session sample program</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bdc-session-sample-program/m-p/2435502#M544753</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;See the BDC Session method program :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;report zmppc011 no standard page heading line-size 120 line-count 55&lt;/P&gt;&lt;P&gt;   message-id zz.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;pool of form routines&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;include zmppn001.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Define BDC Table Structure&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;data: begin of itab_bdc_tab occurs 0.&lt;/P&gt;&lt;P&gt;        include structure bdcdata.&lt;/P&gt;&lt;P&gt;data: end of itab_bdc_tab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Input record layout of Leagcy File&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;data: begin of itab_xcel occurs 0,&lt;/P&gt;&lt;P&gt;        matnr(18)  type c,&lt;/P&gt;&lt;P&gt;        werks(4)   type c,&lt;/P&gt;&lt;P&gt;        alnag(2)   type c,&lt;/P&gt;&lt;P&gt;        verid(4)   type c,&lt;/P&gt;&lt;P&gt;        text1(40)  type c,&lt;/P&gt;&lt;P&gt;        bstmi      like mkal-bstmi,&lt;/P&gt;&lt;P&gt;        bstma      like mkal-bstma,&lt;/P&gt;&lt;P&gt;        adatu(10)  type c,&lt;/P&gt;&lt;P&gt;        bdatu(10)  type c,&lt;/P&gt;&lt;P&gt;        stlal(2)   type c,&lt;/P&gt;&lt;P&gt;        stlan(1)   type c,&lt;/P&gt;&lt;P&gt;        serkz(1)   type c,&lt;/P&gt;&lt;P&gt;        mdv01(8)   type c,&lt;/P&gt;&lt;P&gt;        elpro(4)   type c,&lt;/P&gt;&lt;P&gt;        alort(4)   type c,&lt;/P&gt;&lt;P&gt;      end of itab_xcel.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: begin of lt_pp04_cache occurs 0,&lt;/P&gt;&lt;P&gt;        matnr like itab_xcel-matnr,&lt;/P&gt;&lt;P&gt;        werks like itab_xcel-werks,&lt;/P&gt;&lt;P&gt;        alnag like itab_xcel-alnag,&lt;/P&gt;&lt;P&gt;        plnnr like mapl-plnnr,&lt;/P&gt;&lt;P&gt;        arbpl like crhd-arbpl,&lt;/P&gt;&lt;P&gt;        ktext like crtx-ktext,&lt;/P&gt;&lt;P&gt;      end of lt_pp04_cache.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: v_ssnnr(4)      type n,&lt;/P&gt;&lt;P&gt;      v_lines_in_xcel like sy-tabix,&lt;/P&gt;&lt;P&gt;      v_ssnname       like apqi-groupid,&lt;/P&gt;&lt;P&gt;      v_trans_in_ssn  type i,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     wa_xcel         LIKE itab_xcel,&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      l_tabix         like sy-tabix,&lt;/P&gt;&lt;P&gt;      v_matnr         like rc27m-matnr,&lt;/P&gt;&lt;P&gt;      v_plnnr         like mapl-plnnr,&lt;/P&gt;&lt;P&gt;      v_plnal         like mapl-plnal,&lt;/P&gt;&lt;P&gt;      v_tcode         like sy-tcode value 'C223',&lt;/P&gt;&lt;P&gt;      v_plnty         like plas-plnty value 'R',&lt;/P&gt;&lt;P&gt;      v_objty         like crhd-objty value 'A',&lt;/P&gt;&lt;P&gt;      v_plpo_steus    like plpo-steus value 'PP04',&lt;/P&gt;&lt;P&gt;      v_verwe         like crhd-verwe value '0007'.&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; Parameters&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;selection-screen: skip 3.&lt;/P&gt;&lt;P&gt;selection-screen: begin of block 1 with frame.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;parameters: p_name        like rlgrap-filename&lt;/P&gt;&lt;P&gt;                          default 'C:\My Documents\InputFile.txt'&lt;/P&gt;&lt;P&gt;                          obligatory,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;bdc session name prefix&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            p_bdcpfx(6)   default 'ZPVCRT'&lt;/P&gt;&lt;P&gt;                          obligatory,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;number for transction per BDC session&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            p_trnssn      type i&lt;/P&gt;&lt;P&gt;                          default 2000 obligatory,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;retain the BDC session after successfull execution&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            p_keep        like apqi-qerase&lt;/P&gt;&lt;P&gt;                          default 'X',&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;user who will be executing BDC session&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            p_uname       like apqi-userid&lt;/P&gt;&lt;P&gt;                          default sy-uname&lt;/P&gt;&lt;P&gt;                          obligatory.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;selection-screen: end of block 1.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;********************************************************&lt;/P&gt;&lt;P&gt;********************************************************&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;possible entry list (F4 dropdown) for input file name&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;at selection-screen on value-request for p_name.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*-SELECT FILE FROM USERS LOCAL PC&lt;/P&gt;&lt;P&gt;  call function 'WS_FILENAME_GET'&lt;/P&gt;&lt;P&gt;      exporting&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         DEF_FILENAME     = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;           def_path         = 'C:\Temp\'&lt;/P&gt;&lt;P&gt;           mask             = ',&lt;STRONG&gt;.&lt;/STRONG&gt;,&lt;STRONG&gt;.&lt;/STRONG&gt;.'&lt;/P&gt;&lt;P&gt;           mode             = 'O'&lt;/P&gt;&lt;P&gt;           title            = 'Select File '(007)&lt;/P&gt;&lt;P&gt;      importing&lt;/P&gt;&lt;P&gt;           filename         = p_name&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         RC               =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      exceptions&lt;/P&gt;&lt;P&gt;           inv_winsys       = 1&lt;/P&gt;&lt;P&gt;           no_batch         = 2&lt;/P&gt;&lt;P&gt;           selection_cancel = 3&lt;/P&gt;&lt;P&gt;           selection_error  = 4&lt;/P&gt;&lt;P&gt;           others           = 5.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;********************************************************&lt;/P&gt;&lt;P&gt;********************************************************&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;begin the show &lt;SPAN __jive_emoticon_name="happy"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;start-of-selection.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;read data from input file&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  perform transfer_xcel_to_itab.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  loop at itab_xcel.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  hang on to xcel line num&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    l_tabix = sy-tabix.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  each line in the xcel file marks begining of new prod.version defn&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  if num-of-trnas-in-session = 0, create new BDC session&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    if v_trans_in_ssn is initial.&lt;/P&gt;&lt;P&gt;      perform bdc_session_open.&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;  begin new bdc script for rtg create trans&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  fill in bdc-data for prod.version maintenance screens&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    perform bdc_build_script.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  insert the bdc script as a BDC transaction&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    perform bdc_submit_transaction.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  keep track of how many BDC transactions were inserted in the BDC&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  session&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    add 1 to v_trans_in_ssn.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  if the user-specified num of trans in BDC session is reached OR&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  if end of input file is reached, close the BDC session&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    if v_trans_in_ssn = p_trnssn or&lt;/P&gt;&lt;P&gt;       l_tabix = v_lines_in_xcel.&lt;/P&gt;&lt;P&gt;      perform bdc_session_close.&lt;/P&gt;&lt;P&gt;      clear v_trans_in_ssn.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;top-of-page.&lt;/P&gt;&lt;P&gt;  call function 'Z_HEADER'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  FLEX_TEXT1       =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  FLEX_TEXT2       =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  FLEX_TEXT3       =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM TRANSFER_XCEL_TO_ITAB                                    *&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;      Transfer Xcel Spreadsheet to SAP 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 transfer_xcel_to_itab.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Read the tab-delimited file into itab&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  call function 'WS_UPLOAD'&lt;/P&gt;&lt;P&gt;       exporting&lt;/P&gt;&lt;P&gt;            filename            = p_name&lt;/P&gt;&lt;P&gt;            filetype            = 'DAT'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           filelength          = flength&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       tables&lt;/P&gt;&lt;P&gt;            data_tab            = itab_xcel&lt;/P&gt;&lt;P&gt;       exceptions&lt;/P&gt;&lt;P&gt;            conversion_error    = 1&lt;/P&gt;&lt;P&gt;            file_open_error     = 2&lt;/P&gt;&lt;P&gt;            file_read_error     = 3&lt;/P&gt;&lt;P&gt;            invalid_table_width = 4&lt;/P&gt;&lt;P&gt;            invalid_type        = 5&lt;/P&gt;&lt;P&gt;            no_batch            = 6&lt;/P&gt;&lt;P&gt;            unknown_error       = 7&lt;/P&gt;&lt;P&gt;            others              = 8.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;  if sy-subrc = 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  sort the data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    sort itab_xcel by matnr werks.&lt;/P&gt;&lt;P&gt;    clear v_lines_in_xcel.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  if no data in the file - error out&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    describe table itab_xcel lines v_lines_in_xcel.&lt;/P&gt;&lt;P&gt;    if v_lines_in_xcel is initial.&lt;/P&gt;&lt;P&gt;      write: / 'No data in input file'.&lt;/P&gt;&lt;P&gt;      stop.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  if file upload failed - error out&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    write: / 'Error reading input file'.&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.&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM BDC_SESSION_OPEN                                         *&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;      Open BDC Session                                              *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form bdc_session_open.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;create bdc session name = prefix-from-selectn-screen + nnnn&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  add 1 to v_ssnnr.&lt;/P&gt;&lt;P&gt;  concatenate p_bdcpfx v_ssnnr into v_ssnname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;open new bdc session&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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               = v_ssnname&lt;/P&gt;&lt;P&gt;            keep                = p_keep&lt;/P&gt;&lt;P&gt;            user                = p_uname&lt;/P&gt;&lt;P&gt;       exceptions&lt;/P&gt;&lt;P&gt;            client_invalid      = 1&lt;/P&gt;&lt;P&gt;            destination_invalid = 2&lt;/P&gt;&lt;P&gt;            group_invalid       = 3&lt;/P&gt;&lt;P&gt;            group_is_locked     = 4&lt;/P&gt;&lt;P&gt;            holddate_invalid    = 5&lt;/P&gt;&lt;P&gt;            internal_error      = 6&lt;/P&gt;&lt;P&gt;            queue_error         = 7&lt;/P&gt;&lt;P&gt;            running             = 8&lt;/P&gt;&lt;P&gt;            system_lock_error   = 9&lt;/P&gt;&lt;P&gt;            user_invalid        = 10&lt;/P&gt;&lt;P&gt;            others              = 11.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM BDC_BUILD_SCRIPT                                         *&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;      Build BDC                                                     *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form bdc_build_script.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data: l_arbpl like crhd-arbpl,&lt;/P&gt;&lt;P&gt;        l_text1 like mkal-text1,&lt;/P&gt;&lt;P&gt;        l_mdv01 like mkal-mdv01,&lt;/P&gt;&lt;P&gt;        l_mapl  like mapl.&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;clear bdc-data itab - begin of new bdc transaction&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  clear   itab_bdc_tab.&lt;/P&gt;&lt;P&gt;  refresh itab_bdc_tab.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;read material cross reference tables to determine sap part#&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  clear : v_matnr, v_plnnr, v_plnal.&lt;/P&gt;&lt;P&gt;  perform read_matnr_cross_ref using itab_xcel-matnr&lt;/P&gt;&lt;P&gt;                                     itab_xcel-werks&lt;/P&gt;&lt;P&gt;                               changing v_matnr.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;determine the version description to use&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  if itab_xcel-text1 is initial.&lt;/P&gt;&lt;P&gt;    l_text1 = itab_xcel-verid.&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;P&gt;    l_text1 = itab_xcel-text1.&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;determine the routing group# and group ctr# to use&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  perform read_routing .&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;determine the production line to use&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  if itab_xcel-mdv01 is initial.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  if not provided in the file then:&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  prod line = work ctr on the last PP04 op of the rtg determined above&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    perform read_wc_on_last_pp04 using v_plnnr v_plnal&lt;/P&gt;&lt;P&gt;                              changing l_mdv01.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  NOTE: when executing the above form\routine, if v_plnnr is initial&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        or v_plnal is initial, THEN l_mdv01 will automatically be&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        returned blank (ie initial)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;P&gt;    l_mdv01 = itab_xcel-mdv01.&lt;/P&gt;&lt;P&gt;  endif.&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;build bdc script&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  perform bdc_build_script_record&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;fill in initial screen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          using: 'X' 'SAPLCMFV'         '1000',&lt;/P&gt;&lt;P&gt;                 ' ' 'BDC_OKCODE'       '=ENTE',&lt;/P&gt;&lt;P&gt;                 ' ' 'MKAL-WERKS'       itab_xcel-werks,&lt;/P&gt;&lt;P&gt;                 ' ' 'MKAL-MATNR'       v_matnr,&lt;/P&gt;&lt;P&gt;                 ' ' 'MKAL_ADMIN-DISPO' space,&lt;/P&gt;&lt;P&gt;                 ' ' 'MKAL-PLNNR'       space,&lt;/P&gt;&lt;P&gt;                 ' ' 'MKAL_ADMIN-STTAG' space,&lt;/P&gt;&lt;P&gt;                 ' ' 'MKAL-PLNNG'       space,&lt;/P&gt;&lt;P&gt;                 ' ' 'MKAL-MDV01'       space,&lt;/P&gt;&lt;P&gt;                 ' ' 'MKAL-PLNNM'       space,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;click create button on initial screen and go to detail screen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;                 'X' 'SAPLCMFV'         '1000',&lt;/P&gt;&lt;P&gt;                 ' ' 'BDC_OKCODE'       '=CREA',&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;fill in the detail screen and go back to initial screen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;                 'X' 'SAPLCMFV'           '2000',&lt;/P&gt;&lt;P&gt;                 ' ' 'BDC_OKCODE'         '=CLOS',&lt;/P&gt;&lt;P&gt;                 ' ' 'MKAL_EXPAND-MATNR'  v_matnr,&lt;/P&gt;&lt;P&gt;                 ' ' 'MKAL_EXPAND-VERID'  itab_xcel-verid,&lt;/P&gt;&lt;P&gt;                 ' ' 'MKAL_EXPAND-TEXT1'  l_text1,&lt;/P&gt;&lt;P&gt;                 ' ' 'MKAL_EXPAND-BSTMI'  itab_xcel-bstmi,&lt;/P&gt;&lt;P&gt;                 ' ' 'MKAL_EXPAND-BSTMA'  itab_xcel-bstma,&lt;/P&gt;&lt;P&gt;                 ' ' 'MKAL_EXPAND-ADATU'  itab_xcel-adatu,&lt;/P&gt;&lt;P&gt;                 ' ' 'MKAL_EXPAND-BDATU'  itab_xcel-bdatu,&lt;/P&gt;&lt;P&gt;                 ' ' 'MKAL_EXPAND-PLTYG'  v_plnty,&lt;/P&gt;&lt;P&gt;                 ' ' 'MKAL_EXPAND-PLNNG'  v_plnnr,&lt;/P&gt;&lt;P&gt;                 ' ' 'MKAL_EXPAND-ALNAG'  v_plnal,&lt;/P&gt;&lt;P&gt;                 ' ' 'MKAL_EXPAND-STLAL'  itab_xcel-stlal,&lt;/P&gt;&lt;P&gt;                 ' ' 'MKAL_EXPAND-STLAN'  itab_xcel-stlan,&lt;/P&gt;&lt;P&gt;                 ' ' 'MKAL_EXPAND-SERKZ'  itab_xcel-serkz,&lt;/P&gt;&lt;P&gt;                 ' ' 'MKAL_EXPAND-MDV01'  l_mdv01,&lt;/P&gt;&lt;P&gt;                 ' ' 'MKAL_EXPAND-ELPRO'  itab_xcel-elpro,&lt;/P&gt;&lt;P&gt;                 ' ' 'MKAL_EXPAND-ALORT'  itab_xcel-alort,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;save the production version from initial screen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;                 'X' 'SAPLCMFV'           '1000',&lt;/P&gt;&lt;P&gt;                 ' ' 'BDC_OKCODE'         '=SAVE'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;			&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;endform.&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM BDC_SUBMIT_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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Submit BDC Session                                            *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form bdc_submit_transaction.&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;Load BDC script as a trqansction in BDC session&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;  call function 'BDC_INSERT'&lt;/P&gt;&lt;P&gt;       exporting&lt;/P&gt;&lt;P&gt;            tcode          = v_tcode&lt;/P&gt;&lt;P&gt;       tables&lt;/P&gt;&lt;P&gt;            dynprotab      = itab_bdc_tab&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;&lt;/P&gt;&lt;P&gt;endform.&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FORM BDC_BUILD_SCRIPT_RECORD                                  *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form bdc_build_script_record using dynbegin name value.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  clear itab_bdc_tab.&lt;/P&gt;&lt;P&gt;  if dynbegin = 'X'.&lt;/P&gt;&lt;P&gt;    move: name  to itab_bdc_tab-program,&lt;/P&gt;&lt;P&gt;          value to itab_bdc_tab-dynpro,&lt;/P&gt;&lt;P&gt;          'X'   to itab_bdc_tab-dynbegin.&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;P&gt;    move: name  to itab_bdc_tab-fnam,&lt;/P&gt;&lt;P&gt;          value to itab_bdc_tab-fval.&lt;/P&gt;&lt;P&gt;    shift itab_bdc_tab-fval left deleting leading space.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  append itab_bdc_tab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;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;      FORM BDC_SESSION_CLOSE                                        *&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;      Close BDC Session                                             *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form bdc_session_close.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;close the session&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  call function 'BDC_CLOSE_GROUP'&lt;/P&gt;&lt;P&gt;       exceptions&lt;/P&gt;&lt;P&gt;            not_open    = 1&lt;/P&gt;&lt;P&gt;            queue_error = 2&lt;/P&gt;&lt;P&gt;            others      = 3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  skip 2.&lt;/P&gt;&lt;P&gt;  if sy-subrc ne 0.&lt;/P&gt;&lt;P&gt;    write: / 'Error Closing BDC Session ' , 'RETURN CODE: ', sy-subrc.&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;P&gt;    write : /  'Session created:', v_ssnname,&lt;/P&gt;&lt;P&gt;            50 '# of transactions:', v_trans_in_ssn.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.&lt;/P&gt;&lt;P&gt;&lt;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  read_routing_cache&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;*FORM read_routing_cache USING    pi_matnr&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                pi_werks&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                pi_alnag&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                pi_verid&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                pi_mdv01.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; DATA: BEGIN OF lt_plpo OCCURS 0,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         vornr LIKE plpo-vornr,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         objty LIKE crhd-objty,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         objid LIKE crhd-objid,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         arbpl LIKE crhd-arbpl,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       END OF lt_plpo,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       l_mapl_plnnr LIKE mapl-plnnr.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;determine the routing group#&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; CLEAR lt_pp04_cache.&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;chk if its in the cache first, if not then get it from MAPL table&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;and put it in the cache&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; READ TABLE lt_pp04_cache WITH KEY matnr = pi_matnr&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                   werks = pi_werks&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                   alnag = pi_alnag.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IF sy-subrc = 0.&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;  do nothing - lt_pp04_cache header line has rtg#&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ELSE.&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;  get the routing group # from MAPL&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   SELECT plnnr INTO l_mapl_plnnr&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     FROM mapl UP TO 1 ROWS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    WHERE matnr = pi_matnr    AND&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          werks = pi_werks    AND&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          plnty = 'R'         AND&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          plnal = pi_alnag    AND&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          loekz = space.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ENDSELECT.&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;  put it in the cache internal table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IF NOT l_mapl_plnnr IS INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     lt_pp04_cache-matnr = pi_matnr.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     lt_pp04_cache-werks = pi_werks.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     lt_pp04_cache-alnag = pi_alnag.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     lt_pp04_cache-plnnr = l_mapl_plnnr.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     APPEND lt_pp04_cache.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;if the rtg# was determined AND&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;-- the work center was not determined yet AND&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;-- work center was really needed for this line in the input file&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;then&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;-- read the work center from last PP04 operation on the routing&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;-- update the cache accordingly&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&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; IF NOT lt_pp04_cache-plnnr IS INITIAL AND&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        lt_pp04_cache-arbpl IS INITIAL AND&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    ( pi_verid IS INITIAL OR&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      pi_mdv01 IS INITIAL ).&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;  read the last PP04 operation&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   CLEAR   lt_plpo.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   REFRESH lt_plpo.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   SELECT vornr e&lt;SUB&gt;objty e&lt;/SUB&gt;objid e~arbpl&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     INTO CORRESPONDING FIELDS OF TABLE lt_plpo&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     FROM plas AS b&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          INNER JOIN plpo AS c&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                ON b&lt;SUB&gt;plnty = c&lt;/SUB&gt;plnty AND&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                   b&lt;SUB&gt;plnnr = c&lt;/SUB&gt;plnnr AND&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                   b&lt;SUB&gt;zaehl = c&lt;/SUB&gt;zaehl&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          INNER JOIN crhd AS e&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                ON c&lt;SUB&gt;arbid = e&lt;/SUB&gt;objid&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    WHERE b~plnty = v_plnty             AND&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          b~plnnr = lt_pp04_cache-plnnr AND&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          b~plnal = lt_pp04_cache-alnag AND&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          c~loekz = space               AND&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          c~steus = v_plpo_steus        AND&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          e~objty = v_objty             AND&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          e~werks = lt_pp04_cache-werks AND&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          e~verwe = v_verwe.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   SORT lt_plpo BY vornr DESCENDING.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   READ TABLE lt_plpo INDEX 1.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;**&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IF NOT lt_plpo-arbpl IS INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     lt_pp04_cache-arbpl = lt_plpo-arbpl.&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;    read work center description&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     SELECT SINGLE ktext INTO lt_pp04_cache-ktext&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       FROM crtx WHERE objty = lt_plpo-objty AND&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                       objid = lt_plpo-objid AND&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                       spras = sy-langu.&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;    the following read will get the index of the correct record to be&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;    updated in the cache&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     READ TABLE lt_pp04_cache&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          WITH KEY matnr = pi_matnr&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                   werks = pi_werks&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                   alnag = pi_alnag.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     MODIFY lt_pp04_cache&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            INDEX sy-tabix&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            TRANSPORTING arbpl ktext.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*ENDFORM.                    " read_last_pp04_operation_cache&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  read_routing&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;form read_routing.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data: begin of lt_mapl occurs 0,&lt;/P&gt;&lt;P&gt;          plnnr like mapl-plnnr,&lt;/P&gt;&lt;P&gt;          plnal like mapl-plnal,&lt;/P&gt;&lt;P&gt;        end of lt_mapl,&lt;/P&gt;&lt;P&gt;        l_arbpl like crhd-arbpl.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;get all the rtg# and grp ctr# from MAPL&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  select plnnr plnal&lt;/P&gt;&lt;P&gt;    into corresponding fields of table lt_mapl&lt;/P&gt;&lt;P&gt;    from mapl&lt;/P&gt;&lt;P&gt;   where matnr = v_matnr          and&lt;/P&gt;&lt;P&gt;         werks = itab_xcel-werks  and&lt;/P&gt;&lt;P&gt;         plnty = v_plnty          and     "Rate Routing&lt;/P&gt;&lt;P&gt;         loekz = space.                   "with del flag = OFF&lt;/P&gt;&lt;P&gt;  sort lt_mapl by plnal.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if not itab_xcel-verid is initial.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  if the verid=0001 then use the 1st good rtg-grp# and grp-ctr#&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    if itab_xcel-verid = '0001'.&lt;/P&gt;&lt;P&gt;      read table lt_mapl index 1.&lt;/P&gt;&lt;P&gt;      v_plnnr = lt_mapl-plnnr.&lt;/P&gt;&lt;P&gt;      v_plnal = lt_mapl-plnal.&lt;/P&gt;&lt;P&gt;    else.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  if the verid&amp;lt;&amp;gt;0001 then use the rtg-grp# and grp-ctr# of the routing&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  whose work center on the last PP04 operation matches the given verid&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      loop at lt_mapl.&lt;/P&gt;&lt;P&gt;        clear l_arbpl.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      get the work center from the last PP04 operation&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        perform read_wc_on_last_pp04 using lt_mapl-plnnr&lt;/P&gt;&lt;P&gt;                                           lt_mapl-plnal&lt;/P&gt;&lt;P&gt;                                  changing l_arbpl.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;        if itab_xcel-verid = l_arbpl.&lt;/P&gt;&lt;P&gt;          v_plnnr = lt_mapl-plnnr.&lt;/P&gt;&lt;P&gt;          v_plnal = lt_mapl-plnal.&lt;/P&gt;&lt;P&gt;          exit.&lt;/P&gt;&lt;P&gt;        endif.&lt;/P&gt;&lt;P&gt;      endloop.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  do nothing&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;For version IDs that are other then '0000' or 'ZWIP' :--&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  if itab_xcel-verid NE '0000' and&lt;/P&gt;&lt;P&gt;     itab_xcel-verid NE 'ZWIP'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  if routing group# or group counter was not determined, make the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  valid-to date 99/99/9999 so that the BDC, on execution, errors out.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    if v_plnnr is initial or&lt;/P&gt;&lt;P&gt;       v_plnal is initial.&lt;/P&gt;&lt;P&gt;      itab_xcel-bdatu = '99/99/9999'.&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;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;determine the routing group#&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; CLEAR lt_pp04_cache.&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;chk if its in the cache first, if not then get it from MAPL table&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;and put it in the cache&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; READ TABLE lt_pp04_cache WITH KEY matnr = pi_matnr&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                   werks = pi_werks&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                   alnag = pi_alnag.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IF sy-subrc = 0.&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;  do nothing - lt_pp04_cache header line has rtg#&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ELSE.&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;  get the routing group # from MAPL&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;  put it in the cache internal table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IF NOT l_mapl_plnnr IS INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     lt_pp04_cache-matnr = pi_matnr.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     lt_pp04_cache-werks = pi_werks.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     lt_pp04_cache-alnag = pi_alnag.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     lt_pp04_cache-plnnr = l_mapl_plnnr.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     APPEND lt_pp04_cache.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;if the rtg# was determined AND&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;-- the work center was not determined yet AND&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;-- work center was really needed for this line in the input file&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;then&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;-- read the work center from last PP04 operation on the routing&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;-- update the cache accordingly&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&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; IF NOT lt_pp04_cache-plnnr IS INITIAL AND&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        lt_pp04_cache-arbpl IS INITIAL AND&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    ( pi_verid IS INITIAL OR&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      pi_mdv01 IS INITIAL ).&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;  read the last PP04 operation&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   CLEAR   lt_plpo.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   REFRESH lt_plpo.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   SELECT vornr e&lt;SUB&gt;objty e&lt;/SUB&gt;objid e~arbpl&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     INTO CORRESPONDING FIELDS OF TABLE lt_plpo&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     FROM plas AS b&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          INNER JOIN plpo AS c&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                ON b&lt;SUB&gt;plnty = c&lt;/SUB&gt;plnty AND&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                   b&lt;SUB&gt;plnnr = c&lt;/SUB&gt;plnnr AND&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                   b&lt;SUB&gt;zaehl = c&lt;/SUB&gt;zaehl&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          INNER JOIN crhd AS e&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                ON c&lt;SUB&gt;arbid = e&lt;/SUB&gt;objid&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    WHERE b~plnty = v_plnty             AND&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          b~plnnr = lt_pp04_cache-plnnr AND&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          b~plnal = lt_pp04_cache-alnag AND&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          c~loekz = space               AND&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          c~steus = v_plpo_steus        AND&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          e~objty = v_objty             AND&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          e~werks = lt_pp04_cache-werks AND&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          e~verwe = v_verwe.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   SORT lt_plpo BY vornr DESCENDING.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   READ TABLE lt_plpo INDEX 1.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;**&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IF NOT lt_plpo-arbpl IS INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     lt_pp04_cache-arbpl = lt_plpo-arbpl.&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;    read work center description&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     SELECT SINGLE ktext INTO lt_pp04_cache-ktext&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       FROM crtx WHERE objty = lt_plpo-objty AND&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                       objid = lt_plpo-objid AND&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                       spras = sy-langu.&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;    the following read will get the index of the correct record to be&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;    updated in the cache&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     READ TABLE lt_pp04_cache&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          WITH KEY matnr = pi_matnr&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                   werks = pi_werks&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                   alnag = pi_alnag.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     MODIFY lt_pp04_cache&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            INDEX sy-tabix&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;            TRANSPORTING arbpl ktext.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    " read_last_pp04_operation_cache&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  read_wc_on_last_pp04&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;form read_wc_on_last_pp04 using    pi_plnnr&lt;/P&gt;&lt;P&gt;                                   pi_plnal&lt;/P&gt;&lt;P&gt;                          changing pe_arbpl.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data: begin of lt_plpo occurs 0,&lt;/P&gt;&lt;P&gt;          vornr like plpo-vornr,&lt;/P&gt;&lt;P&gt;          objty like crhd-objty,&lt;/P&gt;&lt;P&gt;          objid like crhd-objid,&lt;/P&gt;&lt;P&gt;          arbpl like crhd-arbpl,&lt;/P&gt;&lt;P&gt;        end of lt_plpo.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;get all the PP04 operations for the given rtg# &amp;amp; grp-ctr#&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  select vornr e&lt;SUB&gt;objty e&lt;/SUB&gt;objid e~arbpl&lt;/P&gt;&lt;P&gt;    into corresponding fields of table lt_plpo&lt;/P&gt;&lt;P&gt;    from plas as b&lt;/P&gt;&lt;P&gt;         inner join plpo as c&lt;/P&gt;&lt;P&gt;               on b&lt;SUB&gt;plnty = c&lt;/SUB&gt;plnty and&lt;/P&gt;&lt;P&gt;                  b&lt;SUB&gt;plnnr = c&lt;/SUB&gt;plnnr and&lt;/P&gt;&lt;P&gt;                  b&lt;SUB&gt;zaehl = c&lt;/SUB&gt;zaehl&lt;/P&gt;&lt;P&gt;         inner join crhd as e&lt;/P&gt;&lt;P&gt;               on c&lt;SUB&gt;arbid = e&lt;/SUB&gt;objid&lt;/P&gt;&lt;P&gt;   where b~plnty = v_plnty          and           "Rate Routing&lt;/P&gt;&lt;P&gt;         b~plnnr = pi_plnnr         and&lt;/P&gt;&lt;P&gt;         b~plnal = pi_plnal         and&lt;/P&gt;&lt;P&gt;         c~loekz = space            and           "Oper Del Flag = OFF&lt;/P&gt;&lt;P&gt;         c~steus = v_plpo_steus     and           "PP04&lt;/P&gt;&lt;P&gt;         e~objty = v_objty.                       "WC Obj Type = 'A'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;read the last operation&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  sort lt_plpo by vornr descending.&lt;/P&gt;&lt;P&gt;  read table lt_plpo index 1.&lt;/P&gt;&lt;P&gt;  pe_arbpl = lt_plpo-arbpl.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    " read_wc_on_last_pp04&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 21 Jun 2007 14:41:26 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bdc-session-sample-program/m-p/2435502#M544753</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-21T14:41:26Z</dc:date>
    </item>
    <item>
      <title>Re: bdc session sample program</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bdc-session-sample-program/m-p/2435503#M544754</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi,&lt;/P&gt;&lt;P&gt;check this one:&lt;/P&gt;&lt;P&gt;example1:&lt;/P&gt;&lt;P&gt;REPORT  ZSR_BDC_MADHU_SESSION.&lt;/P&gt;&lt;P&gt;PARAMETER: P_FILE LIKE RLGRAP-FILENAME DEFAULT 'C:/DATA2.TXT'.&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF FF,&lt;/P&gt;&lt;P&gt;        LIFNR LIKE RF02K-LIFNR,&lt;/P&gt;&lt;P&gt; KTOKK LIKE RF02K-KTOKK,&lt;/P&gt;&lt;P&gt;	 NAME1 LIKE LFA1-NAME1,&lt;/P&gt;&lt;P&gt;	 SORTL LIKE LFA1-SORTL,&lt;/P&gt;&lt;P&gt;	 LAND1 LIKE LFA1-LAND1,&lt;/P&gt;&lt;P&gt;        SPRAS LIKE LFA1-SPRAS,&lt;/P&gt;&lt;P&gt;      END   OF FF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: P_FILE1 TYPE STRING,&lt;/P&gt;&lt;P&gt;      V_INDEX TYPE I VALUE 1,&lt;/P&gt;&lt;P&gt;      V_INDEX1 TYPE I VALUE 1,&lt;/P&gt;&lt;P&gt;      VS_COUNT TYPE I VALUE 0,&lt;/P&gt;&lt;P&gt;      VF_COUNT TYPE I VALUE 0,&lt;/P&gt;&lt;P&gt;      VT_COUNT TYPE I VALUE 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: IT_FF TYPE FF OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA: IF_FF TYPE FF OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA: IS_FF TYPE FF OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: IT_BDC LIKE BDCDATA OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: IT_MSG TYPE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;  PERFORM GET_DATA.&lt;/P&gt;&lt;P&gt;  PERFORM GENERATE.&lt;/P&gt;&lt;P&gt;  PERFORM BDC_INSERT.&lt;/P&gt;&lt;P&gt;  PERFORM CLOSE_SESSION.&lt;/P&gt;&lt;P&gt;FORM GET_DATA .&lt;/P&gt;&lt;P&gt;  P_FILE1 = P_FILE.&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'GUI_UPLOAD'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      FILENAME                      = P_FILE1&lt;/P&gt;&lt;P&gt;      FILETYPE                      = 'ASC'&lt;/P&gt;&lt;P&gt;      HAS_FIELD_SEPARATOR           = 'X'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  HEADER_LENGTH                 = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  READ_BY_LINE                  = 'X'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     DAT_MODE                      =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  CODEPAGE                      = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IGNORE_CERR                   = ABAP_TRUE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  REPLACEMENT                   = '#'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  CHECK_BOM                     = ' '&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;  FILELENGTH                    =&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;    TABLES&lt;/P&gt;&lt;P&gt;      DATA_TAB                      = IT_FF&lt;/P&gt;&lt;P&gt;   EXCEPTIONS&lt;/P&gt;&lt;P&gt;     FILE_OPEN_ERROR               = 1&lt;/P&gt;&lt;P&gt;     FILE_READ_ERROR               = 2&lt;/P&gt;&lt;P&gt;     NO_BATCH                      = 3&lt;/P&gt;&lt;P&gt;     GUI_REFUSE_FILETRANSFER       = 4&lt;/P&gt;&lt;P&gt;     INVALID_TYPE                  = 5&lt;/P&gt;&lt;P&gt;     NO_AUTHORITY                  = 6&lt;/P&gt;&lt;P&gt;     UNKNOWN_ERROR                 = 7&lt;/P&gt;&lt;P&gt;     BAD_DATA_FORMAT               = 8&lt;/P&gt;&lt;P&gt;     HEADER_NOT_ALLOWED            = 9&lt;/P&gt;&lt;P&gt;     SEPARATOR_NOT_ALLOWED         = 10&lt;/P&gt;&lt;P&gt;     HEADER_TOO_LONG               = 11&lt;/P&gt;&lt;P&gt;     UNKNOWN_DP_ERROR              = 12&lt;/P&gt;&lt;P&gt;     ACCESS_DENIED                 = 13&lt;/P&gt;&lt;P&gt;     DP_OUT_OF_MEMORY              = 14&lt;/P&gt;&lt;P&gt;     DISK_FULL                     = 15&lt;/P&gt;&lt;P&gt;     DP_TIMEOUT                    = 16&lt;/P&gt;&lt;P&gt;     OTHERS                        = 17.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " get_data&lt;/P&gt;&lt;P&gt;FORM GENERATE .&lt;/P&gt;&lt;P&gt;  DATA: LV_MSG(255) TYPE C.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT IT_FF.&lt;/P&gt;&lt;P&gt;    PERFORM POPULATE USING :&lt;/P&gt;&lt;P&gt;    'SAPMF02K'	'0100' 'X',&lt;/P&gt;&lt;P&gt;    	'' 'BDC_OKCODE'	'/00',&lt;/P&gt;&lt;P&gt;    	'' 'RF02K-LIFNR' IT_FF-LIFNR,&lt;/P&gt;&lt;P&gt;    	'' 'RF02K-KTOKK' IT_FF-KTOKK,&lt;/P&gt;&lt;P&gt;    'SAPMF02K'	'110'	'X',&lt;/P&gt;&lt;P&gt;    	'' 'BDC_OKCODE'	'/00',&lt;/P&gt;&lt;P&gt;    	'' 'LFA1-NAME1'	IT_FF-NAME1,&lt;/P&gt;&lt;P&gt;    	'' 'LFA1-SORTL'	IT_FF-SORTL,&lt;/P&gt;&lt;P&gt;    	'' 'LFA1-LAND1'	IT_FF-LAND1,&lt;/P&gt;&lt;P&gt;       '' 'lfa1-spras'     IT_FF-SPRAS,&lt;/P&gt;&lt;P&gt;    'SAPMF02K'	'120'	'X',&lt;/P&gt;&lt;P&gt;    	'' 'BDC_OKCODE'	'/00',&lt;/P&gt;&lt;P&gt;    'SAPMF02K'	'0130'	'X',&lt;/P&gt;&lt;P&gt;    	'' 'BDC_OKCODE'	'=ENTR',&lt;/P&gt;&lt;P&gt;    'SAPLSPO1'	'0300'	'X',&lt;/P&gt;&lt;P&gt;    	'' 'BDC_OKCODE'	'=YES'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL TRANSACTION 'XK01'&lt;/P&gt;&lt;P&gt;      USING IT_BDC&lt;/P&gt;&lt;P&gt;      MODE   'N'&lt;/P&gt;&lt;P&gt;      UPDATE 'S'&lt;/P&gt;&lt;P&gt;      MESSAGES INTO IT_MSG.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;      READ TABLE IT_FF INDEX V_INDEX.&lt;/P&gt;&lt;P&gt;      IS_FF-LIFNR = IT_FF-LIFNR.&lt;/P&gt;&lt;P&gt;      IS_FF-KTOKK = IT_FF-KTOKK.&lt;/P&gt;&lt;P&gt;      IS_FF-NAME1 = IT_FF-NAME1.&lt;/P&gt;&lt;P&gt;      IS_FF-SORTL = IT_FF-SORTL.&lt;/P&gt;&lt;P&gt;      IS_FF-LAND1 = IT_FF-LAND1.&lt;/P&gt;&lt;P&gt;      IS_FF-SPRAS = IT_FF-SPRAS.&lt;/P&gt;&lt;P&gt;      APPEND IS_FF.&lt;/P&gt;&lt;P&gt;      VS_COUNT = VS_COUNT + 1.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      READ TABLE IT_FF INDEX V_INDEX.&lt;/P&gt;&lt;P&gt;      IF_FF-LIFNR = IT_FF-LIFNR.&lt;/P&gt;&lt;P&gt;      IF_FF-NAME1 = IT_FF-NAME1.&lt;/P&gt;&lt;P&gt;      IF_FF-SORTL = IT_FF-SORTL.&lt;/P&gt;&lt;P&gt;      IF_FF-LAND1 = IT_FF-LAND1.&lt;/P&gt;&lt;P&gt;      IF_FF-SPRAS = IT_FF-SPRAS.&lt;/P&gt;&lt;P&gt;      APPEND IF_FF.&lt;/P&gt;&lt;P&gt;      VF_COUNT = VF_COUNT + 1.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    V_INDEX = V_INDEX + 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF NOT IT_MSG[] IS INITIAL.&lt;/P&gt;&lt;P&gt;      LOOP AT IT_MSG.&lt;/P&gt;&lt;P&gt;        CALL FUNCTION 'FORMAT_MESSAGE'&lt;/P&gt;&lt;P&gt;          EXPORTING&lt;/P&gt;&lt;P&gt;            ID        = IT_MSG-MSGID&lt;/P&gt;&lt;P&gt;            LANG      = '-D'&lt;/P&gt;&lt;P&gt;            NO        = IT_MSG-MSGNR&lt;/P&gt;&lt;P&gt;            V1        = IT_MSG-MSGV1&lt;/P&gt;&lt;P&gt;            V2        = IT_MSG-MSGV2&lt;/P&gt;&lt;P&gt;            V3        = IT_MSG-MSGV3&lt;/P&gt;&lt;P&gt;            V4        = IT_MSG-MSGV4&lt;/P&gt;&lt;P&gt;          IMPORTING&lt;/P&gt;&lt;P&gt;            MSG       = LV_MSG&lt;/P&gt;&lt;P&gt;          EXCEPTIONS&lt;/P&gt;&lt;P&gt;            NOT_FOUND = 1&lt;/P&gt;&lt;P&gt;            OTHERS    = 2.&lt;/P&gt;&lt;P&gt;        IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;          WRITE:/ LV_MSG.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    CLEAR: IT_BDC[],&lt;/P&gt;&lt;P&gt;           IT_MSG[].&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  VT_COUNT = VS_COUNT + VF_COUNT.&lt;/P&gt;&lt;P&gt;  WRITE:/ 'total = ' , VT_COUNT.&lt;/P&gt;&lt;P&gt;  WRITE:/ 'succesfully = ' , VS_COUNT.&lt;/P&gt;&lt;P&gt;  LOOP AT IS_FF.&lt;/P&gt;&lt;P&gt;    WRITE:/ IS_FF-LIFNR,&lt;/P&gt;&lt;P&gt;            IS_FF-KTOKK,&lt;/P&gt;&lt;P&gt;            IS_FF-NAME1,&lt;/P&gt;&lt;P&gt;            IS_FF-SORTL,&lt;/P&gt;&lt;P&gt;            IS_FF-LAND1.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  LOOP AT IF_FF.&lt;/P&gt;&lt;P&gt;    WRITE:/ IF_FF-LIFNR,&lt;/P&gt;&lt;P&gt;          IF_FF-KTOKK,&lt;/P&gt;&lt;P&gt;          IF_FF-NAME1,&lt;/P&gt;&lt;P&gt;          IF_FF-SORTL,&lt;/P&gt;&lt;P&gt;          IF_FF-LAND1.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " generate&lt;/P&gt;&lt;P&gt;FORM POPULATE  USING    VALUE(P_VAL1)&lt;/P&gt;&lt;P&gt;                        VALUE(P_VAL2)&lt;/P&gt;&lt;P&gt;                        VALUE(P_VAL3).&lt;/P&gt;&lt;P&gt;  IF NOT P_VAL1 IS INITIAL.&lt;/P&gt;&lt;P&gt;    IT_BDC-PROGRAM  = P_VAL1.&lt;/P&gt;&lt;P&gt;    IT_BDC-DYNPRO   = P_VAL2.&lt;/P&gt;&lt;P&gt;    IT_BDC-DYNBEGIN = P_VAL3.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    IT_BDC-FNAM     = P_VAL2.&lt;/P&gt;&lt;P&gt;    IT_BDC-FVAL     = P_VAL3.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  APPEND IT_BDC.&lt;/P&gt;&lt;P&gt;  CLEAR  IT_BDC.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " POPULATE&lt;/P&gt;&lt;P&gt;FORM CLOSE_SESSION .&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'BDC_CLOSE_GROUP'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  NOT_OPEN          = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  QUEUE_ERROR       = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  OTHERS            = 3&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            .&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " close_session&lt;/P&gt;&lt;P&gt;FORM BDC_INSERT .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: LV_DATE LIKE SY-DATUM.&lt;/P&gt;&lt;P&gt;  LV_DATE = SY-DATUM - 1.&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    DEST                      = FILLER8&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     GROUP                     = 'ZSR'&lt;/P&gt;&lt;P&gt;     HOLDDATE                  = LV_DATE&lt;/P&gt;&lt;P&gt;     KEEP                      = 'X'&lt;/P&gt;&lt;P&gt;     USER                      = SY-UNAME&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    RECORD                    = FILLER1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    PROG                      = SY-CPROG&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;    QID                       =&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;    CLIENT_INVALID            = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    DESTINATION_INVALID       = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    GROUP_INVALID             = 3&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    GROUP_IS_LOCKED           = 4&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    HOLDDATE_INVALID          = 5&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    INTERNAL_ERROR            = 6&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    QUEUE_ERROR               = 7&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    RUNNING                   = 8&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    SYSTEM_LOCK_ERROR         = 9&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    USER_INVALID              = 10&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    OTHERS                    = 11&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            .&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT IF_FF.&lt;/P&gt;&lt;P&gt;      PERFORM POPULATE USING :&lt;/P&gt;&lt;P&gt;    'SAPMF02K'	'0100'	'X',&lt;/P&gt;&lt;P&gt;    	'' 'BDC_OKCODE'	'/00',&lt;/P&gt;&lt;P&gt;    	'' 'RF02K-LIFNR' IF_FF-LIFNR,&lt;/P&gt;&lt;P&gt;    	'' 'RF02K-KTOKK' IF_FF-KTOKK,&lt;/P&gt;&lt;P&gt;    'SAPMF02K'	'0110'	'X',&lt;/P&gt;&lt;P&gt;    	'' 'BDC_OKCODE'	'/00',&lt;/P&gt;&lt;P&gt;    	'' 'LFA1-NAME1'	IF_FF-NAME1,&lt;/P&gt;&lt;P&gt;    	'' 'LFA1-SORTL'	IF_FF-SORTL,&lt;/P&gt;&lt;P&gt;    	'' 'LFA1-LAND1'	IF_FF-LAND1,&lt;/P&gt;&lt;P&gt;    'SAPMF02K'	'0120'	'X',&lt;/P&gt;&lt;P&gt;    	'' 'BDC_OKCODE'	'/00',&lt;/P&gt;&lt;P&gt;    'SAPLSPO1'	'0300'	'X',&lt;/P&gt;&lt;P&gt;    	'' 'BDC_OKCODE'	'=YES'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CALL FUNCTION 'BDC_INSERT'&lt;/P&gt;&lt;P&gt;     EXPORTING&lt;/P&gt;&lt;P&gt;       TCODE                  = 'XK01'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POST_LOCAL             = NOVBLOCAL&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  PRINTING               = NOPRINT&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  SIMUBATCH              = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  CTUPARAMS              = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        TABLES&lt;/P&gt;&lt;P&gt;          DYNPROTAB              = IT_BDC.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  INTERNAL_ERROR         = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  NOT_OPEN               = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  QUEUE_ERROR            = 3&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  TCODE_INVALID          = 4&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  PRINTING_INVALID       = 5&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POSTING_INVALID        = 6&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  OTHERS                 = 7&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      .&lt;/P&gt;&lt;P&gt;      CLEAR IT_BDC[].&lt;/P&gt;&lt;P&gt;      IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " bdc_insert&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;example 2:simple one&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;REPORT  ZSR_BDC_SESSION.&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF ITAB OCCURS 0,&lt;/P&gt;&lt;P&gt;         LIFNR LIKE RF02K-LIFNR,&lt;/P&gt;&lt;P&gt;         KTOKK LIKE RF02K-KTOKK,&lt;/P&gt;&lt;P&gt;         NAME1 LIKE LFA1-NAME1,&lt;/P&gt;&lt;P&gt;         SORTL LIKE LFA1-SORTL,&lt;/P&gt;&lt;P&gt;         LAND1 LIKE LFA1-LAND1,&lt;/P&gt;&lt;P&gt;         SPRAS LIKE LFA1-SPRAS,&lt;/P&gt;&lt;P&gt;      END OF ITAB.&lt;/P&gt;&lt;P&gt;DATA : BDCTAB LIKE BDCDATA OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      BDCMSG LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'GUI_UPLOAD'&lt;/P&gt;&lt;P&gt;  EXPORTING&lt;/P&gt;&lt;P&gt;    FILENAME                      = 'z:\flatfiles\sr1.txt'&lt;/P&gt;&lt;P&gt;   FILETYPE                      = 'ASC'&lt;/P&gt;&lt;P&gt;   HAS_FIELD_SEPARATOR           = 'X'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  HEADER_LENGTH                 = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  READ_BY_LINE                  = 'X'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  DAT_MODE                      = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  CODEPAGE                      = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IGNORE_CERR                   = ABAP_TRUE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  REPLACEMENT                   = '#'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  CHECK_BOM                     = ' '&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;  FILELENGTH                    =&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;  TABLES&lt;/P&gt;&lt;P&gt;    DATA_TAB                      = ITAB&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  FILE_OPEN_ERROR               = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  FILE_READ_ERROR               = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  NO_BATCH                      = 3&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  GUI_REFUSE_FILETRANSFER       = 4&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  INVALID_TYPE                  = 5&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  NO_AUTHORITY                  = 6&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  UNKNOWN_ERROR                 = 7&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  BAD_DATA_FORMAT               = 8&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  HEADER_NOT_ALLOWED            = 9&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  SEPARATOR_NOT_ALLOWED         = 10&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  HEADER_TOO_LONG               = 11&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  UNKNOWN_DP_ERROR              = 12&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  ACCESS_DENIED                 = 13&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  DP_OUT_OF_MEMORY              = 14&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  DISK_FULL                     = 15&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  DP_TIMEOUT                    = 16&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  OTHERS                        = 17&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          .&lt;/P&gt;&lt;P&gt;IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;*perform open_group.&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  DEST                      = FILLER8&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;   GROUP                     = 'SR'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  HOLDDATE                  = FILLER8&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;   KEEP                      = 'X'&lt;/P&gt;&lt;P&gt;   USER                      = SY-UNAME&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  RECORD                    = FILLER1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  PROG                      = SY-CPROG&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;  QID                       =&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;  CLIENT_INVALID            = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  DESTINATION_INVALID       = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  GROUP_INVALID             = 3&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  GROUP_IS_LOCKED           = 4&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  HOLDDATE_INVALID          = 5&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  INTERNAL_ERROR            = 6&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  QUEUE_ERROR               = 7&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  RUNNING                   = 8&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  SYSTEM_LOCK_ERROR         = 9&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  USER_INVALID              = 10&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  OTHERS                    = 11&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          .&lt;/P&gt;&lt;P&gt;IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;LOOP AT ITAB.&lt;/P&gt;&lt;P&gt;PERFORM BDC_DYNPRO      USING 'SAPMF02K' '0100'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD       USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                              'RF02K-KTOKK'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD       USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                              '/00'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD       USING 'RF02K-LIFNR'&lt;/P&gt;&lt;P&gt;                              ITAB-LIFNR.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD       USING 'RF02K-KTOKK'&lt;/P&gt;&lt;P&gt;                              ITAB-KTOKK.&lt;/P&gt;&lt;P&gt;PERFORM BDC_DYNPRO      USING 'SAPMF02K' '0110'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD       USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                              'LFA1-SPRAS'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD       USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                              '/00'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD       USING 'LFA1-NAME1'&lt;/P&gt;&lt;P&gt;                              ITAB-NAME1.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD       USING 'LFA1-SORTL'&lt;/P&gt;&lt;P&gt;                              ITAB-SORTL.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD       USING 'LFA1-LAND1'&lt;/P&gt;&lt;P&gt;                              ITAB-LAND1.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD       USING 'LFA1-SPRAS'&lt;/P&gt;&lt;P&gt;                              ITAB-SPRAS.&lt;/P&gt;&lt;P&gt;PERFORM BDC_DYNPRO      USING 'SAPMF02K' '0120'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD       USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                              'LFA1-KUNNR'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD       USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                              '/00'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_DYNPRO      USING 'SAPMF02K' '0130'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD       USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                              'LFBK-BANKS(01)'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD       USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                              '=ENTR'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_DYNPRO      USING 'SAPLSPO1' '0300'.&lt;/P&gt;&lt;P&gt;PERFORM BDC_FIELD       USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                              '=YES'.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'BDC_INSERT'&lt;/P&gt;&lt;P&gt; EXPORTING&lt;/P&gt;&lt;P&gt;   TCODE                  = 'XK01'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POST_LOCAL             = NOVBLOCAL&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  PRINTING               = NOPRINT&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  SIMUBATCH              = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  CTUPARAMS              = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  TABLES&lt;/P&gt;&lt;P&gt;    DYNPROTAB              = BDCTAB&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  INTERNAL_ERROR         = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  NOT_OPEN               = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  QUEUE_ERROR            = 3&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  TCODE_INVALID          = 4&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  PRINTING_INVALID       = 5&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POSTING_INVALID        = 6&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  OTHERS                 = 7&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          .&lt;/P&gt;&lt;P&gt;IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'BDC_CLOSE_GROUP'.&lt;/P&gt;&lt;P&gt;*perform close_group.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  bdc_dynpro&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_0069   text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_0070   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 BDC_DYNPRO  USING    VALUE(P_0069)&lt;/P&gt;&lt;P&gt;                          VALUE(P_0070).&lt;/P&gt;&lt;P&gt;  CLEAR BDCTAB.&lt;/P&gt;&lt;P&gt;  BDCTAB-PROGRAM  = P_0069.&lt;/P&gt;&lt;P&gt;  BDCTAB-DYNPRO   = P_0070.&lt;/P&gt;&lt;P&gt;  BDCTAB-DYNBEGIN = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND BDCTAB.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " bdc_dynpro&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  bdc_field&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_0074   text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_0075   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 BDC_FIELD  USING    VALUE(P_0074)&lt;/P&gt;&lt;P&gt;                         VALUE(P_0075).&lt;/P&gt;&lt;P&gt;IF P_0075 IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    CLEAR BDCTAB.&lt;/P&gt;&lt;P&gt;    BDCTAB-FNAM = P_0074.&lt;/P&gt;&lt;P&gt;    BDCTAB-FVAL = P_0075.&lt;/P&gt;&lt;P&gt;    APPEND BDCTAB.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " bdc_field&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 22 Jun 2007 04:38:52 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bdc-session-sample-program/m-p/2435503#M544754</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-22T04:38:52Z</dc:date>
    </item>
  </channel>
</rss>

