实现效果如下图
当我们在ME51N创建采购申请时,点击组件按钮进入组件概览,生产存储地点默认设置为4101。
采购申请类型:Z011,工厂:1100,组件物料类型:MARA-MATNR = 组件物料编码MDPM-MATNR,取:MARA-MTART,组件物料类型<>WH04
默认:组件库位MDPM-LGPRO = 4101
SE80进入后选择函数组EINK——包含LEINKF01——FORM:mdpm_fuellen,在此FORM结尾处创建隐式增强
先要获取采购申请屏幕上的凭证类型、工厂等数据,需要使用到内存传递
根据组件物料的类型进行赋值
IMPORT mdpa FROM MEMORY ID 'ZHGZY_MDPA'.FREE MEMORY ID 'ZHGZY_MDPA'.DATA:lv_mtart TYPE MARA-mtart.LOOP AT mdpmx.CLEAR lv_mtart.IF mdpa-pwwrk = '1100' AND mdpa-paart = 'Z011'.SELECT SINGLE mtart INTO lv_mtart FROM mara WHERE matnr = mdpmx-matnr.IF lv_mtart <> 'WH04'.mdpmx-lgpro = '4101'.ENDIF.ELSE.mdpmx-lgpro = ''.ENDIF.MODIFY mdpmx.ENDLOOP.
以上代码仅供参考,需要根据实际业务进行调整。