Загружается файл, на основе данных из файла формируется заказ, по которому автоматически создается поставка.
Затем транзакция SNPM ( это такая беда, реализация учета по серийным номерам) обрабатывает эти поставки и формирует по ним отпуск. Проблема в том, что эта SNPM-транзакиця изменяет даты в поставке, чего делать нельзя. Эксперименты и наблюдения показали, что если поставку сначала изменить (в принципе, чтобы было заполнено дата изменения), а потом уже обрабатывать SNPM-транзакцией, то даты не изменяются. Причем этот эффект не зависит, запускается SNPM-транзакция вручную или в программе как ФМ.
Поэтому решили перед SNPM-транзакцией обрабатывать поставки ФМ WS_DELIVERY_UPDATE, устанавливая дату фактического отпуска материала.
И все бы хорошо, когда поставка одна обрабатывается этой ФМ. Но когда в цикле - во всех обработанных поставках, кроме последней, почти все даты, кроме даты фактического отпуска материала, пустые! Проверяла в дебаггере - создается поставка нормально, все даты есть.
В структуре, которая передается в WS_DELIVERY_UPDATE, задала явно все даты и установила признаки соответствующие - никакого эффекта.
CLEAR: lw_vbkok, lc_vbupd_err.
lw_vbkok-vbeln_vl = <lw_sertxt>-vbeln_vl.
lw_vbkok-vbtyp_vl = 'J'.
lw_vbkok-borgr_kzwad = 'X'.
lw_vbkok-wadat_ist = <lw_billing>-date.
lw_vbkok-wadat = <lw_billing>-date.
lw_vbkok-kzwad = 'X'. "Confirm planned goods issue date
lw_vbkok-lddat = <lw_billing>-date.
lw_vbkok-KZLDDAT = 'X'. " Change Loading Date
CALL FUNCTION 'WS_DELIVERY_UPDATE'
EXPORTING
VBKOK_WA = lw_vbkok
SYNCHRON = 'X'
COMMIT = 'X'
IMPORTING
EF_ERROR_ANY_0 = lc_vbupd_err
Порылась в интернетах - тоже нигде не нашла, чтобы кто-то сталкивался с такой проблемой.
ЧТО я не так делаю??? :?
Единственное, что нашла - в примерах нескольких не передают COMMIT = 'X', а используют после вызова, если нет ошибок
COMMIT WORK AND WAIT.
но мне это не помогло...