Cumulative Update 12 para Microsoft Dynamics AX 2012 R3

Microsoft Dynamics

Ya está disponible la siguiente actualización acumulativa para Microsoft Dynamics AX 2012 R3, la CU12 (6.3.5000.138). Esta actualización está disponible para instalación mediante el módulo Updates de Lifecycle Services, como viene siendo habitual desde la revisión R3. Información sobre las mejoras sobre el proceso de instalación se puede encontrar en los enlaces siguientes:

La documentación del parche:

Descarga:

Sin duda lo más llamativo de este parche es el nuevo módulo Cortana Intelligence que nos permite conectar con los Cognitive Services en Azure. Esta API nos va a permitir hacer uso de los servicios de machine learning de manera sencilla mediante algoritmos predefinidos y facilitando el mantenimiento de entidades de datos en cloud desde nuestra instancia local de AX 2012.

Aparte de la funcionalidad en sí, a la que vale la pena echar un vistazo, este nuevo módulo ilustra la filosofía híbrida de las próximas versiones de Dynamics AX, en las que parte de la funcionalidad se va a ofrecer de manera exclusiva en cloud (todo lo relacionado con Cortana Intelligence, por ejemplo, aunque no es el único) mientras seguimos utilizando nuestra versión de AX 2012 R3 on-premise.

 

Problemas con el tamaño de la fuente en Dynamics AX 2012

A veces al utilizar el cliente de Microsoft Dynamics AX 2012 (ya sea en un servidor de Escritorio Remoto o en una instalación local), el tamaño de las fuentes hace cosas “extrañas“. Se muestran las fuentes más grandes de lo normal, distorsionando los formularios y las barras de desplazamiento, y al pasar el ratón por encima vuelven a su tamaño normal, o bien se cambia el tamaño al maximizar el formulario, etc. Cosas como estas.

Esto ocurre sobre todo cuando utilizamos pantallas con una resolución muy alta, que son bastante comunes hoy en día sobre todo en portátiles y tablet como las Surface, y configuramos nuestra sesión para que modifique el tamaño de los textos para compensar esta resolución.

Al conectar a un Escritorio Remoto desde este equipo, ese parámetro se copia a la sesión remota y no es posible modificarlo desde dentro de la sesión. Pero sí podemos activar un parámetro en las propiedades del acceso directo que utilicemos para abrir el cliente de AX 2012 para desactivar este ajuste: Disable display scaling on high DPI settings. En la siguiente captura se muestra la opción en Windows 2012, las opciones son similares en Windows 10.

Si estamos abriendo el cliente de desarrollo, también podemos marcar la opción “Run this program as an administrator” para que se ejecute siempre como administrador. Esto es muy útil si queremos desplegar informes SSRS o servicios web durante el desarrollo, por ejemplo. Al marcar esta opción los textos se verán en tamaño original, que dependiendo de nuestra pantalla pueden ser demasiado pequeños, pero de momento solo se puede activar o desactivar:

UPDATE 09/01/2017: 

La nueva build preview para insiders publicada hoy para Windows 10 incluye mejoras para esta opción. Es probable que las veamos también en Windows 2012 en un futuro próximo. Más información en: Announcing Windows 10 Insider Preview Build 15002 for PC (la siguiente imagen es del blog de Windows):

 

PowerShell y los comandos de inicio en Dynamics AX 2012 (PS-III)

En los primeros artículos de esta serie, aprendimos las bases de PowerShell en general, y cómo utilizar librerías de cmdlets extra, incluyendo las que vienen con Microsoft Dynamics AX 2012 y permiten muchas acciones que facilitan la administración y el mantenimiento. PowerShell - jaestevan.com

Pero para poder utilizar PowerShell en nuestros sistemas DevOps reales, debemos unirlo todo y utilizar tanto cmdlets específicos, como la potencia de PowerShell para poder ejecutar todos los pasos necesarios en un despliegue típico de AX, y en muchas otras tareas de mantenimiento.

Empecemos con PowerShell estándar

Por ejemplo podemos utilizar los comandos base de PowerShell para buscar si en el sistema existe un AOS con un determinado nombre, e iniciarlo si no lo está, de esta forma (probablemente no es la mejor forma, pero resulta ilustrativa para este caso):

powershell-aos-service

$AxAOSName = "MicrosoftDynamicsAX"

$svcAOS = Get-Service AOS60* | Where { $_.DisplayName.EndsWith($AxAOSName) } -ErrorAction SilentlyContinue
if (-not ($svcAOS.Length -gt 0))
{
    throw "AOS service " + $AxAOSName + " can not be found."
}

Write-Host "AOS:" $svcAOS.DisplayName

if ($svcAOS.Status -ne 'Running')
{
    Start-Service $svcAOS -PassThru
}

Continue Reading…

Cumulative Update 11 para Microsoft Dynamics AX 2012 R3

Microsoft Dynamics

Ya está disponible la siguiente actualización acumulativa para Microsoft Dynamics AX 2012 R3, la CU11 (6.3.4000.127). Esta actualización está disponible para instalación mediante el módulo Updates de Lifecycle Services, como viene siendo habitual desde la revisión R3. Información sobre las mejoras sobre el proceso de instalación se puede encontrar en la guía de instalación enlazada más abajo, incluyendo la página de TechNet que detalla los cambios de esta revisión.

La documentación del parche:

Descarga y detalle de cambios en:

Vale la pena echar un vistazo a los cambios realizados en los modulos de almacén y cadena de suministro detallados en este post del equipo de SCM.

Y como pequeño offtopic comentar el anuncio de que el soporte extendido para AX 2012 R3 ha sido extendido hasta 2023, supongo para garantizar las inversiones de AX 2012 como versión de on-premise hasta que el nuevo AX esté disponible fuera de Azure. Supongo que veremos algo más el mes que viene durante la conferencia anual de partners en Toronto.

PowerShell para la administración automática de Dynamics AX 2012 (PS-II)

En la primera entrega de esta serie sobre PowerShell y DevOps para Microsoft Dynamics AX 2012  hablábamos sobre los principios más básicos de PowerShell y su sintaxis. También vimos en post anteriores como PowerShell se puede usar de formas bastante creativas.

Keyboard

Esta vez vamos a ver los comandlets específicos para la administración de Microsoft Dynamics AX 2012, que podemos separar en varias familias:

Gestión de Modelos y la Model Store

Estos comandlets son muy importantes y van a ser la base de nuestra estrategia DevOps, combinada con los procesos builds automáticos que tendremos configurados en nuestro TFS, si es que los utilizamos.

La combinación de estos componentes va a permitirnos diseñar procesos que actualicen automáticamente nuestros entornos, orientando nuestros procesos hacia la integración o el despliegue continuo de nuestros entornos, especialmente entornos de desarrollo y/o pruebas. Hablaremos sobre esto en los siguientes posts de esta serie.

Estos son los que normalmente utilizamos para estas tareas, aunque vale la pena echar un vistazo a la referencia completa porque todos pueden ser útiles para tareas concretas o para scripts que automaticen tareas más completas:

Modelos

Comando Descripción
New-AXModel  Crea un nuevo modelo en la Model Store
Uninstall-AXModel  Elimina un modelo de la Model Store
Install-AXModel  Importa un modelo (desde un fichero) en la Model Store
Export-AXModel  Exporta un model de la Model Store a un fichero .axmodel
Move-AXModel  Mueve los objetos de un modelo a otro modelo, combinando todos los objetos en este último.

Continue Reading…

Unit Testing X++ code in Visual Studio (AX 2012) [EN]

I’m pretty sure everybody who has tried will agree with me that the Unit Testing framework included in the AX 2012 development environment (aka MorphX) has some limitations. Sometimes such limits become so impacting that makes the framework almost useless when the code you need to test starts growing (let’s discuss design problems in a separate post :)).

But I’m not going to talk here about limitations, but about what we actually can do, and one of such things is to use X++ proxy classes to write our unit tests in Visual Studio, and use the native testing framework included here with all its possibilities. Let’s see how it works with an easy example.

I wrote this simple X++ class in order to have something to test:

Continue Reading…