Skip to main content
Version: 50.0.0

Виконання завдань у Бібліотеці процесів

2.4.4.4. Завдання користувача

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


Щоб створити завдання користувача, виконайте наступні дії:

  1. У лівому верхньому куті, виберіть робочий стіл Студія, а тоді виберіть ярлик Бібліотека процесів.

  2. Двічі клацніть по бізнес-процесу в яких плануєте додати завдання користувача.

  3. В меню інструментів, виберіть піктограму 1, та вставте елемент у потрібному місці діаграми процесу 2.

    Screenshot
  4. Клацніть на доданий елемент 1, а потім у контекстному меню виберіть піктограму 2.

    Screenshot
  5. У контекстному меню, виберіть Завдання користувача.

    Screenshot
  6. Клацніть на додане завдання користувача.

  7. Перейдіть в меню налаштування, та заповніть необхідну інформацію про завдання користувача. Використовуйте підказки з розділів нижче щоб заповнити кожну вкладку:

  8. У панелі інструментів виберіть піктограму Зберегти або Зберегти та закрити .

2.4.4.4.1. Робота з налаштуваннями завдання користувача

Налаштування в моделері дефініцій бізнес-процесів групуються по секціях, які можна розгортати та згортати.

Секції діляться на два типи:

  • Без можливості додавання додаткових елементів 1.

  • З можливістю додавання додаткових елементів 2. Такі секції мають піктограму , за допомогою якої, ви можете додати елемент. До прикладу, у секції Призначення користувачів, ви можете додати декілька призначень: до прикладу, призначити виконавця та спостерігача завдання.

    Screenshot

Якщо в заголовку секції відображено піктограму — це означає, що в секції наявні дані.

Screenshot

Для секцій з можливістю додавання елементів буде відображена кількість доданих елементів. На знімку екрана нижче, відображено чотири призначення користувачів.

Screenshot

2.4.4.4.2. Загальне

Розгорніть секцію Загальне та заповніть поля використовуючи підказки в таблиці нижче.

Screenshot
Назва поляОпис
НазваНазва завдання, відображається на діаграмі процесу
IdУнікальний ідентифікатор завдання, формується автоматично
Шаблон заголовка завданняШаблон заголовка. Текст з цього налаштування буде відображатись в стандартному атрибуті завдання Назва на формі завдання.
Підтримує мусташ-синтаксис, наприклад: "Завершити завдання до: {{task.dueDate}}" або "Затвердити замовлення {{formParams.orderNo}}".
Синтаксис для отримання атрибутів:
  • завдання {{task.code}}, приклад {{task.dueDate}}
  • документа {{instance.code}}, приклад {{instance.docNumber}}
  • користувацькі атрибути {{instance.attrValues.code}}, наприклад {{instance.attrValues.FullName}}
Шаблон опису завданняШаблон опису. Текст з цього налаштування буде відображатись в стандартному атрибуті завдання Опис на формі завдання.
Підтримує мусташ-синтаксис.
Клас завданняМожливість обрати клас завдання з довідника.

2.4.4.4.3. Терміни та пріоритети

У секції Терміни та пріоритет, ви можете визначити терміни виконання завдання, задати контрольний термін виконання завдання, а також вказати пріоритет завдання.

Розгорніть секцію Терміни та пріоритети та заповніть поля використовуючи підказки в таблиці нижче.

Screenshot
Назва поляОпис
Термін виконанняВстановлення терміну виконання завдання. Є можливість встановити поточну дату зі зміщенням (на хвилини, години, дні), дату зі змінної процесу, дату зі зміщенням згідно з графіком робочого часу
Контрольний термінВстановлення контрольного терміну завдання. Є можливість встановити поточну дату зі зміщенням (на хвилини, години, дні), дату зі змінної процесу, дату зі зміщенням згідно з графіком робочого часу
ПріоритетВстановлення пріоритету завдання.
Числове значення, яке буде відображено в стандартному атрибуті завдання Пріоритет

2.4.4.4.4. Призначення користувачів

У секції Призначення користувачів ви зможете вказати виконавця завдання, потенційних виконавців спостерігачів та супервізорів.

Розгорніть секцію Призначення користувачів та заповніть поля використовуючи підказки в таблиці нижче.

Screenshot
Назва поляОпис
РольВиберіть роль, користувача, якого хочете призначити. Ви можете вибрати одну з наступних ролей:
  • Виконавець — користувач, що виконуватиме завдання.
    • Ви можете призначити не більше одного виконавця.
    • Виконавець може бути лише користувачем (не групою) для суб'єктів адміністрування.
    • Може бути лише посада (не відділ чи організація) для організаційних одиниць.
  • Потенційний виконавець — користувач або група користувачів, яким надається право призначити себе виконавцем.
    • Ви можете призначити декілька потенційних виконавців.
    • Можна використовувати будь-який тип посвідчення: Користувачі та/або Групи для суб'єктів адміністрування
    • Може використовувати будь-який тип посвідчення: посади, відділи та/або організації для організаційних одиниць
    • Макрос (наприклад ${procVar}), або UB організаційні одиниці через кому (наприклад code1,code2,ub:id:3000001234)
  • Спостерігач — користувач, який має доступ до перегляду завдання, але не виконує його.
    • Ви можете призначити декілька спостерігачів.
    • Можна використовувати будь-який тип посвідчення: Користувачі та/або Групи для суб'єктів адміністрування
    • Може використовувати будь-який тип посвідчення: посади, відділи та/або організації для організаційних одиниць
    • Налаштовується за допомогою макросу участі. Макрос участі, який є списком, розділеним комами (якщо потрібно вказати більше одного учасника). Кожен елемент списку є або рядком або посиланням на змінну процесу за допомогою format ${procVar}.

      Приклади:
      • 010101 - ідентифікатор з назвою "010101", для ідентифікаторів ORG, який буде кодом підрозділу ORG
      • ub:id:10,usr_010101 — це користувач "admin" і користувач з логіном "usr_010101"
      • ORG002,${procVar} — Організація з кодом "ORG002" і ідентифікатором або ідентифікаторами в змінній процесу "procVar".
  • Супервізор — користувач який має повний доступ до завдання та може контролювати та керувати процесом виконання.
    • Ви можете призначити декілька супервізорів
    • Можна використовувати будь-який тип посвідчення: Користувачі та/або Групи для суб'єктів адміністрування
    • Може використовувати будь-який тип посвідчення: посади, відділи та/або організації для організаційних одиниць
    • Налаштовується за допомогою макросу участі
Призначити зВиберіть джерело, з якого платформа має підставити користувача для заданої ролі. Виберіть один з наступних варіантів:
  • Змінна процесу — використовує значення змінної, визначеної в процесі. Введіть назву змінної.
  • Роль повʼязаного обʼєкта — використовує роль, визначену в об'єкті, пов'язаному з процесом. Щоб обрати цю опцію, переконайтесь що додали до процесу повʼязану сутність. При використанні цього параметру не потрібно додатково передавати значення рольових атрибутів в процес.

    Наприклад: Виконавцем буде особа, яка має роль Менеджер у пов'язаному типі документа.

    ℹ️ Примітка: Значення ролі учасника буде передаватись на етапі створення завдання, а не старту процесу. Тому якщо у ході процесу, перед створенням завдання, значення ролі змінилось, то завдання використовуватиме оновлене значення ролі.
  • Атрибут повʼязаного обʼєкта — використовує значення одного зі стандартних атрибутів у платформі, який пов'язаний з об'єктом. Щоб обрати цю опцію, переконайтесь що додали до процесу повʼязану сутність.
  • Користувацький атрибут повʼязаного обʼєкта — використовує значення користувацького атрибута, створеного користувачем у пов'язаному об'єкті. У випадаючому списку будуть відображені ті атрибути, які наявні на формі документа та можуть бути використані для встановлення призначень. (Наприклад атрибути посилання на довідники посад).
  • Довідник — виберіть одни з наступних довідників: Наша організація, Підрозділ, Посада, Група виконавців.

    ℹ️ Примітка: У випадку якщо ви обрали, до прикладу, довідник Підрозділ, то учасником ролі завдання буде встановлено обраний підрозділ, а не підпорядковані посади. Тобто завдання буде доступне всім посадам, які знаходяться в цьому підрозділі, але відображатись буде лише назва підрозділу.
  • Вираз Camunda (варіант доступний лише для ролі Виконавець) — використовує вираз, написаний на JavaScript.

    Приклади: ud:id+${author}

    ℹ️ Примітка: Вираз Camunda, є застарілим способом передачі даних, тому використовуйте інші способи перелічені вище.

2.4.4.4.5. Сповіщення

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


Щоб налаштувати автоматичні сповіщення, розгорніть секцію Сповіщення та заповніть поля використовуючи підказки в таблиці нижче.

Screenshot
Назва поляОпис
РольВиберіть роль користувача, якому потрібно надіслати повідомлення. Виберіть один з наступних варіантів:
  • Виконавець
  • Потенційний виконавець
  • Спостерігач
  • Супервізор
ℹ️ Примітка: Для ролей Спостерігач та Супервізор, ви можете налаштувати тільки сповіщення типу Призначення. Такі сповіщення не надсилатимуться за замовчуванням, а лише після того, як ви налаштуєте їх.
ТипВиберіть тип сповіщення:
  • Призначення
  • Термін виконання
  • Прострочення
ЗвітКод звіту для побудови тексту повідомлення відповідно до його типу. Обирається шаблон звіту. Якщо не вказано значення, буде використаний звіт за замовчування.
ℹ️ Примітка: ви також можете створити новий звіт. Для цього, наведіть курсор на заголовок поля Звіт 1, а тоді в меню, виберіть Створити новий звіт 2.
Screenshot
ТемаТема повідомлення відповідно до його типу.
Якщо тему не вказано, буде використано тему листа за замовчуванням.
Підтримує мусташ синтаксис, наприклад: "Ви призначені для завдання затвердити документ до {{task.dueDate}}"

2.4.4.4.6. Форма

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

Є два шляхи додавання форми до завдання:

  • обрати форму завдання за замовчуванням. Дивіться деталі у таблиці.

  • вибрати форму з довідника форм (або створити власну). Дивіться деталі у таблиці.

    Screenshot
Назва поляОпис
ФормаВиберіть Форма за замовчуванням — це автоматично згенерована форма, яка базується на змінних процесу, пов'язаних із цим завданням. Вона не вимагає додаткового налаштування та використовується, якщо спеціально створена форма не вибрана або не доступна.
Доступні дії для завданняМожливість вказати коди дій, які будуть доступні в завдання користувача. Не використовується, якщо дії обрані в налаштуванні форми завдання.
Змінна для збереження коду діїМожливість вказати код змінної, в яку буде збережено код дії, який виконаний в завданні. Використовується, наприклад для формування умов операторів.
Змінна для збереження користувача, що завершив завданняМожливість вказати код змінної, в яку буде збережено ID користувача, який завершив завдання.
Вхідні параметри формиМожливість вказати вхідні параметри форми — значення атрибутів форми, які будуть встановлені при створенні завдання.
Вихідні параметри формиМожливість вказати вихідні параметри форми - значення атрибутів форми, які будуть встановлені при завершенні завдання.
Наприклад: збереження коментаря завдання в змінну: taskComment=$comment
Назва поляОпис
ФормаВиберіть Форма завдання — вибір форми з довідника форм.
Форма завданняВ полі Форма завдання, виберіть необхідну форму з випадаючого списку.
ℹ️ Примітка: Ви можете редагувати наявну форму завдання або створити власну. Для цього, виберіть опцію Форма завдання 1, а потім наведіть курсор на заголовок секції Форма завдання 2. У вікні що з'явиться, виберіть потрібну опцію 3.
Screenshot
Доступні дії для завданняВизначте, які дії можуть виконувати користувачі при роботі із завданням користувача.Виберіть один з наступних варіантів:
  • З форми завдання — ця опція означає, що доступні дії визначаються безпосередньо у формі завдання. Тобто, дії, які користувач може виконувати, будуть інтегровані у форму, яку ви вибрали для цього завдання. Форма завдання включає кнопки або інші елементи інтерфейсу, які дозволяють користувачам виконувати певні дії (наприклад, підтвердити, відхилити, зберегти).
  • Перевизначити — ця опція дозволяє вам вручну визначити доступні дії для цього завдання, незалежно від того, що визначено у формі завдання.
    Наприклад: Ви хочете надати додаткову можливість, наприклад, делегувати завдання іншому співробітнику, яка не передбачена у стандартній формі. Вибравши Перевизначити, ви додаєте дію Делегувати, яка дозволить користувачам передати завдання іншому співробітнику.
Змінна для збереження коду діїМожливість вказати код змінної, в яку буде збережено код дії, який виконаний в завданні. Використовується, наприклад, для формування умов операторів.
Вхідні параметри формиМожливість вказати вхідні параметри форми — значення атрибутів форми, які будуть встановлені при створенні завдання.
Вихідні параметри формиМожливість вказати вихідні параметри форми - значення атрибутів форми, які будуть встановлені при завершенні завдання.
Наприклад: збереження коментаря завдання в змінну: taskComment=$comment

2.4.4.4.7. Оброблювачі завдання

У секції Оброблювачі завдання ви можете налаштовувати оброблювачі, які у відповідь на різні події, починають виконувати дію. Це забезпечує можливість автоматизації та виконання додаткових дій у відповідь на ці події.

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


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

Screenshot
Назва поляОпис
Тип подіїЦе поле дозволяє вибрати, на яку подію ви хочете налаштувати оброблювач. Можливі типи подій включають:
  • Створення — дія виконується, коли завдання створюється.
  • Призначення — дія виконується, коли завдання призначається користувачу.
  • Завершення — дія виконується, коли завдання завершується.
  • Видалення — дія виконується, коли завдання видаляється.
  • Оновлення — дія виконується, коли завдання оновлюється.
  • Таймер — дія виконується, коли спрацьовує таймер, пов'язаний із завданням (наприклад, таймер прострочення).
СценарійВкажіть сценарій у вигляді скрипта JavaScript, який буде виконаний у відповідь на обрану вище подію. Тобто Сценарій це дія, яка буде виконана за умови події, яку ви обрали у попередньому пункті.

2.4.4.4.8. Асинхронні продовження

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


Щоб налаштувати асинхронне виконання завдання, розгорніть секцію Асинхронні продовження, а потім заповніть поля, використовуючи підказки в таблиці нижче.

Screenshot
Назва опціїОпис
ДоЗавдання буде відкладено і не буде виконано негайно після того, як попередній крок завершиться. Воно буде поставлене в чергу на виконання окремо від основного потоку процесу. Це дозволяє продовжити інші дії, не чекаючи завершення цього завдання.
Наприклад: У вас є завдання, яке потребує додаткової підготовки перед початком. Використання опції До забезпечує виконання цього завдання незалежно від основного потоку.
ПісляПроцес продовжиться негайно після того, як це завдання буде передано на виконання. Завдання буде виконане незалежно від основного процесу, дозволяючи йому продовжуватися без затримок.
Наприклад: Завдання містить великі обсяги даних, які потрібно обробити. Використання опції Після забезпечує, що основний процес продовжиться без затримки на обробку цих даних.
Ексклюзивне виконанняВ конкретний момент часу виконується лише одне завдання або операція в рамках певного контексту. Це важливо для уникнення конфліктів або забезпечення, що дії виконуються послідовно.
Наприклад: Якщо у вас є операції, які можуть конфліктувати одна з одною або які повинні виконуватися послідовно, ця опція забезпечить, що вони виконуються по черзі.

2.4.4.4.9. Конфігурація системної роботи

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


Щоб налаштувати конфігурацію системної роботи, розгорніть секцію Конфігурація системної роботи, а потім заповніть поля, використовуючи підказки в таблиці нижче.

Screenshot
Назва опціїОпис
Цикл повторного виконанняЦе поле дозволяє вказати, як часто система має повторювати виконання завдання у разі його невиконання або помилки. Вкажіть, через який проміжок часу завдання буде повторно виконано. Наприклад, кожні 5 хвилин, кожну годину тощо. Введіть числове значення у форматі Temporal.Duration.
Наприклад: якщо завдання може зазнати невдачі через тимчасові проблеми (наприклад, мережеві проблеми), ви можете вказати цикл повторного виконання, щоб система автоматично повторювала спроби через певні інтервали часу.
ПріоритетЦе поле визначає пріоритет виконання завдання у платформі. Завдання з вищим пріоритетом виконуються раніше завдань з нижчим пріоритетом. Пріоритет може бути встановлений у вигляді числового значення, де менші числа представляють вищий пріоритет.
2.4.4.4.10. Оброблювачі виконання

Секція Оброблювачі виконання дозволяє налаштувати спеціальні дії, які будуть виконуватися при старті або завершені завдання.


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

Назва поляОпис
Тип подіїЦе поле дозволяє вибрати тип події, при якій буде виконаний вказаний сценарій. Можливі варіанти включають:
  • Старт — дія виконується, коли завдання розпочато.
  • Завершення — дія виконується, коли завдання завершено.
СценарійВкажіть сценарій у вигляді скрипта JavaScript, який буде виконаний у відповідь на обрану вище подію. Тобто Сценарій це дія, яка буде виконана за умови події, яку ви обрали у попередньому пункті (Старт або завершення завдання).

2.4.4.4.11. Документація

Поле Документація елемента в секції Документація використовується для введення текстової інформації, яка може включати описи, інструкції, примітки або посилання, пов'язані з завданням. Це допомагає забезпечити розуміння та правильне виконання завдання.

Розгорніть секцію Документація, а потім в полі Документація елемента, введіть потрібний опис або примітки до завдання.

Screenshot

2.4.4.5. Завдання-сервіс

Завдання-сервіс дозволяють інтегрувати процеси з зовнішніми системами, викликати вебсервіси, оновлювати дані або виконувати будь-які інші автоматизовані операції, необхідні для виконання бізнес-процесу.

Існує два способи створення завдання-сервісу:

  • Створити завдання вручну, заповнивши усі стандартні секції налаштувань. Цей спосіб використовується рідко, тому що найпопулярніші налаштування можна обрати у шаблонах.

    Screenshot
  • Створити завдання на основі шаблону. В такому разі, поля для заповнення відрізнятимуться залежно від обраного шаблону.


Щоб створити завдання-сервіс на основі шаблону, виконайте наступні дії:

  1. У лівому верхньому куті, виберіть робочий стіл Студія, а тоді виберіть ярлик Бібліотека процесів.

  2. Двічі клацніть по бізнес-процесу в яких плануєте додати завдання користувача.

  3. В меню інструментів, виберіть піктограму 1, та вставте елемент у потрібному місці діаграми процесу 2.

    Screenshot
  4. Клацніть на доданий елемент 1, а потім у контекстному меню виберіть піктограму 2.

    Screenshot
  5. У контекстному меню, виберіть Завдання-сервіс.

    Screenshot
  6. Клацніть на додане завдання-сервіс.

  7. Перейдіть в меню налаштування, та розгорніть секцію Загальне.

  8. В полі Назва, введіть бажану назву завдання, до прикладу, Оновлення дати.

  9. В полі ID, введіть код завдання, який має бути унікальним та не повторюватись з іншими ID інших завдань.

  10. Розгорніть вкладку Імплементація.

  11. В полі Шаблон, виберіть потрібний шаблон:

Примітка:

Поля для заповнення відрізнятимуться залежно від обраного шаблону. Щоб дізнатись як заповнити поля для кожного з шаблонів, перейдіть в розділ потрібного шаблону, використовуючи посилання в списку вище.

2.4.4.5.1. Викликати метод сутності

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

Наприклад: ви можете викликати метод setRichText сутності dfx_Document для встановлення значення в атрибут типу Форматований текст на формі документа. Таким чином, завдяки цьому шаблону, дані з документа dfx_Document, автоматично передадуться в атрибут Форматований текст на формі документа.


Щоб викликати метод сутності, виконайте наступні дії:

  1. У панелі навігації, виберіть робочий стіл Студія 1.

  2. Виберіть ярлик Бібліотека процесів 2.

  3. У панелі інструментів, виберіть "+" 3, щоб створити нову дефініцію процесу. Або ж виберіть вже існуючу дефініцію.

  4. Додайте на форму завдання-сервіс: У панелі інструментів виберіть піктограму, а потім перетягніть її на форму процесу. (див. розділ *Завдання-сервіс).

  5. Розгорніть секцію Імплементація, а потім в полі Шаблон виберіть Викликати метод сутності

  6. Заповніть параметри шаблону, використовуючи підказки з таблиці нижче.

    Screenshot
ПолеОпис
Відправка асинхронноАсинхронна відправка дозволяє процесу продовжувати виконання наступних завдань без очікування завершення виклику методу сутності.
Режим виклику методуВиберіть один з наступних варіантів:
  • Список об'єктів — результат в форматі масиву JSON.
    Наприклад:
    [ { "attrValues.ms11": "[3000002734821, 3000002734839, 3000000007962]" } ]
    [ { "attrValues.ms04": "55" } ]
  • Одиничний об'єкт — результат в форматі JSON.
    Наприклад:
    { "attrValues.ms11": "[3000002734821, 3000002734839, 3000000007962]" }
    { "attrValues.ms04": "55" }
  • Одиничне значення — результат у вигляді простого значення (текст, число).
    Наприклад:
    [3000002734821, 3000002734839, 3000000007962]
    55
Змінна для результату методаЗа необхідності, задати назву змінної процесу в яку буде записано результат виклику методу.
СутністьОберіть потрібну сутність з переліку або у разі якщо ваш процес містить пов'язану сутність, ви можете обрати опцію Пов'язана сутність (див. розділ Додати пов'язану сутність).
Список сутностей, які використовуються найчастіше:
МетодОберіть метод з випадаючого списку. У списку будуть відображені методи, що доступні для кожної окремої сутності. Опис найпопулярніших методів ви можете знайти у наступних таблицях:
Параметри методу1. Натисніть кнопку "+" для додавання нового параметра
2. Додайте параметри методу, при цьому необхідно вказати параметри, відповідно до тих, що ви вказали при налаштуванні методів при створенні зовнішнього API:
  • Назву параметру — відповідно до вимог методу
  • Тип:
    • Змінна процесу — для використання значення з змінної процесу
    • Рядок — для текстового значення
    • Число — для числового значення
    • Булевий тип — для true/false значень
    • JSON — для складних структур даних
  • Значення:
    • Для змінної процесу — виберіть існуючу змінну поточної системи, які задані в налаштуваннях методу. В ці змінні ми передаємо значення змінних процесу, які в процес передаються з документа.
    • Для інших типів — введіть конкретне значення
Screenshot

Після заповнення зазначених в таблиці полів, поле Сценарій параметрів виклику буде заповнено автоматично.

Примітка:

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

Screenshot

Методи сутності dfx_Document

Метод та його описПараметри методуПриклад
Метод: addParticipant
Опис: Додавання учасника ролі документа
execParams: {
ID: $ID,
role: 'rolecode',
subjectID: ID,
unitID: ID
}

ID — ID документа,
role — код ролі,
subjectID — ID орг.одиниці, значення в INT форматі
unitID — ID суб'єкта адміністрування, значення в INT форматі
JSON.stringify({
entity: 'dfx_Document',
method: 'addParticipant',
execParams: {
ID: $ID,
role: 'watcher',
subjectID: JSON.parse(execution.getVariable("code")),
unitID: JSON.parse(execution.getVariable("code"))
}
})
Метод: removeParticipant
Опис: Видалення учасника з ролі документа
execParams: {
ID: $ID,
subjectID: ID,
role: 'rolecode'
}

ID — ID документа,
role — код ролі,
subjectID — ID орг.одиниці, значення в INT форматі
JSON.stringify({
entity: 'dfx_Document',
method: 'removeParticipant',
execParams: {
ID: $ID,
role: 'watcher',
subjectID: JSON.parse(execution.getVariable("atr")),
}
})
Метод: update
Опис: Оновлення документа — встановлення значення атрибутів
execParams: {
ID: $ID,
subject: "DocSubject",
attrValues : JSON.stringify({
"ms01": "mytext",
"ms02": 342
})
},

ID — ID документа;
subject — код стандартного атрибута Короткий опис
ms01 — код користувацького атрибута типу Текст в який буде встановлено значення
ms02 — код користувацького атрибута типу Число в який буде встановлено значення
JSON.stringify({
entity: 'dfx_Document',
method: 'update',
execParams: {
ID: $ID,
subject: "DocSubject",
attrValues : JSON.stringify({
"ms01": execution.getVariable("Text"),
"ms02": 342
})
},
__skipOptimisticLock: true
})
Метод: execAction
Опис: Виконання дії типу документа
execParams: {
ID: $ID,
actionCode: 'code'
},

ID — ID документа
actionCode — код дії типу документа
JSON.stringify({
entity: 'dfx_Document',
method: 'execAction',
execParams: {
ID: $ID,
actionCode: 'approve'
},
__skipOptimisticLock: true
})
Метод: setRichText
Опис: Встановлення значення атрибута типу Форматований текст
execParams: {
documentID: $ID,
attrCode: 'richText',
documentItemID: ID,
value: Text'
},

ID — ID документа
attrCode — код атрибута типу форматований текст
documentItemID — ID запису табличного атрибута, якщо форматований текст в таблиці
value — значення, яке буде встановлено. Тільки String формат
JSON.stringify({
entity: 'dfx_Document',
method: 'setRichText',
execParams: {
documentID:$ID,
attrCode: 'ms19',
documentItemID: execution.getVariable("ItemID"),
value: execution.getVariable("rich").toString()
}
})
Метод: selectRichText
Опис: Отримання значення атрибута типу Форматований текст
execParams: {
documentID: $ID,
attrCode: 'richText',
documentItemID: ID,
},

ID — ID документа
attrCode — код атрибута типу форматований текст
documentItemID — ID запису табличного атрибута, якщо форматований текст в таблиці
JSON.stringify({
entity: 'dfx_Document',
method: 'selectRichText',
execParams: {
documentID: $ID,
documentItemID: parseInt(execution.getVariable("table")),
attrCode: 'ms19'
}
})
Метод: select
Опис: Отримання значення атрибутів документа
fieldList: ['attrValues.ms01'],
whereList: {
c01: {
expression: '[ID]',
condition: 'equal',
value: $ID
}
},

fieldList — перелік полів значення яких буде отримано,
whereList — умови вибірки
JSON.stringify({
entity: 'dfx_Document',
method: 'select',
fieldList: ['attrValues.ms01'],
whereList: {
c01: {
expression: '[ID]',
condition: 'equal',
value: $ID
}
}
})


Методи сутності bpm_ExtTaskService

Метод та його описПараметри методуПриклад
Метод: getEmails
Опис: Отримання електронних адрес
execParams: {
type: ID or ub:id:
}

type — тип об'єкта, можливі варіанти:
  • users
  • groups
  • roles
  • subjects
  • organizations
  • departments
  • staffUnits
  • employees
  • employeesOnStaff
  • execGroups
  • orgUnits
На виході буде отримано масив:
JSON.stringify({
entity: 'bpm_ExtTaskService',
method: "getEmails",
execParams: {
employeesOnStaff: JSON.parse(${user}.toString())
}
})
Метод: callServerModule
Опис: Виклик серверного модуля з бібліотеки
execParams: {
code: 'documentUtils',
method: 'deleteDocumentLinks',
params: {
docID: $ID
}
},

code — код серверного модуля з бібліотеки
method — код функції всередині модуля
params — параметри які приймає метод
JSON.stringify({
entity: 'bpm_ExtTaskService',
method: 'callServerModule',
execParams: {
code: 'documentUtils',
method: 'deleteDocumentLinks',
params: {
docID: $ID
}
}
})


Методи сутності dfx_Document_ppt

Метод та його описПараметриПриклад
Метод: select
Опис: Отримання учасників ролі документа
fieldList: ['subjectID'],
whereList: {
c01: {
expression: '[role]',
condition: 'equal',
value: 'watcher'
},
c02: {
expression: '[objectID]',
condition: 'equal',
value: execution.getVariable("ms03")
}
},

fieldList — перелік полів значення яких буде отримано,
whereList — умови вибірки
JSON.stringify({
entity: 'dfx_Document_ppt',
method: 'select',
fieldList: ['subjectID'],
whereList: {
c01: {
expression: '[role]',
condition: 'equal',
value: 'watcher'
},
c02: {
expression: '[objectID]',
condition: 'equal',
value: execution.getVariable("ms03")
}
}
})

2.4.4.5.2. Викликати метод зовнішнього API

Завдяки шаблону Викликати метод зовнішнього API, ви можете інтегрувати бізнес-процеси з зовнішніми системами та сервісами. Використовуючи цей шаблон, ви можете налаштувати виклики до методів API зовнішніх сервісів прямо з бізнес-процесу, передавати параметри та отримувати результати цих викликів.

Наприклад: вам потрібно отримати актуальний курс валют із сервісу НБУ щоб потім зберегти його в бізнес-процесі для подальшого використання. Щоб зробити це, потрібно виконати наступні дії:

  1. Створіть зовнішній API. (див. розділ Зовнішні API).
  2. У налаштуваннях створеного API, перейти у вкладку Методи.
  3. Виберіть кнопку Додати метод, а тоді в параметри створеного методу задайте параметри "код валюти" та "дата".
  4. У бізнес-процесі створіть завдання-сервіс на основі шаблону Викликати метод зовнішнього API.
  5. У налаштуваннях завдання, у секції Імплементація > поле Метод та Параметри методу вкажіть ті самі значення, що й у створеному зовнішньому API.

Завдяки виклику API, ви зможете отримати поточний курс валюти. Потім ви зможете автоматично відображати курс валюти у потрібному документі, за допомогою атрибутів на формі документа.


Щоб викликати метод зовнішнього API, виконайте наступні дії:

  1. Створіть завдання-серіс (див. розділ Завдання-сервіс).

  2. Розгорніть секцію Імплементація, а потім в полі Шаблон виберіть Викликати метод зовнішнього API.

  3. Заповніть параметри шаблону, використовуючи підказки з таблиці нижче.

    Screenshot
ПолеОпис
Відправка асинхронноАсинхронна відправка дозволяє процесу продовжувати виконання наступних завдань без очікування завершення виклику API.
Режим виклику методаВиберіть один з наступних варіантів:
  • Список об'єктів — результат в форматі масиву JSON.
    Наприклад:
    json<br/>[ { "attrValues.ms11": "[3000002734821, 3000002734839, 3000000007962]" } ]<br/>[ { "attrValues.ms04": "55" } ]<br/>
  • Одиничний об'єкт — результат в форматі JSON.
    Наприклад:
    json<br/>{ "attrValues.ms11": "[3000002734821, 3000002734839, 3000000007962]" }<br/>{ "attrValues.ms04": "55" }<br/>
  • Одиничне значення — результат у вигляді значення.
    Наприклад:
    <br/>[3000002734821, 3000002734839, 3000000007962]<br/>55<br/>
Змінна для результату методаПри необхідності, задати назву змінної процесу в яку буде записано результат виклику методу.
Зовнішній АРІОберіть з випадаючого списку потрібний зовнішній API. Це може бути попередньо налаштований API, який ви хочете викликати. (див. розділ Зовнішні API)
СерверОберіть сервер, який налаштовано для обраного зовнішнього API. Це визначає, з якого сервера буде здійснено виклик.
МетодОберіть метод, який налаштовано в обраному зовнішньому API. Це визначає конкретну операцію, яку буде виконано під час виклику.
Параметри методуБуде відображено параметри методу налаштовані в методі зовнішнього АРІ. Для кожного параметра необхідно вказати:
  • Тип — виберіть тип параметра з випадаючого списку (Змінна процесу, Рядок, Число, Булевий тип, JSON).
  • Значення — встановіть значення для параметра відповідного типу.

Screenshot
Це дозволяє передавати потрібні дані в API-запит.

Після заповнення зазначених в таблиці полів, поле Сценарій параметрів виклику буде заповнено автоматично.

Примітка:

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

Screenshot

2.4.4.5.3. Викликати серверний модуль

Шаблон Викликати серверний модуль використовується для взаємодії з серверними модулями, які знаходяться в бібліотеці серверних модулів. Це дозволяє вам викликати конкретні методи на сервері, які виконують певні операції, наприклад, обробку даних, взаємодію з базами даних або інші серверні функції.

Наприклад: ви хочете викликати серверний модуль для оновлення даних користувача у внутрішній системі.

  1. Створіть завдання-серіс (див. розділ Завдання-сервіс).

  2. Розгорніть секцію Імплементація, а потім в полі Шаблон виберіть Викликати серверний модуль.

  3. Заповніть параметри шаблону, використовуючи підказки з таблиці нижче.

    Screenshot
ПолеОпис
Відправка асинхронноАсинхронна відправка дозволяє процесу продовжувати виконання наступних завдань без очікування завершення виклику серверного модуля.
Режим виклику методаВиберіть один з наступних варіантів:
  • Список об'єктів — викликає метод для списку об'єктів. Результат в форматі масиву JSON.
    Наприклад:
    json<br/>[ { "attrValues.ms11": "[3000002734821, 3000002734839, 3000000007962]" } ]<br/>[ { "attrValues.ms04": "55" } ]<br/>
  • Одиничний об'єкт — викликає метод для одного об'єкта. Результат в форматі JSON.
    Наприклад:
    json<br/>{ "attrValues.ms11": "[3000002734821, 3000002734839, 3000000007962]" }<br/>{ "attrValues.ms04": "55" }<br/>
  • Одиничне значення — викликає метод для одного значення. Результат у вигляді значення.
    Наприклад:
    `<br/>[3000002734821, 3000002734839, 3000000007962]<br/>55<br/>
Змінна для результату методаПри необхідності, задати назву змінної процесу в яку буде записано результат виклику методу.
Серверний модульОберіть серверний модуль з випадаючого списку. У випадаючому списку будуть відображені усі серверні модулі з бібліотеки серверних модулів. Серверний модуль містить набір методів, які можуть бути викликані.
МетодМетоди можуть виконувати різні серверні операції, такі як зберігання даних, обробка інформації тощо. Вкажіть код методу, який потрібно викликати з обраного серверного модуля.

Щоб дізнатись код методу, перейдіть в бібліотеку серверних модулів, та відкрийте серверний модуль який ви додали в попередньому кроці. В полі скрипт, ви знайдете назву метода у другому рядку.
Screenshot
ПараметриДодайте параметри, які очікує метод серверного модуля. Для кожного параметра необхідно вказати:
  • Назва параметра — ім'я параметра, який очікує метод.
  • Тип параметра — виберіть тип параметра з випадаючого списку (Змінна процесу, Рядок, Число, Булевий тип, JSON).
  • Значення параметра — встановіть значення для параметра відповідного типу.
Screenshot

Після заповнення зазначених в таблиці полів, поле Сценарій параметрів виклику буде заповнено автоматично.

Примітка:

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

Screenshot

2.4.4.5.4. Виконати дію документа

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

Щоб створити завдання-сервіс на основі шаблону Виконати дію документа, виконайте наступні дії:

  1. Створіть завдання-серіс (див. розділ Завдання-сервіс).
  2. Розгорніть секцію Імплементація, а потім в полі Шаблон виберіть Виконати дію документа.
  3. Заповніть параметри шаблону, використовуючи підказки з таблиці нижче.
Screenshot
ПолеОпис
Відправка асинхронноАсинхронна відправка дозволяє процесу продовжувати виконання наступних завдань без очікування завершення дії документа.
Дія документаВкажіть код дії документа. Дії можуть бути різними залежно від типу документа та його стану. Якщо документ пов'язаний з іншою сутністю, вибір дії буде доступний з випадаючого списку. У списку будуть відображені доступні дії з усіх пов'язаних типів документів. Якщо в різних типах документів назви дій відрізняються, у випадаючому списку буде відображено код та назви через символ "/".
Якщо у списку немає потрібної дії документа, створіть її та додайте до типу документа, який привʼязаний до бізнес-процесу (див. розділ Стани).

Після заповнення зазначених в таблиці полів, поле Сценарій параметрів виклику буде заповнено автоматично.

Примітка:

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

Screenshot

2.4.4.5.5. Витягнути атрибути сутності

Шаблон Витягнути атрибути сутності використовується для отримання значень атрибутів з певної сутності та збереження їх у змінну бізнес-процесу. Це дозволяє автоматизувати процес отримання та використання даних з сутностей у бізнес-процесах.

Наприклад: за допомогою цього шаблону, ви можете автоматично витягти значення атрибутів документа (наприклад, Автор документа і Заголовок) та зберегти їх у змінні процесу для подальшого використання.

Щоб створити завдання-сервіс на основі шаблону Витягнути атрибути сутності, виконайте наступні дії:

  1. Створіть завдання-серіс (див. розділ Завдання-сервіс).
  2. Розгорніть секцію Імплементація, а потім в полі Шаблон виберіть Витягнути атрибути сутності.
  3. Заповніть параметри шаблону, використовуючи підказки з таблиці нижче.
Screenshot
ПолеОпис
Відправка асинхронноАсинхронна відправка дозволяє процесу продовжувати виконання наступних завдань без очікування завершення витягування атрибутів сутності.
Режим виклику методаВиберіть один з наступних варіантів:
  • Список об'єктів — викликає метод для списку об'єктів. Результат в форматі масиву JSON.
    Наприклад:
    json<br/>[ { "attrValues.ms11": "[3000002734821, 3000002734839, 3000000007962]" } ]<br/>[ { "attrValues.ms04": "55" } ]<br/>
  • Одиничний об'єкт — викликає метод для одного об'єкта. Результат в форматі JSON.
    Наприклад:
    json<br/>{ "attrValues.ms11": "[3000002734821, 3000002734839, 3000000007962]" }<br/>{ "attrValues.ms04": "55" }<br/>
  • Одиничне значення — викликає метод для одного значення. Результат у вигляді значення.

    Наприклад:
    <br/>[3000002734821, 3000002734839, 3000000007962]<br/>55<br/>
Змінна для результату методаПри необхідності, задати назву змінної процесу в яку буде записано результат виклику методу.
СутністьОберіть потрібну сутність з переліку або у разі якщо ваш процес містить повʼязану сутність, ви можете обрати опцію Пов'язана сутність (див. розділ Додати повʼязану сутність).
Атрибути сутностіЗа потреби, виберіть атрибути сутності з випадаючого списку. Якщо залишити це поле порожнім, то не оновлюватиметься жоден атрибут сутності.
Користувацькі атрибутиДоступно лише для сутностей, які мають користувацькі атрибути, таких як:
  • dfx_Document (Документи)
  • dfx_DocumentItem (Елементи колекцій документа)
  • frm_UserDictionaryItem (Елементи користувацького довідника)
За потреби виберіть користувацькі атрибути з випадаючого списку. Якщо залишити це поле порожнім, то не оновлюватиметься жоден користувацький атрибут.
Користувацькі атрибутиДоступно лише для сутностей, які мають користувацькі атрибути, таких як:
  • dfx_Document (Документи)
  • dfx_DocumentItem (Елементи колекцій документа)
  • frm_UserDictionaryItem (Елементи користувацького довідника)
За потреби виберіть користувацькі атрибути з випадаючого списку. Якщо залишити це поле порожнім, то не оновлюватиметься жоден користувацький атрибут.
Користувацькі атрибутиДоступно лише для сутностей, які мають користувацькі атрибути, таких як:
  • dfx_Document (Документи)
  • dfx_DocumentItem (Елементи колекцій документа)
  • frm_UserDictionaryItem (Елементи користувацького довідника)
За потреби виберіть користувацькі атрибути з випадаючого списку. Якщо залишити це поле порожнім, то не оновлюватиметься жоден користувацький атрибут.

Після заповнення зазначених в таблиці полів, поле Сценарій параметрів виклику буде заповнено автоматично.

Примітка:

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

Screenshot

2.4.4.5.6. Витягнути учасників ролі

Цей шаблон дозволяє отримати учасників певної ролі документа та зберегти їх у змінну бізнес-процесу. Це корисно для автоматизації робочих процесів, де потрібні конкретні ролі для подальших дій.


Щоб створити завдання-сервіс на основі шаблону Витягнути учасників ролі, виконайте наступні дії:

  1. Створіть завдання-сервіс (див. розділ Завдання-сервіс).

  2. Розгорніть секцію Імплементація, а потім в полі Шаблон виберіть Витягнути учасників ролі.

  3. Заповніть параметри шаблону, використовуючи підказки з таблиці нижче.

    Screenshot
ПолеОпис
Відправка асинхронноАсинхронна відправка дозволяє процесу продовжувати виконання наступних завдань без очікування завершення витягування учасників ролі.
Режим виклику методаВиберіть один з наступних варіантів:
  • Список об’єктів — викликає метод для списку об'єктів. Результат в форматі масиву JSON.
    Наприклад:
    [ { "attrValues.ms11": "[3000002734821, 3000002734839, 3000000007962]" } ]
    [ { "attrValues.ms04": "55" } ]
  • Одиничний об’єкт — викликає метод для одного об'єкта. Результат в форматі JSON.
    Наприклад:
    { "attrValues.ms11": "[3000002734821, 3000002734839, 3000000007962]" }
    { "attrValues.ms04": "55" }
  • Одиничне значення — викликає метод для одного значення. Результат у вигляді значення.
    Наприклад:
    [3000002734821, 3000002734839, 3000000007962]
Змінна для результату методаПри необхідності, задайте назву змінної процесу, в яку буде записано результат виклику методу.
РольВиберіть роль з випадаючого списку. При наявності пов’язаної сутності у випадаючому списку будуть відображуватись тільки ролі, які наявні в пов’язаних типах документах.
Щоб дізнатись значення стандартних ролей або створити власну роль, див. розділ Ролі.

Після заповнення зазначених в таблиці полів, поле Сценарій параметрів виклику буде заповнено автоматично.

Примітка:

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

Screenshot

2.4.4.5.7. Відправити email

Використання шаблону Відправити email дозволяє автоматизувати процес відправки email повідомлень у ваших бізнес-процесах.

Наприклад: У вас є бізнес-процес, де необхідно автоматично відправити email повідомлення після виконання певного завдання, наприклад, після затвердження документа. Цей шаблон дозволяє налаштувати відправку email з заданою темою та вмістом.


Щоб створити завдання-сервіс на основі шаблону Відправити email, виконайте наступні дії:

  1. Створіть завдання-сервіс (див. розділ Завдання-сервіс).

  2. Розгорніть секцію Імплементація, а потім в полі Шаблон виберіть Відправити email.

  3. Заповніть параметри шаблону, використовуючи підказки з таблиці нижче.

    Screenshot
ПолеОпис
Відправка асинхронноАсинхронна відправка дозволяє процесу продовжувати виконання наступних завдань без очікування завершення відправки email.
КомуВкажіть email адресу, на яку буде відправлено лист. Або, якщо хочете використати динамічне значення, введіть код змінної процесу в форматі ${variableName}, яка містить email у форматі String.
Наприклад: ${recipientEmail}.
ТемаВкажіть тему листа.
ℹ️ Примітка:
Ви можете додатково відформатувати текст теми, використовуючи Mustache синтаксис.
ЗвітОберіть шаблон звіту з випадаючого списку. Звіти використовуються як шаблони для листів. Ви можете обрати один зі стандартних звітів або створити свій власний — для цього див. розділ Шаблони звітів.
ℹ️ Примітка:
Для зручності, ви можете створити новий шаблон звітів або редагувати наявний відразу у налаштуваннях шаблону. Для цього наведіть курсор на назву поля Звіт 1, а потім виберіть потрібну опцію у меню 2.
Screenshot

2.4.4.5.8. Оновити атрибути сутності

Завдяки шаблону Оновити атрибути сутності, ви можете передати значення атрибутів сутностей у значення змінних бізнес-процесів.

  1. Створіть завдання-сервіс (див. розділ Завдання-сервіс).

  2. Розгорніть секцію Імплементація, а потім в полі Шаблон виберіть Оновити атрибути сутності.

    Screenshot
  3. Заповніть параметри шаблону, використовуючи підказки з таблиці нижче.

    Screenshot
ПолеОпис
Відправка асинхронноАсинхронна відправка дозволяє процесу продовжувати виконання наступних завдань без очікування завершення оновлення сутності.
СутністьЗ випадаючого меню оберіть сутність, яку бажаєте оновлювати завдяки цьому завданню.
ℹ️ Примітка:
Ви також можете обрати опцію Повʼязана сутність, у разі якщо раніше до поточного процесу ви додали повʼязану сутність (див. Додати до процесу повʼязану сутність).
Атрибути сутностіУ цьому полі ви можете вказати конкретні атрибути сутності, значення яких бажаєте оновити. Якщо залишити це поле порожнім, то не оновлюватиметься жоден атрибут сутності.

Щоб вказати конкретні атрибути значення яких будуть оновлюватись, виконайте наступні дії:
1. Біля заголовка секції Атрибути, виберіть піктограму "+", щоб додати атрибути сутності.
2. В полі Атрибут з випадаючого списку виберіть бажані атрибути сутності, значення яких бажаєте оновити.
3. В полі Тип , з випадаючого списку, виберіть тип значення атрибута, це може бути фіксоване значення або змінна процесу.
4. Залежно від обраного типу, у полі Значення введіть потрібне значення або, якщо у типі ви обрали змінну, то в полі Змінна процесу введіть назву змінної.

В разі, якщо у полі Сутність ви обрали опцію Повʼязана сутність, то автоматично буде додано атрибут сутності ID (ID) типу Змінна процесу зі значенням $ID. Це необхідно для оновлення документа з якого запущено процес. Якщо для дефініції відсутня Пов’язана сутність необхідно додати атрибут сутності ID вручну та встановити для нього тип “Змінна процесу” та значення $ID.
Користувацькі атрибутиУ цьому полі ви можете вказати конкретні користувацькі атрибути сутності, значення яких бажаєте оновити. Якщо залишити це поле порожнім, то не оновлюватиметься жоден користувацький атрибут.

Щоб вказати конкретні користувацькі атрибути значення яких будуть оновлюватись, виконайте наступні дії:
1. Біля заголовка секції Користувацькі атрибути, виберіть піктограму "+", щоб додати користувацькі атрибути сутності.
2. В полі Атрибут з випадаючого списку виберіть бажані атрибути сутності, значення яких бажаєте оновити.
3. В полі Тип, з випадаючого списку, виберіть тип значення атрибута, це може бути фіксоване значення або змінна процесу.
4. Залежно від обраного типу, у полі Значення введіть потрібне значення або, якщо у типі ви обрали змінну, то в полі Змінна процесу введіть назву змінної.

Після заповнення полів, Сценарій параметрів виклику буде згенеровано автоматично.

Примітка:

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

Screenshot
Примітка:

Ви також можете використовувати додаткові параметри запитів, їх назви та можливі значення описано в таблиці.

ПараметрЗначенняОпис
__skipOptimisticLocktrue / falseВикористайте true, щоб запобігти оптимістичному блокуванню при оновленні сутностей з бізнес-процесу.
__executeAsUseruser ID або змінна , яка містить user IDЗавдяки цьому параметру, ви можете виконати дію під профілем іншого користувача. Використовується для методу execAction. Користувач під яким виконується дія, повинен мати доступ на її виконання.

Приклади використання додаткових параметрів:

Приклад 1: Запуск дії документа з кодом approve під користувачем admin (user ID = 10).

Screenshot

Приклад 2: Оновлення користувацького атрибута документа. В атрибут з кодом sd01 значенням змінної процесу ID.

Screenshot

2.4.4.6. Завдання-сценарій

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

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

2.4.4.6.1. Створити завдання-сценарій

  1. У лівому верхньому куті виберіть робочий стіл Студія, а тоді виберіть ярлик Бібліотека процесів.

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

  3. В меню інструментів виберіть піктограму 1 та вставте елемент у потрібному місці діаграми процесу 2.

    Screenshot
  4. Клацніть на доданий елемент 1, а потім у контекстному меню виберіть піктограму 2 .

    Screenshot
  5. У контекстному меню виберіть Завдання-сценарій.

    Screenshot
  6. Клацніть на додане завдання-сценарій 1.

  7. Перейдіть в меню налаштування, а потім розгорніть секцію Загальне 2.

    Screenshot
  8. В полі Назва введіть бажану назву завдання, щоб вона відображала зміст завдання. Наприклад: "Обробка вхідних даних".

    Screenshot
  9. У контекстному меню завдання виберіть піктограму Screenshot.

    Screenshot
  10. Виберіть "+" 1, а потім Вбудований сценарій 2.

    Screenshot
  11. У текстове поле 1 введіть потрібні функції для сценарію, ви можете скористатись основними функціями з таблиці нижче.

Примітка:

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

Screenshot
Назва функціїОпис
execution.getVariable('variableName')Отримати значення змінної
execution.setVariable('variableName', value)Задати значення змінній
print('Write this line to Camunda Log')Використовується для виводу тексту до журналу (логу) Camunda. Це корисно для налагодження та моніторингу процесів, оскільки дозволяє розробникам та адміністраторам бачити, що відбувається в межах виконання скриптів.
S('{"key": "value"}')Отримати константу з Spin
json.prop("key").value()Отримати константу з JSON
JSON.parse(spinObj)Конвертувати SPIN в JS об'єкт
S(JSON.stringify(jsObj))Конвертувати JS об'єкт в SPIN
spinObj.toString()Конвертувати SPIN в JSON
S(jsonStr)Конвертувати JSON в SPIN
JSON.stringify(jsObj)Конвертувати JS об'єкт в JSON
JSON.parse(jsonStr)Конвертувати JSON в JS об'єкт

2.4.4.6.2. Приклади сценаріїв

  • Приклад 1: Обробка JSON-масиву — отримання з нього параметрів та запис їх у змінні процесу.

    Screenshot
  • Приклад 2: Перетворення масиву JSON — отримання з масиву переліку email-адрес та збереження їх у змінну процесу з назвою поля у форматі масиву JSON.

    Screenshot

2.4.4.7. Налаштувати моделер

В моделері бізнес-процесів є ряд параметрів, які рідко використовуються при роботі з бізнес-процесами, такі як:

  • Додаткові властивості процесу/завдання
  • Вхідні та вихідні параметри процесу/завдання
  • Пов’язана сутність форми завдання
  • Додаткові опції імплементації сервісних завдань

Ви можете приховати ці налаштування. Для цього виконайте наступні кроки:

  1. У панелі навігації виберіть робочий стіл Студія 1.

  2. Виберіть ярлик Бібліотека процесів 2.

  3. Двічі клацніть по дефініції бізнес-процесу, для якої бажаєте налаштувати моделер 3.

    Screenshot
  4. Виберіть піктограму налаштувань .

    Screenshot
  5. У вікні Налаштування моделера поставте галочки на параметрах, які не бажаєте відображати 1, а потім натисніть Застосувати 2.

    Screenshot

2.4.4.8. Синтаксис Mustache

Mustache — це бібліотека для шаблонізації, яка використовує простий синтаксис подвійних дужок {{ }} для вставки значень з об'єктів контексту. В Scriptum цей синтаксис широко використовується для динамічного відображення атрибутів завдань, об'єктів та процесів.

2.4.4.8.1. Основні поняття

  • Атрибути Завдань: Префікс taskвикористовується для доступу до атрибутів завдання.

    Наприклад: {{ task.subject }} {{ task.description }} {{ task.assigneeID.fullName }}

  • Атрибути Об'єктів: префікс instance використовується для атрибутів об'єктів, пов'язаних із завданням.

    Наприклад: {{ instance.docNumber }} {{ instance.organizationID.code }}

  • Користувацькі Атрибути: префікс instance.attrValues використовується для доступу до користувацьких атрибутів документа.

    Наприклад: {{ instance.attrValues.ms01 }} {{ instance.attrValues.ms07 }}

  • Атрибути Процесів: префікс process використовується для атрибутів процесів, пов'язаних із завданням.

    Наприклад: {{ process.businessKey }}

  • Умовне Відображення: використовуйте {{#}} і {{/}} щоб відображувати значення тільки в разі наявності значення.

    Наприклад: {{#task.dueDate}} Строк завдання: {{#$f}}"task.dueDate","dateTime"{{/$f}} {{/task.dueDate}}


    Примітка:

    В цьому випадку Строк завдання буде відображено тільки при наявності значення task.dueDate.

2.4.4.8.2. Місця застосування

Після оновлення до 48 версії та вище, вам буде доступна підтримка макросів форматування mustache у таких елементах:

Завдання користувача
  • Секція Загальне:
    • поле Шаблон заголовок завдання
    • поле Шаблон опису завдання
  • Секція Сповіщення
    • поле Тема

Завдання-сервіс (на основі шаблон Відправити email):
  • Секція Імплементація
    • поле Звіт
  • У старіших версіях: Режим сумісностіUB Report

2.4.4.8.3. Форматування макросів

Всередині макроса ви можете вказувати параметри в лапках чи без них, через кому, або через пробіл — платформа підтримує будь-який з наступних варіантів:

{{#$f}}task.dueDate date{{/$f}}
{{#$f}} task.dueDate dateTimeFull {{/$f}}
{{#$f}}task.dueDate,dateTimeFull{{/$f}}
{{#$f}}"task.dueDate", "dateTimeFull"{{/$f}}
{{#$f}}"task.dueDate" "dateTimeFull"{{/$f}}
{{#$f}}"task.dueDate" "dateTimeFull" "lang=uk"{{/$f}}
{{#$f}}task.dueDate, dateTimeFull, lang=uk{{/$f}}
{{#$f}}task.dueDate dateTimeFull lang=uk{{/$f}}

2.4.4.8.4. Типи форматів та приклади

Загальна функція форматування:
$f / $format

Примітка:

Аліас $$f не підтримується.

У наступній таблиці ви можете побачити три формати:

  • Формат за замовчуванням (наприклад, dateTimeFull) — результат виводу такого формату буде залежати від локалізації, яка обрана у вашій платформі за замовчуванням.

    • Якщо ваша локалізація за замовчуванням англійська, то результат виводу буде у форматі dateTimeFull lang=en, тобто дата буде відображатись у форматі 9/06/2024, 09:32:59.
    • Якщо ж ваша локалізація за замовчуванням українська, то результат виводу буде у форматі dateTimeFull lang=uk, тобто дата буде відображатись у форматі 09.06.2024, 09:32:59.
  • Формат для англійської локалізації (наприклад, dateTimeFull lang=en) — дата буде відображатись у форматі 9/06/2024, 09:32:59.
  • Формат для української локалізації (наприклад, dateTimeFull lang=uk) — дата буде відображатись у форматі 09.06.2024, 09:32:59.

* У колонці Результат виводу показано, як буде виглядати результат виводу, якщо мовою за замовчуванням у вашій платформі є англійська. Якщо у вашій платформі встановлено іншу мову за замовчуванням, результати виводу можуть відрізнятися та мати формат, відповідний обраній локалізації.


Тип форматуСинтаксисРезультат виводу*
dateTimeFull{{#$f}}task.dueDate dateTimeFull{{/$f}}9/06/2024, 09:32:59
dateTimeFull lang=uk{{#$f}}task.dueDate dateTimeFull lang=uk{{/$f}}09.06.2024, 09:32:59
dateTimeFull lang=en{{#$f}}task.dueDate dateTimeFull lang=en{{/$f}}9/06/2024, 09:32:59
date{{#$format}}"task.dueDate" "date"{{/$format}}09/06/2024
date lang=uk{{#$format}}task.dueDate, date, lang=uk {{/$format}}09.06.2024
date lang=en{{#$format}}task.dueDate, date, lang=en{{/$format}}09/06/2024
dateFull{{#$format}}"task.dueDate" "dateFull"{{/$format}}09/06/24
dateFull lang=uk{{#$format}}task.dueDate dateFull lang=uk{{/$format}}09.06.24
dateFull lang=en{{#$format}}task.dueDate dateFull lang=en{{/$format}}09/06/24
dateShort{{#$f}}"task.dueDate" "dateShort"{{/$f}}06/24
dateShort lang=uk{{#$f}}task.dueDate dateShort lang=uk{{/$f}}06.24
dateShort lang=en{{#$f}}task.dueDate dateShort lang=en{{/$f}}06/24
dateFullLong{{#$f}}instance.attrValues.ms07 dateFullLong{{/$f}}06 June 2024
dateFullLong lang=uk{{#$f}}instance.attrValues.ms07 dateFullLong lang=uk{{/$f}}06 червня 2024 р.
dateFullLong lang=en{{#$f}}instance.attrValues.ms07 dateFullLong lang=en{{/$f}}06 June 2024
dateMYY{{#$f}}"instance.attrValues.ms06" "dateMYY"{{/$f}}06/2024
dateMYY lang=uk{{#$f}}instance.attrValues.ms06, dateMYY, lang=uk:{{/$f}}06.2024
dateMYY lang=en{{#$f}}instance.attrValues.ms06, dateMYY, lang=en:{{/$f}}06/2024
dateMYLong{{#$f}}"instance.attrValues.ms07" "dateMYLong"{{/$f}}June 2024
dateMYLong lang=uk{{#$f}}instance.attrValues.ms07, dateMYLong, lang=uk{{/$f}}червень 2024
dateMYLong lang=en{{#$f}}instance.attrValues.ms07, dateMYLong, lang=en{{/$f}}June 2024
time{{#$f}}"instance.attrValues.ms07" "time"{{/$f}}09:32
time lang=uk{{#$f}}instance.attrValues.ms07, time, lang=uk{{/$f}}09:32
time lang=en{{#$f}}instance.attrValues.ms07, time, lang=en{{/$f}}09:32
timeFull{{#$f}}"instance.attrValues.ms07" "timeFull"{{/$f}}09:32:22
timeFull lang=uk{{#$f}}instance.attrValues.ms07, timeFull, lang=uk{{/$f}}09:32:22
timeFull lang=en{{#$f}}instance.attrValues.ms07, timeFull, lang=en{{/$f}}09:32:22
dateTime{{#$f}}"instance.attrValues.ms07" "dateTime"{{/$f}}6/06/2024, 09:32
dateTime lang=uk{{#$f}}instance.attrValues.ms07, dateTime, lang=uk{{/$f}}06.06.2024, 09:32
dateTime lang=en{{#$f}}instance.attrValues.ms07, dateTime, lang=en{{/$f}}6/06/2024, 09:32
dateTimeFullWithTz{{#$f}}"instance.attrValues.ms07" "dateTimeFullWithTz"{{/$f}}6/06/2024, 09:32:22 GMT
dateTimeFullWithTz lang=uk{{#$f}}instance.attrValues.ms07, dateTimeFullWithTz, lang=uk{{/$f}}06.06.2024, 09:32:22 GMT
dateTimeFullWithTz lang=en{{#$f}}instance.attrValues.ms07, dateTimeFullWithTz, lang=en{{/$f}}6/06/2024, 09:32:22 GMT
numberGroup{{#$f}}"instance.attrValues.ms04" "numberGroup"{{/$f}}323
numberGroup lang=uk{{#$f}}instance.attrValues.ms04, numberGroup, lang=uk{{/$f}}323
numberGroup lang=en{{#$f}}instance.attrValues.ms04, numberGroup, lang=en{{/$f}}323
number{{#$f}}"instance.attrValues.ms04" "number"{{/$f}}323
number lang=uk{{#$f}}instance.attrValues.ms04, number, lang=uk{{/$f}}323
number lang=en{{#$f}}instance.attrValues.ms04, number, lang=en{{/$f}}323
sum{{#$f}}"instance.attrValues.ms04" "sum"{{/$f}}323.22
sum lang=uk{{#$f}}instance.attrValues.ms04, sum, lang=uk:{{/$f}}323,22
sum lang=en{{#$f}}instance.attrValues.ms04, sum, lang=en:{{/$f}}323.22
sumDelim{{#$f}}"instance.attrValues.ms04" "sumDelim"{{/$f}}323.22
sumDelim lang=uk{{#$f}}instance.attrValues.ms04, sumDelim, lang=uk{{/$f}}323,22
sumDelim lang=en{{#$f}}instance.attrValues.ms04, sumDelim, lang=en{{/$f}}323.22
decimal1{{#$f}}"instance.attrValues.ms05" "decimal1"{{/$f}}4,433.2
decimal1 lang=uk{{#$f}}instance.attrValues.ms05, decimal1, lang=uk:{{/$f}}4 433,2
decimal1 lang=en{{#$f}}instance.attrValues.ms05, decimal1, lang=en:{{/$f}}4,433.2
decimal2{{#$f}}"instance.attrValues.ms05" "decimal2"{{/$f}}4,433.23
decimal2 lang=uk{{#$f}}instance.attrValues.ms05, decimal2, lang=uk:{{/$f}}4 433,23
decimal2 lang=en{{#$f}}instance.attrValues.ms05, decimal2, lang=en:{{/$f}}4,433.23
decimal3{{#$f}}"instance.attrValues.ms05" "decimal3"{{/$f}}4,433.232
decimal3 lang=uk{{#$f}}instance.attrValues.ms05, decimal3, lang=uk:{{/$f}}4 433,232
decimal3 lang=en{{#$f}}instance.attrValues.ms05, decimal3, lang=en:{{/$f}}4,433.232
decimal4{{#$f}}"instance.attrValues.ms05" "decimal4"{{/$f}}4,433.2322
decimal4 lang=uk{{#$f}}instance.attrValues.ms05, decimal4, lang=uk:{{/$f}}4 433,2322
decimal4 lang=en{{#$f}}instance.attrValues.ms05, decimal4, lang=en:{{/$f}}4,433.2322
decimal5{{#$f}}"instance.attrValues.ms05" "decimal5"{{/$f}}4,433.23223
decimal5 lang=uk{{#$f}}instance.attrValues.ms05, decimal5, lang=uk:{{/$f}}4 433,23223
decimal5 lang=en{{#$f}}instance.attrValues.ms05, decimal5, lang=en:{{/$f}}4,433.23223
decimal6{{#$f}}"instance.attrValues.ms05" "decimal6"{{/$f}}4,433.232230
decimal6 lang=uk{{#$f}}instance.attrValues.ms05, decimal6, lang=uk:{{/$f}}4 433,232230
decimal6 lang=en{{#$f}}instance.attrValues.ms05, decimal6, lang=en:{{/$f}}4,433.232230

Форматувати число:
$number / $fn

Примітка:

Аліас $$fn не підтримується.

* У колонці Результат виводу показано, як буде виглядати результат виводу, якщо мовою за замовчуванням у вашій платформі є англійська. Якщо у вашій платформі встановлено іншу мову за замовчуванням, результати виводу можуть відрізнятися та мати формат, відповідний обраній локалізації.


СинтаксисРезультат виводу*
{{#$number}}instance.attrValues.ms05{{/$number}}4433
{{#$number}}instance.attrValues.ms05 decimal1{{/$number}}4,433.2
{{#$fn}}instance.attrValues.ms05{{/$fn}}4433
{{#$fn}}instance.attrValues.ms05 decimal1{{/$fn}}4,433.2
{{#$fn}}instance.attrValues.ms05 decimal1 lang=uk{{/$fn}}4 433,2

Форматувати суму:
$sum / $fs

Примітка:

Аліас $$fs не підтримується.

* У колонці Результат виводу показано, як буде виглядати результат виводу, якщо мовою за замовчуванням у вашій платформі є англійська. Якщо у вашій платформі встановлено іншу мову за замовчуванням, результати виводу можуть відрізнятися та мати формат, відповідний обраній локалізації.


СинтаксисРезультат виводу*
{{#$sum}}instance.attrValues.ms05{{/$sum}}4,433.23
{{#$sum}}instance.attrValues.ms05 decimal1{{/$sum}}4,433.23
{{#$fs}}instance.attrValues.ms05{{/$fs}}4,433.23
{{#$fs}}instance.attrValues.ms05 decimal1{{/$fs}}4,433.23
{{#$fs}}instance.attrValues.ms05 decimal1 lang=uk{{/$fs}}4 433,23

Форматувати дату:
$date / $fd

Примітка:

Аліас $$fd не підтримується.

* У колонці Результат виводу показано, як буде виглядати результат виводу, якщо мовою за замовчуванням у вашій платформі є англійська. Якщо у вашій платформі встановлено іншу мову за замовчуванням, результати виводу можуть відрізнятися та мати формат, відповідний обраній локалізації.


СинтаксисРезультат виводу*
{{#$date}}instance.attrValues.ms06{{/$date}}06/06/2024
{{#$date}}instance.attrValues.ms06 dateFull{{/$date}}06/06/2024
{{#$fd}}instance.attrValues.ms06{{/$fd}}06/06/2024
{{#$fd}}instance.attrValues.ms06 dateMYY{{/$fd}}06/06/2024
{{#$fd}}instance.attrValues.ms06 dateShort lang=uk{{/$fd}}06.06.2024

Форматувати час:
$time / $f

Примітка:

Аліас $$ft не підтримується.

* У колонці Результат виводу показано, як буде виглядати результат виводу, якщо мовою за замовчуванням у вашій платформі є англійська. Якщо у вашій платформі встановлено іншу мову за замовчуванням, результати виводу можуть відрізнятися та мати формат, відповідний обраній локалізації.


СинтаксисРезультат виводу*
{{#$time}}instance.attrValues.ms07{{/$time}}09:32
{{#$time}}instance.attrValues.ms07 timeFull{{/$time}}09:32
{{#$ft}}instance.attrValues.ms07{{/$ft}}09:32
{{#$ft}}instance.attrValues.ms07 timeFull{{/$ft}}09:32
{{#$ft}}instance.attrValues.ms07 lang=uk{{/$ft}}09:32

Форматувати дату та час:
$dateTime / $fdt

Примітка:

Аліас $$fdt не підтримується.

* У колонці Результат виводу показано, як буде виглядати результат виводу, якщо мовою за замовчуванням у вашій платформі є англійська. Якщо у вашій платформі встановлено іншу мову за замовчуванням, результати виводу можуть відрізнятися та мати формат, відповідний обраній локалізації.


СинтаксисРезультат виводу*
{{#$dateTime}}instance.attrValues.ms07{{/$dateTime}}6/06/2024, 09:32
{{#$dateTime}}instance.attrValues.ms07 dateTimeFull{{/$dateTime}}6/06/2024, 09:32
{{#$fdt}}instance.attrValues.ms07{{/$fdt}}6/06/2024, 09:32
{{#$fdt}}instance.attrValues.ms07 dateTimeFullWithTz{{/$fdt}}6/06/2024, 09:32
{{#$fdt}}instance.attrValues.ms07 lang=uk{{/$fdt}}06.06.2024, 09:32

Форматувати дату та час (вказати секунди):
$dateTime / $fdt

Примітка:

Аліаси $fdts та $$fdts не підтримуються.

* У колонці Результат виводу показано, як буде виглядати результат виводу, якщо мовою за замовчуванням у вашій платформі є англійська. Якщо у вашій платформі встановлено іншу мову за замовчуванням, результати виводу можуть відрізнятися та мати формат, відповідний обраній локалізації.


СинтаксисРезультат виводу*
{{#$dateTimeFull}}instance.attrValues.ms07{{/$dateTimeFull}}6/06/2024, 09:32:22
{{#$fdtf}}instance.attrValues.ms07{{/$fdtf}}6/06/2024, 09:32:22
{{#$fdtf}}instance.attrValues.ms07 lang=uk{{/$fdtf}}06.06.2024, 09:32:22