Modelos E/R de Microsoft Dynamics AX 2012 en AxErd

Buenas noticias! El equipo de documentación de Microsoft Dynamics AX 2012 acaba de publicar un sitio que describe el modelo de datos de la aplicación mediante diagramas Entidad-Relación. En el lanzamiento se encuentran 30 esquemas pero esta previsto realizar muchas más. Han bautizado este nuevo sitio como Microsoft Dynamics AX 2012 R2: AxErd.

También se incluye, en la página de ayuda del propio sitio, información acerca de cómo ampliar y generar nuestros propios esquemas utilizando la herramienta de Ingeniería Inversa integrada en la aplicación (hace tiempo ya hablé sobre ella en este blog!).

ERD CustTrans AxErd

En el post de lanzamiento de este sitio describen su funcionamiento, aunque resulta bastante intuitivo: Se publican esquemas Entidad-Relación para diferentes módulos funcionales y desde diferentes perspectivas (el esquema “nace” de diferentes tablas). También se incluyen listas de tablas relacionadas y un detalle bastante bien conseguido de las listas de claves primarias (PK) y externas (FK) de estas relaciones.

Sin duda una documentación muy solicitada dese hace tiempo (me consta que varias veces desde el programa MVP) pero que ha sido especialmente traumático con el lanzamiento de la versión 2012 y los numerosos cambios sufridos en el modelo de datos de esta nueva versión, tanto para migrar desarrollos como para la carga de datos de los clientes.

 

 

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

Libro: SQL Server 2012 SQL, Transact SQL

Vuelvo a las andadas con la colección de revisión de libros con una grata sorpresa. No conocía la firma Ediciones ENI pero han tenido el detalle de enviarme una copia del libro que nos ocupa y la verdad es que ha sido una lectura muy refrescante. 

Ediciones ENI es una editorial especializada en libros técnicos y material de formación que publica en España traducciones de sus títulos originales en francés. Este libro en concreto está escrito por Jérôme Gabillaud y traducido por Ángel María Sánchez y el resultado es muy satisfactorio.

SQL Server 2012, Transact SQL - Ediciones ENI

En este libro (450 páginas, tapa blanda) se cubren con soltura todos los detalles del lenguaje SQL de SQL Server 2012 (Transact SQL o T/SQL) por lo que resulta adecuado para principiantes, como libro de referencia en cuanto a sintaxis y posibles comandos, y para refrescar las particularidades de este lenguaje introducidas en esta versión (y por desgracia algunas novedades de versiones anteriores, en mi caso).

El libro está escrito con la fluidez suficiente para poder ser leído de principio a fin, pero con el detalle necesario para utilizarlo como referencia. También creo que es válido para preparar el nuevo examen 70-461: Querying Microsoft SQL Server 2012 a un precio bastante más razonable que las guías oficiales de estudio, para quien no se las pueda permitir.