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

Редактор бизнес-процессов

Основы бизнес-процессов

На платформе AppMaster для построения логики работы предназначен редактор бизнес-процессов. Именно знакомству с ним посвящен данный модуль.

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

Блок обычно представляет собой какое-то элементарное действие. Например, умножение двух чисел, запись переменной в таблицу базы данных, объединение строк или добавление элемента в массив. Впрочем, в отдельном блоке могут совершаться и более сложные операции, такие как поиск элементов в базе данных, с фильтрацией и сортировкой.

Более того, любой созданный бизнес-процесс тоже можно представить в виде отдельного блока, как часть другого бизнес-процесса. Это разумно использовать в ситуациях, когда функцию БП можно повторно использовать в других бизнес-процессах, а также если БП становится слишком большим и отдельные его части можно представить в виде самостоятельных блоков.

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

При этом есть два блока, которые являются обязательными для любого бизнес-процесса. Блоки начала (Start) и конца (End) работы БП. Эти блоки создаются автоматически и не могут быть удалены. Сами по себе они не выполняют какие-то операции, но являются точками входа и выхода бизнес-процесса. Помимо этого в данных блоках могут быть заданы переменные, которые являются входными и выходными данными БП.

Создание бизнес-процессов

Пора испытать это на практике. Перейдем в раздел работы с бизнес процессами. Создадим первый бизнес-процесс и настроим внутреннюю логику его работы.

По нажатию на “+ Create business process” откроется модальное окно с параметрами для создания нового БП:

  1. Название (Process name). Единственное обязательное поле.
  2. Папка (Folder). Если бизнес-процессов становится много, то удобнее разбить их на группы, разместить в соответствующих папках.
  3. Описание (Description). Одного имени может быть недостаточно для того, чтобы полностью передать назначение БП и раскрыть детали его работы. Поле описания предназначено для подобной информации.
  4. Режим транзакции (Transaction mode). В случае активации переключателя БП приобретает свойство атомарности. Это означает, что БП либо выполняется полностью, либо не выполняется ни один из его отдельных блоков. Если в каком-то блоке произойдет ошибка, то будет выполнен откат всех изменений, вызванных предыдущими блоками.

Создадим бизнес-процесс, который получает на вход значения двух чисел. Проведем математические операции с этими числами. Рассчитаем результаты:

  1. Суммирования
  2. Вычитания
  3. Умножения
  4. Деления

Результат деления еще и дополнительно округлим до первого знака после запятой.
В итоге мы должны будем получить 5 чисел, которые объединим в массив. Именно этот массив и станет результатом работы бизнес-процесса.

Все начинается с входных данных. Необходимо определить числа, с которыми мы будем проводить математические операции. Важно понять, что задаем мы не числа, как таковые. Мы создаем переменные, которые принимают необходимые значения. Это можно сравнить с решением школьных уравнений. X + Y = Z. Вот и мы зададим не конкретные 2 числа, а абстрактные X и Y. Их точное значение в дальнейшем можно будет задавать любым.

Для установки входных значений необходимо выделить блок Start. На правой панели появится раздел для установки переменных. Необходимо задать их названия (мы уже определились, что это будут X и Y) и выбрать тип переменных. Во втором модуле мы обсуждали, что для записи чисел доступны два варианта. Integer (для целочисленных данных) и Float (для чисел с плавающей запятой). В данном случае мы не собираемся ограничиваться целыми значениями, поэтому будет правильным выбрать тип Float.

Следующий шаг - добавление блоков математических операций. Они расположены на левой панели и разбиты по разделам. Нужно лишь выбрать необходимые и перетащить в рабочую область. В первую очередь нас интересуют математические операции, соответственно понадобятся блоки Sum, Subtract, Multiply и Divide.

Можно убедиться в том, что каждый блок является бизнес-процессом в миниатюре. У него обязательно есть начало (In) и конец (Out), а также входные и выходные данные (чаще всего они есть, но это не является обязательным, есть БП и без них).

Операции будут выполняться последовательно, одна за другой. Необходимо установить их связь (определить этим порядок их выполнения) и подать необходимые данные на вход).

Следующий шаг - округление результата деления. Используем блок Round (возможны варианты Round Up или Round Down для округления вверх и вниз соответственно), подаем на вход результат из блока деления и задаем точность. Нас интересует 1 знак после запятой, поэтому и параметр Precision устанавливаем равным 1.

Промежуточный результат должен получиться примерно таким:

Стоит отметить, что сама расстановка блоков может быть любой. Можно выстраивать их в ряд, можно размещать один блок под другим. Это влияет только на удобство восприятия, но никак не на результат выполнения бизнес-процесса. Главное, чтобы сами линии связи были заданы в правильном порядке, а на вход блоков поступали необходимые данные.

Следующий шаг - создание массива с полученными данными. Для этого идеально подойдет блок Append array. Его задача заключается именно в том, чтобы добавить в массив новый элемент. На вход подается массив и необходимый элемент, на выход поступает массив, в котором стало на 1 элемент больше.

Обратите внимание на то, что нет необходимости в том, чтобы вручную задавать тип данных. Блок автоматически настроится на нужный тип в зависимости от того, какие данные получит на вход. Если подать на вход Float, то и на выходе автоматически будет массив Float, его не получится случайно соединить с несовместимым типом данных.

Мы добавляем в массив 5 значений, поэтому и блок Append Array необходимо использовать 5 раз. В первом случае достаточно подать на вход только добавляемый элемент. Массив будет создан автоматически. В последующих случаях на вход должен попасть и элемент и сам массив, к которому мы элемент добавляем.

Кстати, на левой панели, рядом с Append Array, можно увидеть функции с похожими названиями. Prepend Array делает новый элемент самый первым, и этим отличается от Append, который добавляет элемент в конец массива. Блок Concat Array используется для объединения двух массивов.

В AppMaster используется множество различных блоков. Не бойтесь экспериментировать и использовать их все, даже если про конкретный блок не было информации в рамках курса.

Для передачи итогового результата остается только добавить к блоку End соответствующую переменную. В нашем случае это Float Array.

Создание первого бизнес-процесса закончено! В следующем модуле мы разберемся, как использовать его на практике, подавать входные данные и получать результат.


Домашнее задание

Создайте бизнес-процесс, который обрабатывает 3 числа. Одно из них — постоянное, два других — переменные.

Рассчитайте:

  1. Сумму этих чисел
  2. Произведение
  3. Результат деления 2) на 1) с округлением до целого значения
  4. Результат деления 1) на 2) с округлением вверх до второго знака после запятой.

Результатом работы бизнес-процесса должны стать два массива. В одном данные упорядочены в порядке их вычисления. Во втором эти же данные, но в обратном порядке.