Process Management API. Массовое изменение документов Solution

Насколько мне известно, SolDoc  не позволяет массово изменять документы. Однако, существует API, представляющее собой oData сервис, которое позволяет производить данные операции.
API предоставляет возможность использовать все основные операции(чтение, изменение, вставка и т.д. ).
Более подробно можно почитать на оф сайте:
API
Описание формата обмена

Также есть ссылки на два блога, которые работают с данным API на Python. Это не всем подходит, т.к. не всегда возможно запускать скрипты в сетях с продуктивной системой. Если у вас такой проблемы нет, можете использовать решения представленные в данных блогах, это будет даже удобнее.
https://blogs.sap.com/2020/05/04/mass-updating-solution-documentation-via-the-process-management-api/

https://blogs.sap.com/2020/02/28/process-management-api-in-sap-solution-manager/

Предлагаю  реализовать тоже самое на ABAP.
Читать далее «Process Management API. Массовое изменение документов Solution»

oData выбор языка запроса

Язык, под которым выполняется сервис, зависит от языка входа в FIORI. Это не всегда устраивает. Например, вам надо получить логи на определенном языке или какие-то тексты отстусвуют на языке входа. Можно принудительно задать указать язык запуска сервиса добавив в URL префикс ?sap-language='DE' . Где 'DE' в данном случае немецкий язык.

Пример:
/sap/opu/odata/sap/ZZ_TEST_SERVICE_SRV/FileSet('Excel.xls')/$value?sap-language='DE'

Создание oData сервиса. Часть 8. Отправка файла на фронтенд.

Короткая заметка по отправке файла на фронт.

  1. В транзакции SEGW, создаем сущность;

Читать далее «Создание oData сервиса. Часть 8. Отправка файла на фронтенд.»

Создание oData сервиса. Часть 7. Загрузка файла с фронтенда.

И так, друзья. Давайте попробуем получить файл с богомерзкого фронтенда в наш теплый ламповый ABAP.
Первый делом необходимо добавить в нашу сущность два поля. Строго говоря проблема будет именно если не сделаем поле MIME-типа

Переопределим метод DEFINE к классе Z*_MPC_EXT

Читать далее «Создание oData сервиса. Часть 7. Загрузка файла с фронтенда.»

Создание oData сервиса. Часть 6. Soft state

Soft State(Гибкое состояние) - позволяет поддерживать сессию на некоторое время и сохранять данные между вызовами в этом периоде. Активируется и настраивается довольно легко.

1. В классе *MPC_EXT необходимо включить это состояние в переопределенном методе DEFINE

Читать далее «Создание oData сервиса. Часть 6. Soft state»

Создание oData сервиса. Часть 5. Deep entity получение данных

В предыдущих частях(три, четыре) было рассмотрено получение зависимых данных из системы SAP. В данной части получим данные из внешнего источника в систему. Для для этого будем использовать метод CREATE_DEEP_ENTITY.
Получать будем туже самую структуру, что отправляли в предыдущем посте.

Читать далее «Создание oData сервиса. Часть 5. Deep entity получение данных»

Создание oData сервиса. Часть 4. oData expand entity отправка данных

В прошлом посте было рассказано об ассоциации и навигации. В результате получили несколько вызовов сущностей, происходящих друг за другом. Однако, данный способ накладывает некоторые ограничения и потенциальные потери производительности, т.к. вместо одного RFC вызывается целая цепочка. Также часто нужно данные для передачи на фронт мы получаем одновременно, например как результат работы ФМ. Конечно, можно положить эти данные в буфер и брать необходимое во время вызова соответствующей сущности, звучит не очень рационально.
Стандартный интерфейс позволяет сделать так, чтобы все зависимые сущности заполнялись одновременно.

Читать далее «Создание oData сервиса. Часть 4. oData expand entity отправка данных»

Создание oData сервиса. Часть 3. Ассоциации и навигация

В предыдущих частях(раз, два) был создан сервис. При помощи него мы можем получить запись по ключу или набор записей фильтру. В реальной жизни чаще приходится работать с более сложными структурами. Ассоциации - позволяют указать отношения между ключами таблиц. Кардинальность показывает как таблицы относятся одна к другой

Например, то, что касается таблиц SPFLI и SFLIGHT Если у нас есть кодами рейсов и их расписанием. Мы можем по ключу получить или не получить код рейса, и расписание к нему из нескольких записей

Читать далее «Создание oData сервиса. Часть 3. Ассоциации и навигация»

Создание oData сервиса. Часть 2. Function import

Function import - Операция выполняемая на стороне бэкенд системы. Это некоторая альтернатива обычным CRUD сервисам для случаев не подходящих под GET, POST, PUT, DELETE запросы. Может быть вызвана GET и POST методами. Например, проверки, запуски каких либо операций и прочее.

Пример создания

Для сервиса созданного в прошлой части создадим Function import по проверке наличия записи в таблице. (Максимально примитивная функция, в реальных задачах будете вызывать что-то реально стоящее))

Читать далее «Создание oData сервиса. Часть 2. Function import»

Создание oData сервиса. Часть 1.

oData(Open Data Protocol) - открытый веб-протокол для передачи данных. Общение по протоколу осуществляется по HTTP протоколу путем обмена json и xml.
В рамках SAP обычно мы говорим об обмене данных между фронтом и бэкендом, хотя применение гораздо шире.
Рассмотрим пример создания простого сервиса для работы с данными таблиц SPFLI и SFLIGHT:

Читать далее «Создание oData сервиса. Часть 1.»