LSMW BDC program error

Hi,
I am using LSMW to assign materials to an inspection plan (QP02) for 9,000 records.  I am trying to use a standard BADI (Batch/Direct Input).
1) Standard Batch/Direct Input
Object: 0240 - Inspection plans (QM)
Method: 0000 - Batch Input.
Program: RCPTRA01
The program reads and converts without errors but when I select the "Create Batch Input Session" button, I get the below error.
BDC_INSERT, screen .&. is invalid
I have checked OSS notes and didn't find anything. 
Can someone help?
Thanks.
KarenS

a bdc-run on MM01 is never a good idea for various reasons:
- you can set screens in dependency of the user running it
- not every material is to maintained in all the views
therefore: use RMDATIND instead or MM17 or MASS or a BAPI.
if you really really really need to use bdc, try transaction MMZ1 instead of MM01.

Similar Messages

  • BDC programming error for FF67

    Hi guys,
    I am working on FF67 BDC programming. When I am uploading data from excel, allthe values are getting passed correctly, except in the second screen value-date field (here the date is dispalying as 02.12.2020, though I have given it as 02.12.2008)   And also it is displaying an error message as field FEBMKA-KWBTR(1) IS NOT AN INPUT FIELD. Am using ECC 6.0
    And in the output it is displaying like below
    statement/list is being updated atthe moment
    Field FEBMKA-VGMAN(1) is not an input field
    Field FEBEP-VALUT(1) is not an input field
    Field FEBMKA-KWBTR(1) is not an input field
    Warning: Values entered are ignored
    Statement/list saved.
    waiting for your reply guys.............
    Thank you in advance..
    Kiran

    Hi Avinash,
    Thanks for the reply. I didn't get you. How can I use 'write to' statement?
    I have written the code as follows
    CONCATENATE 'FEBMKA-VGMAN(' IDX ')' INTO FNAM.
          perform bdc_field       using FNAM
                                      itab-transaction.
          CALL FUNCTION 'CONVERSION_EXIT_PDATE_INPUT'
            EXPORTING
              INPUT  = itab-value_date
            IMPORTING
              OUTPUT = date.
          CONCATENATE 'FEBEP-VALUT(' IDX ')' INTO FNAM.
          perform bdc_field       using FNAM
                                         date.
          CONCATENATE 'FEBMKA-KWBTR(' IDX ')' INTO FNAM.
          perform bdc_field       using FNAM
                                         itab-amount.
          CONCATENATE 'FEBMKK-CHECT_KF(' IDX ')' INTO FNAM.
          perform bdc_field       using FNAM
                                         itab-bank_refchqno.
          So, where shall I use the '' write to'' statement.
          please suggest me.
    bye,
    Kiran

  • BDC program error

    Hi experts
    I have written this code and trying to upload some data from text file ....its giving me error "Cannot Interpret Data in File "
    CODE
    report ZAC_SHDB_SD1
           no standard page heading line-size 255.
    Tables : vbep, rv45a , vbap,vbak,vbkd,kuagv.
    data : ctab like bdcdata occurs 10 with header line.
    data : begin of itab occurs 0,
           auart like VBAK-AUART,
           vkorg like vbak-vkorg,
           vtweg like vbak-vtweg,
           spart like vbak-spart,
         bstkd like VBKD-BSTDK,
           kunnr like kuagv-kunnr,
           mabnr like RV45A-MABNR,
           posnr like VBAP-POSNR,
           bstdk like VBKD-BSTDK,
           zmeng like VBAP-ZMENG,
           end of itab.
    CALL FUNCTION 'UPLOAD'
    EXPORTING
      CODEPAGE                      = ' '
       FILENAME                      = 'text.txt'
       FILETYPE                      = 'dat'
    IMPORTING
      TABLES
        DATA_TAB                      = itab
    EXCEPTIONS
       CONVERSION_ERROR              = 1
       INVALID_TABLE_WIDTH           = 2
       INVALID_TYPE                  = 3
       NO_BATCH                      = 4
       UNKNOWN_ERROR                 = 5
       GUI_REFUSE_FILETRANSFER       = 6
       OTHERS                        = 7
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
             WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    include bdcrecx1.
    start-of-selection.
    perform open_group.
    loop at itab.
    perform bdc_dynpro      using 'SAPMV45A' '0101'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'VBAK-AUART'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'VBAK-AUART'
                                  'YDS'.
    perform bdc_field       using 'VBAK-VKORG'
                                  '7777'.
    perform bdc_field       using 'VBAK-VTWEG'
                                  '71'.
    perform bdc_field       using 'VBAK-SPART'
                                  '77'.
    perform bdc_dynpro      using 'SAPMSSY0' '0120'.
    perform bdc_field       using 'BDC_CURSOR'
                                  '02/65'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=PICK'.
    perform bdc_dynpro      using 'SAPMSSY0' '0120'.
    perform bdc_field       using 'BDC_CURSOR'
                                  '02/65'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=PZ 29'.
    perform bdc_dynpro      using 'SAPMSSY0' '0120'.
    perform bdc_field       using 'BDC_CURSOR'
                                  '02/65'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=PZ 51'.
    perform bdc_dynpro      using 'SAPMSSY0' '0120'.
    perform bdc_field       using 'BDC_CURSOR'
                                  '11/58'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=PICK'.
    perform bdc_dynpro      using 'SAPMV45A' '4001'.
    perform bdc_field       using 'BDC_OKCODE'
                                 '/00'.
    perform bdc_field       using 'VBKD-BSTDK'
                                 '09.08.2007'.
    perform bdc_field       using 'KUAGV-KUNNR'
                                  '1'.
    perform bdc_field       using 'KUWEV-KUNNR'
                                  '1'.
    perform bdc_field       using 'VBAK-GUEBG'
                                  '09.08.2007'.
    perform bdc_field       using 'VBAK-GUEEN'
                                  '15.08.2007'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'VBAP-ZMENG(01)'.
    *****change***************
    perform bdc_field       using 'RV45A-MABNR(01)'
                                  itab-mabnr.
    *****change***************
    perform bdc_field       using 'VBAP-ZMENG(01)'
                                  itab-zmeng.
    perform bdc_field       using 'VBAP-POSNR(01)'
                                  '    10'.
    perform bdc_dynpro      using 'SAPMSSY0' '0120'.
    perform bdc_field       using 'BDC_CURSOR'
                                  '02/64'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=PICK'.
    perform bdc_dynpro      using 'SAPMSSY0' '0120'.
    perform bdc_field       using 'BDC_CURSOR'
                                  '02/64'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=PZ 32'.
    perform bdc_dynpro      using 'SAPMSSY0' '0120'.
    perform bdc_field       using 'BDC_CURSOR'
                                  '02/64'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=PZ 44'.
    perform bdc_dynpro      using 'SAPMSSY0' '0120'.
    perform bdc_field       using 'BDC_CURSOR'
                                  '02/64'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=PZ 51'.
    perform bdc_dynpro      using 'SAPMSSY0' '0120'.
    perform bdc_field       using 'BDC_CURSOR'
                                  '02/64'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=PZ 59'.
    perform bdc_dynpro      using 'SAPMSSY0' '0120'.
    perform bdc_field       using 'BDC_CURSOR'
                                  '32/57'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=PICK'.
    perform bdc_dynpro      using 'SAPMV45A' '4001'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'VBKD-BSTDK'
                                  '09.08.2007'.
    perform bdc_field       using 'KUAGV-KUNNR'
                                  '1'.
    perform bdc_field       using 'KUWEV-KUNNR'
                                  '1'.
    perform bdc_field       using 'VBAK-GUEBG'
                                  '09.08.2007'.
    perform bdc_field       using 'VBAK-GUEEN'
                                  '15.08.2007'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'VBAP-ZMENG(02)'.
    *****change***************
    perform bdc_field       using 'RV45A-MABNR(02)'
                                  itab-mabnr.
    *****change***************
    perform bdc_field       using 'VBAP-ZMENG(02)'
                                  itab-zmeng.
    perform bdc_field       using 'VBAP-POSNR(02)'
                                  '    20'.
    perform bdc_dynpro      using 'SAPMSSY0' '0120'.
    perform bdc_field       using 'BDC_CURSOR'
                                  '02/62'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=PICK'.
    perform bdc_dynpro      using 'SAPMSSY0' '0120'.
    perform bdc_field       using 'BDC_CURSOR'
                                  '02/62'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=PZ 39'.
    perform bdc_dynpro      using 'SAPMSSY0' '0120'.
    perform bdc_field       using 'BDC_CURSOR'
                                  '02/62'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=PZ 48'.
    perform bdc_dynpro      using 'SAPMSSY0' '0120'.
    perform bdc_field       using 'BDC_CURSOR'
                                  '02/62'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=PZ 65'.
    perform bdc_dynpro      using 'SAPMSSY0' '0120'.
    perform bdc_field       using 'BDC_CURSOR'
                                  '30/58'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=PICK'.
    perform bdc_dynpro      using 'SAPMV45A' '4001'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'VBKD-BSTDK'
                                  '09.08.2007'.
    perform bdc_field       using 'KUAGV-KUNNR'
                                  '1'.
    perform bdc_field       using 'KUWEV-KUNNR'
                                  '1'.
    perform bdc_field       using 'VBAK-GUEBG'
                                  '09.08.2007'.
    perform bdc_field       using 'VBAK-GUEEN'
                                  '15.08.2007'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'VBAP-ZMENG(03)'.
    *****change***************
    perform bdc_field       using 'RV45A-MABNR(03)'
                                  itab-mabnr.
    *****change***************
    perform bdc_field       using 'VBAP-ZMENG(03)'
                                  itab-zmeng.
    perform bdc_field       using 'VBAP-POSNR(03)'
                                  '    30'.
    perform bdc_dynpro      using 'SAPMV45A' '4001'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=ITEM'.
    perform bdc_field       using 'VBKD-BSTDK'
                                  '09.08.2007'.
    perform bdc_field       using 'KUAGV-KUNNR'
                                  '1'.
    perform bdc_field       using 'KUWEV-KUNNR'
                                  '1'.
    perform bdc_field       using 'VBAK-GUEBG'
                                  '09.08.2007'.
    perform bdc_field       using 'VBAK-GUEEN'
                                  '15.08.2007'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RV45A-MABNR(01)'.
    perform bdc_dynpro      using 'SAPMV45A' '4003'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RV45A-KWMENG'.
    perform bdc_field       using 'RV45A-KWMENG'
                                  '                100'.
    perform bdc_field       using 'VBAP-VRKME'
                                  'NOS'.
    perform bdc_field       using 'VBAP-ZMENG'
                                  '             111,00'.
    perform bdc_field       using 'VBAP-ZIEME'
                                  'NOS'.
    perform bdc_field       using 'VBAP-UMZIN'
                                  '     1'.
    perform bdc_field       using 'VBAP-UMZIZ'
                                  '     1'.
    perform bdc_field       using 'RV45A-ETDAT'
                                  '09.08.2007'.
    perform bdc_field       using 'RV45A-PRGBZ'
                                  'D'.
    perform bdc_field       using 'VBKD-PRSDT'
                                  '09.08.2007'.
    perform bdc_dynpro      using 'SAPMV45A' '4003'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=T\07'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RV45A-KWMENG'.
    perform bdc_field       using 'RV45A-KWMENG'
                                  '             100,00'.
    perform bdc_field       using 'VBAP-VRKME'
                                  'NOS'.
    perform bdc_field       using 'VBAP-ZMENG'
                                  '             111,00'.
    perform bdc_field       using 'VBAP-ZIEME'
                                  'NOS'.
    perform bdc_field       using 'RV45A-ETDAT'
                                  '09.08.2007'.
    perform bdc_field       using 'RV45A-PRGBZ'
                                  'D'.
    perform bdc_field       using 'VBKD-PRSDT'
                                  '09.08.2007'.
    perform bdc_dynpro      using 'SAPMV45A' '4003'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/EBACK'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RV45A-ETDAT(01)'.
    perform bdc_field       using 'VBAP-VRKME'
                                  'NOS'.
    perform bdc_dynpro      using 'SAPMV45A' '4001'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=ITEM'.
    perform bdc_field       using 'VBKD-BSTDK'
                                  '09.08.2007'.
    perform bdc_field       using 'KUAGV-KUNNR'
                                  '1'.
    perform bdc_field       using 'KUWEV-KUNNR'
                                  '1'.
    perform bdc_field       using 'VBAK-GUEBG'
                                  '09.08.2007'.
    perform bdc_field       using 'VBAK-GUEEN'
                                  '15.08.2007'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RV45A-MABNR(02)'.
    perform bdc_dynpro      using 'SAPMV45A' '4003'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=T\01'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RV45A-ETDAT(01)'.
    perform bdc_field       using 'VBAP-VRKME'
                                  'NOS'.
    perform bdc_dynpro      using 'SAPMV45A' '4003'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RV45A-KWMENG'.
    perform bdc_field       using 'RV45A-KWMENG'
                                  '                200'.
    perform bdc_field       using 'VBAP-VRKME'
                                  'NOS'.
    perform bdc_field       using 'VBAP-ZMENG'
                                  '             222,00'.
    perform bdc_field       using 'VBAP-ZIEME'
                                  'NOS'.
    perform bdc_field       using 'VBAP-UMZIN'
                                  '     1'.
    perform bdc_field       using 'VBAP-UMZIZ'
                                  '     1'.
    perform bdc_field       using 'RV45A-ETDAT'
                                  '09.08.2007'.
    perform bdc_field       using 'RV45A-PRGBZ'
                                  'D'.
    perform bdc_field       using 'VBKD-PRSDT'
                                  '09.08.2007'.
    perform bdc_dynpro      using 'SAPMV45A' '4003'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/EBACK'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RV45A-KWMENG'.
    perform bdc_field       using 'RV45A-KWMENG'
                                  '             200,00'.
    perform bdc_field       using 'VBAP-VRKME'
                                  'NOS'.
    perform bdc_field       using 'VBAP-ZMENG'
                                  '             222,00'.
    perform bdc_field       using 'VBAP-ZIEME'
                                  'NOS'.
    perform bdc_field       using 'RV45A-ETDAT'
                                  '09.08.2007'.
    perform bdc_field       using 'RV45A-PRGBZ'
                                  'D'.
    perform bdc_field       using 'VBKD-PRSDT'
                                  '09.08.2007'.
    perform bdc_dynpro      using 'SAPMV45A' '4001'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=ITEM'.
    perform bdc_field       using 'VBKD-BSTDK'
                                  '09.08.2007'.
    perform bdc_field       using 'KUAGV-KUNNR'
                                  '1'.
    perform bdc_field       using 'KUWEV-KUNNR'
                                  '1'.
    perform bdc_field       using 'VBAK-GUEBG'
                                  '09.08.2007'.
    perform bdc_field       using 'VBAK-GUEEN'
                                  '15.08.2007'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RV45A-MABNR(03)'.
    perform bdc_dynpro      using 'SAPMV45A' '4003'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RV45A-KWMENG'.
    perform bdc_field       using 'RV45A-KWMENG'
                                  '                300'.
    perform bdc_field       using 'VBAP-VRKME'
                                  'EA'.
    perform bdc_field       using 'VBAP-ZMENG'
                                  '                333'.
    perform bdc_field       using 'VBAP-ZIEME'
                                  'EA'.
    perform bdc_field       using 'VBAP-UMZIN'
                                  '     1'.
    perform bdc_field       using 'VBAP-UMZIZ'
                                  '     1'.
    perform bdc_field       using 'RV45A-ETDAT'
                                  '09.08.2007'.
    perform bdc_field       using 'RV45A-PRGBZ'
                                  'D'.
    perform bdc_field       using 'VBKD-PRSDT'
                                  '09.08.2007'.
    perform bdc_dynpro      using 'SAPMV45A' '4003'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/EBACK'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RV45A-KWMENG'.
    perform bdc_field       using 'RV45A-KWMENG'
                                  '                300'.
    perform bdc_field       using 'VBAP-VRKME'
                                  'EA'.
    perform bdc_field       using 'VBAP-ZMENG'
                                  '                333'.
    perform bdc_field       using 'VBAP-ZIEME'
                                  'EA'.
    perform bdc_field       using 'RV45A-ETDAT'
                                  '09.08.2007'.
    perform bdc_field       using 'RV45A-PRGBZ'
                                  'D'.
    perform bdc_field       using 'VBKD-PRSDT'
                                  '09.08.2007'.
    perform bdc_dynpro      using 'SAPMV45A' '4001'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=ITEM'.
    perform bdc_field       using 'VBKD-BSTDK'
                                  '09.08.2007'.
    perform bdc_field       using 'KUAGV-KUNNR'
                                  '1'.
    perform bdc_field       using 'KUWEV-KUNNR'
                                  '1'.
    perform bdc_field       using 'VBAK-GUEBG'
                                  '09.08.2007'.
    perform bdc_field       using 'VBAK-GUEEN'
                                  '15.08.2007'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RV45A-MABNR(01)'.
    perform bdc_dynpro      using 'SAPMV45A' '4003'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/EBACK'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RV45A-KWMENG'.
    perform bdc_field       using 'RV45A-KWMENG'
                                  '             100,00'.
    perform bdc_field       using 'VBAP-VRKME'
                                  'NOS'.
    perform bdc_field       using 'VBAP-ZMENG'
                                  '             111,00'.
    perform bdc_field       using 'VBAP-ZIEME'
                                  'NOS'.
    perform bdc_field       using 'RV45A-ETDAT'
                                  '09.08.2007'.
    perform bdc_field       using 'RV45A-PRGBZ'
                                  'D'.
    perform bdc_field       using 'VBKD-PRSDT'
                                  '09.08.2007'.
    perform bdc_dynpro      using 'SAPMV45A' '4001'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=ITEM'.
    perform bdc_field       using 'VBKD-BSTDK'
                                  '09.08.2007'.
    perform bdc_field       using 'KUAGV-KUNNR'
                                  '1'.
    perform bdc_field       using 'KUWEV-KUNNR'
                                  '1'.
    perform bdc_field       using 'VBAK-GUEBG'
                                  '09.08.2007'.
    perform bdc_field       using 'VBAK-GUEEN'
                                  '15.08.2007'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RV45A-MABNR(02)'.
    perform bdc_dynpro      using 'SAPMV45A' '4003'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/EBACK'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RV45A-KWMENG'.
    perform bdc_field       using 'RV45A-KWMENG'
                                  '             200,00'.
    perform bdc_field       using 'VBAP-VRKME'
                                  'NOS'.
    perform bdc_field       using 'VBAP-ZMENG'
                                  '             222,00'.
    perform bdc_field       using 'VBAP-ZIEME'
                                  'NOS'.
    perform bdc_field       using 'RV45A-ETDAT'
                                  '09.08.2007'.
    perform bdc_field       using 'RV45A-PRGBZ'
                                  'D'.
    perform bdc_field       using 'VBKD-PRSDT'
                                  '09.08.2007'.
    perform bdc_dynpro      using 'SAPMV45A' '4001'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=ITEM'.
    perform bdc_field       using 'VBKD-BSTDK'
                                  '09.08.2007'.
    perform bdc_field       using 'KUAGV-KUNNR'
                                  '1'.
    perform bdc_field       using 'KUWEV-KUNNR'
                                  '1'.
    perform bdc_field       using 'VBAK-GUEBG'
                                  '09.08.2007'.
    perform bdc_field       using 'VBAK-GUEEN'
                                  '15.08.2007'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RV45A-MABNR(03)'.
    perform bdc_dynpro      using 'SAPMV45A' '4003'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/EBACK'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RV45A-KWMENG'.
    perform bdc_field       using 'RV45A-KWMENG'
                                  '                300'.
    perform bdc_field       using 'VBAP-VRKME'
                                  'EA'.
    perform bdc_field       using 'VBAP-ZMENG'
                                  '                333'.
    perform bdc_field       using 'VBAP-ZIEME'
                                  'EA'.
    perform bdc_field       using 'RV45A-ETDAT'
                                  '09.08.2007'.
    perform bdc_field       using 'RV45A-PRGBZ'
                                  'D'.
    perform bdc_field       using 'VBKD-PRSDT'
                                  '09.08.2007'.
    perform bdc_dynpro      using 'SAPMV45A' '4001'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/EBAC1'.
    perform bdc_transaction using 'VA31'.
    endloop.
    perform close_group.
    MY TEXT FILE IS :
    14-08-2007     77290M60E12-26U     8            
    14-08-2007     77290M60E12-68M     10      
    14-08-2007     77290M60E12-76G     11      
    14-08-2007     77290M60E12-Z2S     12
    Helpful answer will be rewarded
    Thanks

    Hi
    give complete path of file name
    FILENAME = 'text.txt'
    or use this one
    data: begin of itab_string occurs 0,
    record type char255,
    end of itab_string.
    data: L_FILETABLE TYPE FILETABLE,
    L_FILETAB_H TYPE FILETABLE WITH HEADER LINE.
    data: p_file1 type string.
    selection screen .
    PARAMETERS: P_FILE TYPE LOCALFILE.
    at selection-screen on value-request for P_FILE.
    IF THE USER SELECT EXTENTION BUTTON IT WILL OPEN THE LOCAL DIRECTORY FOR SELECTING THE FILE LOCATION.
    CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG
    EXPORTING
    WINDOW_TITLE =
    DEFAULT_EXTENSION = 'CSV'
    DEFAULT_FILENAME = 'C:\Documents and Settings\kiran\Desktop\STATUS.csv'
    FILE_FILTER =
    INITIAL_DIRECTORY = 'C:\Documents and Settings\kiran\Desktop\'
    MULTISELECTION =
    WITH_ENCODING =
    CHANGING
    FILE_TABLE = L_FILETABLE
    RC = RC
    USER_ACTION =
    FILE_ENCODING =
    EXCEPTIONS
    FILE_OPEN_DIALOG_FAILED = 1
    CNTL_ERROR = 2
    ERROR_NO_GUI = 3
    NOT_SUPPORTED_BY_GUI = 4
    others = 5
    IF SY-SUBRC <> 0.
    ELSE.
    LOOP AT l_filetable INTO L_FILETAB_H.
    P_FILE = L_FILETAB_H-FILENAME.
    move p_file to p_file1.
    EXIT.
    ENDLOOP.
    ENDIF.
    passing the selected file name to gui_upload for loading the data
    into internal table
    CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
    FILENAME = p_file1
    FILETYPE = 'ASC'
    HAS_FIELD_SEPARATOR = ' '
    HEADER_LENGTH = 0
    READ_BY_LINE = 'X'
    DAT_MODE = ' '
    CODEPAGE = ' '
    IGNORE_CERR = ABAP_TRUE
    REPLACEMENT = '#'
    CHECK_BOM = ' '
    NO_AUTH_CHECK = ' '
    IMPORTING
    FILELENGTH =
    HEADER =
    TABLES
    DATA_TAB = itab_string
    EXCEPTIONS
    FILE_OPEN_ERROR = 1
    FILE_READ_ERROR = 2
    NO_BATCH = 3
    GUI_REFUSE_FILETRANSFER = 4
    INVALID_TYPE = 5
    NO_AUTHORITY = 6
    UNKNOWN_ERROR = 7
    BAD_DATA_FORMAT = 8
    HEADER_NOT_ALLOWED = 9
    SEPARATOR_NOT_ALLOWED = 10
    HEADER_TOO_LONG = 11
    UNKNOWN_DP_ERROR = 12
    ACCESS_DENIED = 13
    DP_OUT_OF_MEMORY = 14
    DISK_FULL = 15
    DP_TIMEOUT = 16
    OTHERS = 17
    IF SY-SUBRC <> 0.
    MESSAGE I000(Z00) WITH 'PLEASE PROVIDE CORRECT FILE NAME'.
    ENDIF.
    Reward points for all helpful answers,
    kiran.M

  • XK99 lsmw or BDC program to copy vendors doesn´t update db records

    Hello people
    I am facing a requirement to copy a list of existing vendors into about 10 new company codes. Vendors all exist in the "main" company code, so I figured it would be a good idea to use the XK99 transaction as a basis for a mass upload via lsmw or bdc program.
    So
    So I performed a recording and applied my logic in lsmw, ran the batch input folder in SM35, seemingly without errors. But to my srprise I saw that no database records had been created in the LFB1 table.
    So I tried to incorporate the recording into a bdc program that uses call transaction, but the same thing happens. The batch input seems to be running OK, but no changes are actually made to db....
    So I was wondering what could I be doing wrong? I notice one strange thing though. After carrying out the selections in XK99 manually, one needs to mark columns to be transfered and then push the ´Perform mass update´ button and THEN click save. However, when in recording mode, one may click save directly, and no error is given and the recording ends.
    However, the select columns operation, if I try to do it during recording, doesnt seem to get captured....
    Any ideas of what I might be doing wrong here?
    Regards, Jorgen
    T    XK99                                 
    SAPMMSDL    0200    X                                                                                                                                                                                                                                                                               
                                                              BDC_OKCODE    =NEXT
                                                             BDC_SUBSCR    SAPMMSDL                                1000SUBTAB
                                                             BDC_CURSOR    MASSTABS-TABTXT(02)
                                                              MASSTABS-MARK(02)    X
    SAPLMASS_SEL_DIALOG    0100    X                                                                                                                                                                                                                                                                               
                                                              BDC_OKCODE    =NEW
                                                             BDC_SUBSCR    SAPLMASS_SEL_DIALOG                     0200SUB_ALL
                                                             BDC_SUBSCR    SAPLMASSFREESELECTIONS                  1000SUB_SEL
                                                              BDC_CURSOR    MASSFREESEL-LOW(01)
                                                             MASSFREESEL-LOW(01)    300011
    SAPLMASS_SEL_DIALOG    0100    X                                                                                                                                                                                                                                                                               
                                                              BDC_OKCODE    /00
                                                             BDC_SUBSCR    SAPLMASS_SEL_DIALOG                     0400SUB_ALL
                                                             BDC_SUBSCR    SAPLMASSFREESELECTIONS                  1000SUB_SEL
                                                              MASSFREESEL-LOW(01)    300011
                                                             MASSFREESEL-LOW(02)    7010
                                                             BDC_SUBSCR    SAPLMASSFREESELECTIONS                  2000SUB_PARA
                                                              BDC_CURSOR    MASSFREESEL_P-LOW(02)
                                                             MASSFREESEL_P-LOW(01)    300011
                                                             MASSFREESEL_P-LOW(02)    7000
    SAPLMASS_SEL_DIALOG    0100    X                                                                                                                                                                                                                                                                               
                                                              BDC_OKCODE    =CRET
                                                             BDC_SUBSCR    SAPLMASS_SEL_DIALOG                     0400SUB_ALL
                                                             BDC_SUBSCR    SAPLMASSFREESELECTIONS                  1000SUB_SEL
                                                              BDC_CURSOR    MASSFREESEL-LOW(01)
                                                             BDC_SUBSCR    SAPLMASSFREESELECTIONS                  2000SUB_PARA
    SAPLMASSINTERFACE    0200    X                                                                                                                                                                                                                                                                               
                                                              BDC_OKCODE    =SAVE
                                                             BDC_SUBSCR    SAPLMASSINTERFACE                       0202FIELDS
                                                             BDC_SUBSCR    SAPLMASSINTERFACE                       0210SUB_HEAD
                                                              BDC_CURSOR    HEADER_STRUC-FIELD2-VALUE-LEFT(01)
                                                             BDC_SUBSCR    SAPLMASSINTERFACE                       0212SUB_DATA

    Hello,
    first of all Transaction XK99 is more helpful in case of vendor change, not really creation.
    It was also intended to cover mass maintenance so it is used instead of LSMW or any other BDC custom program.
    I would say that you can go either with LSMW or CALL TRANSACTION custom program, but you should base your recording on XK/FK01 transactions.
    Regards,
    Grzegorz

  • Error while runing bdc program

    hi,
           i written one bdc program there are no syntax errors and in flat file also no error records but when uploading data it showing pop up that do you want to save data with 2 push buttons yes or no. i suppose to be it is front end problem how to avoid that.
                                                                                  p.surendar reddy

    Hi,
    You have miss a step while recording.. What i mean is you have created
    bdc for changing some document. you recorded the fields to be changed
    but didn't save before terminating recording.
    re-create your recording... and before and click save icon as the last step#
    in your recording..
    Hope this solves your problem..
    Enjoy SAP,
    Pankaj Singh.

  • Error in BDC program for Block vendor in SAP R/3

    Hello friends,
    I wrote a BDC program to block vendor using FK02.
    When I debug the program in <b>No screen</b> mode
    the program gives a error 'No batch input data for screen SAPMSSY3 0131.
    But the screen name and screen number is not available in the program.
    When I execute without debugging  in No screen mode, the program works correctly.
    When I run in ALL screen mode, the program works correctly and the program does not prompt for SAPMSSY3 0131 screen.
    Is there any solution for this problem.

    check this
    ... MODE mode
    Effect
    The processing mode can take the following values:
    'A' Display screen
    'E' Display only if an error occurs
    'N' Do not display
    <b>'P' Do not display; debugging possible</b>
    If the MODE addition is omitted, then the processing mode is 'A'.
    If a screen is displayed in processing mode 'E' because the system reached the end of the BDC data, the system automatically switches to processing mode 'A'.
    If breakpoints are set in a transaction tcod called using the CALL TRANSACTION tcod USING itab variant, these are not actually reached in 'N' mode. The system tries to insert data in the Debugger screen; the call ends with SY-SUBRC = 1001 and the message "Batch input data is not available for screen SAPMSSY3 0131" (S 00 344).
    Conversely, in 'P' mode, transaction screens are processed in the background (as in 'N' mode) and debugging is possible.
    Regards
    Prabhu

  • Error in bdc programing code-pls help

    hi friends,
                I was tring to do a bdc program.But it shows me an error. MY bdc program is jus to upload a 2 fields in vendoe master table.
    That is LIFNR,NAME1 field for the new vendors.
    I worked out an execl sheet for this, and jus copied it to the text file by selecting all and  pasting.
    Even then i get an error code that BDC_open does not exits.
    MY code is this, please help me if iam wrong.
    If anyone can help to make it more understandable,I Kindly  request you to try out this program with the screen shot and mail to this id [email protected] would be very thankful for your timely help.
    report Z_PK_BDC
           no standard page heading line-size 255.
    include bdcrecx1.
    parameters: dataset(132) lower case.
    parameters: p_file like rlgrap-filename default
                    'C:\SAP TESTING\p_file.txt'.
       DO NOT CHANGE - the generated data section - DO NOT CHANGE    ***
      If it is nessesary to change the data section use the rules:
      1.) Each definition of a field exists of two lines
      2.) The first line shows exactly the comment
          '* data element: ' followed with the data element
          which describes the field.
          If you don't have a data element use the
          comment without a data element name
      3.) The second line shows the fieldname of the
          structure, the fieldname must consist of
          a fieldname and optional the character '_' and
          three numbers and the field length in brackets
      4.) Each field must be type C.
    Generated data section with specific formatting - DO NOT CHANGE  ***
    data: begin of record OCCURS 0,
    data element: LIF16
            LIFNR_001(016),
    data element: BUKRS
            BUKRS_002(004),
    data element: KTOKK
            KTOKK_003(004),
    data element: ANRED
            ANRED_004(015),
    data element: NAME1_GP
            NAME1_005(035),
    data element: SORTL
            SORTL_006(010),
    data element: NAME2_GP
            NAME2_007(035),
    data element: STRAS_GP
            STRAS_008(035),
    data element: ORT01_GP
            ORT01_009(035),
    data element: ORT02_GP
            ORT02_010(035),
    data element: PFORT_GP
            PFORT_011(035),
    data element: LAND1_GP
            LAND1_012(003),
    data element: SPRAS
            SPRAS_013(002),
          end of record.
    End generated data section ***
    start-of-selection.
      CALL FUNCTION 'WS_UPLOAD'
           EXPORTING
                FILENAME                = P_FILE
                FILETYPE                = 'DAT'
           TABLES
                DATA_TAB                = record
           EXCEPTIONS
                CONVERSION_ERROR        = 1
                FILE_OPEN_ERROR         = 2
                FILE_READ_ERROR         = 3
                INVALID_TYPE            = 4
                NO_BATCH                = 5
                UNKNOWN_ERROR           = 6
                INVALID_TABLE_WIDTH     = 7
                GUI_REFUSE_FILETRANSFER = 8
                CUSTOMER_ERROR          = 9
                OTHERS                  = 10.
      IF SY-SUBRC <> 0.
        WRITE:/ 'SY-SUBRC:', SY-SUBRC.
      ENDIF.
    LOOP AT RECORD.
    *perform open_dataset using dataset.
    *perform open_group.
    *do.
    *read dataset dataset into record.
    *if sy-subrc <> 0. exit. endif.
    perform bdc_dynpro      using 'SAPMF02K' '0105'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RF02K-KTOKK'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'RF02K-LIFNR'
                                  record-LIFNR_001.
    perform bdc_field       using 'RF02K-BUKRS'
                                  record-BUKRS_002.
    perform bdc_field       using 'RF02K-KTOKK'
                                  record-KTOKK_003.
    perform bdc_dynpro      using 'SAPMF02K' '0110'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'LFA1-SPRAS'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=UPDA'.
    perform bdc_field       using 'LFA1-ANRED'
                                  record-ANRED_004.
    perform bdc_field       using 'LFA1-NAME1'
                                  record-NAME1_005.
    perform bdc_field       using 'LFA1-SORTL'
                                  record-SORTL_006.
    perform bdc_field       using 'LFA1-NAME2'
                                  record-NAME2_007.
    perform bdc_field       using 'LFA1-STRAS'
                                  record-STRAS_008.
    perform bdc_field       using 'LFA1-ORT01'
                                  record-ORT01_009.
    perform bdc_field       using 'LFA1-ORT02'
                                  record-ORT02_010.
    perform bdc_field       using 'LFA1-PFORT'
                                  record-PFORT_011.
    perform bdc_field       using 'LFA1-LAND1'
                                  record-LAND1_012.
    perform bdc_field       using 'LFA1-SPRAS'
                                  record-SPRAS_013.
    perform bdc_transaction using 'FK01'.
    **enddo.
    **perform close_group.
    endloop.
    **perform close_dataset using dataset.
    Thanks in Advance
    Rinky123

    Hi,
    If you are using GUI_UPLOAD in 4.7 then the file path whatever you are using currently it won't work. Replace the file path like this.
    P_FILE LIKE RLGRAP-FILENAME.
    DATA: V_FILE TYPE STRING.
    V_FILE = P_FILE.
    Now take this v_file for function module.Then only it will open the file otherwise you won't get unable to open file error message.
    I observerd that you are getting so many fields from the file to the internal table.

  • Budget Document Entry Upload via LSMW or BDC Program not working!

    Hi All,
    I tried creating a LSMW and a BDC program for upload of budgets by recording Tcode FMBB.  Unfortunately, I didn't succeed because some fields in Tcode FMBB are not input ready.  I therefore seek an alternative solution to upload the budgets.  I have the following questions:-
    1.  Is there a standard program that can be used to upload the budgets?  If so, please give a the name or   Tcode for the program.
    2. I have checked in this site and confirmed I can use BAPI BAPI_0050_CREATE to upload the budgets.  Unfortunately, I have never used BAPIs before. How do I the BAPI to upload my data in Excel? Do I call the BAPI as a function in a program? How do I format the data in Excel for Upload.  Kindly provide a step by step procedure on how this can be done and also explain how the data is formatted in Excel.
    Thank you.
    Robeth

    Hi Alok,
    May be ur recording a table control in the transaction FB01 for accounting line items..
    When recording line items.. u need to record the page "page down" button...
    If it is so..
    You can control the line item table control , by recording the line item in the second row, then recording the 'page down' button..
    This will move your line item to first row and the next line item will be recorded in the second row....and it continues on...
    But i am unaware that BDC is tuff for enjoy transactions... If it is so, please go for the bapi specified by Kishan..
    Awrd and close the thread if answered...
    Thanks
    Rajiv

  • Error in BDC program which is creating Work Order IW31

    Hi All,
              I am getting an error - 532 - " Specify only one start time/date "   when running bdc program for txn IW31 in back ground. I run the same program in the foreground.. there is no error.. but when I run in background.. I am experiencing the above error.
    Thank for Ur time.
    Cheers
    Senthil

    Hi,
    Are you facing this issue during Normal order creation with that functional location ?
    Please check CC assignment to functional location  and settlement rule applied while saving order.
    Thanks
    Riyaj

  • BDC PROGRAM FOR F-02 ERROR

    Hi ,
    i have written a bdc program for f-02 .here we have 2 posting keys 31 and 40 .when i recored in shdb i can see when i use 31 posting key then i get 302 screen and when i use 40 posting key then i get 300 screen.But the problem is in 302 screen we have new posting keys and new account numbers .how to update these . here is my code . my file is not getting updated when i get screen 302 .Any advice?
    REPORT zfip0009 NO STANDARD PAGE HEADING.
    TABLES ska1.
    DATA: BEGIN OF bdcdata OCCURS 0.
            INCLUDE STRUCTURE bdcdata.
    DATA: END OF bdcdata.
    DATA w_date(10) TYPE c.
    DATA w_first  TYPE c.
    DATA w_second TYPE c.
    data from flat file
    DATA: BEGIN OF t_data OCCURS 0,
           bukrs LIKE bkpf-bukrs,    "company code
           newbs LIKE rf05a-newbs,   "Posting Key
           newko LIKE rf05a-newko,   "New account number(SAP)
           wrbtr(13) TYPE c,         "amount
           dmbtr(13) TYPE c,         "sterling local amount  "+MW1
           mwskz LIKE bseg-mwskz,    "Tax code
           sgtxt LIKE bseg-sgtxt,    "item description
           kostl LIKE cobl-kostl,    "Cost centre
           ps_posid LIKE cobl-ps_posid, "WBS number
           aufnr LIKE cobl-aufnr,     "Internal order
          END OF t_data.
            SELECTION SCREEN
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    PARAMETERS: p_file LIKE rlgrap-filename
                DEFAULT 'C:\temp\XSL.txt'.
    SELECTION-SCREEN SKIP.
    PARAMETERS: p_sess(12) DEFAULT 'GLPOSTING'.
    SELECTION-SCREEN END OF BLOCK b1.
    SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
    PARAMETERS: p_bldat LIKE bkpf-bldat,
                p_budat LIKE bkpf-budat,
                p_blart LIKE bkpf-blart,
                p_monat LIKE bkpf-monat,
               p_bukrs LIKE bkpf-bukrs,
                p_bktxt LIKE bkpf-bktxt,
                p_xblnr LIKE bkpf-xblnr,
                p_waers LIKE bkpf-waers.
    SELECTION-SCREEN END OF BLOCK b2.
    *SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-003.
    *PARAMETERS p_ktopl LIKE ska1-ktopl.
    *SELECTION-SCREEN END OF BLOCK b3.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
      CALL FUNCTION 'WS_FILENAME_GET'
          EXPORTING
               def_filename     =  p_file
              DEF_PATH         = ' '
               mask             = ',.,..'
              MODE             = ' '
              TITLE            = ' '
          IMPORTING
               filename         = p_file
              RC               =
           EXCEPTIONS
                inv_winsys       = 1
                no_batch         = 2
                selection_cancel = 3
                selection_error  = 4
                OTHERS           = 5.
          START OF SELECTION
    START-OF-SELECTION.
    Get all of the information held on the spreadsheets.
      CALL FUNCTION 'WS_UPLOAD'
        EXPORTING
          filename = p_file
          filetype = 'DAT'
        TABLES
          data_tab = t_data
        EXCEPTIONS
          OTHERS   = 1.
      IF sy-subrc <> 0.
        WRITE :/ 'Failed to Open Input file', p_file.
        EXIT.
      ENDIF.
      REFRESH bdcdata.
      CALL FUNCTION 'BDC_OPEN_GROUP'
        EXPORTING
          client = sy-mandt
          group  = p_sess
          user   = sy-uname
          keep   = 'X'.
      PERFORM load_bdcdata.
      CALL FUNCTION 'BDC_CLOSE_GROUP'.
      WRITE: /
    'Batch input session', p_sess, 'created: process session via SM35'.
    END-OF-SELECTION.
    *&      Form  LOAD_BDCDATA
          Load the BDCDATA fields depending
    FORM load_bdcdata.
      CLEAR: w_first, w_second.
      CLEAR bdcdata.
      LOOP AT t_data.
        IF sy-tabix = 1.
          PERFORM bdc_dynpro      USING 'SAPMF05A' '0100'.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        '/00'.
          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        'RF05A-NEWKO'.
          PERFORM format_date USING p_bldat.
          PERFORM bdc_field       USING 'BKPF-BLDAT'
                                        w_date.
          PERFORM bdc_field       USING 'BKPF-BLART'
                                        p_blart.
          PERFORM bdc_field       USING 'BKPF-BUKRS'
                                        t_data-bukrs.
          PERFORM format_date USING p_budat.
          PERFORM bdc_field       USING 'BKPF-BUDAT'
                                        w_date.
          PERFORM bdc_field       USING 'BKPF-WAERS'
                                        p_waers.
          PERFORM bdc_field       USING 'BKPF-MONAT'
          PERFORM bdc_field       USING 'BKPF-BKTXT'
                                        p_bktxt.
          PERFORM bdc_field       USING 'BKPF-XBLNR'
                                        p_xblnr.
          PERFORM bdc_field       USING 'RF05A-NEWBS'
                                        t_data-newbs.
          PERFORM bdc_field       USING 'RF05A-NEWKO'
                                        t_data-newko.
        ELSE.
          PERFORM bdc_dynpro      USING 'SAPMF05A' '0300'.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        '/00'.
          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        'RF05A-NEWKO'.
          PERFORM bdc_field       USING 'RF05A-NEWBS'
                                        t_data-newbs.
          PERFORM bdc_field       USING 'RF05A-NEWKO'
                                        t_data-newko.
          PERFORM bdc_field       USING 'RF05A-NEWBK'
                                        t_data-bukrs.
          PERFORM bdc_dynpro      USING 'SAPLKACB' '0002'.
          PERFORM bdc_field       USING 'BDC_OKCODE' 'ENTE'.
        ENDIF.
       IF t_data-newbs = '31' .
          w_second = '1'.
          PERFORM bdc_dynpro      USING 'SAPMF05A' '0302'.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                              '/00'.
          PERFORM bdc_field       USING 'BDC_CURSOR'
                                     'BSEG-SGTXT'.
          PERFORM bdc_field       USING 'BSEG-WRBTR'
                                      t_data-wrbtr.
          PERFORM bdc_field       USING 'BSEG-SGTXT'
                                     t_data-sgtxt.
        PERFORM bdc_field       USING 'RF05A-NEWBS'
                                       t_data-newbs.
        PERFORM bdc_field       USING 'RF05A-NEWKO'
                                       t_data-newko.
            IF NOT t_data-kostl IS INITIAL.
            PERFORM bdc_field       USING 'COBL-KOSTL'
                                          t_data-kostl.
          ELSEIF NOT t_data-ps_posid IS INITIAL.
            PERFORM bdc_field       USING 'COBL-PS_POSID'
                                          t_data-ps_posid.
          ELSEIF NOT t_data-aufnr IS INITIAL.
            PERFORM bdc_field       USING 'COBL-AUFNR'
                                          t_data-aufnr.
          ENDIF.
    *...start of Amendment MW1
          IF p_waers ne 'GBP'.
            PERFORM bdc_field       USING 'BSEG-DMBTR'
                                              t_data-dmbtr.
          ENDIF.
        ENDIF.
    *...end of Amendment MW1  ENDIF.
       IF t_data-newbs = '40'    .
          PERFORM bdc_dynpro      USING 'SAPMF05A' '0300'.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        '/00'.
          PERFORM bdc_field       USING 'BDC_CURSOR'
                                     'BSEG-SGTXT'.
          PERFORM bdc_field       USING 'BSEG-WRBTR'
                                      t_data-wrbtr.
          PERFORM bdc_field       USING 'BSEG-SGTXT'
                                     t_data-sgtxt.
           PERFORM bdc_dynpro      USING 'SAPLKACB' '0002'.
          PERFORM bdc_field       USING 'BDC_OKCODE' 'ENTE'.
             IF NOT t_data-kostl IS INITIAL.
            PERFORM bdc_field       USING 'COBL-KOSTL'
                                          t_data-kostl.
          ELSEIF NOT t_data-ps_posid IS INITIAL.
            PERFORM bdc_field       USING 'COBL-PS_POSID'
                                          t_data-ps_posid.
          ELSEIF NOT t_data-aufnr IS INITIAL.
            PERFORM bdc_field       USING 'COBL-AUFNR'
                                          t_data-aufnr.
          ENDIF.
          PERFORM bdc_field       USING 'BSEG-MWSKZ'
                                     t_data-mwskz.
    *...start of Amendment MW1
          IF p_waers ne 'GBP'.
            PERFORM bdc_field       USING 'BSEG-DMBTR'
                                              t_data-dmbtr.
          ENDIF.
    *...end of Amendment MW1
        ENDIF.
        AT FIRST.
    calculate the tax
          PERFORM bdc_field       USING 'BKPF-XMWST' 'X'.
        ENDAT.
      IF t_data-newbs = '40'     .
         PERFORM bdc_field       USING 'DKACB-FMORE'
                                       'X'.
         PERFORM bdc_dynpro      USING 'SAPLKACB' '0002'.
         PERFORM bdc_field       USING 'BDC_OKCODE'
                                       'ENTE'.
         IF NOT t_data-kostl IS INITIAL.
           PERFORM bdc_field       USING 'COBL-KOSTL'
                                         t_data-kostl.
         ELSEIF NOT t_data-ps_posid IS INITIAL.
           PERFORM bdc_field       USING 'COBL-PS_POSID'
                                         t_data-ps_posid.
         ELSEIF NOT t_data-aufnr IS INITIAL.
           PERFORM bdc_field       USING 'COBL-AUFNR'
                                         t_data-aufnr.
         ENDIF.
       ENDIF.
      ENDLOOP.
      IF w_second = '1'.
        PERFORM bdc_dynpro      USING 'SAPMF05A' '0302'.
      ELSE.
        PERFORM bdc_dynpro      USING 'SAPMF05A' '0300'.
      ENDIF.
      PERFORM bdc_field       USING 'BDC_OKCODE'
                                    'BU'.
      PERFORM bdc_field       USING 'BDC_CURSOR'
                                    'BSEG-WRBTR'.
      PERFORM bdc_dynpro      USING 'SAPLKACB' '0002'.
      PERFORM bdc_field       USING 'BDC_OKCODE'
                                    'ENTE'.
      CALL FUNCTION 'BDC_INSERT'
        EXPORTING
          tcode     = 'F-02'
        TABLES
          dynprotab = bdcdata.
      REFRESH bdcdata.
      CLEAR bdcdata.
    ENDFORM.                    " LOAD_BDCDATA
    Start of screen
    FORM bdc_dynpro USING program dynpro.
      CLEAR bdcdata.
      bdcdata-program  = program.
      bdcdata-dynpro   = dynpro.
      bdcdata-dynbegin = 'X'.
      APPEND bdcdata.
    ENDFORM.                    "BDC_DYNPRO
           insert field
    FORM bdc_field USING fnam fval.
      CLEAR bdcdata.
      bdcdata-fnam = fnam.
      bdcdata-fval = fval.
      APPEND bdcdata.
    ENDFORM.                    "BDC_FIELD
    *&      Form  format_date
          text
    FORM format_date  USING    p_date.
      CLEAR w_date.
      w_date(2) = p_date+6(2).
      w_date+2(1) = '.'.
      w_date3(2) = p_date4(2).
      w_date+5(1) = '.'.
      w_date+6(4) = p_date(4).
    ENDFORM.                    " format_date

    IF item-newbs = '09'
             OR item-newbs = '19'
             OR item-newbs = '29'
             OR item-newbs = '39'.
            IF item-newum = 'A' OR
             item-newum = 'V' OR
             item-newum = '1' OR
             item-newum = '2' OR
             item-newum = '3' OR
             item-newum = '5' OR
             item-newum = '6' OR
             item-newum = 'B' .
              PERFORM bdc_dynpro      USING 'SAPMF05A' '0304'.
              PERFORM bdc_field       USING 'BDC_CURSOR'
                                            'RF05A-NEWUM'.
              PERFORM bdc_field       USING 'BDC_OKCODE'
                                            '/00'.
              PERFORM bdc_field       USING 'BSEG-WRBTR'
                                            item-wrbtr.
              PERFORM bdc_field       USING 'BSEG-gsber'
                                            item-gsber.
              PERFORM bdc_field       USING 'BSEG-PRCTR'
                                            item-prctr.
              PERFORM bdc_field       USING 'BSEG-ZFBDT'
                                            item-zfbdt1.
              PERFORM bdc_field       USING 'BSEG-ZUONR'
                                            item-zuonr.
              PERFORM bdc_field       USING 'BSEG-SGTXT'
                                            item-sgtxt.
              IF idx1 = '002' .
                EXIT.
              ENDIF.
              idx = idx + 1.
              READ TABLE item INDEX idx .
              PERFORM bdc_field       USING 'RF05A-NEWBS'
                                            item-newbs.
              PERFORM bdc_field       USING 'RF05A-NEWKO'
                                            item-newko.
              PERFORM bdc_field       USING 'RF05A-NEWUM'
                                            item-newum.
              PERFORM bdc_field       USING 'RF05A-NEWBW'
                                            item-newbw.
              CONTINUE.
            ENDIF.
          ENDIF.
          IF item-newbs = '09'
             OR item-newbs = '19'
             OR item-newbs = '29'
             OR item-newbs = '39' .
            IF item-newum = 'H'
              OR item-newum = '4'
           OR item-newum = '6'
           OR item-newum = '7'
              OR item-newum = '8'
              OR item-newum = '9'
              OR item-newum = 'C'
              OR item-newum = 'D'
              OR item-newum = 'E'
              OR item-newum = 'I'
              OR item-newum = 'K'
              OR item-newum = 'L'
              OR item-newum = 'M'
              OR item-newum = 'O'
              OR item-newum = 'Q'
              OR item-newum = 'R'
              OR item-newum = 'T'
              OR item-newum = 'U'.
              PERFORM bdc_dynpro      USING 'SAPMF05A' '0303'.
              PERFORM bdc_field       USING 'BDC_CURSOR'
                                            'RF05A-NEWKO'.
              PERFORM bdc_field       USING 'BDC_OKCODE'
                                            '/00'.
              PERFORM bdc_field       USING 'BSEG-WRBTR'
                                            item-wrbtr.
              PERFORM bdc_field       USING 'BSEG-GSBER'
                                            item-gsber.
              PERFORM bdc_field       USING 'BSEG-ZFBDT'
                                            item-zfbdt1.
              PERFORM bdc_field       USING 'BSEG-ZUONR'
                                            item-zuonr.
              PERFORM bdc_field       USING 'BSEG-SGTXT'
                                            item-sgtxt.
              IF idx1 = '002' .
                EXIT.
              ENDIF.
              idx = idx + 1 .
              READ TABLE item INDEX idx .
              PERFORM bdc_field       USING 'RF05A-NEWBS'
                                            item-newbs.
              PERFORM bdc_field       USING 'RF05A-NEWKO'
                                            item-newko.
              PERFORM bdc_field       USING 'RF05A-NEWUM'
                                            item-newum.
              PERFORM bdc_field       USING 'RF05A-NEWBW'
                                            item-newbw.
              CONTINUE.
            ENDIF.
          ENDIF.
          IF item-newbs = '29' OR item-newbs = '39'.
            IF item-newum = '7'.
              PERFORM bdc_dynpro      USING 'SAPMF05A' '0303'.
              PERFORM bdc_field       USING 'BDC_CURSOR'
                                            'BSEG-ZFBDT'.
              PERFORM bdc_field       USING 'BDC_OKCODE'
                                            '=ZK'.
              PERFORM bdc_field       USING 'BSEG-WRBTR'
                                            item-wrbtr.
              PERFORM bdc_field       USING 'BSEG-GSBER'
                                            item-gsber.
              PERFORM bdc_field       USING 'BSEG-ZFBDT'
                                            item-zfbdt1.
              PERFORM bdc_field       USING 'BSEG-ZUONR'
                                            item-zuonr.
              PERFORM bdc_field       USING 'BSEG-SGTXT'
                                            item-sgtxt.
              PERFORM bdc_dynpro      USING 'SAPMF05A' '0332'.
              PERFORM bdc_field       USING 'BDC_CURSOR'
                                            'RF05A-NEWKO'.
              PERFORM bdc_field       USING 'BDC_OKCODE'
                                            '/00'.
              PERFORM bdc_field       USING 'BSEG-BEWAR'
                                            item-ttype.
              IF idx1 = '002' .
                EXIT.
              ENDIF.
              idx = idx + 1 .
              READ TABLE item INDEX idx .
              PERFORM bdc_field       USING 'RF05A-NEWBS'
                                            item-newbs.
              PERFORM bdc_field       USING 'RF05A-NEWKO'
                                            item-newko.
              PERFORM bdc_field       USING 'RF05A-NEWUM'
                                            item-newum.
              PERFORM bdc_field       USING 'RF05A-NEWBW'
                                            item-newbw.
              CONTINUE.
            ENDIF.
          ENDIF.
          IF item-newbs = '01' OR item-newbs = '11'
             OR item-newbs = '05' OR item-newbs = '15'.
            PERFORM bdc_dynpro      USING 'SAPMF05A' '0301'.
            PERFORM bdc_field       USING 'BDC_CURSOR'
                                          'RF05A-NEWKO'.
            PERFORM bdc_field       USING 'BDC_OKCODE'
                                           '/00'.
            PERFORM bdc_field       USING 'BSEG-WRBTR'
                                          item-wrbtr.
            PERFORM bdc_field       USING 'BSEG-GSBER'
                                           item-gsber.
            PERFORM bdc_field       USING 'BSEG-ZTERM'
                                           item-zterm.
            PERFORM bdc_field       USING 'BSEG-ZFBDT'
                                          item-zfbdt.
            PERFORM bdc_field       USING 'BSEG-ZUONR'
                                          item-zuonr.
            PERFORM bdc_field       USING 'BSEG-SGTXT'
                                          item-sgtxt.
            IF idx1 = '002' .
              EXIT.
            ENDIF.
            idx = idx + 1 .
            READ TABLE item INDEX idx .
            PERFORM bdc_field       USING 'RF05A-NEWBS'
                                          item-newbs.
            PERFORM bdc_field       USING 'RF05A-NEWKO'
                                          item-newko.
            PERFORM bdc_field       USING 'RF05A-NEWUM'
                                          item-newum.
            PERFORM bdc_field       USING 'RF05A-NEWBW'
                                          item-newbw.
            CONTINUE.
          ENDIF.
          IF item-newbs = '21' OR item-newbs = '31'
             OR item-newbs = '25' OR item-newbs = '35'.
            PERFORM bdc_dynpro      USING 'SAPMF05A' '0302'.
            PERFORM bdc_field       USING 'BDC_CURSOR'
                                          'RF05A-NEWKO'.
            PERFORM bdc_field       USING 'BDC_OKCODE'
                                          '/00'.
            PERFORM bdc_field       USING 'BSEG-WRBTR'
                                          item-wrbtr.
            PERFORM bdc_field       USING 'BSEG-SECCO'
                                          ''.   "'1000'.
            PERFORM bdc_field       USING 'BSEG-GSBER'
                                          item-gsber.
            PERFORM bdc_field       USING 'BSEG-ZTERM'
                                           item-zterm.
            PERFORM bdc_field       USING 'BSEG-ZFBDT'
                                          item-zfbdt.
            PERFORM bdc_field       USING 'BSEG-ZUONR'
                                          item-zuonr.
            PERFORM bdc_field       USING 'BSEG-SGTXT'
                                          item-sgtxt.
            IF idx1 = '002' .
              EXIT.
            ENDIF.
            idx = idx + 1.
            READ TABLE item INDEX idx.
            PERFORM bdc_field       USING 'RF05A-NEWBS'
                                          item-newbs.
            PERFORM bdc_field       USING 'RF05A-NEWKO'
                                          item-newko.
            PERFORM bdc_field       USING 'RF05A-NEWUM'
                                          item-newum.
            PERFORM bdc_field       USING 'RF05A-NEWBW'
                                          item-newbw.
            CONTINUE.
          ENDIF.
          IF item-newbs = '70' OR item-newbs = '75'.
            PERFORM bdc_dynpro      USING 'SAPMF05A' '0305'.
            PERFORM bdc_field       USING 'BDC_CURSOR'
                                          'BSEG-WRBTR'.
            PERFORM bdc_field       USING 'BDC_OKCODE'
                                          '/00'.
            PERFORM bdc_field       USING 'BSEG-WRBTR'
                                          item-wrbtr.
            PERFORM bdc_field       USING 'DKACB-FMORE'
                                                'X'.
            PERFORM bdc_dynpro      USING 'SAPLKACB' '0002'.
            PERFORM bdc_field       USING 'BDC_CURSOR'
                                          'COBL-PRCTR'.
            PERFORM bdc_field       USING 'BDC_OKCODE'
                                          '=ENTE'.
            PERFORM bdc_field       USING 'COBL-GSBER'
                                          item-gsber.
            PERFORM bdc_field       USING 'COBL-KOSTL'
                                          item-kostl.
            PERFORM bdc_field       USING 'COBL-PRCTR'
                                          item-prctr.
            PERFORM bdc_dynpro      USING 'SAPMF05A' '0305'.
            PERFORM bdc_field       USING 'BDC_CURSOR'
                                          'RF05A-NEWBW'.
            PERFORM bdc_field       USING 'BDC_OKCODE'
                                          '/00'.
            PERFORM bdc_field       USING 'BSEG-WRBTR'
                                          item-wrbtr.
    PERFORM bdc_field       USING 'BSEG-BZDAT'
                                   '01.04.2005'.
            IF idx1 = '002' .
              EXIT.
            ENDIF.
            idx = idx + 1 .
            READ TABLE item INDEX idx .
            PERFORM bdc_field       USING 'RF05A-NEWBS'
                                          item-newbs.
            PERFORM bdc_field       USING 'RF05A-NEWKO'
                                          item-newko.
            PERFORM bdc_field       USING 'RF05A-NEWUM'
                                           item-newum.
            PERFORM bdc_field       USING 'RF05A-NEWBW'
                                          item-newbw.
            CONTINUE.
          ENDIF.
        ENDLOOP.
        PERFORM bdc_field   USING  'BDC_OKCODE'     
                                    '=BU'.
        PERFORM bdc_transaction USING 'F-02'.
        DELETE item INDEX 1.
        DELETE item INDEX 1.
        ix = ix + 2 .
      ENDDO.
      PERFORM close_group.

  • Changes in BDC program to upload data from text/excel file

    Hi friends i have obtained the BDc program after recording :
    start-of-selection.
    perform open_group.
    perform bdc_dynpro      using 'SAPLCOIH' '0100'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'CAUFVD-GSBER'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'AUFPAR-PM_AUFART'
                                  'PM01'.
    perform bdc_field       using 'CAUFVD-IWERK'
                                  '460a'.
    perform bdc_field       using 'CAUFVD-GSBER'
                                  '2460'.
    perform bdc_field       using 'CAUFVD-EQUNR'
                                  '10000009'.
    perform bdc_dynpro      using 'SAPLCOIH' '3000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'CAUFVD-KTEXT'
                                  'abc'.
    perform bdc_field       using 'CAUFVD-INGPR'
                                  'GM'.
    perform bdc_field       using 'CAUFVD-VAPLZ'
                                  'RTN_VELR'.
    perform bdc_field       using 'CAUFVD-VAWRK'
                                  '460A'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'CAUFVD-GLTRP'.
    perform bdc_field       using 'CAUFVD-GSTRP'
                                  '1.8.2010'.
    perform bdc_field       using 'CAUFVD-GLTRP'
                                  '1.8.2010'.
    perform bdc_field       using 'CAUFVD-TPLNR'
                                  'RTNP-HIG'.
    perform bdc_field       using 'CAUFVD-EQUNR'
                                  '10000009'.
    perform bdc_field       using 'AFVGD-INDET'
                                  '1'.
    perform bdc_field       using 'AFVGD-WERKS'
                                  '460A'.
    perform bdc_field       using 'AFVGD-STEUS'
                                  'PMIN'.
    perform bdc_field       using 'AFVGD-ARBEH'
                                  'H'.
    perform bdc_field       using 'AFVGD-DAUNE'
                                  'H'.
    perform bdc_dynpro      using 'SAPLCOIH' '3000'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=BU'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'CAUFVD-KTEXT'.
    perform bdc_field       using 'CAUFVD-KTEXT'
                                  'abc'.
    perform bdc_field       using 'CAUFVD-INGPR'
                                  'GM'.
    perform bdc_field       using 'CAUFVD-VAPLZ'
                                  'RTN_VELR'.
    perform bdc_field       using 'CAUFVD-VAWRK'
                                  '460A'.
    perform bdc_field       using 'CAUFVD-GSTRP'
                                  '01.08.2010'.
    perform bdc_field       using 'CAUFVD-GLTRP'
                                  '01.08.2010'.
    perform bdc_field       using 'CAUFVD-TPLNR'
                                  'RTNP-HIG'.
    perform bdc_field       using 'CAUFVD-EQUNR'
                                  '10000009'.
    perform bdc_field       using 'AFVGD-LTXA1'
                                  'abc'.
    perform bdc_field       using 'AFVGD-INDET'
                                  '1'.
    perform bdc_field       using 'AFVGD-ARBPL'
                                  'RTN_VELR'.
    perform bdc_field       using 'AFVGD-WERKS'
                                  '460A'.
    perform bdc_field       using 'AFVGD-STEUS'
                                  'PMIN'.
    perform bdc_field       using 'AFVGD-ARBEH'
                                  'H'.
    perform bdc_field       using 'AFVGD-DAUNE'
                                  'H'.
    perform bdc_transaction using 'IW31'.
    perform close_group.
    after executing it has two options.one is for call transactioin and other is for with session.Now i want to do the uploading from text file.Please guide me how to achieve that and what should be the order of fields in the text file.I am just a beginner.I know how to do that with LSMW bt trying BDc first time for creating PM orders

    You can use class "cl_gui_frontend_services". First you must select file with "file_open_dialog" method and the you can upload file with "gui_upload" method into internal table. Here is a sample: (I didn't try the code but I'm sure you can get it working, there are lots of sample codes about that. You can also search FM "GUI_UPLOAD").
    REPORT  zreport.
    DATA:
    gv_subrc TYPE sysubrc,
    gv_result TYPE abap_bool,
    gt_data_tab type table of zstruc.
    PARAMETERS: p_fname LIKE rlgrap-filename.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fname.
        PERFORM file_open_dialog USING space space space space
                            CHANGING p_fname gv_action gv_subrc.
    START-OF-SELECTION.
    PERFORM gui_upload TABLES gt_data_tab
                     USING p_fname  CHANGING gv_subrc.
    *** FORMS ***
    FORM file_open_dialog USING pv_window_title
                                pv_default_extension
                                pv_default_filename
                                pv_initial_directory
                       CHANGING pv_filename
                                pv_user_action
                                pv_subrc.
      DATA:
      lt_file_table TYPE filetable,
      lv_rc         TYPE i,
      lv_initial_directory TYPE string.
      IF pv_initial_directory IS INITIAL.
        PERFORM get_desktop_directory CHANGING lv_initial_directory.
      ELSE.
        lv_initial_directory = pv_initial_directory.
      ENDIF.
      CALL METHOD cl_gui_frontend_services=>file_open_dialog
        EXPORTING
          window_title            = pv_window_title
          default_extension       = pv_default_extension
          default_filename        = pv_default_filename
    *     file_filter             =
    *     with_encoding           =
          initial_directory       = lv_initial_directory
    *     multiselection          =
        CHANGING
          file_table              = lt_file_table
          rc                      = lv_rc
          user_action             = pv_user_action
    *     file_encoding           =
        EXCEPTIONS
          file_open_dialog_failed = 1
          cntl_error              = 2
          error_no_gui            = 3
          not_supported_by_gui    = 4
          OTHERS                  = 5
      pv_subrc = sy-subrc.
      IF pv_subrc EQ 0.
        READ TABLE lt_file_table INTO pv_filename INDEX 1.
      ENDIF.
    ENDFORM.
    FORM gui_upload TABLES pt_data_tab
                     USING pv_filename
                  CHANGING pv_subrc    TYPE sysubrc.
      DATA:
      lt_data_tab TYPE TABLE OF string,
      lv_filename TYPE string.
      lv_filename = pv_filename.
      CALL METHOD cl_gui_frontend_services=>gui_upload
        EXPORTING
          filename                = lv_filename
          filetype                = 'ASC'
         has_field_separator     = 'X'
    *     header_length           = 0
    *     read_by_line            = 'X'
    *     dat_mode                = SPACE
    *     codepage                = SPACE
    *     ignore_cerr             = ABAP_TRUE
    *     replacement             = '#'
    *     virus_scan_profile      =
    *     show_transfer_status    = 'X'
    *   IMPORTING
    *     filelength              =
    *     header                  =
        CHANGING
          data_tab                = lt_data_tab
        EXCEPTIONS
          file_open_error         = 1
          file_read_error         = 2
          no_batch                = 3
          gui_refuse_filetransfer = 4
          invalid_type            = 5
          no_authority            = 6
          unknown_error           = 7
          bad_data_format         = 8
          header_not_allowed      = 9
          separator_not_allowed   = 10
          header_too_long         = 11
          unknown_dp_error        = 12
          access_denied           = 13
          dp_out_of_memory        = 14
          disk_full               = 15
          dp_timeout              = 16
          not_supported_by_gui    = 17
          error_no_gui            = 18
          OTHERS                  = 19
      pv_subrc = sy-subrc.
      IF pv_subrc EQ 0.
        pt_data_tab[] = lt_data_tab[].
      ENDIF.
    ENDFORM.

  • BDC Program is not working in background mode

    Hi All,
             I hv one bdc program for tcode fb02 which is working fine in foreground mode and data is updated to each screen properly. While running the same program in Background mode data is not updated. Can u seggust the solution.
    Regards,
    Rahul S

    Hi ,
    Remove the break point in the BDC performs.
    put the break point once u complete the BDC.... otherwise execute the BDC in MODE 'E'.. error mode.
    regards,
    Rama Reddy
    Edited by: ram reddy on Nov 16, 2009 5:37 AM

  • Problem in creating a BDC program for transaction cj20n(project sytem)

    Hi all,
    I am trying to create project,WBS element ,network and activity using a BDC program,
      I am able to create to a recording for the transaction cj20n using tcode shdb but when i run the recording it doesnt run properly i am not able to create any thing.
    I get error saying that a particular field doesnt exist on the screen.
    Is possible to create a BDC program for transaction CJ20N ?
    Also is there any other alternative  apart from using a BAPI or a function module.
    Thanks,
    Nishant

    Hi,
        Check below link for BAPIs of transaction cj20n.
    [BAPI for cj20n|BAPI for CJ20N transaction]
    Thanks,
    Asit Purbey.

  • BDC programming using Batch input Session.

    Hello Experts.
    I'm an ABAP beginner. I've benn practicing BDC programming using Batch input Session
    at the moment.
    This is the program that upload Local file which has plural records, and put the records into a Session.
    These are the records.
    413459,KIM EI HWAN121                ,19810607,MIADONG1234
    423459,KIM EI HWAN122                ,19810607,MIADONG1235
    433459,KIM EI HWAN123                ,19810607,MIADONG1236
    443459,KIM EI HWAN124                ,19810607,MIADONG1237
    453459,KIM EI HWAN125                ,19810607,MIADONG1238
    463459,KIM EI HWAN126                ,19810607,MIADONG1239
    I succeeded making Session.
    However, for some reaseon, every record in the Session has got the same, value which is the first record.
    Why is this happening? And How can I correct the code below?
    REPORT ZBCUSER002_BATCH NO STANDARD PAGE HEADING
                            LINE-SIZE 255
                            MESSAGE-ID ZBATCH.
    = Types definition ===================================================
    TYPES: BEGIN OF TYP_LOCAL,               "For Local file upload
             RECORD(200) TYPE C,
           END   OF TYP_LOCAL.
    = Internal table definition ==============================================
    DATA: BEGIN OF BDC_TAB OCCURS 0.        "BDCDATA itab
            INCLUDE STRUCTURE BDCDATA.
    DATA: END   OF BDC_TAB.
    DATA: BEGIN OF MESSAGE_BDC OCCURS 0.    "Message itab
            INCLUDE STRUCTURE BDCMSGCOLL.
    DATA: END   OF MESSAGE_BDC.
    DATA: TBL_LOCAL TYPE STANDARD TABLE OF TYP_LOCAL,  "Local file itab
          F_TBL     TYPE FILETABLE.                    "FILETABLE fot local
    = Structure table definition =========================================
    DATA: STR_F_TBL LIKE LINE OF F_TBL,                "FILETABLE structure
          STR_LOCAL TYPE TYP_LOCAL.                    "Local file structure
    = Variable definition ================================================
    DATA: LV_RC     TYPE I,                            "Method parameter
          ENUMBER   TYPE ZT601-ENUMBER,                "Employee number
          NAME      TYPE ZT601-NAME,                   "Employee name
          BIRTH     TYPE ZT601-BIRTH,                           "Birthday
          HOMETOWN  TYPE ZT601-HOMETOWN,                        "Hometown
          SYSVAL    TYPE SY-SUBRC.                     "System valuible
    = Constants definition ===============================================
    CONSTANTS: TBL_NAME(10) TYPE C VALUE 'ZT601'.      "Table name ZT601
    = Parameters definition ==============================================
    PARAMETERS: F_NAME      TYPE RLGRAP-FILENAME OBLIGATORY,    "File path
                EXECMODE(1) TYPE C.                    "Execute mode
    INITIALIZATION
    *----- Initialize all valuables, structures and internal tables
    CLEAR: LV_RC,
           STR_F_TBL,
           STR_LOCAL,
           ENUMBER,
           NAME,
           BIRTH,
           HOMETOWN.
    REFRESH: F_TBL,
             TBL_LOCAL.
    AT SELECTION-SCREEN
    *----- When the button next to Parameter 'F_NAME',
    *----- File dialog open.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR F_NAME.
      CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG
        EXPORTING
          WINDOW_TITLE            = 'SELECT FILE'
          DEFAULT_FILENAME        = '*.TXT'
       CHANGING
         FILE_TABLE               = F_TBL
         RC                       = LV_RC
        EXCEPTIONS
          FILE_OPEN_DIALOG_FAILED = 1
          CNTL_ERROR              = 2
          OTHERS                  = 3
    *----- system valiable check.
    *----- If done properly,
    *----- Put the path into the File path parameter
      IF SY-SUBRC = 0.
        READ TABLE F_TBL INTO STR_F_TBL INDEX 1.
        F_NAME = STR_F_TBL.
    *----- If not done properly, show message
    *----- An error occured while getting file path then end program
      ELSE.
        MESSAGE E000.
      ENDIF.
    *----- Execute code can only be A or N.
    AT SELECTION-SCREEN ON EXECMODE.
      IF EXECMODE <> 'A' AND EXECMODE <> 'N'.
        MESSAGE E001.
      ENDIF.
    START-OF-SELECTION
    START-OF-SELECTION.
    *----- Upload Local file of file path parameter.
      CALL FUNCTION 'GUI_UPLOAD'
           EXPORTING
                FILENAME                = F_NAME
                FILETYPE                = 'ASC'
           TABLES
                DATA_TAB                = TBL_LOCAL
           EXCEPTIONS
                FILE_OPEN_ERROR         = 1
                FILE_READ_ERROR         = 2
                NO_BATCH                = 3
                GUI_REFUSE_FILETRANSFER = 4
                INVALID_TYPE            = 5
                OTHERS                  = 6.
    *----- System valiable check.
    *----- If not done properly, show an error message
    *----- An error occured while uploading local file then end program
      IF SY-SUBRC <> 0.
        MESSAGE E002.
      ENDIF.
      PERFORM BDC_OPEN.
    *----- Loop Internal table
      LOOP AT TBL_LOCAL INTO STR_LOCAL.
    *----- Spilt the file record and put them into each valiable.
        SPLIT STR_LOCAL AT ',' INTO  ENUMBER
                                     NAME
                                     BIRTH
                                     HOMETOWN.
    *----- Data check Function module
        CALL FUNCTION 'DATE_CHECK_PLAUSIBILITY'
             EXPORTING
                  DATE                      = BIRTH
             EXCEPTIONS
                  PLAUSIBILITY_CHECK_FAILED = 1
                  OTHERS                    = 2.
    *----- When error occurs while checking date, show an error message.
    *----- (&1) is not date
        IF SY-SUBRC <> 0.
          MESSAGE E003 WITH BIRTH.
        ENDIF.
    *-- The first screen of SE11
    *----- Screen number 0102 of program id SAPMSRD0
        PERFORM BDC_DYNPRO      USING 'SAPMSRD0' '0102'.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'RSRD1-TBMA_VAL'. "Field on Cursor
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '=SHOW'.          "Display button
        PERFORM BDC_FIELD       USING 'RSRD1-TBMA'
                                      'X'.
        PERFORM BDC_FIELD       USING 'RSRD1-TBMA_VAL'
                                       TBL_NAME.                "ZT601
    *-- Table definition screen
    *----- Screen number 2000 of program id SAPLSD02
        PERFORM BDC_DYNPRO      USING 'SAPLSD02' '2000'.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'DD02D-TABCLTEXT'.  "Field on Cursor
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '=TDED'.            "Create entry
        PERFORM BDC_FIELD       USING 'BDC_SUBSCR'
                                      'SAPLSD02'.
        PERFORM BDC_FIELD       USING 'BDC_SUBSCR'
                                      'SAPLSED5'.
    *-- Data input screen
    *----- Screen number 0101 of program /1BCDWB/DBZT601
        PERFORM BDC_DYNPRO      USING '/1BCDWB/DBZT601' '0101'.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'ZT601-CRUSER'.    "Field on Cursor
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '=SAVE'.                  "Save
        PERFORM BDC_FIELD       USING 'ZT601-MANDT'
                                      SY-MANDT.                 "Client
        PERFORM BDC_FIELD       USING 'ZT601-ENUMBER'
                                      ENUMBER.           "Employee number
        PERFORM BDC_FIELD       USING 'ZT601-NAME'
                                      NAME.              "Employee name
        PERFORM BDC_FIELD       USING 'ZT601-BIRTH'
                                      BIRTH.                    "Birthday
        PERFORM BDC_FIELD       USING 'ZT601-HOMETOWN'
                                      HOMETOWN.                 "Hometown
        PERFORM BDC_FIELD       USING 'ZT601-CRDATE'
                                      SY-DATUM.          "System date
        PERFORM BDC_FIELD       USING 'ZT601-CRTIME'
                                      SY-UZEIT.          "System time
        PERFORM BDC_FIELD       USING 'ZT601-CRUSER'
                                      SY-UNAME.          "System user
    *-- Data input screen (After input)
    *----- Screen number 0101 of program /1BCDWB/DBZT601
        PERFORM BDC_DYNPRO      USING '/1BCDWB/DBZT601' '0101'.
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '/EBACK'.                 "Back
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'ZT601-CRUSER'.    "Field on Cursor
    *-- Table definition screen]
    *----- Screen number 2000 of program SAPLSD02
        PERFORM BDC_DYNPRO      USING 'SAPLSD02' '2000'.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'DD02D-TABCLTEXT'.  "Field on Cursor
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '=WB_BACK'.               "Back
    *-- The first screen of SE11
    *----- Screen number 0102 of program SAPMSRD0
        PERFORM BDC_DYNPRO      USING 'SAPMSRD0' '0102'.
        PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                      'RSRD1-TBMA_VAL'.   "Field on Cursor
        PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                      '=BACK'.
        PERFORM BDC_FIELD       USING 'RSRD1-TBMA'
                                      'X'.
        PERFORM BDC_FIELD       USING 'RSRD1-TBMA_VAL'
                                      TBL_NAME.
        PERFORM BDC_INSERT.
      ENDLOOP.
      PERFORM BDC_CLOSE.
          FORM BDC_DYNPRO                                               *
          Put Program-Id, Dynpro screen number, Start point
          into DBCDATA
    -->  PROGRAM                                                       *
    -->  DYNPRO                                                        *
    FORM BDC_DYNPRO USING PROGRAM DYNPRO.
      CLEAR BDC_TAB.
      BDC_TAB-PROGRAM  = PROGRAM.
      BDC_TAB-DYNPRO   = DYNPRO.
      BDC_TAB-DYNBEGIN = 'X'.
      APPEND BDC_TAB.
    ENDFORM.
          FORM BDC_FIELD                                                *
          Put Field Name and Value into BDCDATA
    -->  FNAM                                                          *
    -->  FVAL                                                          *
    FORM BDC_FIELD USING FNAM FVAL.
      CLEAR BDC_TAB.
      BDC_TAB-FNAM = FNAM.
      BDC_TAB-FVAL = FVAL.
      APPEND BDC_TAB.
    ENDFORM.
          FORM bdc_process                                              *
    FORM BDC_OPEN.
      CALL FUNCTION 'BDC_OPEN_GROUP'
           EXPORTING
                CLIENT = SY-MANDT
                GROUP  = 'Testsession'
                KEEP   = 'X'
                USER   = SY-UNAME.
      IF SY-SUBRC <> 0.
        MESSAGE E006 WITH SY-SUBRC.
      ENDIF.
    ENDFORM.
          FORM bdc_insert                                               *
    FORM BDC_INSERT.
      CALL FUNCTION 'BDC_INSERT'
           EXPORTING
                TCODE            = 'SE11'
           TABLES
                DYNPROTAB        = BDC_TAB
           EXCEPTIONS
                INTERNAL_ERROR   = 1
                NOT_OPEN         = 2
                QUEUE_ERROR      = 3
                TCODE_INVALID    = 4
                PRINTING_INVALID = 5
                POSTING_INVALID  = 6
                OTHERS           = 7.
      IF SY-SUBRC <> 0.
        MESSAGE E007 WITH SY-SUBRC.
      ENDIF.
      CLEAR: BDC_TAB.
    ENDFORM.
          FORM bdc_close                                                *
    FORM BDC_CLOSE.
      CALL FUNCTION 'BDC_CLOSE_GROUP'
           EXCEPTIONS
                NOT_OPEN    = 1
                QUEUE_ERROR = 2
                OTHERS      = 3.
      IF SY-SUBRC <> 0.
        MESSAGE E008 WITH SY-SUBRC.
      ENDIF.
    ENDFORM.

    God I forgot to refresh Internal table after putting record into Session.
    Now I'm done.
    You guys be careful too.

  • Can we make a BDC program as a webservice

    Hi All,
    Can we write a BDC program in RFC Function Module and access it through web service.
    We have a requirement to create a Return Order, for that we have recorded the Va01 transaction for return order and included the same recorded code in RFC Function module and also created web service for it. But when we tried to access through webservice, it is showing the following error
    "Call to returned http code 500 (Internal Server Error) with unacceptable content type (text/html; charset=utf-8).
    ><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><soap:Fault><faultcode> soap:Server </faultcode><faultstring xml:lang="en"> RABAX occurred on server side </faultstring><detail><sap:Rabax xmlns:sap="http://www.sap.com/webas/710/soap/runtime/abap/fault/generic"><MESSAGE>Access via 'NULL' object reference not possible.</MESSAGE><SYMSGID>VX</SYMSGID><SYMSGTY>S</SYMSGTY><SYMSGNO>206</SYMSGNO><SYMSGV1>TextEditControl</SYMSGV1><SYMSGV2></SYMSGV2><SYMSGV3></SYMSGV3><SYMSGV4></SYMSGV4><SYREPID>SAPLV70T</SYREPID><SYTCODE>VA01</SYTCODE><SYDYNNR>2000</SYDYNNR><SYUNAME>DIK</SYUNAME><SYMANDT>100</SYMANDT><SYLANGU>E</SYLANGU><SYECODE>558</SYECODE><SYHOST>sapdvp</SYHOST><SYSYSID>SD1</SYSYSID><SYOPSYS>Windows NT</SYOPSYS><SYDBSYS>MSSQL</SYDBSYS><SYSAPRL>700</SYSAPRL><SYXPROG>SAPCNVE</SYXPROG><SYXFORM>CONVERSION_EXIT</SYXFORM><SYDATUM>20111104</SYDATUM><SYUZEIT>153001</SYUZEIT><SYETEXT>RABAX_STATE</SYETEXT><ERRORCODE>OBJECTS_OBJREF_NOT_ASSIGNED</ERRORCODE><PATHTRANS>/sap/bc/srt/rfc/sap/zcom_create_return_bdc/100/zcom_create_return_bdc/zcom_create_return_bdc</PATHTRANS><MESSAGE>Access via 'NULL' object reference not possible.</MESSAGE><ERRORCODE>OBJECTS_OBJREF_NOT_ASSIGNED</ERRORCODE></sap:Rabax></detail></soap:Fault></soap:Body></soap:Envelope>"
    When we execute the same RFC from SAP SE37 T-Code , it is working fine but same not working from web service .
    One more thing If anybody knows the standard BAPI or Function Module to create the Sales Return Order please do post .
    Thanks in advance ,
    Chaitanya

    Hi Pranav,
    Okay. Kindly let me know how to run rfc function module in background  because we have call transaction perform in RFC function module and I am posting BDC code that is using inside RFC function module.
    TYPES:BEGIN OF t_bdcdata,
            program TYPE bdc_prog,
            dynpro  TYPE bdc_dynr,
            dynbegin TYPE bdc_start,
            fnam TYPE fnam_____4,
            fval  TYPE bdc_fval,
        END OF t_bdcdata.
      DATA:wa_bdcdata TYPE t_bdcdata,
           it_bdcdata TYPE TABLE OF t_bdcdata.
      DATA:auart_001 TYPE bdc_fval,
         vkorg_002 TYPE bdc_fval,
         vtweg_003 TYPE bdc_fval,
         spart_004 TYPE bdc_fval,
         vbeln_005 TYPE bdc_fval,
         kunwe_006 TYPE bdc_fval,
         bstkd_007 TYPE bdc_fval,
         augru_010 TYPE bdc_fval,
         bsark_011 TYPE bdc_fval,
         augru_019 TYPE bdc_fval,
         bsark_020 TYPE bdc_fval.
      DATA:v_subrc TYPE sy-subrc.
      MOVE auart TO auart_001.
      MOVE vkorg TO vkorg_002.
      MOVE vtweg TO vtweg_003.
      MOVE spart TO spart_004.
      CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
        EXPORTING
          input  = vbeln
        IMPORTING
          output = vbeln.
      MOVE vbeln TO vbeln_005.
      MOVE kunwe TO kunwe_006.
      MOVE bstkd TO bstkd_007.
      MOVE augru TO augru_010.
      MOVE bsark TO bsark_011.
      MOVE augru TO augru_019.
      MOVE bsark TO bsark_020.
      wa_bdcdata-program  = 'SAPMV45A'.
      wa_bdcdata-dynpro   = '0101'.
      wa_bdcdata-dynbegin = 'X'.
      APPEND wa_bdcdata TO it_bdcdata.
      CLEAR wa_bdcdata.
      wa_bdcdata-fnam = 'BDC_CURSOR'.
      wa_bdcdata-fval = 'VBAK-AUART'.
      APPEND wa_bdcdata TO it_bdcdata.
      CLEAR wa_bdcdata.
      wa_bdcdata-fnam = 'BDC_OKCODE'.
      wa_bdcdata-fval = '=COPY'.
      APPEND wa_bdcdata TO it_bdcdata.
      CLEAR wa_bdcdata.
      wa_bdcdata-fnam = 'VBAK-AUART'.
      wa_bdcdata-fval = auart_001.
      APPEND wa_bdcdata TO it_bdcdata.
      CLEAR wa_bdcdata.
      wa_bdcdata-fnam = 'VBAK-VKORG'.
      wa_bdcdata-fval = vkorg_002.
      APPEND wa_bdcdata TO it_bdcdata.
      CLEAR wa_bdcdata.
      wa_bdcdata-fnam = 'VBAK-VTWEG'.
      wa_bdcdata-fval = vtweg_003.
      APPEND wa_bdcdata TO it_bdcdata.
      CLEAR wa_bdcdata.
      wa_bdcdata-fnam = 'VBAK-SPART'.
      wa_bdcdata-fval = spart_004.
      APPEND wa_bdcdata TO it_bdcdata.
      CLEAR wa_bdcdata.
      wa_bdcdata-program  = 'SAPLV45C'.
      wa_bdcdata-dynpro   = '0100'.
      wa_bdcdata-dynbegin = 'X'.
      APPEND wa_bdcdata TO it_bdcdata.
      CLEAR wa_bdcdata.
      wa_bdcdata-fnam = 'BDC_OKCODE'.
      wa_bdcdata-fval = '=UEBR'.
      APPEND wa_bdcdata TO it_bdcdata.
      CLEAR wa_bdcdata.
      wa_bdcdata-fnam = 'BDC_CURSOR'.
      wa_bdcdata-fval = 'LV45C-VBELN'.
      APPEND wa_bdcdata TO it_bdcdata.
      CLEAR wa_bdcdata.
      wa_bdcdata-fnam = 'LV45C-VBELN'.
      wa_bdcdata-fval = vbeln_005.
      APPEND wa_bdcdata TO it_bdcdata.
      CLEAR wa_bdcdata.
      wa_bdcdata-program  = 'SAPLJ3AD'.
      wa_bdcdata-dynpro   = '2010'.
      wa_bdcdata-dynbegin = 'X'.
      APPEND wa_bdcdata TO it_bdcdata.
      CLEAR wa_bdcdata.
      wa_bdcdata-fnam = 'BDC_OKCODE'.
      wa_bdcdata-fval = '=ENT1'.
      APPEND wa_bdcdata TO it_bdcdata.
      CLEAR wa_bdcdata.
      wa_bdcdata-fnam = 'BDC_CURSOR'.
      wa_bdcdata-fval = 'J_3ASZFH-BSTKD'.
      APPEND wa_bdcdata TO it_bdcdata.
      CLEAR wa_bdcdata.
      wa_bdcdata-fnam = 'J_3ASZFH-KUNWE'.
      wa_bdcdata-fval = kunwe_006.
      APPEND wa_bdcdata TO it_bdcdata.
      CLEAR wa_bdcdata.
      wa_bdcdata-fnam = 'J_3ASZFH-BSTKD'.
      wa_bdcdata-fval = bstkd_007.
      APPEND wa_bdcdata TO it_bdcdata.
      CLEAR wa_bdcdata.
      wa_bdcdata-fnam = 'J_3ASZFH-AUGRU'.
      wa_bdcdata-fval = augru_010.
      APPEND wa_bdcdata TO it_bdcdata.
      CLEAR wa_bdcdata.
      wa_bdcdata-fnam = 'J_3ASZFH-BSARK'.
      wa_bdcdata-fval = bsark_011.
      APPEND wa_bdcdata TO it_bdcdata.
      CLEAR wa_bdcdata.
      wa_bdcdata-program  = 'SAPLJ3AD'.
      wa_bdcdata-dynpro   = '2010'.
      wa_bdcdata-dynbegin = 'X'.
      APPEND wa_bdcdata TO it_bdcdata.
      CLEAR wa_bdcdata.
      wa_bdcdata-fnam = 'BDC_OKCODE'.
      wa_bdcdata-fval = '=SICH'.
      APPEND wa_bdcdata TO it_bdcdata.
      CLEAR wa_bdcdata.
      wa_bdcdata-fnam = 'BDC_CURSOR'.
      wa_bdcdata-fval = 'J_3ASZFH-BSTKD'.
      APPEND wa_bdcdata TO it_bdcdata.
      CLEAR wa_bdcdata.
      wa_bdcdata-fnam = 'J_3ASZFH-AUGRU'.
      wa_bdcdata-fval = augru_019.
      APPEND wa_bdcdata TO it_bdcdata.
      CLEAR wa_bdcdata.
      wa_bdcdata-fnam = 'J_3ASZFH-BSARK'.
      wa_bdcdata-fval =  bsark_020.
      APPEND wa_bdcdata TO it_bdcdata.
      CLEAR wa_bdcdata.
      CALL FUNCTION 'ABAP4_CALL_TRANSACTION'
        EXPORTING
          tcode                         = 'VA01'
         skip_screen                   = ''
         mode_val                      = 'N'
         update_val                    = 'A'
       IMPORTING
         subrc                         = subrc
       TABLES
         using_tab                     = it_bdcdata
        SPAGPA_TAB                    =
         mess_tab                      = messtab
       EXCEPTIONS
         call_transaction_denied       = 1
         tcode_invalid                 = 2
         OTHERS                        = 3
      IF sy-subrc <> 0.
        subrc = sy-subrc.
        EXIT.
      ENDIF.
    so i am using BDC code to create order instead of function module and converted bdccode into rfc function module,
    just help how to do with above code.
    With Regards,
    Krishna Chaitanya

Maybe you are looking for