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