Пример настройки композитной функции
В статье приведен пример создания композитной функции, которая проверяет серийный номер паспорта и добавляет подпись "Паспорт" перед номером для формирования упрощенных отчетов.
Создайте новую композитную функцию.
Укажите основные настройки функции:
Имя - "pass_number".
Отображаемое имя - "Проверка номера паспорта".
Описание - "В зависимости от длины строки добавляет подпись перед серийным номером паспорта".
Включите режимы обработки функции: Глобальный и Локальный.
Следующие действия выполняются в области редактора функций.
Добавьте новый порт в блоке "Входящие порты", нажав кнопку
"Добавить порт". Заполните параметры порта и нажмите "Продолжить":Имя порта - введите "port1".
Отображаемое имя порта - введите имя "Строка на проверку".
Тип порта - выберите "Простой" тип.
Тип значения - выберите тип "Строка".
Слева в перечне готовых функций найдите функцию "ПроверкаДлиныСтроки" и перетащите ее в основную рабочую область, удерживая кнопку
.Соедините выход входящего порта "Строка на проверку" с одноименным входом функции. Для этого наведите курсор на синий кружок входящего порта, зажмите левую кнопку мыши и протяните связь к белому кружку входа функции, после чего отпустите кнопку. Остальные входы и порты соединяются аналогичным методом.
Функция проверяет количество символов строки в заданном диапазоне при помощи входов "Минимально разрешенное количество символов" и "Максимально разрешенное количество символов". В рассматриваемом случае требуется точное значение, поэтому оба входа должны содержать одинаковые значения.
Перетащите в рабочую область блок константы. Задайте значение константы с помощью одноименной кнопки: выберите тип значения - Целое число, значение - "12" (серийный номер паспорта с пробелами).
Соедините выход константы со входами для минимального и максимального значений.
На выходе функция проверки длины строки возвращает признак проверки: истина (true) или ложь (false). Выход имеет тип "Логический".
Перетащите блок "Условие" в рабочую область редактора.
Соедините логический выход функции проверки длины с логическим входом условия (оранжевый кружок).
Добавьте порт "Проверка значения" для блока "Условие".
Соедините вход блока "Условие" с выходом входящего порта "Строка на проверку". Обработка функции будет осуществляться по алгоритму:
При запуске функции значение атрибута из входящего порта передается в функцию проверки длины строки, осуществляется проверка по заданным условиям.
Далее результат проверки передается в блок "Условие".
Блок "Условие" требует для работы входные данные. В рассматриваемом примере блок обращается к тому же атрибуту входящего порта.
Затем, в зависимости от результата работы функции "ПроверкаДлиныСтроки", в блоке "Условие" выполняются действия из веток true (бирюзовый кружок) или false (красный кружок).
Перетащите функцию "Соединить" в рабочую область редактора.
Добавленный блок может принимать на вход до 5 строк и впоследствии объединять их в одну строку. Входы расположены в порядке объединения, т.е. строка из входа 1 будет первой, строка из входа 5 – последней.
Соедините выход блока "Условие" из ветки true со вторым входом функции "Соединить".
Укажите для первого входа константное значение: перетащите блок "Константа", выберите тип "Строковый" и введите текст "Паспорт " (с пробелом в конце, в противном случае строки не будут содержать пробелов).
Добавьте новый порт в блоке "Исходящие порты", нажав кнопку
Добавить порт. Заполните параметры порта и нажмите "Продолжить". Тип исходящего порта должен соответствовать типу результатов обработки. Соответственно, для блока функции "Соединить" исходящий порт будет иметь тип "Строковый".Имя порта - введите "port2".
Отображаемое имя порта - введите имя "Преобразованное значение".
Тип порта - выберите "Простой" тип.
Тип значения - выберите тип "Строка".
Соедините выход функции "Соединить" - "Результат выполнения" со входом исходящего порта "Преобразованное значение".
Сохраненная композитная функция будет доступна в перечне функций и может использоваться как в правилах качества данных, так и в качестве блока для других композитных функций.
