goalsmanagement.goalitem.upsert

Scope: goalsmanagement

Кто может вызывать: Сотрудник (своя карточка) / руководитель / админ. Подробнее: Права доступа

Сохранить/обновить набор целей карточки (WAF-безопасное имя вместо *.save)

HTTP: POST

Побочные эффекты: перезаписывает цели карточки

Параметры метода

Параметр Тип Обяз. Описание
cardId int да ID карточки целей
goals array да Полный набор целей карточки. Свои строки с id, которых нет в массиве, удаляются (кроме ещё невидимых pending-каскадов)

Поля элемента goals[]

Поле Тип Обяз. Описание
id int нет HL-id строки. Нет — создать, есть — обновить. Чужой idVALIDATION_ERROR
type_goal int да Числовой id из goal.type.list, не xmlId. Без id и без типа строка пропускается. У подцелей/внешних каскадных строк валидация не проверяет
goal int условно ID цели каталога того же типа. Обязателен для strategy (1-й уровень). Одних task/weight недостаточно
task string условно Текст задачи. Обязателен для любого не-strategy типа (обычно operational/informational)
weight number да Число 0–100 в payload (валидация без подстановки из HL). Плюс min/step из каталога/настроек. Сумма 1-го уровня ≈ 100. У подцелей не проверяется
criterion string условно Критерий. Обязателен и должен быть числом, если цель количественная
commentGeneral string нет Комментарий
file object нет { "id": <fileId> }
depend array нет ID отделов
related array нет Связи { "id", "entityType": "task"|"project" }
cascadeOnEmployees array нет ID сотрудников для каскада
cascadeOnBosses array нет ID руководителей для каскада
quantitative bool нет Количественная цель
allowToConvert bool нет Разрешить перевод в количественную
isSubgoal bool нет Подцель (не входит в сумму весов)
part number нет Доля подцели
relatedCardId int нет Карточка, на которой живёт строка
cascadeParentGoal int нет Родительская цель каскада

Возвращаемые данные

Ответ в конверте модуля: result.result — результат сохранения / карточка; result.error. Ключи total/next для не-list методов могут отсутствовать в сериализации, если не переданы.

Обработка ошибок

Справочник кодов: error-codes.md.

Код Описание
UNAUTHORIZED Пользователь не авторизован
VALIDATION_ERROR Некорректные или неполные параметры
ACCESS_DENIED Нет прав на операцию (общий запрет)
INTERNAL_ERROR Внутренняя ошибка сервера

Пример запроса (POST)

curl -X POST "https://{портал}/rest/{user_id}/{webhook_code}/goalsmanagement.goalitem.upsert.json" \
          -H "Content-Type: application/json" \
          -H "Accept: application/json" \
          --data '{
          "cardId": 501,
          "goals": [
            {
              "id": 1001,
              "goal": 1049,
              "type_goal": 62,
              "criterion": "Рост выручки на 15%",
              "commentGeneral": "Согласовано с руководителем",
              "weight": 100
            }
          ]
        }'
        

Пример ответа

{
          "result": {
            "result": {
              "cardId": 501,
              "saved": true
            },
            "error": null
          }
        }
        

См. также

Предыдущая
Следующая