В APS 1.8.1 я определил процесс, в котором у каждой задачи есть группа кандидатов.
Когда я вхожу в систему с пользователем, который принадлежит к группе кандидатов, я не вижу экземпляр процесса.
Я обнаружил, что когда я пытаюсь получить доступ к экземплярам процесса, APS выполняет следующий запрос в базе данных:
select distinct RES.* , DEF.KEY_ as PROC_DEF_KEY_, DEF.NAME_ as PROC_DEF_NAME_, DEF.VERSION_ as PROC_DEF_VERSION_, DEF.DEPLOYMENT_ID_ as DEPLOYMENT_ID_
from ACT_HI_PROCINST RES
left outer join ACT_RE_PROCDEF DEF on RES.PROC_DEF_ID_ = DEF.ID_
left join ACT_HI_IDENTITYLINK I_OR0 on I_OR0.PROC_INST_ID_ = RES.ID_
WHERE RES.TENANT_ID_ = 'tenant_1'
and
( (
exists(select LINK.USER_ID_ from ACT_HI_IDENTITYLINK LINK where USER_ID_ = '1003' and LINK.PROC_INST_ID_ = RES.ID_)
)
or (
I_OR0.TYPE_ = 'participant'
and
I_OR0.GROUP_ID_ IN ('1','2','2023','2013','2024','2009','2025','2026','2027','2028','2029','2007','2018','2020','2017','2015','2012','2003','2021','2019','2004','2002','2005','2030','2031','2032','2011','2006','2008','2014','2010','2016','2022','2033','2034','2035','2036','2037','1003')
) )
order by RES.START_TIME_ desc
LIMIT 50 OFFSET 0
Этот запрос не возвращает никаких записей по двум причинам:
- В моем ACT_HI_IDENTITYLINK ни у одной задачи нет ни group_id_, ни proc_inst_id_.
Тип записи - "кандидат", но запрос ищет "участника"
select * fro m ACT_HI_IDENTITYLINK;
-[ RECORD 1 ]-+----------
id_ | 260228
group_id_ |
type_ | starter
user_id_ | 1002
task_id_ |
proc_inst_id_ | 260226
-[ RECORD 2 ]-+----------
id_ | 260294
group_id_ | 2006
type_ | candidate
user_id_ |
task_id_ | 260293
proc_inst_id_ |
-[ RECORD 3 ]-+----------
id_ | 260300
group_id_ | 2009
type_ | candidate
user_id_ |
task_id_ | 260299
proc_inst_id_ |
-[ RECORD 4 ]-+----------
id_ | 262503
group_id_ |
type_ | starter
user_id_ | 1002
task_id_ |
proc_inst_id_ | 262501
-[ RECORD 5 ]-+----------
id_ | 262569
group_id_ | 2016
type_ | candidate
user_id_ |
task_id_ | 262568
proc_inst_id_ |
-[ RECORD 6 ]-+----------
id_ | 262575
group_id_ | 2027
type_ | candidate
user_id_ |
task_id_ | 262574
proc_inst_id_ |
Почему запрос ищет только "участника" и почему записи с type_ ='андидатом 'не имеют никакого набора proc_inst_id_?
ОБНОВЛЕНИЕ: Проблема с ограничением «участник» имеет простой обходной путь: достаточно добавить ту же группу кандидатов, что и участник.См. Также Функция, позволяющая конфигурировать «Участник» в BPM Modeler
К сожалению, этого недостаточно для решения второй проблемы.Запись по-прежнему не возвращается, поскольку столбец proc_inst_id_ не задан.
Я попытался обновить столбец вручную для записи «участник», и я убедился, что эта страница доступна и работает хорошо.
Кто-нибудь знает, почему столбец не установлен?