Novedades Mayo 2016 en Lifecycle Services (LCS)

Microsoft Dynamics Lifecycle Services

Ya está disponible la revisión de Mayo de Microsoft Dynamics Lifecycle Services (LCS). Los cambios más importantes son sin duda las primeras funcionalidades disponibles para el manejo de diferentes versiones del nuevo Microsoft Dynamics AX, cuya primera actualización fue publicada ayer, como comentaba en este otro post:

  • Al desplegar nuevos entornos en Azure desde LCS para desarrollo o Demo, podemos elegir la versión original (RTM) o la versión de Mayo (Update 1):

Microsoft Dynamics AX RTW Update 1

  • Es posible cambiar la configuración de versión de un proyecto de implementación de cliente existente y desplegar nuevos entornos en la nueva versión.
  • La biblioteca de activos ahora permite copiar elementos directamente desde el interfaz.
  • Actualizada la hoja Excel Subscription estimator. Nuevas pestañas, nuevo cuestionario y mejores validaciones.

Puedes ver todas las notas y ejemplos de estas novedades en el siguiente enlace:

Y los cambios de la actualización anterior aquí

Microsoft Dynamics AX RTW Update 1

Parece que la primera actualización del nuevo Dynamics AX está a punto de ser anunciada. De momento ya se puede desplegar en Azure aunque todavía no se ha anunciado oficialmente, no hay documentación y no se puede descargar la máquina virtual de desarrollo, pero iré actualizando este post conforme se liberen las novedades 🙂Microsoft Dynamics AX RTW Update 1

Este primer paquete de actualización nos va a servir para conocer el plan y el funcionamiento de las actualizaciones en el nuevo sistema web, así como las herramientas que van a permitir estas actualizaciones basadas en LCS (recordemos que no hay versión on-premise por el momento).

ACTUALIZADO 25/05/2016

[AX TIP] Errores Interop CLR y nivel de transacciones

Hace un tiempo publiqué un artículo explicando las buenas prácticas recomendadas para el manejo de excepciones CLR y cómo mostrarlas correctamente en el InfoLog de Dynamics AX. Sin embargo olvidé entonces un detalle importante que hay que tener en cuenta al capturar estas excepciones, que es el nivel de transacciones en la base de datos (TTS Level).

En el siguiente código de ejemplo, nuestro try..catch NO funcionará. Si se produce un error en el try, por ejemplo, si el método get_Content() no existe en el objeto en tiempo de ejecución, la ejecución del código terminará directamente sin mostrar nada en el InfoLog, lo que no es muy deseable.

Esto es debido a que, para poder capturar una excepción CLR, el nivel de transacciones debe ser 0. O lo que es lo mismo, no podemos capturar errores del Interop dentro de una transacción. Para que este código funcione tendremos que re-escribirlo para que el manejo de ese objeto CLR genérico se realice antes de abrir la transacción.

CLRObject       obj;


ttsBegin;  // ttsLevel + 1

info(strFmt("TTS level: %1", appl.ttsLevel())); // TTS level: 1

try
{
    obj = response.get_Content();
    if (!CLRInterop::isNull(obj))
    {
        // ...
    }
}
catch(Exception::CLRError) // Este catch nunca se ejecutará porque ttsLevel > 0
{
    error(AifUtil::getClrErrorMessage());
}

ttsCommit; // ttsLevel - 1

En realidad, y debido al alto riesgo de que se produzcan errores CLR que deben capturarse y procesarse de forma especial, el manejo de objetos CLR debe encapsularse siempre en clases o métodos específicos donde quede claro su funcionamiento y aislado el riesgo de problemas.

Descubre la nueva Dynamics AX 2012 R3 Entity Store

En prácticamente todas las instalaciones de Microsoft Dynamics AX, en cualquiera de sus versiones, nos vemos en la necesidad de exponer ciertos datos de la aplicación para que otros sistemas puedan utilizarlos. Casi siempre, aunque no únicamente, herramientas de reporting y Business Intelligence. Para conseguirlo diseñamos datawarehouses más o menos completos y procesos ETL para transformar la base de datos transaccional y normalizada de Microsoft Dynamics AX en una fuente de datos más apropiada para la lectura eficiente de la información.

Entity Store - Exposing entities

Para evitarnos esta tarea extra y permitirnos centrar nuestro tiempo en la solución final, se ha publicado una nueva funcionalidad disponible para Microsoft Dynamics AX 2012 R3 llamada Entity Store, que nos va a permitir exponer las entidades de Microsoft Dynamics AX y utilizar todas las novedades del nuevo Microsoft SQL Server 2016 como los nuevos índices columnares en memoria y herramientas diseñadas para optimizar el reporting y permitir una explotación en “casi” tiempo real (near-real time).

Entity Store - Power BI

Este almacén de entidades es una nueva base de datos independiente de la transaccional por lo que, aparte de permitirnos una optimización y escalado independiente, nos va a permitir funcionar siempre con la nueva versión de SQL sin tener que migrar también el servidor transaccional de AX, facilitando la adopción de las últimas novedades. Actualmente es compatible con SQL Server 2014 y 2016 así como Azure SQL.

La herramienta se integra y configura en la aplicación (actualmente como un hotfix independiente, pero formará parte del próximo parche acumulativo para AX 2012 R3) y utiliza el Data Import/Export Framework (DIEF) para coordinar la actualización de las entidades, que pueden configurarse a cierta frecuencia de forma independiente.

Esta es una primera versión para introducir la funcionalidad y proveer las bases de su funcionamiento, pero Microsoft ya ha anunciado que están invirtiendo en este Data Entity por lo que podemos esperar novedades en el futuro, ya que esta promete ser la puerta de integración de nuestros sistemas con el resto de tecnologías de Microsoft referentes al reporting y business intelligence, que están avanzando mucho de la mano de Azure y SQL Server.

Por ejemplo, Microsoft ya nos sugiere que estas entidades están preparadas para trabajar con Azure Machine Learning, Power BI, Azure Data Factory y herramientas clásicas de BI (como data warehouse clásico, data lake para AX, …) y Big Data (Hadoop). Todas estas herramientas que ya están disponibles en Azure (Azure SQL, SQL-DW, Azure Data Factory, HDInsight, Azure Data Lake, Azure Data Lake Analysis Services, y Machine Learning) son parte también del Cortana Intelligence Suite (CIS), por lo que este nuevo almacén de datos consolidado es sólo el principio 😉

Toda la información disponible en el siguiente white paper de Microsoft:

El parche se puede descargar desde LCS buscando “Entity store” o KB3147499.

* Las imágenes de este post están extraídas del blog Dynamics AX Business Intelligence!!

Novedades Abril 2016 en Lifecycle Services (LCS)

Microsoft Dynamics Lifecycle Services

Ya está disponible la revisión de Abril de Microsoft Dynamics Lifecycle Services (LCS) que presenta las siguientes novedades:

  • Mejoras generales
    • Es posible cargar nuevas versiones de un mismo modelo en la biblioteca de activos, con la posibilidad de adjuntar un fichero extra con las notas de la versión.

lcs-multiple-versions-notes

    • Es posible seleccionar todos los modelos de la biblioteca de activos al crear un nuevo paquete con la nueva opción “Select all“.
    • Ahora se puede editar una Solución de LCS y publicar la nueva versión para que los clientes puedan ver tanto la lista de versiones como las notas de cada versión (igual que en la biblioteca de activos). Además, la versión del projecto de LCS se actualizará con la versión más reciente de la Solución.
    • Añadida la posibilidad de crear nuevos procesos de negocio BPM desde cero, sin necesidad de partir de un proceso existente. Además, las herramientas de edición de estos procesos han recibido muchas actualizaciones para facilitar la creación y edición de procesos existentes.
    • Mejoras en la manipulación de tareas dentro de una metodología. Es posible mover tareas de una fase a otra sin necesidad de recrearlas. Se han añadido algunas opciones para realizar tareas sobre grupos de tareas y fases.
    • Al pulsar sobre nuestro nombre de usuario, se muestra información del login utilizado para acceder a LCS. Muy util para saber con qué cuenta estamos conectados cuando utilizamos diferentes cuentas de Microsoft u Office 365.

lcs-login-information

    • Los clientes premiere pueden crear incidentes para un proyecto. Esta opción está disponible para AX 2012 y el nuevo Dynamics AX.
    • Es posible almacenar localizaciones (traducciones) para AX 2012 en la biblioteca de activos. Hasta ahora esta opción sólo estaba disponible para el nuevo Dynamics AX.
    • Mejoras en los proyectos de preventa para partners disponibles para el nuevo Dynamics AX.

Puedes ver todas las notas y ejemplos de estas novedades en el siguiente enlace:

Internet of Fun – Demostrando el concepto IoT

big-bang-t3e23-jaestevan

En un artículo anterior, hacía una introducción del concepto de Internet of Things (IoT, Internet de las Cosas) y por qué iba a ser relevante en el futuro en multitud de procesos empresariales, procesos que inevitablemente van a llegar al mundo del ERP en mayor o menor medida.

Uno de los factores que, en mi opinión, van a hacer que estas prácticas se disparen en un futuro cercano es su accesibilidad. La facilidad de desarrollarlos y el bajo coste con el que se puede empezar a hacer cosas útiles y de eso estamos hablando, ¿Verdad?… de cosas 🙂

En la demostración que empieza con este post vamos a crear un ejemplo funcional sencillo para comprobar las posibilidades de las que disponemos en cada caso, y comprobar lo sencillo que puede ser investigar y crear prototipos que luego podremos convertir en sistemas reales. Utilizaremos materiales de bajo coste para hacer pruebas, que luego podremos convertir en sistemas reales con material industrial equivalente.

Este artículo contará por lo menos con tres partes (puede que más, si el tema interesa) teniendo en cuenta los que para mi son los tres boques de estas técnicas: Sistemas que van a generar la información (las “cosas” del IoT), los consumidores que harán uso de esta información, y los canales que nos permitirán capturar, almacenar y procesar la información generada.

grafico-iot-jaestevan