JSON-based custom service with parameters (AX 7)

Dynamics 365 for Operations deploys custom web services in two ways: as SOAP-based services and JSON-based services. AX developers are often familiar with SOAP services (which were used in AX 2012), but JSON-based ones are new to them. One particular challenge is passing arguments to a service. Let’s say we have an Add operation, which …

Continue reading ‘JSON-based custom service with parameters (AX 7)’ »

Custom rules for Code Upgrade Tool

The Code Upgrade Tool allows you to detect patterns in X++ code and even to automatically change code. It’s especially useful for code upgrade, because you can easily upgrade legacy code. For example, CompanyInfo.CurrencyInfo field was replaced by CompanyInfo::standardCurrency() method in AX 2012. To upgrade your code, you would have to find and fix all …

Continue reading ‘Custom rules for Code Upgrade Tool’ »

Delete order line through AIF

The following code sample shows how to delete a line of an existing sales order through AIF from outside Dynamics AX 2012 . It uses a partial update, which means that we don’t have to send the whole document back to AX. As the documentation says, we have to include just the fields to change …

Continue reading ‘Delete order line through AIF’ »

Creating sales orders via AIF in AX2012

I was asked for an example how to create a sales order through AIF document services (SalesSalesOrderService). Here is my minimalist variant in C# (for AX2012 and demo data): var line = new AxdEntity_SalesLine() { ItemId = "D0001", SalesQty = 42, SalesUnit = "ea" };   var order = new AxdEntity_SalesTable() { CustAccount = "US-003", …

Continue reading ‘Creating sales orders via AIF in AX2012’ »

Real world functional programming

The first time I heard something concrete about functional programming was few years ago at a talk in Prague given by Tomáš Petříček. He also mentioned his book Real world functional programming there. It all sounded quite interesting and I told myself that I would look at the book at some time. It took quite …

Continue reading ‘Real world functional programming’ »