- Модуль: rpa
- Путь к файлу: ~/bitrix/modules/rpa/lib/integration/bizproc/taskmanager.php
- Класс: BitrixRpaIntegrationBizprocTaskManager
- Вызов: TaskManager::getUserIncompleteTasksByType
public function getUserIncompleteTasksByType(array $typeIds = [], int $userId = null): array
{
if ($userId === null)
{
$userId = MainEngineCurrentUser::get()->getId();
}
//todo filter by type ids, not all instances for module
$typeInstanceIds = [];
$instanceIds = [];
$moduleInstances = WorkflowInstanceTable::getList([
'select' => [
'ID', 'DOCUMENT_ID',
],
'filter' => [
'=MODULE_ID' => Driver::MODULE_ID,
'=ENTITY' => DocumentItem::class,
],
]);
while($moduleInstance = $moduleInstances->fetch())
{
$instanceTypeId = DocumentItem::getDocumentTypeId($moduleInstance['DOCUMENT_ID']);
if(empty($typeIds) || in_array($instanceTypeId, $typeIds))
{
$instanceIds[] = $moduleInstance['ID'];
$typeInstanceIds[$moduleInstance['ID']] = $instanceTypeId;
}
}
$tasksIterator = CBPTaskService::GetList([], [
'WORKFLOW_ID' => $instanceIds,
'USER_ID' => $userId,
'USER_STATUS' => CBPTaskUserStatus::Waiting,
]
);
$tasks = [];
while ($row = $tasksIterator->fetch())
{
if (isset($typeInstanceIds[$row['WORKFLOW_ID']]))
{
$tasks[$typeInstanceIds[$row['WORKFLOW_ID']]][$row['ID']] = $row;
}
}
return $tasks;
}