assessment360.task.makeAssessment
Scope:
assessment360Кто может вызывать: Владелец карточки респондента; либо администратор портала / группа HR-отдела из настроек модуля (тогда проверка владельца пропускается). См. Права доступа
Сохраняет заполненную респондентом анкету оценки (баллы, индикаторы, комментарии, ответы на вопросы).
Для обычного пользователя доступна только своя карточка респондента (ASSESSMENT_EMPLOYEES = текущий REST-пользователь). Администратор портала и группа HR из настроек модуля могут сохранять анкету по чужой карточке: REST сам снимает проверку владельца (отдельного параметра в запросе для этого нет).
HTTP: POST
Побочные эффекты: Изменяет HL-баллы/ответы и карточку респондента.
Параметры метода
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
data |
object |
да* | Данные анкеты (см. ниже). Если data не передан — используется всё тело запроса как объект анкеты |
*Либо обёртка data, либо плоское тело с теми же полями.
Структура data (анкета)
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
id |
int |
да | ID карточки респондента (оценивающего), не оценки |
assessmentCardId |
int |
да | ID карточки оценки (оцениваемого) |
assessmentUserId |
int |
да | ID оцениваемого пользователя (для проверки userIds) |
competencies |
object |
да | Карта оцениваемых компетенций: { "<compId>": <compId>, ... } |
indicators |
object |
усл. | Значения индикаторов по компетенциям (см. ниже) |
rating |
object |
усл. | Оценка по шкале, если у компетенции нет индикаторов: { "<compId>": <scaleValueId> } |
comments |
object |
да* | Комментарии по компетенциям: { "<compId>": "текст" } |
comment |
string |
нет | Общий комментарий → PREVIEW_TEXT карточки респондента |
userIds |
int[] |
нет | Коллеги, которых сотрудник добавляет в оценку (лимит colUsersChoice) |
questions |
object[] |
нет | Ответы на открытые вопросы (см. ниже) |
indicatorsIdsValues |
object |
нет | Для режима баллов: { "<compId>": { "<indicatorId>": <points> } } |
*Комментарии обязательны при включённой настройке «комментарий к незаполненным».
Ключи карт компетенций — строковые ID ("1049").
Формы indicators[<compId>]
Зависит от настроек компетенции:
| Режим | Форма значения |
|---|---|
| Без индикаторов | используйте rating[<compId>] = ID значения шкалы |
Шкала по индикаторам (INDICATORS_SCALE_SCORE) |
{ "<indicatorId>": <grade>, ... } |
Баллы (INDICATORS_ENABLE_POINTS) |
{ "<indicatorId>": <points>, ... } |
| Мультивыбор индикаторов | { "<indicatorId>": <indicatorId>, ... } |
Структура questions[]
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
questionIdFirst |
int |
да | ID вопроса (UF_QUESTIONS) |
answerValue |
string |
усл. | Текст ответа (обязателен, если isAnswerRequired) |
isAnswerRequired |
bool |
нет | Требовать непустой ответ |
id |
int |
нет | ID существующей HL-записи ответа |
name |
string |
нет | Отображаемое имя |
Возвращаемые данные
При успехе:
{ "success": true, "data": [] }
data — массив/объект из Bitrix\Main\Result::getData() доменного Tasks::makeAssessment. Если домен ничего не кладёт в Result — будет пустой массив [].
Ответ в конверте модуля: result.result, result.error.
Обработка ошибок
Справочник кодов: error-codes.md.
| Код | Описание |
|---|---|
UNAUTHORIZED |
Пользователь не авторизован |
INTERNAL_ERROR |
Внутренняя ошибка сервера |
VALIDATION_ERROR |
Не заполнен процент компетенций / обязательные комментарии / ответы |
Пример запроса (POST)
curl -X POST "https://{портал}/rest/{user_id}/{webhook_code}/assessment360.task.makeAssessment.json"
-H "Content-Type: application/json"
-H "Accept: application/json"
--data '{
"data": {
"id": 1177,
"assessmentCardId": 1301,
"assessmentUserId": 15,
"competencies": { "1049": 1049, "1051": 1051 },
"rating": { "1049": 4 },
"indicators": {
"1051": { "201": 4, "202": 5 }
},
"comments": {
"1049": "Хорошая коммуникация",
"1051": "Сильная аналитика"
},
"comment": "В целом положительно",
"userIds": [],
"questions": [
{
"questionIdFirst": 15,
"answerValue": "Лидерство в проектах",
"isAnswerRequired": true
}
]
}
}'
Пример ответа
{
"result": {
"result": {
"success": true,
"data": []
},
"error": null
}
}