Дружба ABAP Objects. Получить доступ к приватному атрибуту

Обычно доступ к приватным и защищенным атрибутам объекта запрещен из-за пределов класса. Но порой необходимо нарушить эту концепцию по тем или иным причинам. Для этого в ABAP существует “дружба”.
Класс может предоставить дружбу другим классам и интерфейсам. Этим друзьям предоставляется доступ ко всем компонентам класса, предлагающего дружбу, независимо от их раздела видимости или добавления READ-ONLY.

Пример:

Читать далее «Дружба ABAP Objects. Получить доступ к приватному атрибуту»

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. Отправка файла на фронтенд.»

Создать формуляр PDF из WORD и EXCEL

Не все умеют виртуозно пользоваться Adobe LiveCycle Designer. Или, например, вам предоставили образец шаблона в Word/Excel. Есть способ как быстро создать PDF формуляр из Word или Excel.

Word

Открываем Adobe LiveCycle Designer как отдельное приложение(отдельный ярлык в папке). После чего выбираем файл WORD

Читать далее «Создать формуляр PDF из WORD и EXCEL»

Создание 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»