Ver Mensaje Individual
  #8  
Antiguo 06-10-2019
CelsoO CelsoO is offline
Registrado
 
Registrado: oct 2019
Posts: 6
Reputación: 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