Blog |

What’s New in the 2022 Platform Updates for Microsoft Dynamics 365 Finance and Supply Chain Management: Part 2

Friday, July 11, 2022
Reading time: 8 minutes

As Microsoft continually releases platform updates each year for Microsoft Dynamics 365 Finance and Supply Chain Management (formerly known as Finance and Operations), it’s important to keep up with the latest features to increase user experience and run your business successfully.

In this part of our blog series, we’re going to go through recently released improvements, as well as take a look at what has been changed in platform updates (10.0.23 – 10.0.26) for Dynamics 365 Finance and Supply Chain Management.

In this blog, you’ll learn how to: 

Optimizing User Experience with Saved Views

Saved views for dialogs

We have some changes for dialogs that were not available previously available. This change was introduced in Platform Update 25, and it will be on by default in Platform Update 29. It must be enabled in future management, and there’s a separate form for that.

Figure 8. Dialog View

In this example (see Figure 8), I tried creating a customer dialog. You can add the new fields, and make the existing fields invisible or mandatory, and hide the information that you don’t want to see. There’s a new button in the left corner on the top, so you can save multiple views, and the next time you log in to this form page, you can select your view.

Saved views for workspaces

This is also now in previews in Platform Update 25, and it will be generally available by default in Platform Update 27.  This must be enabled in feature management and is available for both modeled and user-created workspaces. You can modify the grid, you can add new fields, and you can make it mandatory just as you can do for the dialog.

Figure 9. Workspace View

Allow queries to be saved to views on Task Single and Task Double pages

This feature is for forms that implement Task single and Task Double form patterns. You can now save filters and column sorting. In this scenario, I went to general journals because it has this form pattern, and I tried to filter one of the columns. In this case, I filtered the journal name and sorted the grid by journal number. Now you can save this view and the next time you log in, you will be able to see the same data. This feature has been generally available since Platform Update 25, and it will be on by default in Platform Update 29.

Figure 10. GJ View Query

Saved view support form custom filters

This is a pretty similar feature. It’s also for queries and sorting, but in this case, it is for custom filters. Previously, your custom filters could not be saved to saved views, but Microsoft has made a change. They introduced two new methods to implement this saved view experience. It’s not implemented for the standard form, so it’s not implemented in this general journal form. If you want to implement it for standard forms, you need to do some development work to extend those two methods. 

Figure 11. Custom Filter

Upload Custom X++ Scripts with Zero Downtime to Correct Data Inconsistencies

Run custom X++ scripts without disruptive downtime

This means that you can run a script without deploying the code directly, and you don’t have any downtime. This should be useful if you are using integrations and you try to import data, and it messes some things up. There could be a scenario where a user cannot fix the data, and it may be due to data inconsistencies, a wrong legal entity, or even wrong amounts/quantities on transactions. In that case, you most likely wouldn’t have the ability to change the data, so what you need to do is release a script that fixes this, and Microsoft has implemented a new feature allowing you to simply upload a code and run it – you don’t need to deploy anything for it to be executed.

Create a deployable package for your script

This has been available in preview since Platform Update 25. It’s a flighting feature. The name for it is AppConsistencyCustomScriptFlight, and you need to enable this flighting feature on your database.   Instead of going through the LCS, you would upload X++ scripts, or runnable classes as we call them now. After you have this feature enabled, a new form can be seen in the system administration module:

What you need to do is to upload a deployable package of the particular script that should fix your data. What’s worth noting is that the code is not deployed to the environment, so you can upload of those deployable packages, but as they will not be applied on your codebase it won’t leave leftover objects.

Figure 12. Deployable Package

It’s important to also mention that there is mandatory workflow validation, so you cannot just run it – you must validate that it does exactly what you want it to do. Let’s go through the process:

  1. Upload the deployable package to your target environment (UAT or PROD)

You need to create a new model in your development environment, and create a new runnable class that does exactly what you wanted it to do. I recommend doing as many validations as needed just to ensure that you are doing the right thing – you can check if you are in the correct legal entity, correct record, etc. The sole purpose of this script should only be to fix your data inconsistencies. And it must be only one class, otherwise it will not let you upload the deployable package, so keep that in mind.

I think most of you know how to create a deployable package, but here I showed you just in case. Create a deployable deployment package (the above pic), and that’s it – you have a zip file.  Then you go to Custom scripts form and click upload – you can enter a purpose for the script if you want, it’s just a description so it’s not required. During that phase, if you have an invalid file it will throw an error here basically saying that it’s corrupt.

Figure 13. Upload Package
  1. Approve or reject the script

This is what it looks like when you upload it (see Figure x). You have the status uploaded, the purpose that you enter, and you have events. Log what happens during this process so different people can do different functions in this form, as there is a particular field is for that. And we also have a log which logs every step.

Figure 14. Approve Reject

What’s worth mentioning is that the approval process and the rejection can only be done by a different user to the one that uploaded the file, therefore, you cannot do all of those steps by yourself. Another person should double-check if it’s the correct script and it does what it should.

  1. Test and review the test log

After it’s approved, you run a test. It will not do a commit to the database, it will not insert or update any data, and in the log, you will see what has happened. So in this case, you can see that the customer invoice journal was modified, and you can see the conditions that were used. I specified that this record should be modified and we have this information here in the log.

Figure 15. Test Review
  1. Run the test

After you have run the test, you can accept the test log. This can be done by either the person who approved it or the person who uploaded it. If everything works well, you can just run the script, which means that it does the commit and makes the actual change to the database. You can see in Figure 16 that the CustInvoiceJour table was accessed once, and this is all the information that you need just to verify that it did what you wanted it to do.

For the time being, this feature is in preview, so you probably could not use it in the production, but you can see how it will work in the future. Once it’s generally available, I would strongly advise you to be very careful in order not to break the system even more. You should do validations and make sure that you’re updating just the right tables or inserting just the right data.

Figure 16. Run Test

We hope that with this blog we helped you discover some of the newly released features that will make your business even more successful and efficient with Microsoft Dynamics 365 Finance and Supply Chain Management!

While enjoying the greatest features that new platform updates bring, don’t forget to ensure that your solution is up-to-date and the system is secured and functioning properly after required updates by requesting our subscription-based Solution Maintenance Service now!

In case you’ve missed the first part of what’s new in platform updates, you can read it here.

Don’t forget to contact us via email in case you have any questions as we’ll be more than happy to help and exceed your expectations!

Edgaras Radvilas