Calling async method from X++

There is a trend in the .NET world to make time-consuming calls asynchronous, to prevent applications from getting blocked when waiting for a response from a web service and things like that. Many existing APIs were enhanced with asynchronous variants of previously synchronous actions and some newer APIs offer only asynchronous methods. So… how can …

Continue reading ‘Calling async method from X++’ »

String format options for utcDateTime

I’ve run into a problem that reminded me that while X++ types and corresponding CLR types (such as str and System.String) can often be user interchangeably, they aren’t the same. I was trying to convert a utcdatetime value to the standard “sortable” format in D365FO, for which I wrote the following code: utcdatetime currentDateTime = …

Continue reading ‘String format options for utcDateTime’ »

Splitting .xpo files

I got an .xpo file from an older version of AX with some code of interest and because it had a few thousand lines, it wasn’t exactly easy to navigate. At least splitting it by object would make my life much easier. Fortunately I looked at the internet and found exactly the right tool for …

Continue reading ‘Splitting .xpo files’ »

Event handler for multiple events

I’m not sure that everybody is aware that a single event handler method (in Dynamics 365 for Finance and Operations) can be decorated with several event handler attributes. For example, a common method can handle both inserts and updates. [ DataEventHandler(tableStr(MyTable), DataEventType::Inserted), DataEventHandler(tableStr(MyTable), DataEventType::Updated) ] public static void myHandler(Common _sender, DataEventArgs _e) Or it can …

Continue reading ‘Event handler for multiple events’ »