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
  1. Modulos
  2. Órdenes de Trabajo

Obtener OT

Las órdenes de trabajo en Persat, pueden ser creadas tanto desde la web como desde la API. Una vez creadas se les asigna un id unico, mediante el cual podemos luego consultar su contenido.

Para obtener una OT particular se debe realizar un GET como el que se muestra a continuación.

IMPORTANTE: El id de la OT es un string, si bien hoy en día los ids representan números, hay que considerar la posibilidad de que sean alfanuméricos a futuro.

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

Path Parameters

Name
Type
Description

wo_id*

String

Identificador de la Orden de Trabajo.

Headers

Name
Type
Description

Authorization*

String

Bearer API_KEY

{
    "success": false,
    "error": {
        "status": 404,
        "type": "NOT_FOUND",
        "userMessage": "No hay una ot con este numero de wo_id: 14312313213d"
    }
}

Analizando la Respuesta

{
    "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-20T00:00:00.000Z",
            "starts_min": 480,
            "responsibles_required": 1,
            "responsibles": []
        }
    }
}

_id: Identificador de la OT. Es un string, si bien hoy en dia representa un número, puede ser modificado a futuro para ser alfanumerico.

Existe un caso particular en donde el _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",

Luego, las OTs que son generadas por reglas, no tienen _id definido hasta que "ocurran". La forma de identificarlas es por medio de los fields wo_data.wo_rule_id y wo_data.wo_instance, que son explicados mas abajo

note_id: NO USAR. Valor interno usado por Persat. Tener en cuenta que es posible que a futuro no se reciba mas este valor.

created: Fecha de creación de la OT hora local. No tiene relación con la fecha de asignación del trabajo.

Si bien la fecha esta representada en UTC, hay que considerarla en horario local. Esto se debe a un requerimiento de mantener la compatibilidad con una versión anterior de Persat. Entonces para el caso del ejemplo, y sin importar si soy un cliente de Argentina, Ecuardor o Mexico, la fecha mostrada representa el día 20 de Mayo de 2022 a las 10:14 AM hora de mi país

"created": "2022-05-20T10:14:44.000Z",

created_by_user_name: Nombre del usuario que creó la OT. Los nombres de usuario en Persat son emails. En el caso que haya sido creada a través de la API se recibirá "Creado por Api"

created_by_user_id: id del usuario nombrado arriba. En el caso que la OT haya sido creado a traves de la API, el valor será -1

labels_ids: Array de numbers, identificando etiquetas previamente creadas en Persat.

Es una "referencia débil" a las etiquetas, es decir que puede que no existan a la hora de hacer la consulta, debido a que el usuario administrador de Persat las sacó del sistema, o las modificó por otras.

client: Datos del cliente en el que se encuentra el formulario

  • id: Id interno. NO UTILIZAR. Preparar el sistema para incluso dejar de recibir este dato a futuro.

  • name: Nombre del cliente

  • uid_client: id del cliente. Es el que se utiliza como identificador de este cliente. Es un valor único.

wo_data: Datos de la Orden de Trabajo

wo_data.schema_id: Identificador del esquema (plantilla) de la OT. Por ejemplo: Puedo tener una OT para realizar un "Presupuesto" y otra para hacer un trabajo de "Desratización". Para saber de que tipo de OT estoy hablando es que se usa el schemaid. El valor del schema_id incluso cambia entre versión y versión del mismo tipo de OT.

wo_data.wo_rule_id: Si la OT fue creada por una regla de repetición, entonces este es el identificador de la regla. Por ejemplo, una regla puede ser que la OT se cree "todos los miercoles cada 2 semanas". En caso que no sea una OT generada por repetición, el valor será null.

wo_data.wo_instance: Siendo la OT generada por una repetición, entonces este numero indicará el nro de repetición comenzando desde 1. Siguiendo con el ejemplo del párrafo anterior, el primer miercoles el valor será 1, el miercoles pasadas las 2 semanas el valor será 2 y asi continuando. En caso que no sea una OT generada por repetición, el valor será null.

Las reglas de repetición solo pueden ser creadas desde la web de Persat con un usuario que tenga los permisos adecuados para tal acción.

wo_data.service_time: Valor en minutos de la duración estimada para realizar el trabajo.

wo_data.instructions: Contiene el field formvalues que se explica a continuación. Sin embargo puede no estar definido dependiendo el estado de la OT. Ver ejemplos en las subsecciones posteriores.

wo_data.instructions.formvalues: Datos de las instrucciones que le llegan al técnico en su celular. Se usa para indicar que tipo de trabajo realizar.

Cada tipo de formulario esta conformado por widgets de distinto tipo, como por ejemplo: Campo Texto, Campo Lista, Campo número, etc.

Para el caso del ejemplo, se puede visualizar que el formulario cuenta con 3 widgets. A priori no se pude deducir exactamente que tipo de widget es cada uno, sin embargo podemos inferir que el widget con id FWXyxyhlj es un CAMPO NUMERO

formvalues: {
    "FWMg5UsWo": "Revisar las tejas",
    "FWcimEHVv": "Cobrar",
    "FWXyxyhlj": 250.3     
}

wo_data.assignation_info: Objeto JSON con datos respecto a la asignación de la OT. No todos los campos estan presentes, ya que dependen del estado de la OT. Ver ejemplos en las siguientes subsecciones.

wo_data.assignation_info.date : Fecha en que debe realizarse el trabajo

Si bien la fecha esta representada en UTC, hay que considerarla en horario local. Esto se debe a un requerimiento de mantener la compatibilidad con una versión anterior de Persat. Entonces para el caso del ejemplo, y sin importar si soy un cliente de Argentina, Ecuardor o Mexico, la fecha mostrada representa el día 20 de Mayo de 2022.

No contiene horas, minutos segundos ni milisegundos, porque representa el día. Es decir que la OT esta definida para hacerse el día 20 de Mayo. Los datos del horario se obtienen de starts_min

"...assignation_info.date": "2022-05-20T00:00:00.000Z",

wo_data.assignation_info.starts_min : Number representando los minutos transcurridos desde las 00:00 hs del día. Para el caso del ejemplo 480 representa las 08:00 AM.

wo_data.assignation_info.responsibles_required: Number que indica la cantidad de técnicos necesaros para el trabajo. Valor mínimo 1.

wo_data.assignation_info.responsibles: Array de objetos JSON. Puede estar vacío como en el caso de este ejemplo. Pero si la OT estuviese asignada el objeto tendria estos fields indicando los tecnicos responsables.

"responsibles": [
    {
        "user_id": 28,
        "user_name": "jose@empresa.com.ar"
    }, {...}
    ]

En caso que haya más de un responsable, el item con indice 0 del array (el primero en el array) es el responsable principal, y los otros técnicos serían los acompañantes.

Last updated 10 months ago

Hagamos una consulta del tipo , en donde por ejemplo pedimos las OTs de fechas futuras

Para poder ver los ids de cada uno de los usuarios, verificá la sección , en donde también se utiliza el campo "created_by_user_id"

Para poder conocer los schema_id de las OTs disponibles

También puede obtener el esquema con el endpoint

Dependiendo del tipo de widget, es el tipo de valor. Un widget de tipo Texto, contendrá un string, mientras que uno de tipo Numero contendra un number. Ver todos los widgets disponibles en la siguiente sección:

En cuanto a conocer la identificación de cada uno de los widgets:

El formulario de Instrucciones en las Ordenes de Trabajo tiene algunas limitaciones en cuanto a los componentes (widgets) que se pueden utilizar. Ver

🛠️
Listar OTs
Obtener Formulario
Obtener estructura/esquema de un Tipo de OT
Tipos de Widgets
Indetificación de OTs y widgets
Identificación de los Widgets en OTs
Widgets habilitados