Integración Bridge 7.7 - Fiscal Flow e impresoras 2g
FUNCIONALIDAD IMPRESORAS 2G CON FISCAL FLOW
Introducción
A partir de la integración de con Fiscal Flow, el manejo de las agendas de descarga de archivos y liberación de memoria para impresoras de segunda generación, es responsabilidad de esta nueva solución. Para ello, Bridge debe informar las actividades del controlador fiscal a Fiscal Flow, así como solicitar la información de las agendas a esta nueva aplicación.
La consola de Fiscal Flow es la que reemplazaría lo que teníamos en 4.x con la parte de Informes Fiscales en el BM.
El presente documento describe desde un punto de vista más técnico, cómo es la integración, y los distintos parámetros asociados a la solución con Fiscal Flow. La utilización de las funcionalidades del POS siguen manteniéndose con la misma dinámica que la solución que se brindaba en 4.x con POS y BM.
Parámetros Bridge para la integración
En primer lugar, para indicar que el POS utiliza una impresora de segunda generación, los siguientes parámetros del run.bat deben contener los siguientes valores:
- -DfiscalMode=”true”
- -DfiscalDriver=”hasar250” o ”epsont900”
- -DfiscalNG=”true”
En BM, dentro de Configuración → Sistema, deberán configurarse las siguientes propiedades.
Dentro de Terminal → Factura Electrónica, indicar que se está utilizando Fiscal Flow y colocar factura electrónica en NO.
Luego dentro de Tienda → Factura Electrónica, colocar los valores correctos para el company secret y clientId, así como la url del agente de fiscal Flow (generalmente no se modifica).
Para obtener el clientId y company secret, se debe ingresar a la consola de fiscal Flow a Seguridad → Clientes Api y copiar los valores de allí.
Por último en Sistema → Setup Inicial se configura el intervalo de cada cuánto se consulta si existen agendas pendientes de descarga.
Recordar que esta tarea se ejecuta cuando el POS se encuentra en la pantalla de login y sin actividad por 5 minutos.
Crear terminal en Fiscal Flow
Las terminales deberán ser creadas en la consola de Fiscal Flow antes de comenzar la operación. Para ello deberá ingresarse al menú de la consola Negocio à Terminales y crear la misma desde allí. Deberá seleccionarse que dicha terminal utiliza impresora 2g:
Interacciones con Agente de Fiscal Flow para Operaciones 2g
En primer lugar, la documentación sobre los servicios expuestos por el agente para esta funcionalidad se encuentra en: https://share.linx.com.br/display/SYNTHESIS/FF+Agente+-+Servicios+Impresiones+2G
Validar si contamos con Agente disponible
Para validar si contamos con el agente de fiscal Flow levantado y disponible, se invoca el servicio “clientStatus”. Desde el POS abrimos el monitor de estados y el mismo debería encontrarse en verde.
En el log, también podemos obtener mas información buscando la palabra “clientStatus” y buscando la respuesta devuelta por el agente.
Así mismo, mediante la invocación del servicio “clientStatus”, fiscal Flow actualiza la relación controlador fiscal – terminal. Ya que si la impresora se mueve de terminal, luego de consumir este servicio, se actualiza dicha relación en la consola.
Informar actividad del controlador fiscal
Para indicar que una impresora tuvo actividad fiscal, el POS deberá consumir el servicio “authorize2g” del agente de fiscal Flow para las operaciones de venta, devolución y cambio.
Para validar desde el log del POS que este servicio se está invocando, podemos buscar dicho texto (“authorize2g”) en el mismo, y validar si el request es válido, así como si el response del agente es un “ack 0”.
Agendas
En la consola de Fiscal Flow, todos los días se crea la agenda de descarga de Journal Electrónico para todos los controladores fiscales 2g conocidos.
Desde la consola las podemos visualizar en Impresoras 2g → Agendas
Luego, al día siguiente si la impresora tuvo actividad para esa agenda, es decir, se realizó alguna llamada al servicio “authorize2g” para ese número de serie y punto de venta, la agenda quedará pendiente para su descarga y será informada cuando se invoque el servicio “pendingSchedule” descrito más adelante. Si no hubo actividad, la misma será eliminada y no será solicitada para su descarga.
También se crean semanalmente las agendas de presentación.
Consultar agendas para descargar
Debe recordarse que el POS debe encontrarse en la pantalla de login y sin actividad por 5 minutos, para que se ejecute la tarea que consulta si existen agendas pendientes de descarga y en caso de que las haya, realice la descarga de las mismas.
El POS invoca el servicio “pendingSchedule” del agente, que devolverá las agendas que deberán ser descargadas en ese momento en forma automática por el POS.
Puede buscarse en el log dicha palabra clave, y visualizar las agendas devueltas por el agente.
Los tipos de agenda existentes son:
- auditFile: Journal Diario
- presentationFile: Presentación semanal
- agendaDeleteJournalFile: Indica los Z a marcar como liberados en la memoria de la impresora.
Notificar descarga de archivo automática
Cuando el servicio “pendingSchedule” devuelve agendas, se realizarán las acciones correspondientes a las mismas.
Dos tipos de agendas (auditFile y presentationFile) disparan la descarga automática de los archivos correspondientes a dichas fechas. Esto produce una interacción con el controlador fiscal para solicitar estos archivos en un rango de fechas específico.
Una vez descargados los mismos, se invoca el servicio “notifyJournalFile” del agente. En el log se visualiza de la siguiente forma:
Mediante el campo “nameFile” se determina a qué agenda corresponde el archivo que se está notificando. En el nombre del archivo se indica que la descarga fue automática (aut), a qué compañía, tienda y terminal corresponde, así como el número de serie y punto de venta de la impresora. Se indica si el archivo corresponde a journal diario (auditFile) o presentación semanal (presentationfile) y el rango de fechas del mismo.
Una vez que el POS notifica el archivo de forma exitosa, además de revisar el log del POS, en la consola la agenda se debería visualizar la agenda con estado “Notificada”.
En caso de haber algún error en la descarga, se enviará el campo ack con el valor 1, y en el campo “message” la descripción del mismo. Al igual que cuando se envía de forma exitosa el archivo, además de revisar el log del POS, podemos ver en la consola de Fiscal Flow el error de descarga, pasando el mouse por encima del label rojo.
Así mismo, si requerimos que el POS vuelva a intentar descargar las agendas, podemos marcar los checkbox de esas agendas y luego el botón “reprocesar”. Esto produce que en la siguiente consulta de agendas mediante el “pendingSchedule”, estas agendas sean informadas para su descarga.
Notificar descarga de archivo manual
Mediante el menú del POS “Informes Fiscales” se puede solicitar descargar de forma manual tanto el archivo journal, como el de presentación.
Estos archivos que se descargan, no se corresponden con ninguna agenda. Corresponden a acciones del usuario por algún interés particular.
De todas formas, los mismos también son notificados a Fiscal Flow para poder ser visualizados desde la consola. El servicio utilizado es el ya conocido “notifyJournalFile”, solamente que la nomenclatura del archivo cambia:
En vez de que el mismo contenga el prefijo “aut”, contiene el prefijo “man”. El resto de los componentes del nombre del archivo se mantienen igual. En el caso de la descarga de archivos de auditoría, el mismo se puede hacer por rango de fechas, o por rango de Z. En este último caso, el nombre del archivo en vez de contener el rango de fechas, contiene el rango de números Z (inicio – fin) y se añade al final del nombre del archivo un “-z”.
A continuación un ejemplo de cómo se visualiza en el log, la invocación a este servicio:
Al día de hoy, no se encuentra desarrollado en la consola de Fiscal Flow la visualización de estos archivos, es por ello que no se agrega documentación al respecto.
Notificar Z marcado como liberado
Luego de la presentación de los archivos semanales en la AFIP, los Z contenidos en ese rango de fechas, puede marcarse en el controlador fiscal, como que puede ser borrada dicha información en caso de estar falta de memoria.
Cuando el servicio “pendingSchedule” nos devuelve una agenda el tipo “agendaDeleteJournalFile”, se ejecuta este proceso.
Luego, si la operación en el POS fue exitosa, se invoca el servicio “notifyLastDeletedJournal” indicando el último número de Z liberado en la memoria del controlador fiscal.
Dicha operación puede ser visualizada en el log de la siguiente forma: