View Categories

SQLSync – FacturaSend

10 minutos de lectura

SQLSync – FacturaSend, consiste en una aplicación desarrollada en Java para Windows/Linux, que permite la integración de los documentos (Facturas, Autofacturas, Notas de Crédito, Débito, Remisión) de su ERP o Sistema con FacturaSend, a partir de los datos existentes en una base de datos.

Actualmente soporta las bases de datos Oracle, PostgreSQL, MySQL, SQLServer y DBF (DEPRECADO) y para la comunicación se utiliza una estructura de tablas con nombres de campos estandarizados, que puede encontrar en la siguiente documentación.

Componentes #

Está compuesto por dos ejecutables:

  1. integrador.jar: Se trata de un ejecutable que corre en background y se encarga de leer cada cierto tiempo (configurable) los datos de la base de datos (tabla/vista) para integrarlo a FacturaSend. También permite imprimir el documento electrónico generado (configurable).

    Las tareas de éste ejecutable son almacenadas en un log.

    Debe ejecutarse una sola instancia del integrador por empresa, para evitar que se envian datos desde diferente ubicación
  1. monitor.jar: Se encarga de visualizar los datos en una aplicación visual, de forma que el usuario pueda monitorear los movimientos en proceso de integración y realizar sobre los mismos otras tareas, como ver el XML y el KUDE, visualizar los errores, re-enviar, etc.

    Pueden ejecutarse varias instancias del monitor, para mostrar las integraciones desde diferentes maquinas, generalmente se ejecuta una instancia por cada usuario o cajero que necesita imprimir los documentos KuDE.

Descarga  #

La aplicación no se incluye como parte de la plataforma de FacturaSend para todos los usuarios. El mismo tiene un costo adicional y para su utilización recomendamos contactar con el equipo comercial, en el número de WhatsApp disponible en la página principal.

Descargar la aplicación de la siguiente ubicación:

Sistemas operativos Windows 8, Windows 10. (64bits)

  • Consulte con el Soporte técnico de Tips

Sistema Operativo Linux

  • Consulte con el Soporte técnico de Tips

Para sistemas operativos menores a Windows 8, la actualización deberá realizarse mediante proceso manual (No recomendable)

Instalación  #

Windows

Descomprimir el contenido del archivo sqlsync_win64.zip en una ubicación de su preferencia, por ejemplo en el disco “C:\user\username\sqlsync”:

Al visualizar la carpeta descomprimida va encontrar los siguientes archivos. Una distribución de Java 8 de tiempo de ejecución es proveído dependiendo de la versión de cada sistema operativo.

Ejecución monitor.jar #

Puede ejecutar directamente la aplicación .JAR, cómo se muestra más abajo para los sistemas operativos Windows/Linux. Este monitor puede ser ejecutado en innúmeros equipos sin restricción, desde donde se desea ver el proceso de los documentos que se van integrando y se puede aplicar filtros de establecimientos y filtros específicos por instancias de ejecución.

Windows

Abra una ventana de Powershell en la ubicación en donde ha descomprimido los archivos.

Para ejecutar el monitor escriba en la ventana de comandos: 

RUN_monitor.ps1, o;
"./jre/bin/java" -jar monitor.jar

Se abrirá la aplicación:

Si el acceso a los datos se encuentra bien configurado, ya se deberían poder visualizar aquí los datos de la tabla/vista de la estructura principal. (Ver apartado de Configuración) filtrados por su respectivo tipo de documento, siendo el por defecto el de Factura Electrónica.

También se pueden observar informaciones como el tipo de base de datos, el host de la base de datos y el servidor de Facturasend utilizado.

Ejecución integrador.jar #

El integrador.jar es quien realiza la tarea de sincronizar los datos de la base de datos con FacturaSend, debe estar corriendo 1 sola vez por empresa que se conecta a Facturasend, para evitar duplicidad de registros y otros errores.

De forma qué esta aplicación corre en segundo plano, puede ser ejecutado como servicio. Si desea que el integrador.jar, corra cómo servicio para que siempre se encuentro activo, vea SQLSync – Ejecutar como servicio

Windows

El integrador.jar que corre en background debe ser ejecutado de la misma manera, por ejemplo:

RUN_integrador.ps1, o;
"./jre/bin/java" -jar integrador.jar

Antes de ejecutar el integrador debe configurar la aplicación, para que él mismo sepa de qué base de datos leer la información. Para ello puede consultar los apartados específicos de parámetros de oracle, sqlserver, postgres, mysql, hana y dbf.

Requisitos previos #

  1. Adaptar su software ERP/POS, para incluir los campos de la facturación electrónica de Paraguay – eKuatia/SIFEN. Algunos de esos cambios (los más importantes) se encuentran citados en éste apartado de documento:
    https://facturasend.com.py/documentacion/requisitos-de-cambios/ 
  2. Preparar las vistas o tablas, desde donde puedan ser visualizados los datos para las transacciones, conforme la documentación en “SQLSync – Estructura de tablas y Campos” mencionado anteriormente.
  3. Confirmar las ubicaciones en el monitor, para que pueda leer correctamente los datos, lo cual será mostrado a continuación.

Configuración de SQLSync #

Algunas configuraciones básicas pueden ser realizadas directamente desde la opción de Configuración del monitor. Todas las opciones de configuración están disponibles para edición de forma manual desde el archivo de configuración ubicado en resource/config.properties.

Para configurar la lectura de datos de las tablas, desde la pantalla inicial, debe acceder al botón Configuración

NOTA: Esto sólo es valido para cuando el integrador y el monitor se encuentran en ejecución desde la misma carpeta.

Luego dependiendo del tipo de base de datos debe configurar la conexión.

Ejemplo de configuración para MySQL #

Utilice el botón TEST para probar la conexión.

En dicho Diálogo, especifique los datos:

  • Tipo: MySQL
  • Host: IP o dominio del servidor de base de datos
  • Puerto: Puerto de la base de datos mysql.
  • Database: Nombre de la base de datos para la conexión.
  • Schema: No es necesario especificar.
  • Username: El nombre del usuario para conectarse a la base de datos.
  • Password: Contraseña para conectarse a la Base de datos.
  • Driver: El driver de la base de datos, que ya se encuentra en la carpeta libs

Ejemplo de configuración para DBF #

En dicho Diálogo, especifique los datos:

  • Tipo: Archivo DBF
  • DBF de transacciones: Seleccione el archivo que contiene las transacciones.
  • DBF Formas Cobro: Seleccione el archivo que contiene las formas de pago.
  • Tabla de Destino: Especifique una tabla donde FacturaSend almacenará los resultados de la integración, esta tabla será creada, caso no exista.

ATENCIÓN: Las dos tablas de lectura (transacciones y formas de cobro) más la tabla de destino, deben estar todas ellas, en la misma ubicación, o carpeta.

  • Presione click sobre el botón OK”.
  • Reinicie el monitor.jar, cierre y vuelva a ejecutarlo.
  • Si todo sale bien y ya tiene datos en la tabla, los mismos serán visualizados en la Grilla. Si tiene algún problema, examine el Archivo .log.

Configuración con Servidor de FacturaSend #

En la pestaña de facturasend se especifican los datos de conexión con su api, esta información se encuentra en la consola de Facturasend.

En dicho Diálogo, especifique los datos.

  • UrlApi: Debe especificar la url de acceso a su api en Facturasend que esta en la pestaña de Api Key y seria la url fija de la API
  • Authorization: Api-Key proveída y generada en Facturasend
  • Comunicacion Sincrona: Marque para hacer uso del servicio de envío síncrono de la SIFEN, o deje desmarcado para hacer uso del envío Asíncrono (lote) 
  • Ubicación de PDF: Ubicación donde se guardaran los pdf de los documentos
  • Ubicación de XML: Ubicación donde se guardaran los xml de los documentos
  • Ubicación de Json c/ Error: Ubicación donde se guardaran los jsons enviados a facturasend que dieron error para su análisis posterior
  • Datos de la BD c/ Error: Ubicación donde se guardaran los datos extraídos de la base de datos que se intentaron enviar a facturasend pero dieron error para su análisis posterior

RECOMENDACIÓN: Dejar desmarcada la opción de comunicación síncrona, ya que el servicio de la SET en producción no tiene habilitada ésta opción.

  • Presione click sobre el botón OK” y ya estará guardada la configuración.

Configuración de la Impresión automática #

En la pestaña “Impresoras” de la ventana de Configuración se muestran otras configuraciones para acciones que puede realizar el integrador.

En dicho Diálogo, especifique los datos.

Enviar KUDE a la impresora:Opción para especificar si quiere que se mande el pdf a una impresora al integrarse para realizar la impresión en el momento que se integre la factura de manera automática.

Filtro de Formato: Es un filtro de formato para la impresión , que puede ser A4, ticket o custom

Filtro de sucursales: Se utiliza para que el integrador pueda filtrar el muestreo de los datos por alguna sucursal específica, las sucursales se colocan de la siguiente manera sin las comillas: “001”, también se puede filtrar por más sucursales, separando con comas “001, 002”

Filtro de puntos: Se utiliza para que el integrador pueda filtrar el muestreo de los datos por algún punto especifica, los puntos se colocan de la siguiente manera sin las comillas: “001”, también se puede filtrar por más puntos, separando con comas “001, 002”

Filtro de Condición: Es un filtro por el tipo de pago que se realizó al documento, solo afecta a los documentos que cuenten con tipo de pago, 

como factura, no afecta a las remisiones por ejemplo.

Filtro de Documentos: Se deben de marcar todos los tipos de documentos que al integrarse se quieran imprimir con la configuración de impresora actual

Filtro de Documentos: Se deben de marcar todos los tipos de documentos que al cancelarse se quieran imprimir con la configuración de impresora actual

Nombre de la Impresora: Nombre por el cual es reconocido la impresora en el sistema

Cantidad de Copias: Cantidad de copias que desea imprimir por factura integrada

  • Presione click sobre el botón Guardar” y ya estará guardada la configuración.
  • Para editar una configuración existente, debe hacer doble click sobre la impresora de la lista y le traerá la configuración actual, la cual al editar debe presionar guardar nuevamente
  • Para eliminar una configuración, debe seleccionar con doble click laimpresora de la lista, y luego presionar el botón eliminar

Configurar logs (log4j) #

Las información sobre la ejecución, advertencias y errores  del monitor.jar así como del integrador.jar pueden ser visualizadas dentro de la carpeta del usuario (C:/Users/<user>/ o /home/<user>/ ) o en otro lugar de preferencia si se especifica.

Para configurar otro destino de los archivos logs se debe editar el archivo log4j.properties, sin embargo únicamente debe tocar el ítem “log4j.appender.logfile.File”.

Recordando que puede especificar lugares distintos de logs para cada componente, el log del integrador y monitor están separados en las carpetas resource-integrador y resource-monitor específicamente para mantener los logs independientes. Es importante entender que el archivo no existe, los logs no serán impresos y no se podrá hacer una depuración caso sea necesaria. La distribución de los archivos seria asi :

  • Carpeta resource: Solo contiene el archivo config.properties
  • Carpeta resource-integrador: Solo contiene el archivo log4j.properties
  • Carpeta resource-monitor: Solo contiene el archivo log4j.properties

log4j.appender.logfile.File=C:\facturacion\Monitor-PROD\integrador.log

Caracteres y símbolos especiales #

En Windows, usualmente algunos símbolos, acentos y caracteres especiales se ven con un formato no válido, por el encoding predeterminado.

Para evitar eso y hacer que por ejemplo, las Ñ,ñ se vean correctamente, cree una nueva variable de ambiente, para configurar el Encoding por defecto del Juego de caracteres JAVA.

Campo: JAVA_TOOL_OPTIONS Valor: -Dfile.encoding=UTF8

Para saber cómo configurar puede acceder a éste foro https://answers.microsoft.com/es-es/windows/forum/all/windows-10-variables-de-entorno-windows-10-version/703ea5fa-1db4-46da-8ff7-6261140bf58b 

También se pueden observar casos en las que el sistema haga una mala interpretación de los signos entre la separación de miles y las de los decimales, para ello dentro de la variable de entorno creada anteriormente(JAVA_TOOL_OPTIONS) se puede agregar estos parámetros, así poder evitar en un error en los montos finales

Estos parámetros serán -Duser.language=en -Duser.country=US, quedando finalmente dentro de JAVA_TOOL_OPTIONS : -Dfile.encoding=UTF8 -Duser.language=en -Duser.country=US