...Человеческий поиск в разработке...
- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/agent/activity/deleteunactualuncompletedactivitiesagent.php
- Класс: Bitrix\Crm\Agent\Activity\DeleteUnactualUncompletedActivitiesAgent
- Вызов: DeleteUnactualUncompletedActivitiesAgent::execute
public function execute(array &$result) { if (Option::get('crm', 'enable_entity_countable_act', 'Y') !== 'Y') { return self::CONTINUE_EXECUTION; // wait ProcessEntityCountableActivitiesAgent to finish } if (Option::get('crm', 'enable_any_incoming_act', 'Y') !== 'Y') { return self::CONTINUE_EXECUTION; // wait SynchronizeUncompletedActivityDataAgent to finish } $result['steps'] = (int)($result['steps'] ?? 0); $limit = $this->getLimit(); $processedCount = 0; $ids = array_column( EntityUncompletedActivityTable::query() ->setSelect([ 'ID' ]) ->registerRuntimeField( '', new ReferenceField('A', ActivityTable::getEntity(), (new ConditionTree()) ->whereColumn('ref.ID', 'this.ACTIVITY_ID') , ['join_type' => Join::TYPE_LEFT] ) ) ->setLimit($limit) ->whereNull('A.ID') ->setOrder(['ID' => 'ASC']) ->fetchAll(), 'ID' ); if (empty($ids)) { return self::FINISH_EXECUTION; } foreach ($ids as $id) { EntityUncompletedActivityTable::delete($id); $result['steps']++; $processedCount++; } if ($processedCount < $limit) { return self::FINISH_EXECUTION; } return self::CONTINUE_EXECUTION; }