Вот правильная переменная
Code:
(SAPLBSVA)JEST_BUF_EO[]
В ней содержаться текущие статусы
Code:
*Чтение ТЕКУЩЕГО состояния статуса редактируемого объекта
* c_active = abap_true - статус установлен
* c_active = abap_false - статус снят
*----------------------------------------------------------------------*
FORM check_status_current
USING
p_objnr TYPE jest-objnr
p_stat TYPE jest-stat
CHANGING
c_active TYPE jest-inact
.
c_active = abap_undefined.
"-- Определение взято из INCLUDE LBSVATOP
TYPES: BEGIN OF ty_jest_buf_e.
INCLUDE STRUCTURE jestd.
TYPES: mod,mark,
linep LIKE tj30-linep,
statp LIKE tj30-statp,
neveractive.
TYPES: END OF ty_jest_buf_e.
TYPES tt_jest_buf_e TYPE TABLE OF ty_jest_buf_e.
FIELD-SYMBOLS <lt_jest_buf_eo> TYPE tt_jest_buf_e.
"--
ASSIGN ('(SAPLBSVA)JEST_BUF_EO[]') TO <lt_jest_buf_eo>.
IF sy-subrc = 0 AND NOT ( <lt_jest_buf_eo>[] IS INITIAL ).
"-- Если статусы загружены, значяит они менялись и смотрим в списке
FIELD-SYMBOLS <ls_jest_buf_eo> LIKE LINE OF <lt_jest_buf_eo>.
READ TABLE <lt_jest_buf_eo> ASSIGNING <ls_jest_buf_eo>
WITH KEY
objnr = p_objnr
stat = p_stat
.
IF sy-subrc = 0.
IF <ls_jest_buf_eo>-inact IS INITIAL.
c_active = abap_true.
ELSE.
c_active = abap_false.
ENDIF.
ENDIF.
ELSE.
"-- Если статусы не загружены, значит они не менялись, вытащим значение из БД
CALL FUNCTION 'STATUS_CHECK'
EXPORTING
bypass_buffer = 'X'
objnr = p_objnr
status = p_stat
EXCEPTIONS
object_not_found = 1
status_not_active = 2
OTHERS = 3.
CASE sy-subrc.
WHEN 0.
c_active = abap_true.
WHEN 2.
c_active = abap_false.
ENDCASE.
ENDIF.
ENDFORM.