Subscribing to onValidatingWrite

Most event handlers are straight forward. One exception is when subscribing to a table’s onValidated and onValidating events. The trick is to realize that the DataEventArgs instance passed to the event handler, is a validateEventArgs – a specialization of DataEventArgs. Here is a template to use: [DataEventHandler(tableStr(<TableName>), DataEventType::ValidatingWrite)]public static void <TableName>_onValidatingWrite(Common _sender, DataEventArgs _e){    boolean result = true;    ValidateEventArgs validateEventArgs = _e as ValidateEventArgs;    <TableName> <table> = _sender as <TableName>;     if (<validation>)    {        result = checkFailed(“Validation failed”);    }    validateEventArgs.parmValidateResult(result);}   The platform will keep raising the…

0

Extending class state

A new and tremendously powerful feature was introduced in the Fall Release ’16. Now you can extend class instances, including adding state. This is available for any class in the system.   We already know we can extend class types. Which in essence allows us to introduce new methods that consumers of the class can…

4

Responding through delegates

One typical extension point is when extensible logic is delegating the responsibility of a certain operation, and is expecting extensions to provide a result. It could be a conversion, a calculation, class construction or similar.   Let’s look at the pattern, and how to be a good-citizen.   Example The Batch table has a few…

0

Extending Dynamics 365 for Operations

Dynamics 365 for Operations has great support for implementing pure add-on solutions. A pure add-on solution is extending the existing functionality using extension points in a non-intrusive manner.   In the Dynamics AX era implementing non-intrusive solutions was near impossible. My decade old Channel 9 video on Smart customizations is recommending being as little intrusive…

0

X++, the catch

“When building a cannon, make sure the cannon ball comes out in the right direction.” This is a piece of advice I heard many years ago. I think, we in generally have been following the advice in the Dynamics AX platform group. The APIs and designs have been easy to understand, and without side-effects. This…

21

Are the inmates still running the asylum?

The future belongs to those who can build desirable products and services. Consumers vote with their feet. If it is not working for them, they will go somewhere else. If you are not building something that works for them, someone else will. Relying alone on being big and having a long history is the same…

0

Dynamics 365 for Operations is available!

Dynamics 365 for Operations is now available to deploy and download as part of the Dynamics 365 suite of products. Dynamics 365 brings our business applications closer together in how they look, feel and integrate with each other. Please see the complete blog here. In this release, we have a new header for the Operations…

0

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…

6

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…

0

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…

0