【ABAP】基于BADI:INSPECTIONLOT_UPDATE 新增/修改检验批。质检决策下发的增强

因为这里是基于BADI做的增强  首先我们对BADI创建实施点(SE19-创建实施)

下方以创建检验批为例生成检验批后即可获取当前检验批数据

检验批编号为预生成的号码段 生成后不一定在QALS保存,所以我们要先校验生成保存在系统内

可在( IF_EX_INSPECTIONLOT_UPDATE~CREATE_BEFORE_UPDATE)进行校验,确定存系统后(标准表QALS)可进行检验批数据的处理

METHOD if_ex_inspectionlot_update~create_before_update.

 DATA(l_bool) = NEW zcl_p0pp_l_if0015( )->check_status( i_type = 'I' 
                                                       i_objnr = insplot-objnr ).
    IF l_bool = 'I'.
 "此处可对检验批进行操作了 数据存在系统变量 insplot 中"
    ELSE.
*      MESSAGE '当前检验批 未发送LIMS' TYPE 'S' DISPLAY LIKE 'W'.
    ENDIF.


ENDMETHOD.


"I_Bool取值逻辑"
 DATA:ls_status TYPE jstat,
      lt_status TYPE TABLE OF jstat. 

  CALL FUNCTION 'STATUS_READ'
    EXPORTING
      client           = sy-mandt
      objnr            = i_objnr
    TABLES
      status           = lt_status
    EXCEPTIONS
      object_not_found = 1
      OTHERS           = 2.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.
  SORT lt_status BY stat  inact.

"已就绪 *'I0002'". 
 READ TABLE lt_status INTO ls_status WITH KEY stat  = 'I0002'
                                              inact = abap_false.
 IF sy-subrc = 0.
    r_bool = 'I'.
 ELSE.
    r_bool = 'E'.
 ENDIF. 
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值