Отправка и ожидание сообщения

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

Пример использования операций Отправка сообщения и Ожидание сообщения

Отправка сообщения

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

send-wait-message-5

Чтобы настроить операцию, дважды нажмите на неё на схеме процесса.

send-wait-message-1

Название * — наименование операции на схеме процесса. Используется также для формирования документации и регламента процесса.

Чтобы скопировать уникальный идентификатор, нажмите copy-button.

Описание — здесь можно кратко описать назначение операции: для чего она нужна в вашем процессе. Описание тоже отображается в документации и регламенте процесса.

Переменная — укажите или создайте здесь переменную, в которой хранится значение экземпляра процесса, в который нужно отправить данные. Переменная должна иметь тип данных Экземпляр процесса Workflow.

Начало внимание

В контексте процесса по умолчанию есть переменная Экземпляр процесса с типом данных Экземпляр процесса Workflow. Эту переменную нельзя указывать в поле Переменная.

Конец внимание

Если переменная не указана, в поле Тип сообщения недоступны для выбора типы сообщений с гарантированной доставкой. Также это может замедлить работу системы, так как данные будут отправлены последовательно во все запущенные экземпляры процессов, которые остановились на операции Ожидание сообщения для проверки следующих условий:

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

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

Тип сообщения — содержит список данных, которые будут переданы в другой процесс. В зависимости от выбранного типа сообщения будет заполнена таблица Параметры сообщения:

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

Например, параметр «Наименование товара» сопоставлен с переменной «Наименование товара».

Начало внимание

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

Конец внимание

Вы можете удалить операцию со схемы процесса, нажав в окне настроек кнопку enumeration-3.

Ожидание сообщения

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

Чтобы настроить операцию, дважды нажмите на неё на схеме процесса.

send-wait-message-2

Название * — наименование операции на схеме процесса. Используется также для формирования документации и регламента процесса.

Чтобы скопировать уникальный идентификатор, нажмите copy-button.

Описание — здесь можно кратко описать назначение операции: для чего она нужна в процессе. Описание тоже отображается в документации и регламенте процесса.

Тип сообщения — тип сообщения содержит список данных, которые будут переданы из другого процесса. Укажите тот тип, который выбран в связанной операции Отправка сообщения в другом процессе.

В блоке Параметры сообщения сопоставьте каждому параметру переменную процесса.

Начало внимание

Тип переменных, которые сопоставлены с одним и тем же параметром в операциях Отправка сообщения и Ожидание сообщения, должен совпадать.

Конец внимание

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

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

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

Вид условия «Сценарий»

send-wait-message-3

Если вы используете этот вид условия, то выберите или создайте новый сценарий, в котором проверяются условия.

Сценарий должен возвращать логическое значение «истина» или «ложь» (тип данных C# bool, значение true или false).

Вы можете удалить операцию со схемы процесса, нажав в окне настроек кнопку enumeration-3.

Нашли опечатку? Выделите текст, нажмите ctrl + enter и оповестите нас