[AX 2012 R3 - How To] Consumir una DLL desde .NET en X++

mayo 31, 2016 Christian Amado 0 Comentarios

Microsoft Dynamics AX Dynamics AX 2012 R3 permite consumir una dll de Microsoft .NET. En este caso mostraré cómo crear una dll y consumirla desde el AX. Todo el proceso se realiza en el Microsoft .NET Framework liberando así la carga al Dynamics AX.

DLL en Microsoft .NET

Con el Visual Studio (2015, en este caso) crearemos una librería de clases que imprimirá "Hola mundo desde .NET", para ello abrimos el Visual Studio y creamos un proyecto de tipo "Librería de clases":
namespace ClassLibrary1
{
    public class Class1
    {
        public string Saludar()
        {
            return "Hola mundo desde .NET";
        }
    }
}

1
La DLL resultante (ClassLibrary1.dll en este caso), guardaremos en la carpeta bin del servidor de Dynamics AX 2012. Generalmente en "C:\Program Files (x86)\Microsoft Dynamics AX\60\Client\Bin"

Consumo de DLL en AX 2012 R3

Una vez que la DLL fue copiada en la carpeta señalada, agregamos la referencia: 2

 Allí buscamos nuestra DLL, si es que no la agregamos en el GAC (generalmente no se realiza este paso): 3 Y por último, verificamos que la librería fue carga:

  4

 Llamamos al método Saludar() que está en la librería:
static void Job12(Args _args)
{
    CodeAccessPermission permission;      
    ClassLibrary1.Class1 dotnetClass;
    ;

    permission = new InteropPermission(InteropKind::CLRInterop);

    permission.assert();

    dotnetClass = new ClassLibrary1.Class1();

    info(dotnetClass.Saludar());
}

Y nuestro mensaje quedará así:
5

 De esta manera consumimos una librería básica de .NET, pero también podemos realizar tareas más complejas dejando al Microsoft .NET realizar toda la tareas, liberando la carga del Dynamics AX.