SAP .Net Connector 3.0 — как отправить idoc из системы, отличной от SAP?

Я пытаюсь использовать коннектор .Net для отправки данных в систему SAP. Я смог довольно легко отправлять вызовы функциональному модулю RFC, но, похоже, нет никакого способа напрямую отправить стандартный Idoc. Это довольно странно, потому что Idocs должны быть стандартным средством связи для общения с SAP.

Кто-нибудь нашел, если / как это возможно сделать?


person Maxime Tremblay-Savard    schedule 27.07.2017    source источник


Ответы (2)


Насколько мне известно, в настоящее время SAP не предлагает библиотеки разработки для .NET Connector (NCo) для работы с IDoc. Если вы хотите использовать NCo, вы должны самостоятельно закодировать этот материал для обработки IDoc. Это возможно, потому что также IDoc обычно передаются путем вызова специальных удаленных функциональных модулей (например, IDOC_INBOUND_ASYNCHRONOUS). Но это может стать очень громоздким и трудным, особенно если он также должен работать с системами ABAP, не поддерживающими юникод, и многобайтовыми кодовыми страницами, такими как китайский, японский или корейский.

Но если вам не нужно придерживаться NCo, я думаю, что самый простой способ сделать собственную разработку с использованием IDocs — это переключиться на Java и использовать SAP Java Connector (JCo) в сочетании с надстройкой SAP Java IDoc Class Library. . NCo и JCo имеют очень похожий API, но эта надстройка библиотеки классов Java IDoc — это то, чего, к сожалению, не хватает для среды .NET — по крайней мере, она не предлагается SAP, и я также не знаю никакой другой библиотеки .NET для этого. .

person Trixx    schedule 28.07.2017
comment
Ты прав. Мне пришлось сделать RFC-вызов IDOC_INBOUND_ASYNCHRONOUS с idoc в SDATA. Спасибо - person Maxime Tremblay-Savard; 09.08.2017
comment
Спасибо за ответ. Но имейте в виду, что другие поля в двух таблицах IDOC_INBOUND_ASYNCHRONOUS также имеют значение и должны быть заполнены последовательно. Вы также не можете заполнить/изменить отдельные поля IDoc в сегменте в SDATA, не имея метаданных IDoc (смещения и длины). И если у вас уже есть данные сегмента в виде непрерывного блока символьных данных, заполнение SDATA как целой строки может не работать для многобайтовых кодовых страниц, отличных от Unicode, где символы могут иметь длину один, два или даже больше байтов (все используется как смесь в массиве символов SDATA). - person Trixx; 09.08.2017
comment
Вы также правы. В моем ответе было просто указано, что я сделал, но, как вы указали, я также заполнил контрольную запись и обработал смещения/длины программно, запросив SAP, чтобы узнать структуру сегмента для правильной отправки моих данных. - person Maxime Tremblay-Savard; 09.08.2017
comment
В ПОРЯДКЕ. Кажется, ты знаешь, что делаешь. Пальцы вверх! :-) - person Trixx; 10.08.2017

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

Как создавать и отправлять файлы Idoc в SAP с помощью SAP .Net Connector 3

Кстати, я бы не сказал, что IDOC являются стандартным средством связи для SAP, это один из многих, и все они одинаково действительны, поэтому все зависит от вашей ситуации.

Позже...

person SAP Pro    schedule 28.07.2017