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

Azure Data Factory中如何基于CSV行@item()条件创建Dynamics CE联系人

解决Azure Data Factory中循环内基于@item()创建Dynamics CE联系人的问题

核心思路

放弃使用仅支持数据集批量操作的Copy Data活动,改用Web活动直接调用Dynamics CE的OData API,将循环内@item()中的单条记录字段映射到联系人实体属性,实现单条记录的创建操作。

具体操作步骤

  • 步骤1:配置Web活动基础参数
    在For-Each循环内添加Web活动,配置如下:

    • 请求方法:POST
    • 请求URL:填写Dynamics CE联系人实体的创建端点,格式为https://<你的环境域名>.crm.dynamics.com/api/data/v9.2/contacts
    • 身份验证:选择OAuth 2.0,配置拥有Dynamics CE写入权限的Azure AD应用注册信息(租户ID、客户端ID、客户端密钥等)
  • 步骤2:构建请求体映射@item()字段
    在Web活动的「请求体」中,用ADF表达式将@item()内的CSV列映射到Dynamics CE联系人的对应属性,示例代码:

    {
      "firstname": "@item()?['FirstName']",
      "lastname": "@item()?['LastName']",
      "emailaddress1": "@item()?['Email']",
      "mobilephone": "@item()?['PhoneNumber']"
    }
    

    注:替换为你实际的CSV列名和Dynamics CE联系人属性名,?['字段名']的写法可避免字段为空时表达式报错。

  • 步骤3:添加条件判断逻辑
    在Web活动前插入If Condition活动,用表达式判断当前记录是否满足创建条件,比如:

    @equals(item()?['NeedCreateContact'], 'Yes')
    

    仅当条件为真时,才执行后续Web活动创建联系人。

  • 步骤4:调整循环并行度
    根据Dynamics CE的API调用限制,调低For-Each循环的并行度(例如设为3-5),避免触发平台限流导致请求失败。

替代方案:Azure Function中转处理

如果需要更复杂的逻辑处理(如数据清洗、错误重试),可在循环内调用Azure Function活动,将@item()的所有字段作为参数传入Function,在Function中编写代码完成Dynamics CE联系人的创建逻辑,灵活性更强。

内容的提问来源于stack exchange,提问作者Para Jaco

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 14:39:59