goalsmanagement.goalcard.start
Scope:
goalsmanagementКто может вызывать: Администратор портала или администратор модуля — как кнопка «Запустить» в разделе «Контроль процессов». Подробнее: Права доступа
Запустить процесс постановки целей для подразделения. Метод выполняет тот же путь, что и кнопка «Запустить» в разделе «Контроль процессов»: создаёт запуск процесса и карточки целей сотрудников отдела. Парный метод — goalsmanagement.goalcard.stop.
Пока процесс подразделения не запущен, карточки отдела доступны только для просмотра: goalsmanagement.goalcard.create и goalsmanagement.goalcard.approve возвращают VALIDATION_ERROR. Состояние запуска показывает поле started в goalsmanagement.process.getInfo.
HTTP: POST
Побочные эффекты: изменяет данные:
- создаёт или обновляет запуск процесса подразделения (
runId) со статусом «запущен» (1); при включённых параллельных процессах и дате старта в будущем — «отложенный» (D); - создаёт карточку целей в статусе «Черновик» каждому активному сотруднику отдела с учётом исключений привязки (
excludeEmployee,excludeHead, выборочное участие); - первый запуск / параллельные процессы: сотрудник, у которого уже есть активная карточка этого
runId, новую не получает (карточки других запусков не трогаются); - перезапуск после stop (и при выключенных параллельных процессах): предыдущие карточки отдела деактивируются; в новую черновую карточку переносятся собственные цели из утверждённой карточки; каскад «сверху» (из другого подразделения того же совместного запуска) переносится на карточку руководителя перезапущенного отдела; каскад от руководителя этого отдела на подчинённых в новой карте подчинённых не показывается, пока руководитель снова не утвердит карту;
- если у получателя каскада уже другой
runId(отделы перезапускали порознь), связь каскада при перезапуске карты каскадирующего снимается — повторное утверждение не создаст цель в чужом запуске; - отправляет каждому сотруднику, получившему карточку, уведомление о заполнении целей; для отложенного запуска уведомления придут в день старта;
- при выключенных параллельных процессах отмечает подразделение как запущенное (
statusProcess = "1", датыstartProcess/endProcess).
Повторный вызов для уже запущенного процесса ничего не меняет и возвращает текущее состояние с alreadyStarted: true. Исключение: если в отделе не осталось активных сотрудников, проверка сотрудников срабатывает раньше проверки запуска, и повторный вызов вернёт VALIDATION_ERROR, а не alreadyStarted. Состояние такого отдела смотрите в goalsmanagement.process.getInfo.
Тот же путь кода, что у кнопки «Запустить» в «Контроле процессов»: отдельной REST-логики перезапуска нет — сценарий «остановить → запустить» через goalsmanagement.goalcard.stop и этот метод.
Параметры метода
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
departmentId |
int |
да | ID отдела. Процесс должен быть привязан к отделу методом goalsmanagement.process.saveBinding |
processId |
int |
нет | Только при включённых параллельных процессах: какой процесс запустить. 0 или не передан — процесс из привязки отдела. При выключенных параллельных процессах игнорируется |
runId |
string |
нет | Только при включённых параллельных процессах: конкретный запуск (остановленный периодический). Предстоящий запуск (U) метод не активирует — его запустит агент в дату начала периода |
Возвращаемые данные
Ответ в конверте модуля: result.result — состояние запуска; result.error. Ключи total/next для не-list методов могут отсутствовать в сериализации, если не переданы.
| Поле | Тип | Описание |
|---|---|---|
departmentId |
int |
ID отдела |
processId |
int |
ID запущенного процесса |
runId |
string |
ID запуска процесса на отделе |
status |
string |
Статус запуска: 1 — запущен, D — отложен до даты старта, U — предстоящий период |
started |
bool |
true — карточки этого запуска можно заполнять и согласовывать: goalcard.create и goalcard.approve не отклонят их из-за состояния процесса |
alreadyStarted |
bool |
true — процесс уже был запущен до вызова, данные не менялись |
dateStart |
string |
Дата начала процесса, ДД.ММ.ГГГГ |
dateEnd |
string |
Дата окончания процесса, ДД.ММ.ГГГГ |
cards |
array |
Активные карточки целей этого запуска: id — ID карточки, employeeId — ID сотрудника |
Обработка ошибок
Справочник кодов: error-codes.md.
| Код | Описание |
|---|---|
UNAUTHORIZED |
Пользователь не авторизован |
ACCESS_DENIED |
Вызывающий не администратор портала и не администратор модуля |
VALIDATION_ERROR |
Не передан departmentId; к отделу не привязан процесс; в отделе нет активных сотрудников; до конца периода осталось меньше минимального числа дней (настройка модуля); запуск runId не найден или не активен. Текст ошибки — как в интерфейсе |
INTERNAL_ERROR |
Внутренняя ошибка сервера |
Пример запроса (POST)
curl -X POST "https://{портал}/rest/{user_id}/{webhook_code}/goalsmanagement.goalcard.start.json" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
--data '{
"departmentId": 12
}'
Пример ответа
{
"result": {
"result": {
"departmentId": 12,
"processId": 42,
"runId": "run_6f1c2a9e4b7d",
"status": "1",
"started": true,
"alreadyStarted": false,
"dateStart": "14.10.2026",
"dateEnd": "13.10.2027",
"cards": [
{ "id": 501, "employeeId": 15 },
{ "id": 502, "employeeId": 16 }
]
},
"error": null
}
}