FUNCTION zfm_idoc_status.
*"----------------------------------------------------------------------
"“Local interface:
*” TABLES
*" IT_STATUS STRUCTURE BDIDOCSTAT
*" ET_IDOSTS STRUCTURE BDIDOCSTAT
*"----------------------------------------------------------------------
*—如果IDOC需要做多步操作, 有的步骤可能操作成功, 有的可能操作失败------
*—1. 如果都操作成功, 则we02可以看到每步骤都成功
*—2. 如果都操作失败, 则we02可以看到每步骤都成功
*—3. 如果是有成功的, 有失败的, 尤其是先成功, 后失败, 则we02就不能显示
*— 每个步骤情况, 此时IDOC的状态记录失败, 每个操作步骤可以去返回的
*— IDOC: ZRETURN查看------------------------------------------------
DATA: lv_53 TYPE c, "IDOC process code 操作成功
lv_51 TYPE c. "IDOC process code 操作失败
CLEAR lv_53.
CLEAR lv_51.
READ TABLE it_status WITH KEY status = ‘53’.
IF sy-subrc = 0 .
lv_53 = ‘X’ .
ENDIF.
READ TABLE it_status WITH KEY status = ‘51’.
IF sy-subrc = 0 .
lv_51 = ‘X’ .
ENDIF.
IF lv_53 = ‘X’ AND lv_51 = space. "都成功
LOOP AT it_status.
CLEAR et_idosts.
et_idosts = it_status.
APPEND et_idosts.
ENDLOOP.
ELSEIF lv_53 = ‘X’ AND lv_51 = ‘X’. "有成功, 有失败
LOOP AT it_status WHERE status = ‘51’.
CLEAR et_idosts.
et_idosts = it_status.
APPEND et_idosts.
ENDLOOP.
ELSEIF lv_53 = space AND lv_51 = ‘X’. "都失败
LOOP AT it_status.
CLEAR et_idosts.
et_idosts = it_status.
APPEND et_idosts.
ENDLOOP.
"ELSE.
ENDIF.
ENDFUNCTION.