![]() |
¿Como hacéis los envios al web service?
Buenos días
Pues eso, quería saber cómo estáis planteando el tema de que cada X tiempo (entiendo que cada minuto, o máximo 2 minutos) salte el proceso de subir los registros pendientes al web service. En mi caso nuestro programa tiene base de datos SQL, con lo cual hay un servidor que tiene el SQL Server con la base de datos y luego equipos en red con el programa que se conectan a esa base de datos. También se puede dar que haya un equipo monopuesto, que hace de servidor y es donde el usuario trabaja o un cloud, en el que los usuarios se conectan al propio servidor que tiene la base de datos. Mis dudas son las siguientes: 1- ¿que equipo hace el envío? ¿el servidor o todos los equipos en red que tengan el programa abierto? 2- ¿como configuráis el envío? ¿una tarea programada de windows? ¿un servicio? ¿de otra manera? Yo tenía en mente que sea el servidor el que envíe. De esta manera sólo tengo la tarea en un equipo (el único que sé seguro que si está apagado nadie puede grabar registros, puesto que es donde está la base de datos; si el servidor está apagado o "colgado" la aplicación no funciona). Si son los equipos de la red los que envían me imagino que puede haber más problemas (que 2 equipos intenten enviar la misma factura, si se apagan pueden quedar registros sin enviar, etc.) Y por otro lado como se configura el envío. Tenía en mente una tera programada de windows que se lance cada minuto por ejemplo, pero algo leí de servicios e igual es mejor. Tengo que tener en cuenta que si por ejemplo tengo 500 clientes con mi programa no quería conectarme a 500 servidores a configurar 500 tareas programadas. ¿Hay algo que se pueda programar (en mi caso desde Visual Studio .NET) para que se configure automáticamante en una actualización del programa sin tener que conectarme a todos los servidores? Me gustaria escuchar opiniones y ver cómo lo estáis planteando Muchas gracias por todo! |
Ya hemos hablado de este tema; Revisa este hilo:
https://www.clubdelphi.com/foros/sho...light=Servicio Nosotros trabajamos con una instalación que requiere que un equipo sea "servidor"; En la mayoría de los casos coincide con la máquina donde está el SGBD -SQLServer- instalado. En esa misma máquina utilizamos varios servicios, entre ellos hemos implementado uno para los envíos. |
Muchas gracias por la respuesta, Neftali
Tendremos que investigar entonces como van los servicios. A ver si me puedes aclarar esta duda: ¿puedo crear desde Visual Studio los servicios en el servidor? ¿en una actualización del programa, por ejemplo? ¿o lo tengo que hacer manualmente? Porque si me tengo que conectar a todos los servidores que tengan el programa e ir creando los servicios va a ser un trabajo de chinos Muchas gracias de nuevo! |
Cita:
Los servicios debes instalarlos como cualquier aplicación normal. En nuestro caso va incluído en la instalación del servidor. Puedes crear un instalador y ejecutarlo con siguiente, siguiente,... |
Te cuento como lo he planteado yo:
Cada equipo, al tener consideración de SIF independiente y tener su propio encadenamiento y números consecutivos, se encarga de enviar sus propias facturas. Uso el componente de seccion_31 con algunas modificaciones que se encargan de leer el tiempo de espera informado por la AEAT y me envía un aviso a un evento del propio componente cuando se vuelve a abrir la ventana de envío. Todo esto lo tengo en un hilo de ejecución independiente que funciona en paralelo con el hilo principal del programa para que independientemente de lo que pase con los servidores de VeriFactu, el sistema principal funcione de forma normal.La solución de un servicio que recoja de varios SIFs me preocupa, ya que si falla el equipo donde se ejecuta dicho servicio quedarían todos los SIFs sin enviar. También me preocupaba que un servicio “independiente” pudiese contravenir la legalidad, ya que estrictamente hablando, el servicio que se encarga del envío bien podría adaptarse para funcionar en SIFs muy antiguos a los que no se les ha tocado ni una coma de código. |
Muchas gracias por tu aportación, DarkDudae
Cita:
Ahí ya me has descolocado un poco... entiendo que si tengo un equipo que hace de servidor y por ejemplo 5 equipos cliente conectados a ese servidor trabajando sobre la misma empresa es un único SIF y los encadenamientos son comunes, no para cada equipo. ¿no? Cita:
En mi caso eso no se debería dar, porque he creado una tabla donde voy grabando todos los registros a subir. Un cliente que no actualice a la última versión (la que controla el Verifactu) puede llegar a instalar el servicio, pero esa tabla no tendrá registros y no habrá nada que subir |
Cita:
Cita:
|
La franja horaria es GMT +2. Ahora son las 15:24:04. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi