martes, 23 de mayo de 2017

Analizar estructura WSDL del Servicio AEAT a través de SoapUI


Vamos a utilizar la herramienta SoapUI para poder comprobar la estructura de cada WSDL proporcionado por la documentación técnica de la AEAT.

Para crear un proyecto pulsamos en File -> New Soap Project y creamos un proyecto SOAP con la estructura WSDL. Tenemos que copiar la dirección WSDL de la función que queremos analizar. En este caso he utilizado la función de SuministroFactEmitidas:


Al pulsar OK creamos un proyecto de comunicación SOAP con la AEAT comprobando que las llamadas principales se realizan con el nombre de "siiBinding" y que se pueden realizar tres llamadas principales: SuministroLRFacturasEmitidas, ConsultaLRFacturasEmitidas y AnulacionLRFacturasEmitidas:

Si abrimos cualquier función, encontramos la llamada Request 1 para obtener la plantilla XML de comunicación. Con dicha plantilla podemos comprobar que datos se solicitan en cada parámetro y la llamada al mismo así como el número de repeticiones que pueden darse en la plantilla.

Por ejemplo, para rellenar el dato de ID versión SII tendríamos que crear el objeto Cabecera y llamar a su parámetro IDVersionSii para escribir el valor. Esto lo veremos con más detenimiento en las llamadas desde Visual Studio.


Además, podemos comprobar en las propiedades, el EndPoint al que llama que en este caso está utilizando el EndPoint de pruebas. Si sustituimos los "?" por valores, podemos hacer una llamada y comprobar el resultado de la llamada pulsando el botón de "play" que tenemos en la parte superior de la ventana de Request 1.

2 comentarios:

Unknown dijo...

Magnifica información para los que estamos sufriendo con el SII y no tenemos experiencia en servicios web, soap y cosas de ese estilo.
Una pregunta ¿ Donde incluyes el certificado de la AEAT en SoapUI para lanzar los request ?

Muchas gracias

Unknown dijo...

Muy buenas, no me centré mucho en el sistem ade SoapUI para cargar los certificados de la AEAT. Directamente empecé a trabajar con el desarrollo en C# de la aplicación. No te puedo dar una respuesta a esto.