Создать формуляр 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»

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

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

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

oData Отключение программы преобразования для поля

Создал сущность путем импорта стандартной таблицы SPFLI. Свойства полей подтянулись автоматически. Во время тестирования выяснилось, что из-за стандартной программы преобразования обработка валится в дамп. Если для GET запроса хватило обычной замены типа элемента на Edm.String. При обратном преобразовании в POST запросе - дамп.

Читать далее «oData Отключение программы преобразования для поля»

Маски в ABAP и SQL

Файловая система Open SQL ABAP
Любое кол-во символов * % *
Один любой символ ? _ +

Давайте рассмотрим примеры поиска
SQL используется оператор LIKE

Внутренние таблицы ABAP используем оператор CP и NP для:
Чтение по маске:

 

Удаление по маске(проверить возможность установить CP NP)
и использовать RANGE

Эскейп символ.

Немного усложним задачу, что если в искомой строке уже будет  специальный
символ. Например, мы хотим выбрать строку "В молоке 30% жирности"
Для этого и существуют дополнение ESCAPE. SAP рекомендует использоать символ "#"

Пример:

Для внутренних таблиц аналогично, но работает без дополнения: