BDC FOR f-02 plz correct it

hi experts,
i am uploading xl data to F-02 using BDC.
see my code and correct me
THIS IS FLAT FILE.
DDAT        DTY CC     PDAT        REFF       CK  PK ACC G/LTY     AMOUNT   REFF         DUEDATE
01.04.2008 DR KAP  01.04.2008 MW/S6-06 INR 09 6000   A             10         MW/S6-06 01.04.2008
01.04.2008 DR KAP     01.04.2008 3489      INR 09 6000   A              20              1234         01.04.2008
01.04.2008 DR KAP     01.04.2008 3456      INR 09 6000    A             30         3456         01.04.2008
01.04.2008 DR KAP 01.04.2008   Upload      INR 11 6000                  60         upload         01.04.2008
*& Report  ZBDC_FI_GL_F42
REPORT  ZBDC_FI_GL_F42.
include bdcrecx1.
data : BEGIN OF wa_it,
      BLDAT TYPE STRING ,"document date
      BLART TYPE BKPF-BLART,"document type
      BUKRS TYPE BKPF-BUKRS ,"com code
      BUDAT TYPE STRING,"posting date
      XBLNR TYPE BKPF-XBLNR ,"reference
      WAERS TYPE BKPF-WAERS ,"currency key
      NEWBS TYPE RF05A-NEWBS ,"posting key for next line item
      NEWKO TYPE RF05A-NEWKO,"account
      NEWUM TYPE RF05A-NEWUM," g/l
      WRBTR TYPE STRING ," amount
      BARCOPY TYPE RF05A-BARCOPY, " referene docu
      ZFBDT TYPE STRING, "due-date
    END OF wa_it.
DATA : wa_item LIKE WA_IT.
DATA : it_item like STANDARD TABLE OF wa_item .
data : it_return like STANDARD TABLE OF ALSMEX_TABLINE,
       wa_return like ALSMEX_TABLINE,
       wa_returns like ALSMEX_TABLINE.
SELECTION-SCREEN BEGIN OF BLOCK b1.
PARAMETERS: p_file like RLGRAP-FILENAME OBLIGATORY.
SELECTION-SCREEN END OF BLOCK B1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
  CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
   EXPORTING
     PROGRAM_NAME        = SYST-CPROG
    DYNPRO_NUMBER       = SYST-DYNNR
    FIELD_NAME          = ' '
    STATIC              = ' '
    MASK                = ' '
    CHANGING
      FILE_NAME           = P_FILE.
  EXCEPTIONS
    MASK_TOO_LONG       = 1
    OTHERS              = 2
  IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.
  START-OF-SELECTION.
  CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
    EXPORTING
      FILENAME                      = p_file
      I_BEGIN_COL                   = 1
      I_BEGIN_ROW                   = 1
      I_END_COL                     = 12
      I_END_ROW                     = 488
    TABLES
      INTERN                        = it_return
  EXCEPTIONS
    INCONSISTENT_PARAMETERS       = 1
    UPLOAD_OLE                    = 2
    OTHERS                        = 3
  IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.
  if sy-SUBRC = 0 .
sort it_return by row col.
loop at it_return into wa_returns.
  wa_return = wa_returns.
  case wa_return-col.
  WHEN 1.
    wa_item-BLDAT = wa_return-value.
    when 2.
    wa_item-BLART = wa_return-value.
    when 3.
    wa_item-BUKRS = wa_return-value.
    when 4.
    wa_item-BUDAT = wa_return-value.
    WHEN 5.
    wa_item-xblnr = wa_return-value.
    when 6.
    wa_item-WAERS = wa_return-value.
    when 7.
    wa_item-NEWBS = wa_return-value.
    when 8 .
    wa_item-newko = wa_return-value.
    WHEN 9.
    wa_item-newum = wa_return-value.
    when 10.
    wa_item-WRBTR = wa_return-value.
    WHEN 11.
    wa_item-barcopy = wa_return-value.
    when 12.
    wa_item-zfbdt = wa_return-value.
  endcase.
at END OF row.
APPEND wa_item to it_item.
  clear : wa_item , wa_return.
endat.
ENDLOOP.
endif.
perform open_group.
LOOP AT it_item INTO wa_item .
if SY-TABIX = 1  .
  perform 1 .
ELSEIF SY-TABIX > 1 and  SY-TABIX < 4.
  PERFORM 2 .
ELSEIF SY-TABIX = 4 .
PERFORM 3 .
endif.
perform bdc_transaction using 'F-02'.
ENDLOOP.
perform close_group.
form 1.
perform bdc_dynpro      using 'SAPMF05A' '0100'.
perform bdc_field       using 'BDC_CURSOR'
                              'BKPF-XBLNR'.
perform bdc_field       using 'BDC_OKCODE'
                              '/00'.
perform bdc_field       using 'BKPF-BLDAT'
                              wa_item-bldat.
perform bdc_field       using 'BKPF-BLART'
                              wa_item-blart.
perform bdc_field       using 'BKPF-BUKRS'
                              wa_item-bukrs.
perform bdc_field       using 'BKPF-BUDAT'
                              wa_item-budat.
perform bdc_field       using 'BKPF-WAERS'
                              wa_item-WAERS.
perform bdc_field       using 'BKPF-XBLNR'
                              wa_item-XBLNR.
perform bdc_field       using 'FS006-DOCID'
perform bdc_field       using 'RF05A-BARCOPY'
                              wa_item-barcopy.
perform bdc_field       using 'RF05A-NEWBS'
                              wa_item-newbs.
perform bdc_field       using 'RF05A-NEWKO'
                              wa_item-NEWko.
perform bdc_field       using 'RF05A-NEWUM'
                              wa_item-newum.
perform bdc_dynpro      using 'SAPMF05A' '0304'.
perform bdc_field       using 'BDC_CURSOR'
                              'BSEG-ZFBDT'.
perform bdc_field       using 'BDC_OKCODE'
                              '=BU'.
perform bdc_field       using 'BSEG-WRBTR'
                              wa_item-WRBTR.
perform bdc_field       using 'BSEG-ZFBDT'
                              wa_item-zfbdt.
ENDFORM.
form 2.
perform bdc_dynpro      using 'SAPMF05A' '0700'.
perform bdc_field       using 'BDC_CURSOR'
                              'BKPF-XBLNR'.
perform bdc_field       using 'BDC_OKCODE'
                              '/00'.
perform bdc_field       using 'BKPF-XBLNR'
                              wa_item-xblnr.
perform bdc_field       using 'RF05A-NEWBS'
                              wa_item-NEWBS.
perform bdc_field       using 'RF05A-NEWKO'
                              wa_item-newko.
perform bdc_field       using 'RF05A-NEWUM'
                              wa_item-newum.
perform bdc_dynpro      using 'SAPMF05A' '0304'.
perform bdc_field       using 'BDC_CURSOR'
                              'BSEG-ZFBDT'.
perform bdc_field       using 'BDC_OKCODE'
                              'BU'.
perform bdc_field       using 'BSEG-WRBTR'
                              wa_item-WRBTR.
perform bdc_field       using 'BSEG-ZFBDT'
                              wa_item-ZFBDT.
ENDFORM.
form 3.
perform bdc_dynpro      using 'SAPMF05A' '0700'.
perform bdc_field       using 'BDC_CURSOR'
                              'BKPF-XBLNR'.
perform bdc_field       using 'BDC_OKCODE'
                              '/00'.
perform bdc_field       using 'BKPF-XBLNR'
                              wa_item-xblnr.
perform bdc_field       using 'RF05A-NEWBS'
                              wa_item-NEWBS.
perform bdc_field       using 'RF05A-NEWKO'
                              wa_item-newko.
perform bdc_dynpro      using 'SAPMF05A' '0301'.
perform bdc_field       using 'BDC_CURSOR'
                              'BSEG-WRBTR'.
perform bdc_field       using 'BDC_OKCODE'
                              '=BU'.
perform bdc_field       using 'BSEG-WRBTR'
                              wa_item-wrbtr.
perform bdc_field       using 'BSEG-ZFBDT'
                              wa_item-ZFBDT.
ENDFORM.

Hi Kumar
Check this link for :
https://www.sdn.sap.com/irj/scn/wiki?path=/display/snippets/bdc%252bon%252bf-02
Regards
Neha

Similar Messages

  • BDC for MM01(Material creation)

    Hello Please anybody send me code for creating materials with reference to reference material and plant in sselection screen in version ECC 6.0?
    My selection screen will be::
    Reference material:                                                       Plant:

    Plz User <b>BAPI_MATERIAL_SAVEDATA</b>
    Why So :
    you will never get it to work correctly in all cases every time for all material types, it is just much easier to work with an API that is not screen dependent. Then you don't have to worry about all of the exceptions when dealing with certain material types, and such. For example, say you have a material which you want to update the po text, and you did your recording for another material, which didn't have a specific view, so now when doing BDC for this material, the screen where you select the view you want to process, may be in a different place in the table control, see what I'm getting at? Its just very much easier to work with BAPIs and is suggest to use BAPI over BDC whenever possible.
    Also still u want to go for it, check this code :
    REPORT Y730_BDC5 .
    *HANDLING TABLE CONTROL IN BDC
    DATA : BEGIN OF IT_DUMMY OCCURS 0,
    DUMMY(100) TYPE C,
    END OF IT_DUMMY.
    DATA : BEGIN OF IT_XK01 OCCURS 0,
    LIFNR(10) TYPE C,
    BUKRS(4) TYPE C,
    EKORG(4) TYPE C,
    KTOKK(4) TYPE C,
    NAME1(30) TYPE C,
    SORTL(10) TYPE C,
    LAND1(3) TYPE C,
    SPRAS(2) TYPE C,
    AKONT(6) TYPE C,
    FDGRV(2) TYPE C,
    WAERS(3) TYPE C,
    END OF IT_XK01,
    BEGIN OF IT_BANK OCCURS 0,
    BANKS(3) TYPE C,
    BANKL(10) TYPE C,
    BANKN(10) TYPE C,
    KOINH(30) TYPE C,
    LIFNR(10) TYPE C,
    END OF IT_BANK.
    DATA : IT_BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE,
    IT_BDCMSGCOLL LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
    CALL FUNCTION 'WS_UPLOAD'
    EXPORTING
    FILENAME = 'C:\VENDOR.TXT'
    FILETYPE = 'ASC'
    TABLES
    DATA_TAB = IT_DUMMY.
    LOOP AT IT_DUMMY.
    IF IT_DUMMY-DUMMY+0(2) = '11'.
    IT_XK01-LIFNR = IT_DUMMY-DUMMY+2(10).
    IT_XK01-BUKRS = IT_DUMMY-DUMMY+12(4).
    IT_XK01-EKORG = IT_DUMMY-DUMMY+16(4).
    IT_XK01-KTOKK = IT_DUMMY-DUMMY+20(4).
    IT_XK01-NAME1 = IT_DUMMY-DUMMY+24(30).
    IT_XK01-SORTL = IT_DUMMY-DUMMY+54(10).
    IT_XK01-LAND1 = IT_DUMMY-DUMMY+64(3).
    IT_XK01-SPRAS = IT_DUMMY-DUMMY+67(2).
    IT_XK01-AKONT = IT_DUMMY-DUMMY+69(6).
    IT_XK01-FDGRV = IT_DUMMY-DUMMY+75(2).
    IT_XK01-WAERS = IT_DUMMY-DUMMY+77(3).
    APPEND IT_XK01.
    ELSE.
    IT_BANK-BANKS = IT_DUMMY-DUMMY+2(3).
    IT_BANK-BANKL = IT_DUMMY-DUMMY+5(10).
    IT_BANK-BANKN = IT_DUMMY-DUMMY+15(10).
    IT_BANK-KOINH = IT_DUMMY-DUMMY+25(30).
    IT_BANK-LIFNR = IT_DUMMY-DUMMY+55(10).
    APPEND IT_BANK.
    ENDIF.
    ENDLOOP.
    LOOP AT IT_XK01.
    REFRESH IT_BDCDATA.
    perform bdc_dynpro using 'SAPMF02K' '0100'.
    perform bdc_field using 'BDC_CURSOR'
    'RF02K-REF_LIFNR'.
    perform bdc_field using 'BDC_OKCODE'
    '/00'.
    perform bdc_field using 'RF02K-LIFNR'
    IT_XK01-LIFNR.
    perform bdc_field using 'RF02K-BUKRS'
    IT_XK01-BUKRS.
    perform bdc_field using 'RF02K-EKORG'
    IT_XK01-EKORG.
    perform bdc_field using 'RF02K-KTOKK'
    IT_XK01-KTOKK.
    perform bdc_dynpro using 'SAPMF02K' '0110'.
    perform bdc_field using 'BDC_CURSOR'
    'LFA1-TELX1'.
    perform bdc_field using 'BDC_OKCODE'
    '/00'.
    perform bdc_field using 'LFA1-NAME1'
    IT_XK01-NAME1.
    perform bdc_field using 'LFA1-SORTL'
    IT_XK01-SORTL.
    perform bdc_field using 'LFA1-LAND1'
    IT_XK01-LAND1.
    perform bdc_field using 'LFA1-SPRAS'
    IT_XK01-SPRAS.
    perform bdc_dynpro using 'SAPMF02K' '0120'.
    perform bdc_field using 'BDC_CURSOR'
    'LFA1-KUNNR'.
    perform bdc_field using 'BDC_OKCODE'
    '/00'.
    perform bdc_dynpro using 'SAPMF02K' '0130'.
    perform bdc_field using 'BDC_CURSOR'
    'LFBK-KOINH(02)'.
    perform bdc_field using 'BDC_OKCODE'
    '=ENTR'.
    DATA : FNAM(20) TYPE C,
    IDX TYPE C.
    MOVE 1 TO IDX.
    LOOP AT IT_BANK WHERE LIFNR = IT_XK01-LIFNR.
    CONCATENATE 'LFBK-BANKS(' IDX ')' INTO FNAM.
    perform bdc_field using FNAM
    IT_BANK-BANKS.
    CONCATENATE 'LFBK-BANKL(' IDX ')' INTO FNAM.
    perform bdc_field using FNAM
    IT_BANK-BANKL.
    CONCATENATE 'LFBK-BANKN(' IDX ')' INTO FNAM.
    perform bdc_field using FNAM
    IT_BANK-BANKN.
    CONCATENATE 'LFBK-KOINH(' IDX ')' INTO FNAM.
    perform bdc_field using FNAM
    IT_BANK-KOINH.
    IDX = IDX + 1.
    ENDLOOP.
    perform bdc_dynpro using 'SAPMF02K' '0130'.
    perform bdc_field using 'BDC_CURSOR'
    'LFBK-BANKS(01)'.
    perform bdc_field using 'BDC_OKCODE'
    '=ENTR'.
    perform bdc_dynpro using 'SAPMF02K' '0210'.
    perform bdc_field using 'BDC_CURSOR'
    'LFB1-FDGRV'.
    perform bdc_field using 'BDC_OKCODE'
    '/00'.
    perform bdc_field using 'LFB1-AKONT'
    IT_XK01-AKONT.
    perform bdc_field using 'LFB1-FDGRV'
    IT_XK01-FDGRV.
    perform bdc_dynpro using 'SAPMF02K' '0215'.
    perform bdc_field using 'BDC_CURSOR'
    'LFB1-ZTERM'.
    perform bdc_field using 'BDC_OKCODE'
    '/00'.
    perform bdc_dynpro using 'SAPMF02K' '0220'.
    perform bdc_field using 'BDC_CURSOR'
    'LFB5-MAHNA'.
    perform bdc_field using 'BDC_OKCODE'
    '/00'.
    perform bdc_dynpro using 'SAPMF02K' '0310'.
    perform bdc_field using 'BDC_CURSOR'
    'LFM1-WAERS'.
    perform bdc_field using 'BDC_OKCODE'
    '/00'.
    perform bdc_field using 'LFM1-WAERS'
    IT_XK01-WAERS.
    perform bdc_dynpro using 'SAPMF02K' '0320'.
    perform bdc_field using 'BDC_CURSOR'
    'WYT3-PARVW(01)'.
    perform bdc_field using 'BDC_OKCODE'
    '=ENTR'.
    perform bdc_dynpro using 'SAPLSPO1' '0300'.
    perform bdc_field using 'BDC_OKCODE'
    '=YES'.
    CALL TRANSACTION 'XK01' USING IT_BDCDATA
    MODE 'A'
    UPDATE 'S'
    MESSAGES INTO IT_BDCMSGCOLL.
    ENDLOOP.
    FORM BDC_DYNPRO USING PROG SCR.
    CLEAR IT_BDCDATA.
    IT_BDCDATA-PROGRAM = PROG.
    IT_BDCDATA-DYNPRO = SCR.
    IT_BDCDATA-DYNBEGIN = 'X'.
    APPEND IT_BDCDATA.
    ENDFORM.
    FORM BDC_FIELD USING FNAM FVAL.
    CLEAR IT_BDCDATA.
    IT_BDCDATA-FNAM = FNAM.
    IT_BDCDATA-FVAL = FVAL.
    APPEND IT_BDCDATA.
    ENDFORM.
    All things r available in SDN, please search.
    Reward points if useful.
    Thanks
    vinsee

  • BDC for order balance

    We are having a procedure in our company where we balance the production order qty (target qty =delivered qty)
    currently we are having a LSMW for that purpose,but this is done centrally by SAP Team and here lies the problem.
    You can Imagine orders from 13 plants come to one station for this purpose.
    1)    We are having a BDC for bom uploading zcs01 created from bdc ,where user calls the transaction zcs01,and the required file is uploaded for creation by giving the path for it...
    Similar to the above example is it possible to create a similar bdc and tcode,where user at plant level can easily operate the production order to balance the qty....
    2)    Is this possible from ourside without much help from ABAPer,since we are able to create  lsmw,recordings through shdb...
    I once tried to do so thru shdb,recording was created,I also generate a program .but while executing it I am confused how to show the destination file where I've the data to be uploaded...
    Plz help...
    Correct me if I am getting wrong...
    Rahul

    THANKS FOR YOUR INPUT,
    WE ARE QUITE AWARE OF LSMW WORKING,BUT CANT GIVE AUTHORITY TO PLANT USERS TO LSMW,HENCE WE AT CENTRAL ARE MAINTAING ALL MASTER DATA AND ALSO THE PROCEDURE OF BALANCING ORDER....
    CAN YOU PLEASE TELL ME HOW THIS BOM UPLOADING  BDC IS CREATED?
    WORKING:- WE JUST MAINTAIN ALL THE FIELDS RELATED TO BOM IN AN EXCEL FILE AND THEN UPLOAD IT TO DESIRED DESTINATION,THEN WE CALL TRANSACTION ZCS01 AND GIVE THE REQUIRED DESTINATION OF FILE WE WANT TO UPLOAD
    AFTER EXECUTING THE REQUIRED BOM ARE BEING CREATED.
                      I BEING A FUNCTIONAL GUY ,NOT HAVING THE REQ KNOWLEDGE...
    PLEASE THROW SOME LIGHT ON IT.....

  • User Exit and BDC for ME22N

    Hello All,
    A code has been written in the User exit for Tcode ME22N, Which sets the indicator on PO line item. This has been done by modifying the standard itab POT by using field symbols, because the fields to be modified are shown in display mode in the tcode ME22N and cannot be done in BDC. See the below code in user exit ZXM06U43.
    DATA char(50) VALUE '(SAPLMEPO)POT[]'.
    CLEAR wa_ind.
        FIELD-SYMBOLS <f1> TYPE ANY.
    Move memory of internal table POT to field symbol f1.
        ASSIGN (char) TO <f1>.
    Move content of f1 to internal table i_ind
        i_ind[] = <f1> .
        LOOP AT i_ind INTO wa_ind.
          IF wa_ind-pstyp = '9'.            " Service PO - item category
    IF PO Line item has History per Purchasing Document as 'D'
    Set indicators on, for the line item.
            CLEAR v_cnt.
            SELECT COUNT( * ) INTO v_cnt FROM ent5100
                                         WHERE ebeln = wa_ind-ebeln
                                           AND ebelp = wa_ind-ebelp
                                           AND bewtp = 'D'.
            IF sy-subrc = 0.
              wa_ind-wepos = 'X'.            " Set Goods Receipt Indicator
              wa_ind-webre = 'X'.            " Set GR-based IV Indicator
              wa_ind-lebre = 'X'.            " Set Srv-based IV Indicator
            ELSE.
    *End of addition SAP-20070910104025 - SL36 - D01K963369
              wa_ind-wepos = ' '.            " Clear Goods Receipt Indicator
              wa_ind-webre = ' '.            " Clear GR-based IV Indicator
              wa_ind-lebre = ' '.            " Clear Srv-based IV Indicator
              wa_ind-xersy = ' '.            " Clear ERS Indicator
            ENDIF.                                           
            MODIFY i_ind FROM wa_ind INDEX sy-tabix.
          ENDIF.
        ENDLOOP.
        <f1> = i_ind[].
      ENDIF.          
    ENDIF.
    This code is in production and has been working fine.
    The requirnment is now to make this indicator work for all the Purchase order before this code has been written in the Exit. For this my functional suggests that to write a separate program using BDC for PO change and jus add a period/dot  in the short text and save it. The code has been written, the user exit and the above code is getting triggrred values are updated in internal table correctly.
    However the flags was not set or cleared when seen in the tcode ME22N . This works fine if the tcode me22n is run directly and not working in BDC.
    I have tried with ME22 without enjoy transaction in BDC changing the POT Program to SAPMM06E. It does not work.
    Please help me as why it is not uodating in the table when using BDC.
    Thanks in Advance.
    Senthil Kumar

    Hi All,
    Any luck on this??
    Thanks

  • BDC For T-Code F-02

    Dear Friends,
    Do anybody has the code for BDC for Transaction Code F-02.
    If anybody has plz send me.
    Thanks & Reg,
    Nishant

    try this:
    REPORT zfir_f02
           NO STANDARD PAGE HEADING LINE-SIZE 255.
    INCLUDE bdcrecx1.
    TYPES : BEGIN OF tp_flatfile,
            bldat(10),
            doctyp(2),
            comp(4),
            postdate(10),
            period(2),
            currency(5),
            reference(16),
            htext(25),
            postkey(2),
            account(17),
            amount(16),
            profit(10),
            assign(18),
            text(50),
            busarea(4),
            cost(10),
            bline(10),
            base(16),
            postkey2(2),
            account2(17),
            amount2(16),
            profit2(10),
            assign2(18),
            text2(50),
            busarea2(4),
            END OF tp_flatfile.
    DATA : t_flatfile TYPE TABLE OF tp_flatfile WITH HEADER LINE.
    DATA : g_file TYPE string.
    CLASS cl_abap_char_utilities DEFINITION LOAD.
    CONSTANTS:con_tab  TYPE c VALUE cl_abap_char_utilities=>horizontal_tab.
    SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME.
    PARAMETERS :  p_file LIKE rlgrap-filename OBLIGATORY.
    SELECTION-SCREEN END OF BLOCK blk1.
    *C-- Selection Screen VALUE-REQUEST FOR File path
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
      CALL FUNCTION 'F4_FILENAME'
        EXPORTING
          program_name  = syst-cprog
          dynpro_number = syst-dynnr
        IMPORTING
          file_name     = p_file.
      g_file = p_file.
    *START-OF-SELECTION.
      CALL FUNCTION 'GUI_UPLOAD'
        EXPORTING
          filename                = g_file
          filetype                = 'ASC'
          has_field_separator     = 'X'
        TABLES
          data_tab                = t_flatfile
        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.
         loop at t_flatfile.
         write:/ t_flatfile-doctyp,t_flatfile-amount.
         endloop.
    START-OF-SELECTION.
      PERFORM open_group.
      LOOP AT t_flatfile.
        PERFORM bdc_dynpro      USING 'SAPMF05A' '0100'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'RF05A-NEWKO'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM bdc_field       USING 'BKPF-BLDAT'
                                      t_flatfile-bldat.
        PERFORM bdc_field       USING 'BKPF-BLART'
                                      t_flatfile-doctyp.
        PERFORM bdc_field       USING 'BKPF-BUKRS'
                                      t_flatfile-comp.
        PERFORM bdc_field       USING 'BKPF-BUDAT'
                                      t_flatfile-postdate.
        PERFORM bdc_field       USING 'BKPF-MONAT'
                                      t_flatfile-period.
        PERFORM bdc_field       USING 'BKPF-WAERS'
                                      t_flatfile-currency.
        PERFORM bdc_field       USING 'BKPF-XBLNR'
                                      t_flatfile-reference.
        PERFORM bdc_field       USING 'BKPF-BKTXT'
                                      t_flatfile-htext.
        PERFORM bdc_field       USING 'FS006-DOCID'
        PERFORM bdc_field       USING 'RF05A-NEWBS'
                                      t_flatfile-postkey.
        PERFORM bdc_field       USING 'RF05A-NEWKO'
                                      t_flatfile-account.
        CASE t_flatfile-postkey.
          WHEN '40' OR '50'.
            PERFORM bdc_dynpro      USING 'SAPMF05A' '0300'.
            PERFORM bdc_field       USING 'BDC_CURSOR'
                                          'BSEG-SGTXT'.
            PERFORM bdc_field       USING 'BDC_OKCODE'
                                          '/00'.
            PERFORM bdc_field       USING 'BSEG-WRBTR'
                                          t_flatfile-amount.
            PERFORM bdc_field       USING 'BSEG-ZUONR'
                                          t_flatfile-assign.
            PERFORM bdc_field       USING 'BSEG-SGTXT'
                                          t_flatfile-text.
        IF t_flatfile-postkey = '40' and t_flatfile-account > '300000'.
                PERFORM bdc_field       USING 'DKACB-FMORE'
                                          'X'.
        ENDIF.
            PERFORM bdc_dynpro      USING 'SAPLKACB' '0002'.
            PERFORM bdc_field       USING 'BDC_CURSOR'
                                          'COBL-KOSTL'.
            PERFORM bdc_field       USING 'BDC_OKCODE'
                                          '=ENTE'.
            PERFORM bdc_field       USING 'COBL-GSBER'
                                          t_flatfile-busarea.
           PERFORM bdc_field       USING 'BDC_OKCODE'
                                         '=ENTE'.
            PERFORM bdc_field       USING 'COBL-KOSTL'
                                          t_flatfile-cost.
            PERFORM bdc_field       USING 'COBL-PRCTR'
                                          t_flatfile-profit.
            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 'RF05A-NEWBS'
                                          t_flatfile-postkey2.
            PERFORM bdc_field       USING 'RF05A-NEWKO'
                                          t_flatfile-account2.
            PERFORM debit_credit.
          WHEN '21' OR '31' OR '24' OR '34'.
    **perform bdc_field       using 'RF05A-NEWBS'
                                 '31'.
    **perform bdc_field       using 'RF05A-NEWKO'
                                 '25000'.
         PERFORM bdc_field       USING 'DKACB-FMORE'
                                       'X'.
         PERFORM bdc_dynpro      USING 'SAPMF05A' '0302'.
         PERFORM bdc_field       USING 'BDC_CURSOR'
                                       'RF05A-NEWKO'.
         PERFORM bdc_field       USING 'BDC_OKCODE'
                                       '/00'.
         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'
                                       t_flatfile-busarea.
         PERFORM bdc_field       USING 'COBL-KOSTL'
                                       t_flatfile-cost.
            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'
                                          t_flatfile-amount.
            PERFORM bdc_field       USING 'BSEG-GSBER'
                                          t_flatfile-busarea.
            PERFORM bdc_field       USING 'BSEG-ZFBDT'
                                          t_flatfile-bline.
            PERFORM bdc_field       USING 'BSEG-SKFBT'
                                          t_flatfile-base.
            PERFORM bdc_field       USING 'BSEG-ZUONR'
                                          t_flatfile-assign.
            PERFORM bdc_field       USING 'BSEG-SGTXT'
                                          t_flatfile-text.
            PERFORM bdc_field       USING 'RF05A-NEWBS'
                                          t_flatfile-postkey2.
            PERFORM bdc_field       USING 'RF05A-NEWKO'
                                          t_flatfile-account2.
           PERFORM bdc_dynpro      USING 'SAPLFWTD' '0100'.
           PERFORM bdc_field       USING 'BDC_CURSOR'
                                         'WITH_ITEM-WT_WITHCD(01)'.
           PERFORM bdc_field       USING 'BDC_OKCODE'
                                         '=GO'.
            PERFORM debit_credit.
         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'
                                       t_flatfile-amount2.
         PERFORM bdc_field       USING 'BSEG-ZUONR'
                                       t_flatfile-assign2.
         PERFORM bdc_field       USING 'BSEG-SGTXT'
                                       t_flatfile-text2.
         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'
                                       t_flatfile-busarea2.
         PERFORM bdc_field       USING 'COBL-KOSTL'
                                       t_flatfile-cost.
         PERFORM bdc_field       USING 'COBL-PRCTR'
                                       t_flatfile-profit2.
         PERFORM bdc_dynpro      USING 'SAPMF05A' '0300'.
         PERFORM bdc_field       USING 'BDC_CURSOR'
                                       'RF05A-NEWKO'.
         PERFORM bdc_field       USING 'BDC_OKCODE'
                                       '=BU'.
         PERFORM bdc_dynpro      USING 'SAPLKACB' '0002'.
         PERFORM bdc_field       USING 'BDC_CURSOR'
                                       'COBL-GSBER'.
         PERFORM bdc_field       USING 'BDC_OKCODE'
                                       '=ENTE'.
          WHEN '01' OR '11' OR '04' OR '14' OR '07' OR '17'.
    *perform bdc_field       using 'RF05A-NEWBS'
                                 '11'.
    *perform bdc_field       using 'RF05A-NEWKO'
                                 '1'.
            PERFORM bdc_dynpro      USING 'SAPMF05A' '0301'.
            PERFORM bdc_field       USING 'BDC_CURSOR'
                                          'BSEG-SGTXT'.
            PERFORM bdc_field       USING 'BDC_OKCODE'
                                          '/00'.
            PERFORM bdc_field       USING 'BSEG-WRBTR'
                                          t_flatfile-amount.
            PERFORM bdc_field       USING 'BSEG-MWSKZ'
            PERFORM bdc_field       USING 'BSEG-GSBER'
                                          t_flatfile-busarea.
            IF NOT t_flatfile-bline IS INITIAL.
              PERFORM bdc_field       USING 'BSEG-ZFBDT'
                                            t_flatfile-bline.
            ENDIF.
            IF NOT t_flatfile-base IS INITIAL.
              PERFORM bdc_field       USING 'BSEG-SKFBT'
                                            t_flatfile-base.
            ENDIF.
            PERFORM bdc_field       USING 'BSEG-ZUONR'
                                          t_flatfile-assign.
            PERFORM bdc_field       USING 'BSEG-SGTXT'
                                          t_flatfile-text.
            PERFORM bdc_field       USING 'RF05A-NEWBS'
                                          t_flatfile-postkey2.
            PERFORM bdc_field       USING 'RF05A-NEWKO'
                                          t_flatfile-account2.
            PERFORM debit_credit.
        ENDCASE.
    *perform bdc_dynpro      using 'SAPMF05A' '0301'.
    *perform bdc_field       using 'BDC_CURSOR'
                                 'BSEG-WRBTR'.
    *perform bdc_field       using 'BDC_OKCODE'
                                 '=AB'.
    *perform bdc_field       using 'BSEG-WRBTR'
                                 '3,000.00'.
    *perform bdc_field       using 'BSEG-MWSKZ'
    *perform bdc_field       using 'BSEG-GSBER'
                                 'VUSO'.
    *perform bdc_field       using 'BSEG-ZFBDT'
                                 '19.07.2005'.
    *perform bdc_field       using 'BSEG-SKFBT'
                                 '3,000.00'.
    *perform bdc_field       using 'BSEG-ZUONR'
                                 'ASSIGN'.
    *perform bdc_field       using 'BSEG-SGTXT'
                                 'TEXT'.
    PERFORM bdc_dynpro      USING 'SAPMF05A' '0700'.
    PERFORM bdc_field       USING 'BDC_CURSOR'
                                   'RF05A-NEWBS'.
    PERFORM bdc_field       USING 'BDC_OKCODE'
                                   '=BU'.
    *perform bdc_field       using 'BKPF-XBLNR'
                                 'REF'.
    *perform bdc_field       using 'BKPF-BKTXT'
                                 'text'.
        PERFORM bdc_transaction USING 'F-02'.
      ENDLOOP.
      PERFORM close_group.
    *&      Form  debit_credit
          text
    FORM debit_credit.
    **SRINI
    IF t_flatfile-postkey = '40' OR t_flatfile-postkey = '50'.
      PERFORM bdc_dynpro      USING 'SAPLKACB' '0002'.
      PERFORM bdc_field       USING 'BDC_CURSOR'
                                    'COBL-GSBER'.
      PERFORM bdc_field       USING 'BDC_OKCODE'
                                    '=ENTE'.
    ENDIF.
    ***SRINI
      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'
                                    t_flatfile-amount2.
      PERFORM bdc_field       USING 'BSEG-ZUONR'
                                    t_flatfile-assign2.
      PERFORM bdc_field       USING 'BSEG-SGTXT'
                                    t_flatfile-text2.
      PERFORM bdc_dynpro      USING 'SAPLKACB' '0002'.
      PERFORM bdc_field       USING 'BDC_CURSOR'
                                   'COBL-KOSTL'.
                                    'COBL-GSBER'.
      PERFORM bdc_field       USING 'BDC_OKCODE'
                                    '=ENTE'.
      PERFORM bdc_field       USING 'COBL-GSBER'
                                    t_flatfile-busarea2.
         PERFORM bdc_field       USING 'COBL-KOSTL'
                                       t_flatfile-cost.
      PERFORM bdc_field       USING 'COBL-PRCTR'
                                    t_flatfile-profit2.
      PERFORM bdc_dynpro      USING 'SAPMF05A' '0300'.
      PERFORM bdc_field       USING 'BDC_CURSOR'
                                    'RF05A-NEWKO'.
      PERFORM bdc_field       USING 'BDC_OKCODE'
                                    '=BU'.
      PERFORM bdc_dynpro      USING 'SAPLKACB' '0002'.
      PERFORM bdc_field       USING 'BDC_CURSOR'
                                    'COBL-GSBER'.
      PERFORM bdc_field       USING 'BDC_OKCODE'
                                    '=ENTE'.
    ENDFORM.                    "debit_credit
    regards,
    Bikash

  • Problem in bdc for table control for line items

    Hi experts,
    I am runnig a bdc for ME52.
    i am just entering PR number, in the second screen i have got all the line items. I need to select these line item 10 and double click or hit enter, it takes me to screen 3, there im just checking a checkbox and saving.
    Again i need to select the line item 20 and double click or hit enter. again the same process.
    Again repeat for all the line items.
    But my problem is it is updating everytime for only line item  10. for line item 20 and others it say "no chnge in the data".
    I am pasting my code here. please check and revert me back .plz.
    DATA: w_output LIKE LINE OF i_output.
      REFRESH I_ITAB[].
      SELECT * FROM EBAN
               INTO TABLE i_itab
               WHERE banfn in s_banfn AND
                     bsart in s_bsart AND
                     bstyp in s_bstyp AND
                     matnr in s_matnr AND
                     werks in s_werks AND
                     lfdat in s_lfdat AND
                     pstyp in s_pstyp AND
                     knttp in s_knttp AND
                     estkz in s_estkz AND
                     loekz eq ' '.
      IF sy-subrc = 0.
        CLEAR: w_itab,
                 i_poitab[].
        SORT i_itab by banfn.
        LOOP AT i_itab INTO w_itab where menge GT eban-bsmng.
          IF p_close = 'X' AND p_rep = 'X'.
            IF w_itab-ebakz = 'X'.
              w_itab-ebakz = ' '.
              APPEND w_itab to i_poitab.
            ENDIF.
          ELSEIF p_open = 'X' AND p_rep = 'X'.
            IF w_itab-ebakz = ' '.
              w_itab-ebakz = 'X'.
              APPEND w_itab to i_poitab.
            ENDIF.
          ELSEIF p_close = 'X' AND p_repw = 'X'.
            IF w_itab-ebakz = ' '.
              APPEND w_itab to i_poitab.
            ENDIF.
          ELSEIF p_open = 'X' AND p_repw = 'X'.
            IF w_itab-ebakz = 'X'.
              APPEND w_itab to i_poitab.
            ENDIF.
          ENDIF.
        ENDLOOP.
      ENDIF.
      LOOP AT i_poitab into w_output.
        APPEND w_output to i_output.
       PERFORM CALL_BDC.
      endloop.
    IF p_rep = 'X'.
    PERFORM CALL_BDC.
    ENDIF.
    ENDFORM.                    " GET_DATA
    *&      Form  CALL_BDC
          text
    -->  p1        text
    <--  p2        text
    FORM CALL_BDC.
    DATA: seltab(5) TYPE N,
          seltab1(2) TYPE N,
          tempvar(30) TYPE N,
          cnt TYPE N.
    LOOP AT i_output.
    clear: seltab,
           seltab1.
    seltab = i_output-bnfpo.
    seltab1 = seltab+2(2).
    perform bdc_dynpro      using 'SAPMM06B' '0105'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'EBAN-BANFN'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '/00'.
    perform bdc_field       using 'EBAN-BANFN'
                                  i_output-banfn.
    perform bdc_dynpro      using 'SAPMM06B' '0106'.
    clear tempvar.
    *cnt = 1.
    concatenate 'EBAN-BNFPO(' seltab1 ')' into tempvar.
    perform bdc_field       using 'BDC_CURSOR'
                                 'EBAN-BNFPO(seltab1)'.
                                    tempvar.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=DETA'.
    perform bdc_field       using 'RM06B-BNFPO'
                                  i_output-bnfpo.
    perform bdc_field       using 'RM06B-TCSELFLAG(seltab1)'
                                 'X'.
    perform bdc_dynpro      using 'SAPMM06B' '0102'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'EBAN-EBAKZ'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=BU'.
    perform bdc_field       using 'EBAN-EBAKZ'
                                  i_output-ebakz.
    CALL TRANSACTION 'ME52' USING bdc_data MODE 'A'
                                   MESSAGES INTO i_bdcmsg.
        COMMIT WORK AND WAIT.
    ENDLOOP.
    ENDFORM.                    " CALL_BDC
    *&      Form  bdc_dynpro
          text
         -->P_0686   text
         -->P_0687   text
    FORM bdc_dynpro USING    program dynpro.
    CLEAR bdc_data.
      bdc_data-program  = program.
      bdc_data-dynpro   = dynpro.
      bdc_data-dynbegin = 'X'.
      APPEND bdc_data.
      CLEAR bdc_data.
    ENDFORM.   
    thanks,
    N

    Looks like table control logic is wrong -- do compare with below program...
    only table contril area
    REPORT ZPadmam
    NO STANDARD PAGE HEADING LINE-SIZE 255.
    DATA : BEGIN OF itab OCCURS 0,
    i1 TYPE i,
    lifnr LIKE rf02k-lifnr,
    bukrs LIKE rf02k-bukrs,
    ekorg LIKE rf02k-ekorg,
    ktokk LIKE rf02k-ktokk,
    anred LIKE lfa1-anred,
    name1 LIKE lfa1-name1,
    sortl LIKE lfa1-sortl,
    land1 LIKE lfa1-land1,
    akont LIKE lfb1-akont,
    fdgrv LIKE lfb1-fdgrv,
    waers LIKE lfm1-waers,
    END OF itab.
    DATA : BEGIN OF jtab OCCURS 0,
    j1 TYPE i,
    banks LIKE lfbk-banks,
    bankl LIKE lfbk-bankl,
    bankn LIKE lfbk-bankn,
    END OF jtab.
    DATA : cnt(4) TYPE n.
    DATA : fdt(20) TYPE c.
    DATA : c TYPE i.
    INCLUDE bdcrecx1.
    START-OF-SELECTION.
    CALL FUNCTION 'WS_UPLOAD'
    EXPORTING
    filename = 'C:\first1.txt'
    filetype = 'DAT'
    TABLES
    data_tab = itab.
    CALL FUNCTION 'WS_UPLOAD'
    EXPORTING
    filename = 'C:\second.txt'
    filetype = 'DAT'
    TABLES
    data_tab = jtab.
    LOOP AT itab.
    PERFORM bdc_dynpro USING 'SAPMF02K' '0100'.
    PERFORM bdc_field USING 'BDC_CURSOR'
    'RF02K-KTOKK'.
    PERFORM bdc_field USING 'BDC_OKCODE'
    '/00'.
    PERFORM bdc_field USING 'RF02K-LIFNR'
    itab-lifnr.
    PERFORM bdc_field USING 'RF02K-BUKRS'
    itab-bukrs.
    PERFORM bdc_field USING 'RF02K-EKORG'
    itab-ekorg.
    PERFORM bdc_field USING 'RF02K-KTOKK'
    itab-ktokk.
    PERFORM bdc_dynpro USING 'SAPMF02K' '0110'.
    PERFORM bdc_field USING 'BDC_CURSOR'
    'LFA1-LAND1'.
    PERFORM bdc_field USING 'BDC_OKCODE'
    '/00'.
    PERFORM bdc_field USING 'LFA1-ANRED'
    itab-anred.
    PERFORM bdc_field USING 'LFA1-NAME1'
    itab-name1.
    PERFORM bdc_field USING 'LFA1-SORTL'
    itab-sortl.
    PERFORM bdc_field USING 'LFA1-LAND1'
    itab-land1.
    PERFORM bdc_dynpro USING 'SAPMF02K' '0120'.
    PERFORM bdc_field USING 'BDC_CURSOR'
    'LFA1-KUNNR'.
    PERFORM bdc_field USING 'BDC_OKCODE'
    '/00'.
    PERFORM bdc_dynpro USING 'SAPMF02K' '0130'.
    PERFORM bdc_field USING 'BDC_CURSOR'
    'LFBK-BANKN(01)'.
    PERFORM bdc_field USING 'BDC_OKCODE'
    '=ENTR'.
    cnt = 0.
    LOOP AT jtab WHERE j1 = itab-i1.
    cnt = cnt + 1.
    CONCATENATE 'LFBK-BANKS(' cnt ')' INTO fdt.
    PERFORM bdc_field USING fdt jtab-banks.
    CONCATENATE 'LFBK-BANKL(' cnt ')' INTO fdt.
    PERFORM bdc_field USING fdt jtab-bankl.
    CONCATENATE 'LFBK-BANKN(' cnt ')' INTO fdt.
    PERFORM bdc_field USING fdt jtab-bankn.
    IF cnt = 5.
    cnt = 0.
    PERFORM bdc_dynpro USING 'SAPMF02K' '0130'.
    PERFORM bdc_field USING 'BDC_CURSOR'
    'LFBK-BANKS(01)'.
    PERFORM bdc_field USING 'BDC_OKCODE'
    '=P+'.
    PERFORM bdc_dynpro USING 'SAPMF02K' '0130'.
    PERFORM bdc_field USING 'BDC_CURSOR'
    'LFBK-BANKN(02)'.
    PERFORM bdc_field USING 'BDC_OKCODE'
    '=ENTR'.
    ENDIF.
    ENDLOOP.
    PERFORM bdc_dynpro USING 'SAPMF02K' '0130'.
    PERFORM bdc_field USING 'BDC_CURSOR'
    'LFBK-BANKS(01)'.
    PERFORM bdc_field USING 'BDC_OKCODE'
    '=ENTR'.
    PERFORM bdc_dynpro USING 'SAPMF02K' '0210'.
    PERFORM bdc_field USING 'BDC_CURSOR'
    'LFB1-FDGRV'.
    PERFORM bdc_field USING 'BDC_OKCODE'
    '/00'.
    PERFORM bdc_field USING 'LFB1-AKONT'
    itab-akont.
    PERFORM bdc_field USING 'LFB1-FDGRV'
    itab-fdgrv.
    PERFORM bdc_dynpro USING 'SAPMF02K' '0215'.
    PERFORM bdc_field USING 'BDC_CURSOR'
    'LFB1-ZTERM'.
    PERFORM bdc_field USING 'BDC_OKCODE'
    '/00'.
    PERFORM bdc_dynpro USING 'SAPMF02K' '0220'.
    PERFORM bdc_field USING 'BDC_CURSOR'
    'LFB5-MAHNA'.
    PERFORM bdc_field USING 'BDC_OKCODE'
    '/00'.
    PERFORM bdc_dynpro USING 'SAPMF02K' '0310'.
    PERFORM bdc_field USING 'BDC_CURSOR'
    'LFM1-WAERS'.
    PERFORM bdc_field USING 'BDC_OKCODE'
    '/00'.
    PERFORM bdc_field USING 'LFM1-WAERS'
    itab-waers.
    PERFORM bdc_dynpro USING 'SAPMF02K' '0320'.
    PERFORM bdc_field USING 'BDC_CURSOR'
    'RF02K-LIFNR'.
    PERFORM bdc_field USING 'BDC_OKCODE'
    '=ENTR'.
    PERFORM bdc_dynpro USING 'SAPLSPO1' '0300'.
    PERFORM bdc_field USING 'BDC_OKCODE'
    '=YES'.
    PERFORM bdc_transaction USING 'XK01'.
    ENDLOOP.
    PERFORM close_group.
    Thanks
    Seshu

  • Bdc for info records

    Hi all ,
    i have developed a bdc progoram for inforecords..
                  while uploading the data if there are two conditions or more for same vendor and material i am getting the correct one but netprice for first condition comes correctly . if the second condition comes netprice doesnot occurs..in the purchase org window which as to be generated according to the condition chosen.
    ex: netprice is 250 for cond POOO and second condition is given ROOO(discount) 10  through upload when i go back to purc org window netprice is 0 .
    here my program please suggest me ...
    REPORT ymm_info_bdcrec NO STANDARD PAGE HEADING LINE-SIZE 255.
    INCLUDE bdcrecx1."INCLUDE BDCRECX1.
    DATA : IDX(2) TYPE C VALUE '01'.
    data:  var type string.
    DATA: BEGIN OF lt_infrec OCCURS 0,
          lifnr(20) TYPE c,
          matnr(20) TYPE c,
          ekorg(5) TYPE c,
          werks(5) TYPE c,
          esokz(2) TYPE c,
          mahn1(5) TYPE c,
          urztp(10) TYPE c,
          mahn2(5) TYPE c,
          urznr(10) TYPE c,
          mahn3(5) TYPE c,
          urzdt(10) TYPE c,
          idnlf(10) TYPE c,
          urzla(10) TYPE c,
          ltsnr(10) TYPE c,
          regio(10) TYPE c,
          ltssf(10) TYPE c,
          urzzt(10) TYPE c,
          wglif(10) TYPE c,
          mfrnr(10) TYPE c,
          anzpu(10) TYPE c,
          punei(10) TYPE c,
          verkf(10) TYPE c,
          telf1(10) TYPE c,
          lifab(10) TYPE c,
          rueck(10) TYPE c,
          lifbi(10) TYPE c,
          kolif(10) TYPE c,
          relif(10) TYPE c,
          meins(10) TYPE c,
          umrez(10) TYPE c,
          umren(10) TYPE c,
          vabme(10) TYPE c,
          aplfz(10) TYPE c,
          untto(10) TYPE c,
          mtxno(10) TYPE c,
          ekgrp(10) TYPE c,
          uebto(10) TYPE c,
          kzabs(10) TYPE c,
          norbm(10) TYPE c,
          uebtk(10) TYPE c,
          bstae(10) TYPE c,
          minbm(10) TYPE c,
          webre(10) TYPE c,
          mwskz(10) TYPE c,
          mhdrz(10) TYPE c,
          iprkz(10) TYPE c,
          xersn(10) TYPE c,
          evers(10) TYPE c,
          exprf(10) TYPE c,
          bstma(10) TYPE c,
          rdprf(10) TYPE c,
          megru(10) TYPE c,
          netpr(10) TYPE c,
          waers(10) TYPE c,
          peinh(10) TYPE c,
          bprme(10) TYPE c,
          sktof(10) TYPE c,
          bpumz(10) TYPE c,
          bpumn(10) TYPE c,
          ekkol(10) TYPE c,
          meprf(10) TYPE c,
          inco1(10) TYPE c,
          inco2(10) TYPE c,
          datab(10) TYPE c,
          datbi(10) TYPE c,
          kschl(10) TYPE c,
          kbetr(10) TYPE c,
          konwa(10) TYPE c,
          kpein(10) TYPE c,
          kmein(10) TYPE c,
          end of lt_infrec.
      data: begin of lt_infrec1 occurs 0,
          lifnr(20) TYPE c,
          matnr(20) TYPE c,
          ekorg(5) TYPE c,
          werks(5) TYPE c,
          esokz(2) TYPE c,
          mahn1(5) TYPE c,
          urztp(10) TYPE c,
          mahn2(5) TYPE c,
          urznr(10) TYPE c,
          mahn3(5) TYPE c,
          urzdt(10) TYPE c,
          idnlf(10) TYPE c,
          urzla(10) TYPE c,
          ltsnr(10) TYPE c,
          regio(10) TYPE c,
          ltssf(10) TYPE c,
          urzzt(10) TYPE c,
          wglif(10) TYPE c,
          mfrnr(10) TYPE c,
          anzpu(10) TYPE c,
          punei(10) TYPE c,
          verkf(10) TYPE c,
          telf1(10) TYPE c,
          lifab(10) TYPE c,
          rueck(10) TYPE c,
          lifbi(10) TYPE c,
          kolif(10) TYPE c,
          relif(10) TYPE c,
          meins(10) TYPE c,
          umrez(10) TYPE c,
          umren(10) TYPE c,
          vabme(10) TYPE c,
          aplfz(10) TYPE c,
          untto(10) TYPE c,
          mtxno(10) TYPE c,
          ekgrp(10) TYPE c,
          uebto(10) TYPE c,
          kzabs(10) TYPE c,
          norbm(10) TYPE c,
          uebtk(10) TYPE c,
          bstae(10) TYPE c,
          minbm(10) TYPE c,
          webre(10) TYPE c,
          mwskz(10) TYPE c,
          mhdrz(10) TYPE c,
          iprkz(10) TYPE c,
          xersn(10) TYPE c,
          evers(10) TYPE c,
          exprf(10) TYPE c,
          bstma(10) TYPE c,
          rdprf(10) TYPE c,
          megru(10) TYPE c,
          netpr(10) TYPE c,
          waers(10) TYPE c,
          peinh(10) TYPE c,
          bprme(10) TYPE c,
          sktof(10) TYPE c,
          bpumz(10) TYPE c,
          bpumn(10) TYPE c,
          ekkol(10) TYPE c,
          meprf(10) TYPE c,
          inco1(10) TYPE c,
          inco2(10) TYPE c,
          datab(10) TYPE c,
          datbi(10) TYPE c,
          kschl(10) TYPE c,
          kbetr(10) TYPE c,
          konwa(10) TYPE c,
          kpein(10) TYPE c,
          kmein(10) TYPE c,
         END OF lt_infrec1.
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    PARAMETERS: p_file LIKE rlgrap-filename.
    SELECTION-SCREEN END OF BLOCK b1.
    DATA: lv_file TYPE string.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
      CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
        EXPORTING
          field_name = p_file
        CHANGING
          file_name  = p_file.
      START OF SELECTION
    START-OF-SELECTION.
      UPLOADING THE FILE
      IF p_file IS NOT INITIAL.
        lv_file = p_file.
        CALL FUNCTION 'UPLOAD'
         EXPORTING
      CODEPAGE                      = ' '
           filename                      = ' '
           filetype                      = 'DAT'
      ITEM                          = ' '
      FILEMASK_MASK                 = ' '
      FILEMASK_TEXT                 = ' '
      FILETYPE_NO_CHANGE            = ' '
      FILEMASK_ALL                  = ' '
      FILETYPE_NO_SHOW              = ' '
      LINE_EXIT                     = ' '
      USER_FORM                     = ' '
      USER_PROG                     = ' '
      SILENT                        = 'S'
    IMPORTING
      FILESIZE                      =
      CANCEL                        =
      ACT_FILENAME                  =
      ACT_FILETYPE                  =
          TABLES
            data_tab                      = lt_infrec
         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.
    *CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
       filename                      =
      FILETYPE                      = 'DAT'
      HAS_FIELD_SEPARATOR           = ' '
      HEADER_LENGTH                 = 0
      READ_BY_LINE                  = 'X'
      DAT_MODE                      = ' '
      CODEPAGE                      = ' '
      IGNORE_CERR                   = ABAP_TRUE
      REPLACEMENT                   = '#'
      CHECK_BOM                     = ' '
      VIRUS_SCAN_PROFILE            =
      NO_AUTH_CHECK                 = ' '
    IMPORTING
      FILELENGTH                    =
      HEADER                        =
    tables
       data_tab                      = lt_infrec
    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 ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    *ENDIF.
      ENDIF.
    loop at lt_infrec.
      ON CHANGE OF lt_infrec-lifnr or  lt_infrec-matnr or lt_infrec-ekorg.
    MOVE-CORRESPONDING  lt_infrec TO  lt_infrec1.
    append lt_infrec1.
    endloop.
    DELETE ADJACENT DUPLICATES FROM lt_infrec1 COMPARING  lifnr matnr  ekorg.
       REFRESH t_bdcdata.
       CLEAR lv_lifnr.
       CLEAR lv_matnr.
        PERFORM open_group.
          LOOP AT lt_infrec1.
      SCREEN 1
        PERFORM bdc_dynpro      USING 'SAPMM06I' '0100'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'RM06I-NORMB'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM bdc_field       USING 'EINA-LIFNR' lt_infrec1-lifnr.
        PERFORM bdc_field       USING 'EINA-MATNR' lt_infrec1-matnr.
        PERFORM bdc_field       USING 'EINE-EKORG' lt_infrec1-ekorg.
        PERFORM bdc_field       USING 'EINE-WERKS' lt_infrec1-werks.
        IF lt_infrec1-esokz = '0'.
          PERFORM bdc_field       USING 'RM06I-NORMB'
                                        'x'.
        ELSEIF lt_infrec1-esokz = '1'.
          PERFORM bdc_field       USING 'RM06I-LOHNB'
                                        'x'.
        ELSEIF lt_infrec1-esokz = '2'.
          PERFORM bdc_field       USING 'RM06I-PIPEL'
                                        'x'.
        ELSEIF lt_infrec1-esokz = '3' .
          PERFORM bdc_field       USING 'RM06I-KONSI'
                                         'x'.
        ENDIF.
      SCREEN 2
        PERFORM bdc_dynpro      USING 'SAPMM06I' '0101'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'EINA-VABME'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=EINE'.
        PERFORM bdc_field       USING 'EINA-MAHN1' lt_infrec1-mahn1.
        PERFORM bdc_field       USING 'EINA-URZTP' lt_infrec1-urztp.
        PERFORM bdc_field       USING 'EINA-MAHN2' lt_infrec1-mahn2.
        PERFORM bdc_field       USING 'EINA-URZNR' lt_infrec1-urznr.
        PERFORM bdc_field       USING 'EINA-MAHN3' lt_infrec1-mahn3.
        PERFORM bdc_field       USING 'EINA-URZDT' lt_infrec1-urzdt.
        PERFORM bdc_field       USING 'EINA-IDNLF' lt_infrec1-idnlf.
        PERFORM bdc_field       USING 'EINA-URZLA' lt_infrec1-urzla.
        PERFORM bdc_field       USING 'EINA-LTSNR' lt_infrec1-ltsnr.
        PERFORM bdc_field       USING 'EINA-REGIO' lt_infrec1-regio.
        PERFORM bdc_field       USING 'EINA-LTSSF' lt_infrec1-ltssf.
        PERFORM bdc_field       USING 'EINA-URZZT' lt_infrec1-urzzt.
        PERFORM bdc_field       USING 'EINA-WGLIF' lt_infrec1-wglif.
        PERFORM bdc_field       USING 'EINA-MFRNR' lt_infrec1-mfrnr.
        PERFORM bdc_field       USING 'EINA-ANZPU' lt_infrec1-anzpu.
        PERFORM bdc_field       USING 'EINA-PUNEI' lt_infrec1-punei.
        PERFORM bdc_field       USING 'EINA-VERKF' lt_infrec1-verkf.
        PERFORM bdc_field       USING 'EINA-TELF1' lt_infrec1-telf1.
        PERFORM bdc_field       USING 'EINA-LIFAB' lt_infrec1-lifab.
        PERFORM bdc_field       USING 'EINA-RUECK' lt_infrec1-rueck.
        PERFORM bdc_field       USING 'EINA-LIFBI' lt_infrec1-lifbi.
        PERFORM bdc_field       USING 'EINA-KOLIF' lt_infrec1-kolif.
        PERFORM bdc_field       USING 'EINA-RELIF' lt_infrec1-relif.
        PERFORM bdc_field       USING 'EINA-MEINS' lt_infrec1-meins.
        PERFORM bdc_field       USING 'EINA-UMREZ' lt_infrec1-umrez.
        PERFORM bdc_field       USING 'EINA-UMREN' lt_infrec1-umren.
        PERFORM bdc_field       USING 'EINA-VABME' lt_infrec1-vabme.
      SCREEN 2(B)
        PERFORM bdc_dynpro      USING 'SAPMM06I' '0102'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'EINE-INCO2'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=KO'.
        PERFORM bdc_field       USING 'EINE-APLFZ' lt_infrec1-aplfz.
        PERFORM bdc_field       USING 'EINE-UNTTO' lt_infrec1-untto.
        PERFORM bdc_field       USING 'EINE-MTXNO' lt_infrec1-mtxno.
        PERFORM bdc_field       USING 'EINE-EKGRP' lt_infrec1-ekgrp.
        PERFORM bdc_field       USING 'EINE-UEBTO' lt_infrec1-uebto.
        PERFORM bdc_field       USING 'EINE-KZABS' lt_infrec1-kzabs.
        PERFORM bdc_field       USING 'EINE-NORBM' lt_infrec1-norbm.
        PERFORM bdc_field       USING 'EINE-UEBTK' lt_infrec1-uebtk.
        PERFORM bdc_field       USING 'EINE-BSTAE' lt_infrec1-bstae.
        PERFORM bdc_field       USING 'EINE-MINBM' lt_infrec1-minbm.
        PERFORM bdc_field       USING 'EINE-WEBRE' lt_infrec1-webre.
        PERFORM bdc_field       USING 'EINE-MWSKZ' lt_infrec1-mwskz.
        PERFORM bdc_field       USING 'EINE-MHDRZ' lt_infrec1-mhdrz.
        PERFORM bdc_field       USING 'EINE-IPRKZ' lt_infrec1-iprkz.
        PERFORM bdc_field       USING 'EINE-XERSN' lt_infrec1-xersn.
        PERFORM bdc_field       USING 'EINE-EVERS' lt_infrec1-evers.
        PERFORM bdc_field       USING 'EINE-EXPRF' lt_infrec1-exprf.
        PERFORM bdc_field       USING 'EINE-BSTMA' lt_infrec1-bstma.
        PERFORM bdc_field       USING 'EINE-RDPRF' lt_infrec1-rdprf.
        PERFORM bdc_field       USING 'EINE-MEGRU' lt_infrec1-megru.
        PERFORM bdc_field       USING 'EINE-NETPR' lt_infrec1-netpr.
        PERFORM bdc_field       USING 'EINE-WAERS' lt_infrec1-waers.
        PERFORM bdc_field       USING 'EINE-PEINH' lt_infrec1-peinh.
        PERFORM bdc_field       USING 'EINE-BPRME' lt_infrec1-bprme.
        PERFORM bdc_field       USING 'EINE-SKTOF' lt_infrec1-sktof.
        PERFORM bdc_field       USING 'EINE-BPUMZ' lt_infrec1-bpumz.
        PERFORM bdc_field       USING 'EINE-BPUMN' lt_infrec1-bpumn.
        PERFORM bdc_field       USING 'EINE-EKKOL' lt_infrec1-ekkol.
        PERFORM bdc_field       USING 'EINE-MEPRF' lt_infrec1-meprf.
        PERFORM bdc_field       USING 'EINE-INCO1' lt_infrec1-inco1.
        PERFORM bdc_field       USING 'EINE-INCO2' lt_infrec1-inco2.
      SCREEN 2(C)
        PERFORM bdc_dynpro      USING 'SAPMV13A' '0201'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'KONP-KMEIN'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM bdc_field       USING 'RV13A-DATAB' lt_infrec1-datab.
        PERFORM bdc_field       USING 'RV13A-DATBI' lt_infrec1-datbi.
    loop at lt_infrec where lifnr = lt_infrec-lifnr and
                              matnr = lt_infrec-matnr and
                              ekorg = lt_infrec-ekorg.
            CONCATENATE 'KONP-KSCHL(' IDX ')' INTO var.
           PERFORM bdc_field       USING 'KONP-KSCHL' lt_infrec1-kschl.
            PERFORM bdc_field       USING VAR lt_infrec-kschl.
            CONCATENATE 'KONP-KBETR(' IDX ')' INTO VAR.
           PERFORM bdc_field       USING 'KONP-KBETR' lt_infrec1-kbetr.
             PERFORM bdc_field USING VAR lt_INFREC-KBETR.
             CONCATENATE 'KONP-KONWA(' IDX ')' INTO VAR.
           PERFORM bdc_field       USING 'KONP-KONWA' lt_infrec1-konwa.
            PERFORM bdc_field       USING VAR lt_infrec-KONWA.
            CONCATENATE 'KONP-KPEIN(' IDX ')' INTO VAR.
           PERFORM bdc_field       USING 'KONP-KPEIN' lt_infrec1-kpein.
            PERFORM bdc_field       USING VAR lt_infrec-kPEIN.
            CONCATENATE 'KONP-KMEIN(' IDX ')' INTO VAR.
           PERFORM bdc_field       USING 'KONP-KMEIN' lt_infrec1-kmein.
            PERFORM bdc_field       USING VAR lt_infrec-kMEIN.
            idx = idx + 1.
      ENDLOOP.
      CLEAR idx.
      SCREEN 2(D)
        PERFORM bdc_dynpro      USING 'SAPMV13A' '0201'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'RV13A-DATAB'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '/00'.
        PERFORM bdc_field       USING 'RV13A-DATAB' lt_infrec-datab.
        PERFORM bdc_field       USING 'RV13A-DATBI' lt_infrec-datbi.
        PERFORM bdc_dynpro      USING 'SAPMM06I' '0102'.
        PERFORM bdc_field       USING 'BDC_CURSOR'
                                      'EINE-APLFZ'.
        PERFORM bdc_field       USING 'BDC_OKCODE'
                                      '=TEXT'.
        PERFORM bdc_field       USING 'EINE-APLFZ' lt_infrec-aplfz.
        PERFORM bdc_field       USING 'EINE-UNTTO' lt_infrec-untto.
        PERFORM bdc_field       USING 'EINE-EKGRP' lt_infrec-ekgrp.
        PERFORM bdc_field       USING 'EINE-UEBTO' lt_infrec-uebto.
        PERFORM bdc_field       USING 'EINE-KZABS' lt_infrec-kzabs.
        PERFORM bdc_field       USING 'EINE-NORBM' lt_infrec-norbm.
        PERFORM bdc_field       USING 'EINE-MINBM' lt_infrec-minbm.
        PERFORM bdc_field       USING 'EINE-WEBRE' lt_infrec-webre.
        PERFORM bdc_field       USING 'EINE-MWSKZ' lt_infrec-mwskz.
        PERFORM bdc_field       USING 'EINE-IPRKZ' lt_infrec-iprkz.
        PERFORM bdc_field       USING 'EINE-NETPR' lt_infrec-netpr.
        PERFORM bdc_field       USING 'EINE-WAERS' lt_infrec-waers.
        PERFORM bdc_field       USING 'EINE-PEINH' lt_infrec-peinh.
        PERFORM bdc_field       USING 'EINE-BPRME' lt_infrec-bprme.
        PERFORM bdc_field       USING 'EINE-BPUMZ' lt_infrec-bpumz.
        PERFORM bdc_field       USING 'EINE-BPUMN' lt_infrec-bpumn.
        PERFORM bdc_field       USING 'EINE-MEPRF' lt_infrec-meprf.
        PERFORM bdc_field       USING 'EINE-INCO1' lt_infrec-inco1.
        PERFORM bdc_field       USING 'EINE-INCO2' lt_infrec-inco2.
      SCREEN 4
       PERFORM bdc_dynpro      USING 'SAPMM06I' '0103'.
       PERFORM bdc_field       USING 'BDC_CURSOR'
                                     'RM06I-LTEX5(02)'.
       PERFORM bdc_field       USING 'BDC_OKCODE'
                                     '/00'.
       PERFORM bdc_field       USING 'RM06I-SELKZ(02)'
       PERFORM bdc_field       USING 'RM06I-LTEX1(01)'
       PERFORM bdc_field       USING 'RM06I-LTEX1(02)'
       PERFORM bdc_field       USING 'RM06I-LTEX2(01)'
       PERFORM bdc_field       USING 'RM06I-LTEX2(02)'
       PERFORM bdc_field       USING 'RM06I-LTEX3(01)'
       PERFORM bdc_field       USING 'RM06I-LTEX3(02)'
       PERFORM bdc_field       USING 'RM06I-LTEX4(01)'
       PERFORM bdc_field       USING 'RM06I-LTEX4(02)'
       PERFORM bdc_field       USING 'RM06I-LTEX5(01)'
       PERFORM bdc_field       USING 'RM06I-LTEX5(02)'
      SCREEN 5
       PERFORM bdc_dynpro      USING 'SAPMM06I' '0103'.
       PERFORM bdc_field       USING 'BDC_CURSOR'
                                     'RM06I-LTEX1(01)'.
       PERFORM bdc_field       USING 'BDC_OKCODE'
                                     '=BU'.
        PERFORM bdc_transaction USING 'ME11'.
        CLEAR lt_infrec.
        clear lt_infrec1.
       CALL TRANSACTION 'ME11' USING t_bdcdata MODE 'A'.
      ENDLOOP.
      PERFORM close_group.
    *ENDFORM.                    "BDC_FIELD
    thanks in advance ...
    bye
    pradeep

    Hi,
    for loading the Inforecords I suggest you to use LSMW with following methods:
    PurchasingInfoRecord:
    Object               0060   Purchasing info rec.
    Method               0000                      
    Program name         RM06IBI0                  
    Program type         B   Batch input          
    Conditions:
    with IDoc:
    Message type         COND_A         
    Basic type           COND_A02      
    or with BI program:
    Object               0070   Condition record
    Method               0000                   
    Program name         RV14BTCI               
    Program type         B   Batch input       
    The above methods would provide you an efficient & effective way of loading mass data with all possible complexicity w.r.t conditions.
    Hope this helps.
    Best Regards, Murugesh AS

  • HR ABAP How to Write BDC For Infotype 0586

    Hi Experts
    Can Any One tell me how to write BDC for Infotype 0586  and also 585.
    If we enter into the maintaining Screen, the lines in the Screen will dynamically changing depending on the values.
    When I am doing recording , If I press page down after entering values in top lines, the lines are changing and the records are not updating Correctly.
    I need to write BDC to Create Change.
    Can any one please help me in this regard?
    Thanks in Advance.
    Regards
    Avinash.

    http://www.sap-img.com/abap/bdc-example-using-table-control-in-bdc.htm
    http://www.sap-img.com/abap/bdc-example-using-table-control-in-bdc.htm
    http://www.google.co.in/search?hl=en&q=SAPBDCtable+control&meta=
    http://www.sap-basis-abap.com/abap/handling-table-control-in-bdc.htm
    http://www.sap-img.com/abap/bdc-example-using-table-control-in-bdc.htm
    http://www.sap-img.com/abap/question-about-bdc-program.htm

  • BDC for MM01 using bapi

    HI all ,
    i am new to bapi . i have created so many bdcs to upload data in sap but havent done any bapi .
    i want to upload data through bapi  for mm01 .
    how can i achieve this and which bapi is responsible for this job . plz send any sample code for this .
    Thanks ,
    Amit Ranjan .

    Hi Amit,
    Refer to the code in the following link:
    Re: Reg Transfer of MM01 data using BAPI method
    Hope this will solve your query...

  • BDC for MM01

    Hi all.
    I need BDC code for MM01,i need to populate values depending upon "Material type",Because view changing depending upon material type.
    please give me code for that.
    To be reward all helpfull answers.
    Regards.
    jay

    Hi,
    This is a BDC for MM for T-code MM01.I hope this will help u.
    Below is the coding.
    Reward if helpful.
    Regards,
    Seevangi
    REPORT  ZMMBDC_MATERIAL_MASTER_UPD
    LINE-SIZE 255 NO STANDARD PAGE HEADING LINE-COUNT 65.
    Tables
    Structure declaration
    Work Variables and internal tables
    Constants
    Parameters
    Events: Start-Of-Selection
    data : begin of i_mara occurs 0,
            matnr like mara-matnr,
           end of i_mara.
    data : begin of ty_matdata,
            matnr like mara-matnr,   "material number
            mbrsh like rmmg1-mbrsh,  "Industry sector
            mtart like rmmg1-mtart,  "Material Type
            werks like rmmg1-werks,  "Plant
            lgort like rmmg1-lgort,  "Storage Location
            vkorg like rmmg1-vkorg,  "Sales Organization
            vtweg like rmmg1-vtweg,  "Distribution Channel
            maktx like makt-maktx,   "Material Description (Short Text)
            meins like mara-meins,   "Base Unit of Measure
            matkl like mara-matkl,   "Material Group
            bismt like mara-bismt,   "Old material number
            spart like mara-spart,   "Division
            brgew(15) ," like mara-brgew,   "Gross Weight
            ntgew(15), " like mara-ntgew,   "Net Weight
            ekgrp like marc-ekgrp,   "Purchasing Group
            gewei like mara-gewei,   "Weight Unit
            klart like rmclf-klart,  "Class Type
            taxkm like MG03STEUER-TAXKM, "Tax classification material
            ladgr like marc-ladgr,   "Loading Group
            tragr like mara-tragr,   "Transportation Group
            dismm like marc-dismm, "MRP Type
            dispo like marc-dispo, "MRP Controller (Materials Planner)
            fhori like marc-fhori, "Scheduling margin key
            disls like marc-disls, " lot size
            prmod like mpop-prmod, "Forecast model
            peran(3)," like mpop-peran,   "Number of historical periods
            anzpr(3)," like mpop-anzpr,   "Number of forecast periods
            kzini like mpop-kzini,   "Initialization indicator
            siggr(9)," like mpop-siggr,   "Tracking limit
            autru like marc-autru,   "Reset Forecast Model Automatically
            modav like mpop-modav,   "Model selection procedure
            perkz like marc-perkz, "Period Indicator
            verpr(13), " like mbew-verpr, "Moving Average Price/Periodic Unit Price
            prctr like marc-prctr, "Profit Center
            mtvfp like marc-mtvfp, "Checking Group for Availability Check
            bklas like mbew-bklas, "Valuation Class
            vprsv like mbew-vprsv, "Price control indicator
            stprs(13) ," like mbew-stprs, "Standard price
            peinh(5) ,"like mbew-peinh, "Price Unit
           end of ty_matdata,
           begin of ty_matdata1,
           matnr like mara-matnr,   "material number
            mbrsh like rmmg1-mbrsh,  "Industry sector
            mtart like rmmg1-mtart,  "Material Type
            werks like rmmg1-werks,  "Plant
            lgort like rmmg1-lgort,  "Storage Location
            vkorg like rmmg1-vkorg,  "Sales Organization
            vtweg like rmmg1-vtweg,  "Distribution Channel
            maktx like makt-maktx,   "Material Description (Short Text)
            meins like mara-meins,   "Base Unit of Measure
            matkl like mara-matkl,   "Material Group
            bismt like mara-bismt,   "Old material number
            spart like mara-spart,   "Division
            brgew(15) ," like mara-brgew,   "Gross Weight
            ntgew(15), " like mara-ntgew,   "Net Weight
            ekgrp like marc-ekgrp,   "Purchasing Group
            gewei like mara-gewei,   "Weight Unit
            klart like rmclf-klart,  "Class Type
            taxkm like MG03STEUER-TAXKM, "Tax classification material
            ladgr like marc-ladgr,   "Loading Group
            tragr like mara-tragr,   "Transportation Group
            dismm like marc-dismm, "MRP Type
            dispo like marc-dispo, "MRP Controller (Materials Planner)
            fhori like marc-fhori, "Scheduling margin key
            prmod like mpop-prmod, "Forecast model
            peran(3)," like mpop-peran,   "Number of historical periods
            anzpr(3)," like mpop-anzpr,   "Number of forecast periods
            kzini like mpop-kzini,   "Initialization indicator
            siggr(9)," like mpop-siggr,   "Tracking limit
            autru like marc-autru,   "Reset Forecast Model Automatically
            modav like mpop-modav,   "Model selection procedure
            perkz like marc-perkz, "Period Indicator
            verpr(13), " like mbew-verpr, "Moving Average Price/Periodic Unit Price
            prctr like marc-prctr, "Profit Center
            mtvfp like marc-mtvfp, "Checking Group for Availability Check
            bklas like mbew-bklas, "Valuation Class
            vprsv like mbew-vprsv, "Price control indicator
            stprs(13) ," like mbew-stprs, "Standard price
            peinh(5) ,"like mbew-peinh, "Price Unit
            message like bapiret2-message, "Error Message.
           end of ty_matdata1,
           begin of ty_error,
             matnr like mara-matnr,
             mbrsh like rmmg1-mbrsh,  "Industry sector
             mtart like rmmg1-mtart,  "Material Type
             werks like rmmg1-werks,  "Plant
             message like bapiret2-message,
           end of ty_error.
          Data                     Begin with W_                        *
    data : i_matdata like standard table of ty_matdata with header line.
    BAPIMATHEAD - Header Segment with Control Information
    data : i_headdata like bapimathead occurs 0 with header line.
    bapi_makt - Material Descriptions.
    data : i_bapi_makt like bapi_makt occurs 0 with header line.
    *bapi_mlan - Tax data
    data : i_bapi_mlan like bapi_mlan occurs 0 with header line.
    bapi_mara - Material Data at Client Level.
    data : i_clientdata like bapi_mara occurs 0 with header line.
    bapi_marax - Checkbox Structure for BAPI_MARA.
    data : i_clientdatax like bapi_marax occurs 0 with header line.
    bapi_marc - Material Data at Plant Level.
    data : i_plantdata like bapi_marc occurs 0 with header line.
    bapi_marcx - Checkbox Structure for BAPI_MARA.
    data : i_plantdatax like bapi_marcx occurs 0 with header line.
    BAPI_MARD - Material Data at Storage Location Level.
    data : i_storagelocationdata like bapi_mard occurs 0 with header line.
    bapi_mardx - Checkbox Structure for BAPI_MARD
    data : i_storagelocationdatax like bapi_mardx occurs 0 with header line.
    *bapi_mpop - Forecast Parameters
    data : i_forcastingparameter like BAPI_MPOP occurs 0 with header line.
    *bapi_mpopx - Checkbox Structure for BAPI_MPOP
    data : i_forcastingparameterx like BAPI_MPOPX occurs 0 with header line.
    *bapi_mbew - Valuation Data
    data : i_valuationdata like BAPI_MBEW occurs 0 with header line.
    *bapi_mbewx - Checkbox Structure for BAPI_MBEW
    data : i_valuationdatax like BAPI_MBEWX occurs 0 with header line.
    *bapi_mvke - Sales Data
    data : i_salesdata like BAPI_MVKE occurs 0 with header line.
    *bapi_mvkex - Checkbox Structure for BAPI_MVKE
    data : i_salesdatax like BAPI_MVKEX occurs 0 with header line.
    bapiret2 - Return parameter
    data : i_return like bapiret2 occurs 0 with header line.
    Errors displayed on screen.
    data : i_error like standard table of ty_error with header line.
    *Error data to be loaded after correction.
    data : i_matdata1 like standard table of ty_matdata1 with header line.
    *bapi_marm - Unit of measure
    data : i_bapi_marm like bapi_marm occurs 0 with header line.
    *bapi_marmx - unit of measurex
    data : i_bapi_marmx like bapi_marmx occurs 0 with header line.
    To determine error.
    data : w_flg(1).
       S E L E C T I O N     S C R E E N / P A R A M E T E R S
    selection-screen: begin of block b1 with frame.
    parameters: p_file like rlgrap-filename obligatory.
    selection-screen: end of block b1.
    selection-screen skip 1.
    selection-screen: begin of block b2 with frame.
    parameters: p_file1 like rlgrap-filename .
    selection-screen: end of block b2.
              A T   S E L E C T I O N   S C R E E N
    at selection-screen on value-request for p_file.
    WS_FILENAME_GET - Determination of a file name on the presentation
    server using a file selection dialog.
      call function 'WS_FILENAME_GET'
    exporting
       def_filename           = '*.TXT'
       def_path               = 'C:\'
       mask                   = ',.TXT,.*.'
       mode                   = 'O'
      TITLE                  = ' '
       importing
         filename               = p_file
      RC                     =
    exceptions
       inv_winsys             = 1
       no_batch               = 2
       selection_cancel       = 3
       selection_error        = 4
       others                 = 5
      if sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      endif.
                      T O P    O F     P A G E                          *
    top-of-page.
      skip.
      write : /01 'Material Number', 30 'Error Message'.
       S T  A R T   O F   S E L E C T I O N
    start-of-selection.
    perform read_data.
    perform create_material.
    perform display_error.
    *&      Form  read_data
          text
    -->  p1        text
    <--  p2        text
    form read_data.
    Uploads a file from the presentation server into an internal table.
    call function 'WS_UPLOAD'
           exporting
                codepage                = 'IBM'
                filename                = p_file
                filetype                = 'DAT'
           tables
                data_tab                = i_matdata
           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:/ 'File Not Uploaded'.
      endif.
    endform.                    " read_data
    *&      Form  create_material
          text
    -->  p1        text
    <--  p2        text
    form create_material.
    loop at i_matdata.
    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
      EXPORTING
        INPUT         = i_matdata-matnr
    IMPORTING
       OUTPUT        = i_matdata-matnr.
    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
      EXPORTING
        INPUT         = i_matdata-prctr
    IMPORTING
       OUTPUT        = i_matdata-prctr
    *select matnr from mara into table i_mara .
    *sort i_mara by matnr descending.
    *read table i_mara index 1.
    *i_mara-matnr = i_mara-matnr + 1.
    CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
      EXPORTING
        INPUT              =  i_mara-matnr
      IMPORTING
        OUTPUT             =  i_mara-matnr
      EXCEPTIONS
        LENGTH_ERROR       = 1
        OTHERS             = 2
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    *CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
    EXPORTING
       INPUT              =  i_matdata-matnr
    IMPORTING
       OUTPUT             =  i_matdata-matnr
    EXCEPTIONS
       LENGTH_ERROR       = 1
       OTHERS             = 2
    *IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    *ENDIF.
    i_headdata-material = i_matdata-matnr.
      i_headdata-material = i_mara-matnr.
      i_headdata-ind_sector = i_matdata-mbrsh.
      i_headdata-matl_type = i_matdata-mtart.
      i_headdata-basic_view = 'X'.
      i_headdata-mrp_view = 'X'.
      i_headdata-storage_view = 'X'.
      i_headdata-SALES_VIEW = 'X'.
      i_headdata-PURCHASE_VIEW = 'X'.
      i_headdata-FORECAST_VIEW = 'X'.
      i_headdata-ACCOUNT_VIEW = 'X'.
      i_headdata-COST_VIEW = 'X'.
      i_headdata-prt_view = 'X'.
      i_headdata-work_sched_view = 'X'.
      i_headdata-quality_view = 'X'.
      append i_headdata.
    clear i_headdata.
      i_bapi_makt-langu     = sy-langu.
      i_bapi_makt-matl_desc = i_matdata-maktx.
      append i_bapi_makt.
    clear i_bapi_makt.
      i_clientdata-matl_group = i_matdata-matkl.
      i_clientdata-old_mat_no = i_matdata-bismt.
      i_clientdata-base_uom = i_matdata-meins.
      i_clientdata-division = i_matdata-spart.
      i_clientdata-UNIT_OF_WT = i_matdata-gewei.
      i_clientdata-TRANS_GRP = i_matdata-tragr.
      i_clientdata-NET_WEIGHT = i_matdata-ntgew.
      append i_clientdata.
    clear i_clientdata.
      i_clientdatax-matl_group = 'X'.
      i_clientdatax-old_mat_no = 'X'.
      i_clientdatax-base_uom = 'X'.
      i_clientdatax-division = 'X'.
      i_clientdatax-UNIT_OF_WT = 'X'.
      i_clientdatax-TRANS_GRP = 'X'.
      i_clientdatax-NET_WEIGHT = 'X'.
      append i_clientdatax.
    clear i_clientdatax.
      i_plantdata-plant = i_matdata-werks.
      i_plantdata-mrp_type = i_matdata-dismm.
      i_plantdata-mrp_ctrler = i_matdata-dispo.
      i_plantdata-availcheck = i_matdata-mtvfp.
      i_plantdata-profit_ctr = i_matdata-prctr.
      i_plantdata-LOADINGGRP = i_matdata-ladgr.
      i_plantdata-PUR_GROUP = i_matdata-ekgrp.
      i_plantdata-AUTO_RESET = i_matdata-autru.
      i_plantdata-PERIOD_IND = i_matdata-perkz.
      i_plantdata-MRP_CTRLER = i_matdata-dispo.
      i_plantdata-SM_KEY = i_matdata-fhori.
      i_plantdata-LOTSIZEKEY = i_matdata-disls.
      append i_plantdata.
    clear i_plantdata.
      i_plantdatax-plant = i_plantdata-plant.
      i_plantdatax-mrp_type = 'X'.
      i_plantdatax-mrp_ctrler = 'X'.
      i_plantdatax-availcheck = 'X' .
      i_plantdatax-profit_ctr = 'X' .
      i_plantdatax-LOADINGGRP = 'X' .
      i_plantdatax-PUR_GROUP = 'X' .
      i_plantdatax-AUTO_RESET = 'X'.
      i_plantdatax-PERIOD_IND = 'X'.
      i_plantdatax-MRP_CTRLER = 'X'.
      i_plantdatax-SM_KEY = 'X'.
      i_plantdatax-LOTSIZEKEY = 'X'.
      append i_plantdatax.
    clear i_plantdatax.
      clear i_forcastingparameter.
      i_forcastingparameter-PLANT = i_matdata-werks.
      i_forcastingparameter-HIST_VALS = i_matdata-peran.
      i_forcastingparameter-FORE_PDS = i_matdata-anzpr.
      i_forcastingparameter-INITIALIZE = i_matdata-kzini.
      i_forcastingparameter-TRACKLIMIT = i_matdata-siggr.
      i_forcastingparameter-MODEL_SP = i_matdata-modav.
      i_forcastingparameter-FORE_MODEL = i_matdata-prmod.
      append i_forcastingparameter.
      clear i_forcastingparameterx.
      i_forcastingparameterx-PLANT = i_matdata-werks.
      i_forcastingparameterx-HIST_VALS = 'X'.
      i_forcastingparameterx-FORE_PDS = 'X'.
      i_forcastingparameterx-INITIALIZE = 'X'.
      i_forcastingparameterx-TRACKLIMIT = 'X'.
      i_forcastingparameterx-MODEL_SP = 'X'.
      i_forcastingparameterx-FORE_MODEL = 'X'.
      append i_forcastingparameterx.
      i_valuationdata-MOVING_PR = i_matdata-verpr.
      i_valuationdata-STD_PRICE = i_matdata-stprs.
      i_valuationdata-PRICE_CTRL = i_matdata-VPRSV.
      i_valuationdata-VAL_CLASS = i_matdata-bklas.
      i_valuationdata-PRICE_UNIT = i_matdata-peinh.
      i_valuationdata-VAL_AREA = i_matdata-werks.
      append i_valuationdata.
      i_valuationdatax-VAL_AREA = i_matdata-werks.
      i_valuationdatax-MOVING_PR = 'X'.
      i_valuationdatax-STD_PRICE = 'X'.
      i_valuationdatax-PRICE_CTRL = 'X'.
      i_valuationdatax-VAL_CLASS = 'X'.
      i_valuationdatax-PRICE_UNIT = 'X'.
      append i_valuationdatax.
      i_salesdata-SALES_ORG = i_matdata-vkorg.
      i_salesdata-DISTR_CHAN = i_matdata-vtweg.
      i_salesdata-DELY_UOM = i_matdata-meins.
      append i_salesdata.
      i_salesdatax-SALES_ORG = i_matdata-vkorg.
      i_salesdatax-DISTR_CHAN = i_matdata-vtweg.
      i_salesdata-DELY_UOM = 'X'.
      append i_salesdatax.
      i_bapi_marm-ALT_UNIT = i_matdata-meins.
      i_bapi_marm-GROSS_WT = i_matdata-brgew.
      append i_bapi_marm.
      i_storagelocationdata-plant = i_plantdatax-plant.
      i_storagelocationdata-stge_loc = i_matdata-lgort.
      append i_storagelocationdata.
    clear i_storagelocationdata.
      i_storagelocationdatax-plant = i_plantdatax-plant.
      i_storagelocationdatax-stge_loc = i_storagelocationdata-stge_loc.
      append i_storagelocationdatax.
    clear i_storagelocationdatax.
    i_bapi_mlan-TAXCLASS_1 = i_matdata-TAXKM.
      append i_bapi_mlan.
    BAPI - BAPI_MATERIAL_SAVEDATA is used to Create and Change Material
    Master Data.
      call function 'BAPI_MATERIAL_SAVEDATA'
        exporting
          headdata                   = i_headdata
          clientdata                 = i_clientdata
          clientdatax                = i_clientdatax
          plantdata                  = i_plantdata
          plantdatax                 = i_plantdatax
          FORECASTPARAMETERS         = i_forcastingparameter
          FORECASTPARAMETERSX        = i_forcastingparameterx
        PLANNINGDATA               =
        PLANNINGDATAX              =
          storagelocationdata        = i_storagelocationdata
          storagelocationdatax       = i_storagelocationdatax
          VALUATIONDATA              = i_valuationdata
          VALUATIONDATAX             = i_valuationdatax
        WAREHOUSENUMBERDATA        =
        WAREHOUSENUMBERDATAX       =
          SALESDATA                  = i_salesdata
          SALESDATAX                 = i_salesdatax
        STORAGETYPEDATA            =
        STORAGETYPEDATAX           =
        FLAG_ONLINE                = ' '
        FLAG_CAD_CALL              = ' '
        importing
          return                     = i_return
        tables
          materialdescription        = i_bapi_makt
          UNITSOFMEASURE             = i_bapi_marm
          UNITSOFMEASUREX            = i_bapi_marmx
        INTERNATIONALARTNOS        =
        MATERIALLONGTEXT           =
         TAXCLASSIFICATIONS         = i_bapi_mlan
        RETURNMESSAGES             =
        PRTDATA                    =
        PRTDATAX                   =
        EXTENSIONIN                =
        EXTENSIONINX               =
    if i_return-type = 'E'.
        i_error-matnr = i_mara-matnr.
        i_error-mbrsh = i_matdata-mbrsh.
        i_error-mtart = i_matdata-mtart.
        i_error-werks = i_matdata-werks.
        i_error-message = i_return-message.
      append i_error.
      clear i_error.
      w_flg = 'X'.
    *else.
    Execute external Commit when using BAPIs
    When you call BAPIs in your program that change data in the R/3
    System afterwards you must call this method to write the changes to *
    the database.
    call function 'BAPI_TRANSACTION_COMMIT'
    exporting
       wait          = 'X'
    importing
       return        = i_return
    endif.
    refresh : i_headdata ,  i_bapi_makt, i_clientdata, i_clientdatax ,
              i_plantdata, i_plantdatax,
              i_storagelocationdata,i_storagelocationdatax,
              i_salesdata , i_salesdatax ,
              i_valuationdata , i_valuationdatax,
              i_bapi_marm,i_bapi_marmx,
              i_bapi_mlan.
    clear : i_headdata ,  i_bapi_makt, i_clientdata, i_clientdatax ,
              i_plantdata, i_plantdatax, i_storagelocationdata,
              i_storagelocationdatax,
              i_valuationdata , i_valuationdatax,
              i_bapi_marm,i_bapi_marmx,
              i_bapi_mlan.
    endloop.
    endform.                    " create_material
    *&      Form  display_error
          text
    -->  p1        text
    <--  p2        text
    form display_error.
    loop at i_error.
    read table i_matdata with key matnr = i_error-matnr.
    if sy-subrc = 0.
        i_matdata1-matnr = i_mara-matnr.
        i_matdata1-mbrsh = i_matdata-mbrsh.
        i_matdata1-mtart = i_matdata-mtart.
        i_matdata1-maktx = i_matdata-maktx.
        i_matdata1-meins = i_matdata-meins.
       i_matdata1-matkl = i_matdata-matkl.
       i_matdata1-bismt = i_matdata-bismt.
       i_matdata1-zeinr = i_matdata-zeinr.
       i_matdata1-spart = i_matdata-spart.
       i_matdata1-werks = i_matdata-werks.
       i_matdata1-dismm = i_matdata-dismm.
       i_matdata1-dispo = i_matdata-dispo.
       i_matdata1-beskz = i_matdata-beskz.
       i_matdata1-sobsl = i_matdata-sobsl.
       i_matdata1-lgpro = i_matdata-lgpro.
       i_matdata1-lgfsb = i_matdata-lgfsb.
       i_matdata1-eprio = i_matdata-eprio.
       i_matdata1-mtvfp = i_matdata-mtvfp.
       i_matdata1-lgort = i_matdata-lgort.
       i_matdata1-lgpbe = i_matdata-lgpbe.
       i_matdata1-prctr = i_matdata-prctr.
       i_matdata1-message = i_error-message.
        append i_matdata1.
        clear i_matdata1.
    endif.
    endloop.
    loop at i_error.
      write :/01 i_error-matnr , 30 i_error-message.
    endloop.
    if i_error is initial.
      write :/01 text-001.
    endif.
    if w_flg = 'X'.
      call function 'WS_DOWNLOAD'
       exporting
        BIN_FILESIZE                  = ' '
         codepage                      = 'IBM'
         filename                      = p_file1
         filetype                      = 'DAT'
        MODE                          = ' '
        WK1_N_FORMAT                  = ' '
        WK1_N_SIZE                    = ' '
        WK1_T_FORMAT                  = ' '
        WK1_T_SIZE                    = ' '
        COL_SELECT                    = ' '
        COL_SELECTMASK                = ' '
        NO_AUTH_CHECK                 = ' '
      IMPORTING
        FILELENGTH                    =
        tables
          data_tab                      = i_error
        FIELDNAMES                    =
       exceptions
         file_open_error               = 1
         file_write_error              = 2
         invalid_filesize              = 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.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      endif.
    endif.
    endform.                    " display_error7

  • Problem in BDC for CA02

    hello all,
             i am doing BDC for change routing (ca02) transaction.
    in that my need is to assign PRT allocation for operations.
    i have written a program for it but if suppose for a particlular operation i want to assign PRT and if there are no PRT assigned for that particular operation before that recording fails.and if already there is atleast one PRT assigned to that operation it runs fine. so i want to remove this error.for that may be i shd first record tha no of PRTS on screen and save that in particular counter and if suppose its greater than 0 then it will run the code and if not it will escape.
                    I know some of u will not understand the problem..in that case i have all screen shots and program ready for it ....plz send u r mail address to me and i will send u my problem with  all details on u r mail id.waiting for quick reply.
    Edited by: abhijeet shastri on Feb 5, 2008 9:01 AM

    hi,
    Here you have to take 2 perform statements, one is for PRT and another one is for without PRT
    After populating the input internal table, need check whether the particuler operation is having PRT values or not.
    if PRT values are available then go for PRT screen (Perform statement for PRT values).
    if not PRT values are available then go for not PRT screen.
    If the PRT screen is depedable on process operation values.
    then you have to make prevalidation . in prevalidation the appropriate operation containing any values for the same then call perform statement for the same. else skip that session through coding.
    Ask to your functional consultant regarding tables (In which table you will PRT screen values based on process operation fields) for PRT pre validation.
    I hope this message will clear your doubt
    Regards,
    Sreenivasa Babu

  • FM or BAPI or BDC for clearing open items...

    Hello Gurus,
    I have to write a code to clear/ close 12 million open G/L items in SAP. Is there a standard SAP FM or BAPI to do this ? Or do I have to write a BDC for this. If I have to write BDC, do I write BDC on T-Code F.13, FB05 or other T-Code.
    Regards,
    Jainam.
    Edited by: Jainam Shah on Sep 23, 2010 5:13 PM

    If you have configured the correct clearing criteria in the IMG, then you can just run program SAPF124.  Why did you need a shell program with a BDC - are you trying to clear by document within your clearing criteria?

  • BDC FOR VENDOR INVOICE FB60

    Hi,
    I need to make a BDC to upload transaction data for Vendor invoice thru  fb60. Can someone help me with making this BDC. I have multiple invoice line items where G/L Accounts can be same for multiple line items.
    plz any help soon will be appreciated ...

    hi Raj,
    Here a Example:
    report ZTEST
    no standard page heading line-size 255.
    include bdcrecx1.
    start-of-selection.
    perform open_group.
    perform bdc_dynpro using 'SAPMF05A' '1100'.
    perform bdc_field using 'BDC_OKCODE'
    '=DUMMY'.
    perform bdc_field using 'RF05A-BUSCS'
    'R'.
    perform bdc_field using 'BDC_CURSOR'
    'INVFO-XMWST'.
    perform bdc_field using 'INVFO-ACCNT'
    '4711'. "LIFNR
    perform bdc_field using 'INVFO-BUDAT'
    '07.07.2006'.
    perform bdc_field using 'INVFO-WRBTR'
    '1000'.
    perform bdc_field using 'INVFO-WAERS'
    'EUR'.
    perform bdc_field using 'INVFO-XMWST'
    'X'.
    perform bdc_field using 'INVFO-MWSKZ'
    'V4'.
    perform bdc_dynpro using 'SAPMF05A' '1100'.
    perform bdc_field using 'BDC_OKCODE'
    '=BU'.
    perform bdc_field using 'RF05A-BUSCS'
    'R'.
    perform bdc_field using 'BDC_CURSOR'
    'INVFO-XBLNR'.
    perform bdc_field using 'INVFO-ACCNT'
    '4711'. "LIFNR
    perform bdc_field using 'INVFO-XBLNR'
    'test'.
    perform bdc_field using 'INVFO-WRBTR'
    '1.000,00'.
    perform bdc_field using 'INVFO-XMWST'
    'X'.
    perform bdc_field using 'INVFO-MWSKZ'
    'V4'.
    perform bdc_dynpro using 'SAPMF05A' '1100'.
    perform bdc_field using 'INVFO-BLDAT'
    '07062006'.
    perform bdc_field using 'INVFO-XBLNR'
    'TEST'.
    perform bdc_field using 'ACGL_ITEM-HKONT(01)'
    '467000'.
    perform bdc_field using 'ACGL_ITEM-WRBTR(01)'
    ' 1000'.
    perform bdc_field using 'ACGL_ITEM-KOSTL(01)'
    '1000'.
    perform bdc_transaction using 'FB60'.
    perform close_group.
    OR Also u can use the
    U can use the std batchinput RFBIBL00 (or a BAPI, like BAPI_ACC_DOCUMENT_POST ) instead of to write an own BDC program for FB60.
    FB60 is enjoy trx and it couldn't support the BDC for all its functionalities.
    For more infor abt the BDC
    http://www.sap-img.com/abap/learning-bdc-programming.htm
    Assing the points if helpfulll
    ranjit
    null
    null

  • BDC For MM02 & MASS - BUS1001

    HI,
    I am trying to make BDC for updating Table - MARD, Feild - LGPBE using MM02.
    The problem I facing is the selection of view (General Plant Data/ Storage 1).
    For VERP Materials, it comes to 12th Position, while for HALB Materials is on 15th Position.
    The reason for the same is that for VERP Materials, the Sales Views are not maintained.
    I am facing the similar kind of problem while creating the BDC for MASS (Using Mass Maintenance - BUS1001).
    I need to update the Storage Bin of all Materials.
    What is the correct way to upload the same?
    Thanks & Regards,
    P K Karn

    hi PK you have to program your BDC according to material type..
    eg if material type = HALB
    BDC1
    else if material type = VERP
    BDC2..
    end if
    regards..

  • BDC for Modal dialog screen

    Hello,
      I'm creating a bdc for create customer transaction (FD01). The problem I'm currently having is on maintaining the "other communication" details for the customer. The requirement I have is to maintain only the communication type "URI". But I can't find the correct program and screen number for this modal dialog. anyone have an idea?
    Thanks?
    MP

    Hi, thanks for all the reply. However, everything has been tried. The modal screen dialog I was refering at does not contain any program or screen details when I use F1. This screen does not appear in SHDB when doing the recording. SAPLSLVC_FULLSCREEN/0700 is not the screen I'm refering at.
    When you click on the "Other Communication", there will appear the screen I'm refering at having the list of all other communication type you need to maintain (Fax, Telephone, E-mail, URI). This screen is somehow similar the way serach help functions. I'm basically concern on URI. So what I need to do is place the cursor on URI and click on the check button or double cliking URI is ok. This is the part missing on my bdc, choosing the URI in the modal dialog screen. Upon debugging, it seems that a Function is responsible in displaying the screen.Any idea?
    Message was edited by: Marlon Pita

Maybe you are looking for

  • How to build the time dimension in Essbase with Fiscal Year (July thru Jun)

    Hi, In a recent project i have a situation where i need the time dimension to have some thing like this Fiscal Year (July - June) using BSO need to achieve DTS (YTD and QTD) functionality also. And also my reports should also be able to drill through

  • SQL query alias names errors with dynamic lists

    Hullo, Problem: - Made a query form book database. Have authors in separate table with unique ID's referring to them on book table. - Query fetches author name in "Surname, Firstname initial.Secondfirstname initial" format, --> like "Bukowski, H.C" a

  • CM: Open Reconciliation Interface CE_999_INTERFACE_V

    what are these columns for: Cleared_charges_amount Cleared_error_amount are they for tolerance? how does it work?

  • TIFF and JPG Files Are Black?

    I have posted this question twice before but didn't get it resolved. I really need to get some help on this. I have some old projects that I use in the classroom while I am teaching. They are TIFF images and often have sound clips with them. I create

  • Two Things - Links and Text

    So there are two things that drive me crazy when using Muse, both of which are a huge inconvenience to the site builder and the customer: 1 - All text is automatically turned into image when lived. 2 - You can't link text directly in a paragraph. You