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