![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Control de flujo
Os cuento mi planteamiento por si le veis algún problema
Una vez generada una factura:
|
#2
|
||||
|
||||
Buenos días compañero.
No lo veo claro. El sistema (a mi forma de ver) es: - Genero factura y la pongo directamente en la cola de facturas a enviar. Puede que no haya ninguna o puede que haya alguna pendiente de envío por lo que esta se agregaría a ese paquete. - Se envía el paquete de posibles facturas pendientes, se recoge el tiempo a esperar para el siguiente envío, se vuelve a poner el programa en modo espera y se evalúan los resultados del último envío. - Las facturas ok se olvidan y luego habrá que manejar manualmente las rechazadas porque casi con toda seguridad necesitarán una factura rectificativa. Saludos.
__________________
Be water my friend. |
#3
|
|||
|
|||
Cita:
|
#4
|
||||
|
||||
Cita:
Pues "ahímasdao". De forma normal las nuevas que se vayan añadiendo a la cola entrarán en tiempo y si no lo hacen es porque el servidor en la respuesta anterior haya enviado un tiempo para el siguiente envío superior a los 2 minutos. La verdad es que no sé si en caso de pasar del tiempo por instrucciones del servidor habría que enviarlas como incidencia o no. Buena cuestión para preguntar a soporte de Verifactu. Saludos.
__________________
Be water my friend. |
#5
|
|||
|
|||
Date cuenta de que cuando se genera una factura esta se envía inmediatamente (vamos, se intenta enviar). Si no hay nada en cola, se envía sóla y no hay problema; si hay más en cola porque todavía no han pasado los 60 segundos desde el último envío, se envía con las demás (dentro del plazo); sólo si las otras que están en cola lo están porque hubo una incidencia, como la incidencia afecta a todo el paquete, esta última añadida se enviará junto con las otras con la marca de incidencia (aunque teóricamente estuviera en plazo)
|
#6
|
|||
|
|||
Cita:
Creo que la idea es más o menos la misma. Yo decía que genero la factura y la envío pero en realidad lo que hago es ponerla en el paquete para enviar junto con otras posibles (las que puedan estar porque cuando se emitieron no había pasado el tiempo preceptivo de espera). En fin, los envíos se hacen cada X tiempo (por si hubiera alguna en la cola) y también inmediatamente tras la generación (si no ha pasado el tiempo entonces se pone en el paquete de cola). En cualquier caso, con cada envío se procesa todo el paquete. |
#7
|
|||
|
|||
Cita:
De otra forma, el lío se propaga. Tenemos facturas con incidencia que podemos enviar y a la vez hemos generado algunas dentro de tiempo que no deberían ir con incidencia, pero ¿Hemos de comprobar cada una de las generadas para ver si entran en el paquete de incidencia o no? Vale, lo hacemos así y una queda fuera pero como hemos enviado el paquete con incidencia, hemos de esperar otros 60 segundos, por lo que esa que dejamos fuera, que no enviamos porque no cumplía con los requisitos de incidencia, resulta que cuando la vayamos a enviar ya está fuera de plazo y deberíamos marcar incidencia para ella. Me parece mucha, muchísima complicación añadida a lo complicado que resulta ya tener que controlar el flujo... |
#8
|
|||
|
|||
Cita:
|
#9
|
||||
|
||||
Tiempo de espera.
Hola, lo de incidencia por tiempo de envio, no lo tengais tan en cuenta para las facturas en un mismo registro de envio, al recibir el paquete, ellos desglosan cada factura y saben por el timestamp cual estaba fuera de tiempo, no diran nada por ello, es mas el tiempo de envio es lo unico que esta exento de subsanacion, lo unico que quieren evitar es que la gente se acostumbre a hacer las facturas y enviarlas cuando se les ocurra, por eso ponen un tiempo, pero realmente no lo tienen en cuenta, es mas desde el principio , al enviar debugeando las facturas he tenido varias facturas con el error 2004, y tras diversas consultaas de mi parte y de otros compañeros, nos confirmaron que no necesita subsanacion.
Otra cosa seria que todos los envios de nuestro SIF, fueran marcados con incidencia, supongo que ahi si tendriamos algun problemilla. Tened en cuenta que al responder el tiempo de espera, la operativa es: 1-> Esperar t Segundos o. 2-> Reunir 1000 registros. Lo que se alcance primero. Desde mi punto de vista, crearia una cola de envio automatizada que cada x segundos(o 1000 registros) ,por ejemplo 100", realizara el envio, si hay algun error* , activo el flag de incidencia y continuo agregando registros, la cola deveria intentar el reenvio automaticamente, en el momento que se hayan enviado todos los registros o el primer elemento a enviar este dentro de la franja de 120", se desactiva automaticamente el flag y se continuan enviando los mismos sin incidencia. *Aqui habria que tener en cuenta que causo el error , para implementar la solucion y notificar la causa de la incidencia a la aeat, no es lo mismo, que el servidor de ellos no responda, que nosotros no tengamos internet, que se fuera la luz en pleno envio, que conteste duplicado... Aunque yo no tengo previsto implementar la cola, de momento, puesto que en mi caso , si hoy no puedo hacer factura, perfectamente puedo cobrarle al cliente y enviar a fin de mes la misma, sin problemas.
__________________
Uno se alegra de ser útil. (Isaac Asimov) |
#10
|
||||
|
||||
Cita:
1) Generáis 2 facturas con una diferencia de tiempo de 20 segundos y el tiempo que está devolviendo la AEAT para esperar entre envíos es de 60 sg. (por defecto) 2) Si intentáis enviar la facturas inmediatamente después de su generación, váis a tener problemas. ¿Es correcto?
__________________
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. |
#11
|
|||
|
|||
Cita:
Esto me lleva a la conclusión de que va a ser tal el lío que no temdran mas remedio que abrir la.manoy permitir los envios antes de tiempo entre otras cuesriones. Sii no no van a tener capacidad de absorber esto |
#12
|
||||
|
||||
Cita:
Cita:
![]() No es lo mismo, facturar las facturas una a una que por "bala" que seas, te da igual esperar 1 minuto, es mas o menos lo que tardas en introducir los datos , previsualiza y demas, que como vosotros gestionar un multi puesto que en 20" te pueden generar 10 facturas o mas, si es una caja que coje los datos de un codigo de barras y los asigna en decimas de segundo, ya me diras, entonces, no es la misma forma de plantear el control de flujo. En mi caso es el siguiente, enpiezo a facturar realizo una consulta a la aeat para ver que este el servidor activo sino saco un mensaje para realizar una proforma y cuando haya conexion facturar y enviar, relleno lo necesario e intento enviar la factura, si todo OK, inicializo un timer con un flag que me impide enviar nada hasta que pasen los t segundos que devolbio hacienda. Hasta el momento , incluso con las pruebas moñas tardo unos 45" en selecionar el tipo de factura, introducir algo en la mas sencilla que es un F2, previsualizar y enviar que en mi caso lo he dividido en 2 modulos independientes , y proceder el envio, esperar 15" mas no es problema, "OJO EN MI CASO". En vuestro caso , si o si, se deve implementar un gestor de envios independiente, que solo recoja las facturas que se le pasen , encadenadas o encadenandolas el, haga los intentos de envio y demas gestiones, sin asistencia del usuario, exceptuando fallos catastroficos, diria yo. A mi se me ocurre , por ejemplo: Se inicia el servicio: 1 -> Contadores de tiempo, incidencias etc a 0, false, primer envio true, etc... 2 -> Consulta a la tabla en la que se insertan los registros de facturas, abonos, restificativas ,etc a enviar.(esta consulta se realiza periodicamente cada 1" por ejemplo ->no vacia y primer envio a true, se hace consulta a aeat , asignando fecha y registro del primer envio en cola , se compruban todos los registros, descartan los ya enviados si los hay , se realizan las diversas comprobaciones para ver si los registros de la bbdd coinvciden con los de la aeat, se envia los restantes con incidencia si timestamp superior a actual +120". ->no vacia y tiempo de espera =0 o 1000 registros, envio inmediato. se pone el contador = a tiempo devuelto + 50 segundos. -> tiempo de espera --1; 3 -> se van apilando, desapilando los registros segun sea necesario y se repite sucesivamente el punto 2. Para apagar el servicio, se intenta primero vaciar la cola pendiente y luego se deja apagar. Estoy equivocado en mi planteamiento?
__________________
Uno se alegra de ser útil. (Isaac Asimov) |
#13
|
|||
|
|||
Cita:
Has tenido en cuenta si te devuelven 3600segundos de espera? Por que he visto que hay gente que np El problema es que muchos proponen enviar la factura inmediatamente aunque tengan que esperar. Última edición por ermendalenda fecha: 05-02-2025 a las 14:41:30. |
#14
|
||||
|
||||
![]() Cita:
Ademas si nos devuelven 1 hora , pues o habreis llegado al limite de 1000 registros o se envia como incidencia. Ya querria yo tener el problema de terminar 12 coches al dia y no poder facturarlos, por el tiempo de envio ![]() ![]() ![]()
__________________
Uno se alegra de ser útil. (Isaac Asimov) |
#15
|
|||
|
|||
Cita:
|
#16
|
||||
|
||||
t Segundos de espera.
Ojo, @elmendalenda, yo no he dicho 1 minuto yo siempre hago referencia a los t segundos que ellos devuelven, igual en vez de se 60" , son 20", porque ven que tus envios son muy espaciados...
__________________
Uno se alegra de ser útil. (Isaac Asimov) |
#17
|
||||
|
||||
Cita:
Yo creo que de normal no van a cambiar los tiempos, pero me da que esta opción está pensada para evirtar sobrecargas en sus servidores. Estoy pensando en momentos puntuales (final de mes) que la gente genere muchas facturas (o muchas empresas generándolas). Con esto minimizas las peticiones realizadas a sus servidores. Si cada 60 sg. tienes 100.000 peticiones, basta con enviar 120 sg. para tener la mitad o 240 sg. para tener un a cuarta parte (con el doble/cuadruple de facturas, eso si, pero no es lo mismo).
__________________
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. |
#18
|
|||
|
|||
![]() Bmfranky
Acabo de releer tu mensaje de control de flujos y creo que haces un control de flujos lógico según el requerimiento, pero me ha liado cuando has puesto que estabas en acuerdo y desacuerdo. No entiendo en qué pinto tienes el desacuerdo. El problema es que hay posta anteriores en que proponen un control de flujos no acorde a los tiempos (t) |
#19
|
||||
|
||||
![]() Cita:
![]() A lo que me referia es que indicais que la forma de gestionar las facturas es incorrecto si no se crea un gestor de envios, que tenga en cuenta los tiempos y demas, y "Personalmente" indico que para un SIF monopuesto y con un bajo nivel de facturacion , no es necesario, solo eso, no es que este encontra de lo que indicais , ni me parezca, mal ni nada de eso, si lo ha parecido , me disculpo. ![]()
__________________
Uno se alegra de ser útil. (Isaac Asimov) |
#20
|
||||
|
||||
Cita:
*Lo se no seria asi, pero es para que me se me entienda.
__________________
Uno se alegra de ser útil. (Isaac Asimov) |
![]() |
|
|
![]() |
||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Flujo de datos | lccarvajal814 | SQL | 5 | 05-12-2022 17:00:33 |
Diagrama de flujo de los conspiranoicos | rretamar | La Taberna | 2 | 03-12-2013 18:20:18 |
Variar control de flujo Puerto Serie | bactering | Varios | 3 | 20-03-2011 23:22:28 |
Problema al cerrar un puerto COM con control de flujo | vejerf | OOP | 1 | 25-07-2008 10:58:10 |
Problemas con la paridad y el control de flujo | atapia | Varios | 1 | 18-09-2007 11:35:29 |
![]() |
|