在创建时物料描述必须不相同,loop重复调用这段代码实现,物料凭证的批量创建。
注意:当ls_option-dismode = 'A'.可以进行调试,N的话不用调试,和还有个E模式,好像兼容也不错,如果A模式不成功。尝试一下E模式,报错才退出
DATA: LT_MESSTAB TYPE TABLE OF BDCMSGCOLL,
LS_MESSTAB TYPE BDCMSGCOLL,
LS_OPTION TYPE CTU_PARAMS.
"定义BDC相关变量
DATA:GT_BDCDATA TYPE TABLE OF BDCDATA,
GS_BDCDATA TYPE BDCDATA.
PERFORM FRM_BDC_DYNPRO USING 'SAPLMGMM' '0060'.
PERFORM FRM_BDC_FIELD USING 'BDC_CURSOR'
'RMMG1-MTART'.
PERFORM FRM_BDC_FIELD USING 'BDC_OKCODE'
'=AUSW'.
PERFORM FRM_BDC_FIELD USING 'RMMG1-MBRSH'
'C'.
PERFORM FRM_BDC_FIELD USING 'RMMG1-MTART'
'EPA'.
PERFORM FRM_BDC_DYNPRO USING 'SAPLMGMM' '0070'.
PERFORM FRM_BDC_FIELD USING 'BDC_CURSOR'
'MSICHTAUSW-DYTXT(02)'.
PERFORM FRM_BDC_FIELD USING 'BDC_OKCODE'
'=ENTR'.
PERFORM FRM_BDC_FIELD USING 'MSICHTAUSW-KZSEL(01)'
'X'.
PERFORM FRM_BDC_FIELD USING 'MSICHTAUSW-KZSEL(02)'
'X'.
PERFORM FRM_BDC_DYNPRO USING 'SAPLMGMM' '4004'.
PERFORM FRM_BDC_FIELD USING 'BDC_OKCODE'
'=BU'.
PERFORM FRM_BDC_FIELD USING 'MAKT-MAKTX'
'42432535SSS43541'.
PERFORM FRM_BDC_FIELD USING 'BDC_CURSOR'
'MARA-MEINS'.
PERFORM FRM_BDC_FIELD USING 'MARA-MEINS'
'CM'.
PERFORM FRM_BDC_FIELD USING 'MARA-MTPOS_MARA'
'VERP'.
PERFORM FRM_BDC_FIELD USING 'BDC_OKCODE' '=BU'.
*PERFORM BDC_TRANSACTION USING 'MM01'.
LS_OPTION-DISMODE = 'N'.
LS_OPTION-UPDMODE = 'S'.
CALL TRANSACTION 'MM01' WITH AUTHORITY-CHECK
USING GT_BDCDATA
OPTIONS FROM LS_OPTION
MESSAGES INTO LT_MESSTAB.
IF LT_MESSTAB[] IS NOT INITIAL.
ENDIF.
FORM FRM_BDC_DYNPRO USING PV_PROGRAM PV_DYNPRO.
"BDC屏幕
CLEAR GS_BDCDATA.
GS_BDCDATA-PROGRAM = PV_PROGRAM.
GS_BDCDATA-DYNPRO = PV_DYNPRO.
GS_BDCDATA-DYNBEGIN = 'X'.
APPEND GS_BDCDATA TO GT_BDCDATA.
ENDFORM. "frm_bdc_dynpro
*----------------------------------------------------------------------*
* Insert field *
*----------------------------------------------------------------------*
FORM FRM_BDC_FIELD USING PV_FNAM PV_FVAL.
"BDC字段
CLEAR GS_BDCDATA.
GS_BDCDATA-FNAM = PV_FNAM.
GS_BDCDATA-FVAL = PV_FVAL.
APPEND GS_BDCDATA TO GT_BDCDATA.
ENDFORM. "frm_bdc_field