HowTo: Tomar el control de un backup de AX 2012 mediante PowerShell

Hace unos días hacía un comentario en twitter acerca de las posibilidades de PowerShell que me trajo mucho feedback.

Supongo que hay mucho interés en conocer más sobre las bondades de PowerShell aplicadas a Microsoft Dynamics AX, y estoy preparando un artículo largo (probablemente una serie de varios artículos) sobre el tema que estarán terminados en las próximas semanas. PowerShell es una herramienta extremadamente potente y a la vez extraña. Los programadores habitualmente la consideran una herramienta de administración (es una consola) mientras que los sysadmin suelen verla como algo para programadores (es código). Curioso, ¿verdad?

Leer más

Consultar roles de seguridad desde SQL en AX 2012

No es algo común pero en algún caso nos puede venir bien consultar qué roles de seguridad tiene un usuario consultando la base de datos. Lo ideal sería utilizar servicios web o algo parecido, utilizando un código X++ parecido al siguiente (código extraído del capítulo 10: “Licencia, Configuración y Seguridad” de mi libro):

static void QueryRoles(Args _args)
{
    SecurityRole            securityRole;
    SecurityUserRole        securityUserRole;

    while select securityUserRole
            where securityUserRole.User == 'admin'
        join securityRole 
            where securityRole.RecId == securityUserRole.SecurityRole
    {
        info(strFmt("%1", SysLabel::labelId2String(securityRole.Name)));
    }
}

Si insistimos en hacer esta consulta desde SQL Server nos vamos a llevar una sorpresa. La tabla SecurityUserRole que almacena los roles asignados a cada usuario existe en la base de datos transaccional de AX, pero la tabla SecurityRole, que almacena los roles en si, no existe. Sería lógico pensar que, a lo mejor, la tabla existe en la base de datos modelo (_model), pero tampoco la encontramos ahí.

Leer más

Errores Interop CLR y manejo de Infolog en Microsoft Dynamics AX 2012

Al trabajar con objetos del framework .NET (algo muy común en AX 2012), debemos tener en cuenta el tratamiento de errores CLR. El tratamiento de errores en Dynamics AX es transparente y no necesita dedicarle demasiada atención durante el desarrollo en X++, pero cuando interviene el Interop con .NET, el manejo de los errores CLR se debe especificar de forma explícita.

El código que suelo utilizar habitualmente (copiado y pegado de mi repositorio personal) como punto de inicio es el siguiente:

Leer más
Thumbnail image

Leer elementos de Team Foundation Server desde Microsoft Dynamics AX 2012 (ALM-V)

Vuelvo brevemente sobre una de mis series de post mas largas hasta la fecha, lo referente a la integración de AX 2012 con Team Foundation Server, no sólo para la gestión del código fuente, sino también como herramienta de gestión del trabajo del equipo. En capítulos anteriores ya vimos cómo se instala y configura TFS (esto cambia entre versiones, también vimos que no necesitamos instalar nada si utilizamos la versión en la nube) y cómo podíamos crear elementos de trabajo en TFS (WorkItems) para gestionar el trabajo desde esta herramienta.

Leer más

Error: "The database XXX is not recognized as a model store" al copiar una base de datos AX 2012

Hay un error muy común desde la versión AX 2012 R2 que ocurre normalmente al mover o copiar bases de datos de un servidor o de un entorno a otro. Este error (The database XXX is not recognized as a model store) ocurre al iniciar el AOS tras mover las bases de datos y tiene el siguiente aspecto:

Error The database XXX is not recognized as a model store

Este error es bastante extraño, porque recordemos que la base de datos modelo (Model Store, base de datos separada que existe desde la versión R2) no puede configurarse en la utilidad de configurador del cliente ni del servidor:

Leer más

Error: Concurrent number of AOS for this application exceeds the licensed number

Otro error recurrente al mover o copiar entornos o bases de datos es referente al número máximo de AOS que podemos ejecutar en una misma instalación por cuestiones de licencia. Esto ocurre en diferentes versiones y revisiones pero en mi caso me lo estoy encontrando sobre todo en AX 2012:

Object Server 01:  Concurrent number of AOS' for this application exceeds the licensed number AX 2012

Para solucionarlo, podemos ejecutar esta sentencia en la base de datos que hemos copiado:

Leer más

Microsoft Dynamics AX 2012 R3 CU8 Demo VM V1

Microsoft Dynamics AX 2012 R3

Ya se ha publicado la máquina virtual demo de la también recién publicada Microsoft Dynamics AX 2012 R3 CU8. Esta máquina virtual viene, como de costumbre, actualizada con las últimas versiones de todo el software y con datos de prueba de las nuevas funcionalidades:

Se puede descargar de PartnerSource y CustomerSource:

Recordar la posibilidad que tenemos desde la revisión R3 de desplegar estas máquinas virtuales directamente en Azure desde Lifecycle Services (LCS), como ya comenté hace un tiempo :)

En busca de la tabla perdida... herencia de tablas en AX 2012

Si alguien ha creado o mantiene un desarrollo que acceda directamente a la base de datos de Microsoft Dynamics AX 2012 (por ejemplo, algún sistema externo de Business Intelligence), se habrá encontrado con el fenómeno de la “tabla fantasma”. Hay muchos casos, pero analicemos por ejemplo la tabla OMOperationUnit. Esta tabla existe en el AOT, podemos explorarla desde Dynamics AX y ver los datos que contiene, por lo que esos datos deben estar almacenados en alguna parte. Sin embargo la tabla no existe en la base de datos SQL Server subyacente. Entonces, ¿Dónde están los datos?

Leer más

Cumulative Update 8 para Microsoft Dynamics AX 2012 R3

Microsoft Dynamics

Aunque se ha hecho esperar un poco más de lo acostumbrado, ya tenemos disponible la siguiente actualización acumulativa para Microsoft Dynamics AX 2012 R3, que será la CU8 (6.3.1000.309) siguiendo el orden de numeración que se estableció en la última CU7 (Esta es la primera CU para R3, no hay CU1, 2, etc. para esta versión).

Como de costumbre desde hace algunas revisiones, además de todos los hotfixes publicados con anterioridad de manera acumulativa, incluye algunos cambios funcionales y, en este caso, escasos cambios a nivel técnico. El más importante a tener en cuenta es que a partir de la versión AX 2012 R3 CU8 la versión de Visual Studio necesaria para trabajar con AX  será Visual Studio 2013 de manera obligatoria. Sera necesario desinstalar el antiguo Visual Studio 2010 (cuyo soporte oficial termina el próximo mes de Julio) ya que no está soportada la instalación de ambas versiones en el mismo equipo. Sin embargo, para el diseño y visualización de informes necesitaremos las Data Tools (antiguo BIDS) de Microsoft SQL Server 2012.

Leer más
Thumbnail image

¡Enhorabuena MVP de Microsoft 2014!

Un año más he renovado como MVP de Microsoft en la especialidad técnica Microsoft Dynamics AX.

MVP 2014

Ya van 3 y tanto las ganas como el orgullo de pertenecer a este increíble grupo no han descendido lo más mínimo.