Подія «Таймер»

🌐 Цей документ доступний українською та англійською мовами. Використовуйте перемикач у правому верхньому куті, щоб змінити версію.

1. Загальний опис

Подія «Таймер» (Timer Event) — це подія, що означає час, і яка активується визначеним таймером. Це може бути конкретно встановлений час або дата, а може — певний інтервал (кожний понеділок тощо). Кожен таймер має свій час очікування та відповідні налаштування.

timer event 01

Таймер не може бути подією завершення. Це суперечить суті процесного підходу.
Виділяють 2 типи подій «Таймер», які наразі підтримує Платформа:
  • Проміжна гранична переривальна подія часу (Time Intermediate Boundary Interrupting Event) — подія, яка діє як секундомір і виконує обробку подій, активуючи таймер. Коли таймер спрацьовує (наприклад, через певний інтервал), виконується потік послідовності, що виходить із проміжної події таймера. На час очікування поточний потік виконання бізнес-процесу не переривається.

Іншими словами, коли настає виконання елемента, до якого приєднано граничну подію, потік продовжується. Коли таймер спрацьовує (наприклад, через певний проміжок часу), активність анулюється, і виконується альтернативний потік послідовності, що виходить із події таймера.

timer event 02

  • Проміжна оброблювальна подія часу (Time Intermediate Catch Event) — подія, яка виконує роль секундоміра або будильника і перериває виконання бізнес-процесу у певній точці, очікуючи перехід до виконання наступного елемента бізнес-процесу (тобто продовжує виконання потоку послідовності). На час очікування поточний потік виконання бізнес-процесу призупиняється.

timer event 03

2. Типи таймерів та їх налаштування

Таймери, що використовуються при моделюванні подій «Таймер», можуть бути визначені за:

Датою (Date)

Таймер дати встановлює конкретний момент часу, визначений як комбіноване представлення дати та часу за стандартом ISO 8601. Він повинен містити інформацію про часовий пояс або зміщення зони від серверного часу. За бажанням, він може містити ідентифікатор зони. Наприклад, 2019-10-02T08:09:40+02:00[Europe/Kyiv] (детальніше — за посиланням).

Тривалістю (Duration)

Таймер тривалості встановлюється відповідно до формату тривалості ISO 8601, який визначає кількість часу у певному часовому проміжку. Наприклад, P14DT1H30M — 14 днів, 1 година і 30 хвилин (детальніше — за посиланням).

Якщо тривалість дорівнює нулю або від’ємна, таймер спрацьовує негайно.
Циклом (Cycle)

Таймер циклу визначається як формат повторюваних інтервалів ISO 8601; він містить тривалість і кількість повторів. Наприклад, R5/PT10S — повторювати кожні 10 секунд, 5 разів (детальніше — за посиланням)

Якщо повтори не визначені, таймер повторюється нескінченно, доки його не скасують.

3. Моделювання граничної переривальної події часу

Для моделювання проміжної граничної переривальної події «Таймер» (Time Intermediate Boundary Interrupting Event) необхідно виконати наступні кроки:

  1. Відкрийте додаток Camunda Modeler та створіть нову діаграму BPMN, натиснувши кнопку BPMN diagram. В результаті з`явиться вікно нової діаграми.

    bp 1

  1. Додайте елемент Intermediate Boundary Interrupting Event:

    • З панелі інструментів, що знаходиться зліва, оберіть елемент Create Intermediate/Boundary Event та перетягніть його безпосередньо на змодельовану задачу (тут — користувацька задача).

      Для приєднання таймера можна використовувати задачу будь-якого типу: користувацька, сервісна або задача скриптування тощо.

      timer event 1 timer event 2

    • Виділіть подію, визначте її тип, натиснувши іконку ключа (Change type) та обравши з меню пункт Timer Boundary Event.

    timer event 3

  2. Натисніть елемент Timer Boundary Event, перейдіть до панелі налаштувань та сконфігуруйте подію:

    • У полі Name введіть ім’я елемента (опціонально). Це може бути призначення таймера або бізнес-назва.

    • У полі Timer Definition Type вкажіть тип таймера. З випадного списку оберіть одне зі значень. Наприклад, Duration, тобто тривалість (детальніше про типи таймерів — за посиланням).

      timer event 4

    • У полі Timer Definition визначте тривалість таймера. Наприклад, PT3S, що відповідає 3 секундам.

      У Сamunda дата і час для таймерів встановлюється у спеціальному форматі, відповідно до стандарту ISO 8601. Детальніше — за посиланням.

    timer event 5

В результаті гранична переривальна подія часу змодельована та налаштована.

4. Моделювання проміжної оброблювальної події часу

Для моделювання проміжної оброблювальної події часу (Time Intermediate Catch Event) необхідно виконати наступні кроки:

  1. Відкрийте додаток Camunda Modeler та створіть нову діаграму BPMN, натиснувши кнопку BPMN diagram. В результаті з`явиться вікно нової діаграми.

    bp 1

  2. Попередньо змоделюйте стартову подію та користувацьку задачу.

  3. Додайте елемент Time Intermediate Catch Event:

    • З панелі інструментів, що знаходиться зліва, оберіть елемент Create Intermediate/Boundary Event та перетягніть його до області моделювання.

      timer event 1

      timer event 6

    • Виділіть подію, визначте її тип, натиснувши іконку ключа (Change type) та обравши з меню пункт Timer Intermediate Catch Event.

      timer event 7

  4. Натисніть елемент Timer Intermediate Catch Event, перейдіть до панелі налаштувань та сконфігуруйте подію:

    • У полі Name введіть ім’я елемента. Це може бути призначення таймера або бізнес-назва.

    • У полі Timer Definition Type вкажіть тип таймера. З випадного списку оберіть одне зі значень. Наприклад, Date, тобто дата (детальніше про типи таймерів — за посиланням).

    • У полі Timer Definition визначте дату і час таймера. Наприклад, 2022-15-05T16:30:00+03:00[Europe/Kyiv] — це означає, що таймер спрацює 15 травня 2022 року, о 16:30 за київським часом (відповідно до зони UTC+3).

      У Camunda дата і час для таймерів встановлюється у спеціальному форматі, відповідно до стандарту ISO 8601. Детальніше — за посиланням.

      timer event 8

В результаті проміжна оброблювальна подія часу змодельована та налаштована.

5. Приклад використання подій «Таймер» у бізнес-процесі

Розглянемо логіку роботи 2-х типів подій «Таймер» на прикладі простого синтетичного бізнес-процесу нарахування коштів сервісом умовного банку.

timer event 9

  1. Процес ініційовано стартовою подією.

  2. Сервіс банку очікує зарахування коштів на рахунок або картку клієнта. Проміжна гранична переривальна подія часу, що змодельована безпосередньо на сервісній задачі, має встановлений таймер, який спрацює із настанням відповідної дати (15.05.2022).

  3. Якщо кошти надійшли на картку до 15.05.2022, то виконується наступний елемент основного потоку послідовності.

  4. Якщо кошти не надійшли на картку до 15.05.2022, то активність основного потоку анулюється, і виконується альтернативний потік послідовності, що виходить із події таймера — сервіс має сформувати звітний документ про баланс рахунку та завершити процес. В такому випадку ми бачимо, що подія анулювала основний потік і токен пішов за альтернативною гілкою.

  5. Отже, кошти надійшли, і сервіс має зачекати протягом 2 годин, адже так сконфігурована проміжна оброблювальна подія часу. В цьому випадку активність не переривається, а основний потік призупиняється на час очікування таймера.

  6. Після 2-х годин очікування, основний потік продовжується і сервіс має надіслати клієнту сповіщення про зарахування коштів та завершити процес.