Is the CDS the future of Finance and Operations apps?

Adrià the medium: what will happen with the CDS?
Adrià the seer: what will happen with the CDS?

After the MBAS on Wednesday I’m thinking about this more and more. Will Dynamics 365 for Finance and Supply Chain Management’s data be natively hosted in the CDS?

After watching Ryan Jones’ session “What’s new in the Common Data Service“, I ask myself whether that’s the question or it should be when will it be natively available in the Common Data Service?

The Common Data Service

The CDS is a platform that allows us to store data that will be used by the business applications. But it’s not only that, take a look at this picture:

CDS (screenshot from Ryan Jones session on MBAS)

We could put MSDyn365FO on top of all that, it supports relational databases, storage, reporting, workflows, security, etc… Of course that wouldn’t be an overnight switch but maybe something progressive. Like what we’ll have with the FnO virtual entities on CDS!

With virtual entities we still won’t have Finance and SCM data on CDS because virtual entities:

Virtual entities enable the integration of data residing in external systems by seamlessly representing that data as entities in Common Data Service, without replication of data and often without custom coding.

“Without replication of data”. When you access a virtual entity in the Common Data Service its state is dynamically retrieved from the external system.

The CDS capabilities
CDS + Operations (screenshot from Ryan Jones session on MBAS)

As you can see in the image all public data entities will be natively in CDS. This means we can use the Power Platform capabilities for Finance and Operations as fast and easy as our Customer Engagement colleagues do. At least for the public data entities.

If we need data to be physically in both places we’ll still need to use Dual Write. Remember Dual Write synchronizes data between Finance and Operations and Customer Engagement/CDS near real time.

CDS + Operations: Under the Hood
CDS + Operations: Under the Hood (screenshot from Ryan Jones session on MBAS)

If you want to learn a bit more about Dual Write you can check the “And finally… Dual Write!” session Juan Antonio and I did on 2019 Dynamics 365 Saturday Madrid. It’s in Spanish and old, Dual Write has now many more Out-of-the-box functionalities, but it gives an idea of what it does and is capable of.

Will this ever happen?

Who knows, I’m just speculating, I’m a developer but I can’t stop thinking that Microsoft is investing a lot into CDS. And Finance and Operations Apps are the only Dynamics 365 products whose data does not reside on Common Data Service.

We’re seeing some functionalities from FnO being replicated and later extended into the CDS like Dynamics 365 Human Resources or Dynamics 365 Project Operations. This is creating an issue, because right now, you must create an integration between the two applications if you want to have some kind of data exchange. FnO in the Common Data Service would solve this.

This also creates some confusion to customers that think that this integration happens Out-of-the-box when it’s not. The naming of the product suggests that but it’s not happening.

We must think that this wouldn’t happen in the following year or two, or three. This is something in the long term. I don’t know about CDS Apps, but Dynamics 365 for Finance and SCM has quite a nice and large amount of tables and migrating all of them to the Common Data Service is sure a tremendous amount of work.

And what about the developer tools? That should change for sure too! We’ll see where the product and us as professionals are headed, but for sure we can’t think about Finance and Operations alone without the CDS anymore.

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”

LCS DB API: automating Prod to Dev DB copies

The new LCS DB API endpoint to create a database export has been published! With it we now have a way of automating and scheduling a database refresh from your Dynamics 365 FnO production environment to a developer or Tier 1 VM.

Using the LCS DB API
Using the LCS DB API

You can learn more about the LCS DB REST API reading these posts I wrote some time ago. You might want to read them because I’m skipping some steps which are already explained there:

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

And remember: this is currently in private 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 to the Yammer organization you can ask to join the “Self-Service Database Movement / DataALM” group where you’ll get the information to add yourself to the preview and enable it on LCS.

Continue reading “LCS DB API: automating Prod to Dev DB copies”

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”

1 2 3 Power mime!

We’re heading into the third week staying home, and with some weeks more ahead of us we need some entertainment.

Last week Eva asked me if we could create an app using the Power Platform to play mime games remotely with my colleagues at Axazure. She’d design it graphically and functionally and I’d (no) code it. And that’s what we did!

1 2 3 Power Mime!
1 2 3 Power Mime!
Continue reading “1 2 3 Power mime!”

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…

A warning about Self-service environments: update carefully

It looks like the time has finally come and all new LCS projects will have self-service Tier 2+ environments. If you want to know a bit more about them, I wrote this post about service fabric/self-service environments in Microsoft Dynamics 365 for Finance and Operations.

The last two projects we’ve started at Axazure are on self-service and we’ve had a customer migrated to it. So it’s about time I warn you about one scary thing…

Self-service !
Continue reading “A warning about Self-service environments: update carefully”