VBUK-FKSTK - это статус стоит смотреть только для документов, релевантных для фактурирования. Если у вас фактурируется поставка, а "статус отгрузки" смотрите для заказе, то он будет пустым (не релевантно).
В вашем случае, как я понимаю, именно такой вариант и есть. Поэтому нужно смотреть поток на самом деле.
Мы у себя делали ФМ, который возвращал "статус" документа примерно так (статус = result):
Code:
SELECT SINGLE * FROM vbuk WHERE vbeln EQ vbeln.
IF sy-subrc EQ 0.
IF vbuk-fkstk IS INITIAL. "не релевантен для фактур
IF vbuk-lfgsk IS INITIAL. "не релевантен для поставок
result = vbuk-fksak. "тогда результат из статуса фактуры по заказу
ELSEIF vbuk-lfgsk NE 'C'. "не полностью поставлен
result = vbuk-lfgsk. "тогда результат из статуса поставки
ELSE. "если полностью поставлен
SELECT * FROM vbfa WHERE vbelv EQ vbeln
AND ( vbtyp_n EQ 'T' OR vbtyp_n EQ 'J' )
AND stufe = 0. "ищем все поставки по документу
SELECT SINGLE * FROM vbuk WHERE vbeln EQ vbfa-vbeln.
IF sy-subrc EQ 0.
IF ( vbuk-fkstk EQ 'C' ) OR ( vbuk-fkstk EQ '' ). "если поставка полностью отфактурирована или не релевантна
result = 'C'. "тогда документ отфактурирован тоже
ELSE.
result = 'Z'. "иначе результат = "промежуточные документы обработаны не полностью"
EXIT.
ENDIF.
ENDIF.
ENDSELECT.
ENDIF.
ELSE.
result = vbuk-fkstk. "если документ сам релевантен для фактуры
"(скорее всего документ - это поставка), то вот и результат
ENDIF.
ELSE.
result = 'X'. "документа нет
ENDIF.