Параллельная работы отчета. 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»

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

Создание QUERY

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

Создание Query

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

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