Consolidating four legal entities while an overlayering ISV blocks the update path
Contoso Industrial manufactures pumps in four legal entities across the United States, Canada, and Mexico and runs Dynamics 365 Finance on version 10.0.39, with updates paused six months ago. The partner who built the original system is no longer under contract, and their ISV solution modifies the CustTable and InventDim tables directly instead of using extensions. Every cumulative update attempt fails code merge in those two tables. Meanwhile the business wants a single global chart of accounts, monthly consolidated statements produced inside Finance rather than in spreadsheets, intercompany sales orders from the US entity to the Mexican entity with automatic matching, and Mexican statutory electronic invoicing (CFDI) through a local provider. There are 850 finance and warehouse users, 40 outbound integrations, and a hard requirement that the platform stay current with Microsoft releases so that regulatory features arrive on time. The CFO has asked the architecture team whether the ISV should be kept, replaced, or wrapped.
1. The upgrade is blocked by the third-party overlayering. What options should the architect present, and what criteria decide between them?
Read the worked answer
Treat this as a supportability decision, not a code decision. First establish facts: is the ISV vendor still trading, does an extension-based release exist, on what date, and does it cover both tables' current usage? Get that in writing before evaluating alternatives.
There are three viable options, judged against four criteria - functional coverage, three-year total cost, regulatory risk of running behind on updates, and time to the next update window:
- Upgrade to the extension-based ISV release. Cheapest if it lands before the update window closes.
- Replace with standard functionality plus in-house extensions. InventDim is one of the hardest tables to extend, so expect a redesign of dimension storage rather than a like-for-like port; budget that explicitly.
- Retire the ISV and re-platform its data through the Data Management Framework into standard structures.
Do not accept "stay overlaid and skip updates." Mexico's CFDI schema changes and other regulatory features ship through service updates, so pausing updates converts technical debt into compliance exposure. Run the LCS upgrade analysis and a code-merge pass in a sandbox to quantify conflicts before committing to a date, and make "no new overlayering" a design-authority rule enforced in code review.
2. Design the financial structure: shared chart of accounts, group consolidation, and intercompany sales. What decisions must be made, and what do you recommend?
Read the worked answer
Separate three decisions: the chart of accounts, the consolidation mechanism, and the intercompany flow.
Chart of accounts. Use one shared chart across all four legal entities, with main account legal entity overrides where local statutory reporting needs different posting or presentation. This gives group reporting a common language and removes mapping tables, at the price of governance: create a design authority that owns main account and dimension creation, or the chart grows to hundreds of unused accounts within a year. Add financial dimensions for cost centre and line of business; do not create one dimension per legal entity.
Consolidation. Run statutory consolidation inside Finance using consolidation accounts and elimination rules, because it is auditable and repeatable. Group management reporting should come from the entity store or Data Lake into Power BI - in-product consolidation is a period-end process, not a near-real-time reporting engine.
Intercompany. Configure the intercompany chart, matched customer/vendor pairs per entity pair, and intercompany sales orders so the US sale automatically creates the Mexican purchase order. Decide explicitly whether direct delivery is needed and whether matching and settlement happen automatically or through a period-end netting process. Test eliminations with the transactions you will use in the first close, not with sample data.