Age: 43 Joined: 04 Aug 2009 Posts: 62 Location: UA
Posted: Wed Mar 27, 2013 2:58 pm Post subject: Проблема с bapi_incominginvoice_post
Добрый день, уважаемые эксперты.
Столкнулся с проблемой при использовании данного BAPI. Мне нужно изменить некоторые данные предварительных счетов,а затем создавать счета-фактуры на их основании. Для изменения использую bapi_incominginvoice_change, для создания bapi_incominginvoice_post.
Проблема: после выполнения изменений bapi_incominginvoice_post не отрабатывает, т.е. не возвращает ошибки(return пустой),если таковые были.
Если ошибок нет, то все ок - документ проводиться.
Так же, при повторном вызове bapi_incominginvoice_post все корректно(возвращает все ошибки).
Подскажите, пожалуйста, с чем это может быть связано?
Age: 160 Joined: 04 Oct 2007 Posts: 1218 Location: Санкт-Петербург
Posted: Wed Mar 27, 2013 4:07 pm Post subject:
Возможно не успевается сняться блокировка, даже не смотря на указание локального апдейта.
Для проверки это после первого
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
Поставьте задержку на 1 мин, посмотрите, исчезнет ли ошибка.
Если не исчезнет, отпиши, подумаем дальше. _________________ Молитва - это запрос разработчику на изменение кода программы.
Age: 43 Joined: 04 Aug 2009 Posts: 62 Location: UA
Posted: Wed Mar 27, 2013 4:44 pm Post subject:
Попробывал, ничего не поменялось. До этого насильно пробывал снимать блокировку с помощью ФМ.
Заметил в отладчике, что в ФМ 'MRM_INVOICE_POST' (который вызвается bapi) при вызове ФМ 'CKMV_AC_DOCUMENT_CREATE' ошибка была возвращена(sy-subrc eq 1), но потом, в последующем ФМ 'MESSAGES_STOP' (переменная MESSAGES_COLLECT = 'X') ошибки только типа 'W'.
Это в случае запуска после bapi_incominginvoice_change.
При отдельном запуске bapi_incominginvoice_post , ошибка так же возвращается, но в ФМ 'MESSAGES_STOP' переменная MESSAGES_COLLECT = ' ', соответственно этот ФМ не отрабатывает.
Age: 160 Joined: 04 Oct 2007 Posts: 1218 Location: Санкт-Петербург
Posted: Wed Mar 27, 2013 4:58 pm Post subject:
Fami4 wrote:
Попробывал, ничего не поменялось. До этого насильно пробывал снимать блокировку с помощью ФМ.
Так так, где, зачем насильно блокировки снимать? Все должно само сняться после завершения Commit.
Уберите set update task local.
и так же подождите до 1 мин. Посмотрите, после этого блокирокуи сняты? (sm12) _________________ Молитва - это запрос разработчику на изменение кода программы.
Age: 160 Joined: 04 Oct 2007 Posts: 1218 Location: Санкт-Петербург
Posted: Wed Mar 27, 2013 5:46 pm Post subject:
Хорошо.
Вероятней всего где-то в функциональной группе оставлись не очищенные данные.
Вам надо после первого commit вставить какую-то функцию, которая бы очищала эти данные.
Вы заметили, что есть разница в выполнении 'CKMV_AC_DOCUMENT_CREATE'. под дебагом, попробуйте понять, из-за чего возникает ошибка и найдите какой-нибудь fm или напрямую через глобальный assign, очистите внутренние данные.
На вскидку посмотрел, может поможет
CALL FUNCTION 'CKMCD_BUFFER_REFRESH'.
Другой вариант, запускать вторую bapi c параметром
... AS SEPARATE UNIT,
но насколько помню, будут проблемы с commit, поэтому нужно писать обертку над bapi, которая одновременно вызовет bapi и сделает commit. _________________ Молитва - это запрос разработчику на изменение кода программы.
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG. SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG. Every effort is made to ensure content integrity. Use information on this site at your own risk.