golomeen написал(а):
Обязательно ли после каждого бапишного вызова делать bapi_transaction_commit?
В зависимости от логики BAPI процесса. В общем случае не обязательно.
golomeen написал(а):
В моем случае речь про пакетную загрузку
Поясните, что Вы имеете в виду под пакетной загрузкой? Вообще в терминах SAP 'пакетная загрузка = Batch Input' <> 'BAPI'
golomeen написал(а):
Если следущие функции зависят от результата предыдущих, имеет ли для них значение проведенный вовремя коммит
Имеет. В Вашем примере BAPI-изменение может не отработать сразу после BAPI создания даже если будет указан явный COMMIT. Для таких целей предназначена сомманда Commit Work and Wait
golomeen написал(а):
После неудачного вызова какой-либо функции нужно ли делать rollback для очистки последствий ее выполнения, если на ранее сделанное ее результат не влияет
Считал, что не нужно, но вот
Note 798535 - COMMIT WORK after calling a BAPI. говорит обо обратном
Цитата:
Before the database commit, errors that occurred could be reversed using the ROLLBACK WORK command. After the commit this is no longer possible.
Вообще ФМ BAPI_TRANSACTION_COMMIT предназначен для внешних систем
Цитата:
This method executes a COMMIT WORK command. It is required for transactions developed outside the SAP system that change data in the SAP system by using BAPI calls.
Поэтому дублирование данного ФМ и Commit Work конечно лишнее.
p.s. Кстати, загрузке BP посвященна целая ветка в SPRO. Компоненты общие для всех приложений - Центральный деловой партнер - Перенос внешних данных.
update. Не заметил что у Вас CRM - но что-то похожее наверняка есть.