Свойства действий
О свойствах действий |
Действие может иметь свойства, значения которых настраиваются при добавлении действия в шаблон бизнес-процесса. Значениями свойств могут быть как константы, так и ссылки на свойства других действий бизнес-процесса.
Свойства действия описываются в конструкторе класса действия определением массива в члене класса arProperties:
public function __construct($name) { parent::__construct($name); $this->arProperties = array("Title" => "", "MyProperty" => ""); }
Ключами в массиве определения свойств являются названия свойств, а значениями – значения по умолчанию.
При выполнении действия свойства доступны как члены класса:
$this->MyProperty
Входные параметры (свойства) бизнес-процесса доступны как свойства корневого действия бизнес-процесса. Любое действие бизнес-процесса может обратиться к входным параметрам бизнес-процесса.
Например, если бизнес-процесс был запущен с помощью кода:
// Код шаблона бизнес-процесса $workflowTemplateId = 12; // Бизнес-процесс запускается для документа – элемента инфоблока с кодом 358 $documentId = array("iblock", "CIBlockDocument", 358); // Входные параметры бизнес-процесса $arParameters = array("MyProperty" => "Красный"); $runtime = CBPRuntime::GetRuntime(); $wi = $runtime->CreateWorkflow($workflowTemplateId, $documentId, $arParameters); $wi->Start();
то в любом действии этого бизнес-процесса значение параметра можно будет получить с помощью кода:
$rootActivity = $this->GetRootActivity(); if ($rootActivity->IsPropertyExists("MyProperty")) $val = $rootActivity->MyProperty; // $val == "Красный"
Свойства действий описываются разработчиком при написании кода действия. Входящие параметры бизнес-процесса (они же свойства корневого действия бизнес-процесса) описываются пользователем при создании шаблона бизнес-процесса.
Значениями свойств могут быть как константы, так и ссылки на свойства других действий бизнес-процесса при условии, что эти действия выполнились раньше.
Чтобы в момент выполнения бизнес-процесса значением свойства одного действия являлось значение свойства выполненного выше другого действия, необходимо при создании шаблона бизнес-процесса в качестве значения свойства первого действия задать массив вида:
array("название действия, на свойство которого ссылаются", "название свойства")
В случае простых типов данных свойств в качестве значения свойства первого действия можно задать строку вида:
"{=название_действия, название_свойства}"
Чтобы сослаться на входной параметр (свойство) бизнес-процесса, которое доступно как свойство корневого действия бизнес-процесса, следует в качестве названия действия использовать слово Template
:
array("Template", "название свойства")
"{=Template, название_свойства}"
Вообще в качестве названия действия можно использовать слова:
Document
– для обращения к произвольному полю документа, над которым запущен бизнес-процесс;Template
– для обращения к входному параметру (свойству) бизнес-процесса (корневого действия);Variable
– для обращения к переменной бизнес-процесса;User
– для получения кода текущего пользователя (в качестве названия свойства должно быть указано "ID
");System
– обращение к системным переменным, в настоящее время доступно только свойствоNow
– текущая дата в формате сайта;- любое другое имя – обращение к свойству действия с этим именем.
Например, если во время разработки в качестве значения свойства установить строку:
"Документ [url={=Template:PathTemplate}]{=Document:NAME}[/url] был одобрен"
и при этом рабочий поток запустится с входящим параметром PathTemplate равным file.php над документом с названием План счетов, то при выполнении действия значением свойства будет строка:
"Документ [url=file.php]План счетов[/url] был одобрен"
и Ваше мнение важно для нас