Однажды мы столкнулись с задачей реализации транзакции в SAP MII для механизма создания корректного IDOC и отправки его в SAP MDG (эта инструкция применима ко всем SAP ERP системам).
Задача была следующей: реализовать регулярную отправку необходимых данных о контрагентах из не-SAP систем в SAP MDG используя SAP MII.
Во-первых, мы начали поиск механизма отправки IDOC'ов из SAP MII в SAP MDG. После недолгих поисков была найдена RFC функция IDOC_INBOUND_ASYNCHRONOUS на стороне SAP MDG.
1. Необходимо создать соединение в XMII admin menu: Data Services — Connections. Создаем JCo соединение с любым именем и описанием, затем корректно настраиваем адрес Server, номер Client, номер System (по умолчанию 00) и Pool size (на первое время 10 будет достаточно) — обратитесь к вашему SAP базису за подробностями.
![](https://habrastorage.org/files/e25/80c/eb9/e2580ceb98ad4123b34990325337c22d.png)
2. Далее необходимо создать настройки подключения (пользователь/пароль) для соединения из первого шага в Security Services — Credential Stores. Необходимо указать Name и Password из требуемой системы (SAP MDG) необходимые для вызова этой RFC функции — обратитесь к вашему SAP базису за подробностями.
![](https://habrastorage.org/files/bf0/404/57a/bf040457a81742cfa6551d66009de256.png)
3. Сейчас пришло время переключиться на SAP MII Worbench и создать новую транзакцию. Основными блоками этой транзакции будут SAP JCo операции.
![](https://habrastorage.org/files/0a2/894/09b/0a289409b464426ebb384d771ba8fcc6.png)
Необходимо создать несколько блоков в транзакции в следующей последовательности: SAP JCo Start Session, SAP JCo Function, SAP JCo Commit, SAP JCo End Session.
![](https://habrastorage.org/files/1af/e14/f9e/1afe14f9e36547779452985df5194718.png)
SAP JCo Start Session операция открывает соединение для RFC в SAP ERP в созданном JCo-коннекторе и настройках подключения. Просто выберите подключение из выпадающего списка Connection Alias и настройки из выпадающего списка Credential Alias.
![](https://habrastorage.org/files/4d2/d04/195/4d2d04195eeb4b539ceb85de4ab14591.png)
SAP JCo Function операция непосредственно вызывает RFC в SAP ERP. В SAP JCo Session Action выберите созданное соединение из предыдущего блока и укажите в RFC Name имя RFC функции (в нашем случае IDOC_INBOUND_ASYNCHRONOUS, но вы можете найти необходимую вам функцию из доступных с помощью Search Pattern).
![](https://habrastorage.org/files/81f/249/481/81f24948136b471b9252c422e502be3e.png)
Для получения доступных полей из RFC функции выполните Generate Sample в SAP JCo Function блоке операции.
![](https://habrastorage.org/files/0ed/eb6/712/0edeb671237240a791c5231fc9c9d7fc.png)
В окне Links Editor для SAP JCo Function состыкуйте RFC поля с данными из вашего источника данных.
![](https://habrastorage.org/files/78b/b48/0da/78bb480dad534b8aa2b5632f39869fbf.png)
SAP JCo Commit операция отправляет созданную операцию из SAP JCo Function — просто выберите соединение из предыдущих шагов.
![](https://habrastorage.org/files/420/e8b/fe8/420e8bfe822244c2bc36c70412201fab.png)
SAP JCo End Session закрывает созданное подключение к RFC функции.
![](https://habrastorage.org/files/816/b82/198/816b82198a54404a9d673233ed6ad75f.png)
Это необходимый минимум для этой операции. После этого вы можете проверить работу транзакции.
Надеюсь, моя инструкция будет полезной.
Задача была следующей: реализовать регулярную отправку необходимых данных о контрагентах из не-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 базису за подробностями.
![](https://habrastorage.org/files/e25/80c/eb9/e2580ceb98ad4123b34990325337c22d.png)
2. Далее необходимо создать настройки подключения (пользователь/пароль) для соединения из первого шага в Security Services — Credential Stores. Необходимо указать Name и Password из требуемой системы (SAP MDG) необходимые для вызова этой RFC функции — обратитесь к вашему SAP базису за подробностями.
![](https://habrastorage.org/files/bf0/404/57a/bf040457a81742cfa6551d66009de256.png)
3. Сейчас пришло время переключиться на SAP MII Worbench и создать новую транзакцию. Основными блоками этой транзакции будут SAP JCo операции.
![](https://habrastorage.org/files/0a2/894/09b/0a289409b464426ebb384d771ba8fcc6.png)
Необходимо создать несколько блоков в транзакции в следующей последовательности: SAP JCo Start Session, SAP JCo Function, SAP JCo Commit, SAP JCo End Session.
![](https://habrastorage.org/files/1af/e14/f9e/1afe14f9e36547779452985df5194718.png)
SAP JCo Start Session операция открывает соединение для RFC в SAP ERP в созданном JCo-коннекторе и настройках подключения. Просто выберите подключение из выпадающего списка Connection Alias и настройки из выпадающего списка Credential Alias.
![](https://habrastorage.org/files/4d2/d04/195/4d2d04195eeb4b539ceb85de4ab14591.png)
SAP JCo Function операция непосредственно вызывает RFC в SAP ERP. В SAP JCo Session Action выберите созданное соединение из предыдущего блока и укажите в RFC Name имя RFC функции (в нашем случае IDOC_INBOUND_ASYNCHRONOUS, но вы можете найти необходимую вам функцию из доступных с помощью Search Pattern).
![](https://habrastorage.org/files/81f/249/481/81f24948136b471b9252c422e502be3e.png)
Для получения доступных полей из RFC функции выполните Generate Sample в SAP JCo Function блоке операции.
![](https://habrastorage.org/files/0ed/eb6/712/0edeb671237240a791c5231fc9c9d7fc.png)
В окне Links Editor для SAP JCo Function состыкуйте RFC поля с данными из вашего источника данных.
![](https://habrastorage.org/files/78b/b48/0da/78bb480dad534b8aa2b5632f39869fbf.png)
SAP JCo Commit операция отправляет созданную операцию из SAP JCo Function — просто выберите соединение из предыдущих шагов.
![](https://habrastorage.org/files/420/e8b/fe8/420e8bfe822244c2bc36c70412201fab.png)
SAP JCo End Session закрывает созданное подключение к RFC функции.
![](https://habrastorage.org/files/816/b82/198/816b82198a54404a9d673233ed6ad75f.png)
Это необходимый минимум для этой операции. После этого вы можете проверить работу транзакции.
Надеюсь, моя инструкция будет полезной.