Подія «Повідомлення»

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

Подія «Повідомлення» (Message Event) — це подія у бізнес-процесі, яка використовується для передачі інформації від одного бізнес-процесу до іншого бізнес-процесу або підпроцесу. Згенероване вихідне повідомлення (подія-відправник) активує елемент, що приймає повідомлення (подія-одержувач), який з ним пов’язаний.

message event 01

Елементи події, що надсилають та приймають повідомлення, повинні бути взаємопов’язаними та мати відповідні налаштування обміну інформацією.

При моделюванні застосовуються такі типи подій повідомлення:
  1. Кінцева подія повідомлення (Message End Event) — подія, що моделюється при завершенні бізнес-процесу чи підпроцесу, і яка налаштовується для відправки масиву даних, певних атрибутів або тестового повідомлення.

  2. Стартова подія повідомлення (Message Start Event) — подія, що моделюється при ініціюванні старту нового бізнес- процесу чи підпроцесу, і яка налаштовується для отримання масиву даних, певних атрибутів або тестового повідомлення від елемента End Message Event або Message Intermediate Throw Event.

  3. Проміжна подія відправки повідомлення (Message Intermediate Throw Event) — подія, що моделюється при проходженні бізнес-процесу чи підпроцесу, і яка налаштовується для відправки масиву даних, певних атрибутів або тестового повідомлення.

  4. Проміжна подія отримання повідомлення (Message Intermediate Catch Event) — подія, що моделюється при проходженні бізнес-процесу чи підпроцесу, і яка налаштовується для отримання масиву даних, певних атрибутів або тестового повідомлення від елемента End Message Event або Message Intermediate Throw Event.

2. Моделювання та налаштування кінцевої події повідомлення

Для моделювання та налаштування кінцевої події повідомлення, необхідно виконати наступні налаштування:

Передумови

Підготуйте 2 змодельовані бізнес-процеси в рамках 2-х пулів, що мають взаємодіяти між собою за допомогою повідомлень (тут — процеси Send Message та Receive Message).

  1. В рамках бізнес-процесу, що надсилатиме інформацію (Send Message), додайте подію завершення процесу.

    mess1 1

  2. Виділіть подію завершення процесу та визначте її тип. Для цього натисніть іконку ключа та оберіть в налаштуваннях значення Message End Event.

    mess1 2

  3. На вкладці General налаштуйте делегат для надсилання даних повідомлення:

    • У полі Id вкажіть робочий ідентифікатор елемента, або залиште значення за замовчуванням.

    • У полі Name вкажіть робочу назву елемента.

    • У полі Implementation оберіть зі списку значення Delegate Expression.

    • У полі Delegate Expression вкажіть значення делегата — ${startProcessByMessageDelegate}.

      На відміну від інших типових розширень-делегатів для моделювання бізнес-процесів, що мають розроблені шаблони, делегат startProcessByMessageDelegate, який використовується при моделюванні подій «Повідомлення», налаштовується в ручному режимі.
    • Розгорніть блок Details, натиснувши клавішу + (позначка плюса).

    • У полі Global Message Name вкажіть назву елемента, що прийматиме повідомлення (наприклад, startProcessReceiveMessageAfterSystemTask).

      Вказана назва має бути ідентичною для 2-х взаємопов’язаних елементів — елемента, що надсилає дані повідомлення, та елемента, що ці дані приймає.

      Один елемент, що надсилає повідомлення, може бути взаємопов’язаний тільки з одним елементом, що приймає повідомленням.

    • У полі Global Message referenced оберіть зі списку значення посилання до елемента, що приймає дані, вказаного у полі Global Message Name.

      Якщо при моделюванні бізнес-процесів в рамках одного .bpmn-файлу використовуються декілька взаємопов’язаних елементів подій повідомлення, то у полі Global Message referenced, у випадному списку відображатимуться всі раніше встановлені значення елементів, що отримують повідомлення. Будьте уважними при налаштуванні цього параметра та обирайте саме той елемент кореляції, який потрібен.

      При зміні значення у полі Global Message referenced, автоматично заповнюється ідентичне значення для поля Global Message Name.

    mess1 3

  4. Перейдіть на вкладку Input\Output та налаштуйте масив даних, атрибути або текстове повідомлення, що передаватимуться до бізнес-процесу (підпроцесу), що прийматиме дані:

    • Навпроти секції Input Parameters натисніть клавішу + (позначка плюса), після чого буде автоматично додано вхідний параметр, який необхідно налаштувати відповідно до даних, що передаватимуться до іншого бізнес-процесу (підпроцесу).

      mess1 4

    • У полі Local Variable Name вкажіть назву локальної змінної або залиште значення за замовчуванням.

      mess1 5

    • У полі Variable Assignment Type оберіть тип змінної та налаштуйте її наступним чином:

      Існує 4 доступних способи призначення змінної:

      • рядок або вираз (String or Expression);

      • скрипт (Script);

      • масив або список (List);

      • набір пар ключ-значення (Map).

    • При виборі типу String or Expression, вкажіть у полі Variable Assignment Value вираз змінної, що передаватиметься за допомогою JUEL-функції.

      За детальною інформацією щодо підтримуваних Платформою JUEL-функцій, зверніться до сторінки JUEL-функції у бізнес-процесах.

      mess1 6

    • При виборі типу Script, вкажіть дані скрипту у полях Script Format, Script Type та Script.

      mess1 7

    • При виборі типу List, натисніть + (Add Value) та у полі Value вкажіть значення змінної (текст або за допомогою JUEL-функції).

      mess1 8

    • При виборі типу Map, натисніть кнопку + (Add Entry) , у полі Key вкажіть назву змінної, а в полі Value вкажіть значення змінної (текст або за допомогою JUEL-функцій).

    mess1 9

    • За необхідності, навпроти секції Input Parameters натисніть кнопку + та сконфігуруйте значення наступної змінної.

Приклад 1. Приклади конфігурації змінних для кінцевої події повідомлення

mess1 10

mess1 11

Скористайтеся референтним прикладом бізнес-процесу для отримання деталей: Process_checkIntermediateThrowEvent.bpmn.

3. Моделювання та налаштування стартової події повідомлення

Для моделювання та налаштування стартової події повідомлення, необхідно виконати наступні налаштування:

Передумови

Підготуйте 2 змодельовані бізнес-процеси в рамках 2-х пулів, що мають взаємодіяти між собою за допомогою повідомлень (тут — процеси Send Message та Receive Message).

  1. В рамках бізнес-процесу, що прийматиме інформацію (Receive Message), додайте стартову подію.

    mess1 12

  2. Виділіть початкову подію та визначте її тип. Для цього натисніть іконку ключа та оберіть в налаштуваннях значення Message Start Event.

    mess1 13

  3. На вкладці General налаштуйте елемент для отримання даних повідомлення:

    • У полі Id вкажіть робочий ідентифікатор елемента або залиште значення за замовчуванням.

    • У полі Name вкажіть робочу назву елемента.

    • Навпроти секції Details натисніть клавішу + (позначка плюса).

    • У полі Global Message Name вкажіть назву елемента, що прийматиме дані, і значення якого було вказано для події повідомлення, що надсилатиме дані (End Message Event або Message Intermediate Throw Event). Наприклад, startProcessReceiveMessageAfterSystemTask.

      Вказана назва має бути ідентичною для 2-х взаємопов’язаних елементів — елемента, що надсилає дані повідомлення, та елемента, що ці дані приймає.

      Один елемент, що надсилає повідомлення, може бути взаємопов’язаний тільки з одним елементом, що приймає повідомленням.

    • У полі Global Message referenced оберіть зі списку значення посилання елемента, що приймає дані, вказаного у полі Global Message Name.

      Якщо при моделюванні бізнес-процесів в рамках одного .bpmn-файлу використовуються декілька взаємопов’язаних елементів подій повідомлення, то у полі Global Message referenced, у випадному списку відображатимуться всі раніше встановлені значення елементів, що отримують повідомлення. Будьте уважними при налаштуванні цього параметра та обирайте саме той елемент кореляції, який потрібен.

      При зміні значення у полі Global Message referenced, автоматично заповнюється ідентичне значення для поля Global Message Name.

    mess1 14

4. Моделювання та налаштування проміжної події відправки повідомлення

Для моделювання та налаштування проміжної події відправки повідомлення, необхідно виконати наступні налаштування:

Передумови

Підготуйте 2 змодельовані бізнес-процеси в рамках 2-х пулів, що мають взаємодіяти між собою за допомогою повідомлень (тут — процеси Send Message та Receive Message).

  1. В рамках бізнес-процесу, що надсилатиме інформацію (Send Message), додайте проміжну подію (Intermediate/Boundary Event).

    mess1 15

  2. Змоделюйте взаємодію між двома процесами.

    mess1 16

  3. Виділіть проміжну подію та визначте її тип. Для цього натисніть іконку ключа та оберіть в налаштуваннях значення Message Intermediate Throw Event.

    mess1 17

  4. На вкладці General налаштуйте делегат для надсилання даних повідомлення:

    • У полі Id вкажіть робочий ідентифікатор елемента, або залиште значення за замовчуванням.

    • У полі Name вкажіть робочу назву елемента.

    • У полі Implementation оберіть зі списку значення Delegate Expression.

    • У полі Delegate Expression вкажіть значення делегата — ${startProcessByMessageDelegate}.

      На відміну від інших типових розширень-делегатів для моделювання бізнес-процесів, що мають розроблені шаблони, делегат startProcessByMessageDelegate, який використовується при моделюванні подій «Повідомлення», налаштовується в ручному режимі.
    • Розгорніть блок Details, натиснувши клавішу + (позначка плюса).

    • У полі Global Message Name вкажіть назву елемента, що прийматиме повідомлення (наприклад, startProcessReceiveMessageExec).

      Вказана назва має бути ідентичною для 2-х взаємопов’язаних елементів — елемента, що надсилає дані повідомлення, та елемента, що ці дані приймає.

      Один елемент, що надсилає повідомлення, може бути взаємопов’язаний тільки з одним елементом, що приймає повідомленням.

    • У полі Global Message referenced оберіть зі списку значення посилання до елемента, що приймає дані, вказаного у полі Global Message Name.

      Якщо при моделюванні бізнес-процесів в рамках одного .bpmn-файлу використовуються декілька взаємопов’язаних елементів подій повідомлення, то у полі Global Message referenced, у випадному списку відображатимуться всі раніше встановлені значення елементів, що отримують повідомлення. Будьте уважними при налаштуванні цього параметра та обирайте саме той елемент кореляції, який потрібен.

      При зміні значення у полі Global Message referenced, автоматично заповнюється ідентичне значення для поля Global Message Name.

    mess1 18

  5. Перейдіть на вкладку Input\Output та налаштуйте масив даних, атрибути або текстове повідомлення, що передаються іншому бізнес-процесу (підпроцесу).

Налаштування input/output-параметрів делегата детально описані у розділі Моделювання та налаштування кінцевої події повідомлення.
Приклад 2. Приклади конфігурації змінних для проміжної події відправки повідомлення

mess1 19

mess1 20

Скористайтеся референтним прикладом бізнес-процесу для отримання деталей: Process_checkIntermediateThrowEvent.bpmn.

5. Моделювання та налаштування проміжної події отримання повідомлення

Для моделювання та налаштування проміжної події отримання повідомлення, необхідно виконати наступні налаштування:

Передумови

Підготуйте 2 змодельовані бізнес-процеси в рамках 2-х пулів, що мають взаємодіяти між собою за допомогою повідомлень (тут — процеси Send Message та Receive Message).

  1. В рамках бізнес-процесу, що прийматиме інформацію (тут — Receive Message), додайте проміжну подію.

    mess1 21

  2. Виділіть проміжну подію та визначте її тип. Для цього натисніть іконку ключа та оберіть в налаштуваннях значення Message Intermediate Catch Event.

    mess1 22

  3. На вкладці General налаштуйте елемент для отримання даних повідомлення:

    • У полі Id вкажіть робочий ідентифікатор елемента або залиште значення за замовчуванням.

    • У полі Name вкажіть робочу назву елемента.

    • Навпроти секції Details натисніть клавішу + (позначка плюса).

    • У полі Global Message Name вкажіть назву елемента, що прийматиме дані, і значення якого було вказано для події повідомлення, що надсилатиме дані (End Message Event або Message Intermediate Throw Event). Наприклад, sendIntermediateMessage.

      Вказана назва має бути ідентичною для 2-х взаємопов’язаних елементів — елемента, що надсилає дані повідомлення, та елемента, що ці дані приймає.

      Один елемент, що надсилає повідомлення, може бути взаємопов’язаний тільки з одним елементом, що приймає повідомленням.

    • У полі Global Message referenced оберіть зі списку значення посилання елемента, що приймає дані, вказаного у полі Global Message Name.

      Якщо при моделюванні бізнес-процесів в рамках одного .bpmn-файлу використовуються декілька взаємопов’язаних елементів подій повідомлення, то у полі Global Message referenced, у випадному списку відображатимуться всі раніше встановлені значення елементів, що отримують повідомлення. Будьте уважними при налаштуванні цього параметра та обирайте саме той елемент кореляції, який потрібен.

      При зміні значення у полі Global Message referenced, автоматично заповнюється ідентичне значення для поля Global Message Name.

    mess1 23