Фильтр списка по активным задачам текущего пользователя: по всем процессам, по конкретному процессу
Содержание
Фильтр списка по активным задачам текущего пользователя
Чтобы получить в таблице список всех активных задач, где текущий пользователь является исполнителем (и возможным исполнителем, если задача назначена на нескольких пользователей), используйте следующее выражение в системном фильтре таблицы:
@prefix cmw: <http://comindware.com/logics#>.@prefix taskStatus: <http://comindware.com/ontology/taskStatus#>.{# Помещаем аккаунт текущего пользователя в переменную ?currentUsercmw: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".# Помещаем аккаунт текущего пользователя в переменную ?currentUsercmw: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.}
Эта статья была полезна 1 чел.