update_task

La solicitud unit/update_task permite modificar asuntos. Para crear un asunto nuevo, utilice unit/create_task. Para obtener información sobre cómo funcionan los asuntos en el sistema de rastreo, consulte Asuntos.

Endpoint

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

Ejemplo de solicitud:

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

Parámetros

La solicitud debe contener los siguientes parámetros:

Parámetro Descripción
itemId El ID de la unidad.
taskId El ID del asunto: un hash de texto de exactamente 72 caracteres. Se devuelve en el campo task_id del método messages/get_task_messages.
props El objeto con las propiedades que se deben actualizar (pares clave-valor). Incluya solo las propiedades que desea actualizar, porque cada actualización reemplaza por completo la propiedad existente correspondiente. La única excepción es task_params, que se combina con los parámetros que ya tiene el asunto. La lista de propiedades disponibles se muestra a continuación.

Propiedades del asunto

Propiedad Descripción
task_status El estado del asunto. Los valores admitidos son los siguientes:

  • 1 (Nuevo)
  • 2 (Por hacer)
  • 3 (En progreso)
  • 4 (Pausado)
  • 5 (Rechazado)
  • 6 (Hecho)

Si cambia el estado del asunto de Hecho o Rechazado a cualquier otro estado, o de cualquier otro estado a Hecho, Rechazado o Pausado, se requiere un comentario.

Para obtener más detalles sobre los estados de los asuntos en el sistema de rastreo, consulte Cambiar el estado de asuntos.
task_priority La prioridad del asunto. Los valores admitidos son los siguientes:
  • 1 (Baja)
  • 2 (Media)
  • 3 (Alta)
Para obtener más detalles sobre las prioridades de los asuntos en el sistema de rastreo, consulte Cambiar la prioridad de asuntos.
task_assignee El ID del usuario al que se asigna el asunto.
task_comments El array de comentarios del asunto. El campo del comentario no debe estar vacío ni superar los 500 caracteres.
task_params Un objeto JSON con parámetros adicionales del asunto. Claves admitidas:
  • filled (cantidad de combustible llenado)
  • charged (cantidad de energía cargada)
  • cost (coste del asunto)
  • engine_hours (horas de motor del vehículo)
  • mileage (kilometraje del vehículo)

Las claves que no pasa conservan sus valores anteriores. Esto significa que puede cambiar un valor que ya está establecido, pero no puede eliminarlo.

Derechos de acceso

Para trabajar con los asuntos de una unidad, se requieren los siguientes derechos de acceso a ella:

Derecho de acceso Para qué se requiere
Ver objeto y sus propiedades básicas Acceder a la unidad para ver sus asuntos.
Solicitar informes y mensajes Ver los asuntos creados para la unidad, ya que los asuntos se almacenan como mensajes en el sistema. Sin este derecho, los asuntos de la unidad no se devuelven mediante messages/get_task_messages, por lo que no se puede obtener un taskId.
Modificar estados de asuntos y gestionar comentarios Cambiar el estado del asunto, así como añadir, editar y eliminar comentarios. unit/update_task requiere este derecho para cualquier actualización.
Modificar asuntos Cambiar task_priority y, en combinación con el derecho de acceso a usuarios Actuar en nombre del usuario, cambiar task_assignee. También incluye los permisos otorgados por el derecho de acceso Modificar estados de asuntos y gestionar comentarios.

Gestión de comentarios

El array task_comments debe contener todos los comentarios que tiene el asunto después de la actualización. Pase los comentarios existentes con su id y el comentario nuevo sin él:

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

Si un comentario se añadió anteriormente al asunto, pero su id no se incluye en el array, el comentario se elimina.

Para un comentario nuevo, el sistema asigna el siguiente id (los comentarios de un asunto se numeran a partir de 1) y establece como autor al usuario actual. También puede pasar el campo timestamp con la hora del comentario en formato de hora Unix. Por defecto, el sistema utiliza la hora actual del servidor.

En un comentario existente solo se puede cambiar el texto. Si lo cambia, el sistema registra quién editó el comentario y cuándo.

Para realizar las mismas acciones en el sistema de rastreo, consulte Comentarios.

Añadir un comentario

Para añadir un comentario, pase un objeto con el siguiente formato en el array task_comments:

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

Editar un comentario

Para editar un comentario, indique su ID en el array task_comments e incluya el texto nuevo del comentario:

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

Eliminar un comentario

Para eliminar un comentario, quítelo del array task_comments.

Añadir o editar parámetros adicionales

Para añadir o editar parámetros adicionales del asunto, incluya el objeto task_params en el parámetro props con los pares clave-valor deseados:

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

Indique los valores de filled y mileage en el sistema de medida actual de la unidad (SI, US, imperial o métrico con galones). El sistema de medida se establece en la propiedad mu de la unidad. Para obtener más detalles, consulte Propiedades básicas. Los valores de charged, cost y engine_hours se guardan tal como se pasan.

Actualizar varios asuntos a la vez

La solicitud unit/update_task actualiza un solo asunto. Para actualizar varios asuntos a la vez (por ejemplo, para asignarlos al mismo usuario o para cambiar su estado o prioridad), combine solicitudes unit/update_task en una solicitud core/batch.

Cada elemento del array params es una solicitud unit/update_task independiente con su propio itemId y 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
}

Tenga en cuenta lo siguiente:

Regla Descripción
Comentarios Si cambia el estado a Hecho (6), Rechazado (5) o Pausado (4), o de Hecho o Rechazado a cualquier otro estado, pase un comentario en task_comments para cada asunto. De lo contrario, la solicitud correspondiente devuelve el error 4 con el motivo COMMENT_IS_REQUIRED y el asunto conserva sus propiedades anteriores.
Comentarios existentes task_comments reemplaza todo el array de comentarios de un asunto. Si un asunto ya tiene comentarios y usted pasa solo uno nuevo, los comentarios anteriores se eliminan. Para conservarlos, páselos junto con sus ID, como se describe en Gestión de comentarios.
Derechos de acceso Los derechos de acceso se verifican para cada asunto por separado. Con "flags": 0, solo falla la solicitud a la unidad a la que no tiene derechos y las demás solicitudes se ejecutan. Con "flags": 1, todas las solicitudes que siguen a la solicitud fallida devuelven el error 10.
Respuesta La respuesta es un array con el resultado de cada solicitud en el mismo orden en que se enviaron las solicitudes.
Limitaciones Una solicitud core/batch está limitada por el tamaño de la respuesta y por el tiempo de ejecución. Si la respuesta es demasiado grande, la solicitud devuelve el error 6. Si se excede el tiempo de ejecución, las solicitudes restantes devuelven el error 10.

Para conocer la descripción del parámetro flags, consulte core/batch.

Respuesta

Si la solicitud se completa correctamente, se devuelve una respuesta vacía.

Copied!
{}

De lo contrario, se devuelve un código de error. Ejemplo:

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

Códigos de error

Código de error Descripción Valor del campo reason
4 Parámetros de entrada incorrectos. Falta un parámetro obligatorio o su tipo es incorrecto, taskId no es una cadena de 72 caracteres o las propiedades de props no se pueden aplicar (por ejemplo, el responsable indicado no existe).

Se devuelve el mismo código si el cambio de estado requiere un comentario, pero no se pasa ningún comentario nuevo en task_comments.
INVALID_INPUT_PARAMS
COMMENT_IS_REQUIRED
5 La unidad no tiene ningún asunto con el taskId indicado. TASK_NOT_FOUND
6 El ID de comentario indicado no se encuentra entre los comentarios del asunto o el array contiene el mismo ID dos veces.

El motivo UNKNOWN_ERROR significa que los asuntos no son compatibles con la unidad.
INVALID_COMMENT_ID
UNKNOWN_ERROR
7 Acceso denegado. Una de las siguientes situaciones:
  • la unidad con el itemId indicado no existe o no está disponible para el usuario actual
  • falta el derecho de acceso a la unidad Modificar estados de asuntos y gestionar comentarios (consulte Derechos de acceso)
  • cambia task_priority o task_assignee sin el derecho de acceso a la unidad Modificar asuntos
  • cambia task_assignee sin el derecho de acceso Actuar en nombre del usuario al nuevo responsable
  • el servicio de asuntos no está habilitado para la cuenta
NO_ACCESS_TO_UNIT
NO_ACCESS_TO_USER

Para conocer los códigos de error generales, consulte Códigos de error.

Si nota un error en el texto, por favor resáltelo y presione Ctrl+Intro.