SAP Workflow основные транзакции

Сначала причислю транзакции которые будете использовать в 100% случаях

SWDD
Построитель потоков операций. Графический интерфейс позволяющий строить поток операций. Пример использования

PFTC
Общее ведение задач. Позволяет вести отдельные задачи для блоков . Пример использования можно посмотреть в предыдущем пункте

SWO1
Построитель бизнес-объектов. Альтернативный вариант для логики в блоках потоков операций. Довольно часто используется. В целом всё интуитивно понятно.

PFAC
ведение правил

SWIA
Обработать поток операций в качестве администратора

Читать далее «SAP Workflow основные транзакции»

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

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

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

Узнать откуда вызвали RFC

Буквально вчера пришлось выяснять как изнутри RFC ФМ узнать систему из которой он вызвался.
Скажу кратко ФМ – ‘RFC_SYSTEM_INFO’ вызываем его как DESTINATION ‘BACK’.
Пример вызова:

Если мы вызовем ФМ таким образом не через RFC то он ничего не возвращает.

или можно вызвать ФМ ‘RFC_GET_ATTRIBUTES’ тоже вернет информацию о системе

Изменить поведение стандартной кнопки в ALV GRID

Частенько у консультанта возникает желание сделать так, чтобы кнопка была стандартная и располагалась на своем обычном месте, но реакция на нажатие была несколько другоя. Особенно часто это касается кнопки выгрузки, то формуляр нужен немного другой, то какую-то постобработкку сделать и т.д. Для таких целей можно использовать событие before_user_command
Демо пример:
Читать далее «Изменить поведение стандартной кнопки в ALV GRID»

oData использование кэша для хранения данных между вызовами

Предположим, что есть некая гипотетическая ситуация, в ходе которой нужно пойти на некоторый неправильный подход с точки зрения REST. Получить данные в одном методе, а потом использовать их при следующем вызове другого метода. В этом случае можем воспользоваться классом для кэша /ui2/cl_cache_handler

Читать далее «oData использование кэша для хранения данных между вызовами»

oData обновить метаданные сервиса

Когда производятся манипуляции с сущностями oData, необходимо обновить метаданные и очистить кэш. Иначе рискуете работать с неактуальной версией сервиса.
1. Транзакция 1. /IWFND/MAINT_SERVICE – Активация и ведение сервисов

Выбираем строку с нашим сервисом и жмем “Загрузить метаданные”

Читать далее «oData обновить метаданные сервиса»

Экспортировать\импортировать oData сервис

Небольшая инструкция которая поможет перенести Odata сервис из одной системы в другую.

Для начала выгрузим исходный сервис.
Зайдем в транзакцию /IWFND/GW_CLIENT – SAP Gateway Client

Читать далее «Экспортировать\импортировать oData сервис»

SAP. Перенос объекта в другой запрос

Чтобы перенести объекты из одного запроса в другой не надо удалять объекты из первого запроса и вставлять во второй. Хотя часто идут таким путем. Можно все сделать при помощи одной кнопки.

Читать далее «SAP. Перенос объекта в другой запрос»

Преобразование даты из 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»