Функция lead_time_e
(переименована из get_duration
) подсчитывает время между началом первого указанного события и окончанием последнего указанного события.
По экземпляру процесса вернется null при применении функции, если в нем:
Значения NULL учитываются при работе функции, если их использовать.
lead_time_e(
таблица.колонка,
[дата1,
дата2,]
'событие1'|выражение,
номер_появления1,
'событие2'|выражение,
номер_появления2
['календарь'
,'параметр_подсчета']
)
таблица.колонка — имя столбца из таблицы журнала событий, по которому будет работать функция.
дата1 — колонка, откуда будет взята дата для первого указанного события. Если не задано, то будет взята дата начала события, указанная в конфигурации процесса.
дата2 — колонка, откуда будет взята дата для последнего указанного события. Если не задано, то будет взята дата окончания события, указанная в конфигурации процесса.
событие1 или выражение — событие, откуда начинается расчет времени прохождения.
номер_появления1* — номер появления первого события. Например:
событие2 или выражение - событие, когда завершается расчет времени прохождения.
номер_появления2 - номер появления второго события. Например:
календарь — календарь, по-которому будет исключено лишнее время между двумя временными метками. Если календарь не задан, то расчет идет без его учета.
Календарь может быть указан через имя, которое отображается в модели данных, через упоминание таблицы журнала событий, в которой он привязан, или через ручное указание полного рабочего расписания:
Указание дней недели в календаре:
Указание времени дня недели в календаре:
параметр_подсчета — настройка позволяет сменить правило расчета длительности выбранного этапа процесса. На примере ниже показано, как каждое значение влияет на то, какая дата будет выбрана конечной при расчетах.
Зеленым цветом обозначено начальное выбранное событие (событие1), откуда начинается расчет. Его дата всегда одинаковая.
Красным цветом обозначено конечное выбранное событие (событие2) до которого идет расчет. Дата имеет три настройки на выбор:
Запрос:
select
id,
lead_time_e(
event_log.activity,
*, 0,
'Согласование счета', -1)
from case_log
id |
---|
1 |
2 |
case_id | activity | team | start_timestamp | end_timestamp |
---|---|---|---|---|
1 | Получение счета | Система | 2017-08-28 11:00:50 | 2017-08-28 11:00:50 |
1 | Проверка счета | Администраторы | 2017-08-28 11:00:51 | 2017-08-28 11:00:51 |
1 | Проверка и согласование счета | Менеджеры | 2017-08-28 11:00:51 | 2017-08-28 11:16:43 |
1 | Оплата счета | Администраторы | 2017-09-02 12:52:06 | 2017-09-02 12:52:06 |
2 | Получение счета | Система | 2017-09-09 09:00:20 | 2017-09-09 09:00:20 |
2 | Проверка счета | Администраторы | 2017-09-09 09:00:22 | 2017-09-09 09:00:22 |
2 | Финальная проверка счета | Закупки | 2017-09-10 03:48:23 | 2017-09-10 10:04:23 |
2 | Согласование счета | Прочее | 2017-09-10 10:04:24 | 2017-09-10 13:13:34 |
2 | Оплата счета | Администраторы | 2017-09-14 15:29:08 | 2017-09-14 15:29:08 |
id | %2 |
---|---|
1 | null |
2 | 101594 |
Запрос
select
id,
lead_time_e(
event_log.team,
'Администраторы', 1,
'Менеджеры', -1),
lead_time_e(
event_log.team,
'Администраторы', 1,
'Менеджеры', -1,
null
'START'),
lead_time_e(
event_log.team,
'Администраторы', 1,
'Менеджеры', -1,
null,
'END'),
lead_time_e(
event_log.team,
'Администраторы', 1,
'Менеджеры', -1,
null,
'NEXT')
from case_table
id |
---|
1 |
2 |
case_id | activity | team | start_timestamp | end_timestamp |
---|---|---|---|---|
1 | Получение счета | Система | 2017-08-28 11:00:50 | 2017-08-28 11:00:50 |
1 | Проверка счета | Администраторы | 2017-08-28 11:00:51 | 2017-08-28 11:00:51 |
1 | Проверка и согласование счета | Менеджеры | 2017-08-28 11:00:51 | 2017-08-28 11:16:43 |
1 | Оплата счета | Администраторы | 2017-09-02 12:52:06 | 2017-09-02 12:52:06 |
2 | Получение счета | Система | 2017-09-09 09:00:20 | 2017-09-09 09:00:20 |
2 | Проверка счета | Администраторы | 2017-09-09 09:00:22 | 2017-09-09 09:00:22 |
2 | Финальная проверка счета | Закупки | 2017-09-10 03:48:23 | 2017-09-10 10:04:23 |
2 | Согласование счета | Прочее | 2017-09-10 10:04:24 | 2017-09-10 13:13:34 |
2 | Оплата счета | Администраторы | 2017-09-14 15:29:08 | 2017-09-14 15:29:08 |
id | %2 | %3 | %4 | %5 |
---|---|---|---|---|
1 | 952 | 0 | 952 | 438675 |
2 | null | null | null | null |
Запрос
select
id,
lead_time_e(
event_log.activity,
start_timestamp,
customDate,
'Проверка счета', 1,
'Финальная проверка счета', -1)
from case_table
id |
---|
1 |
2 |
case_id | activity | team | start_timestamp | customDate |
---|---|---|---|---|
1 | Получение счета | Система | 2017-08-28 11:00:50 | 2017-08-28 11:00:50 |
1 | Проверка счета | Администраторы | 2017-08-28 11:00:51 | 2017-08-28 11:00:51 |
1 | Проверка и согласование счета | Менеджеры | 2017-08-28 11:00:51 | 2017-08-28 11:16:43 |
1 | Оплата счета | Администраторы | 2017-09-02 12:52:06 | 2017-09-02 12:52:06 |
2 | Получение счета | Система | 2017-09-09 09:00:20 | 2017-09-09 09:00:20 |
2 | Проверка счета | Администраторы | 2017-09-09 09:00:22 | 2017-09-09 09:00:22 |
2 | Финальная проверка счета | Закупки | 2017-09-10 03:48:23 | 2017-09-10 10:04:23 |
2 | Согласование счета | Прочее | 2017-09-10 10:04:24 | 2017-09-10 13:13:34 |
2 | Оплата счета | Администраторы | 2017-09-14 15:29:08 | 2017-09-14 15:29:08 |
id | %2 |
---|---|
1 | null |
2 | 90241 |
select
id,
lead_time_e(
event_log.activity,
*, 0,
last_event(event_log.activity, event_log.user='Андрей Иванович Лапин'), 1)
from case_table
id |
---|
1 |
case_id | activity | team | start_timestamp | end_timestamp |
---|---|---|---|---|
1 | Получение счета | Захарова Октябрина Павловна | 2017-07-06 16:35:30 | 2017-07-06 16:35:30 |
1 | Проверка счета | Андрей Иванович Лапин | 2017-07-06 16:35:30 | 2017-07-06 16:35:30 |
1 | Запрос данных | Андрей Иванович Лапин | 2017-07-06 23:04:15 | 2017-07-07 12:01:44 |
1 | Проверка условий договора | Андрей Иванович Лапин | 2017-07-07 12:01:46 | 2017-07-07 12:01:48 |
1 | Проверка условий договора | Андрей Иванович Лапин | 2017-07-07 12:01:50 | 2017-07-07 12:01:54 |
1 | Финальная проверка счета | Захарова Октябрина Павловна | 2017-07-10 11:40:38 | 2017-07-10 11:40:38 |
1 | Финальная проверка счета | Захарова Октябрина Павловна | 2017-07-17 11:43:09 | 2017-07-17 11:43:09 |
1 | Финальная проверка счета | Захарова Октябрина Павловна | 2017-07-22 11:45:55 | 2017-07-22 11:45:55 |
1 | Проверка условий договора | Андрей Иванович Лапин | 2017-07-23 03:46:02 | 2017-07-24 11:46:16 |
1 | Финальная проверка счета | Суханова Зинаида Феликсовна | 2017-07-27 09:49:36 | 2017-07-27 09:49:36 |
1 | Оплата счета | Эмиль Андреевич Овчинников | 2017-07-28 06:06:42 | 2017-07-28 16:15:15 |
id | %2 |
---|---|
1 | 69978 |
Указан календарь в модели с именем "w5x9-18"
Расписание на неделе:
Понедельник "09:00:00"-"17:59:59"
Вторник "09:00:00"-"17:59:59"
Среда "09:00:00"-"17:59:59"
Четверг "09:00:00"-"17:59:59"
Пятница "09:00:00"-"17:59:59"
Праздничные и выходные дни:
Нет
Дополнительные рабочие дни:
Нет
Запрос:
select
id,
lead_time_e(event_log.activity,
'Проверка счета', 1, 'Финальная проверка счета', -1,
null, 'START'),
lead_time_e(event_log.activity,
'Проверка счета', 1, 'Финальная проверка счета', -1,
'NAME: w5x9-18', 'START'),
lead_time_e(event_log.activity,
'Проверка счета', 1, 'Финальная проверка счета', -1,
'WEEK: MON 09:00 - 18:00, TUE 09:00 - 18:00, WED 09:00 - 18:00, THU 09:00 - 18:00, FRI 09:00 - 17:00', 'START'),
lead_time_e(event_log.activity,
'Проверка счета', 1, 'Финальная проверка счета', -1,
'TABLE', 'START'),
lead_time_e(event_log.activity,
'Проверка счета', 1, 'Финальная проверка счета', -1,
'TABLE: event_log', 'START')
from case_table
id |
---|
1 |
case_id | activity | start_timestamp | end_timestamp |
---|---|---|---|
1 | Получение счета | 2017-07-06 16:43:35 | 2017-07-06 16:43:35 |
1 | Проверка счета | 2017-07-06 16:43:35 | 2017-07-06 16:43:35 |
1 | Запрос данных | 2017-07-06 23:07:58 | 2017-07-07 11:56:43 |
1 | Проверка условий договора | 2017-07-07 11:56:44 | 2017-07-07 11:56:44 |
1 | Проверка условий договора | 2017-07-07 11:56:45 | 2017-07-07 11:56:48 |
1 | Финальная проверка счета | 2017-07-07 11:56:49 | 2017-07-10 12:16:50 |
1 | Согласование счета | 2017-07-10 12:29:31 | 2017-07-10 12:42:12 |
1 | Оплата счета | 2017-07-10 13:14:43 | 2017-07-10 14:19:45 |
id | %2 | %3 | %4 | %5 | %6 |
---|---|---|---|---|---|
1 | 69978 | 15193 | 15194 | 15193 | 15193 |