Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Proyecto SIF/Veri*Factu/Ley Antifraude > Envío de registros y sus respuestas
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #41  
Antiguo 12-11-2025
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 2.759
Poder: 7
ermendalenda Va por buen camino
Cita:
Empezado por razorxxx Ver Mensaje
Los que ya tenéis un buen recorrido con el tema de envíos y gestión de respuestas...., ¿cuánto habéis calculado que suele tardar de media en responder el servidor de la AEAT? Lo digo por si mi timeout de 30 segundos es mucho o poco.
Tarda poquisimo, yo he enviado 400 registros en un lote y no llega a 5 segundos, pero aquí hay que tener en cuenta distintas variablea:
Siempre vas tener una conexion estable y rapida?
Usas router de datos(tarjeta movil)?
Yo le tengo puesto parecido, 40 segundos, perp estoy pensando subirlo a 60 por que en algunas ubicaciones no llega fibra y tengo que usar datos.
Otra cosa importante es que el timeout lo tengas en cuenta restando a los 240segundos, por que si consideras que aun puedes enviar sin incidendia teniendo por ejempño, ya pasados los 210 segjundos, y hay un retardo puedes pasarte de los 240 y mejor que salte el timeout antes de llegar a lps 240 segundos y mandarlo como incidenxia posteriormente
Responder Con Cita
  #42  
Antiguo 12-11-2025
razorxxx razorxxx is offline
Miembro
 
Registrado: jul 2015
Posts: 196
Poder: 11
razorxxx Va por buen camino
Cita:
Empezado por ermendalenda Ver Mensaje
Tarda poquisimo, yo he enviado 400 registros en un lote y no llega a 5 segundos, pero aquí hay que tener en cuenta distintas variablea:
Siempre vas tener una conexion estable y rapida?
Usas router de datos(tarjeta movil)?
Yo le tengo puesto parecido, 40 segundos, perp estoy pensando subirlo a 60 por que en algunas ubicaciones no llega fibra y tengo que usar datos.
Otra cosa importante es que el timeout lo tengas en cuenta restando a los 240segundos, por que si consideras que aun puedes enviar sin incidendia teniendo por ejempño, ya pasados los 210 segjundos, y hay un retardo puedes pasarte de los 240 y mejor que salte el timeout antes de llegar a lps 240 segundos y mandarlo como incidenxia posteriormente
O sea, que a los 240 segundos le resto mi timeout, y ése sería el tiempo para comparar el primer registro pendiente de envío con el último para saber si hay que añadir el campo Incidencia = S?
Responder Con Cita
  #43  
Antiguo 12-11-2025
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 2.759
Poder: 7
ermendalenda Va por buen camino
Abro debate?
Considerais racional tener que ir andando con calxular si se ha pasado los 240 segunfos para poner la marca de incidencia, que sentido tiene si te pasas del tienpo, lo avises o no lo avises, por ejemplo:
Corte de luz y habia registros pendientes, cuando encienda vemos que hay registros pendientes y si estan en tiempo podemos enviarlos y si no lo estan marcamos incidencia y enviarlo... de verdad que no encuentro el sentido, alguien controla todos los motivos por los que se van a mandar tarde, por que srria racional si se pudiera y hubiera una descripxion del motivo, si no es que no tiene sentido marcarlos
Yo lo veo una colada que nos han metido. Quizas, para acojonar mas?

Última edición por ermendalenda fecha: 12-11-2025 a las 11:15:29.
Responder Con Cita
  #44  
Antiguo 12-11-2025
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 2.759
Poder: 7
ermendalenda Va por buen camino
Cita:
Empezado por razorxxx Ver Mensaje
O sea, que a los 240 segundos le resto mi timeout, y ése sería el tiempo para comparar el primer registro pendiente de envío con el último para saber si hay que añadir el campo Incidencia = S?
Sí, sería lo recomendable. De hecho ya me ha psado, por eso ahora lo resto.
Simplemente puede pasar que tengas un problema de red puntual y se quede mas tiempo y se coma el timeout completo y acabe enviandolo en los ultinos segundos del timeout.
Responder Con Cita
  #45  
Antiguo 12-11-2025
razorxxx razorxxx is offline
Miembro
 
Registrado: jul 2015
Posts: 196
Poder: 11
razorxxx Va por buen camino
Cita:
Empezado por ermendalenda Ver Mensaje
Abro debate?
Considerais racional tener que ir andando con calxular si se ha pasado los 240 segunfos para poner la marca de incidencia, que sentido tiene si te pasas del tienpo, lo avises o no lo avises, por ejemplo:
Corte de luz y habia registros pendientes, cuando encienda vemos que hay registros pendientes y si estan en tiempo podemos enviarlos y si no lo estan marcamos incidencia y enviarlo... de verdad que no encuentro el sentido, alguien controla todos los motivos por los que se van a mandar tarde, por que srria racional si se pudiera y hubiera una descripxion del motivo, si no es que no tiene sentido marcarlos
Yo lo veo una colada que nos han metido. Quizas, para acojonar mas?
Dicen que los están aceptando fuera de tiempo sin tener que poner lo de Incidencia=S, en el futuro ya se verá si se ponen más estrictos. Pero si se están enviando con Incidencia, y lo registras también internamente en tu SIF o aprovechas para enviarte un mail de aviso, al menos ya sabes que algo raro está pasando con el SIF, con la conexión o con el servidor de la AEAT.
Responder Con Cita
  #46  
Antiguo 12-11-2025
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 2.759
Poder: 7
ermendalenda Va por buen camino
Cita:
Empezado por razorxxx Ver Mensaje
Dicen que los están aceptando fuera de tiempo sin tener que poner lo de Incidencia=S, en el futuro ya se verá si se ponen más estrictos. Pero si se están enviando con Incidencia, y lo registras también internamente en tu SIF o aprovechas para enviarte un mail de aviso, al menos ya sabes que algo raro está pasando con el SIF, con la conexión o con el servidor de la AEAT.
Sí, bueno lo del email ya es una cosa personal , eso o algun metodo de notificaciones, hay quien usa telegram para enviar los mensajes, supongo que el cometido es ese, acojonar un poco y que estemos alertas a estas cosas.
Responder Con Cita
  #47  
Antiguo 12-11-2025
razorxxx razorxxx is offline
Miembro
 
Registrado: jul 2015
Posts: 196
Poder: 11
razorxxx Va por buen camino
Cita:
Empezado por ermendalenda Ver Mensaje
Sí, sería lo recomendable. De hecho ya me ha psado, por eso ahora lo resto.
Simplemente puede pasar que tengas un problema de red puntual y se quede mas tiempo y se coma el timeout completo y acabe enviandolo en los ultinos segundos del timeout.
El problema es que en Delphi hay 3 tipos de Timeouts para los envíos por SOAP (componentes THTTPRIO): uno para establecer la conexión, otro para el envío y otro para la recepción de la respuesta. ¿cómo se puede hacer para usar un timeout general de, digamos, 30 segundos?
Responder Con Cita
  #48  
Antiguo 12-11-2025
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 2.759
Poder: 7
ermendalenda Va por buen camino
Cita:
Empezado por razorxxx Ver Mensaje
El problema es que en Delphi hay 3 tipos de Timeouts para los envíos por SOAP (componentes THTTPRIO): uno para establecer la conexión, otro para el envío y otro para la recepción de la respuesta. ¿cómo se puede hacer para usar un timeout general de, digamos, 30 segundos?
A ver, el más extenso en tiempo debe ser el de esperar la respuesta, te explico por qué:
Verifactu recibe inmediatamente lo que envianos, pero encola las respuestas, con lo cual si le entran 100.000 envios en un segundo, las reciben todas y posteriormente dan la respuesra una vez que analizan el fichero recibido y responden en orden de entrada
Con lo cual
Establecimiento dd conexion =10 segundos van sobrados
Timeout envio= 20 va bien
Respuesta= lo máximo que puedas 30 o 40 segundos.

¿Qur puede ocurrir?
Que enviado el lote no recibas respuesta, y tu programa te dé el timeout, para tí no está enviado, pero ellos lo han gestionado, y cuando vuelvas a enviar te puede dar uno más registroa duplicados cuando tu no los tenias marcados, eso es importante tenerrlo en cuenta.
Responder Con Cita
  #49  
Antiguo 12-11-2025
razorxxx razorxxx is offline
Miembro
 
Registrado: jul 2015
Posts: 196
Poder: 11
razorxxx Va por buen camino
Cita:
Empezado por ermendalenda Ver Mensaje
A ver, el más extenso en tiempo debe ser el de esperar la respuesta, te explico por qué:
Verifactu recibe inmediatamente lo que envianos, pero encola las respuestas, con lo cual si le entran 100.000 envios en un segundo, las reciben todas y posteriormente dan la respuesra una vez que analizan el fichero recibido y responden en orden de entrada
Con lo cual
Establecimiento dd conexion =10 segundos van sobrados
Timeout envio= 20 va bien
Respuesta= lo máximo que puedas 30 o 40 segundos.

¿Qur puede ocurrir?
Que enviado el lote no recibas respuesta, y tu programa te dé el timeout, para tí no está enviado, pero ellos lo han gestionado, y cuando vuelvas a enviar te puede dar uno más registroa duplicados cuando tu no los tenias marcados, eso es importante tenerrlo en cuenta.
Sí, eso ya pasaba con el SII, el famoso error 3000. Cuando se reciba el error de registro duplicado, en mi sistema pasaré dicho RF a la tabla de Enviados (si bien mi app va a funcionar exclusivamente en modo VeriFactu, quiero que exista un histórico de lo que se ha mandado). El problema es que en estos casos el CSV no se puede recuperar, ni siquiera desde la consulta de RF, aunque creo que es un campo que realmente me lo puedo ahorrar en la tabla.
Responder Con Cita
  #50  
Antiguo 12-11-2025
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 2.759
Poder: 7
ermendalenda Va por buen camino
Cita:
Empezado por razorxxx Ver Mensaje
Sí, eso ya pasaba con el SII, el famoso error 3000. Cuando se reciba el error de registro duplicado, en mi sistema pasaré dicho RF a la tabla de Enviados (si bien mi app va a funcionar exclusivamente en modo VeriFactu, quiero que exista un histórico de lo que se ha mandado). El problema es que en estos casos el CSV no se puede recuperar, ni siquiera desde la consulta de RF, aunque creo que es un campo que realmente me lo puedo ahorrar en la tabla.
Si hombre, lo tienen controlado, cuando mandas un regustro duplicado si ha tendio algun error te lo devuelven junto con la respuesta de registro duplicado.
O sea pueden devokverte registro duplicado y fuera de tiempo, eso significa que cuando se envió entro tarde y sin marcar incidencia.
Pero si lo mandaste xomo incidencia creo que se pierde el rastro de que lo mandaste xomo tal, tanto en consulta como en la respuesta de duplicado, pero eso ya lo puedes contemplar tú.

Última edición por ermendalenda fecha: 12-11-2025 a las 15:12:29.
Responder Con Cita
  #51  
Antiguo 12-11-2025
Carlos Carlos is offline
Miembro
 
Registrado: ago 2025
Posts: 230
Poder: 1
Carlos Va por buen camino
Cita:
Empezado por ermendalenda Ver Mensaje
... que sentido tiene si te pasas del tienpo, lo avises o no lo avises, por ejemplo:...
Que la gente no tenga excusas para enviar cuando le parezca.

Cita:
Empezado por ermendalenda Ver Mensaje
Abro debate?
Considerais racional tener que ir andando con calxular si se ha pasado los 240 segunfos para poner la marca de incidencia, que sentido tiene si te pasas del tienpo, lo avises o no lo avises, por ejemplo:
Corte de luz y habia registros pendientes, cuando encienda vemos que hay registros pendientes y si estan en tiempo podemos enviarlos y si no lo estan marcamos incidencia y enviarlo... de verdad que no encuentro el sentido, alguien controla todos los motivos por los que se van a mandar tarde, por que srria racional si se pudiera y hubiera una descripxion del motivo, si no es que no tiene sentido marcarlos
Yo lo veo una colada que nos han metido. Quizas, para acojonar mas?
En absoluto.

Yo, o no lo entiendo o lo tengo demasiado claro.

Que tiene que ver los segundos de timeout, los 240 segundos (no sé por que esa fijación/manía con esa cantidad) o los que sean con enviar con el indicador de incidencia?

Si hay incidencia, pues se envía con el indicador de incidencia sean los segundos que sean; ha habido una incidencia, pues indicador a 'S'. Es una incidencia, da igual cuando ocurra.
Es decir, controlo la incidencia no cuando se da.
Ojo. Para mi que Veri*factu esté caído es una incidencia como cualquier otra, solo que la provoca el propio Veri*factu.
Mi cometido es enviar a Veri*factu, si por el motivo que sea no puedo, estoy sufriendo una incidencia.

Yo los XML los envío y me echo a dormir, si no recibo respuesta (timeout, caída de electra, internet o lo que sea), tengo un indicador del estado del envío ('Xml generado') que no ha cambiado a 'Enviado' (otra cosa es su respuesta); y además guardo para cada RF de ese XML el error (el de electra evidentemente que no podré).

Ese indicador del estado lo veo en pantalla y cuando CREO CONVENIENTE le doy al botón para volver a enviar (que sólo actúa si el estado es 'Xml generado'). Mi sistema de envío ya me dirá si han transcurrido los segundos de espera que me indicó hacienda en el último envío y continuaré o no; y además me pregunta "¿Quiere añadir indicador de incidencia?" (ya lo automatizaré), le digo que si y se envía.

Y cuando me llame alguien (ya se ha dado el caso) lo hemos resuelto con el botón de 're-envío'.

Eso si, en los primeros meses tocará redactar las soluciones que se den a circunstancias concretas y EXPERIMENTADAS. Que la teoría es como los powerpoints, lo aguantan todo.
En este caso, en mi caso: "Si el estado del envío es 'XML generado'-->>PULSE EL BOTÓN AZUL."

Añado: Y de mientras el sistema va facturando, generando RF (en otro XML diferente con 'n' RF) y enviándolos. Todo sigue su curso.

Última edición por Carlos fecha: 12-11-2025 a las 15:35:25.
Responder Con Cita
  #52  
Antiguo 12-11-2025
aleixep aleixep is offline
Miembro
 
Registrado: ene 2025
Posts: 25
Poder: 0
aleixep Va por buen camino
¡Buenas tardes!

Seguro que lo tenéis controlado, por eso solo quería recordar lo que menciona la Orden Ministerial que regula el Verifactu, en el artículo 16, punto 4 párrafo 2.

Cita:
El sistema informático deberá reintentar periódicamente, al menos una vez cada hora, el envío de los registros de facturación pendientes de remitir.
Nosotros cada hora revisamos si hay registros que están pendientes de enviar (sea porque no había internet, se fue la luz, o porque el envío entero devolvió un SOAP Error (por ejemplo, servidor de la AEAT caído)) y, si hay alguno pendiente de enviar, lo intentamos enviar. Si se arregla, genial. Si no, en una hora se volverá a intentar, y así hasta que se envíe.

¡Espero que sirva!
Responder Con Cita
  #53  
Antiguo 12-11-2025
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 2.759
Poder: 7
ermendalenda Va por buen camino
Yo intento cads 10 segundos.
Y nada de boton de reintento, el reglamento es claro, automatico, y mejor si no es muy sacrificado.
Responder Con Cita
  #54  
Antiguo 12-11-2025
Carlos Carlos is offline
Miembro
 
Registrado: ago 2025
Posts: 230
Poder: 1
Carlos Va por buen camino
Cita:
Empezado por ermendalenda Ver Mensaje
Yo intento cads 10 segundos.
Y nada de boton de reintento, el reglamento es claro, automatico, y mejor si no es muy sacrificado.
Tampoco es necesario cada 10 segundos, con que lo intentes cada 60 segundos por ejemplo, creo que estarías cubierto. Y el sistema trabajaría 6 veces menos.
Responder Con Cita
  #55  
Antiguo 12-11-2025
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 2.759
Poder: 7
ermendalenda Va por buen camino
Cita:
Empezado por Carlos Ver Mensaje
Tampoco es necesario cada 10 segundos, con que lo intentes cada 60 segundos por ejemplo, creo que estarías cubierto. Y el sistema trabajaría 6 veces menos.
Ya está muy depurado el procediniento y en su momento lo analicé así, he visto otros que lo hacen cada 20 segundos, he optado por un poxo más de sguridad en el envio a cambio de un pelín más de recursos, y no he visto que afecte a nada aprciable.
Fijate que a más numero de intentos en instalaciones de escritorio, menos probabilidades dr enviar con incidencias por problemas puntuales de internet
Responder Con Cita
  #56  
Antiguo 13-11-2025
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.435
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 razorxxx Ver Mensaje
Los que ya tenéis un buen recorrido con el tema de envíos y gestión de respuestas...., ¿cuánto habéis calculado que suele tardar de media en responder el servidor de la AEAT? Lo digo por si mi timeout de 30 segundos es mucho o poco.
La respuesta normal debería llegar como máximo en 1 o 2 sg (por tirar largo).
Si llegas a 30 (o yo diría 5 sg.) es que hay problemas.
__________________
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
  #57  
Antiguo 13-11-2025
novatico novatico is offline
Miembro
 
Registrado: dic 2022
Posts: 370
Poder: 4
novatico Va por buen camino
En nuestro caso, tras cada envío, se realiza una pausa de los segundos que en la respuesta de la AEAT figuren.
Tras esto, se vuelve a comprobar si hay registros pendientes de enviar, cada 5 segundos mientras no los haya.
En el momento que haya registros pendientes, volvemos a empezar.

Por supuesto, es un proceso completamente independiente del proceso de facturación.

!! Ah, se me olvidaba !!. En mis pruebas y a los clientes que ya tengo instalados, la respuesta es inmediata. Siempre inferior a 2 segundos.
Responder Con Cita
  #58  
Antiguo 03-12-2025
razorxxx razorxxx is offline
Miembro
 
Registrado: jul 2015
Posts: 196
Poder: 11
razorxxx Va por buen camino
A aquellos de ustedes que ya les ha pasado lo de enviar con el tiempo superior a 240 segundos (error 2004), ¿el registro se queda en AceptadoConErrores o como Correcto?
Responder Con Cita
  #59  
Antiguo 03-12-2025
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 2.759
Poder: 7
ermendalenda Va por buen camino
Cita:
Empezado por razorxxx Ver Mensaje
A aquellos de ustedes que ya les ha pasado lo de enviar con el tiempo superior a 240 segundos (error 2004), ¿el registro se queda en AceptadoConErrores o como Correcto?
Si consultas el servicio verás que pone aceptado con errores, es lo que toca la fibra. Como saber con el sevicio de consulta si está esperando subsanación
Que lio de verdad. Son malos?... noooo, lo siguiente.
Como nos va a transmitir un posible inspector ese problema? Te va a decir, ahh no pasa nada, si te han dicho que con el 2004 nada.. un mojón...

Última edición por ermendalenda fecha: 03-12-2025 a las 13:47:34.
Responder Con Cita
  #60  
Antiguo 03-12-2025
razorxxx razorxxx is offline
Miembro
 
Registrado: jul 2015
Posts: 196
Poder: 11
razorxxx Va por buen camino
Cita:
Empezado por ermendalenda Ver Mensaje
Si consultas el servicio verás que pone aceptado con errores, es lo que toca la fibra. Como saber con el sevicio de consulta si está esperando subsanación
Que lio de verdad. Son malos?... noooo, lo siguiente.
Como nos va a transmitir un posible inspector ese problema? Te va a decir, ahh no pasa nada, si te han dicho que con el 2004 nada.. un mojón...
Vaya, me lo temía. Supongo que en estos casos, se le mostrará en la interfaz al usuario que hubo error pero que no debe hacer nada para subsanarlo, no sé. Demasiadas casuísticas....
Responder Con Cita
Respuesta



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
TIBDataBase + Timeout mjjj Conexión con bases de datos 3 17-06-2010 22:56:36
Timeout de TIdsmtp mjjj Internet 0 11-01-2010 21:10:07
IBDataBase Timeout pabloc Conexión con bases de datos 0 20-06-2008 08:18:37
TimeOut en Sql Server FNADALO Conexión con bases de datos 1 28-09-2004 17:31:17
Cgi Timeout intro Internet 0 05-09-2003 01:36:40


La franja horaria es GMT +2. Ahora son las 06:38:18.


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