Композитные функции

Создание функции

Для создания композитной функции:

  1. Убедитесь, что включен режим черновика.

  2. Нажмите кнопку image3 Добавить функцию, расположенную в нижней части списка функций.

  3. В результате действия над кнопкой откроется список вариантов создания.

  4. Выберите пункт "Композитная функция".

  5. В результате действия отроется окно настройки новой функции.

  6. Укажите основные настройки функции: Имя, Отображаемое имя, Описание.

  7. Установите необходимые режимы обработки функции: глобальный и/или локальный.

  8. Создайте необходимую функцию с помощью редактора, используя готовые функции, константы, условия (см. пример).

  9. Сохраните изменения. Нажмите кнопку image2 Сохранить, расположенную в верхнем правом углу окна настройки функции.

  10. После того как все данные введены и сохранены, опубликуйте черновик.

Примечание

Если композитная функция соблюдает ряд условий реализации, то в карточке записи будут отображаться ошибки качества данных напротив атрибутов, где сработала композитная функция (по аналогии со стандартными функциями). Функция должна соблюдать одновременно оба условия реализации:

  • Блоки композитной функции должны иметь прямое подключение к выходным портам всей композитной функции.

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

Работа с редактором функций

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

  • Добавление блока в рабочую область осуществляется методом drag-n-drop. Для этого выберите необходимый блок из перечня слева, зажмите кнопку image4 и перетащите его в основную рабочую область. Блоки можно перемещать в пределах основной рабочей области редактора.

  • Удаления блока доступно при нажатии кнопки image5 в правом верхнем углу элемента.

  • Вход всегда расположен с левой стороны блока, Выход - с правой стороны блока.

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

Блоки функций

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

Блок функции
  • Блок константы имеет один выход (сплошной синий круг), так как сам передает данные (константу). При нажатии на "Задать значение" открывается модальное окно, в котором указывается тип значения и само значение константы.

    • Константа подключается ко входу блока функции или блока условия. Подключение означает передачу константы. При этом блок функции или блок условия могут быть подключены одновременно с блоком константы.

Блок константы
  • Блок условия всегда имеет один логический вход (сплошной оранжевый круг).

    • Логический вход предназначен для управления условиями, от него приходит значение истина или ложь, и в зависимости от этого выполняются действия соответствующих выходов.

    • Условие добавляется при нажатии кнопки image3. В модальном окне задаются параметры порта.

    • Вход отображается как белый сплошной круг с границей синего цвета.

    • Выход отображается справа и разделен на 2 ветки: "Истина" - сплошной бирюзовый круг, "Ложь" - сплошной красный круг.

    • Не все созданные входы/выходы должны использоваться. Блок выбирает, какие из входов будут заполнены, а какие останутся пустыми. Если значения не заполнены, то блок, который соединен с исходящими портами блока "Условие", все равно будет отрабатывать с пустыми значениями.

Блок условия

Клонирование функции

Для клонирования композитной функции:

  1. Убедитесь, что включен режим черновика.

  2. Наведите курсор на строку необходимой композитной функции и нажмите кнопку image1 Клонировать функцию в правом конце строки.

  3. В открывшемся окне заполните Имя и Отображаемое имя новой функции.

  4. Нажмите image2 "Сохранить". В результате действия функция будет клонирована, и откроется окно с параметрами функции.

  5. После того как все данные введены и сохранены, опубликуйте черновик.

Пример настройки композитной функции

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

  1. Создайте новую композитную функцию.

  2. Укажите основные настройки функции:

    • Имя - "pass_number".

    • Отображаемое имя - "Проверка номера паспорта".

    • Описание - "В зависимости от длины строки добавляет подпись перед серийным номером паспорта".

  3. Включите режимы обработки функции: Глобальный и Локальный.

  4. Следующие действия выполняются в области редактора функций.

  5. Добавьте новый порт в блоке "Входящие порты", нажав кнопку image6 "Добавить порт". Заполните параметры порта и нажмите "Продолжить":

    • Имя порта - введите "port1".

    • Отображаемое имя порта - введите имя "Строка на проверку".

    • Тип порта - выберите "Простой" тип.

    • Тип значения - выберите тип "Строка".

Создание композитной функции
  1. Слева в перечне готовых функций найдите функцию "ПроверкаДлиныСтроки" и перетащите ее в основную рабочую область, удерживая кнопку image4.

  2. Соедините выход входящего порта "Строка на проверку" с одноименным входом функции. Для этого наведите курсор на синий кружок входящего порта, зажмите левую кнопку мыши и протяните связь к белому кружку входа функции, после чего отпустите кнопку. Остальные входы и порты соединяются аналогичным методом.

    • Функция проверяет количество символов строки в заданном диапазоне при помощи входов "Минимально разрешенное количество символов" и "Максимально разрешенное количество символов". В рассматриваемом случае требуется точное значение, поэтому оба входа должны содержать одинаковые значения.

Создание композитной функции
  1. Перетащите в рабочую область блок константы. Задайте значение константы с помощью одноименной кнопки: выберите тип значения - Целое число, значение - "12" (серийный номер паспорта с пробелами).

  2. Соедините выход константы со входами для минимального и максимального значений.

    • На выходе функция проверки длины строки возвращает признак проверки: истина (true) или ложь (false). Выход имеет тип "Логический".

Создание композитной функции
  1. Перетащите блок "Условие" в рабочую область редактора.

  2. Соедините логический выход функции проверки длины с логическим входом условия (оранжевый кружок).

  3. Добавьте порт "Проверка значения" для блока "Условие".

  4. Соедините вход блока "Условие" с выходом входящего порта "Строка на проверку". Обработка функции будет осуществляться по алгоритму:

  • При запуске функции значение атрибута из входящего порта передается в функцию проверки длины строки, осуществляется проверка по заданным условиям.

  • Далее результат проверки передается в блок "Условие".

  • Блок "Условие" требует для работы входные данные. В рассматриваемом примере блок обращается к тому же атрибуту входящего порта.

  • Затем, в зависимости от результата работы функции "ПроверкаДлиныСтроки", в блоке "Условие" выполняются действия из веток true (бирюзовый кружок) или false (красный кружок).

Создание композитной функции
  1. Перетащите функцию "Соединить" в рабочую область редактора.

  • Добавленный блок может принимать на вход до 5 строк и впоследствии объединять их в одну строку. Входы расположены в порядке объединения, т.е. строка из входа 1 будет первой, строка из входа 5 – последней.

  1. Соедините выход блока "Условие" из ветки true со вторым входом функции "Соединить".

  2. Укажите для первого входа константное значение: перетащите блок "Константа", выберите тип "Строковый" и введите текст "Паспорт " (с пробелом в конце, в противном случае строки не будут содержать пробелов).

  3. Добавьте новый порт в блоке "Исходящие порты", нажав кнопку image6 Добавить порт. Заполните параметры порта и нажмите "Продолжить". Тип исходящего порта должен соответствовать типу результатов обработки. Соответственно, для блока функции "Соединить" исходящий порт будет иметь тип "Строковый".

    • Имя порта - введите "port2".

    • Отображаемое имя порта - введите имя "Преобразованное значение".

    • Тип порта - выберите "Простой" тип.

    • Тип значения - выберите тип "Строка".

  4. Соедините выход функции "Соединить" - "Результат выполнения" со входом исходящего порта "Преобразованное значение".

Создание композитной функции
  1. Сохраните изменения с помощью кнопки image2 "Сохранить" в верхнем правом углу окна и опубликуйте черновик.

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