Справочный центр Wialon

update_task

Метод unit/update_task позволяет редактировать задачи. Чтобы создать новую задачу, используйте unit/create_task. Информация о том, как работают задачи в системе мониторинга, приведена в разделе Задачи.

Конечная точка

Copied!
svc=unit/update_task&params={
	"itemId": <long>,
	"taskId": <text>,
	"props": {
		"key1": <long>,
		"key2": <text>,
		.....
	}
}

Пример запроса:

Copied!
https://hst-api.wialon.com/wialon/ajax.html?
svc=unit/update_task&
params={
  "itemId": 1514,
  "taskId": "6f6aeeebad9ebe64bda86924f8d379d8e6b06bd690c53da4aab526c5e221bdb266b52a50",
  "props": {
    "task_status": 2,
    "task_priority": 3
  }
}&
sid=SESSION_IDENTIFIER

Параметры

Запрос должен содержать следующие параметры:

Параметр Описание
itemId Идентификатор объекта.
taskId Идентификатор задачи: строковый хеш длиной ровно 72 символа. Возвращается в поле task_id методом messages/get_task_messages.
props Объект свойств, которые необходимо обновить (пары «ключ — значение»). Указывайте только те свойства, которые вы хотите отредактировать, поскольку каждое обновление полностью заменяет соответствующее существующее свойство. Единственное исключение — task_params: этот объект объединяется с параметрами, которые уже есть у задачи. Список доступных свойств приведен ниже.

Свойства задачи

Свойство Описание
task_status Статус задачи. Допустимые значения:

  • 1 (Новая)
  • 2 (К выполнению)
  • 3 (В процессе)
  • 4 (Приостановлено)
  • 5 (Отклонено)
  • 6 (Выполнено)

Если вы изменяете статус задачи с Выполнено или Отклонено на любой другой статус, а также с любого другого статуса на Выполнено, Отклонено или Приостановлено, необходим комментарий.

Подробнее о статусах задач в системе мониторинга — в разделе Изменение статуса задачи.
task_priority Приоритет задачи. Допустимые значения:
  • 1 (Низкий)
  • 2 (Средний)
  • 3 (Высокий)
Подробнее о приоритетах задач в системе мониторинга — в разделе Изменение приоритета задачи.
task_assignee Идентификатор пользователя, на которого назначена задача.
task_comments Массив комментариев к задаче. Поле комментария не должно быть пустым и не должно содержать более 500 символов.
task_params JSON-объект с дополнительными параметрами задачи. Поддерживаемые ключи:
  • filled (объем заправленного топлива)
  • charged (объем заряженной энергии)
  • cost (стоимость задачи)
  • engine_hours (моточасы транспортного средства)
  • mileage (пробег транспортного средства)

Ключи, которые вы не передали, сохраняют прежние значения. Это значит, что уже заданное значение можно изменить, но нельзя удалить.

Права доступа

Для работы с задачами объекта необходимы следующие права доступа на него:

Право доступа Для чего необходимо
Просмотр элемента и его основных свойств Доступ к объекту для просмотра его задач.
Запрос сообщений и отчетов Просмотр задач, созданных для объекта, поскольку задачи хранятся в системе в виде сообщений. Без этого права задачи объекта не возвращаются методом messages/get_task_messages, поэтому получить taskId невозможно.
Редактирование статусов задач и управление комментариями Изменение статуса задачи, а также добавление, редактирование и удаление комментариев. Методу unit/update_task это право необходимо для любого обновления.
Редактирование задач Изменение task_priority, а в совокупности с правом доступа Выполнение действий от имени пользователя на пользователей — изменение task_assignee. Кроме того, включает возможности, которые дает право доступа Редактирование статусов задач и управление комментариями.

Управление комментариями

Массив task_comments должен содержать все комментарии, которые будут у задачи после обновления. Передавайте существующие комментарии с их id, а новый комментарий — без него:

Copied!
[
    { "id": 1, "comment": "Unit delivered to the service station." },
    { "id": 2, "comment": "Oil and filters replaced." },
    { "comment": "Spare parts ordered, waiting for delivery." }
]

Если комментарий был ранее добавлен к задаче, но его id не указан в массиве, комментарий удаляется.

Для нового комментария система присваивает следующий id (комментарии задачи нумеруются начиная с 1) и указывает в качестве автора текущего пользователя. Вы также можете передать поле timestamp со временем комментария в формате UNIX timestamp. По умолчанию система использует текущее время сервера.

У существующего комментария можно изменить только текст. Если вы измените его, система запишет, кто и когда отредактировал комментарий.

О тех же действиях в системе мониторинга — в разделе Комментарии.

Добавление комментария

Чтобы добавить комментарий, передайте в массиве task_comments объект следующего формата:

Copied!
{ "comment": "Spare parts ordered, waiting for delivery." }

Редактирование комментария

Чтобы отредактировать комментарий, укажите его идентификатор в массиве task_comments и передайте новый текст комментария:

Copied!
{ "id": 2, "comment": "Oil and filters replaced. Next service due at 140000 km." }

Удаление комментария

Чтобы удалить комментарий, уберите его из массива task_comments.

Добавление и редактирование дополнительных параметров

Чтобы добавить или отредактировать дополнительные параметры задачи, укажите в параметре props объект task_params с необходимыми парами «ключ — значение»:

Copied!
{
    "itemId": 1514,
    "taskId": "6f6aeeebad9ebe64bda86924f8d379d8e6b06bd690c53da4aab526c5e221bdb266b52a50",
    "props": {
        "task_params": {
            "filled": 50.5,
            "mileage": 125.8,
            "cost": 150
        }
    }
}

Значения filled и mileage указывайте в текущей системе измерения объекта (СИ, американской, имперской или метрической с галлонами). Система измерения задается в свойстве mu объекта. Подробнее — в разделе Основные свойства. Значения charged, cost и engine_hours сохраняются в том виде, в котором переданы.

Обновление нескольких задач одновременно

Метод unit/update_task обновляет одну задачу. Чтобы обновить несколько задач одновременно (например, назначить их на одного пользователя или изменить их статус или приоритет), объедините запросы unit/update_task в запрос core/batch.

Каждый элемент массива params — это отдельный запрос unit/update_task со своими itemId и taskId.

Copied!
svc=core/batch&params={
  "params": [
    {
      "svc": "unit/update_task",
      "params": {
        "itemId": 1514,
        "taskId": "6f6aeeebad9ebe64bda86924f8d379d8e6b06bd690c53da4aab526c5e221bdb266b52a50",
        "props": {
          "task_status": 6,
          "task_comments": [
            { "comment": "Checked by the operator." }
          ]
        }
      }
    },
    {
      "svc": "unit/update_task",
      "params": {
        "itemId": 1515,
        "taskId": "8a21bcb0ad9ebe64bda86924f8d379d8e6b06bd690c53da4aab526c5e221ff416a8d46d0",
        "props": {
          "task_status": 6,
          "task_comments": [
            { "comment": "Checked by the operator." }
          ]
        }
      }
    }
  ],
  "flags": 0
}

Обратите внимание на следующее:

Правило Описание
Комментарии Если вы изменяете статус на Выполнено (6), Отклонено (5) или Приостановлено (4), а также с Выполнено или Отклонено на любой другой статус, передайте комментарий в task_comments для каждой задачи. В противном случае соответствующий запрос возвращает ошибку 4 с причиной COMMENT_IS_REQUIRED, а у задачи сохраняются предыдущие свойства.
Существующие комментарии task_comments заменяет весь массив комментариев задачи. Если у задачи уже есть комментарии, а вы передаете только новый, предыдущие комментарии удаляются. Чтобы сохранить их, передайте их вместе с их идентификаторами, как описано в разделе Управление комментариями.
Права доступа Права доступа проверяются для каждой задачи отдельно. При "flags": 0 не выполняется только запрос к объекту, на который у вас нет прав, а остальные запросы выполняются. При "flags": 1 все запросы, следующие за невыполненным, возвращают ошибку 10.
Возвращаемый результат Возвращается массив с результатом каждого запроса в том же порядке, в котором запросы были отправлены.
Ограничения Запрос core/batch ограничен размером возвращаемого результата и временем выполнения. Если результат слишком большой, запрос возвращает ошибку 6. Если превышено время выполнения, остальные запросы возвращают ошибку 10.

Описание параметра flags приведено в разделе core/batch.

Возвращаемый результат

При успешном выполнении запроса возвращается пустой результат.

Copied!
{}

В противном случае возвращается код ошибки. Пример:

Copied!
{
    "error": 5,
    "reason": "TASK_NOT_FOUND"
}

Коды ошибок

Код ошибки Описание Значение поля reason
4 Невалидные входные параметры. Отсутствует обязательный параметр или он имеет неверный тип, taskId не является строкой из 72 символов, либо свойства в props невозможно применить (например, указанный исполнитель не существует).

Этот же код возвращается, если для изменения статуса необходим комментарий, но в task_comments не передан новый комментарий.
INVALID_INPUT_PARAMS
COMMENT_IS_REQUIRED
5 У объекта нет задачи с указанным taskId. TASK_NOT_FOUND
6 Указанный идентификатор комментария не найден среди комментариев задачи, либо массив содержит один и тот же идентификатор дважды.

Причина UNKNOWN_ERROR означает, что задачи не поддерживаются для объекта.
INVALID_COMMENT_ID
UNKNOWN_ERROR
7 Доступ запрещен. Одна из следующих причин:
  • объект с указанным itemId не существует или недоступен текущему пользователю;
  • отсутствует право доступа Редактирование статусов задач и управление комментариями на объект (см. раздел Права доступа);
  • вы изменяете task_priority или task_assignee без права доступа Редактирование задач на объект;
  • вы изменяете task_assignee без права доступа Выполнение действий от имени пользователя на нового исполнителя;
  • для учетной записи не включена услуга Задачи.
NO_ACCESS_TO_UNIT
NO_ACCESS_TO_USER

Общие коды ошибок приведены в разделе Коды ошибок.

Если вы заметили ошибку в тексте, пожалуйста, выделите её и нажмите Ctrl+Enter.