Динамическое программирование ABAP. RFC ФМ для вызова методов произвольного класса.

При интеграциях между системами частенько надо получать данные из смежных систем. Самое простое –  обернуть метод  в RFC ФМ и вызвать его в нужной системе. Это хорошее решение, но что делать если нам нужно вызвать не один метод, а 50 или даже 100. Писать обертку для каждого? Довольно долгое занятие, плюс любое изменение в методе повлечет необходимость дополнительной поддержки этих ФМ. Короче, самое очевидное решение, не всегда самое удобное в конкретном случае. 
Один из альтернативных путей решений – динамическое программирование. Это способ тоже не без недостатков, но он может позволить избежать создании сотен лишних ФМ.  Если надо вызвать один-два метода, я бы не заморачивался и делал все в обертках.

Задача: Написать RFC функцию которая сможет выполнить произвольный метод любого класса и вернуть результат.
Конечно, все случаи мы не предусмотрим, особенно если классу требуется какое-то сложное создание инстанции, попробуем разобрать базовый подход.
Читать далее «Динамическое программирование ABAP. RFC ФМ для вызова методов произвольного класса.»

Преобразование даты из ISO 8601. Получение даты из JIRA

Для преобразования даты из ISO 8601 можно использовать класс cl_xlf_date_time. Если мы получаем данные из JIRA, то необходимо привести полученную дату в вид, с которым может работать данный класс.
Дату из Jira получаем в таком виде – 2020-04-30T00:00:00.000+0300 .
Далее необходимо добавить “:” в смещение: 2020-04-30T00:00:00.000+03:00
Код преобразования:

Читать далее «Преобразование даты из ISO 8601. Получение даты из JIRA»

CRM emails

Пару слов о формулярах CRM. Недавно столкнулся с формулярами в Solution Manager. Для меня это впервые, сохраню напоминалку, может быть кому-то еще пригодится.
Настройка ведется в транзакции SPRO:

 SPRO->SAP Solution Manager: руководство по внедрению->Управление отношениями с клиентами->Маркетинг->Маркетинговое планирование и управление кампаниями->Персонализированный мейл->Обработать контексты признаков для формуляров мейла

Тут мы можем создать пользовательский контекст

Читать далее «CRM emails»

ADBC. ABAP Database Connectivity – получение данных из сторонних БД

ABAP Database Connectivity – позволяет подключаться к БД напрямую и использовать sql самой БД. Также данную API можно использовать для получения данных из внешних(вторичных) БД.
Давайте рассмотрим обе задачи и пути их решения.

Читать далее «ADBC. ABAP Database Connectivity – получение данных из сторонних БД»

Генерация XML при помощи Simple Transformation

Создадим простой XML документ следующего вида:

Читать далее «Генерация XML при помощи Simple Transformation»

BOL получить доступные действия для заказа

Задача: Получить доступные действия для заказа.
Решение: Получить список действий при помощи BOL можно при помощи следующего кода:

Читать далее «BOL получить доступные действия для заказа»

Получить доступ к данным контейнера WF из внешней программы

Допустим у нас есть стартовавший процесс, но в нем не предусмотрено сообщение пользователям о статусе шагов. А информация нам нужна.

Запустим наш процесс, созданный ранее. Если зайдем в SWIA, можно увидеть текущий шаг и его статус.

Информация будет неполная, алгоритм поиска придется доделать самостоятельно. Т.к. я начал разбираться, но в итоге это не потребовалось. Жалко если потеряется, поэтому вставлю в таком виде, может быть кому-то пригодится. 

Читать далее «Получить доступ к данным контейнера WF из внешней программы»

Simple transformation создание EXCEL

Одина из самых популярных разработок ZWWW не может(по крайней мере те версии, которые я видел) формировать документы при фоновой работе приложения. Второй недостаток это скорость обработки. Эти проблемы можно решить используя ABAP2XLSX или XLSX Workbench, но порой их может не быть на проекте. В таком случае для формирования документа EXCEL можно воспользоваться трансформациями.

Читать далее «Simple transformation создание EXCEL»

REST API для работы с Confluence/Comala

Ранее  я рассматривал примеры работы с REST API на примере JIRA. Сегодня рассмотрим API CONFLUENCE.
Построение запроса делается точно также как и и в случае с JIRA, поэтому код повторять не буду.
Читать далее «REST API для работы с Confluence/Comala»

Добавить файл в архив

Не часто в abap возникает задача поместить сгенерированный программой файл в архив. Мне такое пригодилось только один раз, когда понадобилось обойти ограничение почтового сервера на пересылку файлов определенного типа.
Для работы с архивом можно использовать класс cl_abap_zip
Пример кода:
Читать далее «Добавить файл в архив»