martes, 23 de mayo de 2017

Cargar Servicio IIS en un proyecto Visual Studio

Ahora vamos a ver como cargar esta plantilla WSDL en nuetro proyecto de Visual Studio. Para ello vamos a crear un proyecto de consola de Windows en mi caso:


Una vez creado nuestro proyecto, procedemos a cargar los servicios WSDL que queramos, para ello tenemos que agregar una referencia de servicio pulsando clic con el botón derecho del ratón sobre el proyecto y agregar -> Referencia de servicio:

Nos muestra una ventana para agregar la referencia de servicio, para ello copiaremos la dirección WSDL de SuministroFactEmitidas y pulsaremos el botón de "Ir", se nos creará un servicio llamado siiService al que podemos especificar un espacio de nombres, que en mi caso lo he titulado "SuministroFacturasEmitidas". 


Una vez agregado el servicio se crea una carpeta con el servicio activo, el cual podemos usar a través de la llamada using "nombreProyecto"."EspaciodeNombres". Con ello ya podemos crear las funciones del SOAP de AEAT:


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.

Comunicación SOAP WebService AEAT a través de C#

Voy a utilizar este Blog que tenía desde hace tiempo para ir registrando todas aquellas actividades de desarrollo que estoy realizando para poder tener un recordatorio de su uso y si además puede servirle a alguien, mejor que mejor.

Para empezar con las publicaciones, estoy desarrollando estos días una aplicación que tiene que permitir comunicar a través de SOAP con la web SII de la Agencia Tributaria. Este sistema nuevo se va a hacer obligatorio a partir del 1 de Julio y estoy desarrollando una aplicación en C# a través de Visual Studio para que comunique con un programa de gestión en FoxPro.

La idea es que la aplicación en C# sea llamada por el programa de gestión en FoxPro a partir de unos argumentos que determinarán donde ha realizado la llamada y que tiene que consultar o gestionar. A través de estos argumentos empezará a realizar la llamada a una serie de objetos para consultar las tablas correspondientes y vayan rellenando los parámetros que está esperando el WebService del AEAT.

Como la aplicación va a ser un intermediario entre el WS y FoxPro, voy a crear un proyecto de consola. Esto es así porque las vistas ya se encarga la aplicación de FoxPro. De todas formas, si fuera necesario crear vistas o formularios, la gestión a través de SOAP es sencillo cuando comprobemos como llamar a cada parámetro.

El sistema SII de la Agencia Tributaria tiene una página para obtener la información técnica de comunicación donde, entre otros, recoge los WSDL de los servicios web que nos permitirán enlazar con Visual Studio:Agencia Tributaria Información Técnica SII



Vamos a empezar enlazando los dos que más importancia le doy por el funcionamiento que tiene la gestión de FoxPro: el libro de Facturas Emitidas y el libro de Facturas Recibidas.

También, para poder llevar una mejor comprensión de las funciones a las que vamos a llamar o rellenar y para saber la estructura de la comunicación, es imprescindible tener el documento de Descripción servicio Web en el apartado de ayuda técnica que nos permitirá saber que funciones hay que llamar y que objetos hay que crear para rellenar cada uno de los apartados. Además también sugiero el uso de la aplicación SoapUI que nos permite crear un proyecto y cargar los WSDL para ver la estructura del XML y que lo explicamos en el siguiente punto.

 

viernes, 22 de mayo de 2015