Шаги процессов обработки

Работа с банком

Данный раздел содержит описание следующих шагов:

  • Запись объекта.

  • Запись объектов.

  • Поиск.

  • Удаление.

  • Получение объекта и шаги из папки Источники.

  • Получение объектов.

  • Запрос, Запрос значений, Запрос объектов.

Запись объекта

Шаг предназначен для записи выбранного объекта в банк данных. Успешная запись объекта гарантирована только в том случае, если записываемый объект является типом данных принадлежащим к банку данных.

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

Параметры шага настраиваются на следующих вкладках:

  • Основные

  • Локальные переменные

  • После выполнения

Для записи объекта:

  • В поле Объект указывается переменная типа данных, являющегося сохраняемым (объект банка данных).

  • В поле Время ожидания указывается время ожидания ответа от банка данных в мс.

  • В поле Комментарий указывается комментарий к шагу.

  • Флажок Проверять версию устанавливается для сравнения версий при совместной работе нескольких пользователей с одним объектом и предотвращения перезаписи данных при одновременном внесении изменений.

../../_images/image188.png

Если запись в банк данных произведена успешно и ответ от банка получен, можно получить ссылку (Guid записи, сделанной в банке), выполнив маппинг из переменной EntityID на вкладке После выполнения.

Из данного шага, как и из некоторых других, есть 3 логических выхода:

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

  • Выход - : если за указанный период не получен идентификатор объекта.

  • Выход : не зависимо от результатов записи (параллельное выполнение).

Запись объектов

Шаг предназначен для записи массива объектов. В поле Объекты указывается перечень объектов для записи.

  • В поле Объект указывается переменная типа данных, являющегося сохраняемым (объект банка данных).

  • В поле Время ожидания указывается время ожидания ответа от банка данных в мс.

  • В поле Комментарий указывается комментарий к шагу.

  • Флажок Проверять версию устанавливается для сравнения версий при совместной работе нескольких пользователей с одним объектом и предотвращения перезаписи данных при одновременном внесении изменений.

../../_images/image189.png

Поиск

Шаг предназначен для поиска в банке данных. Условия поиска записей задаются на вклакде Основные:

  • Тип данных: в меню ... доступен выбор типов данных. Необходимо выбрать интересующий Вас тип, хранимый в банке.

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

  • Номер страницы: номер страницы, на которой будет происходить поиск. Например, если всего записей в банке 10, размер страницы = 5 и номер страницы = 0, то поиск будет запущен только по первым 5 записям. Если размер страницы = 15, номер страницы = 1, то поиск гарантировано не даст результата, так как поиск будет запущен на 16-30 записи.

  • Условие поиска: поле и его значение, по которым будет происходить поиск.

  • Условия сортировки: по умолчанию происходит сортировка по возрастанию. Есть возможность отсортировать результаты по значениям конкретного поля, для этого укажите путь к нему. По умолчанию происходит сортировка по возрастанию. При необходимости сортировки по убыванию добавьте в конце DESC.

../../_images/image190.png

В результате поиска получается массив записей указанного типа данных. Для массива можно выполнить маппинг на вкладке После выполнения.

../../_images/image191.png

Удаление

Шаг предназначен для удаления выбранного объекта или массива объектов из банка данных.

В выпадающем меню Объекты необходимо выбрать системную переменную необходимого типа данных с заполненным полем EntityId. Из банка будет удалена запись или массив записей с указанным в переменной EntityId (остальные поля переменной не принимаются во внимание).

Если при удалении передавать объект, то он целиком уходит в банк данных. Достаточно передать только ссылку на объект, так как для удаления не обязательно требуется весь объект.

Для этого при выборе переменной можно выбрать не объект, а переменную типа LinkType или OwnList<LinkType>.

  • В поле Объект указывается переменная типа данных, являющегося сохраняемым (объект банка данных).

  • В поле Время ожидания указывается время ожидания ответа от банка данных в мс.

  • В поле Комментарий указывается комментарий к шагу.

  • Флажок Проверять версию устанавливается для сравнения версий при совместной работе нескольких пользователей с одним объектом и предотвращения перезаписи данных при одновременном внесении изменений.

../../_images/image192.png

Получение объекта и шаги из папки Источники

Шаг предназначен для получения записи из банка по ее EntityId. При настройке необходимо заполнить entityId записи или выбрать переменную, в которой она содержится, а также выбрать тип данных искомой записи. В результате получим запись указанного типа.

Для использования результата получения в схеме необходимо выполнить маппинг на вкладке После выполнения.

  • В поле Описание указывается описание шага.

  • В поле Комментарий указывается комментарий к шагу.

  • В поле Идентификатор указывается тип EntityId объекта, который необходимо получить из банка

данных. - В выпадающем меню Тип данных выбирается тип данных искомого объекта.

../../_images/image193.png

Шаги из папки Источники используются для получения сообщения от выбранной системы.

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

Получение объектов

  • В поле Описание указывается описание шага.

  • В поле Комментарий указывается комментарий к шагу.

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

  • В выпадающем меню Тип данных выбирается тип данных искомого объекта.

../../_images/image194.png

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

Запрос, Запрос значений, Запрос объектов

  • В поле Описание указывается описание шага.

  • В поле Комментарий указывается комментарий к шагу.

  • В выпадающем меню Тип данных выбирается тип данных искомого объекта.

Текст запроса: запрос получения информации из банка данных.

../../_images/image195.png

Шаги предназначены для получения информации из банка данных.

Для настройки шага нужно указать тип данных, являющийся объектом банка данных, и заполнить поле Текст запроса. Результатом успешного выполнения запроса является ответ банка. Ответ находится в переменной Результаты и Количество на вкладке После выполнения.

Результат выполнения запроса пользователь может получить путем выполнения маппинга переменной Результаты в переменную процесса.

Работа с внешними системами

Данный раздел содержит описание следующих шагов:

  • Отправка и получатели.

  • Отправка получателям.

  • Регистрация сообщения.

Отправка и получатели

Шаг Отправка предназначен для передачи выбранной переменной в модуль или систему. Сообщение: передаваемое сообщение. Заполните фиксированным выражением в «» или выберите переменную для отправки посредством меню . Обработчик: выберите обработчик, который необходимо применить при отправке.

В выпадающем меню Тип получателя следующий выбор типов:

  • Модуль: в поле ниже требуется ввести guid модуля/системы, или переменную, содержащую их guid.

  • Папка: в поле ниже требуется ввести guid папки с модулями/системами, или переменную, содержащую guid папки.

  • Запрос: в поле ниже требуется ввести запрос, указывающий на систему/модуль. Например, name:ФайловыйАдаптер1.

В выпадающем меню Ожидание следующий выбор вариантов:

  • Ожилание не требуется

  • Ожидать доставки

  • Ожидать ответа

../../_images/image196.png

Аналогично этому шагу настраивается выполнение шагов из папки Получатели. В них уже заполнены и скрыты поля, связанные с идентификацией получателя.

Отправка получателям

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

../../_images/image198.png

Если установлен параметр Исключить инициатора и при этом есть выбранная система и источник, то при выполнении шага система генерирует сообщение Шаг [Отправка подписчику] не выполнился по причине отсутствия получателей. Инициатор сообщения был удален из получателей.

Регистрация сообщения

Шаг используется для регистрации нового сообщения. Зарегистрированное сообщение будет передано в Определение функции.

../../_images/image200.png

Запуск алгоритмов и процессов

Запуск процесса и шаги из папки Процессы

Процесс - указание EntityId процесса.

Шаг предназначен для запуска уже существующего процесса. Настройка шага заключается в указании entityId запускаемого процесса. После заполнения entityId на вкладке Основные начинают отображаться переменные выбранного процесса.

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

Для этого перетащите выделенный на скриншоте квадрат в необходимую переменную или поле, двойным щелчком мыши откройте появившийся блок и заполните значение.

Аналогично этому шагу настраивается выполнение шагов из папки Процессы. В них уже заполнены и поля, связанные с идентификацией процесса.

../../_images/image201.png

Установка переменных

Шаг Установка переменных предназначен для присвоения значений переменным процесса.

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

../../_images/image202.png

С помощью дополнительных настроек можно выбрать способ добавления и заполнения элементов итогового массива.

Способ добавления элементов массива (addOption):

Варианты для выбора

Значение

Замена (Replace)

Количество записей в Массиве2 становится равным количеству записей Массива1

Добавление (Add)

Количество записей в Массиве2 увеличивается на количество записей Массива1

Способ заполнения элементов массива (параметр fillOption):

Варианты для выбора

Значение

С коп ированием(AutoMapping)

Содержимое из полей Массива1 копируется в соответствующие поля Массива2

Без копи рования(ManualMapping)

Содержимое соответствующих полей Массива2 остается пустым

По умолчанию выбран параметр замена с копированием. Пример: Дано два массива: Массив1 и Массив2:

../../_images/image203.png

Результат сработавшего маппинга из Массива1 в Массив2 в зависимости от настроек:

../../_images/image204.png

При маппинге немассив-немассив независимо от выбранных параметров маппинг всегда срабатывает по схеме Replace+AutoMapping.

Сервисные шаги

Этот раздел содержит описание следующих шагов:

  • Лог.

  • Ожидание.

  • Условие.

  • Завершение.

Лог

Шаг предназначен вывода указанной текстовой информации в лог сервиса Процессы.

../../_images/image205.png

Шаг содержит:

  • Вкладку Основные

  • Вкладку Локальные Переменные

  • Вкладку После выполнения

Вкладка Основные

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

Например, в переменных процесса есть простая переменная типа Int со значением 25.

../../_images/image206.png

Для вывода значения переменной значение в поле Сообщение шага необходимо ввести текст: {значение}.

Результат выполнения:

../../_images/image208.png

Лог доступен в ЦМ в меню Сервисы:> Процессы:> вкладка Журнал. Информация, указанная в поле Сообщение, будет отображена в разделе Пользовательские данные.

../../_images/image209.png

Ожидание

При наступлении шага Ожидание система помещает процесс в очередь спящих. Очередь спящих процессов доступна в ЦМ: Серверы:> Ваш сервер:> вкладка Спящие процессы.

../../_images/image210.png

Шаг предусматривает следующие способы просыпания:

  • Только внешнее событие:

    ../../_images/image211.png

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

    ../../_images/image212.png
  • По истечении времени:

    Задается в секундах как число

    ../../_images/image213.png

    или строкой в формате часы:минуты:секунды.

    ../../_images/image214.png

    В примере возобновление произойдет ровно через 1 минуту после засыпания.

  • в указанное время:

    Через переменную с типом DateTime можно указать конкретное время просыпания. Переменная указывается на вкладке Переменные.

    ../../_images/image215.png

    Установить значение переменной можно, например, в шаге Алгоритм: Дата = new DateTime(год, месяц, день, часы, минуты, секунды).

    ../../_images/image216.png

    Затем в настройках шага Ожидание нужно указать используемую переменную.

    ../../_images/image217.png

    Также указать время пробуждения можно с помощью константы в кавычках часы:минуты:секунды. В этом случае установится текущая дата.

После возобновления процесса через интервал или в определенное время в журнале сервера будет отображена запись о возобновлении процесса по истечению таймаута.

../../_images/image218.png

На вкладке События модуля обработки процессов будут зарегистрированы события засыпания и повторного получения на обработку.

../../_images/image219.png

Условие

Шаг предусматривает два режима:

  • Режим Переход по условию. Выбирается по умолчанию и соответствует конструкции If.

  • Режим Переход по соответствию значения. Соответствует конструкции Switch.

../../_images/condition.png

Примечание

В режиме Переход по соответствию значения возможно использование локальных переменных, которые следует указывать в следующем формате: local.ИмяЛокальнойПеременной.

Шаг предусматривает несколько вариантов из одного выхода +. Для добавления условия выполнения варианта необходимо выбрать соединяющую линию и нажать на кнопку +.

../../_images/image220.png

Система добавит новое условие. Формат условия:

<укажите значение 1> = <укажите значение 2>, где

  • <укажите значение 1>: переменная бизнес процесса (вкладка Переменные).

  • =: тип операции.

  • <укажите значение 2>: значение.

Добавление еще одного условия доступно только после выполнения предыдущего условия.

../../_images/image221.png

При наступлении шага Условие система проверяет условия для первого варианта. Если все условия выполняются, процесс продолжается, другие варианты не проверяются. Если условия для первого варианта не выполнены, система переходит к следующему варианту.

При выборе режима Переход по соответствию значения указывается переменная Switch; для перехода к нужному шагу указывается значение переменной.

Завершение

Шаг предназначен для выполнения маппинга переменных после выполнения процесса.

../../_images/step_finish.png

Программные шаги

Данный раздел содержит описание следующих шагов:

  • Алгоритм.

  • Сервисный алгоритм.

Алгоритм

Шаг предназначен для описания необходимых действий кодом на C#.

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

Если алгоритм не был создан заранее, то можно ввести код вручную, выбрав соответствующий вариант.

В поле Модуль запуска указывается идентификатор модуля, в котором будет запущен алгоритм. Поддерживается запуск алгоритмов в модулях Банк данных и Онтология.

../../_images/image222.png

Сервисный алгоритм

Сервисный алгоритм работает со служебными функциями - архивами и логами. Отправка и сама логика остается в процессах. Логика настройки схожа с настройкой запуска вложенного процесса.

На вкладке основные расположены следующие элементы:

  • Флажок Только на текущем сервере. Если флажок не установлен, необходимо указать Id сервера.

  • Поле Время ожидания, заполняется в миллисекундах. Если у шага стоят выходы из плюс или минус, то заполнение времени ожидания обязательно.

  • Id Сервера.

  • Поле Code: текстовый редактор C#, заполняется вручную.

Вкладки Локальные переменные и После выполнения: как у всех шагов:

../../_images/image223.png

Работа с Хранилищем сообщений

В схемах обработки доступны шаги для доступа к хранилищу сообщений аналогично шагам для работы с банком данных. Они находятся в общем списке шагов на закладке Схема в разделе Хранилище сообщений.

../../_images/image232.png

Поместить в MS

../../_images/image233.png

Параметры:

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

  • Время ожидания - в мс.

  • Сообщение - объект для записи в хранилище. Можно выбрать системные переменные или переменные в контексте процесса; это может быть единичное сообщение или массив сообщений.

Шаг налогичен в настройке шагу Запись объекта, который работает с банком данных.

../../_images/image234.png

Шаг возвращает результат в локальную переменную МассивИдентификаторовEntityId - массив идентификаторов записей, сделанных в хранилище (массив типа Guid). В случае записи единичного сообщения результатом будет массив c одним элементом.

Переотправить из MS

../../_images/image235.png

Параметры:

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

  • Идентификатор записи с сообщением (entityId) - переменная типа Guid или массив типа Guid.

  • После обработки - чекбокс, возвращать сообщение на этап, следующий после обработки на этапе, на котором произошла запись сообщения в хранилище (по умолчанию не установлен).

Шаг ищет записи в хранилище сообщений по значениям в колонке entityId в хранилище сообщений. Из найденных записей шаг извлекает сообщения и отправляет снова на обработку.

Процесс для обработки берется из значения свойства ProcessId из тех же сообщений (при записи в хранилище сообщение должно иметь актуальное значение ProcessId, чтобы было возможно в дальнейшем переотправить сообщение при необходимости). Записи в хранилище после переотправки остаются.

Переотправить по запросу из MS

../../_images/image236.png

Параметры:

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

  • После обработки - чекбокс, возвращать сообщение на этап, следующий после обработки на этапе, на котором произошла запись сообщения в хранилище (по умолчанию не установлен).

  • Поле текстового редактора, где пишется запрос SQL.

Шаг ищет записи в хранилище сообщений по запросу SQL, извлекает сообщения из записей и повторно отправляет их в обработку. Процесс для обработки берется из значения свойства ProcessId из тех же сообщений (при записи в хранилище сообщение должно иметь актуальное значение ProcessId, чтобы было возможно в дальнейшем переотправить сообщение при необходимости). Записи в хранилище после переотправки остаются. Может быть полезен, если имеются более тонкие параметры поиска, для которых недостаточно поиска только по идентификатору.

Существует в MS

../../_images/image237.png

Параметры:

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

  • Идентификатор записи с сообщением (entityId) - переменная типа Guid или массив типа Guid.

Проверяет существует ли в хранилище записи с указанными идентификаторами. Поиск идентификаторов производится по значениям в колонке entityId записей в хранилище сообщений.

../../_images/image238.png

Шаг возвращает результат в локальную переменную IsExist (тип bool). Значение true, если записи существуют.

Удалить из MS

../../_images/image239.png

Параметры:

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

  • Идентификатор записи с сообщением (entityId) - переменная типа Guid или массив типа Guid.

  • Время ожидания - в мс.

Шаг ищет в хранилище записи с указанными идентификаторами и удаляет их. Поиск идентификаторов производится по значениям в колонке entityId записей в хранилище сообщений.

../../_images/image240.png

Шаг возвращает результат в локальную переменную IsDeleted (тип bool). Значение true, если записи удалены.

Получить из MS

../../_images/image241.png

Параметры:

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

  • Идентификатор записи с сообщением(entityId) - переменная типа Guid или массив типа Guid.

Шаг получает записи из хранилища по их идентификаторам и извлекает из них сообщения для дальнейшей обработки. Поиск идентификаторов производится по значениям в колоке entityId записей в хранилище сообщений.

../../_images/image242.png

Шаг возвращает результат в локальную переменную СписокСообщений (тип массив Сообщений).