It’s always nice having to prep a webinar about “what’s new in Business Central”. It makes you being very busy with what’s next, and forces you to dive into it :-). Not always easy though, because – even today – there isn’t too much documentation online yet (it’s not fully released either, so .. quite obvious).
So, while prepping this, I did take some notes, which I’d be happy to share with you. Just a complete overview of everything that I found, with for some topics, my own train of thoughts. Interesting? May be .. I’m just happy to share ;-).
So let’s go over the list of new features that I was able to gather – as always with a strong focus on the “tech” stuff ;-).
But I’m not interested in what you think about it, waldo, just give me the complete list!
Well, the list below is quite complete, but May be I missed some stuff.. , so let me share the resources I used. it’s based on the resources that I found here:
- Overview of Dynamics 365 Business Central 2023 release wave 1 | Microsoft Learn
- Microsoft Release planner (dynamics.com)
- Prepare for major updates with preview environments – Business Central | Microsoft Learn
- Dynamics 365 Lab (yzhums.com) (just to name one blog that has been VERY active in explaining these new features)
And since we’re talking resources: don’t forget, on March 29th, Microsoft will host their “Business Central Launch Event” where they will have a LOT of content in the form of videos about all news features. Not registered yet? Here is the link: https://aka.ms/BCLE .
Now – let’s dive into it!
Development
Well, of course we’ll start with the “most important part” 🤪 (at least in my daily job ;-)): development. Has anything changed in the compiler/language, let’s see…
AL Explorer and AL Home in Visual Studio Code AL extension
Some really nice new features that were added in VSCode (AL Language Extension), but things you’ll have to get used to yourself. You’ll have a new explorer that gives you new ways to filter, visualize, brows, navigate, .. to objects. You can imply start it with:
And you’ll get a new representation of your collection of objects.
Which even supports Multi Root Workspaces! Awesome.
Next, you also have “AL: Home”, Which is a new tab delivered as a part of the AL Language Extension, which is your new feed for AL related news for developers. And that’s not my words, but … 😉
I’m not sure which way this will go, but I’m excited to see these improvements and look forward to use them on a daily basis ;-).
Improved compiler resource handling and faster code analyzers
Well, that’s about time. The v21 compiler was dreadfully slow, so I was really looking forward to an improved performance of working with AL on large workspaces.
I tested this (not thoroughly, I simply opened our biggest project, a multi root workspace of about 80 apps – about 10000 objects in place .. ), and it performance very well.
They also introduced new settings “backgroundCodeAnalysis
” now has the option to only analyze the files you touch/open, and you can also get statistics on the analyzer rules that the engine is spending most time on, for you to either solve them, or exclude them.
Provide Title and custom actions to Error dialogs
This issue is a bit linked to another new feature that I will talk about below – but yeah, we’re now able to set up actions on an Error:
Even a better way to enrich errors and guide users in what to do when they get it! Nice one!
While testing this though, I came across a possible downside as well, because I couldn’t find a way anymore to get the error details. Weird..
Control database locking behavior
BC automatically determines the isolation levels when querying the database, but now, we (developers) will be able to overrule it:
Make sure you thoroughly understand the different locking levels! As I said during the session: with great power comes great responsibility – I can see possibilities where this could be misused .. or even abused. Be aware!
Though, if used correctly, I certainly see how we can very much improve lots of unnecessary locks, or possible deadlocks for that matter!
Define regional settings per report using a region property
This has been a huge pain, especially when working with international customers/users/.. . But now, you’ll be able to set up formatting of date and numerical types of a report objects. How this looks like, I’m not sure, but it seems:
developers will be able to control it as a property on the report:
but it can also be set on the report settings in BC. I didn’t see this in the client just yet, but it should be there at some point, I guess – and it overrides the property that the developer set on the report object.
And there is also a FastTab on the report request page to allow to override the region as well, like you see here:
And you can see, we can also override the Application Language Id as well. Cool stuff!
AL-Go for GitHub – modern DevOps for partners
Also some new features for AL-Go for GitHub. I don’t really have a lot to say about this, I’m afraid – simply because I don’t use AL-Go for GitHub, and don’t see myself using it anytime soon. Simply because we have our own tool (ALOps) for a good reason:
- It’s based on DevOps,
- It allows us to apply default CI/CD workflows, branching strategies, .. (whatever they are)
- It allows us to use default DevOps capabilities, like templates and such, and combine them with AL-specific tasks
- It provides building blocks we need for specifically AL
- We can even combine different technologies, like JS, PS, AL, .Net WebAPi, AzureFunctions, .. (Powerstuff?) , all part of one (or more) pipeline(s), deployment, ..
- …
ALOps works perfect for us, and gives us the flexibility that we need. Sure, it was an investment in knowledge (no, we still did not “hire a devops engineer” which Microsoft claims is necessary), but it’s all worth it.
But if you’re not into investing into DevOps know-how, or into full flexibility of your development process, and want to base your development workflow on whatever Freddy pulls out if his sleeve – AL-Go is the way to go!
Remember: No CI/CD is simply not an option!
Extensions that fail pre-upgrade validation get more detailed error insights
No idea how this will look like, but more info on errors is always a good idea, and especially when Microsoft is pushing an upgrade!
Attach AL debugger to active session or next session
Basically, they copied capabilities that we already had with the snapshot debuggger to the normal debugger. Finally. This was a big gap – and now it’s filled! 🙏
ISVs can organize a preview for their AppSource apps
When ISV’s upload their apps to AppSource, now it will be possible for ISVs to add their app to AppSource in Preview Mode. For this to work, they can choose or generate a “flightcode”, which makes it possible to create a unique link to their app which they can share with a select audience (their customers) to collect feedback about the app in preview. Awesome addition!
There is more!
You can always look into the changelog of the new AL Language Extension, where you’ll find more detailed info on what has been added to the language, like coderules, properties, settings, … .
User experiences
Add existing table fields to optimize your pages
Now this is something that is only going to be released after the general availability in April: it’s namely scheduled for June. So I wasn’t able to test this in the preview-bits. But it comes down to the following: in personalization, users will be able to add ANY field to a page, even if developers wouldn’t have put the field (invisibly) on the page.
Personally, I think this can be dangerous: there are many reasons to hide fields: security, users shouldn’t see it anyway, internal system fields, uneditability, .. stuff like that. So users being able to add any field all of a sudden would introduce a new way of thinking about fields: if you explicitly want to hide fields from a user, now you’d have to add them to the page as invisible, in stead of not adding them to the page at all (or at least that’s how I understand). Just think about .. 🤔. Even more: what happens with the (default) editability of the field? Questions .. many questions .. 🤔. I really wonder how that is going to work!
Drag and drop files onto the file upload dialog
As such – this feature makes this box:
Turn into:
And quite honestly, it doesn’t change much about the functionality, because I don’t know if you know, but you have been able to drop a file on the “Choose” button already for a long time. At least, now, it’s clear that dropping a file in the box will upload the file .. 🤷♂️.
So, did you get a new feature? No – you just get a new picture 🤪.
Access actions and navigation menu efficiently with keyboard
Cool feature! I’m a big fan of doing stuff with the keyboard, and this feature will make so much more navigatable through keyboard. Just press ALT, and you’ll see what keys you need to press to access a certain menu item.
And – not unimportant, but you don’t have to do ANYTHING for it as a developer: the client will figure out which actions get which Key tips. For the time being – only in English though (which I really wonder why that is … 🤔).
Get more productivity out of an optimized Action Bar on all app pages
Basically, they finished what they started previous release: in stead of just 180 pages, now all pages are implemented with an improved action bar. They kind of like finished what they started .. 🤷♂️
Tailor the action bar to fit your needs on document lines
Personalization on document lines will be possible as well. So in stead of not being able to configure actions:
You will be able to do so in v22 🙂
A request we have been getting from customers already .. so .. good stuff ;-).
Improved alignment of headers in statistics pages
The default behaviour in BC is to right aligh numeric fields, and to left align text fields. In terms of statistics pages, that’s just rubbish like this:
So: next version, that’s fixed, without any technical reinforcement – it just works:
Get unblocked using actionable error messages in select application areas
Also this one is a new feature to improve the user experience in terms of resolving issues: Microsoft added actions to error messages, making error messages more user friendly by adding the ability to add actions to it. So, what they did, is:
- Improved the information in the error messages
- Replaced the expandable advanced troubleshooting info with a copy details link to make errors less alarming
- Added the ability to add actions to fix the problem related to errors.
How do add these actions – check out the dev-part of this blogpost ;-). But you do see that the error message with the extra action, doesn’t contain the “Copy Details” right? That’s the issue what I was talking about earlier..
Copy and paste readable hyperlinks
Well, honestly, I’m not totally sure what they mean with this, but I’m going to assume that it’s pretty much the same as with some other apps, that when you paste a URL, that you don’t get the URL, but actual text, explaining the actual endpoint, with off course a hyperlink to the copied URL.. . Makes sense?
Application
Honestly, I’m a rookie when it comes down to anything application-related – which kind of means that any of my views on any of these topics should be seen as an opinion of a 5-year-old .. so I’m going to protect myself and keep most of the views to myself. Nevertheless – let’s list the improvements!
Adjust exchange rates easily, replace the built-in batch job
Use different general ledger accounts for payables, receivables
Add more columns to pages for better insight
Well .. It seems less interesting than the description described. (And – it confuses me with the other new feature: Add existing table fields to optimize your pages).
It’s pretty much turning “adding 3 fields on a page” into a new feature.
Avoid document number errors when you post item journals
Catalog items use standard number series, can include in blanket sales orders
Define content of created warehouse documents with filters
Demo tool and data for warehouse and inventory scenarios
This feature is pretty much the “Contoso Coffee” app getting more functionality: this time, they added data for different warehousing scenarios:
- Walkthrough of inbound and outbound flow in basic warehouse configurations.
- Walkthrough of inbound and outbound flow in mixed warehouse configurations.
- Walkthrough of inbound and outbound flow in advanced warehouse configurations with directed put-away and pick.
I guess this is a good think for the people that need it. The only think that feels a bit amateuristic about it is the fact they created a new page for this, with a new menu:
It’s clear what the second option does, but it’s not clear that the first option is that Manufacturing Demo Data, is it? 🤔
Easier to create opening balances for item tracked inventory
Intercompany posting provides a one-stop-shop setup experience
Post multiple transfer orders at the same time
Preview item journals and 20 other journals and documents before posting
Review general ledger accounts faster
Set default dimensions on locations, inventory documents, and journals
Set up and sync master data across companies
This is an entirely new app from Microsoft, called “Master Data Management“
With one clear scope: sync masterdata between companies within the same environment. Yeah, that’s right, in one environment in one tenant.
I did a big of digging into this new feature because I had a special interest how it was created – we have an app of our own that takes care of “Master Data Synchronization”. And there are a few things that I’d like to mention some capabilities and limitations:
Capabilities
- It’s subscription-based: a company subscribes to data from another company
- You can define which tables/fields to synch, even set filters to which filtered set you’d like to synch
- It’s based on the Job Queue, which will pull the changes to the receiving companies
- You’ll have a synchronization log
- There are quite some (29) events you can hook into. This makes it extensible. They are quite cryptic though, so please use the event recorder to figure out what is the best event to use when extending this functionality!
Limitations:
- It makes use of “ChangeCompany”. Like .. A LOT! This kind of means that changing this in the future to making it possible to go cross tenants, is going to be difficult, and needs a thorough redesign.
2. There is no interface – which pretty much leads me to the same doubts as above – I wouldn’t be able to implement my own solution cross tenant, by (for example) implementing my own implementation on how to synch data. I mean, it’s already set up on receiving level on how to treat data – it would just be a matter of getting the data there .. ?
3. You’ll have a setup per company (since a company subscribes to data from another company). So have an insane amount of companies would mean you’ll have an insane amount of setup to do.. .
4. You can only set up 1 company as a source. So you’ll not be able to get customers from one company, and Vendors from another..
Don’t get me wrong – Finally, there is an out-of-the-box solution to handle Master Data cross company. This is huge! Just be aware of the limitations .. 🤷♂️
Ship and receive non-inventory items on warehouse documents
Shopify connector becomes extensible
Usability improves for transfer order: select multiple items, mandatory fields
Usability improves for warehouse, inventory, and tracking areas
Use advanced warehouse functionality with minimal complexity
Use statistical accounts to collect data for financial reports
Synchronize returns, refunds from Shopify
Service and platform
I didn’t go too deep into these points, but here is the list nevertheless…
Allow application and tenant databases to differ in collation
Business Central server runs on .NET 6
Performance – OData calls are now faster
Reporting and data analysis
Analyze, group, and pivot data on list pages using multiple tabs
This is a big one! And James Crowter already drafted a nice blogpost about it, which you can find here on LinkedIn.
Basically, when you enable the feature, you get this button on all list-pages:
The idea is – you’re able to do some analysis, based on data in this list. You get a new grid-view, that gives you lots of possibilities – let’s just compare it with an on-demand Pivot-Table on the data .. ?
But again – please read the James’ blog – it’s an awesome story in may be the best new feature for end-users in a long time!
Legislation
Audit file export eases SAF-T compliance
Non-deductible, partly deductible VAT expands functionality
Productive with Microsoft 365
Experience enhanced adaptive cards in Teams
Configure security controls for Teams cards
Easily set up access with Microsoft 365 licenses
Country and regional
New countries coming up! That’s always nice to see – we’re conquering the world!
But also a nice one: Swedish localization delivered as extension. We’re slowly getting there… I’m very keen to know what the upgrade path is for Swedish PTE’s .. ;-).
Governance and administration
Delegated admin’s job queue entries are run by user
Get an improved cloud migration status overview
Manage user permissions using security groups
Experience improved app management settings
Include or exclude tables from cloud migration
Transfer environments between Azure AD tenants
Adapt faster with Microsoft Power Platform
Use business events to notify and trigger external systems
Oh yes oh yes oh yes. I haven’t been playing with it, and I happily refer to our webinar for Directions, but I’m looking forward to this feature, just because it will bring so much more use cases to the Power Platform: you will be able to start a power automate flow, based on business events like “Post” or “Released” or .. yep .. your own custom defined event!
While I was talking to AJ, he seemed to have seen one issue though: that we had to work with CompanyNames in stead of CompanyId. That would be weird .. I guess they’ll fix it when it gets released!
Get started with more sample Power Automate templates and Power Apps
Support dynamic environment and company in Power Platform connector
Use Power Automate to post adaptive card or link to Business Central record
Two new actions in Power Automate: Get URL and Create Adaptive Card – combine this with the business events (webhooks), and we have some tools to create a powerful messaging engine to Teams. Cool stuff – and I’d be happy to play around with it!
New approval workflow experience with Power Automate templates
BC Copilot
Recently, Microsoft announced something like “Copilot” for all its Dynamics 365 offerings, including Business Central. I’m not going to tell you too much (and there isn’t much to test yet either), but here you can find their Blog: Introducing Microsoft Dynamics 365 Copilot, the world’s first copilot in both CRM and ERP, that brings next-generation AI to every line of business – The Official Microsoft Blog
And also Stefano already wrote about it, with more of a focus to Business Central, of course: Introducing Copilot for Dynamics 365 Business Central – Stefano Demiliani
Me personally, I’m not wild about the feature, but I am looking forward to how easy it will be to extend, and implement actual useful scenarios with it! 🤞🤞
Conclusion
This is a big one, people! Lots of things. Lots of GOOD things. Lots of things that we have been asking for. Awesome stuff! Can’t wait to have been upgraded! Fingers crossed that all upgrades will go smooth though ;-)!
4 comments
1 ping
Skip to comment form
Hi Waldo, Always very interesting to have your perspective on the new features of a new version! You are our bible!
Regarding “Reporting and data analysis,” yes, it’s a great feature for users, but be careful of the limitations related to the data volume… 😉
Author
Oh definitely.
Exploring the performance implications of this new feature is on my list 😉
thanks alot of information goodjobs
Thank you for providing such an insightful overview of the Dynamics 365 Business Central 2023 release wave 1. It’s evident that you’ve delved into the technical aspects with a keen eye, and your notes have been immensely helpful for those of us eager to explore the new features.
[…] Dynamics 365 Business Central in 2023 release wave 1 […]