Getting attributes in X++

In X++, you can decorate classes and methods with attributes. Attributes were added in AX 2012 (I believe), where the typical use case was a definition of data contracts. They’re much more common in F&O, because they’re also used for CoC and event handlers. For most developers, attributes are something defined by Microsoft and used …

Continue reading ‘Getting attributes in X++’ »

Run settings for SysTest

When you execute automated tests of X++ code with SysTest, the test service (SysTestService class) gets called with some parameters, defined in SysTestRunnerSettings: You could, for example, set granularity to execute just unit tests and skip integration tests, or produce a trace file for diagnostics. You may want to use such parameters in automatic processes …

Continue reading ‘Run settings for SysTest’ »

Detection of code upgrade conflicts in F&O

When you overlayered an application element (e.g. a method or a form) in Dynamics AX, a copy was saved in a higher layer. You modified the object there, therefore you ended up with two copies of the same element – the original one in a lower layer (such as SYS) and your modified one in …

Continue reading ‘Detection of code upgrade conflicts in F&O’ »

Avoiding code duplication in F&O

In the previous post, I explained that duplicating application elements is expensive and we should avoid it whenever possible. Let me mention a few techniques that you could use. Obviously, you can create metadata extensions, use Chain of Command for methods, subscribe to events and so on; I’m assuming that you all know that. What …

Continue reading ‘Avoiding code duplication in F&O’ »

The cost of code duplication

What I want to talk about today is a special case of code duplication: when we take an F&O application element created by some other company (Microsoft, ISVs or so) and create a copy in our model. Usually, people do it to deal with code that can’t be accessed or extended, e.g. when we want …

Continue reading ‘The cost of code duplication’ »