Вы можете настроить передачу данных из одного процесса в запущенный экземпляр другого процесса с помощью связанных операций Отправка сообщения и Ожидание сообщения. Используйте этот функционал, когда два процесса выполняются независимо друг от друга, но в определённый момент в один из них для продолжения работы нужно передать данные из другого процесса.
Пример использования операций Отправка сообщения и Ожидание сообщения
Для плановой модернизации оборудования на производстве нужно запустить два процесса: «Модернизация оборудования на линии» и «Закупка оборудования». Процесс модернизации начинается с выбора оборудования и согласования сроков поставки. Процесс закупки типовой, в нём нужно указать наименование товара, его характеристики и количество, а также сроки поставки. Эти процессы могут запускаться независимо друг от друга, но к окончанию процесса «Закупка оборудования» будут накоплены данные об оборудовании: наименование, количество и инвентарный номер, используемые в учётной системе. Эти данные целесообразно использовать при постановке задачи монтажнику в процессе «Модернизация оборудования на линии». Поэтому в процессе «Закупка оборудования» после формирования учётных данных разместим операцию Отправка сообщения, а в процессе «Модернизация оборудования на линии» перед постановкой задачи монтажнику — операцию Ожидание сообщения. Тогда процесс «Модернизация оборудования на линии» будет ожидать сообщения с учётными данными оборудования, которые после получения автоматически отобразятся в задаче для монтажника. |
Отправка сообщения
Для передачи контекстной переменной из одного процесса в другой используйте операцию Отправка сообщения.
Чтобы настроить операцию, дважды нажмите на неё на схеме процесса.
Название * — наименование операции на схеме процесса. Используется также для формирования документации и регламента процесса.
Чтобы скопировать уникальный идентификатор, нажмите .
Описание — здесь можно кратко описать назначение операции: для чего она нужна в вашем процессе. Описание тоже отображается в документации и регламенте процесса.
Переменная — укажите или создайте здесь переменную, в которой хранится значение экземпляра процесса, в который нужно отправить данные. Переменная должна иметь тип данных Экземпляр процесса Workflow.
Начало внимание
В контексте процесса по умолчанию есть переменная Экземпляр процесса с типом данных Экземпляр процесса Workflow. Эту переменную нельзя указывать в поле Переменная.
Конец внимание
Если переменная не указана, в поле Тип сообщения недоступны для выбора типы сообщений с гарантированной доставкой. Также это может замедлить работу системы, так как данные будут отправлены последовательно во все запущенные экземпляры процессов, которые остановились на операции Ожидание сообщения для проверки следующих условий:
- тип сообщения и значения контрольных параметров совпадают в операциях Отправка сообщения и Ожидание сообщения;
- выполняется условие, заданное в операции Ожидание сообщения в поле Вид условия.
Первый из запущенных процессов получит сообщение, если указанные условия соблюдены. Дальше сообщение не будет передаваться. Если сообщение не принято ни в одном из запущенных процессов, оно автоматически удаляется.
Тип сообщения — содержит список данных, которые будут переданы в другой процесс. В зависимости от выбранного типа сообщения будет заполнена таблица Параметры сообщения:
- Имя параметра — список параметров, которые загружаются автоматически в зависимости от того, какой тип сообщения вы выбрали;
- Переменная — для каждого параметра выберите переменную, которая содержит соответствующие данные для передачи в другой процесс.
Например, параметр «Наименование товара» сопоставлен с переменной «Наименование товара».
Начало внимание
Операция Отправка сообщения выполнится, только если переменные, передаваемые в другой процесс, заполнены. Поэтом укажите эти переменные обязательными для заполнения в настройках пользовательской задачи или настройте их заполнение с помощью сценариев.
Конец внимание
Вы можете удалить операцию со схемы процесса, нажав в окне настроек кнопку .
Ожидание сообщения
Чтобы данные из одного процесса могли попасть в другой, используйте операцию Ожидание сообщения.
Чтобы настроить операцию, дважды нажмите на неё на схеме процесса.
Название * — наименование операции на схеме процесса. Используется также для формирования документации и регламента процесса.
Чтобы скопировать уникальный идентификатор, нажмите .
Описание — здесь можно кратко описать назначение операции: для чего она нужна в процессе. Описание тоже отображается в документации и регламенте процесса.
Тип сообщения — тип сообщения содержит список данных, которые будут переданы из другого процесса. Укажите тот тип, который выбран в связанной операции Отправка сообщения в другом процессе.
В блоке Параметры сообщения сопоставьте каждому параметру переменную процесса.
Начало внимание
Тип переменных, которые сопоставлены с одним и тем же параметром в операциях Отправка сообщения и Ожидание сообщения, должен совпадать.
Конец внимание
Контрольный параметр — укажите переменную для сопоставления её значения с контрольным параметром принимаемого сообщения. К моменту получения сообщения эта переменная должна быть заполнена. Если тип сообщения содержит контрольный параметр, а переменная в этом поле не указана, сообщение не будет получено.
Вы можете задать условие, при котором процесс получит и обработает сообщение. Например, сообщение должно быть обработано, только если указанное количество товара совпадает с запрошенным количеством товара. Если процесс получит сообщение, в котором указано, что закуплено 3 новых станка, а запрошено было 4, то такое сообщение не обработается, и процесс не будет продолжен до тех пор, пока не будет получено сообщение о закупке 4 станков.
Вид условия — условие, при котором полученное сообщение будет обработано, может быть задано с помощью специальной таблицы или сценария.
Вид условия «Сценарий»
Если вы используете этот вид условия, то выберите или создайте новый сценарий, в котором проверяются условия.
Сценарий должен возвращать логическое значение «истина» или «ложь» (тип данных C# bool, значение true или false).
Вы можете удалить операцию со схемы процесса, нажав в окне настроек кнопку .
Нашли опечатку? Выделите текст, нажмите ctrl + enter и оповестите нас