C# 7.0 – an X++ developer’s dream coming true?

  Today I attended an excellent TechTalk on C# 7.0 by Mads Torgersen at a full house in Microsoft Development Center Copenhagen.   As the talk unfolded I was struck by Déjà vu– this is not the first time I’ve heard Mads present a new feature in C#, that I’ve been using for a long…


Eliminating queues – a case study

I visited Disneyland with my family. In Disneyland, there is a ride where you board an old-fashioned riverboat, nicely decorated with several floors and saloons. The boat sails a small round in a scenic lake. My then 5-year-old son just loved this ride – surprisingly enough, as most visitors could have been his grandparents. We…


We are hiring!

As we are continuing on our path to build a multi-billion-dollar business in the cloud we are looking for a Senior Development Engineer to join the Dynamics AX SCM team. Your primary task will be to deliver incremental improvements that make a real difference for thousands of companies running Dynamics AX and attract even more…


Warehouse Location directives – Fixed location usage

Setting up location directives for your warehouse in AX2012 R3 and AX7 requires a lot of attention to detail. The directives are extremely powerful, but also open ended, which can lead to both performance and logistical problems. This article on MSDN gives a good overview, but doesn’t provide any deep dives. This post is intended…


Dynamics AX Virtual Launch Event

The launch of the new Dynamics AX is imminent. Join the Virtual Launch Event on March 9th 2016 by registering here!


InventDim in AX7

Background The way a new inventory dimension is added in AX has not changed significantly for several releases. Even for AX 7 the best guide is still chapter 6 in Inside Dynamics AX 4. In AX 2012 we almost hit a SQL limitation on the maximum number of fields in the DimIdx index (the limit…


What is new in X++ in AX7?

The X++ language has taken a huge leap ahead in AX7. Here is a list of some of the new capabilities: The var keyword Finally and using Type declarations can be 80 characters Private and public members Static members Client/Server keywords Static event subscription Static classes Internal keyword Reals are decimals Readonly keyword Extension methods…


X++ in AX7: Attributes without specifying ”Attribute”

The naming convention in X++ (and C# by the way) is to postfix attribute classes’ name with “Attribute”. When using the attribute to decorate a class, it is a bit verbose to type in “Attribute” as it is apparent from the context, so now in X++ – just like in C# – you can skip…


X++ in AX7: String truncation

Consider this X++ code:  CustGroupId id = “012345678901234567890123456789”; //30 chars long;   CustGroup custgroup;   custGroup.id = id;  custGroup.insert;    select custGroup     where custGroup.id == id;   The CustGroupID EDT is defined with a length of 20 characters. In AX 2012 the assignment in the very first line would truncate the string from 30 to 20 characters. The record would be inserted and selected again. In AX7 the CustGroupID EDT is being compiled as…


X++ in AX7: Garbage Collection

In AX 2012 the runtime can either be the .NET CLR executing IL code, or the AX interpreter executing pcode. From a Garbage Collection point of view these two behaves extremely different. The difference is like night and day.   In AX7 only the .NET CLR Garbage Collector is in play.        …