Функции и ноды-функции необходимы для записи данных, преобразования значений, математических расчетов, сборки сложных JSON для ответа и тп.
Просто Функциями
называются методы классов, доступные для обращения из эндпойнтов BPMS.
Такие функции привязываются через таблицу instances_endpoint по названию в столбце function.
Такие функции не имеют id_api_method и id_node_process.
Если request_json не пустой, необходимо провести сохранение указанных там полей согласно шаблонам {{field.id}}, используя адаптер паттернов, как это делается в instances_api_methods
.
Если response_json не пустой, в ответ на внешний запрос необходимо заполнить шаблоны указанного там JSON, используя адаптер паттернов.
Нода-функция отличается от нативной тем, что она может быть расположена, как на процессе, так и быть доступной из эндпойнта.
Исходный код ноды-функции на Python хранится в БД. Это позволяет ей быть открытой для создания и редактирования аналитиками.
Ноды-функции хранятся в nodes
, id_node_type в nodes_param
соответствует nodes_type
function.
Входные и выходные параметры ноды задаются соответственно через задание для ноды property: functionInputParameters и functionOutputParameters.
Значениями (property_value) этих настроек для ноды должен быть JSON ключей и значений.
По JSON из functionInputParameters формируется словарь входных данных. Он может выглядеть следующим образом:
{
"parameter1": "{{field.8888}}",
*"password_len": "{{json.parameter}}"
}
По JSON из functionOutputParameters происходит сохранение необходимых данных. Здесь доступен паттерн {{fresult.}}, который обращается в результирующему словарю функции.
Пример:
{
"{{field.1426}}": "{{fresult.password}}"
}
Исходный код самой функции пишется в nodes_param
в node_function