161  /  175

Свойства действий

Просмотров: 2771 (Статистика ведётся с 06.02.2017)

Действие может иметь свойства, значения которых настраиваются при добавлении действия в шаблон бизнес-процесса. Значениями свойств могут быть как константы, так и ссылки на свойства других действий бизнес-процесса.

Свойства действия описываются в конструкторе класса действия определением массива в члене класса 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] был одобрен"


13
Курсы разработаны в компании «1С-Битрикс»

Если вы нашли неточность в тексте, непонятное объяснение, пожалуйста, сообщите нам об этом в комментариях.
Развернуть комментарии