About a milestone ago I announced SQL AOD. Since then it has been quite quiet on my blog - for two reasons 1) I've been heads down in new features and 2) I've been on paternity leave. Now the completion of M2, the next milestone of AX "6", is within reach and I've returned to my office. This means I can share some more exciting news.

Since the days of AOD files are numbered we need a new vehicle for deploying metadata elements to an AX installation. To address this need we introduce Models. A model is a containment of metadata elements.

To create a model you use the new command line utility AxUtil:

AxUtil create /model:"My Model" /Layer:USR

This will create a new model with the name "My Model" in the USR layer. This new model can be selected in the AX client configuration utility as the default model. When you start AX the status bar will tell you which model you are currently working in - just next to where the current layer is shown. When you make changes in the AOT, like overlayering elements, creating new elements, changing X++ code etc., the resulting elements will automaticaly be contained in your model.

When you have completed all your changes, then your model is complete. In other words it is time to move the model from your developer box to a production system. In AX2009 you would copy your AOD files - with models you need to export it to a physical file. Again you will use AxUtil:

AxUtil export /model:"My Model" /file:MyModel.axmodel

Now you can copy this file to the production system and import it there:

AxUtil import /file:MyModel.axmodel

You can even uninstall it again - if that is what you want. This is semantically the same as deleting an AOD file in AX2009:

AxUtil delete /model:"My Model"

So far I have described the model capabilities that gives parity with AOD files: We have a file based container that can be xcopy deployed and we can delete models again.

From what I've described so far models aren't much different than layers and AOD files. They are; and provide some highly desirable capabilities - which will be the topic of a near-future post - so stay tuned.

This post is a part of a series on models:

  1. Deploying models
  2. Manifest and signing
  3. Multiple models per layer
  4. Working with models inside MorphX

This posting is provided "AS IS" with no warranties, and confers no rights.