Определение имени метода

Для отладки разработок удобно использовать LOG-POINT (транзакция SAAB). Для этого в программе необходимо добавлять команду LOG-POINT ID, например:

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

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

Читать далее «Определение имени метода»

Параллельная работы отчета. SPTA Framework

Заинтересовала возможность распараллеливания работы отчетов и решил переделать один отчет HR, который последовательно обрабатывает большое количество сотрудников. За основу взял эту статью.

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

В процессе первой итерации распараллеливания преобразуем программу таким образом, что бы главный метод возвращал структуру с собранными данными. Таким образом параллельные процессы вернут таблицу с данными по каждому сотруднику. Затем в основном потоке останется агрегировать эти информацию в результирующую таблицу и отобразить её.

Читать далее «Параллельная работы отчета. SPTA Framework»

SAP Developer Edition

Понадобилось установить систему SAP для собственных нужд. К счастью SAP AG бесплатно распространяет систему SAP для разработчиков. Скачиваем SAP NetWeaver AS ABAP Developer Edition 7.52 SP04

Данная система устанавливается на компьютер, минимальные требования к которому — 4Gb памяти и 100Gb на жестком диске. ОС должна быть линукс. Я использовал openSuSE 15.4

Установка данной версии не предоставляет никаких сложностей. Единственно надо выделить 8Gb под swap. В качестве файловой системы я предпочитаю использовать ext4.

Читать далее «SAP Developer Edition»

BOPF. ч. 6. Практические примеры

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

Изменение данных.

Чтобы изменить те или иные данные в БО можно воспользоваться методом modify. Для этого нужно заполнить таблицу модификаций. При этом поле change_mode может принимать значение из константы /bobf/if_frw_c=>sc_modify_update для модификации существующего значения.

Читать далее «BOPF. ч. 6. Практические примеры»

Unit-test. Ч. 2.

В первой части я кратко описал назначение unit-test и сделал unit-test для локального класса. Теперь сделаем unit-test для функционального модуля и для глобального класса.

Unit-test для функционального модуля.

Сначала создадим функциональный метод ZFM_CALCULATOR и сделаем unit-test для него

Читать далее «Unit-test. Ч. 2.»

Unit-test

Юнит-тест это автоматизированный тест изолированного от зависимостей
логического блока кода. Юнит-тест даёт возможность разрабатывать код, который можно легко развивать с течением времени. При использовании unit-тестирования разработчик гарантирует правильность работы кода, упрощает проверку качества и рефакторинг кода.

Unit-test представляет собой специализированный локальный класс, который вызывает методы основного класса, разрабатываемые функциональные модули или подпрограммы программы. Затем в локальны класс анализирует результат работы программы и сравнивает его с эталонным. Таким образом для unit-test разработка представляет собой черный ящик, который должен в зависимости от специально подготовленных исходных данных возвращать ожидаемые от него результаты. Что именно происходит внутри разработки классу тестирование не важно.

Перейдем к практической реализации unit-test.

Читать далее «Unit-test»

Фреймворк BOPF. ч 5. Создание Query и Validation

Создание QUERY

Для создания запроса, достаточно в контекстном меню выбрать пункт Create Query

Создание Query

Создадим запрос Select_all, который будет показывать всё содержимое ноды

Читать далее «Фреймворк BOPF. ч 5. Создание Query и Validation»