Старт бізнес-процесу в іншому реєстрі

Розширення Start business process in another registry — делегат для запуску бізнес-процесів в інших реєстрах на Платформі, який налаштовується за допомогою розробленого однойменного шаблону Start business process in another registry (registryConnectorStartBpDelegate.json).

Для налаштування шаблону делегата в Camunda Modeler, необхідно виконати наступні кроки:
  1. Створіть Service Task.

  2. На панелі налаштувань справа натисніть кнопку Open Catalog, оберіть відповідний шаблон Start business process in another registry зі списку та натисніть Apply для підтвердження.

    start process another registry 1

  3. Сконфігуруйте обраний шаблон:

    Перед налаштуванням шаблону в Camunda Modeler переконайтеся, що папка із застосунком resourceselement-templates містить файл registryConnectorStartBpDelegate.json.
    • У полі Name введіть назву сервісної задачі, в рамках якої налаштовується делегат. Наприклад, Ініціювати бізнес-процес в іншому реєстрі на Платформі.

    • Перейдіть до секції Input Parameters (Вхідні параметри запита):

      • Розгорніть блок Target registry та вкажіть назву цільового реєстру для запуску в ньому бізнес-процесу.

        Назва реєстру має відповідати назві, вказаній для реєстру (namespace) в адміністративній панелі Control Plane.
        • Активуйте позначку Local Variable AssignmentON. Це дозволить створити локальну змінну для назви реєстру, в якому необхідно запустити бізнес-процес.

        • У полі Variable Assignment Type оберіть з випадного списку тип призначення змінної — String or Expression.

        • У полі Variable Assignment Value вкажіть назву реєстру із Control Plane, в якому необхідно запустити бізнес-процес. Наприклад, test3.

          У нашому випадку ми передаємо назву реєстру як константу, напряму, — test3.

          Можна також застосувати для цього функцію submission() і передати назву реєстру з користувацької форми як ${submission('<formId>').formData.prop('namespace').value()}, де '<formId>' треба замінити на ID користувацької задачі (форми) у бізнес-процесі, а 'namespace' — атрибут для середовища (простір імен) кластера, де такий реєстр розгорнуто.

          Приклад 1. Приклад для передачі назви реєстру через функцію submission()
          ${submission('childDataInput').formData.prop('namespace').value()}

          start process another registry 2

      • Розгорніть блок Business process definition key та вкажіть ідентифікатор бізнес-процесу, який необхідно запустити в цільовому реєстрі.

        ID бізнес-процесу є унікальним в рамках регламенту певного реєстру і відповідає параметру process_definition_id у каталозі bp-auth або параметру process_definition_key у bpms.
        • Активуйте позначку Local Variable AssignmentON. Це дозволить створити локальну змінну для ідентифікатора процесу у реєстрі, який необхідно запустити.

        • У полі Variable Assignment Type оберіть з випадного списку тип призначення змінної — String or Expression.

          У нашому випадку — це буде рядок, тобто String.
        • У полі Variable Assignment Value вкажіть ID процесу, який необхідно запустити. Наприклад, called-bp—​another-registry-test.

          start process another registry 3

      • Розгорніть блок Start variables та вкажіть стартові змінні для бізнес-процесу, який необхідно запустити в цільовому реєстрі.

        Для того, щоб цільовий процес запрацював, йому необхідно передати відповідні параметри запуску. Такі параметри необхідно передати як набір змінних для запуску бізнес-процесу — start variables.

        • Активуйте позначку Local Variable AssignmentON. Це дозволить створити локальні змінні для ініціювання процесу в іншому реєстрі.

        • У полі Variable Assignment Type оберіть з випадного списку тип призначення змінної — Map.

          Іншими словами, необхідно передати набір пар "ключ-значення".
        • У полі Variable Assignment Value вкажіть ключі та їх значення для змінних старту процесу, який необхідно запустити.

          Додайте два записи. Для цього дві натисніть Add Entry:

          • У першому рядку для поля Key вкажіть eduname, а для поля Value вкажіть значення параметра. Наприклад, ${submission('ChildDataInput').formData.prop('eduFullName').value()}.

          • У другому рядку для поля Key вкажіть formData, а для поля Value вкажіть значення параметра. Наприклад, ${submission('ChildDataInput').formData.toString()}.

            У нашому випадку ми передаємо 2 параметри (змінні) з відповідної форми (ChildDataInput) за допомогою функції submission().

            start process another registry 4

      • Розгорніть блок X-Access-Token та вкажіть введіть токен доступу до ресурсу:

        • Активуйте позначку Local Variable AssignmentON. Це дозволить створити локальну змінну для токена доступу.

        • У полі Variable Assignment Type оберіть з випадного списку тип призначення змінної — String or Expression.

        • У полі Variable Assignment Value введіть токен доступу. Наприклад, ${initiator().accessToken}.

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

          start process another registry 5

    • У секції Output Parameters (Вихідні параметри):

      • Розгорніть блок Result variable вкажіть назву змінної процесу, до якої необхідно записати результат (за замовчуванням — response):

        • Активуйте позначку Local Variable AssignmentON.

        • У полі Variable Assignment Type оберіть з випадного списку тип призначення змінної — String or Expression.

        • У полі Variable Assignment Value введіть назву результівної змінної (за замовчуванням — response).

          start process another registry 6