Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Internet
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Colaboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-10-2019
CelsoO CelsoO is offline
Registrado
 
Registrado: oct 2019
Posts: 6
Poder: 0
CelsoO Va por buen camino
AEAT envio de datos vía Webservice problemas con WSDL

Buenos días, disculpar pero soy nuevo en WebServices y tengo un montón de dudas que me gustaría si pudiera alguien aclararme. Necesito enviar información a través de WS usando el mensaje Ie235, he obtenido la Interfase con WSDLImport sin problemas y en principio parece que todo es correcto, añadí el certificado, etc. y consigo conectar con el servidor de pruebas y recibo el XML de respuesta pero la clase de salida no se crea correctamente. Yo uso CppBuilder y recibo el puntero a la clase pero las propiedades están a NULL. Hablando con el soporte de la AEAT me indican que algunas veces hay problemas con algunas herramientas y me facilitan un cambio en el fichero WSDL pero no sé como realizarlo y modificar la Interfase.

por favor, ¿a alguno os ha pasado lo mismo?
Responder Con Cita
  #2  
Antiguo 05-10-2019
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Echa un vistazo al hilo de Nuevo sistema de la Agencia Tributaria española de envío de datos vía Webservice
Puede que ahí encuentres la solución.
Responder Con Cita
  #3  
Antiguo 05-10-2019
CelsoO CelsoO is offline
Registrado
 
Registrado: oct 2019
Posts: 6
Poder: 0
CelsoO Va por buen camino
Muchas gracias, lo he revisado y no he encontrado nada o no he sabido verlo. Mi problema es que no sé como una vez realizada la modificacion:
"
La primera, que mejor ha funcionado , es desplegar los wsdl's cambiando, sobre el fichero wsdl, la definición del mensaje de salida dejándolo de la siguiente forma:

<wsdl:message name="Salida">
<wsdl : part name="Ie215V1Sal1" element="Sal201:Ie201" />
<wsdl : part name="Ie215V1Sal2" element="Sal204:Ie204" />
</wsdl:message>
"


al importar el WSDL desde el archivo se pierde toda la extracion de tipos y no se como recuperarla.
Responder Con Cita
  #4  
Antiguo 05-10-2019
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por CelsoO Ver Mensaje
Muchas gracias, lo he revisado y no he encontrado nada o no he sabido verlo.
En menos de 5 minutos has revisado 76 páginas con 3038 mensajes, explícame cómo lo haces
Responder Con Cita
  #5  
Antiguo 05-10-2019
CelsoO CelsoO is offline
Registrado
 
Registrado: oct 2019
Posts: 6
Poder: 0
CelsoO Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
En menos de 5 minutos has revisado 76 páginas con 3038 mensajes, explícame cómo lo haces
Es una historia larga, llevo pegandome con este tema varias semanas, hasta encontrar donde esta el problema

Mi herramienta es/era rad 2009 archited y sim problemas pero al intentar enviar por primera vez mensjes con certificado digital han empezado los problemas por resumir he adquirido cppbuilder río Enterprise y sigo sin entender porque no funciona. Así que después de buscar en foros encontré el hilo que me sigeriste y despues de revisar (te aseguro que he revisado ha conciencia pues es lo más parecido a mi situacion) me decidí a registrarme y solicitar ayuda porque sinceramente ya no se que más hacer (he solicitado ayuda pagando y sin pagar y nada)
Responder Con Cita
  #6  
Antiguo 05-10-2019
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Intenta explicar con el mayor detalle posible tu caso, saludos.
Responder Con Cita
  #7  
Antiguo 06-10-2019
manelb manelb is offline
Miembro
 
Registrado: mar 2017
Posts: 297
Poder: 8
manelb Va por buen camino
Cuando dices...

Cita:
Empezado por CelsoO Ver Mensaje
... pero la clase de salida no se crea correctamente.
¿te refieres a que el xml que envías no está correctamente construido?


¿Habías enviado con anterioridad en Delphi ?
De tus mensajes entiendo que antes enviabas sin problemas con D2009 pero sin firmar. ¿Es esto correcto?


Saludos
Responder Con Cita
  #8  
Antiguo 06-10-2019
CelsoO CelsoO is offline
Registrado
 
Registrado: oct 2019
Posts: 6
Poder: 0
CelsoO Va por buen camino
Cita:
Empezado por manelb Ver Mensaje
Cuando dices...



¿te refieres a que el xml que envías no está correctamente construido?


¿Habías enviado con anterioridad en Delphi ?
De tus mensajes entiendo que antes enviabas sin problemas con D2009 pero sin firmar. ¿Es esto correcto?


Saludos

Disculpar, pero creia que habia respondido antes pero he debido de pulsar otro boton.

los XML se crean correctamente, el de envio lo validó el servicio de atencion al usuario de la AEAT , y en el de respuesta lo capturo en el evento AfterExecute y la respuesta indica lo esperado (error por activar el FLAG pruebas en el servidor de Debug de la AEAT). Si ya habia usado WS con RAD2009 pero a HTTP este es el primero a HTTPS con Certificado digital y despues de revisar horas foros parece que habia algun Bug en HTTPSOAPtransport que lanza EXecption sin serlo. Pero despues probar de todo decidí actualizar a CPPBuilder RIO 10.3, y me permite depurar el proceso y descubir que envia/recibe sin problemas pero por alguna razon no actualiza la Clase de vuelta.

Quiero decir, que cuando hago la llamada

outp= WS->Ie235V1(inp); es C pero es igual que Delphi!!


outp recibe una direccion (lo inicializo antes a NULL) pero las propiedades de la clase estan a NULL.

La Clase esta definida en WSDLImport como:

class Ie235V1SalType : public TRemotable {
private:
Ie2352* FIe235;
bool FIe235_Specified;
Ie204* FIe204;
bool FIe204_Specified;
void __fastcall SetIe235(int Index, Ie2352* _prop_val)
{ FIe235 = _prop_val; FIe235_Specified = true; }
bool __fastcall Ie235_Specified(int Index)
{ return FIe235_Specified; }
void __fastcall SetIe204(int Index, Ie204* _prop_val)
{ FIe204 = _prop_val; FIe204_Specified = true; }
bool __fastcall Ie204_Specified(int Index)
{ return FIe204_Specified; }

public:
__fastcall Ie235V1SalType();
__fastcall ~Ie235V1SalType();
__published:
__property Ie2352* Ie235 = { index=(IS_OPTN|IS_REF), read=FIe235, write=SetIe235, stored = Ie235_Specified };
__property Ie204* Ie204 = { index=(IS_OPTN|IS_REF), read=FIe204, write=SetIe204, stored = Ie204_Specified };
};


Segun la AEAT el problema es que está definida como COMPLEX ???? y da problemas con algunas herramienta ???? os adjunto el comentario

"
<wsdl:message name="Salida">
<wsdlart name="Ie235V1Sal" element="Sal235:CD235A" />
<wsdlart name="Ie235V1Sal2" element="Sal204:CD204A" />
</wsdl:message>

El mismo problema le ha ocurrido a alguna gente con el menasaje 215 que también tiene dos posibles respuestas (201 y 204) y le recomendamos la misma solución

"


Pero no sé como efectuar está modificacion, ya que al modificar el WSDL e importarlo con el wizard no me construye nada.??



Responder Con Cita
  #9  
Antiguo 08-10-2019
manelb manelb is offline
Miembro
 
Registrado: mar 2017
Posts: 297
Poder: 8
manelb Va por buen camino
Pues la verdad, no se me ocurre que aconsejarte…

Si me encontrase en esta situación, por probar, lo que haría sería enviar el xml directamente a través de un navegador para verificar si la respuesta es la misma.
Yo he utilizado el complemento para Chrome Wizdler.

Mi experiencia se base en los envíos del SII.
Supongo que de igual forma tienes un entorno de pruebas.

También verificaría que están instaladas las librerías capicom, y que se hace uso de ellas.
Para los envíos del SII son necesarias.

Siento no poder darte más información
Saludos
Responder Con Cita
  #10  
Antiguo 08-10-2019
CelsoO CelsoO is offline
Registrado
 
Registrado: oct 2019
Posts: 6
Poder: 0
CelsoO Va por buen camino
Cita:
Empezado por manelb Ver Mensaje
Pues la verdad, no se me ocurre que aconsejarte…

Si me encontrase en esta situación, por probar, lo que haría sería enviar el xml directamente a través de un navegador para verificar si la respuesta es la misma.
Yo he utilizado el complemento para Chrome Wizdler.

Mi experiencia se base en los envíos del SII.
Supongo que de igual forma tienes un entorno de pruebas.

También verificaría que están instaladas las librerías capicom, y que se hace uso de ellas.
Para los envíos del SII son necesarias.

Siento no poder darte más información
Saludos
sinceramente muchas gracias por tu ayuda, tengo una mezcla de errores que me han dejado bloqueado. Cuando corro el programa en RAD2009 (WIN7 Prof.) lanza una excepcion que no identifica nada que pueda ayudar (esto parece que hay reportado entradas al respecto, bug en HTTPRIOTranspor.pas). El mismo programa (version release) ejecutado en CppBuilder RIO (WIN 10 Prof.) envia y recibe los XML sin problemas (incleible!) pero las propiedades de clase resultante estan a NULL ( pero el puntero recibido que direcciona a la Clase se actualiza por la funcion llamada??) e imagino que esto es a lo que se refiere el soporte de la AEAT. en fin, parada y paso atras, ... mi problema es el tiempo.

gracias de nuevo
Responder Con Cita
  #11  
Antiguo 09-10-2019
manelb manelb is offline
Miembro
 
Registrado: mar 2017
Posts: 297
Poder: 8
manelb Va por buen camino
¿La unidad obtenida con el Import WSDL que utilizas para compilar en RIO es la generada con RAD2009 ??

Lo digo por que no puedas tener un cruce de versiones ...
Responder Con Cita
  #12  
Antiguo 09-10-2019
CelsoO CelsoO is offline
Registrado
 
Registrado: oct 2019
Posts: 6
Poder: 0
CelsoO Va por buen camino
Cita:
Empezado por manelb Ver Mensaje
¿La unidad obtenida con el Import WSDL que utilizas para compilar en RIO es la generada con RAD2009 ??

Lo digo por que no puedas tener un cruce de versiones ...
He empezado desde cero en CppBuilder RIO para evitar el cruce que me indicas, he encontrado la diferencia que me generaba un XML distinto (me incluia un NameSpace que no le gustaba a la AEAT , me falta encontrar el flag que lo activa o desactiva) solo me falta; como formatear la HORAPreparacion que segun la 3WC incluye ZonaHoraria (en este caso Z) y no les gusta a la AEAT y por ultimo conseguir que la Clase se genere correctamente para poder recuperar la informacion ya que el XML de respuesta llega correctamente.

Disculpa la paliza pero necesito habalar con alguien.

Si cobras por sesion de sicologia enviame la factura.

Gracias
Responder Con Cita
Respuesta



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
SII -Nuevo sistema de la Agencia Tributaria española de envío de datos vía Webservice newtron Internet 3594 Hace 3 Semanas 20:44:37
WSDL webservice con SSL agustibaldo Delphi para la web 1 27-06-2018 20:34:53
Error en Webservice funcion envio de sms webmasterplc Delphi para la web 5 25-07-2013 21:10:29
Consumir WebService. Ayuda con XML,WSDL,XSD,SOAP josemmerida Internet 2 23-12-2010 14:37:16
Problemas con envío de XML a un WebService davidvamo Internet 1 13-02-2007 16:49:20


La franja horaria es GMT +2. Ahora son las 01:00:48.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi