Dual-write between Dynamics 365 CE & Finance and Operations

A comprehensive, practical guide to plan, implement, customize, monitor, and troubleshoot Dual-write (Dataverse <> Finance and Operations apps) for real-time business data.


Contents

  1. What is Dual-write?
  2. Architecture at a Glance
  3. Prerequisites & Readiness Checklist
  4. Core Concepts You’ll Use Every Day
  5. Step-by-Step Setup
  6. Data Design & Mapping Guidance
  7. Customizations & Extensions
  8. Operations: Monitoring, Errors, Performance
  9. Security & Compliance
  10. Cutover & Migration Playbook
  11. ALM: Dev/Test/Prod Strategy
  12. FAQ
  13. A–Z Glossary
  14. Sample Runbook Snippets
  15. Governance & Best Practices
  16. Conclusion & Meta

What is Dual-write?

Dual-write provides near real-time, bidirectional data sync between Dynamics 365 Customer Engagement (CE) apps (Sales, Customer Service, Field Service, etc., built on Microsoft Dataverse) and Finance & Operations (F&O) apps (Finance, Supply Chain Management, Project Operations for resource/non-stock scenarios). It ships with vetted templates (“maps”) that align common business entities—accounts, contacts, products, customers, vendors, orders—so front-office and back-office stay in lockstep.

Who should use it?

  • Organizations running both CE and F&O that want a single source of truth without custom integrations.
  • Businesses migrating in phases (e.g., CE first, F&O later) needing continuous data consistency during the transition.

Architecture at a Glance

Dual-write runs as a platform capability:

  • Dataverse holds CE tables; F&O holds enterprise data (e.g., CustTable, VendTable, EcoResProduct).
  • Templates (maps) define table pairings, field mappings, transforms, and filters.
  • Company context (msdyn_company in Dataverse) aligns with F&O legal entities.
  • Initial sync loads historical data; live sync streams ongoing changes.
  • Health, error, and pause controls are available in both environments.
Tip:
Keep Data Integrator separate in your mind—it’s for batch integration. Dual-write is for near real-time operational sync.

Prerequisites & Readiness Checklist

  • Licensing: Valid licenses for the CE app(s) and F&O app(s) you’ll integrate.
  • Environments: Linked CE & F&O (Dev, Test, Prod). Use LCS to associate F&O with your tenant and link to Dataverse.
  • Access: Global admin or equivalent to set up links; appropriate roles in Power Platform and F&O.
  • Solutions: Ensure required Dual-write solutions in Dataverse (installed during linking). Party/Global Address Book solutions are recommended when syncing addresses across systems.
  • Networking: Traffic allowed to Microsoft endpoints (no custom firewalls blocking platform traffic).
  • Data quality: Clean duplicates, standardize addresses, phone formats, and country/region codes before initial sync.

Core Concepts You’ll Use Every Day

Templates (Maps)

Prebuilt pairings for tables like Account ↔ Customers, Contact ↔ ContactPerson, Product ↔ Released Product, Sales order ↔ Sales order, Company ↔ Legal entity, Currency, UoM, Payment terms, etc.

Company Context

The msdyn_company lookup on Dataverse rows controls which F&O legal entity the record syncs with. Always set it for company-scoped data.

Initial vs Live Sync

Initial sync loads historical data in bulk; live sync sends changes in seconds. Handle duplicates and keys before you go live.

Transforms & Value Maps

Use template transforms for simple lookups and enumerations. For complex logic, prefer F&O business logic or Power Platform plugins.


Step-by-Step Setup (Dev → Test → Prod)

  1. Link environments: In F&O (System administration > Setup > Microsoft Power Platform integration), link to your Dataverse environment. This installs Dual-write solutions in Dataverse if missing.
  2. Enable legal entities: Select which F&O companies will sync. Ensure each has matching company records in Dataverse.
  3. Review templates: Start with foundation maps—Company, Currency, Unit, Country/Region, Payment terms, Customer group/vendor group, Address roles.
  4. Run initial sync for foundation maps: Validate data volumes and errors. Fix duplicates and missing references, then rerun.
  5. Activate business maps: Account/Contact ↔ Customer/ContactPerson, Product ↔ Released Product, Vendors, Price lists/UoM conversions, Quotes/Orders.
  6. Pilot live sync: Turn on live sync for a subset (one legal entity, one BU) and validate end-to-end (create in CE, post in F&O, round-trip updates).
  7. Harden & extend: Add custom columns, value maps, and plugins where necessary. Keep transforms minimal inside templates.
  8. Promote via ALM: Move the configuration and solutions through Dev → Test → Prod with proper change control and freeze windows for cutover.
Foundation order that works well:
Company → Currency → Country/Region → Units & Conversions → Payment Terms → Customer/Vendor groups → Party/Address → Customers/Vendors → Products → Price/Discount structures → Quotes/Orders.

Data Design & Mapping Guidance

  • Party & Address model: If using synchronized addresses, adopt the party/global address book solutions so CE Accounts/Contacts align to F&O Party/Postal addresses cleanly.
  • Keys & Numbers: Decide source of truth for customer and vendor numbers (F&O number sequences versus CE auto-numbers). Avoid generating competing numbers on both sides.
  • Option sets & enums: Ensure CE option sets map to F&O enums (add value maps). Keep a shared reference table when necessary.
  • Company scope: For company-specific data (products, prices, customers), always set msdyn_company in CE and the legal entity in F&O.
  • Products: Align released product variants/attributes with CE product family/variants. If CE catalogs differ, add a cross-reference table.
  • Orders: Capture sales intent in CE; financial posting remains in F&O. Use order status transitions that both systems understand.

Customizations & Extensions

You can safely extend Dual-write without breaking the core:

  • Custom columns: Add to both sides, then extend the template mapping.
  • Value conversions: Use value maps for simple translations (e.g., ProspectCustGroup).
  • Business logic: Prefer F&O extensions for finance logic; use Dataverse plugins/Power Automate for CE workflow logic. Keep template transforms lightweight.
  • Conditional sync: Template filters can limit which records/companies sync.

Operations: Monitoring, Error Handling, Performance

Where to monitor

  • F&O Dual-write workspace: Health, errors, pause/resume, replays.
  • Dataverse Dual-write app: Template state, map details, initial sync progress.

Common errors & quick fixes

  • Duplicate key / already exists: Align keys before initial sync; use merge or remap.
  • Missing reference (e.g., currency/UoM): Run foundation maps first; re-order initial sync.
  • Auth/permission failures: Revalidate connections; ensure app users/roles in both environments.
  • Throttling: Stagger maps, run outside business peaks, and batch initial sync in segments.

Performance tips

  • Initial sync in waves (by legal entity or BU). Archive logs frequently.
  • Trim columns to only what’s needed. Disable unused maps.
  • Avoid heavy synchronous plugins on synced tables; switch to async where possible.

Security & Compliance

  • Least privilege: Assign only required roles to service principals/app users.
  • PII/GDPR: Minimize synced fields; use field-level security and attribute masking as needed.
  • Audit: Turn on auditing for critical tables. Monitor failures and replay logs.
  • Change control: Promote template changes via managed solutions and documented runbooks.

Cutover & Migration Playbook

  1. Freeze window: Announce a read-only window in CE and/or F&O.
  2. Foundation sync: Ensure currencies, units, payment terms, groups exist on both sides.
  3. Historical load: Migrate customers/vendors/products first, then balances (if required).
  4. Initial sync: Run for all business maps; reconcile counts and spot-check samples.
  5. Turn on live sync: Start with a pilot legal entity; monitor; then roll out globally.
  6. Fallback plan: Document how to pause maps, revert data changes, and replay after fixes.

ALM: Dev/Test/Prod Strategy

  • Branching: Keep Dual-write solution changes in version control alongside CE/F&O extensions.
  • Config as code: Document template settings, value maps, filters, and keep a change log.
  • Automated checks: Pre-flight tests to validate required reference data before enabling maps.
  • Smoke tests: Create Account in CE → becomes Customer in F&O; update Address in F&O → reflects in CE.

FAQ

Does Dual-write replace middleware?

For core CE↔F&O synchronization, yes. You may still use Azure Integration Services for non-Dynamics, B2B EDI, and analytics pipelines.

How “real-time” is it?

Typically seconds. It’s event-driven, not batch. Throughput depends on load, plugins, and map volume.

Can I sync custom tables?

Yes—create a custom map. Keep schemas symmetrical and plan keys and company scope.

What about multi-company?

Use msdyn_company to route records per legal entity. Create data policies to avoid cross-company contamination.

How do I handle deletes?

Decide per table. Many customers use “soft delete” or business deactivation to preserve financial audit requirements.


A–Z Glossary (Quick Reference)

  • A – Account/Customer: CE Account ↔ F&O CustTable pairing.
  • B – Business unit: Use for scoping pilots and security.
  • C – Company context: msdyn_company links to legal entities.
  • D – Dual-write workspace: Monitor, pause, replay.
  • E – Enums: Map to CE option sets via value maps.
  • F – Foundation maps: Company, Currency, UoM, Country/Region.
  • G – Global Address Book: Party model parity with CE.
  • H – Health: Template status and error trends.
  • I – Initial sync: One-time historical data load.
  • J – Journeys: End-to-end tests CE→F&O→CE.
  • K – Keys: Choose master for numbers, avoid collisions.
  • L – Live sync: Near real-time event processing.
  • M – Maps: Prebuilt templates you can extend.
  • N – Number sequences: Typically mastered in F&O.
  • O – Orders: CE intent, F&O financials/posting.
  • P – Party: Person/Organization with addresses.
  • Q – Quality gates: Pre-flight checks before go-live.
  • R – Replay: Fix, then replay failed records.
  • S – Security: Roles, least privilege, audit.
  • T – Transforms: Keep simple; push complex logic to apps.
  • U – UoM: Sync units and conversions early.
  • V – Vendors: CE Supplier ↔ F&O VendTable.
  • W – Wave approach: Rollout per entity/company.
  • X – X-functional team: CE, F&O, infra, security.
  • Y – “Y” not syncing? Check references & throttling.
  • Z – Zero surprises: Runbook, rollback, comms plan.

Sample Runbook Snippets

  1. Pre-flight: Confirm solutions, connections, security roles, service principals, reference data counts.
  2. Enable order: Foundation maps → Party/Address → Customers/Vendors → Products → Orders.
  3. Smoke test: Create Account in CE with company; verify in F&O as customer. Update address in F&O; verify in CE.
  4. Monitoring: Watch error rates < 0.5% and replay queue empties within SLA.
  5. Fallback: Pause affected maps, fix root cause, replay, reconcile counts, resume.

Governance & Best Practices

  • Start small (one legal entity, one region), then scale.
  • Keep customizations minimal inside templates—move complexity to app layers.
  • Use managed solutions and document every mapping change.
  • Train support on error categories and replay procedures.
  • Align CE & F&O release calendars; avoid conflicting changes on mapped tables.

Conclusion

Dual-write can unify your customer and financial worlds in days—not months—when you follow a disciplined rollout: prepare foundation data, pick the right master for keys, pilot with a narrow scope, then expand with strong monitoring and ALM. With the A–Z reference above, you have a ready-to-run playbook for a safe, scalable implementation.

↑ Back to top


Discover more from BooNars

Subscribe to get the latest posts sent to your email.

Leave a comment