The year 2021 has almost come to an end, and it’s time to review the changes we’ve had this past year.
I’ve got all the new features in this bag
So in case you’ve missed something, I hope you can find it here, although I won’t include all new or changed Dynamics 365 Finance & Operations features, only some of them, the ones I’ve found more interesting.
There’s a new version and a new task for our release pipelines that use the Azure-hosted agents. These changes have been introduced recently to support the new MSAL authentication libraries for the LCS service connection used to upload and deploy the deployable packages.
The current service connections use Azure Active Directory (Azure AD) Authentication Library (ADAL), and support for ADAL will end in June 2022.
This means that if we don’t update the Asset Upload and Asset Deployment to their new versions (1.* and 2.* respectively) the release pipelines could stop working after 30th June 2022.
QR codes are very present in our daily lives as a way to share information, URLs, or other data quickly.
I’ve got the power! (To generate QR codes)
In this post, we’ll learn how to display one in a Dynamics 365 form or a SSRS report using a library which is included in our development VMs: QRCoder.
I’m sure each team manages this differently, maybe leaving it to each developer to update their VM, or there’s someone in the customer or partner side that will do it. That’s in the best cases, maybe nobody is updating the developer machines…
If you want to know more about builds, releases, and the Dev ALM of Dynamics 365 you can read my full guide on MSDyn365 & Azure DevOps ALM.
Today, I’m bringing you a PowerShell script that you can run in a pipeline that will automatically update all your developer virtual machines!
Need to get the price of an item that has a sales or purchase agreement? The PriceDisc class is here to save us!
Trying to catch the best price using the PriceDisc framework
This is one of those reference posts that I’m writing for the Adrià of the future, because it’s something I forget about a lot.
PriceDisc magic!
There’s an obsolete method, I think it was findItemPriceAgreement, to get the price, but it’s obsolete, as I’ve just said. So the easiest way to get a price is to use the PriceDisc class that replaces the obsolete method.
To use it, just instantiate a PriceDiscParameters object and call all the parm methods you need. Finally, create a PriceDisc object using the newFromPriceDiscParameters method and passing the PriceDiscParameters, and… well take a look at the code below:
Has anything changed since I wrote that post? Do I still see Dataverse as the future of Finance and Operations apps? Well, now we know some things for sure, and new functionalities have been rolled out.
What’s in Dataverse…
Let me look at my crystal ball again and see what we can see inside…
Convergence
We can think about convergence as the process that will bringis bringing Dynamics 365 Finance and Operations and the Power Platform closer, and making our life easier when wanting to integrate both.
If you want to learn more about FnO and Power Platform convergence, take a look at this:
Keep an eye on the ANZD365 FinOpsTeam YouTube channel as they’re currently doing a series on convergence and more content will be streamed during the coming weekends.
Linking the ERP and Dataverse is easier than ever
I remember when I first set up Dual Write for an environment during the preview. Everything was manual and there was some part of trial and error in the process.
Have you deployed a Finance and Operations environment lately? There’s a section for Dataverse, and after marking a checkbox, it will automatically deploy a Dataverse environment that will be linked to the FnO one you’re deploying. Once it’s running, setting up Dual Write is peanuts!
And what about Virtual Entities? You can use them in your Power Platform solutions instead of using the Finance and Operations connector. This will also make Dataverse developers’ lives easier, as they will be able to access ERP data in a way they’re used to and know well.
Add-ins in Dataverse
All the add-ins that we can install to extend Finance and Operations are being installed in Dataverse. Need to install the Inventory Visibility or Export to Azure Data Lake add-ins? You’ll need to link a Dataverse environment first!
Will AxDB ever be in Dataverse?
I don’t think we’ll see that in the short or midterm, but maybe in a distant future… or maybe not. If you watch Sunil Garg’s session, he makes very clear that right now the ERP and CRM/Dataverse databases being in the same DB is not in the roadmap of the convergence. But at least we’re all living in the same elastic pool-type Azure SQL servers!
Then I think that given the transactional nature of the ERP it’s a bit difficult that this will happen. But who knows, because the products are evolving at such speed that maybe, one day, we’ll see it.
X++ developers
If you’re an X++ developer, you might be asking yourself: “With all this convergence stuff, should I start learning about Power Platform?“.
But X++ developers need to stop thinking they’re ONLY X++ developers. Juanan and I have said it in several of our sessions, we’re not just X++ developers anymore. First, the move to Azure and now the irruption of the Power Platform, we need to think of all that as tools to complement our X++ customizations. And not only complement, in some cases even replace them, like using Logic Apps to connect to an FTP server.
Me pressing the auto button to automagically import a data package
In this post, I’ll add an extra step to the database refresh: restore a data package (DP). Why? Because I’m sure we all need to change some parametrization or some endpoints in our test environments after a prod refresh.
You can learn more about the LCS DB REST API by 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:
And now you might be asking yourself, how do I move the Dual-write table mappings to a test or production environment from the development environment? Do I need to repeat everything I’ve done on the dev machine in a Sandbox environment?
It’s been a while since I first wrote about the Application Checker in 2019, and here I am again. In this blog post, I’ll talk about SocrateX and XQuery too, and I’ll also show how to generate the files and databases used to analyze the code.
This is a fakeX SocrateX
If you want to know more about App Checker or SocrateX, you can read these resources in addition to the post I’ve linked above: