- Модуль: crm
- Путь к файлу: ~/bitrix/modules/crm/lib/agent/timeline/entitytimelinebuildagent.php
- Класс: Bitrix\Crm\Agent\Timeline\EntityTimelineBuildAgent
- Вызов: EntityTimelineBuildAgent::doRun
static function doRun()
{
$instance = static::getInstance();
if($instance === null)
{
return false;
}
if(!$instance->isEnabled())
{
//Trace('Disabled', 'Y', 1);
return false;
}
/*
//Disable all timeline agents
//$instance->enable(false);
//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;
$totalItemQty = isset($progressData['TOTAL_ITEMS']) ? (int)($progressData['TOTAL_ITEMS']) : 0;
if($totalItemQty <= 0)
{
$totalItemQty = $instance->getTotalEntityCount();
}
$itemIDs = $instance->getEnityIDs($offsetID, $instance->getIterationLimit());
$itemQty = count($itemIDs);
if($itemQty === 0)
{
$instance->enable(false);
//Trace('Completed', $totalItemQty, 1);
return false;
}
$instance->build($itemIDs);
$processedItemQty += $itemQty;
$progressData['LAST_ITEM_ID'] = $itemIDs[$itemQty - 1];
$progressData['PROCESSED_ITEMS'] = $processedItemQty;
$progressData['TOTAL_ITEMS'] = $totalItemQty;
$instance->setProgressData($progressData);
//Trace('Running', "{$processedItemQty} from {$totalItemQty}", 1);
return true;
}