Журнал приложения в SAP MII. Часть 1.

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

Нам нужен следующий функционал:

  1. Место хранения записей журнала приложения (Persistent MDO).
  2. API для добавления записей в журнал приложений (транзакция добавления одной записи, транзакция массового добавления записей).
  3. Журнал приложений с возможностью выбора нужной степерью детализации (в табличном виде или в виде дашборда).
Читать далее «Журнал приложения в SAP MII. Часть 1.»

Формирование файла Excel в приложении Fiori. ч 4.

Ранее я описывал способы формирования файлов в Fiori. Однако программирование в SAP не стоит на месте и развивается. В последних релизах SAP добавил новые технологии и сейчас я опишу способ, который позволяет скачивать генерируемые файлы с помощью модели RAP.

ABAP RAP (RESTful Application Programming Model) это модель разработки приложений на языке ABAP для облачных решений, однако она доступна и в локальных системах актуальных версий (на 7.54 еще не работает).

За основу я взял пост Streams in RAP : Uploading PDF , Excel and Other Files in RAP Application, однако там файлы сохранялись в таблице. Я же сделаю возможность формирования документов (например авансового отчета) для командировок из Fiori-приложения на лету.

Читать далее «Формирование файла Excel в приложении Fiori. ч 4.»

API-Тест. Часть 2

В первой части мы сделали простой API-тест REST-сервиса состоящий из двух шагов — авторизация и получение данных. Во второй части я опишу изменение данных бизнес-партнера, проверку изменения и покажу возможность автоматического запуска коллекции тестов на регулярной основе.

1. Изменение данных и контроль изменений.

Добавим новый запрос в нашу коллекцию тестов

Читать далее «API-Тест. Часть 2»

API-Тест. Часть 1

Тестирование это важный этап при разработке. Если разработка представляет собой программу, функциональный модуль или класс, то можно обойтись unit-тестами. Если же разработка представляет собой реализацию интеграционных процесса, то необходимо также выполнять тестирование извне. Имеются несколько инструментов такого тестирования — Postman, SoapUI итд, однако они имеют ограничения. Недавно нашел интересный инструмент — Bruno

Bruno это быстрый opensource API клиент, который можно установить на разные ОС. Представляет собой Bruno Desktop App и Bruno Cli.

Попробуем сделать небольшой API-тест к REST-сервису который доступен по адресу http://192.168.1.4:8000/sap/zrest, который предоставляет возможность получать данные бизнес-партнеров (БП) в SAP.

Читать далее «API-Тест. Часть 1»

ZABAP2XLSX. Вывод данных в Excel с использованием шаблона

Есть несколько способов вывода данных в Excel: прямой экспорт данных из ALV, генерация XML-файла с использованием трансформации, XLSX Workbench и XTT. Сегодня будем использовать ZABAP2XLSX.

Для удобного формирования файлов создадим шаблон, в котором укажем используемые переменные, заключенные в квадратные скобки [].

Используя программу ZEXCEL_TEMPLATE_GET_TYPES сформируем тип структуры, которая описывает изменяемые данные шаблона.

Читать далее «ZABAP2XLSX. Вывод данных в Excel с использованием шаблона»

Странное поведение REDUCE

Обнаружилось странное поведение команды REDUCE, которая появилась в 7.40

Понадобилось сложить значения в таблице

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

Однако в тестовой системе с реальными данные выпадает в ошибку с переполнением.

Читать далее «Странное поведение REDUCE»

Добавление ведущих нулей для номера материала

Очень распространённая ситуаций связана с необходимостью добавления ведущих нулей для некоторых полей.

После появления нового синтаксиса в 7.40 стало очень удобно добавлять ведущие нули с помощью конструкции:

Однако недавно SAP увеличил длину поля MATNR до 40 символов, но по умолчанию, в настройках по прежнему длина поля указана в 18 символов (транзакция OMSL).

В результате этого добавление ведущих нулей для поля MATNR может привести к приведению до 40 символов, не зависимо от настроек.

Читать далее «Добавление ведущих нулей для номера материала»