Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

problem with BDC

Former Member
0 Likes
471

1) what is BDC table control?

3 REPLIES 3
Read only

FredericGirod
Active Contributor
0 Likes
423

Please stop open multi message for one topic.

BDC table is that : "itg_bdcdata type TAB_BDCDATA with header line".

it's a table containing all the information for a batch-input.

I give you a complete example :

*---------------------------------------------------------------------*
*   Program : ZQM_BI_CERTIF_CREATE                                    *
*   Title   : Batch-input program to create certificate profile       *
*---------------------------------------------------------------------*
*   Overview : Simulate the transaction QC01 -> Certificate profie    *
*              creation.                                              *
*---------------------------------------------------------------------*
*---------------------------------------------------------------------*
*   Modified the xx/xx/xxxx by xxxxxxxxx request xxxxxxxxxx           *
*---------------------------------------------------------------------*
report ZQM_BI_CERTIF_CREATE.




*------------------------------ TABLES -------------------------------*





*------------------------------- TYPES -------------------------------*
TYPES : BEGIN OF ts_data ,
          charact_name  TYPE atnam ,
        END   OF ts_data ,
        tt_data TYPE TABLE OF ts_data .





*------------------------------- DATA --------------------------------*
DATA : itg_data    TYPE tt_data     WITH HEADER LINE ,
       itg_bdcdata type TAB_BDCDATA with header line .





*------------------------- SELECTION SCREEN --------------------------*
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-t01.
PARAMETERS : p_file TYPE localfile.
selection-screen skip 1.
parameters : p_nom(12) obligatory
                       default 'ZBI_QC01' ,
             p_volnr   type QVORLNR
                       obligatory
                       default 'ZMODEL_FG3' ,
             p_ctyp    type QZGTYP
                       obligatory
                       default 'Z01' ,
             p_tdform  type QCTDFORM
                       obligatory
                       default 'QM_QCERT_01' ,
             p_sortf   type QSORTFELD
                       obligatory
                       default 'BA' .
SELECTION-SCREEN END   OF BLOCK b1.





*------------------------------ EVENTS -------------------------------*
* Demande de valeur sur le paramètre P_FILE.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
  CALL FUNCTION 'F4_FILENAME'
    IMPORTING
      file_name = p_file.





*------------------------------- MAIN --------------------------------*
START-OF-SELECTION.


* Read file.
  perform p_read_file.


* Create the BI.
  perform p_create_bi.


* Edit the result.
  perform p_edition.


END-OF-SELECTION.





*---------------------------------------------------------------------*
*   Form P_READ_FILE.                                                 *
*---------------------------------------------------------------------*
*---------------------------------------------------------------------*
FORM p_read_file.


  DATA : it_file      TYPE TABLE OF alsmex_tabline WITH HEADER LINE ,
         w_flag_row   TYPE kcd_ex_row_n ,
         w_flag_first TYPE char1 ,
         w_count(6)   TYPE n .


* Lecture du fichier Excel.
  CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
    EXPORTING
      filename    = p_file
      i_begin_col = '1'
      i_begin_row = '2'
      i_end_col   = '10'
      i_end_row   = '10000'
    TABLES
      intern      = it_file
    EXCEPTIONS
      OTHERS      = 3.

  IF sy-subrc NE space.
    MESSAGE i398(00) WITH text-e01.
    STOP.
  ENDIF.


* Initialise le flag.
  MOVE 'X' TO w_flag_first.

* Transfer les données de IT_FILE vers itg_data.
  LOOP AT it_file.
*   Test si nouvelle ligne, si oui -> enregistre.
    IF w_flag_row NE it_file-row.
      IF w_flag_first EQ space.
        APPEND itg_data.
        CLEAR  itg_data.
      ELSE.
        CLEAR w_flag_first.
      ENDIF.
      MOVE   it_file-row TO w_flag_row.
    ENDIF.
*   En fonction du numéro de colonne on enregistre dans la bonne
*   zone.
    CASE it_file-col.
      WHEN '0001'.
        MOVE it_file-value TO itg_data-charact_name.
    ENDCASE.
  ENDLOOP.

* Enregistre la dernière ligne.
  APPEND itg_data.
  CLEAR  itg_data.



ENDFORM.                    " P_READ_FILE.





*----------------------------------------------------------------------*
*   Procédure P_CREATE_BI.                                             *
*----------------------------------------------------------------------*
*----------------------------------------------------------------------*
form p_create_bi.


  data : w_flag_screen type char1 ,
         w_tabix(2)    type n ,
         w_tabix2(2)   type n ,
         w_c_tabix(2)  ,
         w_name        type FNAM_____4 .



* Open Batch-input.
  perform p_open_bdc using p_nom.


* Create the certificate.
  perform p_bdc_dynpro      using 'SAPMQCPA'
                                  '0100'.
  perform p_bdc_field       using 'BDC_OKCODE'
                                  '=ENT1'.
  perform p_bdc_field       using 'QCVKEA-VORLNR'
                                  p_volnr.
  perform p_bdc_field       using 'QCVKEA-CTYP'
                                  p_ctyp.

* Second screen.
  perform p_bdc_dynpro      using 'SAPMQCPA'
                                  '0110'.
  perform p_bdc_field       using 'BDC_OKCODE'
                                  '=MKUE'.
  perform p_bdc_field       using 'QCVKEA-SORTFELD'
                                  p_sortf.
  perform p_bdc_field       using 'QCVKEA-TDFORM'
                                  p_tdform.
  perform p_bdc_field       using 'QCVKEA-NOT_EXIST_SPRAS'
                                  sy-langu.

* Screen with the characteristic.
  perform p_bdc_dynpro      using 'SAPMQCPA'
                                  '0120'.
  perform p_bdc_field       using 'BDC_OKCODE'
                                  '/00'.


* Loop into the list of characteristique.
  loop at itg_data.

*   Check if we need to press "Next Page" button
    if w_flag_screen eq 'X'.
      perform p_bdc_dynpro      using 'SAPMQCPA'
                                      '0120'.
      perform p_bdc_field       using 'BDC_OKCODE'
                                      '=P+'.
      perform p_bdc_dynpro      using 'SAPMQCPA'
                                      '0120'.
      perform p_bdc_field       using 'BDC_OKCODE'
                                      '/00'.
      clear : w_flag_screen.
      move 1 to w_tabix.
    endif.

*   Increment the line number.
    w_tabix  = w_tabix + 1.
    w_tabix2 = w_tabix2 + 1.
    move w_tabix to w_c_tabix.

*   The screen have 15 lines.
    if w_tabix eq 15.
      move 'X' to w_flag_screen.
    endif.

*   Create the name of the field.
    concatenate 'QCVMEA-SORTNR('
                w_c_tabix
                ')'
                into w_name.
    perform p_bdc_field       using w_name
                                    w_tabix2.
*   Create the name of the field.
    concatenate 'QCVMEA-KATEGORIE('
                w_c_tabix
                ')'
                into w_name.
    perform p_bdc_field       using w_name
                                    '2'.
*   Create the name of the field.
    concatenate 'QCVMEA-ATNAM('
                w_c_tabix
                ')'
                into w_name.
    perform p_bdc_field       using w_name
                                    itg_data-charact_name.
  endloop.


* Save button.
  perform p_bdc_dynpro      using 'SAPMQCPA'
                                  '0120'.
  perform p_bdc_field       using 'BDC_OKCODE'
                                  '=SAVE'.


* Save the transaction.
  perform p_insert_bdc using 'QC01'.


* Close the Batch-input..
  perform p_close_bdc.


endform.                                 " P_CREATE_BI





*----------------------------------------------------------------------*
*   Procédure P_EDITION.                                               *
*----------------------------------------------------------------------*
*----------------------------------------------------------------------*
form p_edition.

  data : v_count(6) type n.


  write : /1 text-i01 ,
             p_nom .
  skip 2.
  describe table itg_data lines v_count.
  write : /1 text-i02 ,
             v_count .


endform.                                " P_EDITION.




*----------------------------------------------------------------------*
*   Form P_OPEN_BDC                                                    *
*----------------------------------------------------------------------*
*----------------------------------------------------------------------*
form p_open_bdc using v_nom_dossier.


  call function 'BDC_OPEN_GROUP'
       exporting
            client              = sy-mandt          " Numéro de mandant
            group               = v_nom_dossier     " Nom dossier batch
            keep                = 'X'               " Code
            user                = sy-uname          " Nom utilisateur
       exceptions
            client_invalid      = 1
            destination_invalid = 2
            group_invalid       = 3
            group_is_locked     = 4
            holddate_invalid    = 5
            internal_error      = 6
            queue_error         = 7
            running             = 8
            system_lock_error   = 9
            user_invalid        = 10
            others              = 11.

  if sy-subrc ne 0.
    write : /1 'Impossible de créer le dossier batch-input.' ,
            /1 'Erreur :' , sy-subrc.
    stop.
  endif.

  refresh itg_bdcdata.
  clear   itg_bdcdata.
  exit.


endform.                     " P_OPEN_BDC






*----------------------------------------------------------------------*
*   Form P_CLOSE_BDC                                                   *
*----------------------------------------------------------------------*
*----------------------------------------------------------------------*
form p_close_bdc.


  call function 'BDC_CLOSE_GROUP'
       exceptions
            not_open    = 1
            queue_error = 2
            others      = 3.

  if sy-subrc ne 0.
    write : /1 'Impossible de fermer le dossier batch-input.' ,
            /1 'Erreur :' , sy-subrc.
  endif.


endform.                     " CLOSE_BDC






*----------------------------------------------------------------------*
*   Form P_BDC_DYNPRO                                                  *
*----------------------------------------------------------------------*
*----------------------------------------------------------------------*
form p_bdc_dynpro using value(progname)
                        value(dynpronr).


* Efface la header-line.
  clear itg_bdcdata.

* Insertion des valeurs.
  itg_bdcdata-program  = progname.
  itg_bdcdata-dynpro   = dynpronr.
  itg_bdcdata-dynbegin = 'X'.

* Enregistrement des valeurs.
  append itg_bdcdata.


endform.                     " P_BDC_DYNPRO






*----------------------------------------------------------------------*
*   Form P_BDC_FIELD                                                   *
*----------------------------------------------------------------------*
*----------------------------------------------------------------------*
form p_bdc_field using value(fieldname)
                       value(fieldvalue).


* Efface la header-line.
  clear itg_bdcdata.

* Insertion des valeurs.
  itg_bdcdata-fnam = fieldname.
  itg_bdcdata-fval = fieldvalue.

* Enregistrement des valeurs.
  append itg_bdcdata.


endform.                     " P_BDC_FIELD






*----------------------------------------------------------------------*
* Form P_BDC_CURSOR                                                    *
*----------------------------------------------------------------------*
*----------------------------------------------------------------------*
form p_bdc_cursor using value(fieldname)
                        value(fieldvalue).


* Efface la header-line.
  clear itg_bdcdata.

* Insertion des valeurs.
  itg_bdcdata-fnam = fieldname.
  itg_bdcdata-fval = fieldvalue.

* Enregistrement des valeurs.
  append itg_bdcdata.


endform.                     " P_BDC_CURSOR






*----------------------------------------------------------------------*
*   Form  P_INSERT_BDC                                                 *
*----------------------------------------------------------------------*
*----------------------------------------------------------------------*
form p_insert_bdc using t_code.


  call function 'BDC_INSERT'
       exporting
            tcode            = t_code
       tables
            dynprotab        = itg_bdcdata
       exceptions
            internal_error   = 1
            not_open         = 2
            queue_error      = 3
            tcode_invalid    = 4
            printing_invalid = 5
            posting_invalid  = 6
            others           = 7.

  if sy-subrc ne 0.
    write : /1 text-003 ,
            /1 'Erreur :' , sy-subrc.
  endif.


  refresh itg_bdcdata.
  clear   itg_bdcdata.



endform.                  " P_INSERT_BDC

Read only

Former Member
0 Likes
423

check this,it may help u.

Using Table Control in BDC

Table control through bdc

http://www.sap-img.com/abap/bdc-example-using-table-control-in-bdc.htm

http://arthur_ong.tripod.com/xab023.htm

http://www.sap-img.com/abap/bdc-example-using-table-control-in-bdc.htm

https://www.sdn.sap.com/irj/sdn/advancedsearch?querystring=bdc%20table%20control&searchpluginname=sd

*********************************************

*BDC Example: Using Table Control in BDC

*******************************************

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.

Regards

Read only

Former Member
0 Likes
423

hi

good

there is nothing like BDC Table Control, besically the bdc concept is implemented in table control so it is called BDC in Table Contorol.

go through this report.

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.

thanks

mrutyun^