CO01CO02 CO03 工单下达校验BADI WORKORDER_UPDATE

SE19创建BADI实施

METHOD :AT_RELEASE 

method IF_EX_WORKORDER_UPDATE~AT_RELEASE.
  DATA:LV_REL_FLG TYPE CHAR01 .
  IF I_AKTYP EQ 'V' OR I_AKTYP EQ 'H' or sy-tcode = 'COHVOMRELEASE'.
    LV_REL_FLG = 'X'.
    EXPORT P1 = LV_REL_FLG  TO MEMORY ID 'ZREL' .
  ENDIF.
  endmethod.

METHOD AT_SAVE

*未滚算标准成本不允许下达工单。
    IMPORT  P1 = LV_REL_FLG  FROM MEMORY ID 'ZREL' .
    IF SY-SUBRC = 0 .
      IF LV_REL_FLG  EQ 'X' . "工单下达操作。
        IF IS_HEADER_DIALOG-KDAUF_AUFK IS NOT INITIAL AND IS_HEADER_DIALOG-KDPOS_AUFK IS NOT INITIAL .
*若带销售订单,系统检查该生产订单对应的物料编码在表:EBEW 基于销售订单+销售订单行项目+物料编码的条件搜索,
*若能找到符合条件的记录,且字段:EBEW-VMSTP>0,则系统继续进行。
*若找不符合条件的记录,则系统报错,报错消息:生产订单未做销售订单标准成本价发布,请联系财务发布。
          SELECT
            *
            INTO CORRESPONDING FIELDS OF TABLE LT_EBEW
            FROM EBEW
            WHERE
            MATNR EQ IS_HEADER_DIALOG-MATNR
            AND VBELN EQ IS_HEADER_DIALOG-KDAUF_AUFK
            AND POSNR EQ IS_HEADER_DIALOG-KDPOS_AUFK
            and BWKEY eq is_header_dialog-WERKS
            AND EBEW~VMSTP > 0.
          DESCRIBE TABLE LT_EBEW LINES LV_COUNT .
          IF LV_COUNT GE 1 .
          ELSE .
            MESSAGE '生产订单未做销售订单标准成本价发布,请联系财务发布' TYPE 'E' RAISING ERROR_WITH_MESSAGE.
          ENDIF .
        ELSE .
*若不带销售订单,系统检查该生产订单对应的物料编码在表:MBEW 基于物料编码的条件搜索,
*若能找到符合条件的记录且字段:MBEW-STPRS>0,则系统继续进行。
          SELECT
            *
            INTO CORRESPONDING FIELDS OF TABLE LT_MBEW
            FROM MBEW
            WHERE
            MATNR EQ IS_HEADER_DIALOG-MATNR
            AND  BWKEY EQ IS_HEADER_DIALOG-WERKS
            AND MBEW~STPRS > 0 .
          DESCRIBE TABLE LT_MBEW LINES LV_COUNT .
          IF LV_COUNT GE 1 .
          ELSE .
            MESSAGE '生产订单未做标准成本价发布,请联系财务发布' TYPE 'E' RAISING ERROR_WITH_MESSAGE.
          ENDIF .
*若找不符合条件的记录,则系统报错,报错消息:生产订单未做标准成本价发布,请联系财务发布。
        ENDIF .
      ENDIF .
    ENDIF.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值