Mostrando entradas con la etiqueta interoperabilidad. Mostrar todas las entradas
Mostrando entradas con la etiqueta interoperabilidad. Mostrar todas las entradas

lunes, 12 de marzo de 2012

Interoperabilidad de Microsoft Dynamics NAV con .NET

Desde la versión R2 de Microsoft Dynamics NAV ya podemos ampliar y enriquecer la funcionalidad del cliente de roles (RTC) y de Microsoft Dynamics NAV Server con los ensamblados del Framework de .NET.
Actualmente podremos utilizar la versión del Framework 3.5 y anterior, pero presumiblemente vamos a poder utilizar versiones posteriores en NAV 7.
Esta interoperabilidad nos permitirá:
-          Utilizar funcionalidad propia del Framework
-          Crear nuestras propias librerías
-          Utilizar soluciones de terceros.
Gracias a esta nueva capacidad, el único límite que tendrá nuestro NAV será la imaginación.
En nuestro ejemplo, vamos a utilizar la funcionalidad de Google Translator en NAV. 

Si nos fijamos en una página traducida, vemos en el navegador una cadena de texto llamando al traductor, a continuación el idioma origen, el idioma destino y, por último, el texto a traducir: http://translate.google.es/#en|es|good%20morning
Vamos a utilizar el cliente NAV RTC para pasarle a una librería personalizada el idioma origen, destino y el texto a traducir. Esta librería se encargará de abrir un navegador y dirigirse a la ruta que nos devuelve la traducción solicitada.

Desde Visual Studio creamos un nuevo proyecto de clase llamado TranslatorClass y nos aseguramos que tenemos elegido el Framework 3.5 o anterior.

Creamos la clase Translator que contendrá la función Traducir. Esta función recibe el idioma origen, el idioma destino y el texto a traducir.

Copiamos la dll generada y la pegamos en las siguientes rutas Add-ins del cliente clásico, RTC y Servidor para que sea ejecutada desde el cliente RTC o desde servidor.


Abrimos el cliente clásico de Microsoft Dynamics NAV y creamos una nueva page llamada Traductora. Esta page contendrá las siguientes variables.

Vemos que para llamar a nuestra librería personalizada tenemos un nuevo tipo de dato llamado DotNet. En el subtipo podemos elegir si será una librería del Framework o personalizada.

En nuestro caso será personalizada por lo que iremos a la pestaña DynamicsNAV.
Tras elegirla, vemos que podemos seleccionar la clase Translator que acabamos de desarrollar

Una vez aceptada, las variables de nuestra aplicación quedan así:


Por último indicamos que nuestra variable se ejecutará desde el cliente RTC
Creamos los campos para elegir el idioma, introducir el texto a traducir y un botón de acción que llamará a nuestra función Traducir, contenida en la variable que acabamos de agregar.

La llamada a la función para Traducir necesitará llamar primero al constructor de la clase ya que no es un método estático, y a continuación le pasaremos los parámetros necesarios a la función, llamándola para que traduzca a un idioma u otro según decida el usuario.
Guardamos la page y procedemos a ejecutarla

El resultado tras seleccionar un modo de traducción, introducir un texto y pulsar Traducir es el siguiente

Vemos lo sencillo que es enriquecer la funcionalidad de NAV RTC mediante su interoperabilidad con el Framework de .NET.