Как отправить 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 базису за подробностями.
2. Далее необходимо создать настройки подключения (пользователь/пароль) для соединения из первого шага в Security Services — Credential Stores. Необходимо указать Name и Password из требуемой системы (SAP MDG) необходимые для вызова этой RFC функции — обратитесь к вашему SAP базису за подробностями.
3. Сейчас пришло время переключиться на SAP MII Worbench и создать новую транзакцию. Основными блоками этой транзакции будут SAP JCo операции.
Необходимо создать несколько блоков в транзакции в следующей последовательности: SAP JCo Start Session, SAP JCo Function, SAP JCo Commit, SAP JCo End Session.
SAP JCo Start Session операция открывает соединение для RFC в SAP ERP в созданном JCo-коннекторе и настройках подключения. Просто выберите подключение из выпадающего списка Connection Alias и настройки из выпадающего списка Credential Alias.
SAP JCo Function операция непосредственно вызывает RFC в SAP ERP. В SAP JCo Session Action выберите созданное соединение из предыдущего блока и укажите в RFC Name имя RFC функции (в нашем случае IDOC_INBOUND_ASYNCHRONOUS, но вы можете найти необходимую вам функцию из доступных с помощью Search Pattern).
Для получения доступных полей из RFC функции выполните Generate Sample в SAP JCo Function блоке операции.
В окне Links Editor для SAP JCo Function состыкуйте RFC поля с данными из вашего источника данных.
SAP JCo Commit операция отправляет созданную операцию из SAP JCo Function — просто выберите соединение из предыдущих шагов.
SAP JCo End Session закрывает созданное подключение к RFC функции.
Это необходимый минимум для этой операции. После этого вы можете проверить работу транзакции.
Надеюсь, моя инструкция будет полезной.