• Модуль: rpa
  • Путь к файлу: ~/bitrix/modules/rpa/lib/integration/bizproc/taskmanager.php
  • Класс: BitrixRpaIntegrationBizprocTaskManager
  • Вызов: TaskManager::getTimelineTasks
public function getTimelineTasks(Item $item, $userId = null): array
{
	$userId = $userId ?? (int) MainEngineCurrentUser::get()->getId();
	$fields = $this->getFieldsForTasks($item);

	return array_map(
		function($task) use ($userId, $fields)
		{
			$fieldsToSet = !empty($task['PARAMETERS']['FIELDS_TO_SET']) ?
				array_values(array_intersect_key($fields, array_flip($task['PARAMETERS']['FIELDS_TO_SET'])))
				: null;

			$taskUserId = (int) $task['USER_ID'];
			$isMine = in_array($userId, $task['USERS']);
			$participantJoint = 'or';
			if ($task['ACTIVITY'] === 'RpaApproveActivity')
			{
				if ($task['PARAMETERS']['APPROVE_TYPE'] == 'queue' || $task['PARAMETERS']['RESPONSIBLE_TYPE'] === 'heads')
				{
					$participantJoint = 'queue';
				}
				elseif ($task['PARAMETERS']['APPROVE_TYPE'] === 'all')
				{
					$participantJoint = 'and';
				}
			}

			$taskUsers = $this->getTaskUsers($task['ID']);

			return [
				'id' => $task['ID'],
				'title' => $task['NAME'],
				'description' => $task['DESCRIPTION'],
				'userId' => $taskUserId,
				'data' => [
					'participantJoint' => $participantJoint,
					'isMine' => $isMine,
					'controls' => $isMine ? CBPDocument::getTaskControls($task) : null,
					'type' => $task['ACTIVITY'],
					'url' => Driver::getInstance()->getUrlManager()->getTaskIdUrl($task['ID']),
					'fieldsToShow' => null,
					'fieldsToSet' => $fieldsToSet,
					'users' => $taskUsers,
				],
				'itemClassName' => 'BX.Rpa.Timeline.Task',
				'users' => Base::getUsers(array_column($taskUsers, 'id')),
			];
		},
		$this->getIncompleteItemTasks($item)
	);
}