Cita:
Empezado por nincillo
Yo había pensado en abrir un puerto y por sockets hacer llamadas cada vez que se genera una factura para que el programa "externo" proceda al envío y sino hay respuesta a la petición avisar del problema.
|
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.
Cita:
Empezado por nincillo
¿Podrías orientarnos un poco el como hacer un programa que funcione como un servicio?
|
Nosotros diseñamos el servicio en 2 piezas (EXE + DLL). En realidad para facilitar debug y pruebas, se diseña un servicio y una aplicación.
Para no "repetir" código, toda la lógica se encuentra en la DLL y esa DLL se llama desde una APP y desde un SERVICIO.
Como he dicho la APP y el SERVICIO sólo tienen una llamada al método de "procesar" de la DLL (que tiene toda la lógica).
¿Porqué se hace esto? Porque los servicios no pueden tener parte visual y los LOGs para debug se envían al registro de eventos de Windows, en el caso de la APP sí puede tener parte visual y los LOGs para debug se envían a un fichero. Para todo el proceso de desarrollo se usa la APP+DLL y para el cliente final SERVICIO+DLL.
Si buscas por los foros encontrarás muchos hilos al respecto y posiblemente en el FTP encontrarás algún ejemplo:
https://www.clubdelphi.com/foros/showthread.php?t=89341
https://www.clubdelphi.com/foros/showthread.php?t=48843
https://www.clubdelphi.com/foros/showthread.php?t=12776
https://www.clubdelphi.com/foros/showthread.php?t=20913
https://www.intitec.com/varios/delph...io_windows.pdf