Управление сервисными службами
Служба Workflow
Выполнение блоков маршрута
Маршруты задач схематически представляются в виде блоков различного типа и стрелок, их соединяющих. Обработка маршрутов сводится к выполнению блоков в соответствии с логикой их соединения. Начинается выполнение маршрута с блока «Начало», заканчивается на блоке «Конец».
Выполнение каждого блока включает в себя вычисление свойств блока (если они есть), выполнение события «Старт» (если оно допустимо для блока), реализацию логики работы блока (определяется типом блока) и выполнение события «Завершение» (если оно допустимо для блока).
Блоки типа «Начало», «Уведомление», «Условие», «Объединение И/ИЛИ» и «Сценарий» не предполагают ни ожидания действий пользователей, ни фиксированных временных задержек и выполняются от начала и до конца без остановок. Как только блок одного из этих типов оказывается готов к выполнению, так вычисляются его свойства, выполняется событие «Старт», тут же реализуется логика работы и выполняется событие «Завершение».
Примечание. Для блоков типа «Сценарий» вычисление, хотя и является свойством, выполняется между событиями «Старт» и «Завершение», т.к. оно же определяет и логику работы блока.
Блоки типа «Задание», «Ожидание», «Мониторинг» и «Конец» в отличие от вышеперечисленных выполняются в несколько этапов. Когда блок оказывается готов к выполнению, выполняется только первый этап. Следующие этапы выполняются по прошествии некоторого фиксированного или зависящего от действий пользователей времени. Сколько именно времени должно пройти и что включает в себя каждый из этапов выполнения, зависит от типа блока.
Для блока типа «Задание»
· на первом этапе вычисляются свойства блока, выполняется событие «Старт» и создается одно или все задания, в зависимости от значения свойства блока Параллельные задания. После этого выполнение блока приостанавливается до выполнения пользователями одного из созданных заданий;
· на следующих этапах (при выполнении каждого из созданных заданий) проверяется, надо ли создавать новые или прекращать существующие задания, и были ли выполнены/прекращены все созданные. Если надо создавать новые задания – создаются. если надо прекращать существующие – прекращаются. Если оказывается, что выполнены или прекращены все задания, которые должны были быть созданы по блоку, то выполняется событие «Завершение».
Для блока типа «Ожидание»
· на первом этапе вычисляются свойства блока и выполняется событие «Старт». После этого выполнение блока приостанавливается до наступления указанного в его свойствах момента;
· на следующем этапе (при наступлении указанного в свойствах момента) выполняется событие «Завершение».
Для блока типа «Мониторинг»
· на первом этапе вычисляются свойства блока, выполняется событие «Старт» и проверяется правило мониторинга. Если правило выполняется, то тут же выполняется событие «Завершение». Если не выполняется, то выполнение блока приостанавливается на некоторый указанный в свойствах срок;
· на следующем этапе (по истечении указанного срока) снова проверяется правило мониторинга. Если оно выполняется, то выполняется событие «Завершение». Если нет, выполнение вновь приостанавливается на тот же срок, что и раньше;
· так продолжается до тех пор, пока не выполнится правило или не наступит крайний срок мониторинга. После этого выполняется событие «Завершение».
Для блока типа «Конец»
· на первом этапе вычисляются свойства блока. Если свойство задачи Контроль задачи имеет значение «Да», то выполнение блока приостанавливается до выполнения задания-контроль. В противном случае выполнение блока завершается;
· на следующем этапе (после выполнения задания-контроль) выполнение блока завершается.
См. также:
· Общие сведения о службе Workflow;
· Схема обработки маршрута задач.
© 2009, Компания DIRECTUM
|
Отправить комментарий к этому разделу на
support@directum.ru
|