Документация для разработчиков
Темная тема

AddStatusChangeHandler

Описание и параметры

void
CBPActivity::AddStatusChangeHandler(
	int event,
	IBPActivityEventListener eventHandler
);

Метод добавляет новый обработчик события изменения статуса действия.

Параметры метода

ПараметрОписание
eventОдна из констант CBPActivity::ExecutingEvent, CBPActivity::ClosedEvent, CBPActivity::FaultingEvent, определяющая, на какое изменение статуса будет вызываться обработчик.
eventHandlerОбработчик события, который реализует интерфейс IBPActivityEventListener.

Смотрите также

Примеры использования

<?
class CBPMyActivity
	extends CBPCompositeActivity    // наследуем, так как составное действие
	implements IBPEventActivity	// обработка события завершения дочернего действия
{
	// Исполняемый метод действия
	public function Execute()
	{
		// Возьмем первое дочернее действие
		$activity = $this->arActivities[0];
		// Подпишемся на событие изменения статуса дочернего действия (завершение)
		$activity->AddStatusChangeHandler(self::ClosedEvent, $this);
		// Отправим дочернее действие исполняющей среде на выполнение
		$this->workflow->ExecuteActivity($activity);
		// Вернем указание исполняющей среде, что действие еще выполняется
		return CBPActivityExecutionStatus::Executing;
	}
	// Обработчик события изменения статуса интерфейса IBPEventActivity
	// Параметром передается действие, изменившее статус
	protected function OnEvent(CBPActivity $sender)
	{
		// Отпишемся от события изменения статуса дочернего действия (завершения)
		$sender->RemoveStatusChangeHandler(self::ClosedEvent, $this);
		// Дочернее действие завершено, выполняем другой необходимый нам код
		// Например завершаем действие
		$this->workflow->CloseActivity($this);
	}
}
?>


© «Битрикс», 2001-2024, «1С-Битрикс», 2024