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

Для отладки разработок удобно использовать 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»

Простой Telegram-bot на Python

В качестве WiFi точки доступа используется точка доступа ASUS RT-AC51U. Для интереса решил изучить Python и попробовать написать на нем бота для Telegram, который будет работать на роутере.

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

В качестве базы данных используется SQLite, установить которую очень просто с помощью opkg:

opkg install python3-sqlite3

Для начала попробовал сделать бота с помощью библиотеки pyTelegramBotAPI. В связи с небольшим объемом памяти на роутере pip не работает. Поэтому библиотеку пришлось устанавливать вручную:

git clone https://github.com/eternnoir/pyTelegramBotAPI.git
cd pyTelegramBotAPI
python setup.py install

Теперь можно приступать к разработке бота

Читать далее «Простой Telegram-bot на Python»

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»