One year is huge when it comes to IT. Release after release, new things are added, bugs are fixed, and new ones are discovered. Only by looking at the prolonged timeframe can trends be identified and the actual heading for the entire solution surfaces.
The idea to traverse the past year in D365FO releases also comes from the fact that my last post was almost exactly one year ago. I thought this would be a good way to restart the habit of writing posts for my blog.
As I am writing this, the 10.0.50 is in the Preview, but I won’t be covering any themes from that release.
After a bit of research, I identified several themes, so here is a short TLDR:
- AI Agents and the ERP MCP server
- Finance: Bank reconciliation, budgeting, and subscription billing
- Electronic reporting
- SCM: Warehouse, Planning, Pricing, and Inventory data volume
- Developer and admin changes
- Deprecations and deadlines
AI agents and the ERP MCP server
I am starting alphabetically with A, i.e., AI, and how Microsoft envisioned and executed its integration into the flagship ERP during the last year. While predictive features tied to Azure Machine Learning spanned to almost 10 years ago (Demand forecasting with Azure ML), the first Copilot feature was seen in 10.0.34 about 3 years ago firstly with a purchase-order change summary and later on chat sidecar implementation. In 10.0.44, the first agents appeared in the previews along with the static ERP MCP server.
Those previews paved the way for the features we saw implemented during the previous 12 months. In 10.0.45, users could add attachments for Copilot in the sidecar chat, and the PQU-7 provided support for this version when the dynamic MCP server became available.
The Static server has a fixed catalog of tools running on the Dataverse connector framework. The Dynamic server offers data, form, and action tools that allow CRUD operations, form actions, and calls to X++ classes exposed by developers.
With 10.0.46, the server gained more functions and support for extensions and personalization. In 10.0.47, the MCP goes dynamic with data, form, and action tools that give agents capabilities to navigate and execute as real users would. Microsoft announced that all new ERP agents will be built on MCP. Immersive home is now a standard supported feature after being in preview (still being off by default, though).
The following release, 10.0.48, built usability and scale. MCP responses include a deep link that opens the record the agent worked on. Agents can read, create, modify, and delete attachment records. Read tools now run on SQL instead of OData, and Procurement agent’s impact analysis is introduced as a production-ready preview.
The current GA version, 10.0.49, saw the introduction of some guardrails and general hardening of the system itself. Each MCP tool is labeled either read-only, destructive, idempotent, or open-world, so the calling agent can decide when to stop and ask a human. Form and Data tools see additional fixes, and these improvements are backported to PU71 as PQU-11 and PU72 as PQU-5. Supplier engagement was added to the preview, while the Sidecar’s follow-up questions were removed as a preview feature.
Looking at the entire voyage, I’d say that the introduction of the MCP is the most important one as it gave agents the tools to execute different business scenarios and incorporate AI even more into day-to-day operations.
Finance
Bank reconciliation
Quite a lot was happening with Finance too. Modern Bank reconciliation arrived in 10.0.39 and after 2 versions went GA. In 10.0.45, automatic vendor account matching and optimized auto settlement were introduced. The next version (10.0.46) saw CODA transfer in batch and bank account lifecycle management out of preview. The 10.0.47 had the Time zone alignment, vendor account matching, and the bank transactions page performance work is ‘on by default’. In 10.0.48 and 49 we saw automatic clearing of centralized bridged vendor payments, cash discounts in customer invoice matching rules, delayed settlement, a review step before matches post, and filtered selection of bridge transactions for high volumes.
Budgeting
Budgeting and budget control go back to AX2012, while more recent additions include query-based document filtering in 10.0.28 and source document reprocessing in 10.0.29. During the last year, 10.0.45 and 46 didn’t have any budget-specific features. 10.0.47 provided cancellation of individual lines on general budget reservations, and a performance fix for the budget register entries form, now turned on by default. In 10.0.48, there was an inquiry for purchase orders processed during purchase order year-end, to support audit and period-close review. 10.0.49 saw the biggest chunk of additions:
- automatic accounting date advancement when a period closes mid-workflow
- corruption detection
- auto-posting of general budget reservations after workflow approval
- excluding closing-period transactions from the outstanding encumbrance report
- preserved budget check indicators after partial consumption
Subscription billing
Subscription billing went GA in 10.0.25 with recurring contract billing, multi-element revenue allocation, and revenue and expense deferrals, while Project integration followed in 10.0.32. Version 10.0.45 provided deferral COGS adjustments in preview (including projects), a journal backfill data fix, and credit notes at termination using the original exchange rate. Next release, 10.0.46 is more of a performance upgrade, having Deferral recognition running in parallel (preview), reduce in batch chattiness, and sales order posting for invoice generation is multithreaded. It also applied trade agreement discount groups to billing schedules. The 10.0.47 continues with the performance improvements with the unbilled revenue batch running in parallel (preview), and a new transaction date field separating posting intent from recalculation date.
If the performance was the main theme in 10.0.46 and 47, the accounting correctness is the prevailing one in 10.0.48 and 49. Here, updating a usage line’s consumed quantity reposts the unbilled revenue journal, so deferred and unbilled balances stay right without manual adjustments. Credit notes carry line-level dimensions, and hold can apply to any billing schedule line. In 10.0.49, a correction to multi-element allocation on updates and terminations is added as a feature in preview.
Localization
For the Localization part before 10.0.45 and in regard to the changes within the last year, the Swiss QR-Bill was supported since 2020, and Sweden’s SIE export ran on a legacy ER format. In 10.0.46, structured addresses were added to QR-Bill, the SIE export was rebuilt, and the Italian fiscal journal hwas rewritten as a preview. Next changes were in 10.0.48, where French e-invoicing through EDICOM as the accredited platform and a rebuilt Dutch audit file (XAF 4.0) for performance were added. In essence, the timing was driven by the regulations, and older reports or mappings were swapped for faster ER ones.
Looking at all the changes, it is fair to say that the Finance stopped blocking itself. All the improvements in delayed settlement, bridge transaction filtering, budget date advancement, and parallel subscription batches remove a bottleneck.
Electronic Reporting (ER)
ER is one of those frameworks that charm you in the beginning when everything is “Hello World” simple and then take you down through Dante’s 9 circles of hell when you need to get the actual business done. Well, I perhaps exaggerated a bit, but still, the learning curve is very real.
Here is a bit of backstory about ER. ER was built as one configurable engine, and Configurable business documents (CBD) with Word and Excel templates arrived in 2019. The PDF output was first supported through Office Conversion Services, while In-app conversion appeared as a preview feature in 10.0.43. Named destinations and action-dependent destinations were also introduced along with the ER debugger that lets business users inspect the data at runtime. Regulatory Configuration Service (RCS) was launched in 2020, and in 10.0.39 it was merged into the Globalization Studio workspace. By 10.0.44, the ER was a mature engine, and Microsoft was halfway through moving its infrastructure into Finance and Dataverse.
In 10.0.45, the Dataverse repository and Key Vault parameters for Globalization features become mandatory, and the Globalization Studio and e-invoicing designer features were removed from feature management. The In-app PDF conversion appears as a feature management item. Apart from some performance additions, reliability was addressed by adding an option to stop automatic batch retries for failed ER jobs and to run imports of manually uploaded documents in batch. In 10.0.46, we see almost nothing in regard to framework except that the ER Query timeouts became configurable in ER parameters. The next release, 10.0.47, had no Electronic Reporting items.
10.0.48 is adding some important features: first, the BCC recipients on the email destination are introduced, configured from the same kinds of values as To and Cc (static addresses, expressions, or model-bound fields). This lets you copy compliance or archive mailboxes without exposing them to the main recipient. Then the Dutch audit file (XAF 4.0) was rebuilt as a new model mapping for performance, and French e-invoicing shipped through Electronic invoicing and Globalization Studio.
The biggest batch of changes happened in 10.0.49, which is where we also see a number of user-facing ones. First, the GS1-128, GS1 DataMatrix, and GS1 QR Code are now native barcode formats. Then new formula functions for integer division and remainder are added, and ER destinations now honour the number of copies that are set in Print management. Users can now validate many configuration versions at once as a batch job with a persistent validation history, and the Run draft option for model mappings is always respected. Six features moved to permanent from ‘On by default’.
The additions and fixes in versions 10.0.48 and 10.0.49 are, per Microsoft, mostly comprised of the most-voted ideas, portal requests, and recurring inquiries from partners. We also see some workarounds being replaced by proper features.
Supply Chain Management
You could have noticed that my ‘alphabetical’ list of features from the beginning of the article was just a cheap premise to get the AI to be the first theme that I will write about. To be honest, it wasn’t a hard decision to make given the public interest in AI implementation and enablement within business apps.
Warehouse
Now in the SCM - Warehouse realm, before 10.0.45, Warehouse-specific inventory transactions replaced inventory transactions for internal warehouse operations, the release-to-warehouse and load planning pages were split, the mobile app moved to user-based authentication, and its v4 version was in preview.
In 10.0.46, the Warehouse management only mode gained full support for order-committed reservations on outbound shipment orders. The next version, 10.0.47, was the big warehouse release. The mobile app support of glove-mounted scanners was added, and Microsoft Entra Conditional Access was applied to the mobile app. Load and work tables could be archived with long-term retention, performance work was done on license plate consolidation, packed container picking and pro number generation. The WMS-only mode became mandatory.
The 10.0.48 introduced Dynamic work classification with Power FX, and a new 3D packing algorithm for containerization, both in the form of production-ready previews.
Lastly, in 10.0.49, the aforementioned Dynamic work classification went to ‘on by default’, Inventory status mapping was introduced for WMS-only mode, and a rule was added to prevent multiple owners in one warehouse location.
Planning optimization
Before 10.0.45, the Planning optimization gained most manufacturing scenarios in 10.0.35 while 10.0.39 added a batch of capable-to-promise and coverage options.
In 10.0.45, lean manufacturing entered preview and went GA in 10.0.46. In 10.0.47, the blocked transactions could be excluded from planning when inventory status isn’t a coverage dimension in preview. Also, receipt margins were set to be respected when applying actions. Version 10.0.48 brought soft issue margins, recalculation of confirmed dates when CTP order lines change, and keeping supply reserved for confirmed demand.
In 10.0.49, a ‘closed for pickup’ policy on transport calendars for planned transfer was added; the Supply and demand forecast reduction could account for sub-BOMs and sub-routes; also, derived requirements could be filtered by coverage time fence.
Pricing (unified pricing management)
Old pricing management preview was replaced by unified pricing management in 10.0.41. In 10.0.46, custom price attributes for POS and e-commerce were added. 10.0.47 featured the largest number of additions:
- A pricing calculation API for external systems.
- Pricing rules in a generic base currency.
- Price simulation based on sales order line attributes.
- Faster pricing data import and export.
- Pay-by-link payments through the Adyen connector (preview)
In 10.0.48, the rebate deals that aren’t attribute-based were set to work with unified pricing, and in 10.0.49, automatic price change tracking was implemented so Azure Product Search is notified when prices change.
It seems that Pricing is moving from a module to a service other systems can call on demand.
Inventory data volume
Before 10.0.45, the archiving framework existed for some data, and 10.0.44 replaced SHA1 with SpookyHash for inventory dimension hashing.
In 10.0.47, inventory transaction went through consolidation, where the detailed transactions were replaced with summarized receipts and issues. Archiving for warehouse load and work tables was also added. The 10.0.49 saw the addition of the optimized inventory transaction consolidation in preview.
Developer and admin changes
Before 10.0.45, the platform was in the middle of a security and tooling cleanup. Unified Developer Experience (UDE) went GA, requiring Visual Studio 2022, while older VS versions stopped being supported from PU65 10.0.41. Azure AD Graph support ended in 10.0.41, the ADAL library was removed in 10.0.43, storage account key access was disabled on 10.0.43+, and SQL connections moved from passwords to Entra ID in mid-2025.
In 10.0.45, the Batch history logging options flight lets you skip storing the INFO and PARAMETERS columns, saving storage and speeding up writes. In 10.0.46, the interactive query timeouts dropped from 30 minutes to 5, and Data management framework telemetry goes to Application insights as flight. The 10.0.47 brought grouping and filtering to Find all references in Visual Studio, and new Lifecycle Services cloud implementation projects were frozen for new customers from 16.2.2026, routing them to Power Platform admin center instead.
Next version, 10.0.48, saw client and server keywords on X++ methods producing warnings as leftovers from AX 2012. The Struct.remove bug was fixed, the xppc -notodos compiler option was keeping TODO comments out of logs, and SysDict reflection could detect internal and protected internal members.
In 10.0.49, Microsoft announced the Visual Studio 2022 cutoff for X++, which will take effect starting with PU75. Four Azure assemblies were removed, so any package that depends on them must reference them directly:
- Cortana recommendations client
- Data Factories management
- Resource management
- Storage management
Deprecations and Deadlines
Static ERP MCP server was retired on 1.10.2026.
Global Inventory Accounting will reach end of support on 1.7.2027, with a multi-ledger costing solution as successor.
Asset Management mobile app that was released as open source in 10.0.48 will end distribution through the Power Platform admin center on 30.11.2026.
Field Service Data Integrator templates will end on 28.2.2027.
Inventory On-hand mobile app preview was removed in 10.0.45 and turned into a GitHub sample.
Export to Azure Data Lake stops permanently on 30.11.2026, with Azure Synapse Link for Dataverse being the replacement.
Conclusion
With the next version (10.0.50), Microsoft will move on to next topics, and the versions behind will slowly fade, leaving them merely as points in changelogs and service update documentation. My goal here was to provide as concise as possible groupings of themes that were at the forefront of Microsoft’s flagship ERP. Experts can then see the bigger picture more clearly and plan their work more effectively. For me, it was also interesting to see how Microsoft prioritized certain groups of features and sometimes took the valuable feedback from the users and the community. I hope you took something useful and found an interesting piece that made reading, skimming, or searching worthwhile.