Функции hideEvents
и showEvents
позволяют скрыть/отобразить события из модели процесса.
Все данные пересчитываются, как будто событий в модели не было. На большом объеме данных может потребоваться существенное время на выполнение запроса.
В условии запроса (в where
или в case
) функция должна использоваться не более одного раза, при этом hideEvents
/showEvents
считаются одной и той же функцией.
hideEvents('событие1', ... , 'событиеN')
событиеN — функция принимает список событий, которые необходимо скрыть из модели данных.
showEvents('событие1', ... , 'событиеN')
событиеN — функция принимает список событий, которые останутся в модели после применения. Все остальные события будут скрыты.
Данные функции не коммутативны, в них важен порядок применения при одновременном использовании. Поэтому если они вместе будут в SQL запросе, то выполняется:
renameEvents
,inEventsRange
,hideEvents
/showEvents
.Запрос:
select
process.extId as procID,
event.name
from process, event
where hideEvents('register request', 'check ticket')
procID | name |
---|---|
1 | register request |
1 | check ticket |
1 | examine casually |
1 | decide |
1 | pay compensation |
procID | name |
---|---|
1 | examine casually |
1 | decide |
1 | pay compensation |
Запрос:
select
process.extId as procID,
event.name
from process, event
where showEvents('register request', 'check ticket')
procID | name |
---|---|
1 | register request |
1 | check ticket |
1 | examine casually |
1 | decide |
1 | pay compensation |
procID | name |
---|---|
1 | register request |
1 | check ticket |
Запрос:
select
extId
from process
where hideEvents('register request', 'pay compensation')
extId |
---|
1 |
2 |
3 |
extId | name |
---|---|
1 | register request |
1 | pay compensation |
2 | register request |
2 | check ticket |
2 | examine casually |
2 | decide |
2 | reinitiate request |
2 | check ticket |
2 | examine casually |
2 | decide |
2 | reinitiate request |
2 | examine thoroughly |
2 | check ticket |
2 | decide |
2 | reject request |
3 | register request |
3 | examine thoroughly |
3 | check ticket |
3 | decide |
3 | reject request |
extId |
---|
2 |
3 |
В систему загружены 20 экземпляров процесса. Их визуализация в виджете Variant Explorer выглядит следующим образом:
После применения функции в виде SQL фильтра происходит пересчет цепочек. Их общий граф выглядит по-другому, так как теперь нет одного шага в процессе, с которого все начиналось.
hideEvents('register request')
Запрос:
select
extId
from process
where match('"register request" -> .*') and hideEvents('register request')
extId |
---|
1 |
2 |
3 |
extId | name |
---|---|
1 | register request |
1 | check ticket |
1 | examine casually |
1 | decide |
1 | pay compensation |
2 | register request |
2 | check ticket |
2 | examine casually |
2 | decide |
2 | reinitiate request |
2 | check ticket |
2 | examine casually |
2 | decide |
2 | reinitiate request |
2 | examine thoroughly |
2 | check ticket |
2 | decide |
2 | reject request |
3 | register request |
3 | examine thoroughly |
3 | check ticket |
3 | decide |
3 | reject request |
Нет данных
Пояснение: После скрытия шага все экземпляры процессов из входной выборки стали начинаться с шага
check ticket
, то есть ни один из них не попадает под условиеmatch('"register request" -> .*')
.
Запрос:
select
process.extId as "procID",
event.name as "Шаг",
eventNum() as "Номер события",
reworkTotal() as "Повторы всего",
rework() as "Повторы подряд"
from event, process
where hideEvents('register request', 'check ticket')
order by "Номер события"
extId | name |
---|---|
1 | register request |
1 | check ticket |
1 | examine casually |
1 | decide |
1 | reinitiate request |
1 | check ticket |
1 | examine casually |
1 | decide |
1 | reinitiate request |
1 | examine thoroughly |
1 | check ticket |
1 | decide |
1 | reject request |
procID | Шаг | Номер события | Повторы всего | Повторы подряд |
---|---|---|---|---|
1 | examine casually | 1 | 1 | 1 |
1 | decide | 2 | 1 | 1 |
1 | reinitiate request | 3 | 1 | 1 |
1 | examine casually | 4 | 2 | 1 |
1 | decide | 5 | 2 | 1 |
1 | reinitiate request | 6 | 2 | 1 |
1 | examine thoroughly | 7 | 1 | 1 |
1 | decide | 8 | 3 | 1 |
1 | reject request | 9 | 1 | 1 |
Запрос:
select
count(*) as "Кол-во всего",
count(case when match('"check ticket" -> .*') and hideEvents('register request') then extId else null end) as "Кол-во нач. с check ticket"
from process
extId |
---|
1 |
2 |
3 |
extId | name |
---|---|
1 | register request |
1 | pay compensation |
2 | register request |
2 | check ticket |
2 | examine casually |
2 | decide |
2 | reinitiate request |
2 | check ticket |
2 | examine casually |
2 | decide |
2 | reinitiate request |
2 | examine thoroughly |
2 | check ticket |
2 | decide |
2 | reject request |
3 | register request |
3 | examine thoroughly |
3 | check ticket |
3 | decide |
3 | reject request |
Кол-во всего | Кол-во нач. с check ticket |
---|---|
3 | 1 |