Dual-write
Dual-write is an out-of-box infrastructure which can be setup to provide "near-real-time" integration between Dataverse/Dynamics 365 CE apps and Finance and Operations apps.
Good to know
This section gathers some random good-to-know info which is correct on the 2022-04-25 but could be changed in the future. Take is "as-is", this is written from experience of using Dual-write.
- There are different ways and approaches to link Dataverse and FnO. You can link two environments together or you can choose to create a Dataverse environment from FnO (LCS)
- An environment which has been created from FnO can not be renamed in Admin Center
- When taking a Copy from a set of Dataverse + Fno and restoring to another set of Dataverse + Fno, the initial link (linked FnO environment) shown in Admin Center under the Dataverse environment remains.
- A guidance for when to do initial sync and not to can be found in MS Docs, Guidance Matrix
- There is an article describing the linking process, written by Faisal Fareed: Steps to follow when refresh dual-write integrated environments (FO and CE). That is a good go-to article each time you need to re-link environments.
Re-link Dataverse-FnO
The list below is available here all thanks to Faisal Fareed and his article which was the inspiration to the list. Source environments below means the environments which we want to copy from (e.g. Prod). Target enrironments means the environments we want to copy to (e.g. UAT/Test).
1. Go to FnO (target environment) Data Management -> Dual Write and stop all jobs.
2. Copy from FnO source environment to FnO target environment and Dataverse source environment to Dataverse target environment. (Note, we assume that the source environments are linked).
3. Go to FnO (target environment) Data management > Dual write and Unlink environments.
4. Delete data from the following tables in FnO if data exists DualWriteProjectConfiguration - e.g. use URL <Environemnt URL>/?mi=SysTableBrowser&prt=initial&limitednav=true&TableName=DualWriteProjectConfiguration&cmp=<CompanyId> DualWriteProjectFieldConfiguration- e.g. use URL <Environemnt URL>/?mi=SysTableBrowser&prt=initial&limitednav=true&TableName=DualWriteProjectFieldConfiguration&cmp=<CompanyId>
5. Delete data from DualWriteRunTimeConfiguration Table in Dataverse, e.g. using Advanced Find.
6. Link the target environments
7. Apply Microsoft Dual-Write solutions and custom solution if any
8. Start jobs. No init sync needed if copied from both Dataverse and FnO environments which were linked. If copied only from one the two Dataverse or FnO, then also do an init sync.
Reading list
Here follows some links which might be worth taking a look at when learning how to set-up dual-write.
- Step-by-step instructions for enabling Dual-write in Dataverse and FnO: System requirements and prerequisites System requirements and prerequisites.
- Application lifecycle management / Install the dual-write table maps solution: Managing dual-write - ALM
- Unlink and relink dual-write environments: Relink environments.
- Dual-write mapping reference: Mapping reference
- FAQ: Dual-write FAQ
- Guidance for set-up: Guidance for dual-write setup
- Migrate Prospect to cash data from Data Integrator to dual-write: Migrate Prospect to cash
- Unified Product experience: Product Mapping
- Prospect to cash in dual-write: Dual-write Prospect to Cash
- Changing the owning team for "global tables": User-specified team owner
- Setting default companies on records in CRM: Company concept in Dataverse
- Troubleshooting initial sync issues Troubleshoot issues during initial synchronization
For instance, if customers have a self-references or circular references (like "Billing Account" or "Primary Contact") you might get errors, see Self-reference or circular reference failures during initial synchronization
Microsoft Resources
- Dual-write home page
- Dual-write automates data flow between Dynamics 365 applications and Common Data Service Blog post announcing Dual Write 2020-03-27
Community Resources
- Develop custom Data Entities for Dual-write by Adrià Ariste 2021-03-29
- Dual Write articles by Faisal Fareed