Вставляет, обновляет и удаляет таблицы SAP.

Кто-нибудь опубликует мне пример кода C# для обновления записи таблицы в подсистеме SAP с использованием BAPI? Мне удалось выбрать запись из таблицы SAP, используя пример, описанный в приведенной ниже ссылке Пошаговое руководство по использованию SAP. net Connector с VS 2008

Я проверил пару тем на форумах для этого, но не смог получить понятные заметки по этому поводу.


person shams    schedule 06.08.2017    source источник


Ответы (1)


Ваш вопрос состоит из нескольких частей, позвольте мне попытаться объяснить каждую из них.

Прежде всего, вам нужно определить, какой BAPI вам нужно вызывать для обновления вашей таблицы SAP. Когда вы его найдете, убедитесь, что он поддерживает RFC. Если это не так, вам потребуется создать функциональный модуль-оболочку с поддержкой RFC, который просто вызывает этот BAPI.

Когда вы нашли BAPI, на самом деле вызвать его с помощью .net Connector довольно просто. Вот очень полный пример: https://www.codeproject.com/Articles/824928/SAP-Net-Connector-NCo-Example

Но в целом вам необходимо настроить подключение («назначение») к SAP с помощью RfcDestinationManager. Когда ваш пункт назначения настроен, вы получаете репозиторий, а затем функциональный модуль следующим образом:

rfcDestination = RfcDestinationManager.GetDestination(destinationName);
RfcRepository rfcRepository = rfcDestination.Repository;
IRfcFunction rfcFunction = rfcRespository.CreateFunction("BAPI_WHATEVER");

Затем вы можете заполнить параметры функционального модуля с помощью функции SetValue:

rfcFunction.SetValue("fieldName", value);

Когда вы закончите с параметрами, вы вызываете функцию Invoke, чтобы фактически выполнить вызов.

rfcFunction.Invoke(rfcDestination);

После вызова вы можете использовать функцию GetValue или свойство Tables для получения возвращаемых значений:

var value = rfcFunction.GetValue("fieldName");

При этом у вас должно быть все необходимое для вызова BAPI, который обновляет таблицу SAP.

person Maxime Tremblay-Savard    schedule 09.08.2017