Один из подписчиков моего Youtube канала https://youtube.com/virvit попросил рассказать, как можно удаленно вызывать LSMW по RFC, чтобы осуществлять загрузку данных в систему SAP. Это оказалось элементарно, рассказываю.

Для начала мы записываем проект LSMW. Можно использовать любой способ загрузки данных, который может работать в фоновом режиме. Важно поставить галочку периодической загрузки на самом первом шаге, вот так:

Благодаря этой галочке у нас в меню LSMW в самом низу появится пункт: Master Program for Periodic Data Transfer.

Далее мы записываем LSMW как обычно. Единственное исключение, что файлы должны загружаться с сервера. Я разместил файлик для загрузки на сервере.

Запускаем самый последний шаг, где заполняем параметры нашего проекта. Хотим ли мы удалять файлы, что-то делать с ними, искать по маске. Сохраняем все это в вариант.

Осталось самое малое. В SM36 нужно запланировать задание, которое будет запускаться по событию. То есть мы планируем программу /SAPDMC/SAP_LSMW_INTERFACE с только что созданным для нее вариантом.

Свое событие можно создать в транзакции SM62 на последней вкладке.

Вот и все. Теперь можно поджечь событие извне по RFC, а можно потренироваться “у себя дома” в транзакции SE37.

Система вызовет событие, событие вызовет запланированную программу, программа запустит LSMW проект. LSMW проект прочитает файл, сконвертирует, создаст пакетник в SM35 И запустит его на выполнение. Или может IDOC создать. Или BAPI. Что хотите, одним словом. После обработки файла он будет переименован, чтобы не загружаться повторно.

Милости просим, кустарная автоматизация сельскохозяйственных процессов на коленке с помощью костылей и подпорок. Для взрослых решений мы используем SAP ALE и учим его на нашем с Романом курсе https://saphr.ru/2018/10/10/online-kurs-po-sap-ale/