【ABAP】ME51N创建采购申请时,点击BOM组件带出默认存储地点

实现效果如下图
【ABAP】ME51N创建采购申请时,点击BOM组件带出默认存储地点_第1张图片
当我们在ME51N创建采购申请时,点击组件按钮进入组件概览,生产存储地点默认设置为4101。
采购申请类型:Z011,工厂:1100,组件物料类型:MARA-MATNR = 组件物料编码MDPM-MATNR,取:MARA-MTART,组件物料类型<>WH04
默认:组件库位MDPM-LGPRO = 4101

SE80进入后选择函数组EINK——包含LEINKF01——FORM:mdpm_fuellen,在此FORM结尾处创建隐式增强

【ABAP】ME51N创建采购申请时,点击BOM组件带出默认存储地点_第2张图片
【ABAP】ME51N创建采购申请时,点击BOM组件带出默认存储地点_第3张图片

先要获取采购申请屏幕上的凭证类型、工厂等数据,需要使用到内存传递
【ABAP】ME51N创建采购申请时,点击BOM组件带出默认存储地点_第4张图片
根据组件物料的类型进行赋值

    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.

以上代码仅供参考,需要根据实际业务进行调整。

你可能感兴趣的:(SAP,ABAP,MM)