Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Proyecto SIF/Veri*Factu/Ley Antifraude > General/Noticias
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-12-2024
RUBEN_SP RUBEN_SP is offline
Miembro
 
Registrado: mar 2008
Posts: 74
Poder: 19
RUBEN_SP Va por buen camino
Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
Si es posible, lo más sencillo (creo yo) es que tantos los programas cliente (ERP) como el servicio (o la app. que habías pensado) estén conectados a la Base de Datos.
Los ERP van colocando ficheros en la cola (es una o varias tablas dependiendo del diseño) y el servicio los va procesando y en la misma Base de Datos va generando las respuestas.
La lógica de envío sólo está en el servicio.
Y que paso si en el mismo servidor hay varias instancias de la Base de Datos porque hay varias instalaciones ¿Cómo sabe el servicio a cual tiene que atender?
Responder Con Cita
  #2  
Antiguo 11-12-2024
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 2.766
Poder: 8
ermendalenda Va por buen camino
Cita:
Empezado por RUBEN_SP Ver Mensaje
Y que paso si en el mismo servidor hay varias instancias de la Base de Datos porque hay varias instalaciones ¿Cómo sabe el servicio a cual tiene que atender?
Lo más rápido es un registro de índice único autonumerico y controlar poner en bucle los reintentos por si coinciden 2 escrituras. Cuando te deje escribir obtienes el número que será único.
Los servicios se atienden a quien los pide, no se entremezclan y además puedes mandarles parámetros para identificar desde donde lo envías para que se registre.

Última edición por ermendalenda fecha: 11-12-2024 a las 22:33:24.
Responder Con Cita
  #3  
Antiguo 12-12-2024
RUBEN_SP RUBEN_SP is offline
Miembro
 
Registrado: mar 2008
Posts: 74
Poder: 19
RUBEN_SP Va por buen camino
Cita:
Empezado por ermendalenda Ver Mensaje
Lo más rápido es un registro de índice único autonumerico y controlar poner en bucle los reintentos por si coinciden 2 escrituras. Cuando te deje escribir obtienes el número que será único.
Los servicios se atienden a quien los pide, no se entremezclan y además puedes mandarles parámetros para identificar desde donde lo envías para que se registre.
No entiendo donde pones ese registro de índice único, ni tampoco se como se pasan parámetros a un servicio que está en ejecución
Responder Con Cita
  #4  
Antiguo 12-12-2024
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.504
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 RUBEN_SP Ver Mensaje
Y que paso si en el mismo servidor hay varias instancias de la Base de Datos porque hay varias instalaciones ¿Cómo sabe el servicio a cual tiene que atender?

Es cuestión de buscar soluciones a los problemas.
En nuestro caso hay un único Servidor de Base de Datos, pero puede haber varias Bases de Datos dentro de ese servidor.
Cada base de datos es una empresa/obligado diferente (no se si es también tu caso); El servicio hace y una rueda y se va conectando a las diferentes Bases de Datos para enviar los datos de esa empresa. Una vez acabado se apunta en tiempo de espera (o el tiempo hasta el siguiente envío) para esa empresa.

Es decir, en nuestro caso, un único servicio se encarga de todos los envíos de las diferentes empresas/obligados tributarios. Por ahora en el Thread principal, porque no contemplamos que la "rueda de envío" pueda tardar más de 60 sg. Actualmente se hace muy rápido. Si en su día esa "rueda de envíos" empezara a tardar mucho, nos planteamos crear Threads (ya lo tenemos pensado).
__________________
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
  #5  
Antiguo 12-12-2024
rci rci is offline
Miembro
 
Registrado: nov 2020
Posts: 569
Poder: 6
rci Va por buen camino
Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
Es cuestión de buscar soluciones a los problemas.
En nuestro caso hay un único Servidor de Base de Datos, pero puede haber varias Bases de Datos dentro de ese servidor.
Cada base de datos es una empresa/obligado diferente (no se si es también tu caso); El servicio hace y una rueda y se va conectando a las diferentes Bases de Datos para enviar los datos de esa empresa. Una vez acabado se apunta en tiempo de espera (o el tiempo hasta el siguiente envío) para esa empresa.

Es decir, en nuestro caso, un único servicio se encarga de todos los envíos de las diferentes empresas/obligados tributarios. Por ahora en el Thread principal, porque no contemplamos que la "rueda de envío" pueda tardar más de 60 sg. Actualmente se hace muy rápido. Si en su día esa "rueda de envíos" empezara a tardar mucho, nos planteamos crear Threads (ya lo tenemos pensado).
Nosotros lo tenemos montado igual que vosotros Neftali, pero además en una misma base de datos puede haber varias empresas.
También estamos considerando hacer threads independientes para cada empresa (obligado tributario) para que se vayan enviando en paralelo las facturas de cada OT.
Pero como es un proceso que se va ejecutando repetidamente, si hacemos threads asíncronos, el proceso volverá a iniciarse y podría ser que el anterior no hubiera terminado y dos procesos estuviesen intentando enviar las mismas facturas. No tengo claro como hacerlo, porque si espero a que termine un envío (proceso síncrono) ya no tengo procesos en paralelo... le tendremos que dar una vuelta.
Saludos
Responder Con Cita
  #6  
Antiguo 12-12-2024
Avatar de YellowStone
YellowStone YellowStone is offline
Miembro
 
Registrado: feb 2007
Ubicación: Adeje
Posts: 170
Poder: 20
YellowStone Va por buen camino
De momento nosotros lo estamos controlando en desarrollo con un campo en la base de datos, cada vez que comienza un envío, se marca ese campo, y no se desmarca hasta que el propio proceso de envío lo desmarca al final, así si se intenta realizar un nuevo envío estando el campo marcado, no se permite.

El único problema que le veo a esto, que estoy pensando cómo solucionarlo, es que el proceso se interrumpa por cualquier motivo (un pantallazo azul de la muerte, por ejemplo) y no se desmarque el campo, y se queden las facturas sin enviar porque el proceso no arranca de nuevo.
Responder Con Cita
  #7  
Antiguo 12-12-2024
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 2.766
Poder: 8
ermendalenda Va por buen camino
Ojo con eso para no verifactu
Las bases de datos y datos tienen que estar claramente separadas para distintos obligados tributariosm
Y según cono tengas el sif también para verifactu.
Responder Con Cita
  #8  
Antiguo 12-12-2024
rci rci is offline
Miembro
 
Registrado: nov 2020
Posts: 569
Poder: 6
rci Va por buen camino
Cita:
Empezado por ermendalenda Ver Mensaje
Ojo con eso para no verifactu
Las bases de datos y datos tienen que estar claramente separadas para distintos obligados tributariosm
Y según cono tengas el sif también para verifactu.
Anda no sabia nada de eso.
nosotros en principio solo haremos modo Veri*Factu.
En cada tabla hay un campo que indica de que obligado tributario es esa información... eso sirve para lo que dices ermendalenda?
Responder Con Cita
  #9  
Antiguo 12-12-2024
razorxxx razorxxx is offline
Miembro
 
Registrado: jul 2015
Posts: 205
Poder: 12
razorxxx Va por buen camino
Cita:
Empezado por ermendalenda Ver Mensaje
Ojo con eso para no verifactu
Las bases de datos y datos tienen que estar claramente separadas para distintos obligados tributariosm
Y según cono tengas el sif también para verifactu.
¿Puedes indicar en qué artículo del reglamento pone que esto es así?
Responder Con Cita
  #10  
Antiguo 12-12-2024
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.504
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 ermendalenda Ver Mensaje
Las bases de datos y datos tienen que estar claramente separadas para distintos obligados tributarios

No se que quiere decir eso.
En un ERP con multiempresa puedes una Base de Datos con diferentes obligados tributarios. Creo que es lo habitual si piensas en empresas con varias sucursales, por ejemplo; o en un despacho/gestoría que gestiona N clientes.
__________________
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
  #11  
Antiguo 12-12-2024
razorxxx razorxxx is offline
Miembro
 
Registrado: jul 2015
Posts: 205
Poder: 12
razorxxx Va por buen camino
Cita:
Empezado por Neftali [Germán.Estévez] Ver Mensaje
No se que quiere decir eso.
En un ERP con multiempresa puedes una Base de Datos con diferentes obligados tributarios. Creo que es lo habitual si piensas en empresas con varias sucursales, por ejemplo; o en un despacho/gestoría que gestiona N clientes.
Pues claro. Es que de lo contrario puedes tener centenares o miles de bases de datos y gestionar eso no veas...
Responder Con Cita
  #12  
Antiguo 03-02-2025
glopez glopez is offline
Miembro
 
Registrado: ago 2003
Ubicación: Huelva
Posts: 84
Poder: 24
glopez Va por buen camino
Cita:
Empezado por YellowStone Ver Mensaje
De momento nosotros lo estamos controlando en desarrollo con un campo en la base de datos, cada vez que comienza un envío, se marca ese campo, y no se desmarca hasta que el propio proceso de envío lo desmarca al final, así si se intenta realizar un nuevo envío estando el campo marcado, no se permite.

El único problema que le veo a esto, que estoy pensando cómo solucionarlo, es que el proceso se interrumpa por cualquier motivo (un pantallazo azul de la muerte, por ejemplo) y no se desmarque el campo, y se queden las facturas sin enviar porque el proceso no arranca de nuevo.
Hola, Creo que esto podrías solucionarlo comprobando si el campo está "desmarcado" o eres el único que está conectado a la BD. Es decir, no hay nadie más conectado a esa empresa.
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
Capturar id de maquina remota mediaplanet API de Windows 3 18-05-2010 11:46:09
Instalar un proceso de forma remota fide_32 API de Windows 1 26-09-2008 11:08:42
Ejecutar programa desde una maquina remota rjsitruiz Varios 0 12-01-2005 17:55:19
abrir un documento en una maquina remota CarlosHernandez API de Windows 2 10-03-2004 22:47:14
Nuevo Contacto en máquina remota Igna Servers 1 21-01-2004 19:47:24


La franja horaria es GMT +2. Ahora son las 15:23:31.


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