- Модуль: rpa
- Путь к файлу: ~/bitrix/modules/rpa/lib/integration/bizproc/document/item.php
- Класс: BitrixRpaIntegrationBizprocDocumentItem
- Вызов: Item::onTaskChange
static function onTaskChange(string $documentId, $taskId, array $taskData, $status): void
{
$result = [];
[$typeId, $itemId] = explode(':', $documentId);
$incremented = (isset($taskData['COUNTERS_INCREMENTED']) && is_array($taskData['COUNTERS_INCREMENTED'])) ? $taskData['COUNTERS_INCREMENTED'] : [];
$decremented = (isset($taskData['COUNTERS_DECREMENTED']) && is_array($taskData['COUNTERS_DECREMENTED'])) ? $taskData['COUNTERS_DECREMENTED'] : [];
$userIds = array_merge($incremented, $decremented);
foreach($userIds as $userId)
{
$isIncremented = in_array($userId, $incremented, true);
$isDecremented = in_array($userId, $decremented, true);
if($isIncremented && $isDecremented)
{
continue;
}
if($isIncremented)
{
$result[$userId] = '+1';
CUserCounter::Increment($userId, 'rpa_tasks', '**');
}
elseif($isDecremented)
{
$result[$userId] = '-1';
CUserCounter::Decrement($userId, 'rpa_tasks', '**');
}
}
if(!empty($result))
{
Driver::getInstance()->getPullManager()->sendTaskCountersEvent($typeId, $itemId, $result);
}
}