Функція message_payload()

1. Опис

JUEL-функція message_payload(String taskDefinitionKey): MessagePayloadReadOnlyDto використовується для отримання даних повідомлення, пов’язаних із завданням або початковою подією процесу.

2. Параметри

Таблиця 1. Параметри функції

Аргумент

Опис

taskDefinitionKey

Ключ завдання або початкової події, для якого потрібно отримати дані повідомлення.

3. Що повертає

Ця функція повертає об’єкт типу MessagePayloadReadOnlyDto, що містить дані повідомлення.

Таблиця 2. MessagePayloadReadOnlyDto

Поле

Опис

data

Дані повідомлення у вигляді мапи Map<String, Object>.

4. Методи взаємодії

Ця функція не надає додаткових методів взаємодії.

5. Приклади використання

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

Де можна знайти приклад бізнес-процесу?

Адміністратор Платформи може розгорнути для вас демо-реєстр — еталонний реєстр, що містить референтні та інші приклади файлів для створення цифрового регламенту. Він містить різноманітні елементи для розробки моделі даних, бізнес-процесів, UI-форм, аналітичної звітності, витягів, сповіщень, зовнішніх інтеграцій та багато іншого.

Детальну інструкцію щодо розгортання демо-реєстру та отримання референтних прикладів моделювання ви знайдете на сторінці Розгортання демо-реєстру із референтними прикладами.

Застосування функції message_payload() представлено у деяких великих бізнес-процесах.

Ви можете використати один із прикладів процесів за пошуком по ключовим словам — feature-start-process-by-end-message-event.

У Кабінеті користувача бізнес-процес буде доступний у розділі Доступні послуги.

Нижче наведено приклад використання функції message_payload() для отримання даних повідомлення, що пов’язані із завданням або подією. Він демонструє, як зібрати дані з події "Повідомлення", отримати ідентифікатор процесу, що викликав поточний, і використати їх у бізнес-процесі.

var cephData = [:]

cephData['callerProcess'] = process_caller().id

message_payload('startEvent2').data.keySet().each {
    cephData[it] = message_payload('startEvent2').data.get(it)
}

set_transient_variable('payload', S(cephData, 'application/json'))
Пояснення
  1. cephData['callerProcess'] = process_caller().id — отримує ідентифікатор процесу, що викликав поточний, і зберігає його в об’єкті cephData (див. детальніше — Функція process_caller()).

  2. message_payload('startEvent2') — отримує дані повідомлення, пов’язаного з подією або завданням під ідентифікатором 'startEvent2'.

  3. .data.keySet() — отримує всі ключі з даних повідомлення.

  4. .data.get(it) — отримує значення для кожного ключа і зберігає його в об’єкті cephData.

  5. set_transient_variable() — зберігає зібрані дані у форматі JSON як тимчасову змінну для подальшого використання в процесі (див. детальніше — Функція set_transient_variable()).