Azure CRM Dynamic 365选项集子列在Dataverse及Synapse Link中不可见求助
解决思路与方案
1. 检查Dataverse列的权限与状态
- 登录Power Platform admin中心,找到对应环境和目标表,查看该选项集子列的字段级安全配置,确认是否对Synapse Link使用的服务账户设置了隐藏;同时检查列的状态,只有启用状态的列才会在Dataverse中可见并被同步。
- 也可以通过Advanced Find搜索该表,若无法找到目标列,大概率是权限或列状态的问题。
2. 核对Synapse Link的同步配置
- 打开Synapse Studio,找到对应的Dataverse链接服务,检查同步表的列选择:确认是否未勾选该选项集子列(默认可能不会同步所有列,需手动选择)。
- 若该列是后期新增的,尝试触发一次全量同步——增量同步可能不会自动同步新增列的元数据。
3. 确认列的类型是否支持对外暴露
- CRM SQL中存在的部分列可能是系统内部托管属性,这类列默认不会在Dataverse界面显示,也无法被Synapse Link同步。可通过Dataverse Web API查询元数据确认:
发送以下GET请求(替换你的环境URL和表逻辑名):
查找目标列的GET https://[your-env].crm.dynamics.com/api/data/v9.2/EntityDefinitions(LogicalName='[table-logical-name]')/AttributesIsValidForRead和IsVisibleInAdvancedFind属性,若这两个属性为false,则表示该列不允许对外读取。
4. 排查同步日志与权限问题
- 前往Power Platform admin中心的Synapse Link页面查看同步日志,确认是否存在关于该列的错误提示(如权限不足、列类型不支持等)。
- 验证Synapse Link使用的服务账户是否拥有Dataverse表的读取权限,以及Azure存储账户的写入权限——权限缺失会直接导致列同步失败。
5. 手动同步兜底方案
- 若上述方法均无效,可采用替代方案:用Dataverse Web API编写Azure Function,定期拉取包含目标选项集列的数据并写入Azure存储;或使用Azure Data Factory连接Dataverse与存储账户,手动配置列映射完成同步。
内容的提问来源于stack exchange,提问作者Developer Rajinikanth
相关产品推荐
相关产品推荐

