在SAP中对于如何获取订单的状态,提供了至少两个函数,分别是 STATUS_READ 和 STATUS_TEXT_EDIT
1.STATUS_TEXT_EDIT 改函数读取的结果是将订单状态拼接到一个字符串中,而且这个字符串是在前台订单上看到的状态,比较直接,这样做的结果就可能由于状态较多导致长度过长,在某些情况下取的数据可能不准。
* 1、读取工单状态
CLEAR: lv_syst_status,lv_user_status.
CALL FUNCTION 'STATUS_TEXT_EDIT'
EXPORTING
flg_user_stat = 'X'
objnr = lw_itab-objnr
only_active = 'X'
spras = sy-langu
bypass_buffer = 'X'
IMPORTING
line = lv_syst_status
user_line = lv_user_status
EXCEPTIONS
object_not_found = 1
OTHERS = 2.
IF sy-subrc = 0.
lw_itab-txt04 = lv_user_status(4).
lw_itab-stats_all_txt = lv_syst_status.
ENDIF.
* 读取对象状态 2023-05-08 by gqyan
DATA: lt_status TYPE TABLE OF jstat WITH HEADER LINE.
REFRESH lt_status.
CALL FUNCTION 'STATUS_READ'
EXPORTING
objnr = lw_itab-objnr 对象号
* only_active = 'X' “默认为空 为激活状态
TABLES
status = lt_status 状态内表
EXCEPTIONS
object_not_found = 01.
SORT lt_status BY stat DESCENDING.
CLEAR lt_status.
READ TABLE lt_status INDEX 1.
lw_itab-stat = lt_status-stat.
* 读取对象状态 2023-05-08 by gqyan