Чтобы получить в таблице список всех активных задач, где текущий пользователь является исполнителем (и возможным исполнителем, если задача назначена на нескольких пользователей), используйте следующее выражение в системном фильтре таблицы:
@prefix cmw: <http://comindware.com/logics#>.
@prefix taskStatus: <http://comindware.com/ontology/taskStatus#>.
{
# Помещаем аккаунт текущего пользователя в переменную ?currentUser
cmw:securityContext cmw:currentUser ?currentUser.
# Помещаем массив всех задач в переменную ?item
?item a cmw:UserTask.
# Если выражение используется в таблице задач процесса,
# то эта строка не требуется, т. к. контекст уже будет задачей# Начинаем цикл по массиву задач
# Проверяем, является ли текущий пользователь
# фактическим или возможным исполнителем задачи
or
{
?item cmw:assignee ?currentUser.
}
or
{
?item cmw:possibleAssignee ?currentUser.
}.
# Проверяем, является ли задача активной
# Если, завершенных задач, например, в 1000 раз больше активных,
# то эту строку можно перенести к выбору задач процесса
# для повышения производительности.
?item cmw:taskStatus taskStatus:inProgress.}
Чтобы получить в таблице список всех активных задач, где текущий пользователь является исполнителем (и возможным исполнителем, если задача назначена на нескольких пользователей) по конкретному процессу, используйте в фильтре таблицы следующее выражение в системном фильтре таблицы:
@prefix cmw: <http://comindware.com/logics#>.
@prefix taskStatus: <http://comindware.com/ontology/taskStatus#>.
@prefix object: <http://comindware.com/ontology/object#>.
{
# Помещаем шаблон процесса в переменную ?process
?process object:alias "system_name_of_the_process_template".
# Помещаем аккаунт текущего пользователя в переменную ?currentUser
cmw:securityContext cmw:currentUser ?currentUser.
# Помещаем массив всех задач в переменную ?item
# Если выражение используется в таблице задач процесса,
# то эта строка не требуется, т. к. контекст уже будет задачей?item a cmw:UserTask.
# Начинаем цикл по массиву задач
# Собираем задачи выбранного процесса?item cmw:container ?process.
# Проверяем, является ли текущий пользователь
# фактическим или возможным исполнителем задачиor
{
?item cmw:assignee ?currentUser.
}
or
{
?item cmw:possibleAssignee ?currentUser.
}.
# Проверяем, является ли задача активной
# Если, завершенных задач, например, в 1000 раз больше активных,#
то эту строку можно перенести к выбору задач процесса
# для повышения производительности.
?item cmw:taskStatus taskStatus:inProgress.}
Номер Статьи: 4935
Размещено: Wed, Jul 24, 2024
Последнее обновление: Mon, Apr 7, 2025
Online URL: https://kb.comindware.ru/article/filtr-spiska-po-aktivnym-zadacham-tekushego-polzovatelya-po-vsem-processam-po-konkretnomu-processu-4935.html