QA11 QA32增强

使用事务代码QA11或QA32做使用决策时,点击保存触发增强(根据界面上的检验批号LINK表字段

QALS-PRUEFLOS取出QALS-MATNR、QALS-LIFNR和QALS-WERK LINK自建表1中的供应商、物料

和工厂取对应自建表1中“是否管控”字段值是否为N,如果为N则不进入增强,否则进入增强,并进行

以下判断:

1、根据QALS-LIFNR和QALS-MATNR、QALS-WERKS LINK自建表1中的供应商+物料+工厂取出报告到

期日(如果取到多条数据,则只取报告到期日最早的那条数据做下面的校验),然后用报告到期日减去检验批

创建日期(QALS-ENSTEHDAT):
1)当报告到期日减去检验批创建日期(QALS-ENSTEHDAT)小于或等于自建表1中的“提醒IQC周期

(天)”字段值,并且对应的自建表1中“是否提醒IQC”字段不为N,则弹出警告消息:该检验批物料

XXXX的子材料XXXX报告编码XXXX还有多少天到期,回车可跳过消息并允许保存;
2)当报告到期日减去检验批创建日期(QALS-ENSTEHDAT)大于自建表1中的“控制IQC周期(天)”

字段值,并且对应的自建表1中“是否控制IQC”字段不为N,则弹出错误消息:该检验批物料XXXX的子

材料XXXX报告编码XXXX已超期XXXX天,不允许保存。

 

 

SE19 输入相应的增强BADI 创建相应的增强

填写短文本

上面显示的是保存前检查的方法 相关程序写在这里面

method IF_EX_INSPECTIONLOT_UPDATE~SET_UD_AT_SAVE.
      DATAi_data1    TYPE QALS,
            i_data2    TYPE QALS,
            i_data3 TYPE  QAVE.

      DATAgt_ztmm035 TYPE TABLE OF ztmm035,
            gs_ztmm035 type ztmm035.

      DATAlv_data(6TYPE c.

      IF sy-tcode 'QA11' .

        i_data1 NEW_INSPLOT.
        i_data2 OLD_INSPLOT.
        i_data3 UD_DATA.
*
*        LOOP AT items INTO line_item.
*
*        CLEAR: po_line.
*        po_line = line_item-item->get_data( ).
*
          SELECT WERKS MATNR LIFNR SFGK JSRQ ZCLMC  TXIQCZQ TXIQC BGBH
          
INTO CORRESPONDING FIELDS OF TABLE gt_ztmm035
          
FROM ztmm035
          
WHERE WERKS i_data1-werk
          
and matnr i_data1-matnr
          
and lifnr i_data1-lifnr
          
and SFGK <> 'N'.
*
           SORT gt_ztmm035 by WERKS matnr lifnr JSRQ.
*
*        CLEAR lv_data.
        READ TABLE gt_ztmm035 INTO gs_ztmm035 WITH  KEY WERKS i_data1-werk matnr i_data1-matnr lifnr i_data1-lifnr BINARY SEARCH.
        if sy-subrc 0.
           CALL FUNCTION 'FIMA_DAYS_AND_MONTHS_AND_YEARS'
            EXPORTING
              I_DATE_FROM    i_data1-ENSTEHDAT
              I_DATE_TO      
gs_ztmm035-JSRQ
              I_FLG_SEPARATE 
' '       "是否单独计算 若有标识,则返回两日期相差的天数
            IMPORTING
              E_DAYS         lv_data.  "返回天数:638
*
           if lv_data <= gs_ztmm035-TXIQCZQ AND gs_ztmm035-TXIQC <> 'N'.
             MESSAGE '该批检验批物料&& gs_ztmm035-matnr && '的子材料&& gs_ztmm035-ZCLMC && '报告编码&& gs_ztmm035-BGBH
             && 
'还有&& lv_data  && '天到期,回车可跳过消息并允许保存订单TYPE 'I' DISPLAY LIKE 'W'.
           ENDIF.
*
           if lv_data > gs_ztmm035-TXIQCZQ AND gs_ztmm035-TXIQC <> 'N'.
             MESSAGE '该批检验批物料&& gs_ztmm035-matnr && '的子材料&& '报告编码&& gs_ztmm035-BGBH && gs_ztmm035-ZCLMC && '已超期'
             && lv_data &&  '不允许保存TYPE 'I' DISPLAY LIKE 'E'.
           ENDIF.
*
           ENDIF.
           CLEAR gs_ztmm035.
*
*
*
*
*        ENDLOOP.
       ENDIF.
  endmethod.

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值