Cómo testear un webservice de Dynamics NAV con SoapUI (gratuito)

SoapUILlevo unos días trabajando con Servicios Web de Microsoft Dynamics NAV para poder exponer la lógica de negocio al exterior y permitir así conexiones externas. Y para ello he necesitado una herramienta de testeo fiable.

En mi caso ya he utilizado otras veces SoapUI y he tenido buenas experiencias, por lo que he querido detallar cómo realizar la comprobación del webservice con esta herramienta :-)

Para demostrar esto, he decidido crear una codeunit la cual contiene una sola función llamada “PrintPDFInvoice”. La cual al ser llamada imprimirá en PDF una factura específica.

SalesInvoiceHeader.RESET;
SalesInvoiceHeader.SETRANGE("No.",parInvoiceNo);
SalesInvoiceHeader.FINDSET;

SalesInvoice.SETTABLEVIEW(SalesInvoiceHeader);
SalesInvoice.SAVEASPDF('C:\Temp\'+parInvoiceNo+'.pdf');

Y exponemos la misma codeunit.

WebService

Visto esto, vamos a utilizar SoapUI para comprobar el correcto funcionamiento de esta funcionalidad. Para ello:

1.- Abrimos el navegador web con la URL proporcionada por NAV. En mi caso tiene el siguiente formato: http://localhost:”PuertoWebservice”/”NombreInstanciaNAV”/WS/”NombreEmpresa”/Codeunit/”NombreCodeunit”.

Deberíamos ver una estructura fácilmente reconocible: XML.

XML

2.- Una vez abierto en el navegador, guardamos la página mediante “Guardar página como…”. Importante: al guardar el archivo guardadlo en formato XML.

3.- Cuando tenemos el XML guardado abrimos la aplicación Soap UI (descarga aquí).

4.- Desde la aplicación vamos a Projects y hacemos botón derecho>New SOAP Project.

NewProject

5.- En la siguiente ventana desde el botón “Browse” elegimos el fichero XML que hemos guardado en los pasos anteriores, nos aseguramos de que la primera opción está activa y aceptamos.

ImportXML

6.- Esto nos generará el proyecto SOAP con los métodos que contenga el servicio web con un ejemplo de llamada al mismo. En caso de que no genere el ejemplo podemos hacer botón derecho encima del método y “New Request”.

Request

7.- El siguiente paso es especificar unas credenciales válidas. Para ello y con la request que utilizaremos seleccionada, abajo a la izquierda podremos especificar los parámetros “Username”, “Password” y “Domain”.

Credentials

8.- Ahora solo queda pasar en este caso el parámetro que nos pide el servicio web. Cada servicio web puede requerir unos parámetros específicos (o ninguno). En este ejemplo le pasamos un número de factura válido y lo ejecutamos:

Execution

9.- Una vez ejecutado y recibimos el ok de respuesta sabemos que podemos ir a buscar nuestro PDF en el directorio especificado en el código.

En mi opinión una de las partes más complejas de un servicio web es conocer exactamente la estructura XML que espera el servicio web publicado. Con este tipo de testeo podemos reconstruir el XML necesario y de este modo implementarlo en nuestro código independientemente del lenguaje que utilicemos posteriormente.









This entry was posted in NAV2009, NAV2013, NAV2013R2, NAV2015, Tips&Tricks, Web Services and tagged , , , , , , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

*