Ця документація була автоматично перекладена штучним інтелектом.
Схвалення — це тип робочого процесу, спеціально розроблений для завдань, які ініціюються та обробляються людьми для визначення статусу відповідних даних. Зазвичай він використовується для автоматизації офісних процесів або інших завдань, що вимагають ручного прийняття рішень, наприклад, для створення та керування ручними робочими процесами для таких сценаріїв, як "заяви на відпустку", "схвалення відшкодування витрат" та "схвалення закупівлі сировини".
Плагін Схвалення надає спеціальний тип робочого процесу (тригер) "Схвалення (подія)" та спеціальний вузол "Схвалення" для цього процесу. У поєднанні з унікальними користувацькими колекціями та користувацькими блоками NocoBase ви можете швидко та гнучко створювати та керувати різноманітними сценаріями схвалення.
Під час створення робочого процесу оберіть тип "Схвалення", щоб створити робочий процес схвалення:

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

Потім, у формі для створення (або редагування) даних відповідної колекції, прив'яжіть цей робочий процес до кнопки "Надіслати":

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

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

Ви можете додати форму для інтерфейсу ініціатора на основі прив'язаної колекції, або додати описовий текст (Markdown) для підказок та вказівок. Форма є обов'язковою; інакше ініціатор не зможе виконувати жодних дій після входу в цей інтерфейс.
Після додавання блоку форми, як і в звичайному інтерфейсі конфігурації форми, ви можете додавати компоненти полів з відповідної колекції та розташовувати їх за потреби, щоб організувати вміст, який потрібно заповнити у формі:

Окрім кнопки прямого надсилання, ви також можете додати кнопку дії "Зберегти як чернетку" для підтримки процесу тимчасового зберігання:

У робочому процесі схвалення необхідно використовувати спеціальний вузол "Схвалення" для налаштування логіки операцій для схвалювачів, щоб обробляти (схвалювати, відхиляти або повертати) ініційоване схвалення. Вузол "Схвалення" може використовуватися лише в робочих процесах схвалення. Докладніше дивіться у Вузол схвалення.
Після налаштування та увімкнення робочого процесу схвалення ви можете прив'язати його до кнопки надсилання форми відповідної колекції, щоб користувачі могли ініціювати схвалення під час надсилання:

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





Щоб ініціювати з блоку даних, ви можете зробити виклик таким чином (на прикладі кнопки створення для колекції posts):
Тут параметр URL triggerWorkflows — це ключ робочого процесу; кілька ключів робочих процесів розділяються комами. Цей ключ можна отримати, навівши курсор миші на назву робочого процесу у верхній частині полотна робочого процесу:

Після успішного виклику буде запущено робочий процес схвалення для відповідної колекції posts.
Оскільки зовнішні виклики також повинні ґрунтуватися на ідентифікації користувача, при виклику через HTTP API, як і при запитах, що надсилаються зі звичайного інтерфейсу, необхідно надати інформацію для автентифікації, включаючи заголовок Authorization або параметр token (токен, отриманий при вході), а також заголовок X-Role (поточне ім'я ролі користувача).
Якщо вам потрібно запустити подію для даних, пов'язаних за принципом "один до одного" (зв'язок "один до багатьох" наразі не підтримується) у цій дії, ви можете використати ! у параметрі, щоб вказати дані тригера для поля зв'язку:
Після успішного виклику буде запущено подію схвалення для відповідної колекції categories.
При запуску події після дії через HTTP API також необхідно звернути увагу на статус увімкнення робочого процесу та відповідність конфігурації колекції; інакше виклик може бути невдалим або призвести до помилки.
Параметри
collectionName: Назва цільової колекції для ініціювання схвалення, обов'язковий.workflowId: ID робочого процесу, що використовується для ініціювання схвалення, обов'язковий.data: Поля запису колекції, створеного під час ініціювання схвалення, обов'язковий.status: Статус запису, створеного під час ініціювання схвалення, обов'язковий. Можливі значення:
0: Чернетка, означає збереження без надсилання на схвалення.1: Надіслати на схвалення, означає, що ініціатор надсилає запит на схвалення, переходячи до процесу схвалення.Коли ініційоване (або відкликане) схвалення знаходиться в стані чернетки, ви можете зберегти або надіслати його знову через наступний API:
Ініціатор може відкликати запис, що перебуває на схваленні, за допомогою наступного API:
Параметри
<approval id>: ID запису схвалення, який потрібно відкликати, обов'язковий.Після того, як робочий процес схвалення переходить до вузла схвалення, для поточного схвалювача створюється завдання. Схвалювач може виконати завдання схвалення через інтерфейс або за допомогою виклику HTTP API.
Завдання — це записи обробки схвалення. Ви можете отримати всі записи обробки схвалення поточного користувача за допомогою наступного API:
Тут approvalRecords є ресурсом колекції, тому ви можете використовувати загальні умови запиту, такі як filter, sort, pageSize та page.
Параметри
<record id>: ID запису, який потрібно схвалити, обов'язковий.status: Поле статусу процесу схвалення, 2 означає "Схвалити", -1 означає "Відхилити", обов'язковий.comment: Коментар до процесу схвалення, необов'язковий.data: Зміни до запису колекції, що знаходиться в поточному вузлі схвалення, після схвалення, необов'язковий (діє лише при схваленні).До версії v1.9.0 повернення використовувало той самий API, що й "Схвалити" та "Відхилити", де "status": 1 означало повернення.
Починаючи з версії v1.9.0, для повернення з'явився окремий API:
Параметри
<record id>: ID запису, який потрібно схвалити, обов'язковий.returnToNodeKey: Ключ цільового вузла для повернення, необов'язковий. Якщо у вузлі налаштовано діапазон вузлів, до яких можна повернутися, цей параметр можна використовувати для вказівки, до якого вузла повернутися. Якщо не налаштовано, цей параметр не потрібно передавати, і за замовчуванням він повернеться до початкової точки для повторного надсилання ініціатором.Параметри
<record id>: ID запису, який потрібно схвалити, обов'язковий.assignee: ID користувача, якому делегувати, обов'язковий.Параметри
<record id>: ID запису, який потрібно схвалити, обов'язковий.assignees: Список ID користувачів для додавання як підписантів, обов'язковий.order: Порядок доданого підписанта. -1 означає "до мене", 1 означає "після мене".