Hotfix para mejorar el tiempo de compilación en AX 2012 R2!

No suelo publicar actualizaciones de hotfixes concretos porque normalmente sólo son útiles en algunos casos concretos, pero este vale la pena comentarlo porque es bien conocido por cualquiera que haya manejado mínimamente una instalación de Dynamics AX 2012 R2. Los tiempos de compilación desde la versión R2 son insostenibles, retrasándose hasta varias horas incluso con servidores sobradamente potentes y llegando a ser verdaderamente molestos en entornos virtualizados con recursos limitados como es el caso de la mayoría de consultores y desarrolladores.

Es por eso que es tan importante comentar este hotfix (KB2844240) que acaba de publicarse hace minutos y (todavía no lo he probado) mejora el tiempo de compilación en un 50% y equipara el tiempo de compilación de la R2 con la 2012RTM ¿Algo es algo, no?. Esta mejora se basa en una optimización del esquema (en los índices) de la nueva base de datos que almacena la Model Store.

Este hotfix estará disponible en el próximo CU6 ¿Ya lo estás descargando? Yo si!

P.D. Parece que tuviera preparada esta serie de post sobre hotfixes (1, 2, 3) pero prometo que ha sido totalmente fortuito 😉

Actualizado 05/05/2013

Después de instalar el parche en mi máquina virtual de pruebas (AX 2012 R2 CU1) he de decir que la mejora en el compilado X++ y CIL es muy notable. No puedo compararlo de manera eficaz y tampoco se si este resultado será extrapolable a servidores reales, pero he de decir que en una máquina virtual ejecutada en un PC normal (no un servidor) con 6Gb de memoria y 4 cores el compilado X++ se ha reducido prácticamente a la mitad!!

¿Qué hotfixes tenemos instalados en Microsoft Dynamics AX 2012?

Al hilo del post anterior, periódicamente voy anunciando en este blog todas las actualizaciones relevantes que se van publicando para Microsoft Dynamics AX en sus diferentes versiones. Después de algún tiempo puede ser complicado saber qué versión exacta tenemos instalada para revisar si necesitamos instalar un hotfix determinado o ya lo tenemos incluido en alguna de estas versiones acumulativas.

Hace unos días se publicó (en este blog) un artículo explicando como revisar los hotfixes/revisiones instalados en una aplicación Microsoft Dynamics AX 2012. Lo repito aquí porque las imágenes no se ven muy bien, pero el mérito de la idea es todo suyo. La idea es que se pueden ver todos los hotfixes y versiones instaladas en el nuevo repositorio de modelos, accesible desde el entorno de desarrollo > Ayuda > Acerca de Microsoft Dynamics AX > Mostrar modelos instalados:

AX 2012 - Ver modelos instalados(click para ver mas grande)

En el caso de la imagen (mi máquina virtual) tenemos una versión AX 2012 R2 RTM (6.2.158.0) con el CU1 instalado (6.2.1000.156). En esta lista de modelos irán apareciendo nuevos registros conforme se agreguen o eliminen actualizaciones, y podremos utilizar el formulario para buscar versiones concretas o numeros KB instalados. La lista completa de números de versión y parches publicados la tenemos en el siguiente enlace, que el equipo de Microsoft mantiene constantemente actualizado. Este enlace está a la derecha de este mismo blog, en el apartado de enlaces destacados, para que no se pierda 😉

Cumulative Update 5 for Microsoft Dynamics AX 2012

Microsoft Dynamics

Este fin de semana se ha publicado la última actualización acumulativa para Microsoft Dynamics AX 2012. Esta revisión (6.0.1108.XXXX), como de costumbre, agrupa todos los hotfixes publicados desde el lanzamiento de la primera versión (RTM) y está disponible para Microsoft Dynamics AX 2012 (6.0.947.0) y AX 2012 Feature Pack 1 (6.0.1108.0). Se puede ver el detalle de hotfixes incluídos y descargar la actualización en el siguiente enlace:

Recordar una vez más, que estas actualizaciones son acumulativas por lo que la última ya incluye el contenido de todas las anteriores. En esta ocasión, de entre las actualizaciones específicas de regiones incluidas, no hay ninguna para España.

También se ha publicado recientemente un White Paper que describe las modificaciones específicas para España que se publicaron en el CU3 referentes a los modelos 340, 347 y 349:

NOTA: Por aclarar, estas actualizaciones son para AX 2012 RTM y FP1. La versión AX 2012 R2 tiene su propia lista de actualizaciones y hasta la fecha el último publicado es el CU1 (KB2807685)

HOWTO: Información de Active Directory desde X++

Tenía este Job por aquí desde una vez que tuve que utilizarlo para activar/desactivar usuarios automáticamente en Microsoft Dynamics AX (probado en AX 2009) cuando éstos se desactivaban en el dominio. Lo publico para que no se me pierda y por si alguien pudiera sacarle partido :).

static void JAEE_IterateActiveDirectoryUsers(Args _args)
{
    str                 computer = new xSession().clientComputerName();
    xAxaptaUserManager  mgr = new xAxaptaUserManager();
    xAxaptaUserDetails  usr;
    container           doms;
    int                 d, u;
    str                 dom, login, name, sid, email;
    ;

    // iterate AD domains
    doms = mgr.enumerateDomains(computer);
    for (d = 1; d <= conlen(doms); d++)
    {
        dom = conpeek(doms, d);
        setprefix(dom);
       
        // iterate AD domain users
        usr = mgr.enumerateDomainUsers(dom);
        for (u = 0; u < usr.getUserCount(); u++)
        {
            if (usr.isUserEnabled(u) && !usr.isUserExternal(u))
            {
                // get information from AD
                login = usr.getUserLogin(u);
                name = usr.getUserName(u);
                sid = usr.getUserSid(u);
                email = usr.getUserMail(u);

                // stuff happens here, you can compare AD data with AX User info
               
                info(strfmt("%1 - %2 - %3 - %4 - %5", dom, login, name, email, sid));
            }
        }
    }
}

Descarga