ipr.ipr.approve
Scope:
iprКто может вызывать: Руководитель сотрудника карточки (
canManageEmployee, не сам сотрудник) либо привилегированный (admin/hr). Подробнее: Роли и права доступа
Согласовывает карточку в зависимости от текущего статуса:
SOGL_RES(результат на согласовании) →FINISHED, с той же логикой завершения, что в ipr.ipr.complete для руководителя;SOGL(план на согласовании) илиNEW(черновик) →WORK; если фактическая дата начала (startFact) пуста, она устанавливается в текущее время — как это делает бизнес-процесс карточки.
Любой другой статус — ошибка.
HTTP: POST
Побочные эффекты: Изменяет статус карточки; воздействие на бизнес-процесс (БП) карточки зависит от перехода:
SOGL_RES→FINISHED: останавливает БП (как кнопка завершения в интерфейсе), чтобы он не перезаписал фактическую дату завершения; фиксирует фактическую дату завершения и может запускать создание следующей программы.SOGL→WORK: продвигает БП его собственным событием «Согласовать» (от имени вызывающего).NEW→WORK: БП карточки в состоянии «Черновик», где события «Согласовать» нет, поэтому метод проводит БП так же, как интерфейс: сначала событие «Отправить на согласование», затем «Согласовать»; статус проверяется после каждого шага.
В обоих случаях БП сам переходит в «В работе», записывает WORK и startFact, отправляет свои уведомления; у карточки появляется кнопка «Завершение», кнопок «Отправить на согласование» и «Согласовать» не остаётся. Права проверяет само событие БП (руководитель карточки, группа HR, администраторы). Запасной путь: если у карточки нет живого БП, в нём нет штатных событий шаблона модуля (метод ищет их по точным именам «Отправить на согласование» и «Согласовать»; у изменённого шаблона события не отправляются), отправитель не прошёл права события или статус после событий не WORK — WORK записывается напрямую, БП не затрагивается; для изменённого шаблона в журнал событий пишется предупреждение IPR_REST_APPROVE_BP_NOT_STANDARD. Пустой startFact в обоих случаях заполняется текущим временем.
Параметры метода
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
id |
int |
да | ID карточки |
Возвращаемые данные
Полная карточка — та же форма, что у ipr.ipr.get, с обновлённым status.
Обработка ошибок
Справочник кодов: error-codes.md.
| Код | Описание |
|---|---|
UNAUTHORIZED |
Пользователь не авторизован |
VALIDATION_ERROR |
Статус карточки не допускает согласование (не NEW/SOGL/SOGL_RES) |
NOT_FOUND |
Карточка не найдена |
PERMISSION_DENIED |
Согласовывать может только руководитель сотрудника, HR или админ |
INTERNAL_ERROR |
Внутренняя ошибка сервера; не удалось остановить бизнес-процесс (статус к этому моменту уже изменён) |
Пример запроса (POST)
curl -X POST "https://{портал}/rest/{user_id}/{webhook_code}/ipr.ipr.approve.json"
-H "Content-Type: application/json"
-H "Accept: application/json"
--data '{"id": 4201}'
Пример ответа
{
"result": {
"result": {
"id": 4201,
"status": "FINISHED"
},
"total": null,
"next": null,
"error": null
}
}
См. также
- ipr.ipr.complete
- ipr.ipr.reject
- ipr.ipr.update — запись
startFact/finishFact - Коды ошибок