Шаблон бизнес-процесса
О шаблоне |
Шаблон создается в специальном модуле Дизайнер бизнес-процессов с помощью визуального конструктора. Конструктор позволяет перетаскивать действия из панели инструментов на Основную рабочую область конструктора, создавая шаблон бизнес-процесса визуальным образом. Шаблон создается в виде блок-схемы, которая наглядно отображает логику работы бизнес-процесса.
В дистрибутив заложен ряд встроенных действий (англ. activities), которые могут быть использованы для выполнения работ общего назначения. Таких действий – несколько десятков. Есть действия, допускающие использование собственного скрипта или php-кода. Кроме того, при необходимости есть возможность создавать собственные действия и подключать их к бизнес-процессу.
Созданный шаблон бизнес-процесса может быть выполнен автоматически или вручную, в зависимости от настроек. В любое время может одновременно выполняться несколько экземпляров бизнес-процесса и система занимается управлением выполнения этих экземпляров, сохраняя и восстанавливая их состояние по требованию. Ведется лог каждого экземпляра бизнес-процесса для дальнейшего анализа работы схемы и корректировки ее под новые условия. Если вы запустили на исполнение бизнес-процесс, то он будет выполняться без связи с его шаблоном, поэтому если в процессе выполнения процесса вы решите изменить его, то это изменение не коснется уже запущенного ранее бизнес-процесса.
Во внутренней архитектуре бизнес-процесса шаблон бизнес-процесса представляется в виде многомерного массива, содержащего иерархию действий и значения их свойств. Именно с таким представлением шаблона бизнес-процесса работает API модуля Бизнес-процессы.
Пример простого массива, представляющего шаблон бизнес-процесса:
array(
array(
"Type" => "SequentialWorkflowActivity",
"Name" => "SequentialWorkflowActivity1",
"Properties" => array(),
"Children" => array(
array(
"Type" => "SetFieldActivity",
"Name" => "SetFieldActivity1",
"Properties" => array("Field" => "XML_ID", "Value" => "В рассмотрении"),
),
array(
"Type" => "IfElseActivity",
"Name" => "IfElseActivity1",
"Properties" => array(),
"Children" => array(
array(
"Type" => "IfElseBranchActivity",
"Name" => "IfElseBranchActivity1",
"Properties" => array("FieldCondition" => array("CREATED_BY", "=", 1)),
"Children" => array(
array(
"Type" => "SetFieldActivity",
"Name" => "SetFieldActivity2",
"Properties" => array("Field" => "XML_ID", "Value" => "Принят"),
),
),
),
array(
"Type" => "IfElseBranchActivity",
"Name" => "IfElseBranchActivity2",
"Properties" => array(),
"Children" => array(
array(
"Type" => "ApproveActivity",
"Name" => "ApproveActivity1",
"Properties" => array(
"Users" => array(1),
"ApproveType" => "all",
"OverdueDate" => null,
"Name" => "Проверьте запись",
"Description" => "",
"Parameters" => null,
),
"Children" => array(
array(
"Type" => "SetFieldActivity",
"Name" => "SetFieldActivity3",
"Properties" => array("Field" => "XML_ID", "Value" => "Принят"),
),
array(
"Type" => "SetFieldActivity",
"Name" => "SetFieldActivity4",
"Properties" => array("Field" => "XML_ID", "Value" => "Отклонен"),
),
),
),
),
),
),
),
),
),
)
и Ваше мнение важно для нас