Завдання 4. Моделювання бізнес-процесу зі стартовою формою та залежними компонентами на формах

ЗМІСТ

1. Мета завдання

Виконання цього завдання має на меті:
  • Навчити моделювати бізнес-процес, який має стартову форму.

  • Навчити моделювати форми з залежними компонентами та компонентом Edit-grid.

3. Процес виконання завдання

3.1. Моделювання бізнес-процесу

На етапі моделювання бізнес-процесу необхідно створити та зберегти відповідну BPMN-діаграму.

Використовуйте файл add-personnel.bpmn із готовою схемою бізнес-процесу для прикладу.

3.1.1. Етапи моделювання бізнес-процесу

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

Важливо! Після проходження всіх етапів, не забудьте зберегти змодельовану схему бізнес-процесу до відповідної папки з регламентом реєстру

3.1.2. Створення пулу для бізнес-процесу

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

  • Відкрийте додаток Camunda Modeler та створіть нову діаграму BPMN. Для цього у лівому верхньому куті натисніть меню FileNew FileBPMN Diagram.

  • На панелі інструментів, зліва, знайдіть елемент Create pool/Participant, перетягніть його до панелі моделювання та заповніть у розділі General наступні поля відповідними значеннями:

    • у полі Name введіть Внесення даних в кадровий склад;

    • у полі Process id введіть add-personnel;

    • у полі Process name вкажіть Внесення даних в кадровий склад:

task 4 1 bp

3.1.3. Створення початкової події

Створіть початкову подію. Для цього виконайте наступні кроки:

  • На панелі інструментів, зліва, знайдіть елемент (коло) CreateStartEvent та перетягніть його до панелі моделювання.

  • На панелі налаштувань, справа, у розділі General заповніть наступні параметри відповідними значеннями:

    • у поле Id введіть start_event;

    • у поле Name введіть Початок процесу;

    • у поле Initiator введіть initiator;

task 4 2 bp

  • У розділі Forms у поле Form key введіть shared-search-lab:

task 4 3 bp

3.1.4. Створення скрипт задачі "Підготовка змінних для отримання запису"

Заповніть наступні поля:

  • Id - extractLabIdFromFormActivity;

  • Name - Підготовка зміних для отримання запису;

  • Script Format - groovy;

  • Script Type - InlineScript;

  • Result Variable - laboratoryId.

Script
submission('start_event').formData.prop('laboratory').prop('laboratoryId').value()

task 4 4 bp

3.1.5. Створення сервісної задачі "Пошук даних про лабораторію"

Далі необхідно створити сервісну задачу (Service Task) для пошуку даних про лабораторію. Для цього виконайте наступні кроки:

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

  • Натисніть Open Catalog, оберіть шаблон Read entity from data factory та натисніть Apply для підтвердження;

  • Заповніть наступні поля:

    • у поле Id введіть searchLabInDataFactoryActivity

    • у полі Name має бути вказано Пошук даних про лабораторію;

    • у полі Resource - laboratory;

    • у полі Resource id - ${laboratoryId};

    • у полі X-Access-Token - ${initiator().accessToken};

      Після відпрацювання першої користувацької задачі (User Task), намагайтеся використовувати функцію completer('<task_id>') для отримання даних користувача, замість initiator().

      Токен доступу береться з АБО ініціатора (наприклад, $initiator().accessToken}), АБО виконавця останньої користувацької задачі (наприклад, ${completer('taskDefinitionId').accessToken}).

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

      Детальніше про JUEL-функції ви можете переглянути на сторінці JUEL-функції у бізнес-процесах.

    • у полі Result Variable - labResponse:

task 4 5 bp

3.1.6. Створення скрипт задачі "Підготовка даних документа для показу (transient var)"

  • Заповніть наступні поля:

    • у поле Id введіть extractAddPersonnelFormPrepopulationActivity;

    • у полі Name має бути вказано Підготовка даних документа для показу (transient var);

    • Script Format - groovy;

    • Script Type - InlineScript;

Script
var name = labResponse.responseBody.prop('name').value()
var edrpou = labResponse.responseBody.prop('edrpou').value()
var cephData = ['edrpou':edrpou,'name':name]
execution.removeVariable('payload')
set_transient_variable('payload', S(cephData, 'application/json'))

task 4 6 bp

3.1.7. Створення події опрацювання помилки

  • Перетягніть Intermediate/Boundary event з панелі інструментів, та додайте його до Сервісної задачі “Пошук даних про лабораторію”.

    task 4 12 bp

  • Натисніть на іконку "ключа" та вкажіть тип події Error Boundary Event.

    task 4 13 bp

  • Створіть Gateway, який буде виконувати роль контрольної точки для перенаправлення у разі виникнення помилки.

    task 4 14 bp

  • Додайте логіку опрацювання помилки за допомогою з’єднання події Error Boundary Event та XOR-шлюзу Gateway. У результаті, при виникненні помилки на етапі “Пошуку даних про лабораторію”, користувач автоматично повернеться у контрольну точку, з якої заново почнеться виконання процесу.

    task 4 15 bp

Компоненти моделювання Doc, Дата Фабрика і всі пунктирні лінії носять виключно інформаційний характер. Приклад їх створення відсутній в інструкції.

3.1.8. Створення користувацької задачі "Додати дані про кадри"

  • Вкажіть тип задачі, натиснувши іконку ключа та обравши з меню пункт User Task.

  • натисніть Open Catalog, оберіть шаблон User Form та натисніть Apply для підтвердження;

  • заповніть наступні поля:

    • Id - addPersonnelFormActivity;

    • Name - Додати дані про кадри;

    • Form key - add-personnel-bp-add-personnel;

    • Assignee - ${initiator};

    • Form data pre-population - ${payload}:

task 4 7 bp

3.1.9. Створення користувацької задачі "Підписати дані КЕП"

  • Вкажіть тип задачі, натиснувши іконку ключа та обравши з меню пункт User Task.

  • натисніть Open Catalog, оберіть шаблон Officer Sign Task та натисніть Apply для підтвердження;

  • заповніть наступні поля:

    • Id - signPersonnelFormActivity;

    • Name - Підписати дані КЕП;

    • Form key - add-personnel-bp-sign-personnel;

    • Assignee - ${initiator};

    • Form data pre-population - ${submission('addPersonnelFormActivity').formData}:

task 4 8 bp

3.1.10. Створення скрипт задачі для підготовки даних для запису (transient var)

Заповніть наступні поля:

  • Id - convertSignFormDataToDataFactoryFormatActivity;

  • Name - Підготовка даних для запису (transient var);

  • Script Format - groovy;

  • Script Type - InlineScript;

Script
def personnelGrid = submission('signPersonnelFormActivity').formData.prop('personnelGrid').elements()
for (var personnel : personnelGrid) {
personnel.prop("laboratoryId", laboratoryId)
personnel.prop("staffStatusId", personnel.prop("staffStatus").prop("staffStatusId").value())
personnel.deleteProp("staffStatus")
if (personnel.hasProp('hygienistCertificateFile') && !personnel.prop('hygienistCertificateFile').elements().isEmpty()) {
def hygienistCertificateFile = personnel.prop('hygienistCertificateFile').elements().first()
} else {
personnel.prop('hygienistCertificateFile', null as String)
}
if (personnel.hasProp('ordersFile') && !personnel.prop('ordersFile').elements().isEmpty()) {
def ordersFile = personnel.prop('ordersFile').elements().first()
personnel.prop('ordersFile', ordersFile)
} else {
  personnel.prop('ordersFile', null as String)
}
if (personnel.hasProp('hireStaffFile') && !personnel.prop('hireStaffFile').elements().isEmpty()) {
def hireStaffFile = personnel.prop('hireStaffFile').elements().first()
} else {
personnel.prop('hireStaffFile', null as String)
}
}
execution.removeVariable('dataPayload')
set_transient_variable('dataPayload', S(personnelGrid.toString()))

task 4 9 bp

3.1.11. Створення сервісної задачі "Зберегти дані в Дата-фабрику".

  • Створіть нову сервісну задачу "Зберегти дані в Дата-фабрику", натиснувши іконку ключа та обравши з меню пункт Service Task.

  • Натисніть Open Catalog, оберіть шаблон Batch creation of entities in data factory та натисніть Apply для підтвердження;

  • Заповніть поля:

    • Id - createStaffInDataFactoryActivity;

    • Name - Зберегти дані в Дата фабрику;

    • Resource - staff;

    • Payload - ${dataPayload};

    • X-Access-Token - ${completer('signPersonnelFormActivity').accessToken};

      Після відпрацювання першої користувацької задачі (User Task), намагайтеся використовувати функцію completer('<task_id>') для отримання даних користувача, замість initiator().

      Токен доступу береться з АБО ініціатора (наприклад, $initiator().accessToken}), АБО виконавця останньої користувацької задачі (наприклад, ${completer('taskDefinitionId').accessToken}).

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

      Детальніше про JUEL-функції ви можете переглянути на сторінці JUEL-функції у бізнес-процесах.

    • X-Digital-Signature source - ${sign_submission('signPersonnelFormActivity').signatureDocumentId};

    • Result Variable - response:

task 4 10 bp

3.1.12. Створення сервісної задачі "Встановити результат БП".

  • Створіть нову сервісну задачу "Встановити результат БП", натиснувши іконку ключа та обравши з меню пункт Service Task.

  • Натисніть Open Catalog, оберіть шаблон Define business process status та натисніть Apply для підтвердження;

  • Заповніть поля:

    • Id - defineBusinessProcessStatusActivity;

    • Name - Результат виконання "Дані про кадровий склад внесені";

    • Status - Дані про кадровий склад внесені:

task 4 11 bp

3.1.13. Створення кінцевої події

Заповніть кінцеву подію:

Name - Дані внесені.

3.2. Моделювання форм

На етапі моделювання форм необхідно створити та прив’язати JSON-форми до попередньо змодельованих задач в рамках бізнес-процесу.

Форми прив’язуються до бізнес-процесів за службовою назвою.

Використовуйте файли add-personnel-bp-add-personnel.json, add-personnel-bp-sign-personnel.json та shared-search-lab.json зі змодельованими формами для прикладу.

3.2.1. Створення форми для пошуку даних лабораторії

Рекомендуємо виконувати усі налаштування, використовуючи браузер Google Chrome для стабільної роботи усіх сервісів.

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

  1. Увійдіть до застосунку Кабінет адміністратора регламентів.

    admin portal form modeling step 1
  2. За замовчуванням після авторизації відбувається перехід до майстер-версії регламенту, де відображаються форми, які вже розгорнуть у регламенті, наразі він буде пустим. В майстер-версії наявні форми доступні лише для перегляду без можливості їх редагування. Щоб мати можливість створювати та редагувати форми необхідно створити новий запит (версію кандидат на зміни).

    task 1 16 forms

  3. У полі Назва версії вкажіть, наприклад, "завдання-4", а в полі Опис зміни “Створення форм для Завдання 4”. Після зазначення назви та опису натисніть Створити.

    task 4 32 forms

    Після створення буде автоматично виконано перехід до версії-кандидата у редакторі, де вже можливо буде створювати та редагувати форми.

  4. Перейдіть до розділу UI-форми. Щоб створити нову форму для бізнес-процесу, натисніть кнопку Створити нову форму.

    task 1 18 forms

  5. У вікні, що відкрилося, заповніть поля:

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

    • Заповніть поле Службова назва форми значенням shared-search-lab.

    task 4 35 forms

  6. Перейдіть на вкладку Конструктор.

    Рекомендовано використовувати компоненти із розділу “Оновлені”.

  7. З панелі зліва перетягніть компонент Text Field до панелі моделювання та виконайте наступні налаштування.

    task 4 36 forms

    • на вкладці Display заповніть поле Label значенням ЄДРПОУ:

      task 4 37 forms

    • на вкладці API заповніть поле Property Name значенням edrpou:

      task 4 38 forms

      Поле Property Name в обов’язковому порядку заповнюється лише латиницею. Значення за замовчуванням ідентичне до значення Label, в нашому прикладі вказане значення ЄДРПОУ кирилицею, тобто його необхідно змінити.

    • на вкладці Validation встановіть прапорець у полі Required, щоб поле було обов’язковим до заповнення. Натисніть кнопку Save для збереження змін.

      task 4 39 forms

  8. З панелі зліва перетягніть компонент Select до панелі моделювання та виконайте наступні налаштування:

    • на вкладці Display заповніть поле Label значенням Назва лабораторії:

      task 4 40 forms

    • на вкладці Data в полі Data Source Type оберіть значення URL.

      • поле Data Source URL заповніть значенням:

        /api/data-factory/laboratory-start-with-edrpou-contains-name

        Це посилання на ендпоінт попередньо створеного search condition laboratory_start_with_edrpou_contains_name у моделі даних.

      • встановіть прапорець (checkbox) для поля Lazy Load Data, щоб допустимі значення для поточного select оновлювалися кожного разу, коли до нього відбувається звернення.

        task 4 41 forms

      • поле Value Property заповніть значенням laboratoryId;

      • поле Filter Query заповніть значенням edrpou={{data.edrpou}};

      • поле Limit заповніть значенням 100. Це дозволяє обмежити пошук лише першими 100 знайденими запитами. При правильному використанні такі обмеження допоможуть знизити навантаження на системи реєстру;

      • поле Item Template заповніть значенням <span>{{ item.name }}</span>;

        Значення {{ item.name }} містить:

        • item – поточний об’єкт зі списку знайдених лабораторій;

        • name – поле цього об’єкта.

        У цьому полі вказується, що буде показано у самому select-запиті. Тобто ендпоінт /api/data-factory/laboratory-start-with-edrpou-contains-name поверне масив знайдених item об’єктів такого виду:

        {
            "laboratoryId": "466ad903-7bd0-4078-9f80-972ed66780a8",
            "edrpou": "12345678",
            "name": "Lab Name"
        }

        Щоб показувати у випадному списку select-запита назви лабораторій, треба звернутися до поля name(<span>{{ item.name }}</span>).

        Якщо треба показувати у випадному списку, наприклад, edrpou кожної знайденої лабораторії, то за аналогією потрібно вказати {{ item.edrpou }}.

      • у полі Refresh Options On оберіть значення ЄДРПОУ. Цей select-запит автоматично стане залежним від попереднього поля ЄДРПОУ і буде скидати обране перед цим значення при зміні значення вказаному у полі ЄДРПОУ;

        Детальну інформацію про функцію Refresh Options On можна переглянути за посиланням:

    • на вкладці Validation встановіть прапорець у полі Required, щоб поле було обов’язковим до заповнення.

      task 4 43 forms

    • на вкладці API заповніть поле Property Name значенням laboratory. Натисніть кнопку Save для збереження змін.

      task 4 44 forms

3.2.2. Моделювання однакових сутностей на формах за допомогою Edit Grid

3.2.2.1. Створення форми для внесення даних про нові кадри
  1. Перейдіть до розділу UI-форми. Щоб створити нову форму для бізнес-процесу, натисніть кнопку Створити нову форму.

    task 1 18 forms

  2. У вікні, що відкрилося, заповніть поля:

    • У вікні, що відкрилося, вкажіть назву відповідної користувацької задачі — Додати дані про кадри в полі Бізнес-назва форми.

    • Заповніть поле Службова назва форми значенням add-personnel-bp-add-personnel.

    task 4 33 forms

  3. Перейдіть на вкладку Конструктор.

    Рекомендовано використовувати компоненти із розділу “Оновлені”.

За допомогою Edit Grid на формі можливо додавати та редагувати однотипні дані.

  • З панелі зліва перетягніть компонент Edit Grid до панелі моделювання та виконайте наступні налаштування:

    • на вкладці Display заповніть поле Label значенням Додати інформацію про кадри:

      task 4 12 forms

    • на вкладці Templates заповніть поля:

      • Add another text - Додати;

      • Save Row Text - Внести запис;

      • Remove Row Text - Видалити запис:

        task 4 13 forms

    • на вкладці API заповніть поле Property Name значенням personnelGrid;

    • натисніть кнопку Save для збереження змін:

      task 4 14 forms

  • Наповніть Edit Grid компонентами: з панелі зліва перетягніть компонент Textfield в поле компонента Edit Grid та виконайте наступні налаштування:

    • на вкладці Display заповніть поле Label значенням Прізвище, ім’я, по батькові:

      task 4 15 forms

    • на вкладці API заповніть поле Property Name значенням fullName;

    • натисніть кнопку Save для збереження змін:

      task 4 16 forms

  • З панелі зліва перетягніть компонент Checkbox в поле компонента Edit Grid та виконайте наступні налаштування:

    • на вкладці Display заповніть поле Label значенням Лікар з гігієни праці:

      task 4 17 forms

    • на вкладці API заповніть поле Property Name значенням hygienistFlag;

    • натисніть кнопку Save для збереження змін:

      task 4 18 forms

3.2.2.2. Налаштування відображення компонента залежно від значення іншого компонента
  • З панелі зліва перетягніть компонент Date/Time в поле компонента Edit Grid та виконайте наступні налаштування для отримання інформації з довідника:

    • на вкладці Display заповніть поле Label значенням Дата проходження спеціалізації та поле Format значенням yyyy-MM-dd::

      task 4 45 forms

    • на вкладці Time зніміть прапорець Enable Time Input, в контексті поточного завдання точний час нам не потрібен:

      task 4 46 forms

    • на вкладці API заповніть поле Property Name значенням specializationDate:

      task 4 47 forms

    • на вкладці Conditional заповніть поля:

      • This component should Display: — True;

      • When the form component: — Лікар з гігієни праці (personnel.Grid.hygienistFlag);

      • Has the value: — true.

  • Це означає, що компонент буде показано тільки при значенні компонента Лікар з гігієни праці (personnel.Grid.hygienistFlag) — true:

    task 4 48 forms

    • натисніть кнопку Save для збереження змін.

    • Аналогічно до попереднього пункту перетягніть та налаштуйте компоненти на формі:

      • Компонент - Radio:

        • на вкладці Display заповніть поле Label значенням Трудові відносини;

        • на вкладці Data - Values заповніть поле Label значенням Основне місце роботи, а поле Value - true;

        • на вкладці Data - Values заповніть поле Label значенням Сумісництво, а поле Value - false;

        • на вкладці API заповніть поле Property Name значенням fullTimeFlag;

      • Компонент - Number:

        • на вкладці Display заповніть поле Label значенням Ставка;

        • на вкладці Validation заповніть поле Minimum value значенням 1;

        • на вкладці API заповніть поле Property Name значенням salary;

      • Компонент - Day:

        • на вкладці Display заповніть поле Label значенням Дата зміни статусу;

        • на вкладці API заповніть поле Property Name значенням dismissalDate.

З панелі зліва перетягніть компонент Select в поле компонента Edit Grid та налаштуйте компонент для отримання інформації з довідника:

  • на вкладці Display заповніть поле Label значенням ` Статус співробітника`;

  • на вкладці Data заповніть поля:

    • Data Source Type — URL;

    • Data Source URL — /api/data-factory/staff-contains-name, де

      • /api/data-factory/ — вказує шлях до дата-фабрики

      • staff-contains-name — назва search condition для отримання даних з довідника областей, який був змодельований та доданий у репозиторій;

    • Value Property - staffStatusId;

    • Item Template - <span>{{ item.name }}</span>, де name - назва параметра, що повертає search condition та буде показаний на формі:

      task 4 22 forms

      task 4 23 forms

  • на вкладці API заповніть поле Property Name значенням staffStatus;

  • натисніть кнопку Save для збереження змін.

З панелі зліва перетягніть компонент Checkbox в поле компонента Edit Grid та налаштуте компонент:

  • на вкладці Display заповніть поле Label значенням Строковий трудовий договір;

  • на вкладці API заповніть поле Property Name значенням fixedTermContractFlag;

  • натисніть кнопку Save для збереження змін:

    task 4 24 forms

    task 4 25 forms

З панелі зліва перетягніть компонент Day в поле компонента Edit Grid та виконайте наступні налаштування: * на вкладці *Display заповніть поле Label значенням Дата закінчення строкового договору:

task 4 26 forms

  • на вкладці API заповніть поле Property Name значенням contractEndDate:

    task 4 27 forms

  • на вкладці Conditional заповніть поля:

    • This component should Display: - True;

    • When the form component: - Строковий трудовий договір (personnelGrid.fixedTermContractFlag);

    • Has the value: - true.

      • Це означає, що компонент буде показаний лише при значенні компонента Строковий трудовий договір (personnelGrid.fixedTermContractFlag) - true.

  • натисніть кнопку Save для збереження змін:

    task 4 28 forms

    • З панелі зліва перетягніть компоненти Textfield ПОЗА межами компонента Edit Grid та виконайте наступні налаштування:

  • Компонент 1 - Textfield:

    • на вкладці Display заповніть:

      • поле Label значенням Повна назва лабораторії або ПІБ ФОП;

      • чекбокс Disabled - true

    • на вкладці API заповніть поле Property Name значенням name;

  • Компонент 2 - Textfield:

    • на вкладці Display заповніть:

      • поле Label значенням Код ЄДРПОУ або РНОКПП;

      • чекбокс Disabled - true

    • на вкладці API заповніть поле Property Name значенням edrpou;

  • Ці поля будуть заповнені даними з бізнес-процесу.

    • Збережіть форму, натиснувши кнопку Створити форму у правому верхньому куті:

      task 4 29 forms

      Щоб обрати поля, які необхідно показувати у вигляді стовпчиків на компоненті Edit Grid, у кожного поля в налаштуваннях на вкладці Display внизу екрану розміщено прапорець (checkbox) Table View, встановивши його, поле показано в окремому стовпчику, якщо вимкнено — ні.

      task 4 50 forms

      task 4 49 forms

3.2.3. Створення форми для підпису даних

Після завершення попереднього кроку та створення форми для внесення даних, створіть ще одну форму для підпису даних.

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

task 4 34 forms

Налаштуйте параметри форми:

  • введіть назву користувацької задачі Підписати відомості про кадровий склад в полі Бізнес-назва форми;

  • заповніть поле Службова назва форми значенням add-personnel-bp-sign-personnel;

  • В усіх компонентах:

    • на вкладці Display встановіть прапорець для параметра Disabled;

    • Натисніть кнопку Save для збереження змін.

3.2.4. Збереження змодельованих форм бізнес-процесу

  • Збережіть форму, натиснувши кнопку Створити форму у правому верхньому куті.

  • Завантажте форми, натиснувши іконку завантаження, та помістіть їх до регламентної папки forms проєкту в локальному Gerrit-репозиторії. task 4 31 forms

3.3. Моделювання доступу до бізнес-процесу

На цьому етапі необхідно надати доступ до бізнес-процесу в Кабінеті посадової особи для стандартної ролі officer .

Параметри доступу налаштовуються у конфігураційному файлі, що має назву officer.yml із директорії bp-auth.

Відредагуйте файл bp-auth/officer.yml додавши наступні параметри:

Приклад. Налаштування доступу до бізнес-процесу в Кабінеті посадової особи
authorization:
  realm: 'officer'
  process_definitions:
    - process_definition_id: 'add-lab-test'
      process_name: 'Створення лабораторії'
      process_description: 'Регламент для створення лабораторій'
      roles:
        - officer
    - process_definition_id: 'add-lab'
      process_name: 'Створення лабораторії'
      process_description: 'Регламент для створення лабораторій'
      roles:
        - officer
    - process_definition_id: 'add-personnel'
      process_name: 'Внесення даних в кадровий склад'
      process_description: 'Внесення даних в кадровий склад'
      roles:
        - officer

3.3.1. Збереження файлу з налаштування доступу

Збережіть файл officer.yml до регламентної папки bp-auth проєкту в локальному Gerrit-репозиторії.

4. Завантаження файлів регламенту до віддаленого репозиторію Gerrit

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

Для цього виконайте кроки з інструкції Процес розгортання регламенту в Gerrit.