Функции и ноды-функции необходимы для записи данных, преобразования значений, математических расчетов, сборки сложных 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