使用Call Transaction来实现BDC(转)

data:

ls_bdc like bdcdata,

lt_bdc like standard table of bdcdata.


data:

w_dis_mode type char1 value 'A',

w_upd_mode type char1 value 'S',

w_session LIKE APQI-GROUPID value 'SESSION1-54' .


start-of-selection.

*1. filling BDC table

  perform fill_bdc_tab.


*2. output the data

  ULINE /5(65).

  WRITE:/5 'Program',

  15 'Screen',

  25 'New Screen',

  40 'Field Name',

  55 'Field Value'.

  LOOP AT lt_bdc into ls_bdc.

    WRITE: /5 ls_bdc-PROGRAM,

    15 ls_bdc-DYNPRO,

    30 ls_bdc-DYNBEGIN,

    40 ls_bdc-FNAM,

    55 ls_bdc-FVAL.

  ENDLOOP.


*3. call transaction to implement BDC

  ULINE /5(65).

  WRITE: / 'call transaction to implement BDC'.

  call transaction 'FK01'

  using lt_bdc

  mode w_dis_mode

  update w_upd_mode.


  IF SY-SUBRC = 0.

    WRITE: / 'Call Transaction: updated successfully!'.

  ELSE.

    WRITE: / 'Call Transaction: updated failed!'.

  ENDIF.



*&———————————————————————*

*& Form fill_bdc_tab

*&———————————————————————*

* Fill BDC data

*———————————————————————-*

FORM fill_bdc_tab .


* clear bdc

  refresh:lt_bdc.


* fill BDC

  perform populate_bdc_tab using:

  '1' 'SAPMF02K' '0105', "initial create vendor screen

  ' ' 'BDC_CURSOR' 'RF02K-KTOKK',

  ' ' 'RF02K-LIFNR' 'TEST2',

  ' ' 'RF02K-BUKRS' '0001', "Company code

  ' ' 'RF02K-KTOKK' 'ZTMM', "Account group

  ' ' 'BDC_OKCODE' '/00',


  '1' 'SAPMF02K' '0110',

  ' ' 'BDC_CURSOR' 'LFA1-LAND1',

  ' ' 'LFA1-NAME1' 'tang',

  ' ' 'LFA1-SORTL' 'can',

  ' ' 'LFA1-LAND1' 'CN',

  ' ' 'LFA1-ANRED' 'Mr.Tang',

' ' 'LFA1-SPRAS' 'EN',

' ' 'BDC_OKCODE' '/00',


'1' 'SAPMF02K' '0120',

' ' 'BDC_OKCODE' '=UPDA',

' ' 'BDC_CURSOR' 'LFA1-KUNNR',

' ' 'BDC_SUBSCR' 'SAPMF02K 1099ARI-ST',

' ' 'BDC_SUBSCR' 'SAPMF02K 1099ARI-01',

' ' 'BDC_SUBSCR' 'SAPMF02K 1099ARI-02',

' ' 'BDC_SUBSCR' 'SAPMF02K 1099ARI-03',

' ' 'BDC_SUBSCR' 'SAPMF02K 1099ARI-04',

' ' 'BDC_SUBSCR' 'SAPMF02K 1099ARI-05',

' ' 'BDC_SUBSCR' 'SAPMF02K 1099ARI-06',


'1' 'SAPMF02K' '0210',

' ' 'BDC_CURSOR' 'LFB1-AKONT',

' ' 'LFB1-AKONT' '197100',

' ' 'BDC_OKCODE' '=UPDA'.


ENDFORM.                    "fill_bdc_tab
" fill_bdc_tab

*&———————————————————————*

*& Form populate_bdc_tab

*&———————————————————————*

* fill data to bdc

*———————————————————————-*

* –>P_0024 text

* –>P_0025 text

* –>P_0026 text

*———————————————————————-*

FORM populate_bdc_tab USING FLAG type char1

VAR1 type any

VAR2 type any.


CLEAR ls_bdc.

if flag = '1'.

  ls_bdc-program = var1.

  ls_bdc-dynpro = var2.

  ls_bdc-dynbegin = 'X'.

else.

  ls_bdc-fnam = var1.

  ls_bdc-fval = var2.

endif.


APPEND ls_bdc to lt_bdc.


ENDFORM.                    "fill_bdc_tab
"populate_bdc_tab

猜你喜欢

转载自caoxuhuan.iteye.com/blog/914289
今日推荐