BDC_OKCODE

Hi Guys,
I would like to asked for your help regarding BDC_OKCODE. I need the system to accept automatically the BDC_OKCODE rather than ticking the check box to accept the BDC_CODE. Thanks in advance!
Regards,
Michael Nacionales

try changing the mode in which you are calling the transaction.
if you use the mode N the pop up will not appear.
and if you use mode E then the pop up will appear only in case of an error.
CALL TRANSACTION <tcode>
USING <bdc_data_table>
MODE <A/E/N>
UPDATE <S/A/L>
MESSAGES INTO <message_table>.
MODES -> mode of transaction
A - interactive
E - Screen only on Error
N - Background
UPDATE -> update for transaction
S - Synchronous
A - Asynchronous
L - Local

Similar Messages

  • Parametre id  for  'BDC_OKCODE'  ???

    Hi EveryBody ...
    I want to parametre id for Bdc_code .
    I want to use -
    in my code ..
    SET PARAMETER ID '------' FIELD  '=IFLU' .
    Thanks For reply .
    Edited by: Serkan Taskan on Aug 13, 2008 8:30 PM

    Hi,
    In the bdc you can pass the ok code using the following routine
    PERFORM bdc_field  USING 'BDC_OKCODE'   'IFLU'.
    FORM bdc_field USING fnam fval.
      IF fval <> nodata.
        CLEAR bdcdata.
        bdcdata-fnam = fnam.
        bdcdata-fval = fval.
        APPEND bdcdata.
      ENDIF.
    ENDFORM.

  • RE-FX:call transaction using bdc-tab:No bdc_okcode for swapping table-entry

    Hello,
    I am trying to call transaction RERAOP (module RE-FX) to make an accounting transaction. There is 1 debit posting and 1 credit posting in a grid. Selecting the debit posting, a details scrren is shown, consisting of 2 registers.
    On the first register you have to fill different fields. At this point it isn't possible to select the second register. The second (credit) posting is diplayed when you hit the enter key. After the fields in the details screen of this (credit) postings have been filled, it is possible to swap back to the first (debit) posting with a double-click on the first entry of the postings-table.
    Finally I come to the point ...
    If I record these steps (batch-input recorder) and generate an report of this code there is no bdc_okcode for the above mentioned swap back to the debit posting. While executing this report I get a lot of error message because the swap back to the debit posting doesn't work (--> because of the missing bdc_okcode) and therefore the batch input tries to fill fields which are not on the active screen (because they are on the 2. register which is not displayed).
    Hope that there is someone out there who:
    1. Understands my miserable english   and
    2. has an advice for me.
    Thanks in advance!!!
      Stephan
    Edited by: Stephan Scholze on Apr 22, 2008 1:34 PM
    Edited by: Stephan Scholze on Apr 22, 2008 2:24 PM
    Edited by: Stephan Scholze on Apr 22, 2008 3:19 PM

    Not sure how much I can help as we don't run RE-FX (RERAOP - what's the program name btw?) at any sites I work at, but a couple of general BDC things you might try (based on problems I've had with BDCs to other Tcodes)...
    When you are in that transaction normally do a right click to see what function codes are defined as there might be one there that allows you to switch between these debit & credit data entry places (how are they rendered, btw - are they ALV grids or what?  If they are table controls then you should be able to position the cursor on row 1 and trigger an F2 double-click)... also look at the PF-STATUS carefully in case (once again) there is a function code that lets you swap from DR to CR & vice versa... and even browse the source code in the user-command for the screen might give a clue as to how to achieve this.  Of course it may not be possible if the data entry is control based i.e. the input areas are provided in the SAPGui not the application server (such as the text editor & ALV grids)... in which case you start hunting for BAPIs and function modules and the like, or end up having to pass data into the transaction via something like an "export" and catch it inside a user exit or enhancement via an "import"... all rather messy, but quite possible.
    Jonathan

  • Populating BDC_OKCODE from Z Program

    In a Z program I wrote I am updating FB01 (bgr00, bbkpf, bbseg)  using SAP program RFBIBL00.  It processes fine but when I go into SM35 to process the records written I have to enter a BDC_OKCODE for every record written.  This will take too long for the business to process the file.  Is there anyway I can default the valus for the BDC_OKCODE in the program?  Or is there some thing else I am missing?
    - Helen

    to process the records written I have to enter a BDC_OKCODE for every record written
    I think so you are running the session in foreground mode. In the popup choose background mode execution.

  • Question on :BDC_OKCODE

    Hi Abapes,
                      what is difference in 'BACK' and '=BACK', when they are assigned to
    BDC_OKCODE.
    With Regards
    Bhaskar Rao.M

    Generally we assign  the function codes to SY-UCOMM i mean, when u click a pushbutton or some other user interaction the corresponding function code will be stored in SY-UCOMM.
    Placing the <b>function code with  '=' before</b> them in OK_CODE is equivalent to clicking that <b>pushbutton or placing the function code in SY-UCOMM</b>.
    Not onli 'back' any function code..
    Thats it... 
    regards ,
    sai ramesh

  • Removing BDC_OKCODE popup window

    Hi,
    I have a BDC for posting document. BDC has code
      perform f_bdc_field       using 'BDC_OKCODE'
                                    '/00'.
    Due to this the window pop ups, with value /00 as BDC_OKCODE and I have to click enter.
    The requirement is to remove the popup window.
    Is there any way I can hardcode this value so that it autmatically takes this values during runtime??

    try this:
    At the top of your screen (toolbar) there is a button with a monitor displayed (colors green, red & blue), next to the question mark (Help) button, to maintain some settings. Click this button and choose 'Options'. On tab 'Expert' there is a checkbox for BDC OK code. Uncheck it and try again.

  • BDC_OKCODE for batch jobs

    Hi everyone
    I am modifying an existing program that creates a batch job.  Does anybody know what the possible values are for the BDC_OKCODE field eg. /00, BACK, =PDE3 and so on.  I see that they tend to relate to function codes from the Gui status - is there an easy way to find out what they do?
    Thanks
    Andy

    Hi Andrew,
    BDC_OKCODE identifies the command field.
    it can use function key number or function code
    / for function key number and = for function code
    '/3' -->Back function key
    '/15'-->Quit function key
    '/11'--> save
    All functions in menus and buttons are identified by function codes.
    Regards,
    Ferry Lianto
    Please reward points if helpful.

  • BDC_OKCODE and BDC_CURSOR ?

    hello everybody.
    in bdc, what is the purpose of bdc_okcode and bdc_cursor,
    while refering the book, i got the answer
    bdc_okcode to save the bdc data
    bdc_cursor to position the cursor.
    but i am not clear with that answer.
    please guide me

    Hi,
    we use these fields in  data uploading through recording.
    the transaction is 'SHDB' for making recording for transaction.  and then transfer these recordings to a program for mass uploading of data.
    Here i have paste a sample code where bdc_cursor and bdc_okcode is used in recording.
    <b>
        perform bdc_field       using 'BDC_CURSOR'
                                      'PROJ-PSPID'.
        perform bdc_field       using 'BDC_OKCODE'
                                      '=BU'.
    </b>
    for details on BDC recordings go through the following link and you will have all details.
    http://www.sapbrain.com/TUTORIALS/TECHNICAL/BDC_tutorial.html
    Regards,
    Wasim Ahmed

  • Bdc_okcode & bdc_cursor

    hi friends
    what is the difference betweenn
    bdc_okcode and bdc_cursor

    BDC_OKCODE
    BDC_OKCODE  is used to  trigger the function keys  
    BDC_CURSOR
       BDC_CURSOR is used to place cursor on particular field.
    BDC_OKCODE
    OK_CODE is the key which gets filled when u click on user-commands(like buttons).
    BDC_OKCODE is one which is normally used in BDC programming...When U want to navigate from one screen to other screen or u want to press enter or save buttons...U need to fill the BDC_OKCODE with revelant values so that while running the BDC u can navigate according to the values specified.
    Execute the transaction SHDB and give the transaction for which you want to do A BDC. Enter all the details and then save it.
    Now, when you see the saved data, you can see that in many places, BDC_OKCODE would have some values like /00 and such things..These indicate, what is the action that you have done ,
    For example, /00 indicates ENTER.
    BDC_CURSOR
      Eg...HANDLING OF POP UP SCREEN IN BDC
    Many times in transaction pop up screen appears and for this screen you don’t pass any record but some indication to system telling it to proceed further.
    To handle such screen, system has provided a variable called BDC_CURSOR. You pass this variable to BDCDATA and process the screen.
    Usually such screen appears in many transactions, in this case you are just passing information, that YES you want to save the information, that means YES should be clicked. So you are transferring this information to BDCDATA i.e., field name of YES which is usually SPOT_OPTION. Instead of BDC_OKCODE, you are passing BDC_CURSOR.

  • 'BDC_OKCODE' menaing

    can anyboy explain me what is the meaning of this .
    in what conditions it will get exicute ?
    PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=NEW'.

    can you please tell me
    why its coming out from the loop if lv_amount values suppose 0.36 (even thought its NE 0 )
      LOOP AT t_output INTO wa_output.
        lv_amount = <fv_output>.
        CONDENSE lv_amount.
       IF lv_amount NE 0.                           
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=NEW'.
        PERFORM bdc_field       USING 'GLU1-TSL'
                                      lv_amount.
        PERFORM bdc_field       USING 'RGBUK-O_V01'
                                      wa_output-racct.
        PERFORM bdc_field       USING 'RGBUK-O_V04'
                                      p_rprctr.
        PERFORM bdc_field       USING 'RGBUK-O_V05'
                                      wa_output-rzzplat.
        PERFORM bdc_dynpro      USING 'SAPMGBUK' '0110'.
       ENDIF.                                        "
      ENDLOOP.

  • Bdc_OkCode Tree Expand All

    Hi EveryBody,
    I urge trees on a screen using a BDC.
    But Three is coming off.
    How can we open all in BDC ?
    Best Regards,
    Rasim BASCH.

    Thank you Felipe,
    But, No, transection is not standard.
    I created a transection own.
    I have a screen, working in the tree structure.
    When you click to another alv I'm calling it.
    But coming off the tree.
    I want all of you to come open.
    Regards...

  • How can i see log in sm35 after i run my program  ?

    i ahve some problem in my recording  , but i cant get what screen couse
    to the error .
    i get message in the end of the session  "Start screen does not exist in batch input data".
    i try to fix ( remark or open some lines ) but i cant find
    the problem  , so i wan to see the log in sm35 but i cant see .
    how can i do it  ?
    i now about "RSBDC_PROTOCOL " , but it didn't help .
    my program/record   :
      LOOP AT IT_AGR_LIST .
        PERFORM BDC_DYNPRO      USING 'SAPMM06E' '0205'.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'RM06E-EVRTN'.
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM BDC_FIELD       USING 'RM06E-EVRTN'
                                      IT_AGR_LIST-EVRTN . " '4610000065'.
        PERFORM BDC_DYNPRO      USING 'SAPMM06E' '0220'.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'RM06E-EBELP'.
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '=NP'.
        PERFORM BDC_FIELD       USING 'RM06E-EBELP'
                                      '10'.
        PERFORM BDC_DYNPRO      USING 'SAPMM06E' '0220'.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'EKPO-PEINH(02)'.
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM BDC_FIELD       USING 'RM06E-EBELP'
                                        '20'.
        LOOP AT IT_BKPF WHERE EVRTN = IT_AGR_LIST-EVRTN .
          PERFORM BDC_FIELD       USING 'EKPO-EMATN(02)'
                                        IT_BKPF-EMATN  . " '7000305'.
          PERFORM BDC_FIELD       USING 'EKPO-NETPR(02)'
                                   IT_BKPF-NETPR .     "'2552'.
          PERFORM BDC_FIELD       USING 'EKPO-PEINH(02)'
                                        '1000'.
          PERFORM BDC_DYNPRO      USING 'SAPMM06E' '0220'.
          PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                        'RM06E-EVRTP(02)'.
          PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                        '=TXP'.
          PERFORM BDC_FIELD       USING 'RM06E-EBELP'
                                        COUNTR .                "'20'.
          PERFORM BDC_FIELD       USING 'RM06E-TCSELFLAG(02)'
                                        'X'.
          PERFORM BDC_DYNPRO      USING 'SAPMM06E' '0106'.
          PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                        'RM06E-LTEX1(01)'.
          PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                        '=TEDE'.
          PERFORM BDC_FIELD       USING 'RM06E-SELKZ(01)'
                                        'X'.
          PERFORM BDC_DYNPRO      USING 'SAPLSTXX' '1100'.
          PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                        'RSTXT-TXLINE(02)'.
          PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                        '=EDNP'.
          PERFORM BDC_FIELD       USING 'RSTXT-TXLINE(02)'
                                        IT_BKPF-STR_LEN1.
             'aaaaaaaaa1aaaaaaaaa2aaaaaaaaa3aaaaaaaa'  &
                          *'a4aaaaaaaaa5aaaaaaaaa6aaaaaaaaa7aa'.
         PERFORM BDC_DYNPRO      USING 'SAPLSTXX' '1100'.
         PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                       'RSTXT-TXLINE(03)'.
    if not IT_BKPF-STR_LEN2  is initial .
         PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                       '=EDNP'.
          PERFORM BDC_FIELD       USING 'RSTXT-TXLINE(03)'
                                   IT_BKPF-STR_LEN2.
             'aaaaaaaaa1aaaaaaaaa2aaaaaaaaa3aaaaaaaa'  &
                          *'a4aaaaaaaaa5aaaaaaaaa6aaaaaaaaa7aa'.
    endif.
         PERFORM BDC_DYNPRO      USING 'SAPLSTXX' '1100'.
         PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                       'RSTXT-TXLINE(04)'.
         PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                       '=EDNP'.
          PERFORM BDC_FIELD       USING 'RSTXT-TXLINE(04)'
                                   IT_BKPF-STR_LEN3.
             'aaaaaaaaa1aaaaaaaaa2aaaaaaaaa3aaaaaaaa'  &
                          *'a4aaaaaaaaa5aaaaaaaaa6aaaaaaaaa7aa'.
         PERFORM BDC_DYNPRO      USING 'SAPLSTXX' '1100'.
         PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                       'RSTXT-TXLINE(05)'.
      if not IT_BKPF-STR_LEN2  is initial .
         PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                       '=EDNP'.
         PERFORM BDC_FIELD       USING 'RSTXT-TXLINE(05)'
    **'ssssssssssssssssssssssssssssssssssssss'
    ***'sendif.sssssssssssssssssssssssssssssssss'.
    **endif.
         PERFORM BDC_DYNPRO      USING 'SAPLSTXX' '1100'.
         PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                       'RSTXT-TXLINE(06)'.
         PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                       '=EDNP'.
         PERFORM BDC_FIELD       USING 'RSTXT-TXLINE(06)'
    **'ssssssssssssssssssssssssssssssssssssss'
    ***'ssssssssssssssssssssssssssssssssss'.
         PERFORM BDC_DYNPRO      USING 'SAPLSTXX' '1100'.
         PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                       'RSTXT-TXLINE(07)'.
          PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                        '=TXBA'.
          PERFORM BDC_DYNPRO      USING 'SAPMM06E' '0106'.
          PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                        'RM06E-SELKZ(01)'.
          PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                        '=BU'.
          PERFORM BDC_FIELD       USING 'RM06E-SELKZ(01)'
                                        'X'.
          CALL TRANSACTION 'ME32K' USING BDCDATA
                                           MODE   P_DMODE  "A"
                                           UPDATE 'S'
                                           MESSAGES INTO ITAB_MSG1.

    hi,
    goto se38 - find - rsbdc*:
    you'll find a lot of prg. to analyse your bdc-map
    like RSBDCLOG  or RSBDC_ANALYSE 
    A.

  • MULTIPLE ITEM PROBLEM IN VL31N BDC

    hI FRIENDS ,
        I AM POSTING A BDC OF TRANSACTION VL31N ,ie FOR SCHEDULE AGREEMENT INBOUND DELIVERY.I CREATE A FUNCTIONAL MODULE OF THE SAME AND CALL IT FROM AN ASP PAGE,IN THAT THERE IS PO NUMBER 5500000986 WHICH HAS TWO ITEMES 62 AND 95 RESPECTIVLY OF SAME MATARIAL NUMBER R010230123041002 AND DIE NUMBER 2304P,NOW THE PROBLEM IS THIS BDC IS WORKING WHEN THERE IS ONLY ONE ITEM BUT GIVES AN ERROR "CANT CREAT INBOUND DELIVERY FOR PO NO ...' WNEN IT HAS MULTIPLE ITEM.WHAT SHOULD I DO ? I ALSO USED LOOP BUT IT ALSO DOSENT WORK AS IT WILL ADD ALL OPEN QTY OF PO 986 AND UPDATE AGAINST ITEM NO 95.
    CODE IS AS FOLLOWS:.........
    FUNCTION y_synie_bdcinbdly.
    ""Local interface:
    *"  IMPORTING
    *"     VALUE(CTU) LIKE  APQI-PUTACTIVE DEFAULT 'X'
    *"     VALUE(MODE) LIKE  APQI-PUTACTIVE DEFAULT 'N'
    *"     VALUE(UPDATE) LIKE  APQI-PUTACTIVE DEFAULT 'L'
    *"     VALUE(GROUP) LIKE  APQI-GROUPID OPTIONAL
    *"     VALUE(USER) LIKE  APQI-USERID OPTIONAL
    *"     VALUE(KEEP) LIKE  APQI-QERASE OPTIONAL
    *"     VALUE(HOLDDATE) LIKE  APQI-STARTDATE OPTIONAL
    *"     VALUE(NODATA) LIKE  APQI-PUTACTIVE DEFAULT '/'
    *"     VALUE(EXTNID) LIKE  MAKT-MAKTG
    *"     VALUE(VENDORNO) LIKE  LFA1-LIFNR
    *"     VALUE(PONUMBER) LIKE  EKKO-EBELN
    *"     VALUE(ITEMNUMBER) LIKE  LIPS-VGPOS
    *"     VALUE(MATERIAL) LIKE  MAKT-MAKTG
    *"     VALUE(DLYQTY) LIKE  LIPS-LFIMG
    *"     VALUE(BTCHNO) LIKE  LIPS-CHARG
    *"     VALUE(POSLR) LIKE  EKES-EBELP OPTIONAL
    *"  EXPORTING
    *"     VALUE(SUBRC) LIKE  SYST-SUBRC
    *"     VALUE(INDELYNO) LIKE  SY-MSGV2
    *"     VALUE(MSG1) LIKE  SY-MSGV1
    *"     VALUE(MSG2) LIKE  SY-MSGV2
    *"     VALUE(MSG3) LIKE  SY-MSGV3
    *"     VALUE(MSG4) LIKE  SY-MSGV4
    *"  TABLES
    *"      MESSTAB STRUCTURE  BDCMSGCOLL
    *"      ERRTAB STRUCTURE  YSYNERRMSGS
    *"      INDLYTAB STRUCTURE  YSYN_QTYTAB
    Updated by ANAND SYNISE 19.1.2007
      DATA: BEGIN OF bdctab OCCURS 0.
              INCLUDE STRUCTURE bdcdata.
      DATA: END OF bdctab.
      DATA: datenow(10) TYPE c,
            fldvar(30)  TYPE c,
            fldno       TYPE i,
            flditoc(6)  TYPE c,
            qty(13)     TYPE c.
      DATA maxposnr LIKE lips-posnr.
      DATA testposnr TYPE posnr.
      DATA itemnoint TYPE i.
      CONCATENATE sy-datum6(2) '.' sy-datum4(2) '.' sy-datum+0(4) INTO datenow.
      CLEAR bdctab.
      REFRESH bdctab.
      PERFORM open_group      USING group user keep holddate ctu.
           CLEAR bdctab.
           bdctab-program = 'SAPMV50A'.
           bdctab-dynpro = '4007'.
           bdctab-dynbegin = 'X'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_CURSOR'.
           bdctab-fval = 'RV50A-VERUR_LA'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_OKCODE'.
           bdctab-fval = '/00'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'LIKP-LIFNR'.
           bdctab-fval = vendorno.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'LV50C-BSTNR'.
           bdctab-fval = ponumber.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'RV50A-LFDAT_LA'.
           bdctab-fval = datenow.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'RV50A-LFUHR_LA'.
           bdctab-fval = '00:00'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'RV50A-VERUR_LA'.
           bdctab-fval = extnid.
           APPEND bdctab.
       CLEAR bdctab.
           bdctab-program = 'SAPMV50A'.
           bdctab-dynpro = '1000'.
           bdctab-dynbegin = 'X'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_OKCODE'.
           bdctab-fval = '=MKAL_T'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_CURSOR'.
           bdctab-fval = 'LIKP-BLDAT'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'LIKP-BLDAT'.
           bdctab-fval = datenow.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'RV50A-LFDAT_LA'.
           bdctab-fval = datenow.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'RV50A-LFUHR_LA'.
           bdctab-fval = '00:00'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-program = 'SAPMV50A'.
           bdctab-dynpro = '1000'.
           bdctab-dynbegin = 'X'.
           APPEND bdctab.
       CLEAR bdctab.
           bdctab-fnam = 'BDC_OKCODE'.
           bdctab-fval = '=POPO_T'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'LIKP-BLDAT'.
           bdctab-fval = datenow.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_CURSOR'.
           bdctab-fval = 'LIPS-POSNR(01)'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'RV50A-LFDAT_LA'.
           bdctab-fval = datenow.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'RV50A-LFUHR_LA'.
           bdctab-fval = '00:00'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-program = 'SAPMV50A'.
           bdctab-dynpro = '0111'.
           bdctab-dynbegin = 'X'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_CURSOR'.
           bdctab-fval = 'RV50A-PO_MATNR'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_OKCODE'.
           bdctab-fval = 'WEIT'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'RV50A-PO_MATNR'.
           bdctab-fval = material.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-program = 'SAPMV50A'.
           bdctab-dynpro = '1000'.
           bdctab-dynbegin = 'X'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_OKCODE'.
           bdctab-fval = '=POLO_T'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'LIKP-BLDAT'.
           bdctab-fval = datenow.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_CURSOR'.
           bdctab-fval = 'LIPS-POSNR(01)'.
           APPEND bdctab.
    *ADDED BY ANAND ON 22-01-2007
           CLEAR bdctab.
           bdctab-fnam = 'BDC_CURSOR'.
           bdctab-fval =  ITEMNUMBER .     "ITEMNUMBER = LIPS-VGPOS
           APPEND bdctab.
    ************ENDED***********************
    ADDED BY MILIND 19.01.2007
           CLEAR bdctab.
           bdctab-fnam = 'BDC_CURSOR'.
           bdctab-fval =  poslr .
           APPEND bdctab.
    *    ENDED * *
       CLEAR bdctab.
           bdctab-fnam = 'RV50A-LFDAT_LA'.
           bdctab-fval = datenow.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'RV50A-LFUHR_LA'.
           bdctab-fval = '00:00'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'RV50A-LIPS_SELKZ(01)'.
           bdctab-fval = ''.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
       CLEAR bdctab.
           bdctab-program = 'SAPMV50A'.
           bdctab-dynpro = '1000'.
           bdctab-dynbegin = 'X'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_OKCODE'.
           bdctab-fval = '/00'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'LIKP-BLDAT'.
           bdctab-fval = datenow.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_CURSOR'.
           bdctab-fval = 'LIPS-CHARG(01)'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'RV50A-LFDAT_LA'.
           bdctab-fval = datenow.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'RV50A-LFUHR_LA'.
           bdctab-fval = '00:00'.
           APPEND bdctab.
           CLEAR bdctab.
          QTY = INDLYTAB-DLYQTY.
            qty = dlyqty.
           bdctab-fnam = 'LIPSD-G_LFIMG(01)'.
           bdctab-fval = QTY.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'LIPS-CHARG(01)'.
    *     BDCTAB-FVAL = INDLYTAB-BTCHNO.
           bdctab-fval = btchno.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
       CLEAR bdctab.
           bdctab-program = 'SAPMV50A'.
           bdctab-dynpro = '1000'.
           bdctab-dynbegin = 'X'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_OKCODE'.
           bdctab-fval = '=SICH_T'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'LIKP-BLDAT'.
           bdctab-fval = datenow.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_CURSOR'.
           bdctab-fval = 'LIPS-MATNR(02)'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'RV50A-LFDAT_LA'.
           bdctab-fval = datenow.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'RV50A-LFUHR_LA'.
           bdctab-fval = '00:00'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
           CLEAR bdctab.
           bdctab-fnam = 'BDC_SUBSCR'.
           bdctab-fval = 'SAPMV50A'.
           APPEND bdctab.
      CALL TRANSACTION 'VL31N' USING bdctab MODE 'N'  MESSAGES INTO messtab.
      subrc = sy-subrc.
      PERFORM close_group USING     ctu.
      CLEAR bdctab.
      REFRESH bdctab.
      IF sy-subrc EQ 0.
        indelyno = sy-msgv2.
      ENDIF.
      LOOP AT messtab.
        MOVE: messtab-msgid TO errtab-msgid,
              messtab-msgnr TO errtab-msgnr,
              messtab-msgv1 TO errtab-msg1,
              messtab-msgv2 TO errtab-msg2,
              messtab-msgv3 TO errtab-msg3,
              messtab-msgv4 TO errtab-msg4.
        APPEND ERRtab.
      ENDLOOP.
      LOOP AT errtab.
        SELECT SINGLE text FROM t100
          INTO errtab-errmsg
          WHERE msgnr EQ errtab-msgnr AND arbgb EQ errtab-msgid
          AND sprsl EQ sy-langu.
        MODIFY errtab.
      ENDLOOP.
    ENDFUNCTION.

    Hi,
    Check this code:
    REPORT Z_CUSTOMER_UPLOAD .
                  D A T A         D E C L A R A T I O N S                *
    DATA:BEGIN OF IT_CUSTOMER OCCURS 0,
         KUNNR LIKE MV10A-KUNNR,
         VKORG LIKE MV10A-VKORG,
         VTWEG LIKE MV10A-VTWEG,
         MATNR LIKE MV10A-MATNR,
         KDMAT LIKE MV10A-KDMAT,
         MEGRU LIKE MV10A-MEGRU,
         SELKZ TYPE C value 'X',
         LPRIO LIKE MV10A-LPRIO,
         ANTLF LIKE MV10A-ANTLF,
         END OF IT_CUSTOMER.
    DATA:BEGIN OF IT_success OCCURS 0,
         KUNNR LIKE MV10A-KUNNR,
         VKORG LIKE MV10A-VKORG,
         VTWEG LIKE MV10A-VTWEG,
         MATNR LIKE MV10A-MATNR,
         KDMAT LIKE MV10A-KDMAT,
         MEGRU LIKE MV10A-MEGRU,
         SELKZ TYPE C value 'X',
         LPRIO LIKE MV10A-LPRIO,
         ANTLF LIKE MV10A-ANTLF,
         END OF IT_success.
    DATA:BEGIN OF IT_error OCCURS 0,
         KUNNR LIKE MV10A-KUNNR,
         VKORG LIKE MV10A-VKORG,
         VTWEG LIKE MV10A-VTWEG,
         MATNR LIKE MV10A-MATNR,
         KDMAT LIKE MV10A-KDMAT,
         MEGRU LIKE MV10A-MEGRU,
         SELKZ TYPE C value 'X',
         LPRIO LIKE MV10A-LPRIO,
         ANTLF LIKE MV10A-ANTLF,
         END OF IT_error.
    DATA: L_INDEX TYPE SY-TABIX.
    DATA:IT_BDC LIKE BDCDATA OCCURS 0 WITH HEADER LINE,
    IT_DATA TYPE ALSMEX_TABLINE OCCURS 0 WITH HEADER LINE.
    ERROR MESSAGE TABLE
    DATA:IT_MESSAGES LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
    DATA : C_S TYPE C VALUE 'S',
            C_E TYPE C VALUE 'E'.
    *DATA: IT_SUCCESS LIKE IT_CUSTOMER OCCURS 0,
         IT_ERROR LIKE IT_CUSTOMER  OCCURS 0.
    DATA : V_RECTOT TYPE I,
            V_RECERR TYPE I,
            V_RECSUC TYPE I.
                  S E L E C T I O N  -  S C R E E N                      *
    SELECTION-SCREEN : BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
    PARAMETER        : P_FILE LIKE RLGRAP-FILENAME .
    SELECTION-SCREEN : END OF BLOCK B1.
               A T  S E L E C T I O N  -  S C R E E N                    *
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
    to get F4 help for p_file
      PERFORM F4_FILENAME USING P_FILE.
                S T A R T   O F   S E L E C T I O N                      *
    START-OF-SELECTION.
    Uploading data from flat file into it_tab
      PERFORM BDC_UPLOAD USING P_FILE.
      PERFORM PROCESS_DATA.
      PERFORM POPULATE_BDC.
                E N D  O F   S E L E C T I O N                           *
    *END-OF-SELECTION.
    PERFORM DISPLAY_REPORT.
    *&      Form  F4_FILENAME
          text
         -->P_P_FILE  text
    FORM F4_FILENAME USING    P_P_FILE.
    DATA:L_FILE TYPE IBIPPARMS-PATH.
    CALL FUNCTION 'F4_FILENAME'
    EXPORTING
      PROGRAM_NAME        = SYST-CPROG
      DYNPRO_NUMBER       = SYST-DYNNR
      FIELD_NAME          = ' '
    IMPORTING
       FILE_NAME           = L_FILE .
       P_P_FILE = L_FILE.
    ENDFORM.                    " F4_FILENAME
    *&      Form  BDC_UPLOAD
          text
         -->P_P_FILE  text
    FORM BDC_UPLOAD USING    P_P_FILE.
    CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
      EXPORTING
        FILENAME                      = P_P_FILE
        I_BEGIN_COL                   = 1
        I_BEGIN_ROW                   = 1
        I_END_COL                     = 8
        I_END_ROW                     = 1000
      TABLES
        INTERN                        = IT_DATA
    EXCEPTIONS
       INCONSISTENT_PARAMETERS       = 1
       UPLOAD_OLE                    = 2
       OTHERS                        = 3
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
             WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    ENDFORM.                    " BDC_UPLOAD
    *&      Form  PROCESS_DATA
          text
    -->  p1        text
    <--  p2        text
    FORM PROCESS_DATA.
    SORT IT_DATA BY ROW COL.
      LOOP AT IT_DATA.
    CASE IT_DATA-COL.
    WHEN 1.
    IT_CUSTOMER-KUNNR   = IT_DATA-VALUE.
    WHEN 2.
    IT_CUSTOMER-VKORG   = IT_DATA-VALUE.
    WHEN 3.
    IT_CUSTOMER-VTWEG   = IT_DATA-VALUE.
    WHEN 4.
    IT_CUSTOMER-MATNR   = IT_DATA-VALUE.
    WHEN 5.
    IT_CUSTOMER-KDMAT   = IT_DATA-VALUE.
    WHEN 6.
    IT_CUSTOMER-MEGRU   = IT_DATA-VALUE.
    WHEN 7.
    IT_CUSTOMER-LPRIO   = IT_DATA-VALUE.
    WHEN 8.
    IT_CUSTOMER-ANTLF   = IT_DATA-VALUE.
    APPEND IT_CUSTOMER.
        ENDCASE.
      ENDLOOP.
    ENDFORM.                    " PROCESS_DATA
    *&      Form  POPULATE_BDC
          text
    -->  p1        text
    <--  p2        text
    FORM POPULATE_BDC.
    DATA:L_COUNTER TYPE N,
             L_STRING TYPE STRING.
    LOOP AT IT_CUSTOMER.
    AT NEW KUNNR.
    CLEAR L_COUNTER.
          L_INDEX = SY-TABIX.
          READ TABLE IT_CUSTOMER INDEX L_INDEX.
    perform bdc_dynpro      using 'SAPMV10A' '0100'.
    perform bdc_field       using 'MV10A-KUNNR'
                                  IT_CUSTOMER-KUNNR.
    perform bdc_field       using 'MV10A-VKORG'
                                  IT_CUSTOMER-VKORG.
    perform bdc_field       using 'MV10A-VTWEG'
                                  IT_CUSTOMER-VTWEG.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    ENDAT.
    L_COUNTER = L_COUNTER + 1.
        CLEAR L_STRING.
    perform bdc_dynpro      using 'SAPMV10A' '0200'.
    CONCATENATE 'MV10A-MATNR(' L_COUNTER ')' INTO L_STRING.
    perform bdc_field       using L_STRING
                            IT_CUSTOMER-MATNR.
    CONCATENATE 'MV10A-KDMAT(' L_COUNTER ')' INTO L_STRING.
    perform bdc_field       using     L_STRING
                                     IT_CUSTOMER-KDMAT.
    CONCATENATE 'MV10A-MEGRU(' L_COUNTER ')' INTO L_STRING.
    perform bdc_field       using   L_STRING
                                    IT_CUSTOMER-MEGRU.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    *-- For Page down in Call Transaction Mode
        IF L_COUNTER = 14.
          CLEAR L_COUNTER.
          PERFORM BDC_DYNPRO      USING 'SAPMV45A' '4001'.
          PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                                '=P+'.
        ENDIF.
    perform bdc_dynpro      using 'SAPMV10A' '0200'.
    CONCATENATE 'MV10A-SELKZ(' L_COUNTER ')' INTO L_STRING.
    perform bdc_field       using L_STRING
                              IT_CUSTOMER-SELKZ.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=SELE'.
    perform bdc_dynpro      using 'SAPMV10A' '0300'.
    perform bdc_field       using 'MV10A-KDMAT'
                                  IT_CUSTOMER-KDMAT.
    perform bdc_field       using 'MV10A-LPRIO'
                                  IT_CUSTOMER-LPRIO.
    perform bdc_field       using 'MV10A-ANTLF'
                                  IT_CUSTOMER-ANTLF.
    PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                        '/EBACK'.
    at end of kunnr.
    READ TABLE IT_CUSTOMER INDEX L_INDEX.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=SICH'.
    CALL TRANSACTION 'VD51' USING IT_BDC MODE 'A' UPDATE 'S'
          MESSAGES INTO IT_MESSAGES.
          CLEAR IT_BDC.
          REFRESH IT_BDC.
    ENDAT.
      IF NOT IT_MESSAGES[] IS INITIAL.
        PERFORM FORMAT_MESSAGE.
      ENDIF.
    ENDLOOP.
    ENDFORM.                    " POPULATE_BDC
    *&      Form  bdc_dynpro
          text
         -->P_0273   text
         -->P_0274   text
    FORM bdc_dynpro USING    VALUE(P_0273)
                             VALUE(P_0274).
    IT_BDC-PROGRAM = P_0273.
    IT_BDC-DYNPRO = P_0274.
    IT_BDC-DYNBEGIN = 'X'.
      APPEND IT_BDC.
      CLEAR IT_BDC.
    ENDFORM.                    " bdc_dynpro
    *&      Form  bdc_field
          text
         -->P_0278   text
         -->P_RECORD_KUNNR_001  text
    FORM bdc_field USING    VALUE(P_0278)
                           VALUE(P_0279).
    IT_BDC-FNAM = P_0278.
      IT_BDC-FVAL = P_0279.
      APPEND IT_BDC.
      CLEAR IT_BDC.
    ENDFORM.                    " bdc_field
    *&      Form  FORMAT_MESSAGE
          text
    -->  p1        text
    <--  p2        text
    FORM FORMAT_MESSAGE.
    DATA: L_MSG(100).
      LOOP AT IT_MESSAGES.
      READ TABLE IT_CUSTOMER INDEX L_INDEX.
        CALL FUNCTION 'FORMAT_MESSAGE'
             EXPORTING
                  ID        = IT_MESSAGES-MSGID
                  LANG      = SY-LANGU
                  NO        = IT_MESSAGES-MSGNR
                  V1        = IT_MESSAGES-MSGV1
                  V2        = IT_MESSAGES-MSGV2
                  V3        = IT_MESSAGES-MSGV3
                  V4        = IT_MESSAGES-MSGV4
             IMPORTING
                  MSG       = L_MSG
             EXCEPTIONS
                  NOT_FOUND = 1
                  OTHERS    = 2.
        IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
        write:/ l_msg.
      ENDLOOP.
    ENDFORM.                    " FORMAT_MESSAGE
    reward if helpful,
    keerthi

  • Creation of PGI using BDC for tc VL02N is not happening..

    Hi All,
    i need to do Post Goods Issue (PGI) thro' BDC and after that i need to update the flag in Ztable.
    its giving Success message and updating the database also.
    but its not issuing the PGI.and further i want to create billing doc.So its compulsory to me to post PGI.
    if i look into the BDCMSGCOLL structure its giving "NO BATCH INPUT DATA FOR SCREEN"? why this is happening?
    please let me know immediately....
    REFRESH: tt_bdcmsgcoll .
      CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
        EXPORTING
          input  = wa_created-document_numb
        IMPORTING
          output = wa_created-document_numb.
      REFRESH tt_bdcdata.
      PERFORM bdc_dynpro      USING text-001 text-002.
      PERFORM bdc_field       USING text-008
                                   text-014.
      PERFORM bdc_field       USING text-009
                                    text-011.
      PERFORM bdc_field       USING text-014
                                    wa_created-document_numb.
      PERFORM bdc_dynpro      USING text-001 text-003.
      PERFORM bdc_field       USING text-009
                                    text-036.
      PERFORM bdc_field       USING text-025
                                    sy-datum.
      PERFORM bdc_field       USING text-008
                                    text-035.
      PERFORM bdc_field       USING text-037
                                    sy-datum.
      PERFORM bdc_field       USING text-038
                                    text-029.
      PERFORM bdc_field       USING text-016
                                    c_x.
      CALL TRANSACTION c_t_del USING tt_bdcdata
                                    MODE c_m
                                    UPDATE c_u
                                    MESSAGES INTO tt_bdcmsgcoll .
      SORT tt_bdcmsgcoll BY msgtyp.
      READ TABLE tt_bdcmsgcoll INTO wa_bdcmsgcoll WITH KEY msgtyp = c_e.
      IF sy-subrc EQ 0.
        LOOP AT tt_bdcmsgcoll INTO wa_bdcmsgcoll WHERE msgtyp = c_e.
          CALL FUNCTION 'FORMAT_MESSAGE'
            EXPORTING
              id        = wa_bdcmsgcoll-msgid
              lang      = text-010
              no        = wa_bdcmsgcoll-msgnr
              v1        = wa_bdcmsgcoll-msgv1
              v2        = wa_bdcmsgcoll-msgv2
              v3        = wa_bdcmsgcoll-msgv3
              v4        = wa_bdcmsgcoll-msgv4
            IMPORTING
              msg       = v_msg
            EXCEPTIONS
              not_found = 1
              OTHERS    = 2.
          IF sy-subrc <> 0.
          ENDIF.
          WRITE :/ v_msg.
        ENDLOOP.
      ELSE.
        MOVE : c_x TO wa_worklist-pgi_flag.
        READ TABLE tt_epit INTO wa_epit WITH KEY epi_id = wa_worklist-epi_id epi_sr = wa_worklist-epi_sr.
        IF sy-subrc EQ  0.
          MODIFY tt_epit FROM wa_worklist TRANSPORTING pgi_flag WHERE epi_id = wa_worklist-epi_id AND epi_sr = wa_worklist-epi_sr.
        ELSE.
          APPEND wa_worklist TO tt_epit.
        ENDIF.
         wa_epit-pgi_flag = c_x.
         MODIFY   tt_epit FROM wa_epit TRANSPORTING pgi_flag WHERE epi_id = wa_worklist-epi_id AND del_no = wa_created-document_numb .
         UPDATE zsd_dt_epit SET pgi_flag = 'X' WHERE epi_id = wa_worklist-epi_id AND del_no = wa_created-document_numb .
         IF  sy-subrc EQ 0.
         ENDIF.
      ENDIF.

    HI,
    Please refer this
    To perform Post goods issue
        PERFORM OPEN_GROUP.
        PERFORM BDC_DYNPRO      USING 'SAPMV50A' '4004'.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'LIKP-VBELN'.
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '=WABU_T'.
        PERFORM BDC_FIELD       USING 'LIKP-VBELN' DELIVERY.
                                 '84000064'.
        PERFORM BDC_TRANSACTION USING 'VL02N'.
        PERFORM CLOSE_GROUP.
        CLEAR : DELIVERY,
                T_BSITEM,
                T_BSICTL.
      ENDIF.
    ENDFORM.                    " DELIVERY

  • File server-Help!

    Hello Everyone,
    My program not working when sceduled to run in background, but works fine when run in foreground. Think i need to change some funcution modules as the ones i used are, think, referencing for foreground processing. Can anyone point to some function modules which does the job for me.
    I am picking up the files from file server.
    REPORT  zco11n
            NO STANDARD PAGE HEADING
            LINE-SIZE 255.
    INCLUDE zdeclerations.          " Data Declarations part
    *---------------Get actual filepath from logical filepath---------------------*
    CALL FUNCTION 'FILE_GET_NAME'
      EXPORTING
    *   CLIENT                        = SY-MANDT
        logical_filename              = 'ZBARCODE_APPLICATION'    "logical path
    IMPORTING
       file_name                     = pa_file                     "actual path
    EXCEPTIONS
       file_not_found                = 1
       OTHERS                        = 2
    IF sy-subrc <> 0.
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
              WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
    *---------------Get all the required files from the directory-------------------*
    CALL FUNCTION 'TMP_GUI_DIRECTORY_LIST_FILES'
      EXPORTING
        directory  = pa_file                         "Directory path
        filter     = '*.CSV'
      TABLES
        file_table = lt_file                        "Files in the direcory
        dir_table  = lt_dir
      EXCEPTIONS
        cntl_error = 1
        OTHERS     = 2.
    IF sy-subrc <> 0.
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
              WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
    *-------Get the directory and file name as single path & move to internal table----*
    LOOP AT lt_file INTO lw_file.
      CONCATENATE pa_file  lw_file-pathname INTO lstring.
      MOVE lstring TO lw_filename-pathname.
      MOVE lw_file-pathname TO lw_filename-filename.
      APPEND  lw_filename TO lt_filename.
      CLEAR lw_filename.
      CLEAR lw_file.
    ENDLOOP.
    START-OF-SELECTION.
      LOOP AT lt_filename  INTO lw_filename.
        file_name = lw_filename-pathname.
    *-------Read the contents of the file to an internal table--------------------------*
        CALL FUNCTION 'DX_FILE_READ'
          EXPORTING
            filename          = file_name
            pc                = 'X'
          TABLES
            data_tab          = lt_temp                            "File contents
          EXCEPTIONS
            no_file_on_server = 1
            no_data_on_server = 2
            gui_upload_failed = 3
            no_authority      = 4
            OTHERS            = 5.
        IF sy-subrc <> 0.
          MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                  WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
        ELSE.
    *-------------Split and move the contents as required for BDC---------------*
          LOOP AT lt_temp INTO lw_temp.
            SPLIT lw_temp AT ',' INTO lw_afrud-aufnr lw_afrud-lmnga lw_afrud-budat.
            APPEND lw_afrud TO lt_afrud.
          ENDLOOP.
    ************----------Start Of BDC-----------------------***************
          LOOP AT lt_afrud INTO lw_afrud.
            PERFORM bdc_dynpro      USING 'SAPLCORU_S' '0100'.
            PERFORM bdc_field       USING 'BDC_OKCODE'
                                          '/00'.
            PERFORM bdc_field       USING 'AFRUD-AUFNR'
                                           lw_afrud-aufnr.
            PERFORM bdc_field       USING 'AFRUD-LMNGA'
                                          '1'.
            PERFORM bdc_field       USING 'AFRUD-ISDZ'
                                          '00:00:00'.
            PERFORM bdc_field       USING 'AFRUD-IEDZ'
                                          '00:00:00'.
            PERFORM bdc_field       USING 'AFRUD-PEDZ'
                                          '00:00:00'.
            PERFORM bdc_field       USING 'BDC_CURSOR'
                                          'AFRUD-BUDAT'.
            PERFORM bdc_field       USING 'AFRUD-BUDAT'
                                          lw_afrud-budat.
            PERFORM bdc_dynpro      USING 'SAPLCORU_S' '0100'.
            PERFORM bdc_field       USING 'BDC_OKCODE'
                                          '=BU'.
            CALL TRANSACTION 'CO11N' USING lt_bdcdata MODE 'N'
            UPDATE 'S' MESSAGES INTO lt_bdcmsgcoll.          "#EC CI_CALLTA
          ENDLOOP.
    *******-----------End of BDC-------------------------------------*******
          CLEAR lw_afrud.
          REFRESH lt_afrud.
    ************************File Manipulations*********************
          lv_file_name = lw_filename-filename.                     "Assign the filename to a local variable
          CONCATENATE '\CAUVERYSAPBARCODESUCCESS'
                          lv_file_name INTO lstring_success.       "Place holder for BDC Success Files
          CONCATENATE '\CAUVERYSAPBARCODEERROR'
                          lv_file_name INTO lstring_error.         "Place holder for BDC Error Files
          file_name_source = file_name.                            "Source file path
          file_name_success_dest = lstring_success.                "Success file path
          file_name_error_dest = lstring_error.                    "Error file path
    *For the files with no data in them, move them to desired(error) folder.
          if lt_bdcmsgcoll[] is initial.
            CALL METHOD cl_gui_frontend_services=>file_copy
              EXPORTING
                SOURCE               = file_name_source
                destination          = file_name_error_dest.
            endif.
          LOOP AT lt_bdcmsgcoll INTO lw_bdcmsgcoll.
            IF lw_bdcmsgcoll-msgtyp EQ 'S' AND
                lw_bdcmsgcoll-msgnr EQ '110'.
    *----------Move the succes files to designated folder---------------*.
              CALL METHOD cl_gui_frontend_services=>file_copy
                EXPORTING
                  SOURCE               = file_name_source
                  DESTINATION          = file_name_success_dest
                  overwrite            = 'X'
                EXCEPTIONS
                  cntl_error           = 1
                  error_no_gui         = 2
                  wrong_parameter      = 3
                  disk_full            = 4
                  access_denied        = 5
                  file_not_found       = 6
                  destination_exists   = 7
                  unknown_error        = 8
                  path_not_found       = 9
                  disk_write_protect   = 10
                  drive_not_ready      = 11
                  not_supported_by_gui = 12
                  OTHERS               = 13.
              IF sy-subrc <> 0.
                MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                           WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
              ENDIF.
            ELSE.
    *--------Move the error files to designated folder-----------------*.
              IF  lw_bdcmsgcoll-msgtyp EQ 'E' OR
                  lt_bdcmsgcoll[] IS INITIAL.
                CALL METHOD cl_gui_frontend_services=>file_copy
                  EXPORTING
                    SOURCE               = file_name_source
                    DESTINATION          = file_name_error_dest
                    overwrite            = 'X'
                  EXCEPTIONS
                    cntl_error           = 1
                    error_no_gui         = 2
                    wrong_parameter      = 3
                    disk_full            = 4
                    access_denied        = 5
                    file_not_found       = 6
                    destination_exists   = 7
                    unknown_error        = 8
                    path_not_found       = 9
                    disk_write_protect   = 10
                    drive_not_ready      = 11
                    not_supported_by_gui = 12
                    OTHERS               = 13.
                IF sy-subrc <> 0.
                  MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                             WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
                ENDIF.
              ENDIF.
            ENDIF.
          ENDLOOP.
    *----------------Delete file from the directory---------------------------*
          CALL METHOD cl_gui_frontend_services=>file_delete
            EXPORTING
              filename             = file_name_source
            CHANGING
              rc                   = lv_rc
            EXCEPTIONS
              file_delete_failed   = 1
              cntl_error           = 2
              error_no_gui         = 3
              file_not_found       = 4
              access_denied        = 5
              unknown_error        = 6
              not_supported_by_gui = 7
              wrong_parameter      = 8
              OTHERS               = 9.
          IF sy-subrc <> 0.
            MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                       WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
          ENDIF.
        ENDIF.
        REFRESH lt_bdcmsgcoll.
        REFRESH lt_bdcdata.
      ENDLOOP.
    *&      Form  bdc_dynpro
    *       text
    *      -->PROGRAM    text
    *      -->DYNPRO     text
    FORM bdc_dynpro USING program  dynpro.                      "#EC *
      CLEAR lw_bdcdata.
      lw_bdcdata-program  = program.
      lw_bdcdata-dynpro   = dynpro.
      lw_bdcdata-dynbegin = 'X'.
      APPEND lw_bdcdata TO lt_bdcdata.
    ENDFORM.                    "BDC_DYNPRO
    *&      Form  bdc_field
    *       text
    *      -->FNAM       text
    *      -->FVAL       text
    FORM bdc_field USING fnam fval.                             "#EC *
      IF fval <> space.
        CLEAR lw_bdcdata.
        lw_bdcdata-fnam = fnam.
        lw_bdcdata-fval = fval.
        APPEND lw_bdcdata TO lt_bdcdata.
      ENDIF.
    ENDFORM.                    "bdc_field
    *&  Include           ZDECLERATIONS
    *-----------------------------Types decleration--------------------------*
    TYPES: BEGIN OF tw_afrud,
            aufnr        TYPE  aufnr,
            lmnga(13)    TYPE  c,
            budat        TYPE buchdatum,
            END OF tw_afrud,
            tt_afrud     TYPE STANDARD TABLE OF tw_afrud.
    TYPES: BEGIN OF tw_temp,
            rec(7000)    TYPE c,
            END OF tw_temp,
            tt_temp     TYPE STANDARD TABLE OF tw_temp.
    TYPES: BEGIN OF tw_errorlog,
            aufnr        TYPE aufnr,
            message      TYPE string,
           END OF tw_errorlog,
           tt_errorlog   TYPE STANDARD TABLE OF tw_errorlog.
    TYPES: BEGIN OF tw_file,
           pathname      TYPE sdok_filnm,
            END OF tw_file,
            tt_file      TYPE STANDARD TABLE OF tw_file.
    TYPES: BEGIN OF tw_dir,
           pathname1     TYPE sdok_filnm,
            END OF tw_dir,
            tt_dir       TYPE STANDARD TABLE OF tw_dir.
    TYPES: BEGIN OF tw_filename,
           filename      TYPE rlgrap-filename,
           pathname      TYPE localfile,
          END OF tw_filename,
          tt_filename    TYPE STANDARD TABLE OF tw_filename.
    *-------------Variable decleration---------------------------------------*
    DATA: pa_file                TYPE rlgrap-filename.
    DATA: lstring                TYPE string,
          lstring_success        TYPE string,
          lstring_error          TYPE string,
          file_name              TYPE dxfile-filename,
          lv_rc                  TYPE i,
          file_name_source       TYPE string,
          file_name_error_dest   TYPE string,
          file_name_success_dest TYPE string,
          lv_file_name           TYPE rlgrap-filename.
    *---------------Internal tables & Work area's ------------------------------*
    DATA : lw_afrud      TYPE  tw_afrud,
           lt_afrud      TYPE  tt_afrud,
           lw_temp       TYPE  tw_temp,
           lt_temp       TYPE  tt_temp,
           lw_file       TYPE  tw_file,
           lt_file       TYPE  tt_file,
           lw_dir        TYPE  tw_dir,       "#EC *
           lt_dir        TYPE  tt_dir,
           lw_filename   TYPE tw_filename,
           lt_filename   TYPE tt_filename,
           lw_bdcdata    TYPE bdcdata,
           lt_bdcdata    TYPE STANDARD TABLE OF bdcdata,
           lw_bdcmsgcoll TYPE bdcmsgcoll,
           lt_bdcmsgcoll TYPE STANDARD TABLE OF bdcmsgcoll.
    Regards

    The methods of the class
    cl_gui_frontend_services
    cannot be used in background since they refer to the presentation server. You have to upload the files to the application server to run the program in the background. You can use transaction CG3Z or the function module
    ARCHIVFILE_CLIENT_TO_SERVER
    to upload the files.
    Manoj

Maybe you are looking for