...Человеческий поиск в разработке...
- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/agent/entitystepwiseagent.php
- Класс: Bitrix\Crm\Agent\EntityStepwiseAgent
- Вызов: EntityStepwiseAgent::doRun
static function doRun() { $instance = static::getInstance(); if($instance === null) { return false; } if(!$instance->isEnabled()) { return false; } $progressData = $instance->getProgressData(); $offsetID = isset($progressData['LAST_ITEM_ID']) ? (int)($progressData['LAST_ITEM_ID']) : 0; $processedItemQty = isset($progressData['PROCESSED_ITEMS']) ? (int)($progressData['PROCESSED_ITEMS']) : 0; $limit = $instance->getIterationLimit(); if($limit <= 0) { $instance->enable(false); return false; } $itemIDs = $instance->getEntityIDs($offsetID, $limit); $itemQty = count($itemIDs); if($itemQty === 0) { $instance->enable(false); return false; } $instance->process($itemIDs); $processedItemQty += $itemQty; $progressData['LAST_ITEM_ID'] = $itemIDs[$itemQty - 1]; if (is_array($progressData['LAST_ITEM_ID']) && isset($progressData['LAST_ITEM_ID']['ID'])) { $progressData['LAST_ITEM_ID'] = $progressData['LAST_ITEM_ID']['ID']; } $progressData['PROCESSED_ITEMS'] = $processedItemQty; if (!isset($progressData['TOTAL_ITEMS']) || !isset($progressData['TOTAL_ITEMS_CALCULATED'])) { $progressData['TOTAL_ITEMS'] = $instance->getTotalEntityCount(); // calculate total can be complicated, so do it once $progressData['TOTAL_ITEMS_CALCULATED'] = true; } if ($progressData['TOTAL_ITEMS'] < $progressData['PROCESSED_ITEMS']) { $progressData['TOTAL_ITEMS'] = $progressData['PROCESSED_ITEMS']; } $instance->setProgressData($progressData); return true; }