|
Отправка сообщения - это операция передачи контекстных переменных текущего процесса в запущенный экземпляр другого процесса. В модели процесса, в экземпляр которого передаются данные, размещается операция Ожидание сообщения. Такая связка операций позволяет передавать значения контекстных переменных между процессами без создания подпроцессов. Это удобно, если 2 процесса должны выполняться независимо друг от друга, однако в определенный момент одному из процессов для продолжения работы требуется информация, формируемая в рамках другого процесса.
|
Для выполнения операции Отправка сообщения необходимо, чтобы значения переменных, которые передаются в другой процесс, были заданы.
Настройки отправки сообщения
Вкладка "Общие"
Рис. 1. Настройки операции "Отправка сообщения". Вкладка "Общие"
Вкладка "Отправка сообщения"
Рис. 2. Вкладка "Отправка сообщения"
Переменная с экземпляром процесса, которому будет отправлено сообщение - контекстная переменная, имеющая тип "Экземпляр процесса Workflow", значение которой указывает на экземпляр процесса, которому отправляется сообщение. Если эта переменная не задана или не заполнено её значение, сообщение будет передаваться последовательно во все запущенные экземпляры процессов, которые остановились на операции "Ожидание сообщения" и удовлетворяют следующим требованиям:
-
имеют такой же тип сообщения, как у настраиваемой операции "Отправка сообщения";
-
значениям контрольных параметров типа сообщения в процессе, принимающем сообщение, сопоставлены те же значения контекстных переменных что и в процессе, отправляющем сообщение;
-
выполняется Условие, при котором производится обработка сообщения, заданное в операции Ожидание сообщения.
Если один из запущенных экземпляров принял сообщение, дальше оно не передается. Если ни один из запущенных экземпляров процессов не соответствует перечисленным выше требованиям, сообщение отбрасывается.
Эта контекстная переменная может быть заполнена с помощью сценария или в пользовательской задаче.
С помощью кнопки Добавить переменную можно добавить в процесс контекстную переменную типа "Экземпляр процесса Workflow".
Внимание!
В контексте процесса по умолчанию существует контекстная переменная "Экземпляр процесса", имеющая тип "Экземпляр процесса Workflow". Значение этой переменной используется для хранения информации о текущем запущенном экземпляре процесса. Не используйте её в качестве значения поля Переменная с экземпляром процесса, которому будет отправлено сообщение.
|
Тип сообщения
В выпадающем списке необходимо выбрать тип сообщения. Если в системе нет подходящих типов сообщений, можно создать новый тип, нажав кнопку .
В блоке Параметры сообщения необходимо каждому параметру сообщения сопоставить контекстную переменную процесса.
Для примера возьмем ситуацию, в которой плановая модернизация оборудования на производственной линии требует запуска двух процессов: "Модернизация оборудования на линии" и "Заявка на закупку производственного оборудования". Процесс модернизации начинается с выбора оборудования, постановки ТЗ, согласования сроков работ. Закупка оборудования - типовой процесс, в котором необходимо указать такие данные, как Наименование товара, Характеристики, Количество, Срок исполнения и Сумма заявки. Эти процессы могут запускаться независимо друг от друга, однако к окончанию закупки в процессе "Заявка на закупку производственного оборудования" могут быть накоплены такие данные об оборудовании, как фактическое наименование, количество и инвентарный номер, используемые в учетной системе. Эти данные целесообразно использовать при постановке задачи монтажнику в рамках процесса "Модернизация оборудования на линии".
В соответствии с описанной ситуацией, в процессе "Заявка на закупку производственного оборудования" после формирования учетных данных необходимо разместить операцию "Отправка сообщения" (рис. 3), а в процессе "Модернизация оборудования на линии" перед постановкой задачи исполнителю операцию "Ожидание сообщения" (рис. 4).
Рис. 3. Операция "Отправка сообщения" в процессе "Заявка на закупку производственного оборудования"
Рис. 4. Операция "Ожидание сообщения" в процессе "Модернизация оборудования на линии"
На вкладке "Отправка сообщения" операции "Передача данных в процесс модернизации" процесса "Заявка на закупку производственного оборудования" используем идентификатор экземпляра процесса "Модернизация оборудования на линии", предварительно созданный в контексте процесса и имеющий тип "Экземпляр процесса Workflow". В данном примере переменная "Модернизация оборудования на линии" заполняется в операции "Заполнить данные для закупки". Для данного примера был создан тип сообщения "Данные оборудования", имеющий три параметра: "Наименование", "Количество", "Инвентарный номер". Эти параметры сопоставлены с соответствующими им контекстными переменными процесса (рис. 5).
Рис. 5. Вкладка "Отправка сообщения"
В процессе "Модернизация оборудования на линии" размещена операция "Получение данных об оборудовании", имеющая тип "Ожидание сообщения". Для неё на вкладке "Ожидание сообщения" выбираем тот же тип сообщения "Данные оборудования". Необходимо также сопоставить параметры сообщения с контекстными переменными процесса (рис. 6).
Рис. 6. Вкладка "Ожидание сообщения"
Процессы в этом примере запускаются одним и тем же сотрудником в одно и то же время. После заполнения параметров оборудования процесс "Модернизация оборудования на линии" ожидает сообщения с учетными данными оборудования, которое будет использовано при модернизации. Эти данные могут поступить из любого процесса, который отправляет сообщения, имеющие тип "Данные оборудования". В нашем примере такой процесс только один - "Заявка на закупку производственного оборудования".
См. также: