Problem in BDC Background

Hi
I am facing a problem in BDC ,call trasaction, for FB01
While the recording is done, the confi has BSEG-DMBTR field (Local Currecny)
and now its not there is the screen.
If i run my BDC is foreground, it says Field does not exist as sucess message and then i press enter and it let me post the record.
But in Background, its not letting me post the document.
wether its because , in background if any screen elements is message , being a succes message, it doesnot post ?
please help

Hi Munish singh,
        Actually this  error because of currency field.
1) declare the character variable equal to the dmbtr field output length. ex: data: v_dmbtr type c length 18.
2) before passing to the screen field.
3) move itab-dmbtr to v_dmbtr.
    condence v_dmbtr.
4) And pass this v_dmbtr to the screen field ....
  then your issue positively will resolved.
Dont forgot to Reward me points .....
All the very best....
Regards,
Sreenivasa sarma K.

Similar Messages

  • How to handle error messages in BDC background mode

    Hi experts,
      I got one problem in BDC, We are uploading data throgh BDC program,that program is calling Standard Batch Input programs,
    Now we got one requirement, i.e., In some special cases we have to send one message as a error message.I handled this in foreground but, how to handle this in background.

    Hi,
    if session is being used
    automatically the log will begenereated in the sm35 transaction
    but if call transaction is used
    put all the error messages in the applicationserver using
    open data set
    and after the exectionof the program in the background
    you have to run another progam which reads the data stroed inthe application server
    that also with open data set only...
    thanks & regards,
    Venkatesh

  • Problem in BDC for MB1B

    Dear Experts ,
    I am doing a BDC for MB1B...
    In my selection screen I am having,
    Plant, Vendor No, text and and options to enter 5 different materials and its corresponding qauntity.
    When the user enter the above details and execute , these details should trigger in MB1B
    ( using BDC background ).
    My problem is i the final stage where the document needs to get saved, as in my case
    its getting saved and also if the user enters only 1 material the loop should happen only once, but here
    its getting looped with balnk values.
    I have pasted my code below, please have look and advice me.
    REFRESH: BDCDATA, MESSTAB.
      PERFORM DYNPRO USING:
      'X' 'SAPMM07M' '0400',
      ' ' 'RM07M-BWARTWA' '941',
      ' ' 'RM07M-WERKS'  itab-WERKS,
      ' ' 'RM07M-LGORT' itab-LGORT,
      ' ' 'MKPF-BKTXT'  itab-BKTXT,
      ' ' 'BDC_OKCODE' '/00',
      'X' 'SAPMM07M' '0421',
      ' ' 'MSEGK-UMWRK' itab-WERKS,
      ' ' 'MSEGK-LIFNR' itab-VEND,
      ' ' 'BDC_OKCODE' 'NLE',
      'X' 'SAPLKACB' '0002',
      ' ' 'BDC_OKCODE' '/00'.
      LOOP AT ITAB1.
      QAN = ITAB1-ERFMG.
      QTY = QAN+6(6).
      CNT = CNT + 1.
      CN = CNT.
      CONCATENATE 'MSEG-MATNR(' CN  ')' INTO FN1.
      CONCATENATE 'MSEG-ERFMG(' CN  ')' INTO FN2.
        PERFORM DYNPRO USING:
        'X' 'SAPMM07M' '0421',
        ' '  FN1 ITAB1-MATNR,
        ' '  FN2 QTY,
        ' ' 'BDC_OKCODE' '/00',
        'X' 'SAPLKACB' '0002',
        ' ' 'BDC_OKCODE' '=ENTE'.
      ENDLOOP.
      CALL TRANSACTION 'MB1B' USING BDCDATA MODE 'A'

    Hi Naga,
    Thanks a lot for ur valuable advice !!
    Now my document is getting posted , while using:
    *CALL TRANSACTION 'MB1B' USING BDCDATA MODE  'A' *
    but when I am using
    *CALL TRANSACTION 'MB1B' USING BDCDATA MODE  'N' *
    I am getting 'S' message  No batch input data for screen SAPLKACB 0002.
    I am pasting my code please have a look and advice me.
    REFRESH: BDCDATA, MESSTAB.
      PERFORM DYNPRO USING:
      'X' 'SAPMM07M' '0400',
      ' ' 'RM07M-BWARTWA' '941',
      ' ' 'RM07M-WERKS' S_WERKS,
      ' ' 'RM07M-LGORT' S_LGORT,
      ' ' 'MKPF-BKTXT'  S_BKTXT,
      ' ' 'BDC_OKCODE' '/00',
      'X' 'SAPMM07M' '0421',
      ' ' 'MSEGK-UMWRK' S_WERKS,
      ' ' 'MSEGK-LIFNR' S_VEND,
      ' ' 'BDC_OKCODE' 'NLE',
      'X' 'SAPLKACB' '0002',
      ' ' 'BDC_OKCODE' '/00'.
      LOOP AT ITAB.
        DELETE ITAB WHERE MATNR IS INITIAL.
        QAN = ITAB-ERFMG.
        QTY = QAN+6(6).
        CNT = CNT + 1.
        CN = CNT.
        CONCATENATE 'MSEG-MATNR(' CN  ')' INTO FN1.
        CONCATENATE 'MSEG-ERFMG(' CN  ')' INTO FN2.
        PERFORM DYNPRO USING:
        'X' 'SAPMM07M' '0421',
        ' '  FN1 ITAB-MATNR,
        ' '  FN2 QTY,
        ' ' 'BDC_OKCODE' '/00'.
      ENDLOOP.
      PERFORM BDC_FIELD       USING  'BDC_OKCODE'
                                  '=BU'.
      PERFORM BDC_FIELD       USING 'DKACB-FMORE'
                                    'X'.
      PERFORM DYNPRO          USING 'X' 'SAPLKACB' '0002'.
      PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                    '=ENTE'.
      CALL TRANSACTION 'MB1B' USING BDCDATA MODE 'N'
      MESSAGES INTO MESSTAB.
    Rgds
    Karthik

  • Problem with BDC on VA02

    Hi All,
    I am facing a problem with bdc on va02. After hitting enter on the first screen it pops an info message "consider subsequent douments". It doesn't get recorded in recorded. Hence I am not able to run the transaction with no screen mode. Please help me to suppress the info message
    Navin

    Hi Navin,
    These kind of messages and pop ups are precisely the reason why use of BDC for updating transactions is NOT advisable.
    If you were to bypass such messages, you would have to put a check to see why the message appears (in this case probably because the sales document flow for the sales order in table VBFA has some documents) and then write a logic to either handle the message or not.
    Instead i would recommend you use the BAPI functions provided by SAP to change the sales order.
    Have a look the BAPI for sales order change attached to the business object BUS2012. For this goto transaction SWO1 and enter the BUS2012 business object. Then goto methods and look for the "change" method. Double click on the method and look at the BAPI used to implement the method. Go ahead and use this method in your program as against a BDC.
    I am sure it will be a much better option.
    Otherwise if you still want to proceed with a BDC, please debug at the point where the message/pop up appears to ascertain reason for the same and then incorporate the same check in your program to handle the pop up.
    Regards,
    Aditya

  • Problem in bdc PROG

    Dear All,
                Iam facing the problem in BDC Program..the code is..
    LOOP AT IT_RECORD.
    perform bdc_dynpro      using 'SAPMF05A' '0300'.
    perform bdc_field       using 'BDC_CURSOR'  'RF05A-NEWKO'.
    perform bdc_field       using 'BDC_OKCODE'  '/00'.
    perform bdc_field       using 'BSEG-WRBTR'                IT_RECORD-vramt.  "'100000'.
    perform bdc_field       using 'RF05A-NEWBS'                          it_record-pkey.  "'50'.
    perform bdc_field       using 'RF05A-NEWKO'                          it_Record-vrac.  "'24450024'.
    perform bdc_field       using 'DKACB-FMORE'                          'X'.
    perform bdc_dynpro      using 'SAPLKACB' '0002'.
    perform bdc_field       using 'BDC_CURSOR'  'COBL-GSBER'.
    perform bdc_field       using 'BDC_OKCODE'  '=ENTE'.
    perform bdc_field       using 'COBL-GSBER'                            it_record-gsber.  "'KABA' .
    COUNT = COUNT + 1.
    WRITE:/ COUNT.
    IF COUNT = 4.
      perform bdc_dynpro      using 'SAPMF05A' '0302'.
      perform bdc_field       using 'BDC_CURSOR'
                                    'BSEG-GSBER'.
      perform bdc_field       using 'BDC_OKCODE'
                                    '/00'.
      perform bdc_field       using 'BSEG-WRBTR'                        IT_RECORD-VRAMT.   "'50000'.
      perform bdc_field       using 'BSEG-MWSKZ'                           '**'.
      perform bdc_field       using 'BSEG-GSBER'                        IT_RECORD-GSBER ."'kaba'.
      perform bdc_field       using 'BSEG-ZFBDT'                           '03.12.2007'.
      perform bdc_dynpro      using 'SAPMF05A' '0302'.
      perform bdc_field       using 'BDC_CURSOR'
                                    'BSEG-WRBTR'.
      perform bdc_field       using 'BDC_OKCODE'
                                    '=BS'.
      perform bdc_field       using 'BSEG-WRBTR'                          IT_RECORD-VRAMT. "'50,000.00'.
      perform bdc_field       using 'BSEG-MWSKZ'
      perform bdc_field       using 'BSEG-BUPLA'                            '1800'.
      perform bdc_field       using 'BSEG-GSBER'                            IT_RECORD-GSBER."'KABA'.
      perform bdc_field       using 'BSEG-ZFBDT'                            '03.12.2007'.
      perform bdc_dynpro      using 'SAPMF05A' '0700'.
      perform bdc_field       using 'BDC_CURSOR'
                                    'RF05A-NEWBS'.
      perform bdc_field       using 'BDC_OKCODE'
                                    '=BU'.
      CALL TRANSACTION 'F-02' USING BDCDATA MODE 'A'.
    ELSE.
      CONTINUE.
    ENDIF.
    ENDLOOP.
    here iam using 4 line item(in text file) ..if count = 4 its not going to next screen, its repeating..its not simulating and posting the doc..
    pls guide me friends.

    hi i send the code here, if u can understand clear it..
    report ZBDC_FI_MVF_02 no standard page heading line-size 255.
    DATA : BEGIN OF IT_RECORDS OCCURS 0,
           BLDAT LIKE BKPF-BLDAT,
           BLART LIKE BKPF-BLART,
           BUKRS LIKE BKPF-BUKRS,
           BUDAT LIKE BKPF-BUDAT,
           MONAT LIKE BKPF-MONAT,
           WAERS LIKE BKPF-WAERS,
           NEWBS LIKE RF05A-NEWBS,
           NEWKO LIKE RF05A-NEWKO,
           END OF IT_RECORDS.
    DATA : BEGIN OF IT_RECORD OCCURS 0,
           VRAMT(15),  " LIKE BSEG-WRBTR,
           PKEY  LIKE RF05A-NEWBS,
           VrAC(10),  " LIKE RF05A-NEWKO,
           GSBER LIKE COBL-GSBER,
           END OF IT_RECORD.
    DATA : BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE,
           DATE1 LIKE SY-DATUM,
           DATE2 LIKE SY-DATUM,
           LOOP(3).
           DATA : COUNT(3).
    start-of-selection.
      PERFORM GET_DATA1.
      PERFORM GET_DATA2.
      PERFORM PROCESS_DATA.
    FORM PROCESS_DATA.
    perform bdc_dynpro      using 'SAPMF05A' '0100'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'RF05A-NEWKO'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
        date1 = it_RecordS-bldat.
        CONCATENATE DATE16(2) DATE14(2) DATE1+0(4) INTO DATE1.
    perform bdc_field       using 'BKPF-BLDAT'               DATE1.  "'03.12.2007'.
    perform bdc_field       using 'BKPF-BLART'               IT_RECORDS-BLART.  "'SA'.
    perform bdc_field       using 'BKPF-BUKRS'               IT_RECORDS-BUKRS.  "'1800'.
        date2 = it_RecordS-bUdat.
        CONCATENATE DATE26(2) DATE24(2) DATE2+0(4) INTO DATE2.
    perform bdc_field       using 'BKPF-BUDAT'               DATE2.  "'03.12.2007'.
    perform bdc_field       using 'BKPF-MONAT'               IT_RECORDS-MONAT.  "'9'.
    perform bdc_field       using 'BKPF-WAERS'               IT_RECORDS-WAERS.  "'INR'.
    perform bdc_field       using 'FS006-DOCID'              '*'.
    perform bdc_field       using 'RF05A-NEWBS'               IT_RECORDS-NEWBS.  "'40'.
    perform bdc_field       using 'RF05A-NEWKO'               IT_RECORDS-NEWKO.  "'24450024'.
    *perform bdc_field       using 'RF05A-NEWBS'               IT_RECORDS-PKEY.  "'50'.
    *perform bdc_field       using 'RF05A-NEWKO'               IT_RECORDS-VENAC.  "'24450024'.
    *perform bdc_field       using 'DKACB-FMORE'  'X'.
    COUNT = '0'.
    LOOP AT IT_RECORD.
    perform bdc_dynpro      using 'SAPMF05A' '0300'.
    perform bdc_field       using 'BDC_CURSOR'  'RF05A-NEWKO'.
    perform bdc_field       using 'BDC_OKCODE'  '/00'.
    perform bdc_field       using 'BSEG-WRBTR'                IT_RECORD-vramt.  "'100000'.
    perform bdc_field       using 'RF05A-NEWBS'                          it_record-pkey.  "'50'.
    perform bdc_field       using 'RF05A-NEWKO'                          it_Record-vrac.  "'24450024'.
    perform bdc_field       using 'DKACB-FMORE'                          'X'.
    perform bdc_dynpro      using 'SAPLKACB' '0002'.
    perform bdc_field       using 'BDC_CURSOR'  'COBL-GSBER'.
    perform bdc_field       using 'BDC_OKCODE'  '=ENTE'.
    perform bdc_field       using 'COBL-GSBER'                            it_record-gsber.  "'KABA' .
    COUNT = COUNT + 1.
    IF COUNT = 4.
    clear count.
      perform bdc_dynpro      using 'SAPMF05A' '0302'.
      perform bdc_field       using 'BDC_CURSOR'
                                    'BSEG-GSBER'.
      perform bdc_field       using 'BDC_OKCODE'
                                    '/00'.
      perform bdc_field       using 'BSEG-WRBTR'                        IT_RECORD-VRAMT.   "'50000'.
      perform bdc_field       using 'BSEG-MWSKZ'                           '**'.
      perform bdc_field       using 'BSEG-GSBER'                        IT_RECORD-GSBER ."'kaba'.
      perform bdc_field       using 'BSEG-ZFBDT'                           '03.12.2007'.
      perform bdc_dynpro      using 'SAPMF05A' '0302'.
      perform bdc_field       using 'BDC_CURSOR'
                                    'BSEG-WRBTR'.
      perform bdc_field       using 'BDC_OKCODE'
                                    '=BS'.
      perform bdc_field       using 'BSEG-WRBTR'                          IT_RECORD-VRAMT. "'50,000.00'.
      perform bdc_field       using 'BSEG-MWSKZ'
      perform bdc_field       using 'BSEG-BUPLA'                            '1800'.
      perform bdc_field       using 'BSEG-GSBER'                            IT_RECORD-GSBER."'KABA'.
      perform bdc_field       using 'BSEG-ZFBDT'                            '03.12.2007'.
      perform bdc_dynpro      using 'SAPMF05A' '0700'.
      perform bdc_field       using 'BDC_CURSOR'
                                    'RF05A-NEWBS'.
      perform bdc_field       using 'BDC_OKCODE'
                                    '=BU'.
      CALL TRANSACTION 'F-02' USING BDCDATA MODE 'A'.
    ELSE.
      CONTINUE.
    ENDIF.
    ENDLOOP.
    perform bdc_dynpro      using 'SAPMF05A' '0302'.
    perform bdc_field       using 'BDC_CURSOR'
                                   'BSEG-GSBER'.
    perform bdc_field       using 'BDC_OKCODE'
                                   '/00'.
    perform bdc_field       using 'BSEG-WRBTR'                '50000'.
    perform bdc_field       using 'BSEG-MWSKZ'                '**'.
    perform bdc_field       using 'BSEG-GSBER'                'kaba'.
    perform bdc_field       using 'BSEG-ZFBDT'                '03.12.2007'.
    perform bdc_dynpro      using 'SAPMF05A' '0302'.
    perform bdc_field       using 'BDC_CURSOR'
                                   'BSEG-WRBTR'.
    perform bdc_field       using 'BDC_OKCODE'
                                   '=BS'.
    perform bdc_field       using 'BSEG-WRBTR'                IT_RECORD-VRAMT.  "'50,000.00'.
    perform bdc_field       using 'BSEG-MWSKZ'                '**'.
    perform bdc_field       using 'BSEG-BUPLA'                '1800'.
    perform bdc_field       using 'BSEG-GSBER'                IT_RECORD-GSBER.  "'KABA'.
    perform bdc_field       using 'BSEG-ZFBDT'                '03.12.2007'.
    perform bdc_dynpro      using 'SAPMF05A' '0700'.
    perform bdc_field       using 'BDC_CURSOR'
                                   'RF05A-NEWBS'.
    perform bdc_field       using 'BDC_OKCODE'
                                   '=BU'.
    perform bdc_transaction using 'F-02'.
    *CALL TRANSACTION 'F-02' USING BDCDATA MODE 'A'.
      ENDFORM.
           Start new screen                                              *
    FORM BDC_DYNPRO USING PROGRAM DYNPRO.
      CLEAR BDCDATA.
      BDCDATA-PROGRAM  = PROGRAM.
      BDCDATA-DYNPRO   = DYNPRO.
      BDCDATA-DYNBEGIN = 'X'.
      APPEND BDCDATA.
    ENDFORM.
           Insert field                                                  *
    FORM BDC_FIELD USING FNAM FVAL.
      IF FVAL <> ' '.
        CLEAR BDCDATA.
        BDCDATA-FNAM = FNAM.
        BDCDATA-FVAL = FVAL.
        APPEND BDCDATA.
      ENDIF.
    ENDFORM.
    *&      Form  GET_DATA
    form GET_DATA1 .
      CALL FUNCTION 'UPLOAD'
       EXPORTING
         FILENAME                      = 'C:\MVF-02_1.txt'
         FILETYPE                      = 'DAT'
        TABLES
         data_tab                      = IT_RECORDS
       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.
    endform.                    " GET_DATA
    *&      Form  GET_DATA2
    form GET_DATA2 .
      CALL FUNCTION 'UPLOAD'
       EXPORTING
         FILENAME                      = 'C:\MVF-02_2.TXT'
         FILETYPE                      = 'DAT'
        TABLES
         data_tab                      = IT_RECORD
       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.
    endform.                    " GET_DATA2

  • Problem in BDC Recording

    Hi I am having a problem in BDC Recording. My requirement is that when I input data in transaction fb02 to block the invoices, It shows a list of invoices. Now i need to double click that item(line) in which PK = 06 at runtime during bdc recording. During BDC recording it takes the line number on which we have clicked which is constant but i want it dynamic that if item 1 is having PK=6, that line should be double clicked and if item 3 is having PK=6, the third item should be double clicked to open another screen. Kindly help me... Thanks in advance.

    Hi Ravi,
    While writing your code that is in your code you know which line number is having the PK = 06, then you can use the same line number and add the code for double click after that.
    Regards,
    Atish

  • Problem in bdc session method for tcode FS00

    Hi Experts,
    problem in bdc session method, when i run this program no output is shown.
    Even it is not calling the transaction.
    code as follows.
    *& Report  Z_GL_MASTER
    *& CATEGORY         =  BDC.
    *& DESCRIPTION      =  UPLOADING G/L MASTER RECORDS.
    *& TECHNICAL CONST  =  FRANCIS REDDY.
    *& FUNTIONAL CONST  =  FICO.
    REPORT  Z_GL_MASTER.
    *& Internal  Table
    DATA : BEGIN OF IT_UPLOAD OCCURS 0,
           SAKNR LIKE  GLACCOUNT_SCREEN_KEY-SAKNR,          " ACCOUNT NUMBER.
           BUKRS LIKE  GLACCOUNT_SCREEN_KEY-BUKRS,          " COMPANY CODE.
           KTOKS LIKE GLACCOUNT_SCREEN_COA-KTOKS,           " ACCOUNT GROUP.
           XPLACCT LIKE GLACCOUNT_SCREEN_COA-XPLACCT,       " P&L STATEMEMENT.
           GVTYP LIKE  GLACCOUNT_SCREEN_COA-GVTYP,          " P&L STATEMENT TYPE.
           XBILK LIKE GLACCOUNT_SCREEN_COA-XBILK,           " BALANCE SHEET STATEMENT
           SHORT LIKE GLACCOUNT_SCREEN_COA-TXT20_ML,        " SHORT TEXT.
           LONG LIKE GLACCOUNT_SCREEN_COA-TXT50_ML,         " LONG TEXT.
           WAERS LIKE GLACCOUNT_SCREEN_CCODE-WAERS,         " ACCOUNT CURRENCY.
           XSALH LIKE GLACCOUNT_SCREEN_CCODE-XSALH,         " ONLY BALANCES IN LOCAL CURRENCY.
           MITKZ LIKE GLACCOUNT_SCREEN_CCODE-MITKZ,         " RECONCILATION ACCOUNT FOR ACCOUNT TYPEGLACCOUNT_SCREEN_CCODE-MITKZ
           XOPVW LIKE GLACCOUNT_SCREEN_CCODE-XOPVW,         " OPEN ITEM MANAGEMENT.
           XKRES LIKE GLACCOUNT_SCREEN_CCODE-XKRES,         " LINE ITEM DISPLAY.
           ZUAWA LIKE GLACCOUNT_SCREEN_CCODE-ZUAWA,         " SORT KEY.
           FSTAG LIKE GLACCOUNT_SCREEN_CCODE-FSTAG,         " FIELD STATUS GROUP.
           XGKON LIKE GLACCOUNT_SCREEN_CCODE-XGKON,         " RELAVENT CASH FLOW.
           END OF IT_UPLOAD.
    *& Internal  Table FOR BDC DATA.
    DATA : IT_BDCDATA TYPE  BDCDATA OCCURS 0  WITH HEADER LINE.
    *& DATA DECLARATIONS.
    DATA : V_FILE LIKE RLGRAP-FILENAME.
    *&  SELECTION SCREEN.
    PARAMETER : P_FILE LIKE V_FILE.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
         PERFORM GET_FILENAME.
    START-OF-SELECTION.
          PERFORM UPLOAD_DATA.
          PERFORM BDCDATA_OPEN.
          PERFORM BDC_POPULATE.
          PERFORM BDC_CLOSE.
    *&      Form  GET_FILENAME
    form GET_FILENAME .
      CALL FUNCTION 'F4_FILENAME'
       EXPORTING
         PROGRAM_NAME        = SYST-CPROG
         DYNPRO_NUMBER       = SYST-DYNNR
         FIELD_NAME          = 'P_FILE'
       IMPORTING
         FILE_NAME           = P_FILE.
    endform.                    " GET_FILENAME
    *&      Form  UPLOAD_DATA
    form UPLOAD_DATA .
    CALL FUNCTION 'WS_UPLOAD'
    EXPORTING
       FILENAME                      =  P_FILE
       FILETYPE                      = 'DAT'
      TABLES
        data_tab                     = IT_UPLOAD.
    endform.                    " UPLOAD_DATA
    *&      Form  BDCDATA_OPEN
       FORM FOR BDC_OPEN_GROUP.
    form BDCDATA_OPEN .
    CALL FUNCTION 'BDC_OPEN_GROUP'
    EXPORTING
       CLIENT                    = SY-MANDT
       GROUP                     = 'GLMASTER'
       HOLDDATE                  = SY-DATUM
       KEEP                      = 'X'
       USER                      = SY-UNAME.
    endform.                    " BDCDATA_OPEN
    *&      Form  BDC_POPULATE
      POPULATING BDC DATA .
    form BDC_POPULATE .
    loop at it_upload.
    PERFORM BDC_SUB1 USING 'X' 'SAPLGL_ACCOUNT_MASTER_MAINTAIN' '2001'.
    PERFORM BDC_SUB2 USING 'BDC_OKCODE' '=ACC_CRE'.
    PERFORM BDC_SUB2 USING 'BDC_CURSOR' 'GLACCOUNT_SCREEN_KEY-SAKNR'.
    PERFORM BDC_SUB2 USING 'GLACCOUNT_SCREEN_KEY-SAKNR'    IT_UPLOAD-SAKNR.
    PERFORM BDC_SUB2 USING 'GLACCOUNT_SCREEN_KEY-BUKRS'    IT_UPLOAD-BUKRS.
    PERFORM BDC_SUB1 USING 'X' 'SAPLGL_ACCOUNT_MASTER_MAINTAIN' '2001'.
    PERFORM BDC_SUB2 USING 'BDC_OKCODE' '=2102_GROUP'.
    PERFORM BDC_SUB2 USING 'BDC_CURSOR' 'GLACCOUNT_SCREEN_COA-KTOKS'.
    PERFORM BDC_SUB2 USING 'GLACCOUNT_SCREEN_COA-KTOKS'    IT_UPLOAD-KTOKS.
    PERFORM BDC_SUB2 USING 'GLACCOUNT_SCREEN_COA-XPLACCT'  IT_UPLOAD-XPLACCT.
    PERFORM BDC_SUB1 USING 'X' 'SAPLGL_ACCOUNT_MASTER_MAINTAIN' '2001'.
    PERFORM BDC_SUB2 USING 'BDC_OKCODE' '=2102_BS_PL'.
    PERFORM BDC_SUB2 USING 'GLACCOUNT_SCREEN_COA-GVTYP'    IT_UPLOAD-GVTYP.
    PERFORM BDC_SUB2 USING 'GLACCOUNT_SCREEN_COA-XBILK'    IT_UPLOAD-XBILK.
    PERFORM BDC_SUB1 USING 'X' 'SAPLGL_ACCOUNT_MASTER_MAINTAIN' '2001'.
    PERFORM BDC_SUB2 USING 'BDC_CURSOR' 'GLACCOUNT_SCREEN_COA-TXT20_ML'.
    PERFORM BDC_SUB2 USING 'GLACCOUNT_SCREEN_COA-TXT20_ML' IT_UPLOAD-SHORT.
    PERFORM BDC_SUB2 USING 'GLACCOUNT_SCREEN_COA-TXT50_ML' IT_UPLOAD-LONG.
    PERFORM BDC_SUB1 USING 'X' 'SAPLGL_ACCOUNT_MASTER_MAINTAIN' '2001'.
    PERFORM BDC_SUB2 USING  'BDC_OKCODE' '=TAB02'.
    PERFORM BDC_SUB2 USING 'GLACCOUNT_SCREEN_CCODE-WAERS'  IT_UPLOAD-WAERS.
    PERFORM BDC_SUB2 USING 'GLACCOUNT_SCREEN_CCODE-XSALH'  IT_UPLOAD-XSALH.
    PERFORM BDC_SUB2 USING 'GLACCOUNT_SCREEN_CCODE-MITKZ'  IT_UPLOAD-MITKZ.
    PERFORM BDC_SUB2 USING 'GLACCOUNT_SCREEN_CCODE-XOPVW'  IT_UPLOAD-XOPVW.
    PERFORM BDC_SUB2 USING 'GLACCOUNT_SCREEN_CCODE-XKRES'  IT_UPLOAD-XKRES.
    PERFORM BDC_SUB2 USING 'GLACCOUNT_SCREEN_CCODE-ZUAWA'  IT_UPLOAD-ZUAWA.
    PERFORM BDC_SUB1 USING 'X' 'SAPLGL_ACCOUNT_MASTER_MAINTAIN' '2001'.
    PERFORM BDC_SUB2 USING 'BDC_OKCODE' '=TAB03'.
    PERFORM BDC_SUB2 USING 'GLACCOUNT_SCREEN_CCODE-FSTAG' IT_UPLOAD-FSTAG.
    PERFORM BDC_SUB2 USING 'GLACCOUNT_SCREEN_CCODE-XGKON' IT_UPLOAD-XGKON.
    CALL FUNCTION 'BDC_INSERT'
      EXPORTING
        TCODE                  = 'FS00'
       TABLES
         dynprotab              = IT_BDCDATA.
    endloop.
    endform.                    " BDC_POPULATE
    *&      Form  BDC_CLOSE
    FORM FOR CLOSING BDC_GROUP
    form BDC_CLOSE .
    CALL FUNCTION 'BDC_CLOSE_GROUP'.
    endform.                    " BDC_CLOSE
    *&      Form  BDC_SUB1
       FORM FOR BDCDATA.
    form BDC_SUB1   USING  A  B  C.
    CLEAR  IT_BDCDATA.
    IT_BDCDATA-DYNBEGIN = A.
    IT_BDCDATA-PROGRAM =  B.
    IT_BDCDATA-DYNPRO =   C.
    APPEND IT_BDCDATA.
    endform.                    " BDC_SUB1
    *&      Form  BDC_SUB2
          text
    form BDC_SUB2   USING  A  B.
    CLEAR  IT_BDCDATA.
      IT_BDCDATA-FNAM = A.
      IT_BDCDATA-FVAL = B.
      APPEND IT_BDCDATA.
    endform.                    " BDC_SUB2
    Points will be  rewarded.
    Thanks in advance.
    Francis.

    Hi,
    Once the program is executed..It will a BDC session..
    THen you have to use the transaction SM35..To process the BDC session..
    Thanks,
    Naren

  • Syntax problem with BDC perform

    Dear Friends,
    small problem in BDC Perform syntax but I am not getting how to do this..
    I have writen the code like this in my BDC byt its throughing the error...Here I want to do the validation on each and every field. I mean If that field values are empty i don't want to change the SAP field value.
    my code is like this.
        PERFORM dynpro USING:
        'X' 'SAPLMGMM' '0080'.
        IF NOT p_int_matl-werks IS INITIAL.
        ' ' 'RMMG1-WERKS' p_int_matl-werks.
        ENDIF.
        IF NOT p_int_matl-werks IS INITIAL.
        ' ' 'RMMG1-LGORT' p_int_matl-lgort.
          ENDIF.
        ' ' 'BDC_OKCODE' '/00'.
    pls give me exact code how to do this...
    Thanks
    Sridhar

    Hi sridher,
    1. this kind of syntax ie. IF will give error.
    2. If ur requirement is : blank value should not be put in bdc,
    3. then one way is to change / write the logic
        inside the form itself.
    4. ie. inside the routine/form DYNPRO.
    5. So, it will be then general for all performs.
    regards,
    amit m.

  • Problem in BDC while going back to previous screen in FB60

    Dear All,
        I have a problem in BDC my BDc stops when it tries to go back to previous screen then manually i have to click on the back button then it gets posted. the previous screen recording for FB60 is
    SAPMSSY0     0120     X                                                                               
    BDC_CURSOR     16/32
                                                                BDC_OKCODE     =&IC1
    When we do back by clicking on the screen is not getting recorded. Kindly suggest a suitable Solution for the same.
    Reagrds

    FB60 is an EnjoySAP transaction and not well suited to batch input (look for notes). Better to use a BAPI or batch input on FB01.
    Rob

  • Problem in BDC for F-32

    Hi Experts,
    I m facing a problem while doing the BDC for F-32, i want to make Normal OI check field as Uncheck  through BDC , while recording i have uncheck the check box and the field value appears to be ' ' in the recording , but when i process the BDC the field remains CHECKED by Default.
    pls help how can i unchecked the field.
    I have tried it by puting the value of the field 'X' also but still it remains checked .
    pls help me how can i UNCHECKED the Normal OI  screen field .

    Hi
    The output format of an amonut is managed by the currency, you shouldn't have any particular problem,
    In BDC program the field to be used to transfer the amount has to be char, so probably the easier solution is to write it into the bdc field in according to the currency:
    WRITE <AMOUNT> CURRENCY <CUURENCY> TO <BDC FIELD>.
    Max

  • Problem in BDC for F-02 -- Currency Problem

    Dear Experts,
    I have written a BDC for F-02 to upload the opening balances of vendors.
    Problem is , this BDC is for Libya country,  where decimal places is 3.
    Now when i run my BDC, if the amount is  22.54, it will upload it as 22.540, which is ok, but if the amount is 22.543, it upload it as 22.540 instead of 22.543.
    can one provide some guidance in this....
    Regards,
    Maverick

    Hi
    The output format of an amonut is managed by the currency, you shouldn't have any particular problem,
    In BDC program the field to be used to transfer the amount has to be char, so probably the easier solution is to write it into the bdc field in according to the currency:
    WRITE <AMOUNT> CURRENCY <CUURENCY> TO <BDC FIELD>.
    Max

  • Problem from BDC

    Hi all,
    1) i got a problem in BDC i.e suppose i have a flat file that is having 10 records
         but my problem is i want to update first 8 records only using Call transaction
        so where will do this and what is the logic for this . for both cases i.e Call      transaction & session methods?
    good rewards for replay,
    regards,
    sudharsan

    Once you upload the file into an internl table,
    delete the last two rows from the internal table.
    call function GUI_UPLOAD
    describe table itab lines v_lines.
    delete table itab index v_lines.
    v_lines = v_lines - 1.
    delete table itab index v_lines.
    then do your call transaction or BDC session method.
    Regards,
    Ravi

  • PROBLEM IN BDC F-04 --NO PAGE DOWN

    HI
    Experts,
    Getting problem in bdc for f-04 , The data is split on basis of
    business area (gsber) , and for one business area there are more
    then 2000 document number, till the screen of doc.no the data is
    coming into fields but i have to put all the doc number for that
    b.area. And only i can enter 16 doc.no as there is no page down i
    have to enter so that it takes another 16 doc.no .
    but i tried it by at new command and then i tried it by on chage of
    but it picks only first doc.no its not piclking all doc.no.
    LOOP AT i_final.
        MOVE i_final TO wa_itab.
        ON CHANGE OF wa_itab-gsber  .
          CLEAR w_count.
          PERFORM bdc_dynpro      USING 'SAPMF05A' '0122'.
          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        'RF05A-NEWKO'.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        '/00'.
          PERFORM bdc_field       USING 'BKPF-BLDAT'
                                         wa_itab-bldat .                       "'27.07.2006'.
          PERFORM bdc_field       USING 'BKPF-BLART'
                                         wa_itab-blart.                        "'SA'.
          PERFORM bdc_field       USING 'BKPF-BUKRS'
                                         wa_itab-bukrs.                         "'NPIL'.
          PERFORM bdc_field       USING 'BKPF-BUDAT'
                                         wa_itab-budat.                         "'27.07.2006'.
          PERFORM bdc_field       USING 'BKPF-WAERS'
                                         wa_itab-waers.                          "'INR'.
          PERFORM bdc_field       USING 'BKPF-XBLNR'
                                         wa_itab-xblnr.                         "'INR'.
          PERFORM bdc_field       USING 'BKPF-BKTXT'
                                        wa_itab-bktxt.                          "'INR'.
          PERFORM bdc_field       USING 'RF05A-XPOS1(04)'
                                         wa_itab-xpos1.
          PERFORM bdc_field       USING 'RF05A-NEWBS'
                                         wa_itab-newbs.         "'50'.
          PERFORM bdc_field       USING 'RF05A-NEWKO'
                                        wa_itab-newko.          "'9991010'.
          PERFORM bdc_dynpro      USING 'SAPMF05A' '0300'.
          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        'BSEG-WRBTR'.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        '=PA'.
          PERFORM bdc_field       USING 'BSEG-WRBTR'
                                        wa_itab-wrbtr.                            "'826532.58'.
          PERFORM bdc_dynpro      USING 'SAPLKACB' '0002'.
          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        'COBL-FIPOS'.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        '=ENTE'.
          PERFORM bdc_field       USING 'COBL-GSBER'
                                         wa_itab-gsber.         "'1101'.
          PERFORM bdc_field       USING 'COBL-PRCTR'
                                         wa_itab-prctr.         "'2000'.
          PERFORM bdc_dynpro      USING 'SAPMF05A' '0710'.
          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        'RF05A-XPOS1(03)'.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        '=PA'.
          PERFORM bdc_field       USING 'RF05A-AGKON'
                                         wa_itab-agkon.         "'2810200'.
          PERFORM bdc_field       USING 'RF05A-XPOS1(03)'
                                         'X'.
        ENDON.
        PERFORM bdc_dynpro      USING 'SAPMF05A' '0731'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'RF05A-SEL01(06)'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=PA'.
        w_count = w_count + 1.
        CONCATENATE 'RF05A-SEL01(' w_count ')' INTO w_bdc.
        PERFORM bdc_field       USING   w_bdc
                                        wa_itab-sel01.
        IF w_count >= 16.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        '/00'.
          w_count = 0.
        ENDIF.
       ENDON.
       AT END OF gsber.
    *IF W_FLAG = 'X'.
          PERFORM bdc_dynpro      USING 'SAPDF05X' '3100'.
          PERFORM bdc_field       USING 'BDC_OKCODE'
                                        '=BU'.
          PERFORM bdc_field       USING 'BDC_CURSOR'
                                        'RF05A-ABPOS'.
          PERFORM bdc_field       USING 'RF05A-ABPOS'
                                        '1'.
          PERFORM bdc_transaction USING 'F-04'.
       ENDAT. "At end of
    *ENDIF.
      ENDLOOP.
      PERFORM close_group.

    Iam doing a bdc for F-04 (post with clearing header date)
    i got a file in which the data is splited on business area wise,
    and when i enter the details on first screen
    with post key 40 and enter after entering the details here like
    busines area profit cenrter i have to click
    process open item .
    here i have to select the doc.no and enter acct no and again
    have to process the open item .. where exactly my problem is
    when i process it i will get ascreen in which
    the doc.no are
    from to
    and i can enter only 16 doc no here but where as there are more
    then 50 doc number for one businees area in file ..there is
    HOPE U GOT MY POINT NOW .
    REGARDS

  • What do I do when I create a pdf and it says fatal error, there is a problem with the background task

    What do I do when I create a pdf and it says fatal error, there is a problem with the background task

    see Adobe Community: File Crashing on Output - printing/PDF/other

  • Problem setting JComboBox background in Nimbus

    I am having a problem setting the background component of a JComboBox when using the Nimbus L&F. The call to JComboBox.setBackground() changes the background of both the content area and the button. I do not want the background color of the button to be changed. I reviewed a number of similar posts in the forums and found a suggested change that results in the button keeping its original background. The code for the suggested change is shown below:
    JComboBox bandComboBox;
    bandComboBox.setBackground(Color.YELLOW);
    // This next line of code changes the background color of the button back to its original value
    bandComboBox.getComponent(0).setBackground(UIManager.getColor("control"));
    This change did not work for the Nimbus L&F but it did work for the Metal L&F. I really need a solution for the Nimbus L&F. Any suggestions would be greatly appreciated.
    I am currently running java 1.6_u13.
    Thanks!
    Casey

    Except for the actual arrow, the combo box arrow button doesn't paint anything in Nimbus. The highlight, the border, and the gradient background of the arrow button are drawn by the combo box painter. Hence, when you set the background color on the combo box, it also affects the look of the arrow button.
    So I thought, what if I made the arrow button opaque? Well.. it does become its own color, but it essentially becomes a giant solid-color square appended to the end of the combo box. Not exactly what we were looking for.
    So then I thought that maybe we could use the "Nimbus.Overrides" feature to override the colors on the combo box. Turns out you can't do that. The feature doesn't apply to colors. To change the base colors, you would have to go through the UIManager, and in effect change colors for all the components. Plus, the JComboBox uses colors derived from the same core color - "nimbusBase" - to paint the background of the combo box and the arrow button. So if you change "nimbusBase" to yellow then the whole combo box is still effected (although the results admittedly look better then setBackground(Color.yellow) since the gradient effects are retained).
    Anyway, after fiddling around with some ideas, this is what I came up with.
    import javax.swing.*;
    import javax.swing.UIManager.LookAndFeelInfo;
    import java.awt.Color;
    import java.awt.Graphics;
    public class Test {
        public static void main(String[] args) throws Exception {
            SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    createAndShowGUI();
        public static void createAndShowGUI(){
            try {
                for (LookAndFeelInfo laf : UIManager.getInstalledLookAndFeels()) {
                    if ("Nimbus".equals(laf.getName())) {
                        UIManager.setLookAndFeel(laf.getClassName());
            } catch (Exception e) {
                e.printStackTrace();
            }finally {
                if(!("Nimbus".equals(UIManager.getLookAndFeel().getName()))) {
                    System.err.println("Could not find/install Nimbus LAF!");
                    System.exit(-1);
            SpecialNimbusComboBox specialBox = new SpecialNimbusComboBox(new String[] {
                "One","Two","Three"
            specialBox.boxColor ;     = Color.yellow;
            specialBox.arrowBoxColor = Color.red;
            JComboBox regularBox = new JComboBox(new String[] {
                "One","Two","Three"
            JFrame frame = new JFrame();
            frame.setLayout(new java.awt.FlowLayout());
            frame.add(specialBox);
            frame.add(regularBox);
            frame.setSize(250,150);
            frame.setLocationRelativeTo(null);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setVisible(true);
        public static class SpecialNimbusComboBox extends JComboBox{
            public Color boxColor;
            public Color arrowBoxColor;
            private boolean ignoreRepaint;
            public SpecialNimbusComboBox() {}
            public SpecialNimbusComboBox(ComboBoxModel aModel) {super(aModel);}
            public SpecialNimbusComboBox(Object[] items) {super(items);}
            @Override
            public void paintComponent(Graphics g) {
                ignoreRepaint = true;
                try {
                    java.awt.Rectangle b = getComponent(0).getBounds();
                    g.setClip(0, 0, getWidth() - b.width, getHeight());
                    setBackground(boxColor);
                    super.paintComponent(g);
                    g.setClip(b.x, b.y, b.width, b.height);
                    setBackground(arrowBoxColor);
                    super.paintComponent(g);
                } finally {
                    ignoreRepaint = false;
            @Override
            public void repaint() {
                if(!ignoreRepaint)
                    super.repaint();
    }

Maybe you are looking for