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