AX Performance Monitor 101 – Tips and tricks to deal with performance counter files

Windows Performance Monitor for Dynamics AX


In my previous blog post, I explained how to setup Performance Monitor (PerfMon) to proactively capture performance data while cleaning old files to keep disk space under control. This is, let’s say, our ideal scenario, but sometimes setup is not that specific and we need to deal with suboptimal files that contains the performance data we need to analyze:

  • We have too many files
  • We have too few files
  • We have some huge file that makes analysis or processing it too slow
  • We have files captured in different languages

Let’s have a brief description on how we can deal with some situations by introducing a couple of small but useful tools:

PAL – Performance Analysis of Logs

PAL is a small but really useful tool created by Clint Huffman that takes one perfmon counter file and creates a nice HTML report with graphs and descriptions that can be used as starting point for performance analysis. It’s not that the tool replaces a manual in-deep analysis of any potential problem, but it helps giving some tips that can be used to start looking for something else.


Read the full article at “Dynamics AX in the Field”, the blog from the Premier Field Engineering team at Microsoft.


AX Performance Monitor 101 – Setup Perfmon for continuous monitoring with rolling files

Windows Performance Monitor for Dynamics AX


Windows Performance Monitor (PerfMon) is likely the most useful tool (together with our DynamicsPerf package) to monitor and diagnose performance problems related with your Microsoft Dynamics AX infrastructure and, in general, for any software running on Windows operating systems. Given its importance, is surprising how many people is not using it properly or, even worst, is not using it at all.

I will briefly explain how to setup PerfMon to collect performance counters in all servers for continuous monitoring, creating log files per day, compressing and deleting old files to minimize disk space, along with some tips and tricks during the process:

Create and configure a Data Collector Set

  • First of all open Performance Monitor either going to Administrative Tools in Windows Control Panel or searching “perfmon” in the Start menu.
  • Navigate to Data Collector Sets > User Defined > Right Click > New > Data Collector Set.
  • Choose “Create from a template” and finish the wizard. Some nice templates for all Dynamics AX server roles can be obtained as part of our DynamicsPerf download, under “DynamicsPerf 2.00\DynamicsPerf\Windows Perfmon Scripts” subfolder or as part of the PAL tool. We will talk about PAL on the next post on this series.


Read the full article at “Dynamics AX in the Field”, the blog from the Premier Field Engineering team at Microsoft.


Embrace the extensions mindset with Dynamics 365 for Finance and Operations [EN]

A couple of weeks ago, we launched the last platform update 10 (August 2017) for Dynamics 365 for Finance and Operations, Enterprise Edition and, as in almost every release, there were changes regarding the Application Extensibility Plans.

A lot of effort is being invested in the journey to a non-intrusive way to extend the application, and it needs to be understood as a critical change in the way we think about customizations. More information about future plans can be found in the Dynamics Roadmap (Filter – Application: Dynamics 365 for Finance and Operations; Area: Extensibility).

But sometimes it’s hard to change our mindset just by looking at these out-of-context upgrade notes, so I want to show how we can leverage some of the latest improvements to the X++ platform by looking at some real-life examples.

Keep in mind the basic principle: we want to avoid intrusive changes.


Scenario 1: Create a number sequence in a standard module

This is a common scenario and the good news is that it has barely changed from Dynamics AX 2012. In our example, we will add a new number sequence to the Accounts Receivables module (Customers) to provide new values for the custom MSVRMInsuranceProviderId EDT. To accomplish that, we need to make some small changes (plenty of examples of AX 2012 code available out there):


Read the full article at “Dynamics AX in the Field”, the blog from the Premier Field Engineering team at Microsoft.


Trabajando con la máquina virtual de desarrollo local en Dynamics 365 for Operations

No voy a escribir una entrada sobre cómo configurar una MV local de Dynamics 365 for Operations para desarrollo, porque ya se han publicado muchísimas desde el lanzamiento del producto hace unos meses. También está publicado en la documentación oficial de forma bastante clara, así que sería repetir lo que ya se ha explicado mil veces.

Lo más importante es configurar bien la conexión con el proyecto de Visual Studio Team Services y con la rama que estemos utilizando, mapeando de forma acorde las carpetas locales. Por ejemplo:

  • La carpeta Metadata debe apuntar a donde están almacenados los paquetes de Dynamics 365 en el disco. Dependiendo de la versión de la máquina virtual pueden estar en C:\AOSService\PackagesLocalDirectory o en C:\Packages (en las versiones antiguas).
  • La carpeta Projects normalmente se configura en la carpeta por defecto donde Visual Studio almacena los proyectos (en Mis Documentos), pero esto dependerá de la estructura que siga cada equipo para almacenar los proyectos que, recordemos, no forman parte de los metadatos de AX en esta versión, como sí hacían los proyectos del AOT de versiones anteriores.

También hay una serie de propiedades que se pueden modificar para que la máquina se comporte de una forma más natural para un desarrollador de AX e incluso para mejorar un poco el rendimiento.

Siguiendo con nuestra cadena respecto a la introducción al desarrollo para Dynamics 365 for Operations, voy a comentar algunos escenarios que suceden mucho y parecen ser problemáticos para programadores que empiezan a utilizar las nuevas herramientas. Pequeños detalles que conviene no olvidar. Es posible que actualice este post en el futuro para tenerlos todos localizados:

Continue Reading…

Why you should be using Team Foundation Server for Dynamics AX lifecycle management?

If you already use Team Foundation Server in your Dynamics AX projects, providing all benefits it can give to your teams, or if you are already convinced to use it soon, then this article is not for you.

You may not be convinced or, even worst, you may disagree about it to be beneficial to your methodologies and team behaviors. You can try to challenge my points with your project’s circumstances that make TFS unacceptable. That’s fine. I’m only asking you to read the full article first 🙂

Microsoft Application Lifecycle Management

Team Foundation Server (or Visual Studio Team Services*) is a tool, and as such, it will allow you to achieve the same tasks faster and with less effort. Furthermore, TFS will also give the ability to execute crucial tasks that are only available by using this kind of tools. Those tasks are mostly related to development work and source code management, what makes developer’s life easier, but some of them also help project managers and consultants, and support Quality Assurance guidance and validations, testing and all the rest of Application Lifecycle Management steps, whichever methodology is used to manage our projects: Microsoft SureStep, Agile, Scrum, …

Not to mention that using TFS is mandatory in the new Dynamics 365 for Operations, so including it in our lifecycle processes today will ease the transition and will put in place a set of Best Practices than will improve your team since day one.

Let’s have a look at the benefits of TFS in the three main categories of Application Lifecycle Management:

  1. Work
  2. Code
  3. Build & Release


Read the full article at “Dynamics AX in the Field”, the blog from the Premier Field Engineering team at Microsoft.


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:


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.