Шаги процессов обработки
Работа с банком
Данный раздел содержит описание следующих шагов:
Запись объекта.
Запись объектов.
Поиск.
Удаление.
Получение объекта и шаги из папки Источники.
Получение объектов.
Запрос, Запрос значений, Запрос объектов.
Запись объекта
Шаг предназначен для записи выбранного объекта в банк данных. Успешная запись объекта гарантирована только в том случае, если записываемый объект является типом данных принадлежащим к банку данных.
Если указать простую переменную для записи, при применении схемы система вернет ошибку. Если указать тип данных, не принадлежащих к банку данных, то при выполнении шага система вернет ошибку с сообщением о том, что тип данных не принадлежит ни одному банку.
Параметры шага настраиваются на следующих вкладках:
Основные
Локальные переменные
После выполнения
Для записи объекта:
В поле Объект указывается переменная типа данных, являющегося сохраняемым (объект банка данных).
В поле Время ожидания указывается время ожидания ответа от банка данных в мс.
В поле Комментарий указывается комментарий к шагу.
Флажок Проверять версию устанавливается для сравнения версий при совместной работе нескольких пользователей с одним объектом и предотвращения перезаписи данных при одновременном внесении изменений.
Если запись в банк данных произведена успешно и ответ от банка получен, можно получить ссылку (Guid записи, сделанной в банке), выполнив маппинг из переменной EntityID на вкладке После выполнения.
Из данного шага, как и из некоторых других, есть 3 логических выхода:
Выход +: если запись прошла успешно и за указанный во времени ожидания период от банка получен идентификатор объекта.
Выход - : если за указанный период не получен идентификатор объекта.
Выход ↓: не зависимо от результатов записи (параллельное выполнение).
Запись объектов
Шаг предназначен для записи массива объектов. В поле Объекты указывается перечень объектов для записи.
В поле Объект указывается переменная типа данных, являющегося сохраняемым (объект банка данных).
В поле Время ожидания указывается время ожидания ответа от банка данных в мс.
В поле Комментарий указывается комментарий к шагу.
Флажок Проверять версию устанавливается для сравнения версий при совместной работе нескольких пользователей с одним объектом и предотвращения перезаписи данных при одновременном внесении изменений.
Поиск
Шаг предназначен для поиска в банке данных. Условия поиска записей задаются на вклакде Основные:
Тип данных: в меню ... доступен выбор типов данных. Необходимо выбрать интересующий Вас тип, хранимый в банке.
Размер страницы: кол-во записей, среди которых будет происходить поиск.
Номер страницы: номер страницы, на которой будет происходить поиск. Например, если всего записей в банке 10, размер страницы = 5 и номер страницы = 0, то поиск будет запущен только по первым 5 записям. Если размер страницы = 15, номер страницы = 1, то поиск гарантировано не даст результата, так как поиск будет запущен на 16-30 записи.
Условие поиска: поле и его значение, по которым будет происходить поиск.
Условия сортировки: по умолчанию происходит сортировка по возрастанию. Есть возможность отсортировать результаты по значениям конкретного поля, для этого укажите путь к нему. По умолчанию происходит сортировка по возрастанию. При необходимости сортировки по убыванию добавьте в конце DESC.
В результате поиска получается массив записей указанного типа данных. Для массива можно выполнить маппинг на вкладке После выполнения.
Удаление
Шаг предназначен для удаления выбранного объекта или массива объектов из банка данных.
В выпадающем меню Объекты необходимо выбрать системную переменную необходимого типа данных с заполненным полем EntityId. Из банка будет удалена запись или массив записей с указанным в переменной EntityId (остальные поля переменной не принимаются во внимание).
Если при удалении передавать объект, то он целиком уходит в банк данных. Достаточно передать только ссылку на объект, так как для удаления не обязательно требуется весь объект.
Для этого при выборе переменной можно выбрать не объект, а переменную типа LinkType или OwnList<LinkType>.
В поле Объект указывается переменная типа данных, являющегося сохраняемым (объект банка данных).
В поле Время ожидания указывается время ожидания ответа от банка данных в мс.
В поле Комментарий указывается комментарий к шагу.
Флажок Проверять версию устанавливается для сравнения версий при совместной работе нескольких пользователей с одним объектом и предотвращения перезаписи данных при одновременном внесении изменений.
Получение объекта и шаги из папки Источники
Шаг предназначен для получения записи из банка по ее EntityId. При настройке необходимо заполнить entityId записи или выбрать переменную, в которой она содержится, а также выбрать тип данных искомой записи. В результате получим запись указанного типа.
Для использования результата получения в схеме необходимо выполнить маппинг на вкладке После выполнения.
В поле Описание указывается описание шага.
В поле Комментарий указывается комментарий к шагу.
В поле Идентификатор указывается тип EntityId объекта, который необходимо получить из банка
данных. - В выпадающем меню Тип данных выбирается тип данных искомого объекта.
Шаги из папки Источники используются для получения сообщения от выбранной системы.
При необходимости можно указать обработчик системы, время ожидания и выполнить маппинг полученного от системы сообщения в какую-либо переменную в разделе После выполнения.
Получение объектов
В поле Описание указывается описание шага.
В поле Комментарий указывается комментарий к шагу.
В поле Идентификатор указывается тип EntityId объекта, который необходимо получить из банка данных.
В выпадающем меню Тип данных выбирается тип данных искомого объекта.
Настройка шага аналогична настройке шага Получить объект. Разница только в том, что на входе задается массив идентификаторов объектов. В результате получаем массив записей указанного типа данных.
Запрос, Запрос значений, Запрос объектов
В поле Описание указывается описание шага.
В поле Комментарий указывается комментарий к шагу.
В выпадающем меню Тип данных выбирается тип данных искомого объекта.
Текст запроса: запрос получения информации из банка данных.
Шаги предназначены для получения информации из банка данных.
Для настройки шага нужно указать тип данных, являющийся объектом банка данных, и заполнить поле Текст запроса. Результатом успешного выполнения запроса является ответ банка. Ответ находится в переменной Результаты и Количество на вкладке После выполнения.
Результат выполнения запроса пользователь может получить путем выполнения маппинга переменной Результаты в переменную процесса.
Работа с внешними системами
Данный раздел содержит описание следующих шагов:
Отправка и получатели.
Отправка получателям.
Регистрация сообщения.
Отправка и получатели
Шаг Отправка предназначен для передачи выбранной переменной в модуль или систему. Сообщение: передаваемое сообщение. Заполните фиксированным выражением в «» или выберите переменную для отправки посредством меню …. Обработчик: выберите обработчик, который необходимо применить при отправке.
В выпадающем меню Тип получателя следующий выбор типов:
Модуль: в поле ниже требуется ввести guid модуля/системы, или переменную, содержащую их guid.
Папка: в поле ниже требуется ввести guid папки с модулями/системами, или переменную, содержащую guid папки.
Запрос: в поле ниже требуется ввести запрос, указывающий на систему/модуль. Например, name:ФайловыйАдаптер1.
В выпадающем меню Ожидание следующий выбор вариантов:
Ожилание не требуется
Ожидать доставки
Ожидать ответа
Аналогично этому шагу настраивается выполнение шагов из папки Получатели. В них уже заполнены и скрыты поля, связанные с идентификацией получателя.
Отправка получателям
Шаг используется точно также как и шаг Отправка, но на выходе формируется массив получателей. Есть возможность исключения из рассылки инициатора.
Если установлен параметр Исключить инициатора и при этом есть выбранная система и источник, то при выполнении шага система генерирует сообщение Шаг [Отправка подписчику] не выполнился по причине отсутствия получателей. Инициатор сообщения был удален из получателей.
Регистрация сообщения
Шаг используется для регистрации нового сообщения. Зарегистрированное сообщение будет передано в Определение функции.
Запуск алгоритмов и процессов
Запуск процесса и шаги из папки Процессы
Процесс - указание EntityId процесса.
Шаг предназначен для запуска уже существующего процесса. Настройка шага заключается в указании entityId запускаемого процесса. После заполнения entityId на вкладке Основные начинают отображаться переменные выбранного процесса.
Маппинг полей осуществляется перетаскиванием блоков из левого столбца в правый. На любом шаге есть возможность передать в маппинге значение без использования переменной-источника.
Для этого перетащите выделенный на скриншоте квадрат в необходимую переменную или поле, двойным щелчком мыши откройте появившийся блок и заполните значение.
Аналогично этому шагу настраивается выполнение шагов из папки Процессы. В них уже заполнены и поля, связанные с идентификацией процесса.
Установка переменных
Шаг Установка переменных предназначен для присвоения значений переменным процесса.
При настройке маппинга в разделе Основные настройки указано имя переменной-источника и есть возможность вручную вписать выражение, которое при применении процесса будет передаваться в качестве значения для правой части.
С помощью дополнительных настроек можно выбрать способ добавления и заполнения элементов итогового массива.
Способ добавления элементов массива (addOption):
Варианты для выбора |
Значение |
Замена (Replace) |
Количество записей в Массиве2 становится равным количеству записей Массива1 |
Добавление (Add) |
Количество записей в Массиве2 увеличивается на количество записей Массива1 |
Способ заполнения элементов массива (параметр fillOption):
Варианты для выбора |
Значение |
С коп ированием(AutoMapping) |
Содержимое из полей Массива1 копируется в соответствующие поля Массива2 |
Без копи рования(ManualMapping) |
Содержимое соответствующих полей Массива2 остается пустым |
По умолчанию выбран параметр замена с копированием. Пример: Дано два массива: Массив1 и Массив2:
Результат сработавшего маппинга из Массива1 в Массив2 в зависимости от настроек:
При маппинге немассив-немассив независимо от выбранных параметров маппинг всегда срабатывает по схеме Replace+AutoMapping.
Сервисные шаги
Этот раздел содержит описание следующих шагов:
Лог.
Ожидание.
Условие.
Завершение.
Лог
Шаг предназначен вывода указанной текстовой информации в лог сервиса Процессы.
Шаг содержит:
Вкладку Основные
Вкладку Локальные Переменные
Вкладку После выполнения
Вкладка Основные
Для вывода текстовой информации в лог необходимо заполнить поле Сообщение. Для вывода значения конкретной переменной процесса нужна указать наименование переменной в фигурных скобках.
Например, в переменных процесса есть простая переменная типа Int со значением 25.
Для вывода значения переменной значение в поле Сообщение шага необходимо ввести текст: {значение}.
Результат выполнения:
Лог доступен в ЦМ в меню Сервисы:> Процессы:> вкладка Журнал. Информация, указанная в поле Сообщение, будет отображена в разделе Пользовательские данные.
Ожидание
При наступлении шага Ожидание система помещает процесс в очередь спящих. Очередь спящих процессов доступна в ЦМ: Серверы:> Ваш сервер:> вкладка Спящие процессы.
Шаг предусматривает следующие способы просыпания:
Только внешнее событие:
По истечении времени:
в указанное время:
Через переменную с типом DateTime можно указать конкретное время просыпания. Переменная указывается на вкладке Переменные.
Установить значение переменной можно, например, в шаге Алгоритм: Дата = new DateTime(год, месяц, день, часы, минуты, секунды).
Затем в настройках шага Ожидание нужно указать используемую переменную.
Также указать время пробуждения можно с помощью константы в кавычках часы:минуты:секунды. В этом случае установится текущая дата.
После возобновления процесса через интервал или в определенное время в журнале сервера будет отображена запись о возобновлении процесса по истечению таймаута.
На вкладке События модуля обработки процессов будут зарегистрированы события засыпания и повторного получения на обработку.
Условие
Шаг предусматривает два режима:
Режим Переход по условию. Выбирается по умолчанию и соответствует конструкции If.
Режим Переход по соответствию значения. Соответствует конструкции Switch.
Примечание
В режиме Переход по соответствию значения возможно использование локальных переменных, которые следует указывать в следующем формате: local.ИмяЛокальнойПеременной.
Шаг предусматривает несколько вариантов из одного выхода +. Для добавления условия выполнения варианта необходимо выбрать соединяющую линию и нажать на кнопку +.
Система добавит новое условие. Формат условия:
<укажите значение 1> = <укажите значение 2>, где
<укажите значение 1>: переменная бизнес процесса (вкладка Переменные).
=: тип операции.
<укажите значение 2>: значение.
Добавление еще одного условия доступно только после выполнения предыдущего условия.
При наступлении шага Условие система проверяет условия для первого варианта. Если все условия выполняются, процесс продолжается, другие варианты не проверяются. Если условия для первого варианта не выполнены, система переходит к следующему варианту.
При выборе режима Переход по соответствию значения указывается переменная Switch; для перехода к нужному шагу указывается значение переменной.
Завершение
Шаг предназначен для выполнения маппинга переменных после выполнения процесса.
Программные шаги
Данный раздел содержит описание следующих шагов:
Алгоритм.
Сервисный алгоритм.
Алгоритм
Шаг предназначен для описания необходимых действий кодом на C#.
Если алгоритм был создан заранее, то можно выбрать его, указав вариант Выбрать алгоритм. После выбора алгоритма в выпадающем меню, ниже начнет отображаться его код без возможности редактирования. Во вкладках Локальные переменные и После выполнения будут отображаться переменные, используемые в выбранном алгоритме.
Если алгоритм не был создан заранее, то можно ввести код вручную, выбрав соответствующий вариант.
В поле Модуль запуска указывается идентификатор модуля, в котором будет запущен алгоритм. Поддерживается запуск алгоритмов в модулях Банк данных и Онтология.
Сервисный алгоритм
Сервисный алгоритм работает со служебными функциями - архивами и логами. Отправка и сама логика остается в процессах. Логика настройки схожа с настройкой запуска вложенного процесса.
На вкладке основные расположены следующие элементы:
Флажок Только на текущем сервере. Если флажок не установлен, необходимо указать Id сервера.
Поле Время ожидания, заполняется в миллисекундах. Если у шага стоят выходы из плюс или минус, то заполнение времени ожидания обязательно.
Id Сервера.
Поле Code: текстовый редактор C#, заполняется вручную.
Вкладки Локальные переменные и После выполнения: как у всех шагов:
Работа с Хранилищем сообщений
В схемах обработки доступны шаги для доступа к хранилищу сообщений аналогично шагам для работы с банком данных. Они находятся в общем списке шагов на закладке Схема в разделе Хранилище сообщений.
Поместить в MS
Параметры:
Описание шага - текст, который будет отображаться в названии шага на схеме. Текст содержит подробную информацию об использовании шага при настройке процесса.
Время ожидания - в мс.
Сообщение - объект для записи в хранилище. Можно выбрать системные переменные или переменные в контексте процесса; это может быть единичное сообщение или массив сообщений.
Шаг налогичен в настройке шагу Запись объекта, который работает с банком данных.
Шаг возвращает результат в локальную переменную МассивИдентификаторовEntityId - массив идентификаторов записей, сделанных в хранилище (массив типа Guid). В случае записи единичного сообщения результатом будет массив c одним элементом.
Переотправить из MS
Параметры:
Описание шага - текст, который будет отображаться в названии шага на схеме. Текст содержит подробную информацию об использовании шага при настройке процесса.
Идентификатор записи с сообщением (entityId) - переменная типа Guid или массив типа Guid.
После обработки - чекбокс, возвращать сообщение на этап, следующий после обработки на этапе, на котором произошла запись сообщения в хранилище (по умолчанию не установлен).
Шаг ищет записи в хранилище сообщений по значениям в колонке entityId в хранилище сообщений. Из найденных записей шаг извлекает сообщения и отправляет снова на обработку.
Процесс для обработки берется из значения свойства ProcessId из тех же сообщений (при записи в хранилище сообщение должно иметь актуальное значение ProcessId, чтобы было возможно в дальнейшем переотправить сообщение при необходимости). Записи в хранилище после переотправки остаются.
Переотправить по запросу из MS
Параметры:
Описание шага - текст, который будет отображаться в названии шага на схеме. Текст содержит подробную информацию об использовании шага при настройке процесса.
После обработки - чекбокс, возвращать сообщение на этап, следующий после обработки на этапе, на котором произошла запись сообщения в хранилище (по умолчанию не установлен).
Поле текстового редактора, где пишется запрос SQL.
Шаг ищет записи в хранилище сообщений по запросу SQL, извлекает сообщения из записей и повторно отправляет их в обработку. Процесс для обработки берется из значения свойства ProcessId из тех же сообщений (при записи в хранилище сообщение должно иметь актуальное значение ProcessId, чтобы было возможно в дальнейшем переотправить сообщение при необходимости). Записи в хранилище после переотправки остаются. Может быть полезен, если имеются более тонкие параметры поиска, для которых недостаточно поиска только по идентификатору.
Существует в MS
Параметры:
Описание шага - текст, который будет отображаться в названии шага на схеме. Текст содержит подробную информацию об использовании шага при настройке процесса.
Идентификатор записи с сообщением (entityId) - переменная типа Guid или массив типа Guid.
Проверяет существует ли в хранилище записи с указанными идентификаторами. Поиск идентификаторов производится по значениям в колонке entityId записей в хранилище сообщений.
Шаг возвращает результат в локальную переменную IsExist (тип bool). Значение true, если записи существуют.
Удалить из MS
Параметры:
Описание шага - текст, который будет отображаться в названии шага на схеме. Текст содержит подробную информацию об использовании шага при настройке процесса.
Идентификатор записи с сообщением (entityId) - переменная типа Guid или массив типа Guid.
Время ожидания - в мс.
Шаг ищет в хранилище записи с указанными идентификаторами и удаляет их. Поиск идентификаторов производится по значениям в колонке entityId записей в хранилище сообщений.
Шаг возвращает результат в локальную переменную IsDeleted (тип bool). Значение true, если записи удалены.
Получить из MS
Параметры:
Описание шага - текст, который будет отображаться в названии шага на схеме. Текст содержит подробную информацию об использовании шага при настройке процесса.
Идентификатор записи с сообщением(entityId) - переменная типа Guid или массив типа Guid.
Шаг получает записи из хранилища по их идентификаторам и извлекает из них сообщения для дальнейшей обработки. Поиск идентификаторов производится по значениям в колоке entityId записей в хранилище сообщений.
Шаг возвращает результат в локальную переменную СписокСообщений (тип массив Сообщений).




