SAP ABAP/4學習---BDC批量輸入寫成內表程序
2024-07-21 02:06:46
供稿:網友
 
*-----------------------------------------------------------------------
* program id    :ztest904_bdc
* program name  :ztest904_bdc
*-----------------------------------------------------------------------
* created date  :2004/09/04
* created by    :liugang
* description   :這個程序是學習如何通過程序來調用
*                bdc自動導入數據的。
*-----------------------------------------------------------------------
* modification  :
* date modified       modified by     transport request    description
* 2004/09/04          liugang         version:01/01            學習
*-----------------------------------------------------------------------
report ztest904_bdc.
* 定義個bdc格式的內表
**************************************************
data : begin of i_bdcdata occurs 0,
*bdc的程序名字,比如事物碼mm01的程序名字為saplmgmm(sap標準程序)
         program like bdcdata-program,
*bdc dynpro 號碼
         dynpro like bdcdata-dynpro,
*bdc bdc dynpro 開始
         dynbegin like bdcdata-dynbegin,
*bdc 項目名字
         fnam like bdcdata-fnam,
*bdc 項目名字的附加值
         fval like bdcdata-fval,
       end of i_bdcdata.
data: begin of itab occurs 0,
         a(9),
      end   of itab.
itab-a = 'a0010'.
append itab.
itab-a = 'a0011'.
append itab.
 
* start-of-selection
start-of-selection.
loop at itab.
   perform append_mm01 using itab-a.
   perform run_bdc.
endloop.
*---------------------------------------------------------------------*
*       form append_data_mm01                                         *
*---------------------------------------------------------------------*
*       定義一個子程序里面,用來存放操作的各個步驟                     *
*---------------------------------------------------------------------*
form append_mm01 using fval like itab-a.
  clear i_bdcdata.
  clear i_bdcdata[].
*開始新的畫面事件
*0173畫面
*把程序名字和 bdc dynpro號碼,開始標志 寫入內表表頭,
  i_bdcdata-program = 'saplmgmm'.
  i_bdcdata-dynpro = '0060'.
  i_bdcdata-dynbegin = 'x'.
  append i_bdcdata.
  clear i_bdcdata.
  i_bdcdata-fnam = 'bdc_cursor'.
  i_bdcdata-fval = 'rmmg1-matnr'.
  append i_bdcdata.
  clear i_bdcdata.
  i_bdcdata-fnam = 'bdc_okcode'.
  i_bdcdata-fval = '/00'.
  append i_bdcdata.
  clear i_bdcdata.
  i_bdcdata-fnam = 'rmmg1-matnr'.
*新建立的物料憑證號碼
* i_bdcdata-fval = 'a004'.
  i_bdcdata-fval = fval.
  append i_bdcdata.
  clear i_bdcdata.
  i_bdcdata-fnam = 'rmmg1-mbrsh'.
  i_bdcdata-fval = 'c'.
  append i_bdcdata.
  clear i_bdcdata.
  i_bdcdata-fnam = 'rmmg1-mtart'.
  i_bdcdata-fval = 'werb'.
  append i_bdcdata.
  clear i_bdcdata.
*開始新的畫面事件
  i_bdcdata-program = 'saplmgmm'.
  i_bdcdata-dynpro = '0070'.
  i_bdcdata-dynbegin = 'x'.
  append i_bdcdata.
  clear i_bdcdata.
  i_bdcdata-fnam = 'bdc_cursor'.
  i_bdcdata-fval = 'msichtausw-dytxt(01)'.
  append i_bdcdata.
  clear i_bdcdata.
  i_bdcdata-fnam = 'bdc_okcode'.
  i_bdcdata-fval = '=entr'.
  append i_bdcdata.
  clear i_bdcdata.
  i_bdcdata-fnam = 'msichtausw-kzsel(01)'.
  i_bdcdata-fval = 'x'.
  append i_bdcdata.
  clear i_bdcdata.
*開始新的畫面事件
  i_bdcdata-program = 'saplmgmm'.
  i_bdcdata-dynpro = '4004'.
  i_bdcdata-dynbegin = 'x'.
  append i_bdcdata.
  clear i_bdcdata.
  i_bdcdata-fnam = 'bdc_okcode'.
  i_bdcdata-fval = '=bu'.
  append i_bdcdata.
  clear i_bdcdata.
  i_bdcdata-fnam = 'bdc_cursor'.
  i_bdcdata-fval = 'makt-maktx'.
  append i_bdcdata.
  clear i_bdcdata.
  i_bdcdata-fnam = 'makt-maktx'.
  i_bdcdata-fval = '測試bdc導入數據'.
  append i_bdcdata.
  clear i_bdcdata.
  i_bdcdata-fnam = 'mara-meins'.
  i_bdcdata-fval = '000'.
  append i_bdcdata.
  clear i_bdcdata.
  i_bdcdata-fnam = 'mara-mtpos_mara'.
  i_bdcdata-fval = 'norm'.
  append i_bdcdata.
  clear i_bdcdata.
endform.
*---------------------------------------------------------------------*
*       form run_bdc                                                  *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
form run_bdc.
*開始調用事務mm01,把做好的bdc對象傳遞過去,然后把模式設置為a,
*就是說所有窗口,均可以看見.
* n 表示不看見吧
  call transaction 'mm01' using i_bdcdata mode 'n'.
endform.