«Мониторинг» (MonitoringBlock). Блок предназначен для контроля наступления определенного события. Например, блок добавляют, чтобы отправить уведомление, когда у документа изменится свойство. На схеме в блоке отображается период мониторинга, если он указан на панели свойств. |
|
|
Принцип работы блока
На работу блока «Мониторинг» влияет то, как заполнены свойства Период и Срок прекращения:
•если оба свойства Период и Срок прекращения заполнены, мониторинг выполняется через равные промежутки времени и прекращается по истечении указанного срока. Например, каждый день проверяется, наступило ли событие. Если да, то происходит выход из блока и процесс идет по ветке Успешно. Если нет, ожидается следующий период проверки. Через 3 дня, когда подошел срок прекращения, опять проверяется, наступило ли событие. Если да, то процесс идет по ветке Успешно. Если нет, то по ветке Срок истек. То есть, когда наступает срок прекращения, выход из блока происходит в любом случае:
•если заполнено только свойство Период, мониторинг выполняется через указанный период времени, например каждый день. Выход из блока происходит, если событие наступило, то есть по ветке Успешно. Мониторинг повторяется до тех пор, пока не наступит событие:
•если заполнено только свойство Срок прекращения, мониторинг выполняется один раз. Используйте этот вариант, если нужна пауза в бизнес-процессе. Например, сотруднику отправлено поручение. Нужно подождать 3 дня. Только после этого, если поручение выполнено, отправить контролеру уведомление (выход по ветке Успешно), а если не выполнено – задачу (выход по ветке Срок истек):
•если свойства Период и Срок прекращения не указаны, мониторинг выполняется только, если из кода вызвано событие блока «Результат мониторинга».
Как вызвать выполнение блока из кода
Вызвать из кода выполнение события «Результат мониторинга» можно при любом варианте заполнения свойств. Например, у блока «Мониторинг» заполнен Период и Срок прекращения проверки. Можно не дожидаться, когда наступит указное время, а запустить проверку принудительно. Для этого в серверном или разделяемом коде достаточно вызвать метод:
•Sungero.Workflow.Blocks.Block<Идентификатор блока мониторинг>.Execute(), чтобы выполнить событие конкретного блока;
•ExecuteAllMonitoringBlocks(), чтобы выполнить события всех активных блоков «Мониторинг» в схеме задачи.
Если при вызове метода событие наступило, то процесс идет по ветке Успешно, а если нет, то блок ожидает, когда наступит период проверки, срок прекращения проверки или следующий вызов метода из кода.
© Компания Directum, 2024 |