Creating (more) community, or trying

I’m sorry for my English-speaking readers because, maybe, this post will be a bit useless for you as all the content I’ll talk about is in Spanish. But it’s always good to know!

In the last few days I’ve taken part in a community event, the 365 Saturday online, and I’ve also started a podcast. I want to talk a bit about this.

Dynamics Power Spain Online 2020

This has been my fourth participation as a speaker in the last three years and as usual I’ve presented a session with Juanan. This time we’ve talked about using Azure DevOps with Microsoft Dynamics 365 for Finance and Operations.

It’s a topic I write about a lot, but we really think there’s still many people using it in a wrong way or just using the source control part. And that’s bad!

You can watch our session below, and as I said before, it’s only in Spanish and I think there’s no subtitles from Youtube.

There’s more sessions from other Axazure colleagues, again in Spanish:

Many Axazure sessions as you can see. That’s what happens when you promote sharing with the community! You can see the other sessions in 365 Saturday Madrid‘s Youtube channel, some are in English!

Xpp.dev, the podcast!

Yes! Juan Antonio Tomás and myself have started a podcast in 2020! Why? Each time there’s a new feature for MSDyn365FO, an announcement, a preview, whatever we spend some time talking about it and what could we do with it. So we thought “Why don’t we record this?”. And now we have a podcast which you can listen, even though it’s also in Spanish…

You can listen the first episode here!

Visit us at https://xpp.dev!

There’s another reason to do this: the Finance and Operations technical community in Spain. It makes me terribly jealous to see the strength of Dynamics 365 CD/Power Platform, .NET, Azure and other technical communities. We don’t have this for AX and that’s what we want!

We would like to have a bigger technical community! This is how we’ll try to encourage other people, sharing what’s coming for FnO. We of course accept collaborations, and if anybody wants to be interviewed or participate we’re totally open!

Community

The idea of community we have is something really simple and I think it’s something we’ve learnt from Antonio and the essence of El Rincón Dynamics. A free and collaborative place where anybody can learn and share and connect. It’s very easy, right?

There might even be people that doesn’t fully understand why do we share what we know freely, instead of keeping everything to us, because that decreases our personal value, we’re sharing our secrets. And this way of thinking is so, so, so much wrong! I might share what I know, but I also have over 10 years’ experience behind me, the mix of these two things is what my value is.

I can only see positive things in sharing.

Azure hosted build for Dynamics 365 Finance & SCM

Behold #XppGroupies! The day we’ve been waiting for has come! The Azure hosted builds are in public preview with PU35!! We can now stop asking Joris when will this be available, because it already is! Check the docs!

I’ve been able to write this because, thanks to Antonio Gilabert, we’ve been testing this at Axazure for a few months with access to the private preview. And of course thanks to Joris for inviting us to the preview!

Azure hosted build
Riding the Azure Pipelines by Caza Pelusas

What does this mean? We no longer need a VM to run the build pipelines! Nah, we still need! If you’re running tests or synchronizing the DB as a part of your build pipeline you still need the VM. But we can move CI builds to the Azure hosted agent!

You can also read my full guide on MSDyn365FO & Azure DevOps ALM.

Remember this is a public preview. If you want to join the preview you first need to be part of the Dynamics 365 Insider Program where you can join the “Dynamics 365 for Finance and Operations Insider Community“. Once invited you should see a new LCS project called PEAP Assets, and inside its Asset Library you’ll find the nugets in the Nuget package section.

Continue reading “Azure hosted build for Dynamics 365 Finance & SCM”

Compiler warnings: are you checking them in Dynamics 365?

Compiler warnings. Warnings. They’re not errors, only warnings. You can just overlook and forget them, right? Well, I hope you aren’t.

“But even the standard code done by Microsoft throws warnings!”, you could say. And that’s true, but that’s not your code, it’s Microsoft’s. If a functionality you’re using breaks because they didn’t care about their warnings, you can open a support request and it’s Microsoft’s job to fix it. If your code breaks some functionality because you didn’t care about a warning, it’s your job to fix it, and your customer will want it as fast as you’d want Microsoft to fix their error.

That’s why we should be warned about warnings (badum tss).

Continue reading “Compiler warnings: are you checking them in Dynamics 365?”

Messaging API: add actions to the message bar

With the latest Dynamics 365 for Finance and SCM 10.0.10 version, we’re getting a new feature that will allow us to add actions to the message bar, using the Messaging API like we used to do in AX2012 with the SysInfoAction class.

Remember this is in the latest preview version. You can access the preview versions joining the Dynamics 365 Insider Program.

Continue reading “Messaging API: add actions to the message bar”

Unzip a Stream in Dynamics 365 FnO

Since Microsoft Dynamics 365 for Finance & Operations is a cloud-based ERP we cannot work with files on the AOS drive anymore. It was pretty usual to have file-based integrations in AX where you got a file in a folder and processed it.

Of course it’s still possible to work with files, for example from a storage account on Azure like Miquel Vidal has shown in his blog (in Spanish) or with the Recurring Integrations Scheduler tool.

Unzip .NET Streams

Most of the functionalities that consist in uploading of downloading a file is MSDyn365FO use .NET Streams, usually its child class MemoryStream.

So, how do we unzip one of these files? For example, the ISO20022 vendor payment journal file is zipped. What if we need to access the XML file contained in the ZIP?

We’ll need to use the ZipArchive class from System.IO.Compression namespace, and it’s really really easy. For example:

Edit: this code is valid for a single file ZIP. If the zipped file contains more than one file you must process each Stream inside the while.

We need to copy the unzippedStream stream (which is a DeflateStream) to a MemoryStream (which must be initialized) before returning it.

Remember that to access a .NET collection we need to use an enumerator to loop through it. If you don’t see the methods in the lookup using dot notation just write them, writing .NET code in X++ is still a bit buggy…

Add multi selection lookup to a SysOperation Framework dialog

First 2020 post! Happy new year! Yes, I know it’s already past mid January…

When you add a field to a SysOperation Framework Data Contract the lookup that the framework creates (if the EDT has a lookup) is a simple, single select lookup. Let’s see how to create a multi select lookup in MSDyn365FO.

The SysOperation Framework and MVC

But first of all a bit of an introduction! The SysOperation Framework was introduced in Dynamics AX 2012 to replace the RunBase Framework, and is used to create processes that will be run by the batch server. The RunBase classes are still around in Dynamics 365 for Finance and Operations. Some standard processes still use it while others use it to later call a SysOperations Framework class.

Continue reading “Add multi selection lookup to a SysOperation Framework dialog”

DevOps ALM automation in Microsoft Dynamics 365 for Finance and Operations

You can read my complete guide on Microsoft Dynamics 365 for Finance & Operations and Azure DevOps.

I’ve already written some posts about development Application Lifecycle Management (ALM) for Dynamics 365 for Finance and Operations in the past:

The possibility of doing real CI/CD is one of my favorite MSDyn365FO things, going from “What’s source control?” to “Mandatory source control or die” has been a blessing. I’ll never get tired of saying this.

Continue reading “DevOps ALM automation in Microsoft Dynamics 365 for Finance and Operations”

Parse XML and JSON easily in MSDyn365FO

Some time ago I had to create an interface between MSDyn365FO and a web service that returned data as XML. I decided to use X++’s XML classes (XmlDocument,  XmlNodeList, XmlElement, etc…) to parse the XML and get the data. These classes are terrible. You get the job done but in an ugly way. There’s a better method to quickly parse XML or JSON in MSDyn365FO.

Continue reading “Parse XML and JSON easily in MSDyn365FO”

Feature management: create a custom feature

Feature management has been around in Microsoft Dynamics 365 for Finance and Operations for some time now. Before that features were enabled through flighting running a SQL query on dev and UAT boxes (and the DSE team would do it on production).

Now we have a nice workspace showing all the available features and flighting is still around too. The main difference between flighting and features is that flighting is enabled to a selected group of customers, like a preview of a feature.

Continue reading “Feature management: create a custom feature”