Шаблон бизнес-процесса
О шаблоне |
Шаблон создается в специальном модуле Дизайнер бизнес-процессов с помощью визуального конструктора. Конструктор позволяет перетаскивать действия из панели инструментов на Основную рабочую область конструктора, создавая шаблон бизнес-процесса визуальным образом. Шаблон создается в виде блок-схемы, которая наглядно отображает логику работы бизнес-процесса.
В дистрибутив заложен ряд встроенных действий (англ. 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" => "Отклонен"), ), ), ), ), ), ), ), ), ), )
и Ваше мнение важно для нас