mybpm!
Скачать в формате: PDF pdf DOCX word

IN Migration Kafka для Системных БО

Миграция через кафку работает для следующих системных БО:

  1. Пользователи
  2. Рабочая группа
  3. Департамент

Примеры использования:

Подготовка

  1. Создадим следующее БО с полями: Текстовое поле и Вложенное БО (Пользователи, Департамент, Рабочая группа):
  2. Выберем эти поля с вложенными системными БО в настройках IN Миграции:
  3. Создадим пользователя c любым email:

1. Создание инстанции БО с вложенным полем БО "Пользователи" с добавлением существующего пользователя по уникальному полю "email"

{
    "externalId": "bfsseVCjGC225bM@",
    "id": "dgL9~4keReK7Z1qi",
    "boCode": "BO",
    "boFields": [
        {
            "fieldCode": "Polzovateli",
            "toFieldCode": "email",
            "apiValue": "qwe@qwe.qwe"
        }
    ],
    "state": "ACTUAL"
}

2. Миграция инстанции БО вложенной инстанцией БО "Пользователи" который привязан рекурсивно

{
    "externalId": "cfsseVCjGC225bM@",
    "id": "cgL9~4keReK7Z1qi",
    "boCode": "BO",
    "boFields": [
        {
            "fieldCode": "Polzovateli",
            "boiInput": {
                "id": "~7TZ9zwn9P3Tj7Xx",
                "externalId": "fgL9~4keReK7Z1qi",
                "boCode": "Person", 
                "fields": [
                    {
                        "code": "name",
                        "apiValue": "Temirlan"
                    },
                    {
                        "code": "surname",
                        "apiValue": "Zhumagulov"
                    },
                    {
                        "code": "email",
                        "apiValue": "timaz@gmail.com"
                    },
                    {
                        "code": "status",
                        "apiValue": "ACTIVE"
                    },
                    {
                        "code": "accessLevel",
                        "apiValue": "ACCESS_ALLOWED"
                    }
                ],
                "state": "ACTUAL"
            }
        }
    ],
    "state": "ACTUAL"
}

Как видно на примере К БО полю "Пользователи" добавился пользователь, который был создан через миграцию:

3. Миграция инстанции рабочей группы

    {
        "externalId": "zfsseVCjGC225bM@",
        "id": "zgL9~4keReK7Z1qi",
        "boCode": "PersonGroup",
        "fields": [
            {
                "code": "name",
                "apiValue": "Моя группа #1"
            }
        ],
        "boFields": [
            {
                "fieldCode": "header",
                "toFieldCode": "email",
                "apiValue": "timaz@gmail.com"
            },
            {
                "fieldCode": "users",
                "toFieldCode": "email",
                "apiValue": "qwe@qwe.qwe"
            }
        ],
        "state": "ACTUAL"
    }

4. Миграция инстанции Департамента

    {
        "externalId": "hfsseVCjGC225bM@",
        "id": "hgL9~4keReK7Z1qi",
        "boCode": "Department",
        "fields": [
            {
                "code": "name",
                "apiValue": "Мой департамент"
            }
        ],
        "boFields": [
            {
                "fieldCode": "header",
                "toFieldCode": "email",
                "apiValue": "timaz@gmail.com"
            },
            {
                "fieldCode": "person",
                "toFieldCode": "email",
                "apiValue": "qwe@qwe.qwe"
            }
        ],
        "state": "ACTUAL"
    }

5. Миграция инстанции Департамента с родительским подразделением вложенным рекурсивно

    {
        "externalId": "kfsseVCjGC225bM@",
        "id": "kgL9~4keReK7Z1qi",
        "boCode": "Department",
        "fields": [
            {
                "code": "name",
                "apiValue": "Вложенный департамент"
            }
        ],
        "boFields": [
            {
                "fieldCode": "header",
                "toFieldCode": "email",
                "apiValue": "timaz@gmail.com"
            },
            {
                "fieldCode": "person",
                "toFieldCode": "email",
                "apiValue": "qwe@qwe.qwe"
            },
            {
                "fieldCode": "parent",
                "boiInput": {
                    "externalId": "pfsseVCjGC225bM@",
                    "id": "pgL9~4keReK7Z1qi",
                    "boCode": "Department",
                    "fields": [
                        {
                            "code": "name",
                            "apiValue": "Главный департамент"
                        }
                    ],
                    "boFields": [
                        {
                            "fieldCode": "header",
                            "toFieldCode": "email",
                            "apiValue": "alikhan@gmail.com"
                        },
                        {
                            "fieldCode": "person",
                            "toFieldCode": "email",
                            "apiValue": "yerkebulan@gmail.com"
                        }
                    ],
                    "state": "ACTUAL"
                }
            }
        ],
        "state": "ACTUAL"
    }

Однако пользователей с email-ами (alikhan@gmail.com, yerkebulan@gmail.com) в системе нет, поэтому мы их добавим через миграцию:

{
    "id": "~8TZ9zwn9P3Tj7Xx",
    "externalId": "~gL9~4keReK7Z1qi",
    "boCode": "Person", 
    "fields": [
        {
            "code": "name",
            "apiValue": "Alikhan"
        },
        {
            "code": "surname",
            "apiValue": "MyBPM"
        },
        {
            "code": "email",
            "apiValue": "alikhan@gmail.com"
        },
        {
            "code": "status",
            "apiValue": "ACTIVE"
        },
        {
            "code": "accessLevel",
            "apiValue": "ACCESS_ALLOWED"
        }
    ],
    "state": "ACTUAL"
}

После отправки сообщения, отправляем это сообщение для добавления пользователя (yerkebulan@gmail.com):

{
    "id": "~9TZ9zwn9P3Tj7Xx",
    "externalId": "~mL9~4keReK7Z1qi",
    "boCode": "Person", 
    "fields": [
        {
            "code": "name",
            "apiValue": "Yerkebulan"
        },
        {
            "code": "surname",
            "apiValue": "MyBPM"
        },
        {
            "code": "email",
            "apiValue": "yerkebulan@gmail.com"
        },
        {
            "code": "status",
            "apiValue": "ACTIVE"
        },
        {
            "code": "accessLevel",
            "apiValue": "ACCESS_ALLOWED"
        }
    ],
    "state": "ACTUAL"
}

Особенности