4.2.1. Flujo de los Servicios Asincrónicos
Las solicitaciones de servicios asincrónicos son procesadas de manera distribuida por
varios procesos en la aplicación de procesamiento de facturas de la DIRECCIÓN GENERAL
DE INGRESOS, y el resultado del procesamiento se obtiene en otra conexión, de acuerdo
con el siguiente flujo:
Solicitación del servicio
o El sistema del contribuyente establece la conexión con el WS de recepción de solicitaciones de servicio y envía un mensaje de solicitación de servicio para el WS.
o El WS recibe el mensaje de solicitación de servicio y lo coloca en la cola de servicios solicitados, juntamente con el RUC del transmisor, obtenido a partir del certificado digital del transmisor. o El WS contesta el recibo de la solicitación de servicio, juntamente con:
Ficha Técnica de la Factura Electrónica
Ficha Técnica Factura
Página 41
El tiempo promedio de procesamiento de un lote en este WS a lo largo de los últimos 5 minutos.
o El sistema del contribuyente recibe el recibo y lo coloca en la cola de recibos de servicios solicitados y termina la conexión.
Procesamiento del servicio
o En la DIRECCIÓN GENERAL DE INGRESOS la solicitación de servicio es retirada por la aplicación de procesamiento de facturas de la cola de servicios solicitados.
o El servicio solicitado es procesado por la aplicación de procesamiento de facturas y el resultado correspondiente es colocado en la tabla de servicios procesados.
Consulta del resultado del procesamiento.
o El sistema del contribuyente retira un recibo de la cola de recibos de servicios solicitados.
o El sistema del contribuyente establece una conexión con el WS de consulta de resultados de servicios solicitados y envía una consulta de recibo.
o El WS recibe el mensaje de consulta de recibo, y localiza el resultado del procesamiento correspondiente en la tabla de servicios procesados.
o El WS retorna el resultado del procesamiento para el sistema del contribuyente.
o El sistema del contribuyente recibe el mensaje del resultado del procesamiento y termina la conexión.
4.2.2. Colas y Mensajes
La cola de mensajes es necesaria para la implementación del procesamiento asincrónico
de las solicitaciones de servicios. Los mensajes de solicitación de procesamiento de
servicios son almacenados en una cola
19de entrada.
Cada posición de esta cola es conformada por un área de control, compuesta por los
campos descritos a seguir, y un área de mensaje, que contiene el XML completo del
mensaje recibido.
El área de control de la cola de recepción de mensaje está formada por los siguientes
campos:
RUC del transmisor: RUC de la empresa que hizo la transmisión del mensaje. No
necesariamente es el RUC del emisor de la FE; entretanto, solamente el transmisor puede tener acceso a la respuesta de los servicios asincrónicos.
Recibo de entrega: Constituido por un número secuencial único atribuido al mensaje por la
DIRECCIÓN GENERAL DE INGRESOS, precedido de dos números correspondientes al año. Este recibo identifica el mensaje de solicitación de servicios en la cola de mensajes.
Fecha y hora de recepción del mensaje: fecha y hora del instante que el mensaje fue recibido
por la DIRECCIÓN GENERAL DE INGRESOS. Este dato es importante como parámetro de performance del sistema, eliminación de mensajes, adopción de régimen de contingencia, entre otros. El tiempo medio de respuesta del sistema de la DIRECCIÓN GENERAL DE INGRESOS (apartado 4.2.2) se calcula con base en este atributo.
Versión: versión del formato del mensaje, se utiliza para la validación del schema XML y para
rechazar mensajes enviados en estándar que no más es válido para transmisión.
19La expresión “cola” es utilizada para nombrar un repositorio de datos. Su implementación se puede hacer en un Banco de Datos, o de cualquier otra manera, lo que es transparente para el contribuyente que realizará la consulta del procesamiento efectuado.
Ficha Técnica de la Factura Electrónica
Ficha Técnica Factura
Página 42
Con fines de procesar los mensajes de solicitación de servicios la aplicación de la
DIRECCIÓN GENERAL DE INGRESOS retira el mensaje de la cola de entrada de acuerdo con
el orden de llegada, y almacena el resultado del procesamiento correspondiente en una
cola de salida.
La cola de salida tiene la misma estructura de la cola de entrada, con la diferencia que el
área de mensaje contiene el XML correspondiente al resultado del procesamiento de la
solicitación de servicio, y que la fecha y hora corresponden al momento de
almacenamiento del resultado del procesamiento en la cola de salida.
Además de las colas de entrada y de salida, también existe una cola de procesamiento,
formada por los siguientes campos:
RUC del transmisor: RUC de la empresa que hizo la transmisión del mensaje.
Identificador de control de envío del lote: Constituido por un número secuencial único
atribuido al lote por la empresa que está transmitiendo el lote, precedido de dos números correspondientes al año. Esta información:
o Identifica el procesamiento requerido en la cola de procesamiento, y
o Tiene su generación y control como responsabilidad exclusiva de la empresa transmisora del lote. Fecha y hora de recepción del mensaje: fecha y hora del instante que el mensaje fue recibido
por la DIRECCIÓN GENERAL DE INGRESOS.
Versión: versión del formato del mensaje, se utiliza para la validación del schema XML y para
rechazar mensajes enviados en estándar que no más es válido para transmisión. Mensaje de entrada: XML de la solicitación de servicio.
Procesamiento completado: información de la aplicación de procesamiento con la respuesta
correspondiente a esta posición de la cola de procesamiento. Es el mensaje que se escribirá en el área de mensajes de la cola de salida.
El procesamiento se da de la siguiente manera:
Siempre que el servicio web de recepción procesa un mensaje, la aplicación correspondiente genera tantas entradas en la cola de solicitación de servicios cuantas sean las solicitaciones de servicio en este lote.
La aplicación de procesamiento busca la primera solicitación no completada, y realiza los procedimientos correspondientes, grabando el resultado en la cola de procesamiento. En el momento que se graba la información de procesamiento completado correspondiente a
la última solicitación de servicio correspondiente a este lote, la posición correspondiente de la cola de salida es generada con las respuestas de todas las solicitaciones.
4.2.3. Tiempo Promedio de Procesamiento de un Lote
El tiempo promedio de respuesta que mide el desempeño del servicio de procesamiento
de lotes se calcula con base en el tiempo pasado entre el momento de recepción del
mensaje de solicitación de servicio y el momento de almacenamiento del resultado del
procesamiento en la cola de salida.
Este tiempo es informado en segundos.
Siempre que el tiempo calculado como promedio sea inferior a 1 (un) segundo, la aplicación contestará este valor como tiempo promedio (un segundo).
Para los valores calculados superiores a un segundo, se presentará:
Ficha Técnica de la Factura Electrónica
Ficha Técnica Factura
Página 43
o El valor entero redondeado para arriba en los casos que la parte fraccionaria sea igual o superior a 500 ms.