MIGO 收货批次增强

SMOD : SAPLV01Z

函数: EXIT_SAPLV01Z_002

在MIGO界面,当批次属性没有值的时候,会进入这个增强,当有值的时候,不走此段逻辑。

以下是样例代码

*&---------------------------------------------------------------------*
*& 包含               ZXVBZU02
*&---------------------------------------------------------------------*
"在做收货业务(采购收货、生产收货、501无订单收货)时,根据业务类型给物料批次号,

DATA: lv_charg_like TYPE charg_d.
DATA: lv_mm(2) TYPE c.
DATA: lv_serial.

SELECT SINGLE loggr FROM marc INTO @DATA(lv_loggr) WHERE matnr = @x_bncom-matnr AND werks = @x_bncom-werks.

SELECT SINGLE mstae FROM mara INTO @DATA(lv_mstae) WHERE matnr = @x_bncom-matnr.


CASE x_bncom-bwart.
  WHEN '101'. "采购\生产订单收货
    IF x_bncom-lifnr <> ''.  "采购订单收货

      IF lv_loggr = '200'. "Batch=MSEG- LIFNR+YMDD+1位流水(M10=A,M11-B,M12=C)
        lv_mm = sy-datum+4(2).
        SHIFT lv_mm LEFT DELETING LEADING '0'.
        CASE lv_mm.
          WHEN '10'.
            lv_mm = 'A'.
          WHEN '11'.
            lv_mm = 'B'.
          WHEN '12'.
            lv_mm = 'C'.
          WHEN OTHERS.
        ENDCASE.
        lv_charg_like = x_bncom-lifnr+5(5) && sy-datum+3(1) && lv_mm+0(1) && sy-datum+6(2) &&  '%'.
        SELECT MAX( charg ) INTO new_charg FROM mcha WHERE matnr = x_bncom-matnr AND werks = x_bncom-werks AND charg LIKE lv_charg_like.
        IF sy-subrc = 0 AND new_charg IS NOT INITIAL.
          IF new_charg+9(1) < '9'.
*          lv_serial = new_charg+9(1) + 1.
            new_charg+9(1)  = new_charg+9(1) + 1.
          ELSEIF new_charg+9(1) = '9'.
            new_charg+9(1) = zcl_abap_common=>get_alphabet_next( iv_letter = '' ).
          ELSEIF new_charg+9(1) = 'Z'.
          ELSE.
            new_charg+9(1) = zcl_abap_common=>get_alphabet_next( iv_letter = new_charg+9(1) ).
          ENDIF.
        ELSE.
          new_charg = x_bncom-lifnr+5(5) && sy-datum+3(1) && lv_mm+0(1) && sy-datum+6(2) && '1'.
        ENDIF.

      ELSEIF ( lv_loggr = '100' OR  lv_loggr = '').
        new_charg = '9'.

      ENDIF.

    ENDIF.

    IF x_bncom-aufnr <> ''. "生产订单收货

      IF lv_loggr = '200'. "Batch=MSEG- AUFNR+MARA- MSTAE:
        new_charg = x_bncom-aufnr+2(8) && lv_mstae.

      ELSEIF ( lv_loggr = '100' OR  lv_loggr = '').
        new_charg = '9'.

      ENDIF.

    ENDIF.
  WHEN '501'. ""无订单收获
    IF x_bncom-sobkz = 'B'.

      IF lv_loggr = '200'. "Batch=YYMMDD+4位流水:2209280001
        lv_charg_like = sy-datum+2(6) && '%'.

        SELECT MAX( charg ) INTO new_charg FROM mcha WHERE matnr = x_bncom-matnr AND werks = x_bncom-werks AND charg LIKE lv_charg_like.
        IF sy-subrc = 0 AND new_charg IS NOT INITIAL.
          new_charg = new_charg + 1.
        ELSE.
          new_charg = sy-datum+2(6) && '0001'.
        ENDIF.

      ELSEIF ( lv_loggr = '100' OR  lv_loggr = '').
        new_charg = '9'.

      ENDIF.

    ENDIF.
  WHEN OTHERS.
ENDCASE.

<think>好的,我现在要解决用户在SAP中使用MIGO收货时遇到的“转换中计划存货”提示的问题。首先,我需要理解这个提示的具体含义和出现的原因。根据用户提供的引用内容,特别是引用[1]提到的公司间业务,如跨工厂调拨物料,可能涉及到库存状态的转换。此外,引用[2]中提到的不同科目分配和库存类型也可能相关。 首先,“转换中计划存货”可能意味着系统正在处理某种计划内的库存转换,比如从在途库存转为可用库存。这可能发生在跨工厂调拨或采购订单收货过程中。用户可能在执行MIGO移动类型时,例如101(采购订单收货),系统检测到相关物料需要状态转换,因此出现提示。 接下来,我需要考虑可能的解决方案。根据SAP的标准处理流程,可能需要检查物料的移动类型是否正确,或者相关配置是否支持自动转换。例如,检查物料主数据中的库存管理视图,确认是否设置了自动转换计划库存到非限制库存。另外,可能需要执行后续操作,如使用移动类型321或其他相关事务来完成转换。 同时,用户提到的公司间业务可能涉及特殊库存类型,如E库存(在途库存),这时候需要确保调拨订单或采购订单的步骤正确,比如先发货过账到在途库存,再在目标工厂收货。如果在收货时没有自动转换,可能需要手动处理或检查后台配置是否正确。 此外,用户可能需要检查相关凭证,如调拨订单或采购订单的凭证流,确认是否有未完成的步骤。如果系统提示需要手动干预,可能需要使用相应的移动类型来完成库存状态的转换。 最后,总结可能的解决方案步骤,包括检查移动类型、物料主数据配置、执行必要的事务代码,以及验证相关凭证的完整性。如果问题仍然存在,可能需要联系SAP支持或检查后台配置是否有误。</think>针对SAP MIGO收货时出现“转换中计划存货”提示的问题,以下是分步解决方案: ### 1. 理解提示含义 该提示表示系统检测到存在需要转换库存状态的操作,通常涉及计划库存(如**在途库存**)与**非限制使用库存**的转换。常见于跨工厂调拨、采购订单收货等场景[^1]。 ### 2. 检查前置条件 - **检查移动类型**:确认使用的移动类型是否支持自动转换(如101采购订单收货) - **验证物料凭证**:通过`MB03`检查原始调拨单/采购单是否已完成发货过账 - **查看库存类型**:使用`MMBE`检查物料在工厂/库存地点的库存状态 ### 3. 标准解决方案步骤 1. **执行库存状态转换** ```ABAP MIGO -> A08(其他)-> 选择移动类型321 输入源工厂/目标工厂和物料编号 ``` > 注意:移动类型321专用于将**计划库存**转换为**非限制库存** 2. **检查自动转换配置** - 事务代码`OMJJ`检查移动类型配置 - 物料主数据视图`MRP2`中确认"自动转换库存"标识 ### 4. 跨工厂调拨特殊处理 若涉及公司间调拨(如工厂间转移): ```ABAP 1. 使用VL10B创建交货单 2. VL02N发货过账(产生在途库存) 3. MIGO在目标工厂使用移动类型501/503收货 ``` 此时系统会自动处理库存状态转换,若仍出现提示需检查: - 调拨订单是否完整创建(事务代码ME21N) - 是否已执行发货过账操作 ### 5. 验证操作结果 通过以下方式确认转换完成: ```ABAP MB51 -> 输入物料号筛选相关凭证 MMBE -> 查看库存类型变化 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值