goalsmanagement.goal.add

Scope: goalsmanagement

Кто может вызывать: ModuleUser::canAddGoal(). Подробнее: Права доступа

Создать элемент каталога целей

HTTP: POST

Побочные эффекты: создаёт элемент ИБ целей

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

Параметр Тип Обяз. Описание
name string да Название
typeId int нет Goal type enum ID (also type/typeGoals)
active bool нет Активность
sort int нет Sort (code)
weightGoals mixed нет Weight (code)
canCascade `bool string` нет
weightStep mixed нет Шаг веса: id значения списка, xmlId или число. Допустимо: 0.01, 0.1, 1, 2, 5, 10, 20, 25, 50 (значение 100 для веса не принимается)
maxPercent mixed нет Max percent (code)
percentStep mixed нет Шаг процента выполнения: id значения списка, xmlId (n5) или число. Допустимо: 0.01, 0.1, 1, 2, 5, 10, 20, 25, 50, 100. Шаг 100 — цель «да/нет» (0% / 100%)
color string нет Color (code)
hintText string нет Hint (code)
hintTextPercent string нет Percent hint (code)
access array нет Access list (code)
progressFormulaMode string|int нет Режим расчёта % выполнения для количественных целей: growth (факт / план, по умолчанию), decline или custom; также принимается id значения. См. «Формула расчёта»
progressFormulaExpression string нет Формула для режима custom (до 500 символов, переменные plan и fact). Обязательна при custom, в остальных режимах не используется

Формула расчёта выполнения

Для количественных целей процент выполнения считается как результат формулы × 100 с учётом maxPercent и percentStep.

Режим Формула
growth fact / plan (по умолчанию, поведение до появления формул)
decline plan / fact (для показателей, которые нужно снижать)
custom выражение из progressFormulaExpression

В выражении доступны переменные plan и fact, арифметика + - * /, скобки, сравнения и функции MIN, MAX, ABS, ROUND. Пример: (plan + (plan - fact)) / plan.

Если режим custom, а формула пустая или с синтаксической ошибкой, метод возвращает VALIDATION_ERROR с текстом ошибки. Формулу можно задать любой цели, но на расчёт она влияет только у количественных.

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

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

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

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

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

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

curl -X POST "https://{портал}/rest/{user_id}/{webhook_code}/goalsmanagement.goal.add.json" \
          -H "Content-Type: application/json" \
          -H "Accept: application/json" \
          --data '{
          "name": "Увеличить выручку отдела",
          "typeId": 2,
          "active": true,
          "sort": 100,
          "weightGoals": 40,
          "canCascade": true,
          "weightStep": 5,
          "maxPercent": 120,
          "percentStep": 5,
          "color": "#2FC6F6",
          "progressFormulaMode": "custom",
          "progressFormulaExpression": "(plan + (plan - fact)) / plan"
        }'
        

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

{
          "result": {
            "result": {
              "id": 101,
              "active": true,
              "name": "Увеличить выручку отдела",
              "type": "strategy",
              "weightGoals": 40,
              "weightStep": 5,
              "maxPercent": 120,
              "percentStep": 5,
              "sort": 100,
              "canCascade": true,
              "color": "#2FC6F6",
              "progressFormulaMode": "custom",
              "progressFormulaExpression": "(plan + (plan - fact)) / plan",
              "dateCreate": "2026-01-10 09:15:00",
              "timestampX": "2026-07-15 14:30:00",
              "createdBy": 15,
              "modifiedBy": 15,
              "isUse": true
            },
            "error": null
          }
        }
        

См. также

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