BCD简单使用

第一步  录制屏幕
1)Tcode: SHDB
2)click 'New recording'
3)输入记录名,如:ZSAFETYSTOCK 和要录制的tcode,如mm02,选择一些必要的参数,点击'Start recording'
4)录制完后保存,选中录制的记录,单击'Program',系统会帮你产生一个程序.

第二步  修改产生的程序.

我将程序使用的批输入传输方法改为调用Tcode方法
修改的地方,我已用红色标出

PARAMETERS: p_filenm  LIKE rlgrap-filename. "修改此处

start-of-selection.

PERFORM upload_from_pc.   "修改此处,为了在用户PC上导入文件

loop at itab_record into record.

if sy-subrc <> 0. exit. endif.

perform bdc_dynpro      using 'SAPLMGMM' '0060'.
perform bdc_field       using 'BDC_CURSOR'
                              'RMMG1-MATNR'.
perform bdc_field       using 'BDC_OKCODE'
                              '=ENTR'.
perform bdc_field       using 'RMMG1-MATNR'
                              record-MATNR_001.
perform bdc_dynpro      using 'SAPLMGMM' '0070'.
perform bdc_field       using 'BDC_CURSOR'
                              'MSICHTAUSW-DYTXT(12)'.
perform bdc_field       using 'BDC_OKCODE'
                              '=ENTR'.
perform bdc_field       using 'MSICHTAUSW-KZSEL(12)'
                              record-KZSEL_12_002.
perform bdc_dynpro      using 'SAPLMGMM' '0080'.
perform bdc_field       using 'BDC_CURSOR'
                              'RMMG1-WERKS'.
perform bdc_field       using 'BDC_OKCODE'
                              '=ENTR'.
perform bdc_field       using 'RMMG1-WERKS'
                              record-WERKS_003.
perform bdc_dynpro      using 'SAPLMGMM' '4000'.
perform bdc_field       using 'BDC_OKCODE'
                              '=BU'.
*perform bdc_field       using 'MAKT-MAKTX'
*                              record-MAKTX_004.
*perform bdc_field       using 'MARC-BESKZ'
*                              record-BESKZ_005.
*perform bdc_field       using 'MARC-LGPRO'
*                              record-LGPRO_006.
*perform bdc_field       using 'MARC-LGFSB'
*                              record-LGFSB_007.
*perform bdc_field       using 'MARC-DZEIT'
*                              record-DZEIT_008.
*perform bdc_field       using 'MARC-WEBAZ'
*                              record-WEBAZ_009.
*perform bdc_field       using 'MARC-FHORI'
*                              record-FHORI_010.
perform bdc_field       using 'BDC_CURSOR'
                              'MARC-EISBE'.
perform bdc_field       using 'MARC-EISBE'
                              record-EISBE_011.
perform bdc_transaction using 'MM02' record-MATNR_001.

clear record.
endloop.

*增加如下两个FORM

*----------------------------------------------------------------------
*  AT SELECTION SCREEN
*----------------------------------------------------------------------
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_filenm.
  PERFORM query_filename USING p_filenm.

FORM query_filename  USING t_filenm.
  CALL FUNCTION 'WS_FILENAME_GET'
    EXPORTING
      def_path         = 'C:/'
      mask             = ',*.*,'
      mode             = 'O'
    IMPORTING
      filename         = t_filenm
    EXCEPTIONS
      inv_insys        = 1
      no_batch         = 2
      selection_cancel = 3
      selection_error  = 4
      OTHERS           = 5.
  IF sy-subrc = 0.
    p_filenm = t_filenm.
  ENDIF.
ENDFORM.          " query_filename

FORM upload_from_pc.
  CALL FUNCTION 'WS_UPLOAD'
    EXPORTING
      filename            = p_filenm    "Insert your code here
      filetype            = 'DAT'
    TABLES
      data_tab            = itab_record
    EXCEPTIONS
      conversion_error    = 1
      file_open_error     = 2
      file_read_error     = 3
      invalid_table_width = 4
      invalid_type        = 5
      no_batch            = 6
      unknown_error       = 7
      OTHERS              = 8.

  IF sy-subrc NE 0.
    MESSAGE e001(zmsg) WITH '文件格式错误'.
    STOP.
  ENDIF.
ENDFORM.        "UPLOAD_FROM_PC
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值