goalsmanagement.goalcard.changeStatus
Scope:
goalsmanagementКто может вызывать: Для утверждения: админ/руководитель карточки; иначе владелец/админ/руководитель. Подробнее: Права доступа
Сменить статус карточки целей (опционально с payload целей).
Без status и stageToChange метод работает как кнопка «Далее» в карточке: переводит на следующий статус по цепочке. status (xmlId) и stageToChange (ID enum) — способ сразу указать целевой статус; если переданы оба, берётся stageToChange. Если карточка уже на последнем статусе — ошибка перехода.
HTTP: POST
Побочные эффекты: GoalCardApi::changeStatus; может перезаписать цели
Параметры метода
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
cardId |
int |
да | ID карточки |
status |
string |
нет | Целевой статус, xmlId из goalcard.status.list. Если не передан вместе с stageToChange — переход «далее» |
stageToChange |
int |
нет | Целевой статус, ID enum. Если передан — имеет приоритет над status |
goals |
array |
нет | Массив целей для сохранения |
comment |
string |
нет | Комментарий |
ignoreGoals |
bool |
нет | Не перезаписывать цели при смене статуса |
Возвращаемые данные
Ответ в конверте модуля: result.result — карточка после смены статуса; result.error. Ключи total/next для не-list методов могут отсутствовать в сериализации, если не переданы.
Обработка ошибок
Справочник кодов: error-codes.md.
| Код | Описание |
|---|---|
UNAUTHORIZED |
Пользователь не авторизован |
CARD_NOT_FOUND |
Карточка целей/оценки не найдена |
INVALID_STATUS |
Переданный статус недопустим |
STATUS_TRANSITION_ERR |
Переход в указанный статус запрещён |
ACCESS_DENIED |
Нет прав на операцию (общий запрет) |
INTERNAL_ERROR |
Внутренняя ошибка сервера |
Пример запроса (POST)
Переход «далее» (без целевого статуса):
curl -X POST "https://{портал}/rest/{user_id}/{webhook_code}/goalsmanagement.goalcard.changeStatus.json" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
--data '{
"cardId": 501,
"ignoreGoals": true
}'
Сразу в указанный статус:
curl -X POST "https://{портал}/rest/{user_id}/{webhook_code}/goalsmanagement.goalcard.changeStatus.json" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
--data '{
"cardId": 501,
"status": "status_approval",
"comment": "Цели готовы к согласованию",
"ignoreGoals": true
}'
Пример ответа
{
"result": {
"result": {
"id": 501,
"needAction": true,
"name": "Карта целей: Иван Петров",
"active": "Y",
"employeeId": 15,
"headId": 8,
"directorId": 3,
"delegateId": 16,
"status": "status_approval",
"deadline": "2026-08-15",
"goals": [
{
"ID": 1001,
"GOALS_TABLE_GOAL_ID": 101,
"GOALS_TABLE_GOAL": "Увеличить выручку отдела",
"GOALS_TABLE_TASK": "Заключить договоры с 20 новыми клиентами",
"GOALS_TABLE_TYPE_GOAL": "Стратегическая",
"GOALS_TABLE_CRITERION": "Рост выручки на 15%",
"GOALS_TABLE_COMMENT_GENERAL": "Согласовано с руководителем",
"GOALS_TABLE_WEIGHT": 40,
"GOALS_TABLE_PROGRESS": 65
}
],
"totalProgress": 65,
"dateStart": "2026-01-01",
"dateEnd": "2026-12-31",
"position": "Менеджер по продажам",
"departmentId": 12,
"deadlineFilling": "2026-01-20",
"deadlineApproval": "2026-01-31",
"processDuration": "12_month",
"reportingPeriod": "3_month",
"statusProcess": "1",
"processId": 42
},
"error": null
}
}