Cross-environment Master Data synchronization (same tenant) - #10753
Cross-environment Master Data synchronization (same tenant)#10753dcenic wants to merge 66 commits into
Conversation
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as off-topic.
This comment was marked as off-topic.
Good Sense Reviewer - Round 9Recommendation: Request ChangesWhat this PR doesThis round adds source-side contact business relation reads for cross-environment contact linking, repairs source API web-service self-healing, and removes tenant values from telemetry messages. The prior contact-link and web-service gaps are addressed. One new mapping-filter change is not correct for cross-environment: it assumes targeted SystemId reads already honor the mapping filter, but that path fetches by SystemId with an empty row filter. Status of previous suggestions
New observations (commits since round 8)S7 (🔴 High): Apply mapping filters cross-environment too Risk assessment and necessityRisk: The latest contact-linking and web-service changes reduce the earlier risk, and the source event timing was verified against the BaseApp publishers. The remaining risk is data integrity in filtered cross-environment mappings: a record outside a mapping filter can still be treated as belonging to that mapping, which can drive the wrong synchronization behavior. Necessity: The same-tenant cross-environment feature is still needed and the scope is aligned with that goal. The mapping-filter regression must be fixed before merge because it can persist incorrect master-data synchronization results.
|
What & why
Summary
Extends Master Data Management from same-environment, company-to-company sync to cross-environment sync within the same tenant. A subsidiary environment pulls master data from a source environment over an authenticated ODataV4 endpoint, reusing the existing synchronization engine end-to-end.
The whole feature is gated behind the new Source Environment Name setup field: empty = existing same-environment behavior, unchanged; set = cross-environment path. Same-env code paths are behavior-neutral.
What's included
Source-side generic API (published as an ODataV4 web service)
Read-only, runs under the caller's permission set (no elevation); composite change-feed keys added selectively via tableextensions.
Subsidiary consumer
Setup & enable flow
Inline Media & Blob synchronization
Security
Privacy
Out of scope / deferred to vNext
Linked work
Fixes AB#647660
How I validated this
What I tested and the outcome (required — be specific: scenarios, commands, screenshots for UI changes)
Risk & compatibility
Same-environment MDM is untouched (subscriber table, event-driven rescheduling, and existing media handling all preserved). All new behavior branches on Source Environment Name.