anonymous Log in
Search
Recents:
v3.0
xml-l
Webservices as a proc
13/11/19 13:07

r.calo6065

Replies: 0

Cómo están? me pasa lo siguiente, desde gx9 tenemos webservices que
consumimos como proc con *.call*, antes de ser llamados tenemos
getlocations para apuntar a distintos escenarios según nuestras necesidades
y al ejecutar genexus hace el llamado soap sin problemas.
En gx16 nos pasa que al hacer un *.call* a un webservices nos da un fault
string porque la manera que genexus arma el request no es la correcta.
*Cómo solucionamos esto? *
- Con wsdl inspector generamos "proxys", es decir, importo mi propio
webservices y lo ejecuto como tal, pero...
*Qué complicaciones trae?*
- Genera nuevos sdt, que si cambia la firma tenga que actualizar el
wsdl, mantenimiento y demás.
Me cuesta creer que esto haya dejado de funcionar en genexus también me
suena que esto alguien ya lo tuvo que sufrir y encontró alguna propiedad o
manera que me está faltando para poder consumir un webservices como .call
*Algún dato*
- La definición del proc es un main
- protocol SOAP.
- gx16u6
*Ejemplo*
*Forma correcta de consumir el ws*
Request:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns1="ns1">
<soapenv:Header/>
<soapenv:Body>
<ns1:pocWSLocation.Execute>
<ns1:Character>a</ ns1 :Character>
</ ns1:pocWSLocation.Execute>
</soapenv:Body>
</soapenv:Envelope>
Response:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="
http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<pocWSLocation.ExecuteResponse xmlns="ns1">
<Numeric>99</Numeric>
</pocWSLocation.ExecuteResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
*Forma en que lo genera genexus*
Request:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="
http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<Execute xmlns=" ns1">
<Character xmlns="http://tempuri.org/">a</Character>
</Execute>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Response:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="
http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<pocWSLocation.ExecuteResponse xmlns=" ns1">
<SOAP-ENV:Fault>
<faultcode>SOAP-ENV:Client</faultcode>
<faultstring>Error reading Execute
Message: &lt;Character xmlns="http://tempuri.org/
">a&lt;/Character></faultstring>
<detail>1</detail>
</SOAP-ENV:Fault>
</pocWSLocation.ExecuteResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
-----------------------------------------
Para Suscribirse/Desuscribirse:
http://www.gxtechnical.com/cgi-bin/hforum.exe?2,3,31
Por consultas owner-xml-l@gxtech.com.uy


Back to xml-l