事物代码:SHDB
点击开始记录,开始进行录屏操作。
选中该条记录,生成程序。
根据生成的代码,进行整理的时候,可以调用系统封装过的函数,也可以自己进行归纳,抽离代码。
*&---BDC录屏返回消息
DATA i_messtab LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE.
DATA:bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE.
LOOP AT gt_burks INTO gw_burks.
*&===BOM BDC处理
*&---打开BDC
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
client = sy-mandt
group = gv_group
user = sy-uname.
IF sy-subrc <> 0.
ENDIF.
CLEAR:bdcdata[].
REFRESH i_messtab.
PERFORM bdc_dynpro USING 'SAPMM03Y' '0100'.
PERFORM bdc_field USING 'BDC_CURSOR' "记录光标的位置
'MARV-BUKRS'.
PERFORM bdc_field USING 'BDC_OKCODE' "记录动作
'/00'.
PERFORM bdc_field USING 'MARV-BUKRS' "记录屏幕输入的字段
gw_burks-bukrs_001.
PERFORM bdc_dynpro USING 'SAPMM03Y' '0110'.
PERFORM bdc_field USING 'BDC_CURSOR'
'MARV-XRUEM'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=BU'.
PERFORM bdc_field USING 'MARV-XRUEM'
gw_burks-xruem_002.
*&---调用BDC事务
CALL TRANSACTION 'MMRV' USING bdcdata
MODE 'N'
UPDATE 'S'
MESSAGES INTO i_messtab.
*&---错误消息处理
DATA:e_mess(50).
CLEAR:e_mess.
* LOOP AT i_messtab WHERE msgtyp = 'E' OR msgtyp = 'A'.
LOOP AT i_messtab .
CALL FUNCTION 'MESSAGE_TEXT_BUILD'
EXPORTING
msgid = i_messtab-msgid
msgnr = i_messtab-msgnr
msgv1 = i_messtab-msgv1
msgv2 = i_messtab-msgv2
msgv3 = i_messtab-msgv3
msgv4 = i_messtab-msgv4
IMPORTING
message_text_output = e_mess.
MESSAGE e_mess TYPE 'S'.
gw_burks-bz = e_mess.
ENDLOOP.
*关闭BDC
CALL FUNCTION 'BDC_CLOSE_GROUP'.
IF sy-subrc <> 0.
ENDIF.
MODIFY gt_burks FROM gw_burks.
ENDLOOP.
*用到的两个系统的BDC函数
*----------------------------------------------------------------------*
* Start new screen *
*----------------------------------------------------------------------*
FORM bdc_dynpro USING program dynpro.
CLEAR bdcdata.
bdcdata-program = program.
bdcdata-dynpro = dynpro.
bdcdata-dynbegin = 'X'.
APPEND bdcdata.
ENDFORM.
*----------------------------------------------------------------------*
* Insert field *
*----------------------------------------------------------------------*
FORM bdc_field USING fnam fval.
CLEAR bdcdata.
bdcdata-fnam = fnam.
bdcdata-fval = fval.
APPEND bdcdata.
ENDFORM.