• Модуль: 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);
	}
}