因为这里是基于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.