<?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: How to use commit in BDC in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-use-commit-in-bdc/m-p/2441817#M546646</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Srinivas,&lt;/P&gt;&lt;P&gt;How can i create a session in background?? Let me explain wht im doing...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1) executing the prg&lt;/P&gt;&lt;P&gt;2)giving the files to be loaded&lt;/P&gt;&lt;P&gt;3) executing it to create the session&lt;/P&gt;&lt;P&gt;4)sm35...run the session.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;so how do i do the step 3 in background...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks&lt;/P&gt;&lt;P&gt;Sony&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 02 Jul 2007 19:46:10 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-07-02T19:46:10Z</dc:date>
    <item>
      <title>How to use commit in BDC</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-use-commit-in-bdc/m-p/2441804#M546633</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Experts,&lt;/P&gt;&lt;P&gt;I have a BDC program which is running perfect for small loads(up to 25000 records), but now my total record size is increased to 60000. While creating a session its getting timed out message as the basis setting is made to 1200 seconds only...now to avoid this i am trying to use commit statement for every 2000 records....How can i do this??&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks in advance&lt;/P&gt;&lt;P&gt;Sony&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Jul 2007 19:00:41 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-use-commit-in-bdc/m-p/2441804#M546633</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-07-02T19:00:41Z</dc:date>
    </item>
    <item>
      <title>Re: How to use commit in BDC</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-use-commit-in-bdc/m-p/2441805#M546634</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You are using CALL TRANSACTION?  if so, this should do an implicit commit after each transaction, therefore resetting the counter.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;RIch Heilman&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Jul 2007 19:03:49 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-use-commit-in-bdc/m-p/2441805#M546634</guid>
      <dc:creator>RichHeilman</dc:creator>
      <dc:date>2007-07-02T19:03:49Z</dc:date>
    </item>
    <item>
      <title>Re: How to use commit in BDC</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-use-commit-in-bdc/m-p/2441806#M546635</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Maybe you can use a counter...and every 2000 records write...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
COMMIT WORK.
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Greetings,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Blag.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Jul 2007 19:04:51 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-use-commit-in-bdc/m-p/2441806#M546635</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-07-02T19:04:51Z</dc:date>
    </item>
    <item>
      <title>Re: How to use commit in BDC</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-use-commit-in-bdc/m-p/2441807#M546636</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Rich,&lt;/P&gt;&lt;P&gt;Thanks for your reply...I am using session method .. its for pricing conditions...how can i do for this??&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;im using call transaction method for contracts and its working fine.....&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks&lt;/P&gt;&lt;P&gt;Sony&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Jul 2007 19:07:57 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-use-commit-in-bdc/m-p/2441807#M546636</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-07-02T19:07:57Z</dc:date>
    </item>
    <item>
      <title>Re: How to use commit in BDC</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-use-commit-in-bdc/m-p/2441808#M546637</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;Have you tried to execute this in background?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;aRs&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Jul 2007 19:08:45 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-use-commit-in-bdc/m-p/2441808#M546637</guid>
      <dc:creator>former_member194669</dc:creator>
      <dc:date>2007-07-02T19:08:45Z</dc:date>
    </item>
    <item>
      <title>Re: How to use commit in BDC</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-use-commit-in-bdc/m-p/2441809#M546638</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;Instead of creating one session and using COMMIT-WORK, you can create multiple sessions to solve your problem. You said that it is working fine with 25000 records, so after every 25000 records or 20000 records to be on a safer side, close the current session and create a new session for next 20000 records. So, in this way, time out wont occur and u will be able to process your data successfully. So, in your case, you will have three sessions with 20000 records each. Once 3 session are being created, you can process them in your desired sequence from transaction SM35.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward points if the answer is helpful.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Mukul&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Jul 2007 19:09:54 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-use-commit-in-bdc/m-p/2441809#M546638</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-07-02T19:09:54Z</dc:date>
    </item>
    <item>
      <title>Re: How to use commit in BDC</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-use-commit-in-bdc/m-p/2441810#M546639</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Mukul,&lt;/P&gt;&lt;P&gt;Thanks for ur reply...i can do tht but while executing the session i can run one at a time which i dont want to do....any other solution??&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks &lt;/P&gt;&lt;P&gt;sony&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Jul 2007 19:14:21 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-use-commit-in-bdc/m-p/2441810#M546639</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-07-02T19:14:21Z</dc:date>
    </item>
    <item>
      <title>Re: How to use commit in BDC</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-use-commit-in-bdc/m-p/2441811#M546640</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hey to run in the background ...i should first create session right?? sorry if im wrong...can u be more specific??&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks&lt;/P&gt;&lt;P&gt;Sony&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Jul 2007 19:16:59 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-use-commit-in-bdc/m-p/2441811#M546640</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-07-02T19:16:59Z</dc:date>
    </item>
    <item>
      <title>Re: How to use commit in BDC</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-use-commit-in-bdc/m-p/2441812#M546641</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Sony,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;After creating 3 sessions, you can trigger a background job programatically which will process all three sessions one after another. So, you don't have to worry about processing each session separately from transaction SM35 . You just have to trigger a background job programatically.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward points if the answer is helpful.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thankx,&lt;/P&gt;&lt;P&gt;Mukul&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Jul 2007 19:23:34 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-use-commit-in-bdc/m-p/2441812#M546641</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-07-02T19:23:34Z</dc:date>
    </item>
    <item>
      <title>Re: How to use commit in BDC</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-use-commit-in-bdc/m-p/2441813#M546642</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Is it timing out while creating the session or while executing the session? Can you briefly write your flow here? Something like&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1. Upload the file.&lt;/P&gt;&lt;P&gt;2. Open the session. (BDC_OPEN_GROUP)&lt;/P&gt;&lt;P&gt;3. Loop at the data and&lt;/P&gt;&lt;P&gt;3.1. Create the BDC information for the transaction.&lt;/P&gt;&lt;P&gt;3.2 Insert the BDC data into the session. (BDC_INSERT)&lt;/P&gt;&lt;P&gt;3. End loop.&lt;/P&gt;&lt;P&gt;4. Close session. (BDC_CLOSE_GROUP)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If this is the sequence, then you can execute the session in SM35 in background or online.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Jul 2007 19:25:48 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-use-commit-in-bdc/m-p/2441813#M546642</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-07-02T19:25:48Z</dc:date>
    </item>
    <item>
      <title>Re: How to use commit in BDC</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-use-commit-in-bdc/m-p/2441814#M546643</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Srinivas,&lt;/P&gt;&lt;P&gt;Its timed out during the creation of session itself.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Sony&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Jul 2007 19:30:16 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-use-commit-in-bdc/m-p/2441814#M546643</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-07-02T19:30:16Z</dc:date>
    </item>
    <item>
      <title>Re: How to use commit in BDC</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-use-commit-in-bdc/m-p/2441815#M546644</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;What are you doing as far as creating the session is concerned to take up so much time? 60000 records is not much that it should take 20 minutes.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You can execute your program in the background which will create the session without the timeout problem and then you can go to SM35 to execute it or SUBMIT RSBDCSUB from within the same program.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Jul 2007 19:39:07 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-use-commit-in-bdc/m-p/2441815#M546644</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-07-02T19:39:07Z</dc:date>
    </item>
    <item>
      <title>Re: How to use commit in BDC</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-use-commit-in-bdc/m-p/2441816#M546645</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Sony,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I had same problem and i resolved .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I used selection-screen ,in the selection-screen you can mention how many records do you want ( I mean it gets all the record from file and spliting diffrent session based on number of records you entered in selection-screen)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;See the below test 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;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;Seshu&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Jul 2007 19:44:19 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-use-commit-in-bdc/m-p/2441816#M546645</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-07-02T19:44:19Z</dc:date>
    </item>
    <item>
      <title>Re: How to use commit in BDC</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-use-commit-in-bdc/m-p/2441817#M546646</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Srinivas,&lt;/P&gt;&lt;P&gt;How can i create a session in background?? Let me explain wht im doing...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1) executing the prg&lt;/P&gt;&lt;P&gt;2)giving the files to be loaded&lt;/P&gt;&lt;P&gt;3) executing it to create the session&lt;/P&gt;&lt;P&gt;4)sm35...run the session.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;so how do i do the step 3 in background...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks&lt;/P&gt;&lt;P&gt;Sony&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Jul 2007 19:46:10 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-use-commit-in-bdc/m-p/2441817#M546646</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-07-02T19:46:10Z</dc:date>
    </item>
    <item>
      <title>Re: How to use commit in BDC</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-use-commit-in-bdc/m-p/2441818#M546647</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;While creating a background job, pass 'X' to the parameter start_immediately. So, background job will start immediately after its creation.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward points if the answer is helpful.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thankx,&lt;/P&gt;&lt;P&gt;Mukul&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Jul 2007 19:49:28 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-use-commit-in-bdc/m-p/2441818#M546647</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-07-02T19:49:28Z</dc:date>
    </item>
    <item>
      <title>Re: How to use commit in BDC</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-use-commit-in-bdc/m-p/2441819#M546648</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Are your files on the desktop/network drive? If so, you cannot execute it in the background. If you are uploading files from application server, you can simply go to SE38, execute the program, give the selection screen inputs, then in the menu "Program--&amp;gt;Execute in Background" will execute your program in the background and also create the sessions. You can also go to SM36 to manually create a job to execute your program but you need to create a variant to do that.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Jul 2007 19:51:09 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-use-commit-in-bdc/m-p/2441819#M546648</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-07-02T19:51:09Z</dc:date>
    </item>
    <item>
      <title>Re: How to use commit in BDC</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-use-commit-in-bdc/m-p/2441820#M546649</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;yes iam giving file as of now from my PC...i'm trying to do it from sm36..but getting error as " File cannot be uploaded. Please check the file for XXXXXXXX "&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;Sony&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Message was edited by: &lt;/P&gt;&lt;P&gt;        sony&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Message was edited by: &lt;/P&gt;&lt;P&gt;        sony&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Jul 2007 20:05:35 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-use-commit-in-bdc/m-p/2441820#M546649</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-07-02T20:05:35Z</dc:date>
    </item>
    <item>
      <title>Re: How to use commit in BDC</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-use-commit-in-bdc/m-p/2441821#M546650</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Then you will work on either improving the performance of your code or provide the option for uploading files from server. You cannot upload from desktop in background.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Message was edited by: &lt;/P&gt;&lt;P&gt;        Srinivas Adavi&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Jul 2007 20:07:43 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-use-commit-in-bdc/m-p/2441821#M546650</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-07-02T20:07:43Z</dc:date>
    </item>
  </channel>
</rss>

