Skip to main content

Posts

Showing posts with the label Dual Write

Dual-write learning series - Dual-write initial sync is the data integrator

One of the features of the dual-write is initial sync where you copy data from the source app (Finance Operation OR DataVerse) to the target app  (Finance Operation OR DataVerse) depending on the selection in Master for initial sync option.  This initial sync is the Data Integrator service running behind the scene and copies your data over. You configure the application id for data integrator and add it both apps ( Finance Operation OR DataVerse ), I have documented it my previous post  The Dual Write implementation - Part 2 - understand and action pre-requisites Master for initial sync can be either Common Data Service (Dataverse) or Finance and Operations apps. For example, If I choose Finance and Operations app in below example where I am syncing Functional Locations then all records will be copied from Finance and operations to Dataverse. Initial Sync is a full push means if an individual row fails to sync, you cannot resync only failed ones.  If the initia...

How to run dual-write table map when underline entity table is setup under cross-company data sharing policy

Scenario:   Project groups are shared across all legal entities in  D365 finance & operations app so have setup under one of the cross-company data sharing policies. You are also required to setup dual-write table map for project groups to sync from FO to CDS. However, you get following error message when you try to Run the table map "Copying pre-existing data completed with errors. For additional details, go to initial sync details tab." Follow these steps to overcome this issue as a workaround.  Steps to follow: Disable cross-company data sharing policy where ProjGroup table has been used Choose Yes at next pop up window Go to Data management > Dual write > select Project Groups table map and Run Enable cross-company data sharing policy for project groups Choose No at the next pop up window unless you want to copy data across all companies

Steps to follow when refresh dual-write integrated environments (FO and CE)

Scenario:   The D365 finance & operations app is linked to Common Data Services through dual-write in development or sandbox environments. You are required to refresh databases in D365 FO and CDS both from another production environment (dual-write integrated (linked) environments in the scenario) Steps to follow: Before initial refresh, log on to target environment Go to Data management > Dual write and stop all jobs Refresh FO and CDS environments from the same integrated source environments Go to Data management > Dual write and Unlink environments Clean data from following tables in D365FO if data exists DualWriteProjectConfiguration - A sample URL would be like this to access tables from D365FO environment <Environemnt URL>/?mi=SysTableBrowser&prt=initial&limitednav=true&TableName=DualWriteProjectConfiguration&cmp=<CompanyId> DualWriteProjectFieldConfiguration- A sample URL would be like this to access tables from D365FO environment <En...

Dual-write connection set error: An item with the same key has already been added

If you happen to see this error message then you have duplicate records in cdm_company entity in CDS environment. Check for cdm_companycode field this is normally not allowed but have a look and delete the ones with duplicates.

Dual-write integration for Cross-Company data in D365 Finance and SCM

Dual-write does not work with  the cross company data sharing policies in  D365 FinOps  (there are so many names but I am using this name for reference 😊). Brief overview about cross company data sharing policy first to set the base for the readers, the Cross-Company data sharing lets you have your data accessible from multiple legal entities (companies in D365 FinOps). For example, if you setup a policy for vendors to be crossed-company then whenever you create a new vendor it will be created in all data sharing legal entities. https://docs.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/sysadmin/cross-company-data-sharing Now, What happened when you a table under cross-company data sharing (e.g. VendTable) and want to sync vendors through dual-write? Since, VendTable is one of the data sources for Vendors data entity (dual-write entity map) and we know dual-write does not work well with cross-company data sharing by design. You get following error message when...

Want to see the inbound and outbound Payload for dual-write integration

Let's continue where we left in first post "What got changed (Technical) in D365 Finance Operations with dual-write" our journey to understand what are the technical changes being done for dual-write framework. This post we will look at what are highly used tables, entities, and classes involved for dual-write sync. I will only cover few tables, classes, and data entities but complete list of objects can be explored from AOT as shown below. Business scenario: Create or update Vendor Groups in FO and sync over to CDS and vice versa. Open Vendor groups screen - Accounts Payable > Vendors > Vendor groups Out-of-the-box dual-write template is available for vendor groups These fields are mapped between Finance and Operations apps and Common Data Service for Vendor groups dual-write template. NOTE: only data will sync between apps only for mapped fields and the integration will also only trigger when we change data for these mapped fields in either side of the integrat...

What gets changed (Technical) in D365 Finance Operation with dual-write

Being a developer I have to explore how a new feature or a framework has been developed and how can this be extended when needed. While working on dual-write implementation I came across many technical difficulties as the framework was not mature enough at that time since the dual-write is only generally available in end of March 2020 and I have been working on dual-write since mid-year 2019. I must say MS has done tremendous amount of work to make the integration with Microsoft Dynamics 365 Finance Operations apps and Common Data Services  via Dual-write Bunch of AOT objects have been added at D365 FO side - screen shot taken from 10.0.13 these can grow with future releases if needed. Application class has also been modified for dual-write, below method gets called when the database transaction tries to get committed, between ttsbegin and ttscommit . public void ttsNotifyPreCommit()     {         if (!isInTtsNotifyPreCommit) ...