Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Colaboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-03-2022
Alkavanyatur Alkavanyatur is offline
Registrado
 
Registrado: mar 2022
Posts: 1
Poder: 0
Alkavanyatur Va por buen camino
Hola

Estoy desarrollando un solución para TBAI y me he encontrado con un problemilla que quizás no tiene solución.

Lo comento por si a alguien le ha pasado lo mismo.

Los tiempos de respuesta de la llamada a generar la factura para obtener el QR son de aproximadamente 2 segundos en desarrollo. Por las características del negocio en el que me muevo es posible que se realicen 1000 operaciones por minuto o incluso más.

Las facturas tienen que ser secuenciales. Así que este problema limita totalmente ya que es imposible que funcione a esa velocidad.


¿Ideas? Decir que me he quedado sin conexión a internet cuando se de la casuística?
Responder Con Cita
  #2  
Antiguo 25-03-2022
DemonAscun DemonAscun is offline
Miembro
 
Registrado: mar 2021
Posts: 11
Poder: 0
DemonAscun Va por buen camino
Porque tardas 2 segundos en obtener el QR? Nosotros trabajamos también con grandes volúmenes de facturas y el proceso que consume más tiempo es el firmado de la factura al tener que encolar las facturas para conservar el encadenamiento. Una vez firmada ya la factura la generación del QR es instantáneo e independiente del envío.
Responder Con Cita
  #3  
Antiguo 25-03-2022
Avatar de keys
keys keys is offline
Miembro
 
Registrado: sep 2003
Ubicación: Bilbao
Posts: 1.237
Poder: 25
keys Va por buen camino
Cita:
Empezado por Alkavanyatur Ver Mensaje
Hola

Estoy desarrollando un solución para TBAI y me he encontrado con un problemilla que quizás no tiene solución.

Lo comento por si a alguien le ha pasado lo mismo.

Los tiempos de respuesta de la llamada a generar la factura para obtener el QR son de aproximadamente 2 segundos en desarrollo. Por las características del negocio en el que me muevo es posible que se realicen 1000 operaciones por minuto o incluso más.

Las facturas tienen que ser secuenciales. Así que este problema limita totalmente ya que es imposible que funcione a esa velocidad.


¿Ideas? Decir que me he quedado sin conexión a internet cuando se de la casuística?
ME imagino que como todos el cuello de botella lo tienes a la hora de firmar el fichero xml. Si es así lo único que puedes hacer es cambiar la forma de firmar los xml, si usas el programa de hacienda este es un poco lento en firmar. Hasta que no se firma uno no se puede hacer el siguiente factura, ya que depende de esta.
Responder Con Cita
  #4  
Antiguo 25-03-2022
Sistel Sistel is offline
Miembro
 
Registrado: nov 2019
Ubicación: Bilbao
Posts: 484
Poder: 7
Sistel Va por buen camino
Cita:
Empezado por Alkavanyatur Ver Mensaje
Hola

Estoy desarrollando un solución para TBAI y me he encontrado con un problemilla que quizás no tiene solución.

Lo comento por si a alguien le ha pasado lo mismo.

Los tiempos de respuesta de la llamada a generar la factura para obtener el QR son de aproximadamente 2 segundos en desarrollo. Por las características del negocio en el que me muevo es posible que se realicen 1000 operaciones por minuto o incluso más.

Las facturas tienen que ser secuenciales. Así que este problema limita totalmente ya que es imposible que funcione a esa velocidad.


¿Ideas? Decir que me he quedado sin conexión a internet cuando se de la casuística?
Hola Alkavanyatur,

2 segundos es una barbaridad de tiempo para generar y firmar el XML.
Sólo se me ocurren varios casos en que se pudiese tardar tanto:

1- Que la generación y firma del XML la hagas sobre un servidor en Internet que esté situado en la superficie de la Luna (justo un ping de 2 segundos)
2- Que utilices para la firma el software Autofirma-Tortuga del Ministerio de Hacienda (un auténtico ejemplo de software ultralento)
3- Que para el proceso utilices red con protocolo TCP/Paloma_mensajera_lenta

Si quieres un sistema de firma rápida en red, te basta con montar un simple microordenador Raspberry PI de unos 30€ en tu propia red local con el software de firma firmador.php de nuestro colega (y nunca bien alabado) Bilbur.
Con este sistema, lo normal será que no pases de 10 milisegundos en tiempo para obtener la firma.

Con 1.000 facturas por minuto el Raspberry Pi estará aburrido por tan poca carga de trabajo

Saludos
Responder Con Cita
  #5  
Antiguo 01-06-2022
bilbur bilbur is offline
Miembro
 
Registrado: dic 2019
Posts: 62
Poder: 7
bilbur Va por buen camino
Cita:
Empezado por Sistel Ver Mensaje
Hola Alkavanyatur,

2 segundos es una barbaridad de tiempo para generar y firmar el XML.
Sólo se me ocurren varios casos en que se pudiese tardar tanto:

1- Que la generación y firma del XML la hagas sobre un servidor en Internet que esté situado en la superficie de la Luna (justo un ping de 2 segundos)
2- Que utilices para la firma el software Autofirma-Tortuga del Ministerio de Hacienda (un auténtico ejemplo de software ultralento)
3- Que para el proceso utilices red con protocolo TCP/Paloma_mensajera_lenta

Si quieres un sistema de firma rápida en red, te basta con montar un simple microordenador Raspberry PI de unos 30€ en tu propia red local con el software de firma firmador.php de nuestro colega (y nunca bien alabado) Bilbur.
Con este sistema, lo normal será que no pases de 10 milisegundos en tiempo para obtener la firma.

Con 1.000 facturas por minuto el Raspberry Pi estará aburrido por tan poca carga de trabajo

Saludos

Estoy preparando una API en PHP
Una pregunta para Sistel, El fichero json que envías a la API viene a ser el xml completo previo a la firma del mismo o es una conjunto pequeño de datos con los que generar el xml (código empresa, código cliente, fecha, etc)
Estoy optando por esto último pero así la API resulta menos "genérica" y mas "personalizada"


Gracias
Responder Con Cita
  #6  
Antiguo 02-06-2022
Sistel Sistel is offline
Miembro
 
Registrado: nov 2019
Ubicación: Bilbao
Posts: 484
Poder: 7
Sistel Va por buen camino
Cita:
Empezado por bilbur Ver Mensaje
Estoy preparando una API en PHP
Una pregunta para Sistel, El fichero json que envías a la API viene a ser el xml completo previo a la firma del mismo o es una conjunto pequeño de datos con los que generar el xml (código empresa, código cliente, fecha, etc)
Estoy optando por esto último pero así la API resulta menos "genérica" y mas "personalizada"
Gracias
Hola bilbur,

El fichero JSON que se envía a mi API contiene sólo los datos básicos:
- Identificación del emisor
- Datos del destinatario (si lo hay, como en el caso de factura completa)
- Tipo de factura y características esenciales
- Líneas de detalle (nombres de productos, importes unitarios, cantidades, descuentos, tipo de IVA, ...)

No se envían ni serie, ni número ni fecha de factura ni datos económicos ni total.
La API se encarga de:
- Verificar los datos que le llegan
- Recabar los datos de la última factura (de ese tipo) del emisor desde la base de datos
- Crear líneas de detalles adicionales si hay descuentos globales en la factura
- Calcular datos económicos como bases, cuotas de IVA, totales, ...
- Asignar serie, número y fecha de factura
- Crear el XML
- Firmar el XML
- Comprobar la validez del XML firmado (con el esquema XSD)
- Grabar los datos de la factura, los detalles y los importes en la base de datos
- Devolver un JSON con todos los datos calculados (bases, cuotas, totales, líneas de detalle), serie, número y fecha de la factura y códigos TBAI y QR
- Enviar a la correspondiente Hacienda Foral el XML TicketBAI y registrar el envío en la base de datos.

Opté porque la API lo haga todo y retorne todo lo necesario para crear el documento de la factura.
No puedo confiar en que llegue, del emisor, el total correcto o el número de factura o fecha correcta. Prefiero que eso lo genere mi API.

Saludos

Última edición por Sistel fecha: 02-06-2022 a las 09:13:31.
Responder Con Cita
  #7  
Antiguo 03-06-2022
Avatar de Eric Mtz
Eric Mtz Eric Mtz is offline
Miembro
 
Registrado: jun 2021
Ubicación: Vitoria-Gasteiz
Posts: 43
Poder: 0
Eric Mtz Va por buen camino
Question Una ayudita

Buenas a todos, tengo un pequeño dolor de muelas:

Estoy intentando parsear la respuesta de Batuz a objeto y con el 140 perfecto, pero el 240 no hay manera, he descargado los últimos XSDs publicados por Bizkaia y he regenerado la clase varias veces pero en todos los casos me peta diciendo:

"No se esperaba <LROEPJ240FacturasEmitidasConSGAltaRespuesta xmlns='https://www.batu etc..."

La clase parece haberse generado bien y el XML de respuesta tiene buena pinta así que no sé que más hacer ¿Habéis tenido algún problema similar?

Gracias y buen finde!
Responder Con Cita
  #8  
Antiguo 03-06-2022
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is online now
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.456
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Eric Mtz Ver Mensaje
Estoy intentando parsear la respuesta de Batuz a objeto y con el 140 perfecto, pero el 240 no hay manera, he descargado los últimos XSDs publicados por Bizkaia y he regenerado la clase varias veces pero en todos los casos me peta diciendo:

"No se esperaba <LROEPJ240FacturasEmitidasConSGAltaRespuesta xmlns='https://www.batu etc..."

La clase parece haberse generado bien y el XML de respuesta tiene buena pinta así que no sé que más hacer ¿Habéis tenido algún problema similar?
¿Exactamente qué XSD es el que te da problemas?
¿El error que obtienes, te da ejecutando algún código (dices que la generación parace correcta)? Puedes poner el código.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #9  
Antiguo 03-06-2022
Avatar de Eric Mtz
Eric Mtz Eric Mtz is offline
Miembro
 
Registrado: jun 2021
Ubicación: Vitoria-Gasteiz
Posts: 43
Poder: 0
Eric Mtz Va por buen camino
Post

Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
¿Exactamente qué XSD es el que te da problemas?
¿El error que obtienes, te da ejecutando algún código (dices que la generación parece correcta)? Puedes poner el código.
Hola Neftali, no quise dar demasiada información para no irme por las ramas.

El XSD es el siguiente: "LROE_PJ_240_1_1_FacturasEmitidas_ConSG_AltaRespuesta_V1_0_1.xsd", que a su vez depende de "batuz_Enumerados.xsd", "batuz_TiposBasicos.xsd" y "batuz_TiposComplejos.xsd"

El comando que empleo para generarlo es: (En la consola para desarrolladores de visual studio)

Código:
"/c LROE_PJ_240_1_1_FacturasEmitidas_ConSG_AltaRespuesta_V1_0_1.xsd batuz_TiposComplejos.xsd batuz_Enumerados.xsd batuz_TiposBasicos.xsd /namespace:TicketBaiBatuzAlta240Respuesta"
Trabajo en C# y el código para parsearlo a objeto es: (Me peta justamente en la línea donde se ejecuta el "serializer.Deserialize")

Código:
                LROEPJ240FacturasEmitidasConSGAltaRespuesta batuz240RespuestaAlta = new LROEPJ240FacturasEmitidasConSGAltaRespuesta();
                using (var reader = new StringReader(respuestaBatuz))
                {
                    batuz240RespuestaAlta = (LROEPJ240FacturasEmitidasConSGAltaRespuesta)serializer.Deserialize(reader);
                }
Tengo que añadir que tanto el comando como el código me han funcionado perfectamente con otras clases, incluido el propio 140 de Batuz.

Gracias de antemano
Responder Con Cita
  #10  
Antiguo 25-03-2022
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 2.766
Poder: 8
ermendalenda Va por buen camino
Cita:
Empezado por Alkavanyatur Ver Mensaje
Hola

Estoy desarrollando un solución para TBAI y me he encontrado con un problemilla que quizás no tiene solución.

Lo comento por si a alguien le ha pasado lo mismo.

Los tiempos de respuesta de la llamada a generar la factura para obtener el QR son de aproximadamente 2 segundos en desarrollo. Por las características del negocio en el que me muevo es posible que se realicen 1000 operaciones por minuto o incluso más.

Las facturas tienen que ser secuenciales. Así que este problema limita totalmente ya que es imposible que funcione a esa velocidad.


¿Ideas? Decir que me he quedado sin conexión a internet cuando se de la casuística?
Lo más parecido que me ha pasado es al meter un bmp en un pdf de más de 4 megas. Mira si la generación del qr puedes reducir le el tamaño, suelen tener varias opciones de tamaño para cuando el contenido es grabde
Responder Con Cita
  #11  
Antiguo 25-03-2022
joselugrk joselugrk is offline
Miembro
 
Registrado: abr 2021
Posts: 29
Poder: 0
joselugrk Va por buen camino
Question Petición de Consulta a Bizkaia

Hola y muchas gracias por vuestra colaboración,

Estoy haciendo pruebas con el envío de XMLs de Consultas a Bizkaia y me da el siguiente error:

Date: Fri, 25 Mar 2022 16:38:49 GMT
Server: JBoss-EAP/7
Content-Encoding: gzip
eus-bizkaia-n3-identificativo: nnnnnnnnnn (ID de la operación)
X-Powered-By: Undertow/1
eus-bizkaia-n3-mensaje-respuesta: =?windows-1252?Q?Operaci=F3n_err=F3nea.?=
eus-bizkaia-n3-codigo-respuesta: B4_1000025
eus-bizkaia-n3-numero-registro:
eus-bizkaia-n3-tipo-respuesta: Incorrecto
Content-Type: application/xml; charset=UTF-8
Content-Length: 0

El XML que envío es el siguiente:

<?xml version="1.0" encoding="utf-8"?>
<lrpficfcsgcp:LROEPF140IngresosConFacturaConSGConsultaPeticion xmlns:lrpficfcsgcp="https://www.batuz.eus/fitxategiak/batuz/LROE/esquemas/LROE_PF_140_1_1_Ingresos_ConfacturaConSG_ConsultaPeticion_V1_0_0.xsd">
<Cabecera>
<Modelo>140</Modelo>
<Capitulo>1</Capitulo>
<Subcapitulo>1.1</Subcapitulo>
<Operacion>C00</Operacion>
<Version>1.0</Version>
<Ejercicio>2022</Ejercicio>
<ObligadoTributario>
<NIF>-----------</NIF> (NIF y Nombre y apellidos que me han otorgado para pruebas)
<ApellidosNombreRazonSocial>nombre apellido1 apellido2</ApellidosNombreRazonSocial>
</ObligadoTributario>
</Cabecera>
<FiltroConsultaIngresosConSG>
<CabeceraFactura>
<SerieFactura>VT21</SerieFactura>
</CabeceraFactura>
<NumPaginaConsulta>1</NumPaginaConsulta>
</FiltroConsultaIngresosConSG>
</lrpficfcsgcp:LROEPF140IngresosConFacturaConSGConsultaPeticion>

Estoy viendo los ejemplos que tienen ellos y no consigo ver donde se encuentra el fallo. ¿Problemas de ...?

Saludos y buen fin de semana,
Joselu
Responder Con Cita
  #12  
Antiguo 25-03-2022
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 2.766
Poder: 8
ermendalenda Va por buen camino
Cita:
Empezado por joselugrk Ver Mensaje
Hola y muchas gracias por vuestra colaboración,

Estoy haciendo pruebas con el envío de XMLs de Consultas a Bizkaia y me da el siguiente error:

Date: Fri, 25 Mar 2022 16:38:49 GMT
Server: JBoss-EAP/7
Content-Encoding: gzip
eus-bizkaia-n3-identificativo: nnnnnnnnnn (ID de la operación)
X-Powered-By: Undertow/1
eus-bizkaia-n3-mensaje-respuesta: =?windows-1252?Q?Operaci=F3n_err=F3nea.?=
eus-bizkaia-n3-codigo-respuesta: B4_1000025
eus-bizkaia-n3-numero-registro:
eus-bizkaia-n3-tipo-respuesta: Incorrecto
Content-Type: application/xml; charset=UTF-8
Content-Length: 0

El XML que envío es el siguiente:

<?xml version="1.0" encoding="utf-8"?>
<lrpficfcsgcp:LROEPF140IngresosConFacturaConSGConsultaPeticion xmlns:lrpficfcsgcp="https://www.batuz.eus/fitxategiak/batuz/LROE/esquemas/LROE_PF_140_1_1_Ingresos_ConfacturaConSG_ConsultaPeticion_V1_0_0.xsd">
<Cabecera>
<Modelo>140</Modelo>
<Capitulo>1</Capitulo>
<Subcapitulo>1.1</Subcapitulo>
<Operacion>C00</Operacion>
<Version>1.0</Version>
<Ejercicio>2022</Ejercicio>
<ObligadoTributario>
<NIF>-----------</NIF> (NIF y Nombre y apellidos que me han otorgado para pruebas)
<ApellidosNombreRazonSocial>nombre apellido1 apellido2</ApellidosNombreRazonSocial>
</ObligadoTributario>
</Cabecera>
<FiltroConsultaIngresosConSG>
<CabeceraFactura>
<SerieFactura>VT21</SerieFactura>
</CabeceraFactura>
<NumPaginaConsulta>1</NumPaginaConsulta>
</FiltroConsultaIngresosConSG>
</lrpficfcsgcp:LROEPF140IngresosConFacturaConSGConsultaPeticion>

Estoy viendo los ejemplos que tienen ellos y no consigo ver donde se encuentra el fallo. ¿Problemas de ...?

Saludos y buen fin de semana,
Joselu
La verdad que no he llegado ahí, pero parece que no corresponde llo que estas poniendo en <FiltroConsultaIngresosConSG> con lo pone en el xsd de la definición correctamente:
<complexType name="FiltroConsultaIngresosConFacturaType">
<sequence>
<element name="Destinatario" type="tiposcomplejosocumentoType" minOccurs="0"/>
<element name="CabeceraFactura" type="tiposconsulta:CabeceraFacturaConsultaType" minOccurs="0"/>
<element name="Epigrafe" type="tiposbasicos:stringMax7Digits" minOccurs="0"/>
<element name="Estado" type="enum:EstadoRegistroConsultaEnum" minOccurs="0"/>
<element name="NumPaginaConsulta" type="tiposbasicos:intPositiveType"/>
</sequence>
</complexType>
Responder Con Cita
  #13  
Antiguo 28-03-2022
joselugrk joselugrk is offline
Miembro
 
Registrado: abr 2021
Posts: 29
Poder: 0
joselugrk Va por buen camino
Thumbs up Solucionado

Cita:
Empezado por ermendalenda Ver Mensaje
La verdad que no he llegado ahí, pero parece que no corresponde llo que estas poniendo en <FiltroConsultaIngresosConSG> con lo pone en el xsd de la definición correctamente:
<complexType name="FiltroConsultaIngresosConFacturaType">
<sequence>
<element name="Destinatario" type="tiposcomplejosocumentoType" minOccurs="0"/>
<element name="CabeceraFactura" type="tiposconsulta:CabeceraFacturaConsultaType" minOccurs="0"/>
<element name="Epigrafe" type="tiposbasicos:stringMax7Digits" minOccurs="0"/>
<element name="Estado" type="enum:EstadoRegistroConsultaEnum" minOccurs="0"/>
<element name="NumPaginaConsulta" type="tiposbasicos:intPositiveType"/>
</sequence>
</complexType>
Hola Ermendalenda,

Al final el problema era que estaba llamando a la a la URI de alta, modificación y anulación y debía ser a la de consulta:
https://pruesarrerak.bizkaia.eus/N3B4001M/kontsulta

Saludos y muchas gracias,
Joselu
Responder Con Cita
  #14  
Antiguo 28-03-2022
Irreo Irreo is offline
Miembro
 
Registrado: mar 2022
Posts: 70
Poder: 5
Irreo Va por buen camino
Cita:
Empezado por Alkavanyatur Ver Mensaje
Hola

Estoy desarrollando un solución para TBAI y me he encontrado con un problemilla que quizás no tiene solución.

Lo comento por si a alguien le ha pasado lo mismo.

Los tiempos de respuesta de la llamada a generar la factura para obtener el QR son de aproximadamente 2 segundos en desarrollo. Por las características del negocio en el que me muevo es posible que se realicen 1000 operaciones por minuto o incluso más.

Las facturas tienen que ser secuenciales. Así que este problema limita totalmente ya que es imposible que funcione a esa velocidad.


¿Ideas? Decir que me he quedado sin conexión a internet cuando se de la casuística?

No sé si te servirá, pero yo hago lo siguiente:
- Lo primero de todo genero el registro de factura vacío, con solo el número, y fecha y hora de expedición.
- Genero un registro en la "cola" de facturas para ese ID.
- Empiezo a procesar los datos enviados (factura, líneas detalle, etc.)
- Actualizo la tabla de factura con los datos definitivos, guardo las líneas de factura en otra tabla etc.
- Genero XML, QR, etc...


La instrucción SQL que utilizo genera el número y actualiza al mismo tiempo por lo que nunca se van a repetir. Tengo una tabla de "configuración" donde guardo el último número para cada CIF y serie (son dos empresas).

Código PHP:
$sql "UPDATE tb_config ".
    
" SET factura_siguiente = (@factura_siguiente := factura_siguiente) + 1 ".
    
" WHERE id_serie = ".fQuote($eDb->real_escape_string($seriesId));
fQuery($sql);

$sql "SELECT @factura_siguiente AS factura_siguiente";
$rsNextInvoice fQuery($sql); 
Es decir, podrías por un lado hacer una llamada para simplemente generar la factura y obtener su ID, y después seguir haciendo tus cosas, y en principio ya da igual que tardes 2 segundos, porque si otro proceso va a generar otra factura, se le asignará el siguiente número.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
SII -Nuevo sistema de la Agencia Tributaria española de envío de datos vía Webservice newtron Internet 3716 19-01-2026 20:01:34
Como utilizar la ayuda del nuevo Sistema Operativo gluglu Humor 3 24-09-2007 09:39:05
Aplicacion Agencia De Viajes ArdiIIa Varios 9 20-01-2007 16:49:53
El Vasco Aguirre Al González La Taberna 5 26-05-2006 09:22:28
Microsoft ha lanzado su nuevo sistema operativo DarkByte Humor 0 25-01-2004 09:21:14


La franja horaria es GMT +2. Ahora son las 09:58:47.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi