gteConnect - Interfaz de conexión de GestionaTE a sistemas de terceros

Esta aplicación, permite conectar su software en forma transparente con el sistema GestionaTE.

El uso principal de esta aplicación es la integración con software de terceros, por lo tanto puede iniciarse de dos formas diferentes, de acuerdo al uso que se le dará:

    Ahora que si la integración solo supone la carga de casos, sea desde planillas de cálculos (Excel/OpenOffice), archivos en formato nativo (ver en este mismo documento) o script de importación (Python), se recomienda iniciar la aplicación de esta forma (al cumplirse la cantidad de ciclos, se cierra la aplicación en forma automática):
gteConnect.exe <cantidad de ciclos, por ejemplo 5>

    Si la integración es completa (carga de casos, y lectura en tiempo real de cambios efectuados desde teléfonos en los mismos) se puede iniciar la interfaz de esta forma (recuerde que debería "envolverla" en su propia aplicación, para capturar el standard output/error y reiniciar el proceso, que ante cualquier suceso anormal se cierra, cuando sea necesario):
gteConnect.exe <intervalo 120 segundos o mas>

    Adicionalmente, el siguiente script (por ejemplo puede guardarlo como "ejecuta.cmd") guardará un log (gteConnect.log) y reiniciará el módulo cuando se cierre (por ejemplo al detectar una falla de conectividad, etc.):
@ECHO OFF
:loop
ECHO Iniciando gteConnect...
gteConnect.exe >> gteConnect.log 2>&1
ECHO reiniciando
GOTO loop

    Atención: Tenga en cuenta, que de tener activa esta interfaz, puede ver reducida alguna funcionalidad del panel web de administración. Por ejemplo los servicios finalizados son enviados en forma automática al histórico por esta aplicación.

    Al iniciarse, crea un fichero gteConnect.ini, el cual debe editarse para incorporar los datos de autenticación (contrato, usuario y contraseña).

    Luego del siguiente inicio con las credenciales apropiadas, se crea un fichero "campos.txt" con la lista de campos y tipo de dato esperado en cada caso, de acuerdo a la configuración del contrato. También se crean 4 carpetas: importar, nuevos, proceso y finalizados.

    En importar, encontrará subcarpetas con los formatos externos que el sistema soporta para agregar casos. Inicialmente hay una carpeta "planillas", donde podrá dejar ficheros Excel (.xls), con todos los nombres de campo como columnas (respetando mayúsculas y minúsculas del archivo 'campos.txt'), y tantas líneas como desee crear servicios.

    En nuevos van los servicios a agregar. Estos pueden estar en formato de diccionario Python/json, o en un fichero tipo INI.

    No hay ninguna restricción de nombre del archivo, puede llamarse de cualquier forma.
    El fichero debe contener todos los campos indicados en el fichero campos.txt. Si falta o sobra alguno, la importación se anulará.

    Los campos de hora y fecha, se guardan en formato epoch.(http://es.wikipedia.org/wiki/Unix_epoch)

    Por ejemplo, el fichero campos.txt puede contener:
Servicio = 'lista(editable=True, items=["PC no funciona", "No tiene internet", "Ampliacion memoria", "Instalacion impresora", "Otro"])'
Numero de cuenta = 'numero(decimales=0)'
Tecnico = 'dispositivos(default="")'
Direccion = 'texto(largo=60, default="")'
Pedido urgente = 'seleccion(default=False)'
Pago = 'lista(editable=True, items=["Contado", "Cuenta Corriente"])'
Nombre = 'texto(largo=35, default="")'
Importe a cobrar = 'numero(decimales=2, maximo=200)'

    Entonces, podríamos enviar un caso nuevo, guardándo en la carpeta de "nuevos" un fichero con el siguiente contenido:
Servicio = 'PC no funciona'
Numero de cuenta = 222222
timestamp = 1260402299L
Tecnico = ''
Direccion = 'Mi calle 100'
Pago = 'Contado'
Nombre = 'Fulano 2'
Pedido urgente = True
Importe a cobrar = 10.20

    Así mismo, los servicios en "proceso" y "finalizados" tienen el siguiente formato:
Servicio = 'Ampliacion memoria'
Numero de cuenta = '000000'
timestamp = 1260406867
Tecnico = 'Movil 2'
Direccion = 'Mi calle 100'
Pago = 'Contado'
Nombre = 'JUAN'
caso_fname = '20091207010748_001.n'
bitacora = '1260376917.9\tLeido\r\n1260377118.1\tAceptado \r\n1260377133.49\tEn camino\r\n1260377154.04\tArribo\r\n1260377190.92\tpre-Pedido urgente\r\n1260377320.15\tpre-Importe a cobrar\r\n1260377361.97\tMenu final\r\n1260378021.95\tpre-Pedido urgente\r\n1260405643.2\tPedido urgente\r\n1260405649.38\tpre-Importe a cobrar\r\n1260406852.22\tImporte a cobrar\r\n1260406857.43\tMenu final\r\n1260406867.71\tEquipo a laboratorio\r\n'
caso_estado = 'Equipo a laboratorio'
Pedido urgente = 'False'
caso_key = '20091207010748_001'
Importe a cobrar = '25'
    En este caso, pueden notarse una serie de campos adicionales. De estos, pueden interesarle los siguientes:
caso_key: Clave única que identifica el servicio.
bitacora: Histórico de eventos del servicio. Encontrará una serie de caracteres de control cuya equivalencia es \t=TAB, \r\n=ENTER.
caso_estado: El estado actual (o final) del servicio en cuestión.
Configuración
    En la primer ejecución, se creará un archivo llamado gteConnect.ini. Debe completar los siguientes datos:
[SERVIDOR] (si tiene otros datos en esta sección, no la cambie)
ip = gtesrv1.dosalinfinito.com.ar
puerto = 80

[CUENTA]
idcliente = (su número de cuenta)
usuario = (su usuario, con permisos administrativos en GestionaTE)
clave = (su clave)

[PROXY] (si posee un proxy debe completar esta sección)
ip = 
port = 
usuario = 
clave = 

[SMTP] (gteConnect puede actuar como un servidor de correo)
activo = no
puerto = 25
ip = 0.0.0.0

    Atención: En caso de utilizar un Proxy, recuerde permitir la salida al puerto indicado en el bloque "SERVIDOR".

Scripts personalizables
    Estos ficheros se escriben en el lenguaje Python y se encuentran en la carpeta del programa. Si no existen, en el primer inicio se generan automáticamente.

    Si agrega en el subdirectorio "libs" módulos y librerias para Python 2.6, podrá usarlos desde estos ficheros. Existen variedad de librerias, para acceder a diferentes servidores de base de datos, comunicarse por red o puertos serie a otros equipos, etc.

    Importante: Si necesita conservar información entre un script y otro, por ejemplo en el caso de un objeto de conexión a una base de datos, puede agregarlo al objeto mágico "base". El mismo es el único que sobrevive a la duración de cada script. El uso es muy sencillo, fíjese por ejemplo el uso de la variable "base.nuevos_inicializado" en los ejemplos.

inicio.script
    Al iniciarse la aplicación, se ejecuta este script. Es el lugar ideal para conectarse a una base de datos remota, o efectuar procesos de inicialización que solo necesiten realizarse una vez.
if not base.inicio_inicializado:
    print '----------------------------------------'
    print 'Nombre de script: inicio'
    print path_nuevos
    print path_proceso
    print path_finalizados
    print campos
    print '----------------------------------------'
    base.inicio_inicializado = True

nuevos.script
    Se ejecuta antes de leer la carpeta 'nuevos'. Esto permite por ejemplo efectuar procesos de importación, como leer información de una base de datos y crear el fichero en el formato esperado durante la importación.
if not base.nuevos_inicializado:
    print '----------------------------------------'
    print 'Nombre de script: nuevos'
    print path_nuevos
    print path_proceso
    print path_finalizados
    print campos
    print '----------------------------------------'
    base.nuevos_inicializado = True

proceso.script
    Se ejecuta cuando un servicio fue modificado en el servidor, esto puede deberse a acciones desde la interfaz web, el script ciclo, o las terminales Nextel. Se recibe el servicio completo y puede por ejemplo actualizarse en base a lo recibido información del sistema a integrar.
if not base.proceso_inicializado:
    print '----------------------------------------'
    print 'Nombre de script: proceso'
    print caso
    print campos
    print '----------------------------------------'
    base.proceso_inicializado = True

finalizados.script
    Igual que el anterior, pero cuando el nuevo estado del servicio es considerado final -no tiene subestados-.
if not base.finalizados_inicializado:
    print '----------------------------------------'
    print 'Nombre de script: finalizados'
    print caso
    print campos
    print '----------------------------------------'
    base.finalizados_inicializado = True

ciclo.script
    Este se ejecuta cada ciclo completo del programa, mas 120 segundos de intervalo.
if not base.ciclo_inicializado:
    print '----------------------------------------'
    print 'Nombre de script: ciclo'
    print path_nuevos
    print path_proceso
    print path_finalizados
    print campos
    print '----------------------------------------'
    base.ciclo_inicializado = True

correo_entrante.script
    Si activa el servidor SMTP, ante cada correo recibido se ejecutará este script. Le permite interpretar su contenido (incluido encabezados) y así por ejemplo generar nuevos casos, o modificar uno ya existente.
print '----------------------------------------'
print peer
print mailfrom
print rcpttos
print data
print '----------------------------------------'
ċ
gteConnect.zip
(13520k)
Sebastian Lezica,
Sep 12, 2018, 8:09 AM
Comments