2.2.0. Основні дії з типом документа
2.2.1. Створити тип документа
-
У панелі навігації, виберіть робочий стіл Студія 1.
-
Виберіть ярлик Тип документів 2, а потім у панелі інструментів, виберіть + 3.
Щоб налаштувати створений тип документа, перейдіть у наступні розділи:
2.2.1.1. Головне
-
У вкладці Головне заповніть загальну інформацію про документ, використовуючи підказки з таблиці нижче.
| Назва поля | Опис |
|---|---|
| Код* |
|
| Найменування* | Назва типу документа. ℹ️ Примітка: ви можете встановити альтернативну назву для різних мов. Для цього у полі Найменування, виберіть піктограму та заповніть поля для інших мов. А потім виберіть кнопку Застосувати. |
| Опис | Короткий опис даного типу документа. |
| Журнал реєстрації за замовчуванням | Зі списку виберіть журнал реєстрації, за допомогою якого можлива реєстрація документів. Вказаний в даному полі журнал буде обиратися автоматично при створенні документів такого типу. |
| Шаблон заголовка | Зі списку виберіть шаблон, який буде використаний для формування заголовка документа. |
| Дозволити копіювання документів цього типу | Установіть цей прапорець, якщо бажаєте, щоб користувач міг копіювати документи, згенеровані на основі цього типу документа. Для керування копіюванням ви можете налаштувати обробники подій у вкладці Події. Наприклад, ви можете налаштувати стан в якому створиться майбутній документ. Див. розділ Копіювання документів |
Для кожного типу документа ви можете створити окремий журнал реєстрацій (див. розділ Журнал реєстрації ).
- У панелі інструментів виберіть піктограму Зберегти , а потім продовжте налаштування у вкладці Ролі (див. розділ Ролі).
2.2.1.2. Ролі
Користувач в ролі Admin може створювати нові ролі та використовувати їх при налаштуванні типу документа. Щоб дізнатись більше про створення ролей, див. розділ Створити роль в типі документа .
Для документа можна додати всі можливі ролі з довідника ролей. Для цього, виконайте наступні дії:
-
Перейдіть на вкладку Ролі 1.
-
Увімкніть потрібні перемикачі 2, використовуючи підказки в таблиці нижче.
| Назва перемикача | Опис |
|---|---|
| Автор документа | Це обов'язкова роль, яка автоматично закріплюється за посадою користувача, що створив документ. Цю роль не можна змінити під час обробки документа. |
| Відповідальний виконавець | Ця роль автоматично включається в документ, але не є обов'язковою якщо вона не відключена в довіднику ролей. |
| Спостерігач документа | Це системна роль. Призначається автоматично користувачам, які отримують завдання по документа. Дає право на перегляд атрибутів документа. |
-
Щоб додати налаштування до кожної з ролей, установіть відповідні прапорці:
-
Дозволити учасникам ролі видаляти документи — надає право всім учасникам ролі видаляти документи у відповідних станах.
Примітка:Ви можете налаштувати документ так, щоб його можна було видалити лише в певному стані. Див. крок 3 у розділі Стани.
-
Заборонити додавати більш ніж одного учасника ролі — для цього типу документів не можна додати більше ніж одного представника даної ролі.
-
Заборонити включати групи в роль — для даного типу документа таку роль можна надати тільки конкретним користувачам, а не групам користувачів.
-
Дозволити учасникам ролі змінювати тип документа — див. Змінити тип документа.
Примітка:Після увімкнення функції Заборонити додавати більш ніж одного учасника ролі, ви зможете змінювати тип довідника на Суб'єкти адміністрування або Організаційні одиниці на формі документа. Для цього, перейдіть в потрібний документ, а тоді в потрібному рольовому атрибуті, виберіть 1. А тоді виберіть Змінити вид учасників 2.

-
-
В секції Учасники ролі, виберіть кнопку Додати, щоб додати користувачів, які матимуть всі права та можливості відповідної ролі.
-
Заповніть необхідні поля 1, а потім виберіть кнопку Додати 2.
Примітка:Ви можете призначити учасниками ролі окремих користувачів: посади, системні ролі, користувачі. Також ви можете призначати групи користувачів: наші організації, підрозділи, групи виконавців. Якщо ви хочете додати групи користувачів, переконайтесь що ви не увімкнули перемикач Заборонити включати групи в роль (крок 3).
-
На панелі інструментів виберіть піктограму Зберегти , а потім продовжіть налаштування у вкладці Стани (див. розділ Стани).
2.2.1.3. Стани
Ви можете додати для документа всі можливі стани з довідника станів.
Стан — це характеристика що відображає результати проходження документом певного етапу. Ви можете налаштувати умови за яких стан документа буде автоматично змінюватись. Для цього виконайте наступні дії:
-
Перейдіть у вкладку Стани 1, а потім в панелі Стани, увімкніть перемикачі станів 2 які ви хочете використовувати для типу документа.
Примітки:- Вимкнути усі стани неможливо. Щонайменше один стан має бути увімкненим.
- Якщо стан використовується в обробнику (на вкладці Події), система відобразить попередження під час спроби його вимкнути.
-
Виберіть один із увімкнених станів 1. Відкриються додаткові налаштування цього стану.
-
Увімкніть опцію Дозволяти видалення документів в цьому стані 2. Ця опція дозволить користувачам видалити документ коли він перебуватиме у вказаному стані.
-
Увімкніть опцію Дозволити зміну типу документа в цьому стані. Див. розділ Змінити тип документа.
-
Виберіть кнопку Зробити початковим. Це означає, що всі створені документи цього типу, будуть мати той стан який ви задали як початковий.
Примітка:За стандартних налаштувань, стан Новий є початковим станом усіх нових документів.
-
Щоб налаштувати умови при яких стан буде змінюватись, у секції Дії, виберіть Додати.
-
Заповніть поля 1, використовуючи підказки в таблиці нижче, а потім виберіть кнопку Додати дію 2.
| Назва поля | Опис |
|---|---|
| Код дії* | Унікальний ідентифікатор даної дії. Не може повторюватись в межах одного стану. |
| Найменування* | Назва даної дії. ℹ️ Примітка: ви можете встановити альтернативну назву для різних мов. Для цього у полі Найменування, виберіть піктограму та заповніть поля для інших мов. А потім виберіть кнопку Застосувати. |
| Тип дії* | Вибір одного з варіантів дій:
|
| Перейти у стан* це поле доступне лише якщо в полі Тип дії, ви обрали Перехід. | Виберіть з випадаючого списку один зі станів в який повинен перейти документ при виконанні даної дії. Щоб створити чи редагувати наявні стани, див. розділ Довідник станів типу документа. |
| Тип діалогу* | В полі Тип діалогу ви можете визначачити, як система буде взаємодіяти з користувачем при виконанні обраної дії. Ви можете обрати один з наступних типів:
|
| Дозволити для ролей | Надайте доступ на виконання даної дії ролям, які активовані у типі документа (див. розділ Ролі). |
Поля позначені символом "*" є обов'язковими до заповнення.
Щоб редагувати створені дії, видаляти їх або змінювати порядок, виберіть відповідні кнопки в колонці Дії.
- У панелі інструментів виберіть піктограму Зберегти , а потім продовжіть налаштування у вкладці ШІ Дії (див. розділ ШІ Дії).
2.2.1.4. ШІ Дії
Перед початком роботи у вкладці ШІ Дії створіть Сценарій ШІ типу Дія документа.
-
Перейдіть у вкладку ШІ дії 1, а потім виберіть + Додати ШІ дію 2.
-
В полі Сценарії ШІ виберіть потрібний сценарій. У списку відображатимуться лише сценарії типу Дія документа.
-
Поле Код дії буде автоматично заповнено ідентичним кодом, як у вибраному сценарії ШІ. За потреби, внесіть зміни.
-
Поле Назва буде автоматично заповнено значенням, ідентичним коду вибраного сценарію ШІ. За потреби, внесіть зміни. Ця назва відображатиметься у панелі інструментів документа у вигляді кнопки.
Примітка:Ви можете встановити альтернативну назву для різних мов. Для цього у полі Найменування, виберіть піктограму .

Заповніть поля для інших мов 1, а потім виберіть кнопку Застосувати 2.

-
В полі Порядок відображення введіть порядковий номер кроку. Це корисно, якщо у вкладці ШІ Дії у вас додано декілька дій.
-
Ви можете обрати для яких користувачів та станів документа дані дії будуть доступні:
-
В секції Ролі з доступом до дії 1 оберіть один з наступних варіантів доступу:
-
Дозволити для всіх ролей
-
Дозволити для певних ролей — при виборі цього варіанту в полі нижче 2 виберіть потрібні ролі користувачів, яким бажаєте надати доступ до цієї дії.
-
-
В секції Стани, у яких дія доступна 1 оберіть один з наступних варіантів доступу:
-
Дозволити для всіх станів
-
Дозволити для певних станів — при виборі цього варіанту в полі нижче 2 виберіть стани документа, в яких відображатиметься кнопка дії.
-
-
-
Виберіть кнопку Додати ШІ дію.
-
Налаштуйте звʼязок між атрибутами документа та змінними сценарію. Це потрібно, щоб за допомогою змінних передавати штучному інтелекту дані з атрибутів.
-
У налаштуваннях потрібної дії виберіть Редагувати.
-
З панелі ліворуч перетягніть потрібні атрибути у форму Змінні.
-
В доданих атрибутах у полі Змінна 1 виберіть змінну, з якою бажаєте повʼязати даний атрибут (у списку будуть показані лише ті змінні, які ви попередньо створили у вказаному сценарії ШІ), а потім виберіть кнопку Застосувати 2.
-
-
У панелі інструментів виберіть піктограму Зберегти. Після збереження, ви можете застосувати ШІ дії в документі.
-
Продовжіть налаштування у вкладці Процеси.
2.2.1.5. Процеси
Для кожного типу документів можна налаштувати список виконуваних процесів, які є елементами Business Process Modeling Notation (BPMN) та Case Management Model and Notation (CMMN). Щоб додати процеси до типу документа, виконайте наступні дії:
-
Перейдіть у вкладку Процеси 1, а потім виберіть Додати процес 2.
-
Заповніть поля 1, використовуючи підказки в таблиці нижче, а потім виберіть кнопку Додати 2.
| Назва поля | Опис |
|---|---|
| Внутрішній код* | Унікальний ідентифікатор процесу, що використовується для ідентифікації старту процесу |
| Визначення процесу* | Виберіть зі списку необхідні дефініції процесу. Якщо список порожній, створіть потрібне визначення процесу. Див. розділ Створити дефініцію бізнес-процесу. |
| Версія* | Можливість автоматично використовувати останню версію чи зафіксувати конкретну версію даного процесу |
Поля позначені символом "*" є обов'язковими до заповнення.
Щоб редагувати чи видалити процес, виберіть відповідні піктограми у верхньому правому куті вікна Процеси.
Щоб переглянути деталі процесу, виберіть кнопку з назвою процесу.
- У панелі інструментів виберіть піктограму Зберегти , а потім продовжіть налаштування у вкладці Обмін (див. розділ Обмін).
2.2.1.6. Обмін
У вкладці Обмін, ви можете налаштувати повідомлення для обміну з зовнішніми системами (іншими оточеннями Scriptum, доступними для обміну).
Наприклад: одне оточення можна розгорнути у локальній мережі компанії, а інше — з доступом ззовні, і налаштувати обмін повідомленнями між ними.
Перед тим як перейти до налаштування обміну, виконайте наступні дії:
-
Додайте зв'язок з зовнішньою системою. Цей крок необхідний для встановлення базового з'єднання між вашою та зовнішньою системою. Тут ви вказуєте основні параметри підключення та унікальний код системи, які будуть використовуватися при всіх подальших налаштуваннях обміну.
-
Створіть тип повідомлення зовнішньої системи. На цьому етапі ви визначаєте структуру даних для обміну та правила їх обробки. Це дозволить системі розуміти, які саме дані потрібно передавати та як їх обробляти при отриманні від зовнішньої системи.
Щоб налаштувати обмін повідомленнями, виконайте наступні дії:
-
Перейдіть у вкладку Обмін 1.
-
Щоб активувати обмін повідомлень з зовнішньою системою, увімкніть перемикачі повідомлень які хочете активувати 2.
Напрям стрілки на записах означає напрям повідомлення:
- → вихідне повідомлення до зовнішньої системи
- ← вхідне повідомлення із зовнішньої системи
- У панелі інструментів виберіть піктограму Зберегти , а потім продовжіть налаштування у вкладці Події (див. розділ Події).
2.2.1.7. Події
Вкладка Події дозволяє керувати реакцією системи на певні події, включаючи отримання повідомлень із зовнішніх систем. Ви можете вибирати дії, які мають бути виконані при настанні зазначеної події, наприклад, стартування бізнес-процесу, відправлення повідомлення, або створення нового документа.
Щоб налаштувати події, виконайте наступні дії:
-
Перейдіть у вкладку Події 1, а тоді виберіть Додати оброблювач 2. Оброблювач це активатор події.
-
Заповніть поля, використовуючи підказки в таблиці нижче, а потім у панелі інструментів.
| Назва поля | Опис |
|---|---|
| Подія* | Виберіть подію, на яку встановлюється оброблювач:
|
| Тип оброблювача* | В полі Тип оброблювача, виберіть дію яку потрібно виконати при виникненні вказаної вище події
|
| Процес* поле доступно лише для типу оброблювача "Стартувати процес" | Виберіть процес який хочете стартувати при виникненні вказаної події. |
Поля позначені символом "*" є обов'язковими до заповнення.
-
Виберіть кнопку Додати.
-
Якщо у вкладці Обмін, ви увімкнули перемикач повідомлення із зовнішньої системи (позначений ←), то на вкладці Події ви побачите автоматично створений оброблювач Отримання документа із зовнішньої системи 1. А також, додаткові налаштування цього оброблювача: Додаткові фільтри повідомлень 2 та Додаткові налаштування кореляції 3.
-
У полі Додаткові налаштування кореляції, налаштуйте кореляцію, додавши потрібні атрибути.
Кореляція — це процес порівняння документа із зовнішньої системи з уже існуючими документами на основі заданих атрибутів. Якщо в кореляції вказано один або кілька атрибутів, платформа шукатиме документ із таким самим значенням атрибута (атрибутів). Якщо відповідний документ знайдено, його буде оновлено. Якщо ж документ не знайдено, буде додано новий документ. Якщо жодного атрибута не задано, завжди додаватиметься новий документ.
-
У панелі інструментів виберіть піктограму Зберегти , а потім продовжіть налаштування у вкладці Конструктор (див. розділ Конструктор).
Ви також можете редагувати або видаляти створені події, для цього виберіть потрібний запис на вкладці Події 1, а потім виберіть відповідні піктограми Редагувати чи Видалити 2.
2.2.1.7.1. Налаштувати прив'язку атрибутів в обробнику подій "Створити документ"
Ви можете додавати до обробника "Створити документ" будь-які атрибути, навіть ті, яких немає в асоційованому типі документа. У випадку, якщо ви обрали атрибути, яких немає на формі типу документа, ви можете налаштувати логіку прив'язки між атрибутами типу документа та обраними вами атрибутами.
-
У панелі навігації, виберіть робочий стіл Студія 1.
-
Виберіть ярлик Типи документів 2.
-
Виберіть потрібний тип документа 3.
-
Перейдіть у вкладку Події 1.
-
В списку доданих оброблювачів, виберіть Створити документ 2.
-
Виберіть потрібну кнопку додавання атрибутів 3, відповідно до типу атрибута, яких бажаєте додати.
-
Якщо ви додали атрибут, якого немає на формі даного типу документа, то він підсвітиться червоним кольором з приміткою "Увага: відсутня прив'язка атрибута".
Щоб налаштувати прив'язку вручну, виконайте наступні дії:
7.1. На атрибуті виберіть кнопку .
7.2. В полі Цільовий атрибут 1 виберіть атрибут для запису даних. Список містить лише атрибути того ж типу, що й вибраний вами.
7.3. Виберіть кнопку Зберегти 2.
7.4. Повторіть ці дії з кожним атрибутом, який потребує прив'язки (підсвічені червоним).
Примітка:Якщо прив'язку для таких атрибутів (підсвічених червоним) не було налаштовано, при зберіганні форми, такі атрибути буде автоматично видалено, щоб уникнути помилок при створенні документа.
-
Ви також можете здійснити ручну прив'язку для табличних атрибутів, якщо до прикладу, колонки в поточному та цільовому атрибутах різняться.
8.1. На потрібному табличному атрибуті виберіть кнопку .
8.2. Виберіть кнопку + Додати прив'язку атрибутів таблиці.
8.3. В полі Поточний атрибут 1 виберіть зі списку атрибут поточного типу документа, дані з якого бажаєте передати в новий документ.
8.4. В полі Цільовий атрибут 2 виберіть зі списку атрибут в який запишуться дані, з обраного вами атрибута. В списку відображатимуться лише атрибути такого ж типу, як і атрибут, який ви обрали.
8.5. Виберіть кнопку Зберегти 3.
8.6. У вікні Прив'язка атрибутів виберіть кнопку Зберегти.
-
У панелі інструментів виберіть піктограму Зберегти або Зберегти та закрити .
2.2.1.8. Конструктор
Вкладка Конструктор дозволяє налаштувати форму документа: додати атрибути, задати вигляд полів, а також керувати їх доступом і відображенням залежно від ролей.
Вкладка Конструктор складається з декількох режимів, що дозволяють налаштувати користувацькі форми за допомогою графічного інтерфейсу:
2.2.1.8.1. Дизайнер
В режимі конструктора Дизайнер, ви можете створити макет майбутньої форми документа за допомогою атрибутів. А також налаштувати колонки режиму "Попередній перегляд".
Щоб скласти та налаштувати макет форми документа, виконайте наступні дії:
-
Перейдіть у вкладку Конструктор.
-
В меню Налаштування, в полі Порядок вкладок 1 виберіть бажаний порядок вкладок, які відображатимуться в переглядачі, в режимі швидкого перегляду.
-
Поставте галочку Відображати порожні значення 2, якщо бажаєте відображати атрибути з порожніми значеннями.
-
У панелі інструментів виберіть піктограму Зберегти або Зберегти та закрити .
-
Перейдіть у вкладку Конструктор 1.
-
З панелі атрибутів ліворуч 2, перетягніть потрібні атрибути у форму документа.
Щоб скасувати або повторити скасовану дію, виберіть відповідні кнопки Відміна або Повтор 1. А для зручного пошуку атрибутів, використайте поле пошуку 2.

-
Щоб скористатись додатковими функціями компонування макета, перейдіть у папку Компонування 1 та скористайтесь функціями Вкладки та Секція 2.
- Функція Вкладка дозволяє організувати атрибути на формі документа в формі вкладок. Ви можете створити додаткові вкладки всередині яких можете розмістити атрибути, змінити назву вкладок. За замовчуванням створюється одна вкладка.
- Функція Секція дозволяє групувати елементи в секції. Ви можете розмістити атрибути всередині секції. При зміні ширини секції, відповідно змінюється ширина всіх атрибутів всередині секції.
-
Щоб змінити розташування атрибута, клацніть потрібний атрибут, та затиснувши ліву кнопку мишки, перетягніть атрибут в бажане місце.
-
Також, ви можете налаштувати які саме атрибути будуть відображатись при попередньому перегляді у вкладці Деталі:
- 1 Виберіть на формі атрибут, який бажаєте відобразити на переглядачі.
- 2 В меню Налаштування увімкніть перемикач Відображати у формі попереднього перегляду.
При конструюванні документа можна використовувати атрибути різних груп, щоб не дублювати атрибути.
Примітка:При додаванні одного й того ж атрибута на форму, відбувається його дублювання, та надалі, при заповненні документа, дублюються його значення.
-
Щоб налаштувати кожен з доданих атрибутів, перейдіть в меню Налаштування праворуч від форми документа. Для цього:
- Клацніть на потрібний атрибут 1.
- Оберіть бажані налаштування в панелі Налаштування 2.
- Використовуйте підказки з розділу, що відповідає типу доданого атрибута:
Порада:Також зверніть увагу на секцію Атрибут у панелі налаштувань. Вона містить наступні параметри атрибута:
- Код
- Найменування
- Вид
- Об'єкт даних
- Згенерувати скрипт
- ID елемента

-
Щоб редагувати налаштування в секції Атрибут, виберіть потрібний атрибут 1, а потім у панелі Налаштування, виберіть піктограму 2.
Примітка:Налаштування можна змінювати лише для користувацьких атрибутів. Для стандартних це недоступно.
-
У панелі інструментів виберіть піктограму Зберегти , а потім продовжіть налаштування у режимі Доступ (див. розділ Доступ).
2.2.1.8.2. Доступ
Для кожного атрибута ви можете налаштувати рівень доступу, залежно від ролі користувача чи стану документа. Для цього виконайте наступні дії:
-
У вкладці Конструктор 1, перейдіть в режим Доступ 2.
-
У верхній панелі, в полі Стан 1, виберіть необхідний стан документа, для якого потрібно налаштувати доступ, а потім у полі Роль 2, виберіть необхідну роль, якій потрібно налаштувати доступ.
-
Наведіть курсор на атрибут, секцію чи вкладку, доступ до якої хочете налаштувати, а потім виберіть потрібний варіант налаштування. (див. значення варіантів в таблиці нижче)
| Назва кнопки | Опис |
|---|---|
| Наслідувати | Наслідується доступ з верхньорівневого атрибута форми. Наприклад: Декілька атрибутів розміщено всередині Секції, тоді можна налаштувати доступ секції, який будуть наслідувати всі атрибути всередині. |
| Сховати | Дає змогу приховати поле від користувачів — залежно від ролі або стану документа. |
| Перегляд | Поле відображається при перегляді без можливості редагування |
| Редагування | Поле доступно для редагування |
- У панелі інструментів виберіть піктограму Зберегти , а потім продовжіть налаштування у режимі Обов'язковість (див. розділ Обов'язковість).
Щоб переглянути всі надані доступи до атрибута, виберіть атрибут, а потім перегляньте панель Правила доступу. Панель містить всю інформацію про рівні доступу до цього атрибута для всіх ролей та станів документа.
2.2.1.8.3. Обов'язковість
Для кожного атрибута можна налаштувати правила обов'язковості заповнення залежно від стану документа чи дії. Для цього виконайте наступні дії:
-
У вкладці Конструктор 1, перейдіть в режим Обов'язковість 2.
-
У верхній панелі, в полі Стан 1, виберіть необхідний стан документа, для якого потрібно налаштувати обов'язковість заповнення, а потім у полі Дія 2, виберіть необхідну дію.
-
Наведіть курсор на атрибут, секцію чи вкладку, обов'язковість якої хочете налаштувати, а потім виберіть потрібний варіант налаштування. (див. значення варіантів в таблиці нижче).
| Назва кнопки | Опис |
|---|---|
| Наслідувати | Наслідується доступ з верхньорівневого атрибута форми. Наприклад: декілька атрибутів розміщено всередині Секції, тоді можна налаштувати обов'язковість секції, який будуть наслідувати всі атрибути всередині. |
| Ні | Атрибут не обов'язковий до заповнення |
| Обов'язковий | Атрибут обов'язковий до заповнення |
- У панелі інструментів виберіть піктограму Зберегти , а потім продовжіть налаштування у режимі Перегляд (див. розділ Перегляд).
Щоб переглянути всі надані атрибутам правила обов'язковості, виберіть потрібний атрибут 1, а потім перегляньте панель Правила обов'язковості 2.
2.2.1.8.4. Перегляд
Ви можете переглянути створену форму документа та її можливості під визначеними станами та ролями. Для цього виконайте наступні кроки:
-
У вкладці Конструктор 1, перейдіть в режим Перегляд 2.
-
У верхній панелі, в полі Стан 1, виберіть необхідний стан документа, вигляд якого хочете переглянути.
-
У верхній панелі, в полі Роль 2, виберіть роль, щоб переглянути відображення документа для обраної ролі.
Змінюючи значення поля Стан та Роль, ви можете спостерігати як змінюється вигляд документа для кожного стану та ролі.
Примітка:Атрибути позначені піктограмою , є закритими для редагування.
-
У панелі інструментів виберіть піктограму Зберегти , а потім продовжіть налаштування у режимі Скрипт (див. розділ Скрипт).
2.2.1.8.5. Скрипт
Ви можете додати нові функції до форми, створюючи власну логіку. Для цього використовуються скрипти на мові програмування JavaScript, які виконуються у браузері разом з основним кодом додатка.
Вимоги до знань JavaScript
Для створення скриптів необхідні наступні знання основ JavaScript:
- Основи мови (вирази, інструкції, функції, змінні тощо)
- Модулі JavaScript
- Асинхронні функції
Щоб робити запит до сервера, ознайомтеся з документацією UnityBase, особливо з модулем @unitybase/ub-pub, об'єктом Connection та класом ClientRepository.
Додати скрипт
Щоб додати скрипт, виконайте наступні дії:
-
У вкладці Конструктор 1, перейдіть в режим Скрипт 2.
-
В текстовому полі, введіть необхідний скрипт 1.
Порада:Ви можете обрати один з наявних шаблонів скриптів у секції Шаблони скриптів.
-
У панелі інструментів виберіть піктограму Зберегти або Зберегти та закрити 2.
Шаблони скриптів
В системі доступні шаблони для певних дій з атрибутами. Щоб їх використати, виконайте наступні дії:
-
У вкладці Конструктор 1, перейдіть у режим Дизайнер 2.
-
Виберіть атрибут 1 (типу документів, форми задач тощо).
-
У панелі Налаштування, виберіть Згенерувати скрипт 2.
-
Виберіть потрібну дію 3.
-
Перейдіть у режим Скрипт 1, а потім вставте скопійований скрипт в текстове поле 2.
-
У панелі інструментів виберіть піктограму Зберегти або Зберегти та закрити 3.
Створити модуль
Кожен скрипт форми повинен бути модулем CommonJS, тобто він повинен містити такий рядок, як:
module.exports = {
// ...
}
Будь-який скрипт записується всередині конструкції:
module.exports = {
}
Взаємодія з формою
Скрипти мають подієво-орієнтовану структуру. Об'єкт, що експортується модулем, повинен містити обробники подій як властивості. Наприклад:
module.exports = {
loaded() {
console.log('Inside "loaded" event handler for the form!')
}
}
В одному скрипті може бути лише один module.exports. Якщо потрібно обробляти кілька подій, всі вони мають бути перераховані всередині одного module.exports через кому.
Events (Події)
Назва ключа в об'єкті, що експортується (не плутати з назвою функції), визначає на яку подію функція буде реагувати. Прив'язка події до функції базується на конвенції про іменування.
Кожен обробник подій може бути асинхронним чи повертати promise (не обов'язково, але може якщо потрібно, в такому випадку код буде очікувати завершення обробки події).
Іноді одна й та сама подія оброблюється декількома обробниками.
Наприклад: може бути конкретний обробник подій дій action_beforeExecute_action1 та загальний обробник подій action_beforeExecute. Це не звичайна ситуація, але якщо це відбудеться, загальний обробник подій буде виконаний перед конкретним обробником події.
Аргумент події
Кожен обробник подій приймає рівно один аргумент. За узгодженням, якщо обробник не використовує цей параметр, його можна не вказувати. Якщо ж обробник використовує аргумент події, назвіть його event.
module.exports = {
loaded(event) {
console.log(
'Inside "loaded" event handler for the form for document: %s',
event.document.getNativeAttribute('docNumber')
)
}
}
Ви можете "вимагати" службові сценарії, як і в будь-якому клієнтському модулі UB.
const UB = require('@unitybase/ub-pub')
module.exports = {
// ...
}
Якщо ви використовуєте зовнішні сценарії, ви несете відповідальність за підтримку сценарію форми при зміні зовнішнього модуля (та іноді вони можуть мати критичні зміни), використовуйте його відповідно.
Можливості аргументу події залежать від форми об'єкта. Наприклад: для форми задач BPM подія міститиме властивість task, а для документа Scriptum міститиме властивість document. Завдання, пов'язані зі Scriptum Document матимуть властивості task та document.
Це також точка налаштування: для великої інтеграції можна розробити додатковий інструмент доступу до об'єктів у вашій користувацькій моделі та зробити його видимим всередині скриптів форми.
Кожна така властивість називається засобом доступу до об'єкта даних, оскільки надає засоби для отримання чи встановлення значень для атрибутів відповідного об'єкту.
API об'єктів доступу до об'єктів:
-
getAttribute— значення, що повертає, користувацький атрибут, (з бібліотеки атрибутів, а не атрибут об'єкта).event.document.getAttribute('color') -
getNativeAttribute— значення, що повертається з атрибута, що налаштовується. "Native" позначає атрибут сутності, а не атрибут з бібліотеки атрибутів.event.document.getNativeAttribute('docNumber') -
setAttribute— змінити значення користувацького атрибута. Щоб очистити значення, встановітьnull.event.document.setAttribute(
'fullName',
event.document.getAttribute('firstName') + ' ' +
event.document.getAttribute('lastName')
) -
setNativeAttribute— змінити значення власного атрибута. Щоб очистити значення, встановітьnull. "Native" позначає атрибут сутності.
Деякі атрибути належать до словників. Їх значення – числа – ID записів, на які вони вказують. Якщо вам потрібно в скрипті значення зі словника, необхідно написати додатковий код, наприклад:
module.exports = {
async document_attributeChanged_organization(event) {
if (event.value) {
const orgCode = await UB.Repository('org_organization')
.attrs('code')
.where('ID', '=', event.value)
.selectScalar()
console.log('Selected organization with ID=%d, code=%s', event.value, orgCode)
} else {
console.log('Cleaned up "organization" attribute!')
}
}
}
Примітки до прикладу:
UB.Repository– це частина UnityBase API. Для отримання детальної інформації, див. документацію UnityBase.- Всі
UB.Repositoryметоди вибору є асинхронними, тому обробник подій також повинен бути асинхронним, і ми "чекатимемо" виклику "selectScalar". - В цьому прикладі показано, як робити запит словника. Синтаксис
event.document.getAttribute('organization.code')є неправильним та не повертає бажане значення.
Деякі засоби доступу до об'єкта можуть надавати додаткові методи. Наприклад: засіб доступу до об'єкта Scriptum Document надає такі методи:
-
Властивість
stateповертає код поточного стану документаif (event.document.state === 'draft') {
// It's a draft!
} -
userHasRole— функція, що перевіряє чи є у користувача документа роль (не UB), його код.if (event.document.userHasRole('author')) {
// It's the document author!
} -
getParticipants— функція, що повертає інформацію про ролі учасників документа. Значення функції, що повертається – масив об'єктів наступної структури:{
ID: 3000012,
unitType: 'ORG',
code: '0123123',
name: 'organization1',
isFixed: true
}
Застосування:
const participantsOfResponsibleRole = event.document.getParticipants('responsible')
-
removeParticipant— функція, видаляє будь-якого учасника з ролі документа. Першим аргументом функції являється код ролі, а другим повинен бути orgUnitID, наприклад: staffUnitID.event.document.removeParticipant('responsible', participantID) -
addParticipant— функція, додає учасника до ролі документа. Першим аргументом функції являється код ролі, а другим повинен бути orgUnitID, наприклад: staffUnitID.event.document.addParticipant('responsible', participantID) -
getCurrentUserRoles— функція, повертає ролі поточного користувача документа у вигляді масиву рядків. Повертає масив рядків, наприклад:['author', 'manager']const userRoles = event.document.getCurrentUserRoles()
Події глобальної форми
Події ініціалізації форми:
initedloaded
Це дві схожі події, єдина різниця між ними в тому, що initied викликаються лише при першому завантаженні даних форми, а loaded викликаються кожен раз при завантаженні форми (користувач може використовувати кнопку панелі інструментів Оновити для перезавантаження форми).
Події збереження форми:
beforeSavesaved
Всередині beforeSave можна скасувати збереження:
module.exports = {
beforeSave(event) {
if (!!event.document.getAttribute('hasCategory') &&
!event.document.getAttribute('categoryID')) {
// "categoryID" must be specified, if "hasCategory" toggle is toggled
event.cancelSave()
}
}
}
Події дії
Якщо подія "before" та "after":
action_beforeExecuteaction_beforeExecute_<actionCode>action_executedaction_executed_<actionCode>
Подія без суфікса коду дії буде викликатися для будь-якої події, а події зі суфіксом коду дії будуть викликатися лише для визначених дій.
Всі події мають додаткову властивість – actionCode. Що використовується для універсальних обробників подій дій (без коду дії в назві події).
У обробників "before" також є наступні додаткові методи:
cancelAction— дозволяє не викликати дію. Використовується для перевірок.skipStandardConfirmDialog— виклик цього методу означає "Не викликати жодного підтвердження перед дією". Використовується у випадках, коли всередині обробника викликається інтерфейс користувача та необхідно перекрити стандартний. Необхідно буде використовувати обробник асинхронних подій, що повертає повідомлення підтвердження після того, як користувач підтвердить дію в інтерфейсі користувача. Додайте ключове словоasync:
const customUI = require('path_to_my_custom_ui_module')
module.exports = {
async action_beforeExecute_approve(event) {
const confirmResult = await customUI.approveActionDialog()
if (!confirmResult) {
event.cancelAction()
}
}
}
Події атрибутів
Події атрибутів являються варіаціями самої загальної attributeChanged події:
<dataObject>_attributeChanged<dataObject>_nativeAttributeChanged<dataObject>_attributeChanged_<attributeCode><dataObject>_nativeAttributeChanged_<attributeCode>
Як видно з шаблону назви події, кожен варіант подій фільтрує події по об'єкту даних (наприклад: завдання чи документ), типу атрибута (налаштовуваний – з бібліотеки атрибутів чи власний – атрибут сутності) та код атрибута.
Сам об'єкт події містить такі властивості, що стосуються лише до подій attributeChange:
dataObjectattributeCodeattributeKindvalueoldValue– попереднє значення
Приклади використання
Спосіб 1: Використання одного обробника подій для всіх змін атрибутів документа:
module.exports = {
document_attributeChanged(event) {
if (event.attributeCode === 'firstName' || event.attributeCode === 'lastName') {
event.document.setAttribute(
'fullName',
event.document.getAttribute('firstName') + ' ' +
event.document.getAttribute('lastName')
)
}
}
}
Спосіб 2 (рекомендований): Використання окремих обробників подій для кожного атрибута:
module.exports = {
document_attributeChanged_firstName(event) {
event.document.setAttribute(
'fullName',
event.value + ' ' + event.document.getAttribute('lastName')
)
},
document_attributeChanged_lastName(event) {
event.document.setAttribute(
'fullName',
event.document.getAttribute('firstName') + ' ' + event.value
)
}
}
Зміна властивостей елементу форми
Скрипти форм дозволяють змінювати макет форми під час виконання:
- змінити властивість елементу (вузлів) форми
- змінити елемент форми (вузли), необхідні правила, що його підтримують (форми виконання документів та задач)
- змінити елементи форми (вузли) accessRules для форм, що підтримують його (наприклад: форми документів)
Об'єкт події має спеціальну властивість form, що містить спеціальний об'єкт з такими методами:
setNodePropertysetNodeRequiredRulesetNodeAccessRule
Всі вищезгадані методи приймають числовий nodeId як перший аргумент, key як другий та value – як третій.
module.exports = {
document_attributeChanged_country(event) {
// Do not allow changing 'city' (nodeId = 10), unless country value is set
event.form.setNodeProperty(10, 'disabled', !event.value)
}
}
Налагоджувальні скрипти
Використовуйте console.log, щоб переглядати повідомлення у консолі браузера (F12 → Console).
Є декілька способів налагодження скриптів форм. Всі вони вимагають створення документа та його випробування:
-
помістіть
debuggerоператор в скрипти, вони відкриють DevTools в браузері (клавіша F12) та спробуйте:module.exports = {
document_attributeChanged_firstName(event) {
debugger
event.document.setAttribute(
'fullName',
event.value + ' ' + event.document.getAttribute('lastName')
)
}
} -
використайте
console.debugmodule.exports = {
document_attributeChanged_firstName(event) {
console.debug('document_attributeChanged_firstName event: %j', event)
event.document.setAttribute(
'fullName',
event.value + ' ' + event.document.getAttribute('lastName')
)
}
} -
використайте контрольні точки: відкрийте DevTools в браузері, знайдіть сценарій, підказку – подивіться під
clientRequire/models/cust/public/designedForms, залежно від середовища назви моделі може бути не "cust".
При роботі з довідниками передаються та повертаються id значень довідника. Для переліку значень довідника з множинним вибором – використовуйте квадратні дужки (наприклад: [3000000001781, 3000000001748]).
Приклади скриптів див. у розділі Скрипти.
2.2.1.9. Доступ
Завдяки вкладці Доступ, ви можете надати доступ до даного типу документа групі користувачів, системній ролі, користувачу, організаціям, підрозділам, посадам або групі виконавців.
Щоб надати доступ до типу документа, виконайте наступні дії:
-
Перейдіть до вкладки Доступ 1, а потім виберіть кнопку Додати 2.
-
Заповніть поля 1, використовуючи підказки у таблиці нижче, а потім виберіть кнопку Додати 2.
| Назва поля | Опис |
|---|---|
| Доступ | Вибір типу доступу:
|
| Групи користувачів | Групи користувачів, що отримають доступ до документа. |
| Системні ролі | Системні ролі, що отримають доступ до документа. |
| Користувачі | Користувачі, що отримають доступ до документа. |
| Наші організації | Організації, що отримають доступ до документа. |
| Підрозділи | Підрозділи, що отримають доступ до документа. |
| Посади | Посади, що отримають доступ до документа. |
| Групи виконавців | Групи виконавців, що отримають доступ до документа. |
Якщо ви надасте доступ нашій організації чи підрозділу, то всі їхні дочірні елементи будуть автоматично мати доступ також. Щоб запобігти отриманню доступу дочірніми елементами, приберіть відповідний прапорець в колонці З дочірніми елементами.
- У панелі інструментів виберіть піктограму Зберегти , а потім продовжіть налаштування у вкладці Історія (див. розділ Історія).
2.2.1.10. Історія
Платформа фіксує події, що відбуваються з документом протягом його життєвого циклу.
2.2.1.10.1. Налаштувати події для історії
Ви можете налаштовувати які саме події, має фіксувати платформа в історії.
-
Перейдіть до вкладки Історія 1, а тоді увімкніть перемикачі тих завдань 2, які платформа має фіксувати в історії.
-
У панелі інструментів виберіть піктограму Зберегти або Зберегти та закрити .
2.2.1.10.2. Переглянути історію документа
Щоб переглянути історію подій для певного типу документа, виконайте наступні дії:
-
У панелі навігації, виберіть робочий стіл Документи 1, а потім виберіть ярлик Історія документа 2.
Вам відкриється історія усіх типів документів, до яких вам надано доступ. В реєстрі міститься інформація про документ, тип запису історії, дані про користувача, який виконував дію, дата та час дії, а також інформація про процес та завдання, якщо дія була виконана з процесу.
2.2.1.10.3. Відображати історію документа на його формі
-
Відкрийте тип документа, на формі якого потрібно відображати його історію.
-
Додайте на форму документа атрибут Історія документа.
Атрибут відображатиме події A серед тих, які ви увімкнули під час налаштування подій історії. Також атрибут відображатиме дату B та користувача, який виконав дію C.
2.2.2. Редагувати тип документа
-
У панелі навігації, виберіть робочий стіл Студія 1.
-
Виберіть ярлик Типи документів 2.
-
Знайдіть в таблиці запис типу документа, який бажаєте редагувати.
-
Див. розділ Редагувати запис.
2.2.3. Копіювати тип документа
-
У панелі навігації, виберіть робочий стіл Студія.
-
Виберіть ярлик Типи документів.
-
Знайдіть в таблиці запис типу документа, який бажаєте копіювати.
-
Див. розділ Копіювати запис.
2.2.4. Видалити тип документа
-
У панелі навігації, виберіть робочий стіл Студія.
-
Виберіть ярлик Типи документів.
-
Знайдіть в таблиці запис типу документа, який бажаєте видалити.
-
Див. розділ Видалити запис.
2.2.5. Змінити тип документа
Ви можете змінювати змінити тип уже створеного документа.
Приклад використання: У вас є тип документа Картка підрядника з понад 20 атрибутами, дані для яких отримуються через інтеграцію з зовнішніми системами (банківські системи, державні реєстри). На основі цих даних потрібно генерувати декілька менших та більш спеціалізованих документів: Рахунок-фактура, Акт виконаних робіт тощо. Завдяки новому функціоналу ви можете згенерувати документ на основі Картка підрядника, а тоді змінити його тип на Рахунок-фактура, щоб відображати лише потрібні атрибути, зберігаючи при цьому всі значення з оригінального документа.
2.2.5.1. Налаштувати зміну типу документа
Щоб налаштувати можливість змінювати тип документа, виконайте наступні етапи:
- Активуйте зміну типу документа для певного його стану.
- Надайте відповідний доступ користувачу, який здійснюватиме зміну. Переконайтесь, що користувач відповідає одному з наступних критеріїв:
2.2.5.1.1. Активувати зміну для стану документа
-
У панелі навігації, виберіть робочий стіл Студія 1.
-
Перейдіть у ярлик Типи документів 2.
-
Відкрийте бажаний тип документа 3.
-
Перейдіть у вкладку Стани.
-
Увімкніть перемикач стану 1, в якому користувач матиме змогу змінювати тип документа.
-
В налаштуваннях стану установіть прапорець Дозволяти зміну типу документа в цьому стані 2.
-
Виберіть піктограму 3, щоб зберегти зміни.
2.2.5.1.2. Активувати зміну для ролі документа
-
У панелі навігації, виберіть робочий стіл Студія 1.
-
Перейдіть у ярлик Типи документів 2.
-
Відкрийте бажаний тип документа 3.
-
Перейдіть у вкладку Ролі.
-
Увімкніть перемикач ролі 1, користувачі якої матимуть змогу змінювати тип документа.
-
В налаштуваннях ролі установіть прапорець Дозволити учасникам ролі змінювати тип документа 2.
-
Виберіть піктограму 3, щоб зберегти зміни.
2.2.5.1.3. Надати користувачу доступ до зміни
-
У панелі навігації, виберіть робочий стіл Студія 1.
-
Перейдіть у ярлик Типи документів 2.
-
Відкрийте бажаний тип документа 3.
-
Перейдіть у вкладку Доступ 1, а потім виберіть + Додати 2.
-
В полі Доступ 1 виберіть один з наступних варіантів доступу:
- Керування документами
- Перегляд документів
- Створення документів
- Делегування ролей документа
-
У відповідному полі вкажіть потрібну вам одиницю, якій бажаєте надати доступ 2.
-
Виберіть кнопку Додати 3.
2.2.5.2. Виконати зміну типу документа
Перед зміною типу документа зверніть увагу на наступні аспекти:
-
Якщо до поточного типу документа підʼєднаний активний бізнес-процес, перевірте його справність після зміни.
-
Якщо у цільовому типі документа відсутня роль користувача, він автоматично отримає статус спостерігача.
-
Зв'язки між документами зберігаються після зміни типу.
-
Відкрийте потрібний документ, тип якого бажаєте змінити.
-
У панелі навігації, виберіть робочий стіл Документи 1.
-
Перейдіть у ярлик Документи 2.
-
Відкрийте потрібний документ 3.
-
-
В правому верхньому меню виберіть піктограму .
-
Виберіть Змінити тип документа.
-
В полі Тип документа 1 виберіть цільовий тип документа.
Примітка:Якщо у списку ви не бачите потрібного вам типу документа, переконайтесь, що налаштували відповідний доступ у вкладці Доступ в налаштуваннях типу документа.
-
В полі Стан 2 виберіть стан, який документ матиме після зміни його типу. Якщо ви не вкажете стан, то документу буде присвоєно той стан обраного типу документа, який позначено як початковий.
-
Щоб зберегти дані всіх атрибутів у базі даних, встановіть прапорець Не очищати атрибути, відсутні у цільовому типі документа 1. Якщо новий тип документа не містить деяких атрибутів, їхні значення не відображаються в документі. Водночас вони залишаються в базі даних та стають доступними після додавання атрибутів у форму.
-
Виберіть кнопку Змінити тип 2.
2.2.5.3. Відображати зміну типу документа в аудиті
За замовчуванням зміна типу документа не відображається в аудиті документа. Проте ви можете змінити це за допомогою налаштувань. Для цього виконайте наступні дії в обох типах документа — поточному та цільовому:
-
У панелі навігації, виберіть робочий стіл Студія 1.
-
Перейдіть у ярлик Типи документів 2.
-
Відкрийте бажаний тип документа 3.
-
Перейдіть у вкладку Історія 1.
-
Увімкніть перемикач Зміна типу документа 2.
-
Виберіть піктограму 3, щоб зберегти зміни.
В атрибуті Історія документа зміна типу документа відображатиметься як зміна поточного документа, а не створення нового.
2.2.6. Відкрити тип документа
-
У панелі навігації, виберіть робочий стіл Студія 1.
-
Виберіть ярлик Типи документів 2.
-
В таблиці клацніть двічі на запис типу документа, який бажаєте відкрити.