• Модуль: bizproc
  • Путь к файлу: ~/bitrix/modules/bizproc/classes/general/schedulerservice.php
  • Класс: CBPSchedulerService
  • Вызов: CBPSchedulerService::sendEvents
static function sendEvents($eventModule, $eventName, $entityKey)
{
	if ($eventModule === 'bizproc' && $eventName === 'OnWorkflowComplete' && $entityKey === null)
	{
		//delete invalid subscription
		UnRegisterModuleDependences(
			$eventModule,
			$eventName,
			'bizproc',
			'CBPSchedulerService',
			'sendEvents',
			'',
			array($eventModule, $eventName, $entityKey)
		);

		return false;
	}

	$eventParameters = array(
		'SchedulerService' => 'OnEvent',  // compatibility
		'eventModule' => $eventModule,
		'eventName' => $eventName
	);

	$num = func_num_args();
	if ($num > 3)
	{
		for ($i = 3; $i < $num; $i++)
			$eventParameters[] = func_get_arg($i);
	}

	$filter = array(
		'=EVENT_MODULE' => $eventModule,
		'=EVENT_TYPE' => $eventName
	);

	$entityId = null;
	if ($entityKey === 0 && isset($eventParameters[0]))
		$entityId = (string)$eventParameters[0];
	elseif ($entityKey !== null && isset($eventParameters[0][$entityKey]))
		$entityId = (string)$eventParameters[0][$entityKey];

	if ($entityId !== null)
		$filter['=ENTITY_ID'] = $entityId;

	$iterator = SchedulerEventTable::getList(array(
		'filter' => $filter
	));

	while ($event = $iterator->fetch())
	{
		$event['EVENT_PARAMETERS'] = $eventParameters;
		self::sendEventToWorkflow($event);
	}
}