У меня есть веб-приложение C#, которое вызывает несколько BAPI и хранимых процедур в одной из функций на веб-сайте ASP.net. мне нужно откатить все bapi, выполненные в функции, которая вызывается в Интернете, если один из методов внутри функции не работает.
в SQL я звоню
SqlTransaction transaction = connectionsql.BeginTransaction();
...
transaction.Rollback();
в коде С#, если один из методов не удался. (это можно сделать для отката sql)
но для SAP BAPI, даже если я вызову BAPI_TRANSACTION_ROLLBACK в операторе catch C#, изменения все равно останутся. (откат не удался)
К вашему сведению, в моей функции BAPI я использую CSAP_MAT_BOM_MAINTAIN для обновления информации о спецификации.
Есть ли способ выполнить откат, например транзакцию sql, в моем коде С# для функции SAP BAPI и откатить все BAPI, запущенные на С#, если в Интернете возникнет исключение?