Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   General/Noticias (https://www.clubdelphi.com/foros/forumdisplay.php?f=64)
-   -   Ver si proceso en ejecución en máquina remota (https://www.clubdelphi.com/foros/showthread.php?t=97110)

ermendalenda 13-12-2024 17:38:34

Correcto muchas gracias
Tanta normativa hay que leerla con más detenimiento y no me acostumbro.

glopez 03-02-2025 18:28:31

Cita:

Empezado por YellowStone (Mensaje 560694)
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.

ISCOPYME 10-04-2025 08:52:13

Cita:

Empezado por Neftali [Germán.Estévez] (Mensaje 560646)
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.


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.



Buenos días. A ver si alguien me puede dar alguna pista sobre el error que estoy teniendo. Yo hasta ahora tenía una dll que se encargaba de todo, el envío a la aeat, la respuesta, etc.... funcionando correctamente. Cuando he decidido crear un servicio que aproveche esta dll, mi sorpresa ha sido que no funciona correctamente, me da el siguiente error "Received content of invalid Content-Type setting: text/html - SOAP expects "text/xml".

¿ Alguien sabe algo de este error o me puede decir si se puede depurar un servicio en funcionamiento, para ver qué está pasando. ?

Muchas gracias.

Neftali [Germán.Estévez] 10-04-2025 09:46:55

¿Estás llamado a la URL correcta?
Deberás añadir log, para ver más o menos dónde está fallando.
CXreo que suele ser lo habitual, cuando el componente de envío no recibe una respuesta correcta al realizar la llamada, por ejemplo cuando la URL es incorrecta, pero sin saber algo más concreto es difícil.

ISCOPYME 10-04-2025 10:26:11

Hola. Buenos días.
La url que estoy enviando es : xxxxxhttps://prewww1.aeat.es/wlpl/TIKE-CONT/ws/SistemaFacturacion/VerifactuSOAP sin las xxxxx

Pero lo más curioso es que la dll es la misma, en un proyecto tengo una aplicación que llama a la dll y funciona correctamente y en el segundo proyecto que es el servicio hace exactamente lo mismo, pero la dll devuelve el error. He visto por ahí que hay que poner la propieda content-type del httprio en "text/xml; charset=utf-8" pero no lo veo en el componente por ningún sitio. No sé si lo tengo delante, pero no lo veo.

aleixep 11-04-2025 08:30:52

Cita:

Empezado por ISCOPYME (Mensaje 563662)
Buenos días. A ver si alguien me puede dar alguna pista sobre el error que estoy teniendo. Yo hasta ahora tenía una dll que se encargaba de todo, el envío a la aeat, la respuesta, etc.... funcionando correctamente. Cuando he decidido crear un servicio que aproveche esta dll, mi sorpresa ha sido que no funciona correctamente, me da el siguiente error "Received content of invalid Content-Type setting: text/html - SOAP expects "text/xml".

¿ Alguien sabe algo de este error o me puede decir si se puede depurar un servicio en funcionamiento, para ver qué está pasando. ?

Muchas gracias.

Primero que nada, ¡hola a todos! Este es mi primer mensaje al foro, así que espero hacerlo bien.

En nuestro caso, ISCOPYME, nos salía ese error cuando no se enviaba correctamente el certificado electrónico. Si abres el navegador web, pegas esa URL y no seleccionas el certificado, la AEAT devuelve un HTML indicando el error 403. En nuestro caso, si el Delphi no encontraba el certificado, cuando hacía la petición al WebService sin él, también devolvía un HTML. ¡Espero que te sirva!

ISCOPYME 11-04-2025 09:33:06

Cita:

Empezado por aleixep (Mensaje 563723)
Primero que nada, ¡hola a todos! Este es mi primer mensaje al foro, así que espero hacerlo bien.

En nuestro caso, ISCOPYME, nos salía ese error cuando no se enviaba correctamente el certificado electrónico. Si abres el navegador web, pegas esa URL y no seleccionas el certificado, la AEAT devuelve un HTML indicando el error 403. En nuestro caso, si el Delphi no encontraba el certificado, cuando hacía la petición al WebService sin él, también devolvía un HTML. ¡Espero que te sirva!

Buenos días aleixep, gracias por tu aportación. He puesto logs en todos los sitios y efectivamente, no se lanza el procedimiento OnNeedClientCertificate del httprio. Lo que no consigo entender es por qué sí se lanza cuando lo hago desde una aplicación/form y no se lanza cuando se está haciendo desde un servicio windows. ¿ Alguien sabe como forzar a que se ejecute este procedimiento siempre ?

Muchas gracias.

ISCOPYME 11-04-2025 13:31:17

Ya he averiguado el problema.

Lo pongo en vuestro conocimiento, por si a alguno le pasara.

Por lo visto al crear el servicio se instala bajo la cuenta del usuario del sistema local, que parece ser no tiene privilegios de acceso al almacén de certificados de windows. Cuando he cambiado el usuario que inicia la sesión a un usuario con privilegios ya funciona correctamente.


La franja horaria es GMT +2. Ahora son las 09:02:40.

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