Обновить сотрудника по внешнему ID
PUT/api/v5/clients/:clientId/employeesByExternalId/:externalId
Описание метода
⚠️ Будьте осторожны!
Методы PUT перезаписывают запись целиком: любые непереданные поля считаются null и затирают данные в БД. Поэтому при обновлении указывайте все поля.
Обновляет данные сотрудника по идентификатору во внешней системе. Версия v5 поддерживает поле fullTimeEquivalent (ставка сотрудника, доля от полной занятости) в дополнение к полям предыдущих версий.
Валидации запроса
- Тело запроса задано.
- Клиент существует по заданному
clientId, не удалён, и к нему относится пользователь, выполняющий операцию. - Если в теле задан
legalEntityIdилиlegalEntityExternalId— юрлицо существует, относится к заданному клиенту, и сотрудник с указаннымexternalIdсуществует в этом юрлице. - Если юрлицо в теле не задано — у клиента существует ровно один сотрудник с указанным
externalId. - У пользователя клиента есть право
EMPLOYEES_UPDATEна уровне пользователя клиента или на уровне сотрудника. - У пользователя клиента есть доступ к отделу сотрудника (в том числе с учётом замещенийSubstitution Замещение — временная передача прав одного пользователя другому (например, на время отпуска). Настраивается для конкретных контекстов: документы, заявления, сотрудники, ЛНА.).
- У сотрудника есть пользователь клиента (активен или отключён) и сотрудник относится к заданному клиенту.
- Список тегов (
tags) задан корректно: имена нормализуются, проверяется длина и допустимые символы. - Если задан отдел (
departmentIdилиdepartmentExternalId) — отдел существует, относится к заданному клиенту; если отдел изменился относительно текущего отдела сотрудника, новый отдел активен. - Если задана должность (
positionIdилиpositionExternalId) — должность существует и относится к заданному клиенту. - У пользователя клиента есть права на юрлицо сотрудника (с учётом замещенийSubstitution Замещение — временная передача прав одного пользователя другому (например, на время отпуска). Настраивается для конкретных контекстов: документы, заявления, сотрудники, ЛНА.).
- Если задан новый
externalIdсотрудника — в рамках юрлица сотрудника нет другого сотрудника с таким же внешним IDexternalId Внешний идентификатор сущности — произвольная строка, задаваемая интегратором при создании. Связывает сущность HRlink с записью во внешней системе (1С, SAP и др.) без хранения маппинга UUID.. - Версия данных сотрудника (
version) актуальна. - У тенантаTenant Экземпляр системы HRlink на отдельном домене (например, company.hr-link.ru). Внутри одного тенанта может быть несколько пространств клиентов. есть активный пакет лицензий.
- Если
roleIdsзаданы и отличаются от текущих — пользователь имеет правоEMPLOYEES_UPDATEна уровне пользователя клиента (замещенияSubstitution Замещение — временная передача прав одного пользователя другому (например, на время отпуска). Настраивается для конкретных контекстов: документы, заявления, сотрудники, ЛНА. не учитываются). - Ни один
roleIdв списке не равен null. - Все указанные роли существуют у тенантаTenant Экземпляр системы HRlink на отдельном домене (например, company.hr-link.ru). Внутри одного тенанта может быть несколько пространств клиентов..
- После обновления у пользователя клиента не возникнет конфликта HR-ролей: нет сотрудников одновременно с ролями кадровика и делопроизводителя (роли с правом
HR). - Если добавляется роль кадровика или делопроизводителя — у тенантаTenant Экземпляр системы HRlink на отдельном домене (например, company.hr-link.ru). Внутри одного тенанта может быть несколько пространств клиентов. есть свободная лицензия кадровика.
- Поле
fullTimeEquivalent, если задано, содержит строку длиной от 1 до 10 символов.
Request
Responses
- 200
- 400
- 401
- 403
- 429
Успешная операция.
Ошибка при валидации данных запроса.
Запрос не аутенифицирован.
Для заданного пользователя доступ к ресурсу запрещен.
Превышен разрешенный лимит запросов за период.