You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure Data Factory中实现本地SQL Server到CDS的父子记录同步

解决方案:在Azure Data Factory中实现带父记录GUID的CDS数据迁移

我来给你拆解一下具体的实现步骤,确保你能先创建CRM父记录,再把它的GUID关联到后续迁移的所有子记录上:

1. 先创建CDS父记录并提取其GUID

你需要在ADF管道里先添加一个Web活动,用来调用Dynamics 365的Web API创建父记录:

  • 配置Web活动的URL:比如你的CDS环境URL是https://yourorg.crm.dynamics.com,那么创建Account父记录的地址就是https://yourorg.crm.dynamics.com/api/data/v9.2/accounts
  • 请求方法选POST,请求头里添加Content-Type: application/json,同时带上身份验证(可以直接引用ADF中已配置的CDS链接服务的身份信息)
  • 请求体里填写父记录的字段,比如:
    {
      "name": "新的父账户"
    }
    
  • 创建成功后,从活动输出中提取父记录GUID:
    • 如果响应体直接返回实体ID(比如accountid),用动态内容@activity('Create Parent Record').output.accountid即可获取
    • 如果从响应头的OData-EntityId提取,需要截取GUID部分:@{split(activity('Create Parent Record').response.headers['OData-EntityId'], '(')[1].Split(')')[0]}
  • 把提取到的GUID存入一个管道变量(比如命名为ParentRecordGUID),方便后续活动调用

2. 将父GUID注入到SQL Server的源数据中

接下来要让SQL里的每条待迁移数据都带上这个父GUID作为子记录的关联字段,有两种常用方式:

方式一:动态拼接SQL查询(适合简单场景)

在CopyData活动的SQL源中,用动态内容拼接查询语句,把父GUID作为常量列加入:

SELECT *, '@{variables('ParentRecordGUID')}' AS parent_accountid FROM YourSQLSourceTable

这里的parent_accountid要和CDS子实体的外键字段逻辑名称对应(比如子实体是Contact时,外键字段可能是parentcustomerid)

方式二:用数据流添加派生列(适合复杂数据转换)

如果需要对数据做更多转换,推荐用ADF数据流:

  • 在数据流中添加派生列转换,新增一列(比如命名为ParentGUID),值设为$pipeline().parameters.ParentRecordGUID(需先在数据流中定义对应参数,再从管道传值)
  • 后续映射时,将这个派生列对应到CDS子实体的外键字段

3. 配置CopyData/数据流活动迁移子记录到CDS

  • 源配置:选择你的SQL Server链接服务,使用上面的动态查询或数据流作为数据源
  • 目标配置:选择CDS链接服务,指定对应的子实体(比如Contact)
  • 字段映射:将SQL字段与CDS子实体字段一一对应,重点是把新增的父GUID字段映射到子实体的外键lookup字段(确保GUID格式为字符串,符合CDS要求)

4. 控制活动执行顺序

在ADF管道里,必须确保创建父记录的Web活动执行成功后,再触发后续的CopyData/数据流活动:

  • 用**成功依赖(On Success)**连接Web活动和CopyData活动,这样只有父记录创建成功,才会开始迁移子记录

额外注意点

  • 确保ADF的服务主体在Dynamics 365中拥有足够权限:能创建父实体记录,也能写入子实体记录
  • 如果遇到GUID格式问题,可以用@guid(variables('ParentRecordGUID'))来确保格式合规(一般Web API返回的GUID已经是正确格式)

内容的提问来源于stack exchange,提问作者Antonache Radu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 18:37:51