Пошук сутностей у базі даних іншого реєстру

Розширення Search for entities in another registry data factory — делегат для пошуку сутностей у базі даних інших реєстрів на Платформі, який налаштовується за допомогою шаблону Search for entities from another registry data factory (registryDataFactoryConnectorSearchDelegate.json).

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

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

    search for entities another registry 1

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

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

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

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

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

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

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

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

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

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

          search for entities another registry 2

      • Розгорніть блок Resource та вкажіть ресурс, тобто назву ендпоінту для критерію пошуку (view) в API Фабрики даних реєстру, до якого необхідно звернутися.

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

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

        • У полі Variable Assignment Value вкажіть ресурс для критерію пошуку. Наприклад, edu-type-contains.

          search for entities another registry 3

      • Розгорніть блок Search variables та вкажіть змінні (параметри) пошуку, які необхідно передати у запиті.

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

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

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

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

          • Для поля Key вкажіть name, а для поля Value вкажіть значення параметра. Наприклад, ${submission('<formId>').formData.prop('name').value()}.

            У нашому випадку ми передаємо 1 параметр (змінну) пошуку name та його значення з відповідної форми (<formId>) за допомогою функції submission(). Значення параметрів пошуку можна також визначати напряму як константу. Наприклад, some-value-for-name-key.

            search for entities 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}).

          search for entities another registry 5

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

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

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

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

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

          search for entities another registry 6