![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
|||
|
|||
|
Cita:
Hola, lo veo arriesgarl por no decir MAL, a ver, te pongo un escenario: Envías a las 12:30:05 por que tu timer ha llegado a los 60segundos y había 1 ó 2 registros.inmed8atemente están generando un registro que se graba a las 12:30:07 que no entra en ese lote, pero es que tampoco podría entrar en wl siguiente por que no ha llegado a los 60 segundos de antigüedad, con lo cual cuando lo vayas a enviar tiene 118segundos, con lo cual ese envío tiene que estar finalizado en 2 segundos máximo, es arriesgado. O sea, todo lo que generes después de el último envio no lo puedes enviar hasta que cumpla cada uno de ellos 60 segundos, lo siento, pero lo tienes mal. Repasalo Por ejemplo: Reduce el timer a 10 segundos y mira cada registro pendiemte si ya ha cumplido los 60 segundos y metelos en el lote de envío. |
|
#2
|
|||
|
|||
|
Yo lo tengo como Jarogo08, con una pequeña variación:
- Tras recoger la respuesta del envío realizado y comprobar el tiempo de espera, es entonces donde hago una pausa con ese valor, y tras ello vuelvo a comprobar si ya hay más registros de facturacion pendientes de enviar. |
|
#3
|
||||
|
||||
|
Cita:
Cita:
"pero es que tampoco podría entrar en wl siguiente por que no ha llegado a los 60 segundos de antigüedad" Un registro NO DEBE enviarse con más de 240 sg. de antigüedad, de otra forma hay que marcarlo con INCIDENCIA, pero lo que es incorrecto es que no se pueda enviar con menos de 60 sg. de antigüedad. Tú puedes geberar un Registro de Facturación y enviarlo 2 sg. después, no hay problema, siempre y cuando el último envío haya sido hace 60 sg. Es decir, el escenario que dice [Jarogo08], que tenemos nosotros y que es correcto sería por ejemplo este: Código:
12:00:00 Se prepara envío (como es vacio, no se envía NADA); 60 sg. de espera 12:01:00 Se prepara envío (como es vacio, no se envía NADA); 60 sg. de espera 12:01:10 Generamos factura 1 12:01:45 Generamos factura 2 12:02:00 Se prepara envío (2 facturas); 60 sg. de espera 12:03:00 Se prepara envío (como es vacio, no se envía NADA); 60 sg. de espera 12:03:10 Generamos factura 3 12:03:20 Generamos factura 4 12:03:30 Generamos factura 5 12:03:40 Generamos factura 6 12:03:50 Generamos factura 7 12:04:00 Se prepara envío (5 facturas); AEAT contesta con 120 sg. de espera 12:06:00 Se prepara envío (como es vacio, no se envía NADA); 120 sg. de espera 12:08:00 Se prepara envío (como es vacio, no se envía NADA); 120 sg. de espera 12:09:50 Generamos factura 8 12:10:00 Se prepara envío (1 factura); AEAT contesta con 60 sg. de espera 12:11:00 Se prepara envío (como es vacio, no se envía NADA); 60 sg. de espera ...
__________________
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. Última edición por Neftali [Germán.Estévez] fecha: 08-05-2025 a las 11:29:59. |
|
#4
|
||||
|
||||
|
Creo que os estáis liando con el tema de tiempos.
Lo que tiene que esperar 60 segundos son los envíos, no un registro de facturación para ser enviado. Un Registro de Facturación puede enviarse 1 sg. después de haberse generado (siempre que en los últimos 60 sg. no hayas hecho un envío).
__________________
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. |
|
#5
|
|||
|
|||
|
Cita:
|
|
#6
|
|||
|
|||
|
Cita:
Exactamente + 2 Última edición por Jarogo08 fecha: 08-05-2025 a las 10:51:03. |
|
#7
|
||||
|
||||
|
Cita:
*El primer envío es el de puesta en marcha del servicio.
__________________
Uno se alegra de ser útil. (Isaac Asimov) |
|
#8
|
|||
|
|||
|
Cita:
Si no hay registros pendientes de envío ya no se envía nada y AEAT no contesta no? |
|
#9
|
|||
|
|||
|
Cita:
A mí también me descolocó esa frase, jeje. Si no hay registros pendientes yo no envío nada, espero a que vuelva a saltar el timer (cuya frecuencia es la que marcó el último envío, que puede ser del día anterior por ejemplo) |
|
#10
|
||||
|
||||
|
Cita:
Lo he puesto así para mantener la uniformidad. Cuando dice que hace "se genera envío (vacio);" significa que no hace envío. Voy a editar el mensaje anterior.
__________________
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
|
||||
|
||||
|
Reescrito quedaría así (a ver si se entiende mejor...)
Código:
Inicio sistema (no habrá nada) ... 12:00:00 Se prepara envío (como es vacio, no se envía NADA); 60 sg. de espera 12:01:00 Se prepara envío (como es vacio, no se envía NADA); 60 sg. de espera 12:01:10 Generamos factura 1 12:01:45 Generamos factura 2 12:02:00 Se prepara envío (2 facturas en el envío); 60 sg. de espera 12:03:00 Se prepara envío (como es vacio, no se envía NADA); 60 sg. de espera 12:03:10 Generamos factura 3 12:03:20 Generamos factura 4 12:03:30 Generamos factura 5 12:03:40 Generamos factura 6 12:03:50 Generamos factura 7 12:04:00 Se prepara envío (5 facturas en el envío); AEAT contesta con 120 sg. de espera 12:06:00 Se prepara envío (como es vacio, no se envía NADA); 120 sg. de espera 12:08:00 Se prepara envío (como es vacio, no se envía NADA); 120 sg. de espera 12:09:50 Generamos factura 8 12:10:00 Se prepara envío (1 factura en el envío); AEAT contesta con 60 sg. de espera 12:11:00 Se prepara envío (como es vacio, no se envía NADA); 60 sg. de espera ...
__________________
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. |
|
#12
|
|||
|
|||
|
Cita:
Nosotros lo tenemos tal cual, no cambia ni una coma ![]() Lo único que añadiría es que cuando salta el proceso, si hay algo para enviar, paramos el timer y lo volvemos a poner en marcha cuando termina. Esto, dependiendo de cuanto tarde en enviar, puede provocar algunos "desajustes". Pongo un ejemplo: 12:00:00 Se prepara envío: como es vacío, no se envía NADA. 60 sg. de espera 12:01:00 Se prepara envío. Aparecieron 5 facturas. Preparo todo, conecto, envío, cojo la respuesta y la proceso. En la respuesta me dicen que el próximo en 60 segundos. Pero imaginemos que esto todo lleva 5 segundos. Por tanto pongo el timer nuevamente en marcha a las 12:01:05 12:02:05 Se prepara envío: como es vacío, no se envía NADA. 60 sg. de espera Si os fijáis, del primer al segundo envío pasaron 60 segundos, pero del segundo al tercero pasaron 65. Entiendo que si hay poquitas facturas los 5 segundos que puse son exagerados pero si a lo mejor se está haciendo un proceso de facturación masivo y aparecen 90-100 facturas en ese minuto pues el proceso de envío puede llevar tranquilamente 5-10 segundos. O si internet va lento en ese momento, o si el web service tarda algo más de lo normal en responder.. Con esta manera de operar realmente no envío cada 60 segundos, sino que hay unas pequeñas variaciones. Pero bueno, como tenemos el margen de los 240 segundos por ahora no me estoy preocupando por ello. Última edición por Jarogo08 fecha: 08-05-2025 a las 11:59:12. |
|
#13
|
|||
|
|||
|
Cita:
Me parece correcto el sistema. En nuestro caso la tarea despierta siempre cada 60, pero a la práctica los envíos se harían en el mismo momento que este ejemplo de Germán, porque al despertar la tarea busca el valor de tiempo de espera indicado en la última comunicación (TiempoEsperaEnvio) y también la fecha y hora de ese último envío (TimestampPresentacion). Luego suma el TiempoEsperaEnvio al TimestampPresentacion y compara con la hora actual (del ROA). si ya ha pasado el tiempo, envía, sinó termina la tarea hasta la siguiente iteración, hay un sleep de 60s. Lo hemos hecho de esta forma, y no haciendo que la tarea espere un tiempo variable para despertar, porque la misma tarea al despertar envía (en procesos separados) registros de facturación de varios OT y he aceptado la posibilidad (supongo que remota o casi inexistente) de que para cada envío (a un OT) la AEAT conteste tiempos de espera distintos, y claro si fuera el caso, siempre esperaria solo el TiempoEsperaEnvio del último envío (del último OT). Imagino que nunca pasará pero por si a caso, tenemos una tabla donde se registra para cada OT el TiempoEsperaEnvio y el TimestampPresentacion del último envío y el servicio lo consulta antes de enviar. Encontráis algún problema en nuestro planteamiento? a parte de ser un poco mas de trabajo para el desarrollador y alguna conexión a base de datos mas Muchas Gracias Última edición por rci fecha: 08-05-2025 a las 12:16:20. |
|
#14
|
||||
|
||||
|
Cita:
Cuando aparece "se genera envío (vacío)" realmente el sistema no envía. El sistema ve que no hay nada que enviar y no conecta. He añadido la nota en el mensaje anterior.
__________________
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. |
|
#15
|
|||
|
|||
|
Cita:
Nosotros lo hacemos de forma muy similar, el servicio tiene una tarea que salta siempre cada 60 segundos. en ese momento comprueba el valor t que contestó el último envío y la fecha del último envío. Si ya ha pasado el tiempo o si hay mas de 1000 registros, envía. sino vuelve a esperar 60 segundos y vuelve a comprobar. Los 60 segundos de espera de nuestra tarea podría ser otro valor, por ejemplo 30... también habíamos probado con 1 segundo pero en ese caso consumía muchos recursos y no hace falta. mientras se despierte una vez cada minuto creo que ya está bien Última edición por rci fecha: 08-05-2025 a las 10:16:05. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Entorno pruebas AEAT | _Io | Envío de registros y sus respuestas | 8 | 02-04-2025 14:56:55 |
| Error 2004 - FechaHoraGenRegistro Exento De Subsanacion | bmfranky | Errores (relacionados con al AEAT) | 3 | 05-12-2024 13:36:39 |
| Error 3002 en subsanacion | ermendalenda | Errores (relacionados con al AEAT) | 5 | 14-11-2024 10:59:55 |
| Tabla de Facturas vs Detalles de Facturas | magnu9 | Conexión con bases de datos | 9 | 27-07-2007 17:27:37 |
| Campos calculados, facturas y detalles de facturas. | Letty | Conexión con bases de datos | 7 | 07-11-2003 11:19:44 |
|