Code: Alles auswählen.
CLASS zcl_status_utilities DEFINITION.
PUBLIC SECTION.
TYPES:
ztt_j_istat TYPE RANGE OF j_istat.
*
CLASS-METHODS objnr_in_status_range
IMPORTING
iv_objnr TYPE j_objnr
ig_status TYPE ztt_j_istat
RAISING
zcx_objnr_wrong_status
zcx_objnr_not_found
zcx_unexpected_failure .
ENDCLASS. "ZCL_STATUS_UTILITIES DEFINITION
*
CLASS zcl_status_utilities IMPLEMENTATION.
METHOD objnr_in_status_range.
DATA:
lt_status TYPE ttjstat.
FIELD-SYMBOLS:
<ls_status> LIKE LINE OF lt_status[].
*
CALL FUNCTION 'STATUS_READ'
EXPORTING
objnr = iv_objnr
TABLES
status = lt_status[]
EXCEPTIONS
object_not_found = 1
OTHERS = 99.
CASE sy-subrc.
WHEN 0.
LOOP AT lt_status[] ASSIGNING <ls_status>.
IF <ls_status>-inact IS INITIAL.
IF <ls_status>-stat NOT IN ig_status[].
* active status not found in selection
RAISE EXCEPTION TYPE zcx_objnr_wrong_status.
* ELSE.
* NOP
ENDIF.
* ELSE.
* NOP
ENDIF.
ENDLOOP.
WHEN 1.
RAISE EXCEPTION TYPE zcx_objnr_not_found.
WHEN OTHERS.
RAISE EXCEPTION TYPE zcx_unexpected_failure.
ENDCASE.
ENDMETHOD. "objnr_in_status_range
ENDCLASS. "ZCL_STATUS_UTILITIES IMPLEMENTATION