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

В процессе изучения Fiori решил создать небольшое приложение, которое будет формировать файл Excel.

Когда-то я описывал способ создания файла Excel в фоновом режиме с дальнейшей его отправкой на почту. Такой способ подходит только для формирования простых таблиц. В случае необходимости более сложных файлов по определенному шаблону необходимо использовать различные библиотеки. Но бывают ситуации, когда их в системе нет и тогда можно воспользоваться самым простым способом создания «файла Excel».

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

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

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