Как отправить IDOC из SAP MII в SAP ERP

Однажды, мы столкнулись с задачей реализации транзакции в SAP MII для механизма создания корректного IDOC и отправки его в SAP MDG (эта инструкция применима ко всем SAP ERP системам).

Задача была следующей: реализовать регулярную отправку необходимых данных о контрагентах из не-SAP систем в SAP MDG используя SAP MII.

Во-первых, мы начали поиск механизма отправки IDOC’ов из SAP MII в SAP MDG. После недолгих поисков была найдена RFC функция IDOC_INBOUND_ASYNCHRONOUS на стороне SAP MDG.

IDOC_INBOUND_ASYNCHRONOUS
IDOC_INBOUND_ASYNCHRONOUS. This function module is used for SAP release 4.0 and later.
This function module starts inbound processing in the case of port type «tRFC». The function module is a successor to INBOUND_IDOC_PROCESS, which processes IDocs in the Release 4.0 record types. If you are processing IDocs in Release 3.X record types, the function module INBOUND_IDOC_PROCESS must still be called.
The function module checks the ID 'EDI_MES' in authorization object B_ALE_RECV against the received message type.
The IDocs are saved by the function module IDOC_INBOUND_WRITE_TO_DB (a COMMIT for all IDocs) and then transferred directly to the application by the dispatcher module IDOC_START_INBOUND.

1. Необходимо создать соединение в XMII admin menu: Data Services — Connections. Создаем JCo соединение с любым именем и описанием, затем корректно настраиваем адрес Server, номер Client, номер System (по умолчанию 00) и Pool size (на первое время 10 будет достаточно) — обратитесь к вашему SAP базису за подробностями.

e2580ceb98ad4123b34990325337c22d.png

2. Далее необходимо создать настройки подключения (пользователь/пароль) для соединения из первого шага в Security Services — Credential Stores. Необходимо указать Name и Password из требуемой системы (SAP MDG) необходимые для вызова этой RFC функции — обратитесь к вашему SAP базису за подробностями.

bf040457a81742cfa6551d66009de256.png

3. Сейчас пришло время переключиться на SAP MII Worbench и создать новую транзакцию. Основными блоками этой транзакции будут SAP JCo операции.

0a289409b464426ebb384d771ba8fcc6.png

Необходимо создать несколько блоков в транзакции в следующей последовательности: SAP JCo Start Session, SAP JCo Function, SAP JCo Commit, SAP JCo End Session.

1afe14f9e36547779452985df5194718.png

SAP JCo Start Session операция открывает соединение для RFC в SAP ERP в созданном JCo-коннекторе и настройках подключения. Просто выберите подключение из выпадающего списка Connection Alias и настройки из выпадающего списка Credential Alias.

4d2d04195eeb4b539ceb85de4ab14591.png

SAP JCo Function операция непосредственно вызывает RFC в SAP ERP. В SAP JCo Session Action выберите созданное соединение из предыдущего блока и укажите в RFC Name имя RFC функции (в нашем случае IDOC_INBOUND_ASYNCHRONOUS, но вы можете найти необходимую вам функцию из доступных с помощью Search Pattern).

81f24948136b471b9252c422e502be3e.png

Для получения доступных полей из RFC функции выполните Generate Sample в SAP JCo Function блоке операции.

0edeb671237240a791c5231fc9c9d7fc.png

В окне Links Editor для SAP JCo Function состыкуйте RFC поля с данными из вашего источника данных.

78bb480dad534b8aa2b5632f39869fbf.png

SAP JCo Commit операция отправляет созданную операцию из SAP JCo Function — просто выберите соединение из предыдущих шагов.

420e8bfe822244c2bc36c70412201fab.png

SAP JCo End Session закрывает созданное подключение к RFC функции.

816b82198a54404a9d673233ed6ad75f.png

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

Надеюсь, моя инструкция будет полезной.

© Habrahabr.ru