web
You’re offline. This is a read only version of the page.
close
Skip to main content

Announcements

News and Announcements icon
Community site session details

Community site session details

Session Id :
Power Platform Community / Forums / Power Apps / Exporting N:N relation...
Power Apps
Answered

Exporting N:N relationships to Azure Synapse Link

(0) ShareShare
ReportReport
Posted on by 2

We are in the process of trialling Azure Synapse Link with a view to retire the Dynamics Data Export Service.  Our key blocker is the lack of support for N:N relationships, how can N:N relationships in Dataverse be exported to Azure Synapse?

I have the same question (0)
  • Verified answer
    cchannon Profile Picture
    4,702 Moderator on at

    I haven't done it myself, but I ran a quick test and it looks like yes, you can enable this.

     

    What happens is that tables only show up in Synapse link once they have been enabled for Change Tracking but all custom entities--including the background intersect entity Dataverse creates for N:N relationships--are by default NOT enabled for Change Tracking. Unfortunately, that intersect entity doesn't show up in the PowerApps or classic management UIs so it is tough to work with.

     

    But there is good news: You can check the Change Tracking feature enablement for a table by checking the entity metadata at:

    GET [Organization URI]/api/data/v9.0/$metadata?annotations=true

    I just checked one of my own N:N entities and indeed, the annotation "Org.OData.Capabilities.V1.ChangeTracking" is present on that intersect entity. That tells me that it is possible to enable Change Tracking, you just need to do it by the WebAPI instead of the UI. 

    So this part will take a bit of gymnastics, which is why I haven't tested it for you, but you will either need to:

    In either case, ChangeTrackingEnabled is an available property you can set to true in order to enable the feature for your intersect entity.

     

    Now, I am not 100% certain this will cause the intersect entity to show up for Synapse Link, but it is certainly worth a try. Give it a shot and let us know if it works!

     

  • kthyri Profile Picture
    23 on at

    hi cchannon,

    I tried your solution and it works! I was able to enable change tracking for the intersect table with a postman request.

    here the documentation: Create and update table definitions using the Web API (Microsoft Dataverse) - Power Apps | Microsoft Docs

     

  • cchannon Profile Picture
    4,702 Moderator on at

    Great to hear!

     

    Please mark the solution so others see this post as resolved in the future.

  • Verified answer
    kthyri Profile Picture
    23 on at

    This is my postman request:

     

    PUT: {{webapiurl}}/EntityDefinitions(<yourmetadataid>)

    BODY:

    { "@odata.context": "https://<yourorg>.crm4.dynamics.com/api/data/v9.1/$metadata#EntityDefinitions/$entity", "ActivityTypeMask": 0, "AutoRouteToOwnerQueue": false, "CanTriggerWorkflow": false, "EntityHelpUrlEnabled": false, "EntityHelpUrl": null, "IsDocumentManagementEnabled": false, "IsOneNoteIntegrationEnabled": false, "IsInteractionCentricEnabled": false, "IsKnowledgeManagementEnabled": false, "IsSLAEnabled": false, "IsBPFEntity": false, "IsDocumentRecommendationsEnabled": false, "IsMSTeamsIntegrationEnabled": false, "SettingOf": null, "DataProviderId": null, "DataSourceId": null, "AutoCreateAccessTeams": false, "IsActivity": false, "IsActivityParty": false, "IsAvailableOffline": false, "IsChildEntity": false, "IsAIRUpdated": false, "IconLargeName": null, "IconMediumName": null, "IconSmallName": null, "IconVectorName": null, "IsCustomEntity": true, "IsBusinessProcessEnabled": false, "SyncToExternalSearchIndex": false, "IsOptimisticConcurrencyEnabled": false, "ChangeTrackingEnabled": true, "IsImportable": false, "IsIntersect": true, "IsManaged": false, "IsEnabledForCharts": true, "IsEnabledForTrace": false, "IsValidForAdvancedFind": false, "DaysSinceRecordLastModified": 9999, "MobileOfflineFilters": "", "IsReadingPaneEnabled": true, "IsQuickCreateEnabled": false, "LogicalName": "cr801_interest_contact", "ObjectTypeCode": 11461, "OwnershipType": "None", "PrimaryNameAttribute": null, "PrimaryImageAttribute": null, "PrimaryIdAttribute": "cr801_interest_contactid", "RecurrenceBaseEntityLogicalName": null, "ReportViewName": "Filteredcr801_Interest_Contact", "SchemaName": "cr801_Interest_Contact", "IntroducedVersion": "1.0.0.0", "IsStateModelAware": true, "EnforceStateTransitions": false, "ExternalName": null, "EntityColor": null, "LogicalCollectionName": null, "ExternalCollectionName": null, "CollectionSchemaName": null, "EntitySetName": "cr801_interest_contactset", "IsEnabledForExternalChannels": false, "IsPrivate": false, "UsesBusinessDataLabelTable": false, "IsLogicalEntity": false, "HasNotes": false, "HasActivities": false, "HasFeedback": false, "IsSolutionAware": false, "CreatedOn": "2022-01-10T13:43:39Z", "ModifiedOn": "2022-01-10T13:43:39Z", "HasEmailAddresses": false, "OwnerId": null, "OwnerIdType": 8, "OwningBusinessUnit": null, "MetadataId": "<yourMetadataId>", "HasChanged": null, "Description": { "LocalizedLabels": [], "UserLocalizedLabel": null }, "DisplayCollectionName": { "LocalizedLabels": [], "UserLocalizedLabel": null }, "DisplayName": { "LocalizedLabels": [], "UserLocalizedLabel": null }, "IsAuditEnabled": { "Value": false, "CanBeChanged": true, "ManagedPropertyLogicalName": "canmodifyauditsettings" }, "IsValidForQueue": { "Value": false, "CanBeChanged": true, "ManagedPropertyLogicalName": "canmodifyqueuesettings" }, "IsConnectionsEnabled": { "Value": false, "CanBeChanged": true, "ManagedPropertyLogicalName": "canmodifyconnectionsettings" }, "IsCustomizable": { "Value": false, "CanBeChanged": true, "ManagedPropertyLogicalName": "iscustomizable" }, "IsRenameable": { "Value": false, "CanBeChanged": true, "ManagedPropertyLogicalName": "isrenameable" }, "IsMappable": { "Value": false, "CanBeChanged": false, "ManagedPropertyLogicalName": "ismappable" }, "IsDuplicateDetectionEnabled": { "Value": false, "CanBeChanged": true, "ManagedPropertyLogicalName": "canmodifyduplicatedetectionsettings" }, "CanCreateAttributes": { "Value": true, "CanBeChanged": false, "ManagedPropertyLogicalName": "cancreateattributes" }, "CanCreateForms": { "Value": true, "CanBeChanged": true, "ManagedPropertyLogicalName": "cancreateforms" }, "CanCreateViews": { "Value": true, "CanBeChanged": true, "ManagedPropertyLogicalName": "cancreateviews" }, "CanCreateCharts": { "Value": true, "CanBeChanged": true, "ManagedPropertyLogicalName": "cancreatecharts" }, "CanBeRelatedEntityInRelationship": { "Value": true, "CanBeChanged": true, "ManagedPropertyLogicalName": "canberelatedentityinrelationship" }, "CanBePrimaryEntityInRelationship": { "Value": true, "CanBeChanged": true, "ManagedPropertyLogicalName": "canbeprimaryentityinrelationship" }, "CanBeInManyToMany": { "Value": true, "CanBeChanged": true, "ManagedPropertyLogicalName": "canbeinmanytomany" }, "CanBeInCustomEntityAssociation": { "Value": false, "CanBeChanged": true, "ManagedPropertyLogicalName": "canbeincustomentityassociation" }, "CanEnableSyncToExternalSearchIndex": { "Value": false, "CanBeChanged": false, "ManagedPropertyLogicalName": "canenablesynctoexternalsearchindex" }, "CanModifyAdditionalSettings": { "Value": true, "CanBeChanged": true, "ManagedPropertyLogicalName": "canmodifyadditionalsettings" }, "CanChangeHierarchicalRelationship": { "Value": false, "CanBeChanged": false, "ManagedPropertyLogicalName": "canchangehierarchicalrelationship" }, "CanChangeTrackingBeEnabled": { "Value": false, "CanBeChanged": false, "ManagedPropertyLogicalName": "canchangetrackingbeenabled" }, "IsMailMergeEnabled": { "Value": false, "CanBeChanged": true, "ManagedPropertyLogicalName": "canmodifymailmergesettings" }, "IsVisibleInMobile": { "Value": false, "CanBeChanged": false, "ManagedPropertyLogicalName": "canmodifymobilevisibility" }, "IsVisibleInMobileClient": { "Value": false, "CanBeChanged": true, "ManagedPropertyLogicalName": "canmodifymobileclientvisibility" }, "IsReadOnlyInMobileClient": { "Value": false, "CanBeChanged": true, "ManagedPropertyLogicalName": "canmodifymobileclientreadonly" }, "IsOfflineInMobileClient": { "Value": false, "CanBeChanged": true, "ManagedPropertyLogicalName": "canmodifymobileclientoffline" }, "Privileges": [], "Settings": [] }

     

    You can get the metadata id with a Retrieve Entity Metadata Request: 

     

    GET: {{webapiurl}}/EntityDefinitions(LogicalName='cr801_interest_contact')

     

    After that, I was able to add the intersect table to the Azure Synapse Link.

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Introducing the 2026 Season 1 community Super Users

Congratulations to our 2026 Super Users!

Kudos to our 2025 Community Spotlight Honorees

Congratulations to our 2025 community superstars!

Congratulations to the March Top 10 Community Leaders!

These are the community rock stars!

Leaderboard > Power Apps

#1
11manish Profile Picture

11manish 510

#2
WarrenBelz Profile Picture

WarrenBelz 426 Most Valuable Professional

#3
Vish WR Profile Picture

Vish WR 281

Last 30 days Overall leaderboard