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
svc=unit/update_task¶ms={
"itemId": <long>,
"taskId": <text>,
"props": {
"key1": <long>,
"key2": <text>,
.....
}
}
Ejemplo de solicitud:
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:
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:
|
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:
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:
[
{ "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:
{ "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:
{ "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:
{
"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.
svc=core/batch¶ms={
"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.
{}
De lo contrario, se devuelve un código de error. Ejemplo:
{
"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_PARAMSCOMMENT_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_IDUNKNOWN_ERROR |
| 7 | Acceso denegado. Una de las siguientes situaciones:
|
NO_ACCESS_TO_UNITNO_ACCESS_TO_USER |
Para conocer los códigos de error generales, consulte Códigos de error.