Подробно про SAP ALE

SAP ALE — Application Link Enabling — технология обмена данными, разработанная компанией SAP AG. Технология, потому что это набор инструментов, протоколов, форматов, которые позволяют обмениваться данными в режиме реального времени или оффлайн режиме между САП и не-САП системами. Это огромный пласт настроек, функциональности и возможностей, которыми мы редко пользуемся. Предлагаю рассмотреть технологию комплексно в виде стека.

CPIC — Common Programming Interface for Communication — низкоуровневый коммуникационный протокол. Почитать можно вот тут https://www-01.ibm.com/software/network/commserver/windows/library/cpic.htm
RFC — Remote Function Call — высокоуровневый коммуникационный протокол удаленного вызова
tRFC (tansactional RFC) / qRFC (queued RFC) / aRFC (asynchronous RFC) / sRFC (synchronous RFC) — способ доставки сообщения до получателя и подверждения факта доставки
IDOC — Intermediate DOCument / BAPI (Business Application Programming Interface) — формат сообщения, которое будет доставлено
EDI — Electronic Data Interchange — процедура обмена данными SAP-nonSAP. Международные стандарт по-совместительству.
ALE — Application Link Enabling — процедура обмена данными SAP-SAP.

Вот это и предлагаю обсудить, а спецам меня поправить.
RFC — Remote Function Call, механизм для удаленного вызова функций в системах. Идея простая и заключается в том, что, если мы знаем имя какой-то функции на удаленном сервере, то мы можем сказать: «Привет, удаленный сервер. Я знаю, что у тебя есть вот такая функция, с такими параметрами. Я хочу ее запустить _у тебя_. Вот мои полномочия, вот мои данные для этой функциий, запусти и скажи, что получилось». Удаленный сервер чешет черепушку, шуршит дисками и, удостоверившись, что это не Баба-Яга, запускает у себя, на своих данных эту функцию под логином просящего. При этом программа на том же сервере может запустить эту же самую функцию локально, как бы у себя дома. Наличие галочки в транзакции SE37 для функционального модуля определяет, можно ли запускать эту функцию удаленно или нет.

RFC сам по себе это протокол, которым пользуются компоненты и сервера SAP для общения друг с другом. У вендора есть RFC SDK, который можно скачать и использовать в своих разработках. Если присмотреться к стандартными соединениям в транзакции SM59, то можно увидеть, что многие коммуникации идут через RFC и так называемые зарегистрированные программы, например, печать документов, Adobe Lifecycle Designer, SAP GUI и другие. Идея в том, что мы на сервере можем повесить обработчик на RFC вызовы таким образом, что он будет срабатывать при обращении к системе и выполнять полезные нам функции. Я такой обработчик использовал для связи сервера по обработке временных отметок с SAP, когда SAP вызывал через ALE программу (в SM59 была зарегистрированна программа, а не адрес сервера), а программа по своему протоколу связывалась с сервером обработки отпечатков пальцев и просила его выслать данные. Так что, если у вас есть свой станок, а вы хотите прицепить его к SAP, то пишите свой драйвер, драйвер регистрируете как RFC совместимый в SAP, а потом при формировании товарной накладной через поток операций вызываете печать медальки на станке. Это и есть тот самый IoT, от которого сейчас все прутся (после биткоинов).

Читать далее