• Модуль: bizproc
  • Путь к файлу: ~/bitrix/modules/bizproc/lib/automation/target/basetarget.php
  • Класс: BitrixBizprocAutomationTargetBaseTarget
  • Вызов: BaseTarget::setTriggers
public function setTriggers(array $triggers)
{
	$updatedTriggers = [];
	foreach ($triggers as $trigger)
	{
		$triggerId = isset($trigger['ID']) ? (int)$trigger['ID'] : 0;

		if (isset($trigger['DELETED']) && $trigger['DELETED'] === 'Y')
		{
			if ($triggerId > 0)
			{
				//TODO: check document type
				TriggerTable::delete($triggerId);
			}
			continue;
		}

		if ($triggerId > 0)
		{
			TriggerTable::update($triggerId, array(
				'NAME' => $trigger['NAME'],
				'DOCUMENT_STATUS' => $trigger['DOCUMENT_STATUS'],
				'APPLY_RULES' => is_array($trigger['APPLY_RULES']) ? $trigger['APPLY_RULES'] : null
			));
		}
		elseif (isset($trigger['CODE']) && isset($trigger['DOCUMENT_STATUS']))
		{
			$documentType = $this->getDocumentType();
			$addResult = TriggerTable::add(array(
				'NAME' => $trigger['NAME'],
				'MODULE_ID' => $documentType[0],
				'ENTITY' => $documentType[1],
				'DOCUMENT_TYPE' => $documentType[2],
				'DOCUMENT_STATUS' => $trigger['DOCUMENT_STATUS'],
				'CODE' => $trigger['CODE'],
				'APPLY_RULES' => is_array($trigger['APPLY_RULES']) ? $trigger['APPLY_RULES'] : null
			));

			if ($addResult->isSuccess())
			{
				$trigger['ID'] = $addResult->getId();
			}
		}
		$updatedTriggers[] = $trigger;
	}

	return $updatedTriggers;
}