Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Postman collection


Важные замечания

  • В примерах используется аутентификация через мастер-токен, но допускается использовать User-Api-Token (токен администратора/кадровика, который получается под аватаркой в UI)
  • В заголовках имперсонализации используются внешние идентификаторы пользователя, но допускается использовать другой доступный идентификатор (HRlink, из указанной системы и пр.).

Выгрузить пользовательские справочники в HRlink

Создать задачу массовой синхронизации данных

ПеременнаяОписаниеОбязательность

tenantHost

Хост тенанта, на который должен быть выполнен запрос

да

clientId

ИД клиента HRlinkда

clientUserExternalId

Внешний ИД пользователя клиентада
Название пользовательского справочника-да
Описание пользовательского справочника-нет
Внешний ИД пользовательского справочника-да
colourSchema

Цвет ярлыка и текста в нем. Для отображения на UI HRlink

...

.

Значение ограничено комбинациями:

No Format
{ "background": "#E7E9ED", "text": "#576175" }, 
{ "background": "#E1E7FE", "text": "#242365" }, 
{ "background": "#D7F8FF", "text": "#1F4B56" }, 
{ "background": "#F6E9FD", "text": "#591E58" }, 
{ "background": "#FDEDD8", "text": "#753B2D" }, 
{ "background": "#E3FCE9", "text": "#254B32" }, 
{ "background": "#EFFCD0", "text": "#455622" }, 
{ "background": "#FCFACA", "text": "#6B4E22" }, 
{ "background": "#F7E4E0", "text": "#661C1B" }


да
Название элемента пользовательского справочника-да
Внешний идентификатор элемента пользовательского справочника-да
Внешний идентификатор руководителя элемента пользовательского справочника-нет
Внешний идентификатор родительского относительно текущего элемента пользовательского справочника-нет


Code Block
languagebash
titleПример запроса
curl --location 'https://{{tenantHost}}/api/v1/clients/{{clientId}}/bulkDataSyncTasks' \
--header 'Impersonated-User-Id: {{clientUserExternalId}}' \
--header 'Impersonated-User-Id-Type: EXTERNAL_ID' \
--data '{
    "type": "CUSTOM_STRUCTURES",
    "data": [
        {
            "name": "{{Название пользовательского справочника}}",
            "description": "{{Описание пользовательского справочника}}",
            "externalId": "{{Внешний ИД пользовательского справочника}}",
            "colourSchema": {
                "background": "#E7E9ED",
                "text": "#576175"
            },
            "elements": [
                {
                    "name": "{{ЭлементНазвание элемента пользовательского справочника}}",
                    "externalId": "{{Внешний идентификатор элемента пользовательского справочника}}",
                    "headManagerExternalId": "{{Внешний идентификатор руководителя элемента пользовательского справочника}}",
                    "parentExternalId": "{{Внешний идентификатор родительского относительно текущего элемента пользовательского справочника}}"
                }
            ]
        }
    ]
}'

...

No Format
{
    "result": true,
    "bulkDataSyncTask": {
        "id": "{{ИД задачи массовой синхронизации данных}}"
    }
}


Получить статус задачи массовой синхронизации

...

Code Block
languagebash
titleПример запроса
curl --location 'https://{{tenantHost}}/api/v1/clients/{{clientId}}/bulkDataSyncTasks/{{ИД задачи массовой синхронизации данных}}' \
--header 'Impersonated-User-Id: {{clientUserExternalId}}' \
--header 'Impersonated-User-Id-Type: EXTERNAL_ID' \
--header 'Master-Api-Token: {{masterApiToken}}'

...

No Format
{
    "result": true,
    "bulkDataSyncTask": {
        "id": "{{ИД задачи массовой синхронизации данных}}",
        "type": "CUSTOM_STRUCTURES",
        "state": "FINISHED",
        "counts": {
            "total": 1,
            "succeeded": 1,
            "failed": 0
        },
        "createdDate": "{{Дата создания задачи массовой синхронизации данных}}",
        "data": [
            {
                "id": "{{ИД справочника в HRlink}}",
                "externalId": "{{ИД справочника во внешней системе}}",
                "state": "SYNCED",
                "result": "UPDATED"
            }
        ]
    }
}


Присвоить сотрудникам

...

элементы пользовательских справочников

ПеременнаяОписаниеОбязательность

tenantHost

Хост тенанта, на который должен быть выполнен запрос

да

clientId

ИД клиента HRlinkда

clientUserExternalId

Внешний ИД пользователя клиентада
employeeExternalIdВнешний ИД сотрудника пользователя клиентада
legalEntityExternalIdВнешний ИД юрлица клиентанет
elementExternalIdВнешний ИД элемента пользовательского справочникада
customStructureExternalIdВнешний ИД пользовательского справочникада
parentExternalIdВнешний ИД элемента пользовательского справочника, который будет являться родительским текущему элементунет
headManagerExternalIdВнешний ИД сотрудника-руководителя, который будет являться руководителем элемента (для использования в связанной функциональности)нет


Code Block
languagebash
titleПример запроса
curl --location 'https://{{tenantHost}}/api/v1/clients/{{clientId}}/bulkDataSyncTasks' \
--header 'Impersonated-User-Id: {{clientUserExternalId}}' \
--header 'Impersonated-User-Id-Type: EXTERNAL_ID' \
--data '{
    "type": "EMPLOYEE_CUSTOM_STRUCTURE_ELEMENTS",
    "data": [
        {
            "externalId": "{{employeeExternalId}}",
            "legalEntityExternalId": "{{legalEntityExternalId}}",
            "customStructureElements": [
                {
                    "externalId": "{{elementExternalId}}",
                    "customStructureExternalId": "{{customStructureExternalId}}"
                }
            ]
        }
    ]
}'

Пример ответа

No Format
{
    "result": true,
    "bulkDataSyncTask": {
        "id": "{{ИД задачи массовой синхронизации данных}}"
    }
}

Получить статус задачи массовой синхронизации

Code Block
languagebash
titleПример запроса
curl --location 'https://{{tenantHost}}/api/v1/clients/{{clientId}}/bulkDataSyncTasks/{{ИД задачи массовой синхронизации данных}}' \
--header 'Impersonated-User-Id: {{clientUserExternalId}}' \
--header 'Impersonated-User-Id-Type: EXTERNAL_ID' \
--header 'Master-Api-Token: {{masterApiToken}}'

Пример ответа

No Format
{
    "result": true,
    "bulkDataSyncTask": {
        "id": "{{ИД задачи массовой синхронизации данных}}",
        "type": "CUSTOM_STRUCTURES",
        "state": "FINISHED",
        "counts": {
            "total": 1,
            "succeeded": 1,
            "failed": 0
        },
        "createdDate": "{{Дата создания задачи массовой синхронизации данных}}",
        "data": [
            {
                "id": "{{employeeId}}",
                "externalId": "{{employeeExternalId}}",
                "state": "SYNCED",
                "result": "UPDATED"
            }
        ]
    }
}