Використання змінних процесу при моделюванні форм (formVariables)

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

Сценарій використання

У адміністратора форм може виникнути необхідність додавати змінні до форм бізнес процесу які не є специфічними для конкретної задачі, а є загальними для користувача. Ця можливість доступна через змінну formVaribles. Також є можливість використати дані користувача через змінну currentUser.

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

Заповнення змінної formVariables у бізнес-процесі

Для того щоб заповнити "formVariables" у бізнес-процесі, потрібно вибрати користувацьку задачу, перейти на вкладку Extensions та додати нову властивість Add Property. У полі Name потрібно задати ім’я властивості як formVariables, а у полі Value перерахувати через кому усі імена змінних екземпляра бізнес-процесу, значення яких потрібно отримати.

add form variables property

Отримання всіх змінних екземпляру процесу у сервісі управління задачами, видимих для користувацької задачі та заповнення поля "formVariables", відбувається в рамках отримання задачі за ідентифікатором:

Diagram

Запит:

GET /api/task/<task-id>

Відповідь:

  • 200 OK

Тіло відповіді:

{
    ...
    "formVariables": {
        "fullName": "FirstName LastName"
    }
}
Змінну видно з задачі, якщо вона є локальною змінною задачі або оголошена в батьківській області задачі. За деталями зверніться до офіційної документації про видимість змінних.

Використання змінних у admin-portal при моделюванні форм

Для того щоб надати можливість користувачу обирати ролі необхідно додати компонент Select та обрати для нього "Data Source Type" = "Custom" та потім описати у полі "Custom Values" значення для змінної values (див. мал.)

admin portal form variables

Поле "Custom Values" це JavaScript вставка у якій є доступним певний набір змінних. У рамках нашого сценарію доступні:

formVariables

Змінні процеса. Ми додали до цього об’єкта масив roles у попередньому пункті.

currentUser

Об’єкт який містить інформацію про автентифікованого користувача. Цей об’єкт існує завжди. Докладніше — за посиланням.

Тепер масив roles є доступним для компонента Select, але для того щоб він став доступним користувачу необхідно вказати які саме поля необхідно використовувати для відображення та вибору опції. Якщо припустить що масив roles містить об’єкти виду {id: string, name: string}, то налаштування може виглядати так:

admin portal form variables item

Технічні можливості

Змінні formVariables та currentUser доступні у будь-якій вставці JavaScript при моделюванні форм. Це, наприклад "Custom Default Value", "Custom Validation" та інші.

Також у майбутньому існує можливість розширити список доступних зміних та додати туди майже довільну інформацію з клієнтського додатка. Це можливо за допомогою використання опції evalContext компонента Form з бібліотеки form.io. Докладніше про це можна прочитати у документації компонента <Form> з web-components-library.