Llamar WSDL desde SAP

Continuando la discusión desde Consumir un Web Service JSON:

Saludos @Salco,

En la oportunidad que tuve de realizar ese código, era para consumir un WebService basado en SOAP. Es decir, a código puro puedes realizar peticiones GET y POST a literalmente cualquier servicio que sea visible a través de HTTP.

Lo que pasa es que por lo general cuando publicas un servicio en .NET la primera URL lo que te muestra el listado de todos los métodos que están disponibles (WSDL). Si quieres usarlo en SAP debes especificar la URL que realizará la funcionalidad X (Esta url la consigues haciendo clic en el método que quieres correr).

Me explico:


  1. Como pudiste observar la primera URL solo brinda un XML descriptivo el cual es un estándard y puede usarse en numerosos sistemas para mapear un objeto a dicho servicio.
  2. En la segunda puedes ver los enlaces que llevan directamente a cada método individualmente.
  3. Al hacer clic en el GetCitiesByCountry realmente estás accediendo a la URL que es la que ejecuta dicho proceso (Esta es la url que debes poner que llame en el programa para hacerle la petición GET.

@Salco, espero haber aclarado tu duda.

2 Me gusta

Según entiendo el departamento de TI puso a tu disposición una dirección WSDL que es la que muestra un XML con la definición de los métodos.

Si tienes una dirección como esta http://www.webservicex.com/globalweather.asmx?WSDL y remueves la terminación ?WSDL te quedará algo como esto que es donde accedes a los métodos directamente: http://www.webservicex.com/globalweather.asmx

Intenta hacerlo desde tu navegador y me dejas saber @Salco.

Muchas gracias @romaldyminaya por el interés.
Me da la impresión que la publicación de un ws se puede hacer de varias formas aunque sea basado en un wsdl.

He hecho los pasos con las url que vienen en tu post, y efectivamente así todo va bien.

Pero los de .NET de mi equipo han publicado los ws no con asmx (ws de asp) sino con svc (Windows Communication Foundation (WCF) service) y aunque hay dos wsdl, internamente no están construidos de forma análoga.
De hecho el tuyo tiene los “verbos” tiene GET y POST:

<wsdl:binding name="GlobalWeatherHttpGet" type="tns:GlobalWeatherHttpGet">
<http:binding verb="GET"/>

Pero mi wsdl no tiene dichos verbos.

Cuando en el navegador pongo tu url para ver los métodos (http://www.webservicex.com/globalweather.asmx) , se listan:

En esta caso, en el browser se puede hacer click en el método, navega a él y hasta puedes hacer una test.

Pero mi url al quitar ?wsdl (http://servweb2010/ServiciosWebSAP/Services/ConexconSap/DBSapCertificados.svc) lo que ocurre es lo siguiente:

En este caso sólo puedes hacer click en las url propuestas, que lo único que hacen es mostrarte de nuevo un wsdl.