Versions Compared

Key

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

Table of Contents

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

  • Пользовательская инструкция доступна по ссылке https://wiki.hr-link.ru/bin/view/Main/Administrator-/Spravochniki-/Pol%D1%8Czovatel%D1%8Cskie-spravochniki/
  • В примерах используется массовая синхронизация пользовательских справочников, но управление справочниками доступно и через единичные методы https://docs.myhrlink.ru/public/openapi/hr-link/#tag/directoriesCustomStructures
  • У администратора в UI HRlink есть возможность изменять загруженные справочники и их элементы. Изменения, которые внесет администратор в синхронизированных справочниках, будут потеряны при следующей выгрузке справочников через АПИ.
  • В примерах используется аутентификация через мастер-токен, но допускается использовать User-Api-Token (токен администратора/кадровика, который получается под аватаркой в UI)
  • В заголовках имперсонализации используются внешние идентификаторы пользователя, но допускается использовать другой доступный идентификатор (HRlink, из указанной системы и пр.).

Postman collection

View file
nameПользовательские справочники.postman_collection.json
height250

Выгрузить пользовательские справочники в 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Внешний ИД пользовательского справочникада


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"
            }
        ]
    }
}