- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/automation/starter.php
- Класс: Bitrix\Crm\Automation\Starter
- Вызов: Starter::runOnUpdate
public function runOnUpdate(array $fields, array $prevFields): Result
{
$triggerApplied = false;
$changedFields = $this->compareFields($fields, $prevFields);
if ($changedFields)
{
Factory::onFieldsChanged($this->entityTypeId, $this->entityId, $changedFields);
}
if ($this->isResponsibleChanged($changedFields))
{
$result = ResponsibleChangedTrigger::execute([[
'OWNER_TYPE_ID' => $this->entityTypeId,
'OWNER_ID' => $this->entityId
]],
$fields
);
$data = $result->getData();
$triggerApplied = $data['triggersApplied'];
}
if (!$triggerApplied && $changedFields)
{
$result = FieldChangedTrigger::execute(
[['OWNER_TYPE_ID' => $this->entityTypeId, 'OWNER_ID' => $this->entityId]],
['CHANGED_FIELDS' => $changedFields]
);
$data = $result->getData();
$triggerApplied = $data['triggersApplied'];
}
if (!$triggerApplied && $this->isStatusChanged($changedFields))
{
return Factory::runOnStatusChanged($this->entityTypeId, $this->entityId);
}
return new Result();
}