Persat Api
  • Persat API v1.0
  • Introducción
    • ¿Qué es una API?
    • ¿Cómo funciona?
  • Primeros Pasos
    • Introducción
    • Niveles de Acceso y Consideraciones Importantes
    • Formato de Respuesta
    • Autenticación
      • Como obtener el Api key
    • Configurar Webhooks
      • Primeros pasos
      • Lógica de reintentos
  • Entidades Básicas
    • Clientes
      • Obtener un cliente
      • Agregar un cliente
      • Modificar un cliente
      • Eliminar un cliente
      • Listar Clientes
      • Listar Grupos de Clientes
      • Listar Tipos de Clientes
      • Listar Campos Personalizados
      • Eventos / Webhooks
        • Cliente creado
        • Cliente modificado
        • Cliente eliminado
    • Objetos en Cliente
      • Obtener estructura/esquema de un Objeto en Cliente
      • Listar estructuras/esquemas de los Objetos en Cliente
      • Obtener objeto
      • Insertar objeto
      • Modificar objeto
      • Eliminar objeto
      • Listar Objetos en un Cliente particular
      • Sincronizacion completa
    • Master Db
      • Obtener estructura/esquema de una Master Db
      • Listar estructuras/esquemas de las Master Dbs
      • Obtener elemento
      • Insertar elemento
      • Modificar elemento
      • Eliminar elemento
      • Sincronizacion completa
    • Dispositivos
      • Obtener Dispositivo
      • Listar Dispositivos
    • Usuarios
      • Listar Usuarios
      • Listar Técnicos Activos
    • Seguimientos
      • Crear seguimientos
  • Modulos
    • 🚚Rastreo Satelital
      • Obtener última posición GPS
      • Obtener estadísticas de Rastreo
      • Obtener Visitas a Clientes
      • Integrar Dispositivos de Rastreo a Persat
    • ☑️Formularios Digitales
      • Obtener estructura/esquema de un Formulario
      • Listar estructuras/esquemas de todos los Formularios
      • Obtener formulario
      • Obtener PDF del formulario
      • Tipos de Widgets
        • Campo Texto
        • Campo Párrafo
        • Campo Link
        • Campo Número
        • Campo Fecha
        • Campo Hora
        • Seleccion Simple
        • Lista Desplegable
        • Selección Múltiple
        • Campo Foto (deprecado)
        • Campo Fotos
        • Firma Digital (deprecado)
        • Firma Digital v2
        • Etiquetas
        • Tabla Smart
        • Tabla Master Db
        • Lista de Objetos en Cliente
        • Tabla de Objetos en Cliente
      • Insertar formulario
      • Modificar formulario
      • Modificar estado de formulario
      • Listar historial de estados de un formulario
      • Listar formularios
      • Estados de formulario
        • Obtener estado
        • Listar estados
      • Eventos / Webhooks
        • Formulario Creado
        • Formulario Modificado
        • Formulario estado modificado
        • Formulario estado modificado masivamente
    • 🛠️Órdenes de Trabajo
      • Obtener estructura/esquema de un Tipo de OT
      • Listar estructuras/esquemas de todos los tipos de OTs
      • Administrar Etiquetas
        • Obtener Etiqueta
        • Insertar Etiqueta
        • Modificar Etiqueta
        • Eliminar Etiqueta
        • Listar Etiquetas
      • Obtener OT
        • PENDIENTE sin instrucciones
        • PENDIENTE con instrucciones
        • PROYECTADA sin instrucciones
        • PROYECTADA con instrucciones
        • ASIGNADA
        • INFORME
        • VENCIDA
        • CERRADA_OK
        • CERRADA_CON_DESVIO
        • CERRADA_NO_CUMPLIDA
      • Obtener PDF de la OT
      • Insertar OT
        • Insertar PENDIENTE
        • Insertar PROYECTADA
        • Insertar ASIGNADA
      • Modificar OT
        • Modificar etiquetas
        • Cancelar OT
        • Mover a estado PENDIENTE
      • Listar OTs
      • Obtener link de trackeo
      • Eventos / Webhooks
        • OT creada
        • OT modificada
        • OT finalizada
        • OT cerrada
    • 📦Gestión de Entregas
      • Obtener estructura/esquema de un Tipo de Entrega
      • Listar estructuras/esquemas de todos los tipos de Entregas
      • Administrar Etiquetas
        • Obtener Etiqueta
        • Insertar Etiqueta
        • Modificar Etiqueta
        • Eliminar Etiqueta
        • Listar Etiquetas
      • Obtener entrega
        • Estado PENDING
        • Estado ROUTING
        • Estado ASSIGNED
        • Estado FINISHED
        • Estado FINISHED_WITH_DEVIATION
        • Estado NOT_FINISHED
      • Obtener PDF de entrega
      • Crear entrega
        • Crear Entrega Simple
        • Crear Entrega en Cliente
      • Eliminar entrega
      • Listar Entregas
      • Obtener link de trackeo
      • Eventos / Webhooks
        • Entrega Creada
        • Entrega Finalizada
        • Entrega Eliminada
      • Rutas de Entrega
        • Obtener Ruta
        • Listar Rutas
        • Eventos / Webhooks
          • Ruta Asignada
          • Ruta Modificada
          • Ruta Cancelada
Powered by GitBook
On this page
  • Ejemplo de Request 1
  • Análisis de la respuesta
  • Ejemplo de Request 2
  • Ejemplo de Request 3
  • Ejemplo de Request 4
  1. Modulos
  2. Órdenes de Trabajo

Listar OTs

Last updated 7 months ago

Para obtener un listado de las Ordenes de Trabajo para un rango de fechas particular, se debe enviar un GET con los siguientes parámetros.

GET https://api.persat.com.ar/v1/work-orders/

Query Parameters

Name
Type
Description

from*

String

Fecha desde en formato yyyy-MM-ddT00:00:00.000Z. En caso de enviar horas minutos, segundos o milisegundos, seran ignorados. La busqueda es realizada por dias completos

to*

String

Fecha hasta en formato yyyy-MM-ddT00:00:00.000Z. En caso de enviar horas minutos, segundos o milisegundos, seran ignorados. La busqueda es realizada por dias completos, incluyendo este mismo dia. Ver ejemplo en esta misma seccion

states

Array de Strings

Array de Strings, donde cada item es un estado valido de OT. Los estados validos para esta consulta son PROYECTADA, ASIGNADA, INFORME, VENCIDA, CERRADA_OK, CERRADA_CON_DESVIO, CERRADA_NO_CUMPLIDA

uid_client

String

Identificador del cliente

Headers

Name
Type
Description

Authorization*

String

Bearer API_KEY

{
    "success": false,
    "error": {
        "status": 400,
        "type": "BAD_REQUEST",
        "userMessage": "'from' es obligatorio y debe ser un string representando una fecha en formato yyyy-MM-ddTHH:mm:ss.SSSZ"
    }
}
{
    "success": false,
    "error": {
        "status": 400,
        "type": "BAD_REQUEST",
        "userMessage": "'from' y 'to' no pueden especificar un rango > a 15 dias"
    }
}
{
    "success": false,
    "error": {
        "status": 404,
        "type": "NOT_FOUND",
        "userMessage": "No existe un cliente con este número."
    }
}

Ejemplo de Request 1

Sin filtrar ni por state ni por uid_client

Busco todas las OTs de un día particular, sin importar el estado de las mismas (por eso no enviamos el parametro state)

https://api.persat.com.ar/v1/work-orders?from=2022-05-03T00:00:00.000Z&to=2022-05-03T00:00:00.000Z

La consulta se realiza por día, es decir que si bien tanto from como to son fechas en formato IsoDate, no importa si se envian las horas minutos segundos del dia. Ya que no se tomarán en cuenta para la consulta.

Tampoco importa la zona horaria, o sea que si estoy en Argentina, México o Perú, y quiero obtener las OTs que deben hacerse el día 3 de Mayo de 2022, entonces tanto from como to deben ser "2022-05-03T00:00:00.000Z" como se muestra en la consulta.

Debido a que Persat cuenta con OTs repetitivas que se van generando en tiempo real durante las consultas, no es posible hacer una paginación como la que se hace en

La restricción en la consulta viene dada por el rango de fechas from y to. El cual no puede exceder los 15 días.

Ejemplo para obtener todas las OTs realizadas en un mes de 31 dias, como puede ser Mayo de 2022).

Para poder resolver todo el mes completo, debemos hacer 2 consultas separadas.

  1. Primero buscamos las OTs entre el día 1 y el 15 inclusive from=2022-05-01T00:00:00.000Z, to=2022-05-15T00:00:00.000Z

  2. La segunda consulta debe buscar las OTs entre el día 16 y el 31 inclusive from=2022-05-16T00:00:00.000Z, to=2022-05-31T00:00:00.000Z

Análisis de la respuesta

Una posible respuesta podría ser la que se muestra a continuación.

{
    "success": true,
    "data": [
        {
        "_id": "134",            
        "note_id": 603,
        "state": "PROYECTADA",
        "created": "2022-05-20T10:14:44.000Z", 
        "created_by_user_name": "usuario@empresa.com.ar",
        "created_by_user_id": 28,
        "labels_ids": [
            1,
            2
        ],
        "client": {
            "id": 10216,
            "name": "Fabrica de Motores",
            "uid_client": "CL3213L"
        },
        "wo_data": {
            "schema_id": 452,
            "wo_instance": null,
            "wo_rule_id": null,
            "service_time": 45,
            "instructions": {
                "formvalues": {
                    "FWMg5UsWo": "Revisar las tejas",
                    "FWcimEHVv": "Cobrar",
                    "FWXyxyhlj": 250.3     
                }
            }
        },
        "assignation_info": {
            "date": "2022-05-03T00:00:00.000Z",
            "starts_min": 480,
            "responsibles_required": 1,
            "responsibles": []
        }
    }, {...}
    ]
}

Ejemplo de Request 2

Filtrando por state

Busco todas las OTs de un día particular, pero ahora solo quiero obtener las que esten completas por el técnico. Con lo cual, los estados a buscar son:

  • INFORME

  • CERRADA_OK

  • CERRADA_CON_DESVIO

  • CERRADA_NO_CUMPLIDA

La consulta entonces quedaría de esta forma

https://api.persat.com.ar/v1/work-orders?from=2022-05-03T00:00:00.000Z&to=2022-05-03T00:00:00.000Z&states=["INFORME","CERRADA_OK","CERRADA_CON_DESVIO","CERRADA_NO_CUMPLIDA"]

Se debe encodear la url de forma que pueda ser reconocida. Los corchetes y las comillas son caracteres que requieren pasar por un url encoder

  • [ %5B

  • ] %5D

  • " %22

curl --location --request GET "https://api.persat.com.ar/v1/work-orders?from=2022-05-25T00:00:00.000Z&to=2022-05-25T00:00:00.000Z&states=%5B%22INFORME%22,\
%22CERRADA_OK%22,%22CERRADA_CON_DESVIO%22,%22CERRADA_NO_CUMPLIDA%22%5D" \
  --header "Authorization: Bearer YOUR_API_KEY"

Durante estos listados, es posible que recibamos OTs con _id = -1.

Esto solo va a ocurrir cuando sucedan dos cosas:

  1. Estemos usando las OTs repetitivas de Persat. Esas OTs que se generaron a partir de una regla, como "Repetir cada dos semanas los dias miercoles",

  2. Hagamos una consulta en donde pedimos las OTs de fechas futuras

Ejemplo de Request 3

Filtrando por cliente. Hay que enviar en el path el uid_client correspondiente.

La consulta entonces quedaría de esta forma

https://api.persat.com.ar/v1/work-orders?from=2022-05-03T00:00:00.000Z&to=2022-05-03T00:00:00.000Z&uid_client=CL3213L

Ejemplo de Request 4

Filtrando tanto por estado como por cliente

La consulta entonces quedaría de esta forma

https://api.persat.com.ar/v1/work-orders?from=2022-05-03T00:00:00.000Z&to=2022-05-03T00:00:00.000Z&states=["CERRADA_NO_CUMPLIDA"]&uid_client=CL3213L

Se debe encodear la url de forma que pueda ser reconocida. Los corchetes y las comillas son caracteres que requieren pasar por un url encoder. Como se explica más arriba en esta misma sección

Los campos que se ven en la respuesta son los que se corresponden con cualquier OT. Ver sección

Estas OTs que todavia no ocurrieron, no tienen _id definido. La forma de identificarlas es por medio de los fields wo_data.wo_rule_id y wo_data.wo_instance, que son explicados en

🛠️
Listar Formularios
Obtener OT
Obtener OT