Создание материала .NET Connector SAP - PullRequest
1 голос
/ 17 февраля 2012

Пожалуйста, скажите мне, что кто-то там сделал это. Я пытаюсь взаимодействовать с SAP через .NET Connector 3.0. Я могу читать данные с помощью вызовов удаленных функций, но не могу понять, как что-то написать, например, создать или отредактировать материал. В ходе некоторых исследований я установил, что BAPI_MATERIAL_SAVEDATA - это RFC, который мне нужно использовать, но я не могу понять, как это сделать. Вот что я пытаюсь:

function = destination.Repository.CreateFunction("BAPI_MATERIAL_SAVEDATA");
IRfcStructure structure = function.GetStructure("HEADDATA");
structure.SetValue("material", "000000000000000888");
structure.SetValue("ind_sector", "U");
structure.SetValue("matl_type", "ERSA");
structure.SetValue("basic_view", "X");

structure = function.GetStructure("CLIENTDATA");
structure.SetValue("matl_group", "01");
structure.SetValue("base_uom", "EA");

structure = function.GetStructure("CLIENTDATAX");
structure.SetValue("matl_group", "X");
structure.SetValue("base_uom", "X");
function.Invoke(destination);

Я собрал это вместе, основываясь на различных примерах VB и ABAP. Проблема в том, что он ничего не делает. Когда вызывается function.Invoke(), он не создает материал, он не создает исключение, он просто ничего не делает. Очевидно, я не делаю что-то правильно, если не имею ни малейшего представления, что. Кто-нибудь, пожалуйста, помогите!

Ответы [ 2 ]

2 голосов
/ 18 февраля 2012

В данный момент у меня нет доступа к системе SAP, но, насколько я знаю, вам нужно вызывать бапи в рамках транзакции, например, вызвать BAPI_TRANSACTION_COMMIT после создания материала.Но, возможно, у .net-разъема есть другой подход к этому ...

Надеюсь, это поможет.

0 голосов
/ 11 апреля 2014

Вам необходимо получить значение из функции, основываясь на типе вывода. Ниже приведен пример для типа вывода. (Таблица)

    function.Invoke(rfcDest);

    IRfcTable TableResult = function.GetTable("TAG_NAME_OR_METADATA_NAME");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...