使用 Azure 数据工厂或 Azure Synapse Analytics 在 Dynamics 365 (Microsoft Dataverse) 或 Dynamics CRM 中复制和转换数据

适用于:Azure 数据工厂 Azure Synapse Analytics

本文概述了如何使用 Azure 数据工厂或 Synapse 管道中的复制活动在 Dynamics 365 (Microsoft Dataverse) 或 Dynamics CRM 之间复制数据,并使用数据流在 Dynamics 365 (Microsoft Dataverse) 或 Dynamics CRM 中转换数据. 有关详细信息,请阅读 Azure 数据工厂和 Azure Synapse Analytics 简介文章。

支持的功能

以下活动支持此连接器:

支持的功能 IR
复制活动(源/接收器) (1) (2)
映射数据流源(源/接收器) ①
Lookup 活动 (1) (2)

① Azure 集成运行时 ② 自承载集成运行时

如需复制活动支持将其用作源和接收器的数据存储的列表,请参阅支持的数据存储表。

注意

自 2020 年 11 月起,Common Data Service 已更名为 Microsoft Dataverse。 本文已更新并使用最新术语。

此 Dynamics 连接器支持联机的和本地的 Dynamics 版本 7-9。 更具体地说:

  • 版本 7 映射到 Dynamics CRM 2015。
  • 版本 8 映射到 Dynamics CRM 2016 和早期版 Dynamics 365。
  • 版本 9 映射到较新版 Dynamics 365。

请参阅下表,了解各种 Dynamics 版本和产品支持的身份验证类型和配置。

Dynamics 版本 身份验证类型 链接的服务示例
Dataverse

Dynamics 365 联机

Dynamics CRM 联机
Microsoft Entra 服务主体

Office 365

用户分配的托管标识
联机 Dynamics 和 Microsoft Entra 服务主体或 Office 365 身份验证
本地 Dynamics 365,具有面向 Internet 的部署 (IFD)

带有 IFD 的本地 Dynamics CRM 2016

带有 IFD 的本地 Dynamics CRM 2015
IFD 带有 IFD 和 IFD 身份验证的本地 Dynamics

注意

因弃用区域发现服务,该服务已升级为在使用 Office 365 身份验证时利用全局发现服务。

重要

如果您的租户和用户在 Microsoft Entra ID 中配置了 条件访问 并且/或者需要进行多重身份验证,则您将无法使用 Office 365 身份验证类型。 在这些情况下,必须使用 Microsoft Entra 服务主体身份验证。

具体而言,对于 Dynamics 365,支持以下应用程序类型:

  • Dynamics 365 for Sales
  • Dynamics 365 for Customer Service
  • Dynamics 365 for Field Service
  • Dynamics 365 for Project Service Automation
  • Dynamics 365 for Marketing

此连接器不支持其他应用程序类型,如“财务”、“运营”和“人才”。

提示

若要从 Dynamics 365 Finance and Operations 复制数据,可以使用 Dynamics AX 连接器。

此 Dynamics 连接器基于 Dynamics XRM 工具构建。

先决条件

若要将此连接器与 Microsoft Entra 服务主体身份验证配合使用,必须在 Dataverse 或 Dynamics 中设置服务器到服务器 (S2S) 身份验证。 先在 Microsoft Entra ID 中注册应用程序用户(服务主体)。 可在此处了解如何执行此操作。 在应用程序注册期间,需要在 Dataverse 或 Dynamics 中创建该用户并授予权限。 可以直接授予这些权限,也可以通过将应用程序用户添加到已在 Dataverse 或 Dynamics 中为其授予了这些权限的团队来间接授权。 可在此处详细了解如何将应用程序用户设置为使用 Dataverse 进行身份验证。

开始

若要使用管道执行复制活动,可以使用以下工具或 SDK 之一:

使用 UI 创建 Dynamics 365 (Microsoft Dataverse) 或 Dynamics CRM 的链接服务

使用以下步骤在 Azure 门户 UI 中创建一个到 Dynamics 365 的链接服务。

  1. 浏览到 Azure 数据工厂或 Synapse 工作区中的“管理”选项卡,并选择“链接服务”,然后单击“新建”:

  2. 搜索 Dynamics 或 Dataverse,然后选择 Dynamics 365 (Microsoft Dataverse) 或 Dynamics CRM 连接器。

    Dynamics 365 连接器的屏幕截图。

    Dataverse 连接器的屏幕截图。

  3. 配置服务详细信息、测试连接并创建新的链接服务。

    Dynamics 365 的链接服务配置的屏幕截图。

连接器配置详细信息

以下部分提供了有关各属性的详细信息,这些属性用于定义特定于 Dynamics 的实体。

链接服务属性

Dynamics 链接服务支持以下属性。

联机 Dynamics 365 和 Dynamics CRM

属性 描述 必需
类型 type 属性必须设置为“Dynamics”、“DynamicsCrm”或“CommonDataServiceForApps”。 是
部署类型 Dynamics 实例的部署类型。 对于联机 Dynamics,此值必须为“Online”。 是
serviceUri Dynamics 实例的服务 URL,与从浏览器访问的 URL 相同。 例如“https://<organization-name>.crm[x].dynamics.com”。 是
验证类型 要连接到 Dynamics 服务器的身份验证类型。 有效值为“AADServicePrincipal”、“Office365”和“ManagedIdentity”。 是
服务主体ID Microsoft Entra 应用程序的客户端 ID。 当身份验证为“AADServicePrincipal”时,此项为必需的
服务主体凭证类型 要用于服务主体身份验证的凭据类型。 有效值为“ServicePrincipalKey”和“ServicePrincipalCert”。

注意:建议使用 ServicePrincipalKey。 ServicePrincipalCert 凭据类型存在已知限制,其中服务可能会遇到无法从密钥保管库检索机密的暂时性问题。
当身份验证为“AADServicePrincipal”时,此项为必需的
servicePrincipalCredential 服务主体凭据。

使用“ServicePrincipalKey”作为凭据类型时,servicePrincipalCredential 可以是服务在进行链接服务部署时加密的字符串。 它也可以是对 Azure Key Vault 中机密的引用。

使用“ServicePrincipalCert”作为凭据时,servicePrincipalCredential 必须是对 Azure Key Vault 中证书的引用,并确保证书内容类型为 PKCS #12。
当身份验证为“AADServicePrincipal”时,此项为必需的
用户名 用于连接到 Dynamics 的用户名。 当身份验证为“Office365”时,此项为必需的
密码 作为用户名指定的用户帐户的密码。 将此字段标记为“SecureString”以安全地存储它,或引用存储在 Azure Key Vault 中的机密。 当身份验证为“Office365”时,此项为必需的
凭据 将用户分配的托管标识指定为凭据对象。

创建一个或多个用户分配的托管标识将其将分配给数据工厂,并为每个用户分配的托管标识创建凭据。
当身份验证为“ManagedIdentity”时,此项为必需的
connectVia 用于连接到数据存储的集成运行时。 如果未指定任何值,则此属性使用默认的 Azure 集成运行时。 否

注意

Dynamics 连接器以前使用可选的 organizationName 属性来标识 Dynamics CRM 或 Dynamics 365 联机实例。 虽然该属性仍然有效,但建议你改为指定新的 serviceUri 属性以实现更好的实例发现性能。

示例:使用 Microsoft Entra 服务主体和密钥身份验证的联机 Dynamics

{  
    "name": "DynamicsLinkedService",  
    "properties": {  
        "type": "Dynamics",  
        "typeProperties": {  
            "deploymentType": "Online",  
            "serviceUri": "https://<organization-name>.crm[x].dynamics.com",  
            "authenticationType": "AADServicePrincipal",  
            "servicePrincipalId": "<service principal id>",  
            "servicePrincipalCredentialType": "ServicePrincipalKey",  
            "servicePrincipalCredential": "<service principal key>"
        },  
        "connectVia": {  
            "referenceName": "<name of Integration Runtime>",  
            "type": "IntegrationRuntimeReference"  
        }  
    }  
}  

示例:使用 Microsoft Entra 服务主体和证书身份验证的联机 Dynamics

{ 
    "name": "DynamicsLinkedService", 
    "properties": { 
        "type": "Dynamics", 
        "typeProperties": { 
            "deploymentType": "Online", 
            "serviceUri": "https://<organization-name>.crm[x].dynamics.com", 
            "authenticationType": "AADServicePrincipal", 
            "servicePrincipalId": "<service principal id>", 
            "servicePrincipalCredentialType": "ServicePrincipalCert", 
            "servicePrincipalCredential": { 
                "type": "AzureKeyVaultSecret", 
                "store": { 
                    "referenceName": "<AKV reference>", 
                    "type": "LinkedServiceReference" 
                }, 
                "secretName": "<certificate name in AKV>" 
            } 
        }, 
        "connectVia": { 
            "referenceName": "<name of Integration Runtime>", 
            "type": "IntegrationRuntimeReference" 
        } 
    } 
} 

示例:使用 Office 365 身份验证的联机 Dynamics

{
    "name": "DynamicsLinkedService",
    "properties": {
        "type": "Dynamics",
        "typeProperties": {
            "deploymentType": "Online",
            "serviceUri": "https://<organization-name>.crm[x].dynamics.com",
            "authenticationType": "Office365",
            "username": "test@contoso.partner.onmschina.cn",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

示例:使用用户分配的托管标识身份验证的联机 Dynamics

{
    "name": "DynamicsLinkedService",
    "properties": {
        "type": "Dynamics",
        "typeProperties": {
            "deploymentType": "Online",
            "serviceUri": "https://<organization-name>.crm[x].dynamics.com",
            "authenticationType": "ManagedIdentity",
            "credential": {
                "referenceName": "credential1",
                "type": "CredentialReference"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

带有 IFD 的本地 Dynamics 365 和 Dynamics CRM

与 Dynamics Online 进行比较的更多属性是 hostName 和 port。

属性 描述 必需
类型 type 属性必须设置为“Dynamics”、“DynamicsCrm”或“CommonDataServiceForApps”。 是
部署类型 Dynamics 实例的部署类型。 对于带有 IFD 的本地 Dynamics,此值必须为“OnPremisesWithIfd”。 是
主机名 本地 Dynamics 服务器的主机名称。 是
移植 本地 Dynamics 服务器的端口。 否。 默认值为 443。
组织名称 Dynamics 实例的组织名称。 是
验证类型 要连接到 Dynamics 服务器的身份验证类型。 使用 IFD 为本地 Dynamics 指定“ActiveDirectoryAuthentication”。 是
域 将验证用户凭据的 Active Directory 域。 是
用户名 用于连接到 Dynamics 的用户名。 是
密码 指定为用户名的用户帐户的密码。 可以将此字段标记为“SecureString”以安全地存储它。 也可将密码存储在 Key Vault 中,让复制活动在进行数据复制时从其中拉取密码。 在在 Key Vault 中存储凭据中了解详细信息。 是
connectVia 用于连接到数据存储的集成运行时。 如果未指定任何值,则此属性使用默认的 Azure 集成运行时。 否

注意

由于 Ifd 身份验证类型将于 2024 年 8 月 31 日停止使用,如果当前正在使用该类型,请在此日期之前升级到 Active Directory 身份验证类型。

示例:带有 IFD、使用 Active Directory 身份验证的本地 Dynamics

{
    "name": "DynamicsLinkedService",
    "properties": {
        "type": "Dynamics",
        "description": "Dynamics on-premises with IFD linked service using IFD authentication",
        "typeProperties": {
            "deploymentType": "OnPremisesWithIFD",
            "hostName": "contosodynamicsserver.contoso.com",
            "port": 443,
            "organizationName": "admsDynamicsTest",
            "authenticationType": "ActiveDirectoryAuthentication",
            "domain": "< Active Directory domain >", 
            "username": "test@contoso.partner.onmschina.cn",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

数据集属性

有关可用于定义数据集的各部分和属性的完整列表,请参阅数据集一文。 本部分提供 Dynamics 数据集支持的属性列表。

支持使用以下属性从/向 Dynamics 复制数据:

属性 描述 必需
类型 数据集的 type 属性必须设置为“DynamicsEntity”、“DynamicsCrmEntity”或“CommonDataServiceForAppsEntity”。 是
实体名称 要检索的实体的逻辑名称。 对于源非必需(如果将活动源指定为“query”),对于接收器为必需的

示例

{
    "name": "DynamicsDataset",
    "properties": {
        "type": "DynamicsEntity",
        "schema": [],
        "typeProperties": {
            "entityName": "account"
        },
        "linkedServiceName": {
            "referenceName": "<Dynamics linked service name>",
            "type": "linkedservicereference"
        }
    }
}

复制活动属性

有关可用于定义活动的各部分和属性的完整列表,请参阅管道一文。 本部分提供 Dynamics 源和接收器类型支持的属性列表。

将 Dynamics 用作源类型

为了从 Dynamics 复制数据,复制活动的 source 节支持以下属性:

属性 描述 必需
类型 复制活动源的 type 属性必须设置为“DynamicsSource”、“DynamicsCrmSource”或“CommonDataServiceForAppsSource”。 是
查询 FetchXML 是在联机和本地 Dynamics 中使用的专属查询语言。 请参阅以下示例。 若要了解详细信息,请参阅使用 FetchXML 生成查询。 否(如果指定了数据集中的 entityName)

注意

即使在 FetchXML 查询中配置的列投影不包含 PK 列,也将始终复制该列。

重要

  • 从 Dynamics 复制数据时,从 Dynamics 到接收器的显式列映射为可选的, 但我们强烈建议使用此映射,以确保获得确定性的复制结果。
  • 当服务在创作 UI 中导入架构时,会对架构进行推断。 其方法是:对 Dynamics 查询结果中的前几行进行采样来初始化源列列表。 在这种情况下,将省略在前几行中不含任何值的列。 如果没有显式映射,则相同的行为也适用于数据预览和复制执行。 可以查看列并将更多列添加到映射,这将在副本运行时起作用。

示例

"activities":[
    {
        "name": "CopyFromDynamics",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Dynamics input dataset>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "DynamicsSource",
                "query": "<FetchXML Query>"
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

示例 FetchXML 查询

<fetch>
  <entity name="account">
    <attribute name="accountid" />
    <attribute name="name" />
    <attribute name="marketingonly" />
    <attribute name="modifiedon" />
    <order attribute="modifiedon" descending="false" />
    <filter type="and">
      <condition attribute ="modifiedon" operator="between">
        <value>2017-03-10 18:40:00z</value>
        <value>2017-03-12 20:40:00z</value>
      </condition>
    </filter>
  </entity>
</fetch>

将 Dynamics 用作接收器类型

为了将数据复制到 Dynamics,复制活动的 sink 节支持以下属性:

属性 描述 必需
类型 复制活动接收器的 type 属性必须设置为“DynamicsSink”、“DynamicsCrmSink”或“CommonDataServiceForAppsSink”。 是的。
writeBehavior 操作的写入行为。 值必须是“Upsert”。 是
备用键名称 在实体上定义的用于执行更新插入的备用密钥名称。 否。
writeBatchSize 每批中写入到 Dynamics 的数据行计数。 否。 默认值为 10。
忽略空值 在执行写入操作期间是否忽略输入数据中的 NULL 值(键字段除外)。

有效值为 TRUE 和 FALSE:
  • TRUE:执行更新插入或更新操作时,保持目标对象中的数据不变。 插入在执行插入操作时定义的默认值。
  • FALSE:执行更新插入或更新操作时,将目标对象中的数据更新为 NULL 值。 执行插入操作时插入 NULL 值。
否。 默认值为 FALSE。
maxConcurrentConnections (最大并发连接数) 活动运行期间与数据存储建立的并发连接的上限。 仅在要限制并发连接时指定一个值。 否
绕过业务逻辑执行 绕过自定义业务逻辑来禁用自定义插件和工作流,但以下情况除外:

 • 属于核心 Microsoft Dataverse 系统的插件,或属于 Microsoft 作为发布者的解决方案的一部分。
 • 在 Microsoft 是发布者的解决方案中包含的工作流。

该值可以是 CustomSync,CustomAsyncCustomSync,CustomAsync, 。 还可以手动输入 GUID(用逗号分隔)作为值,以指定要绕过的注册插件步骤。 这样就可以绕过指定的插件步骤,而不是所有同步和异步自定义逻辑。

请注意,必须具有 prvBypassCustomBusinessLogic 权限。 默认情况下,只有具有系统管理员安全角色的用户才具有此权限。 属于具有所有者类型的 Dataverse 团队的任何 Dataverse 用户都会自动继承与该团队安全角色相关的特权。 有关详细信息,请参阅此文。
否
绕过Power Automate流程 绕过 Power Automate 流。 有关详细信息,请参阅此文。 否

注意

接收器“writeBatchSize”和 Dynamics 接收器的复制活动“parallelCopies” 的默认值都是 10。 因此,默认情况下会将 100 条记录并发提交到 Dynamics。

对于 Dynamics 365 联机版,存在每个组织进行 52 次并发批量调用的限制。 如果超出该限制,则会在运行第一个请求之前引发“服务器忙”异常。 使 writeBatchSize 保持小于或等于 10 可避免这种并发调用限制。

writeBatchSize 和 parallelCopies 的最佳组合取决于实体的架构。 架构元素包括列数、行大小以及挂到这些调用的插件、工作流或工作流活动的数量。 默认设置 writeBatchSize (10) × parallelCopies (10) 是基于 Dynamics 服务提供的建议设置。 该值适用于大多数 Dynamics 实体,但可能无法提供最佳性能。 你可以通过在复制活动设置中调整组合来调整性能。

示例

"activities":[
    {
        "name": "CopyToDynamics",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<Dynamics output dataset>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "DynamicsSink",
                "writeBehavior": "Upsert",
                "writeBatchSize": 10,
                "ignoreNullValues": true
            }
        }
    }
]

在复制活动接收器中选择弹性表时,连接器映射支持该 partitionid 列。 可以将源数据列映射到接收器的 partitionid 列。 如果未映射,则主键值将用作列的 partitionid 默认值。

partitionid 可以在写入路径上的 Dataverse 备用键或主键方案中使用。 每个弹性表都包含一个系统定义的partitionid列,并具有一个名为KeyForNoSqlEntityWithPKPartitionId的替代键,该键将该表的主键与partitionid列结合在一起。 有关详细信息,请参阅此文。

从视图检索数据

若要从 Dynamics 视图检索数据,需要获取视图已保存的查询,并使用该查询来获取数据。

有两个实体存储不同类型的视图:“保存的查询”存储系统视图和“用户查询”存储用户视图。 若要获取这些视图的信息,请参阅下面的 FetchXML 查询,并将“TARGETENTITY”替换为 savedquery 或 userquery。 每个实体类型都有更多可用属性,你可根据需要向查询添加它们。 详细了解 savedquery 实体和 userquery 实体。

<fetch top="5000" >
  <entity name="<TARGETENTITY>">
    <attribute name="name" />
    <attribute name="fetchxml" />
    <attribute name="returnedtypecode" />
    <attribute name="querytype" />
  </entity>
</fetch>

还可添加筛选器来筛选视图。 例如,添加以下筛选器以获取帐户实体中名为“我的活动帐户”的视图。

<filter type="and" >
    <condition attribute="returnedtypecode" operator="eq" value="1" />
    <condition attribute="name" operator="eq" value="My Active Accounts" />
</filter>

Dynamics 的数据类型映射

下表显示了从 Dynamics 复制数据时,从 Dynamics 数据类型到该服务中临时数据类型的映射。 若要了解复制活动如何映射到源架构,以及数据类型如何映射到接收器,请参阅 架构和数据类型映射。

使用以下映射表,在基于源 Dynamics 数据类型的数据集结构中配置相应的临时数据类型:

Dynamics 数据类型 服务临时数据类型 支持用作源 支持用作接收器
AttributeTypeCode.BigInt 长整型 ✓ ✓
属性类型代码.Boolean 布尔 ✓ ✓
AttributeType.客户 GUID ✓ ✓(请参阅指南)
属性类型.日期时间 datetime ✓ ✓
属性类型.十进制 小数 ✓ ✓
属性类型.Double 加倍 ✓ ✓
属性类型.实体名称 字符串 ✓ ✓
属性类型.整数 Int32 ✓ ✓
AttributeType.Lookup GUID ✓ ✓(请参阅指南)
属性类型.托管属性 布尔 ✓
AttributeType.Memo 字符串 ✓ ✓
AttributeType.Money 小数 ✓ ✓
AttributeType.Owner GUID ✓ ✓(请参阅指南)
属性类型.选择列表 Int32 ✓ ✓
AttributeType.Uniqueidentifier GUID ✓ ✓
属性类型.字符串 字符串 ✓ ✓
AttributeType.State Int32 ✓ ✓
属性类型.状态 Int32 ✓ ✓

注意

Dynamics 数据类型 AttributeType.CalendarRules、AttributeType.MultiSelectPicklist 和 AttributeType.PartyList 不受支持。

将数据写入查找字段

若要将数据写入包含多个目标(例如 Customer 和 Owner)的查找字段,请遵循以下指导和示例:

  1. 使源同时包含字段值和相应的目标实体名称。

    • 如果所有记录都映射到同一目标实体,请确保满足以下条件之一:
      • 源数据包含一个可存储目标实体名称的列。
      • 已在复制活动源中添加了一个额外的列来定义目标实体。
    • 如果不同的记录映射到不同的目标实体,请确保源数据包含一个可存储相应目标实体名称的列。
  2. 将值列和实体引用列都从源映射到接收器。 实体引用列必须通过特殊命名模式 {lookup_field_name}@EntityReference 映射到虚拟列。 此列实际上并不存在于 Dynamics 中。 它用来指示此列是给定多目标查找字段的元数据列。

设置“所有者”字段

在 Dynamics 365(Microsoft Dataverse)或 Dynamics CRM 中设置“所有者”字段时,必须提供有效的引用。 @EntityReference 的有效选项是:

  • systemuser:这是指系统内的单个用户。
  • team:这是指组织内的用户团队。

确保提供的值对应于上述选项之一,以避免在数据转换期间出错。

例如,假设源包含下面的两个列:

  • 类型为 GUID 的 CustomerField 列,它是 Dynamics 中目标实体的主键值。
  • 类型为 String 的 Target 列,它是目标实体的逻辑名称。

另外假设你希望将此类数据复制到类型为 Customer 的接收器 Dynamics 实体字段 CustomerField。

在复制活动列映射中,如下所述映射这两个列:

  • 将 CustomerField 映射到 CustomerField。 此映射是标准字段映射。
  • 将 Target 映射到 CustomerField@EntityReference。 接收器列是表示实体引用的虚拟列。 请在映射中输入此类字段名称,因为不可通过导入架构来显示它们。

Dynamics 查找字段列映射

如果所有源记录都映射到同一目标实体,并且源数据不包含目标实体架构名称,下面是一个快捷方式:在复制活动源中,添加另一列。 使用模式 {lookup_field_name}@EntityReference 命名新列,将值设置为目标实体名称,然后按常规方式进行列映射。 如果源和接收器列名称相同,则还可跳过显式列映射,因为默认情况下,复制活动按名称映射列。

Dynamics 查找字段:添加实体引用列

通过备用键将数据写入查找字段

若要使用备用键列将数据写入查找字段,请按照本指南和示例操作:

  1. 确保源包含所有查找键列。

  2. 备用键列必须映射到具有特殊命名模式 {lookup_field_name}@{alternate_key_column_name} 的列。 Dynamics 中没有列。 它用来指示此列用于查找目标实体中的记录。

  3. 转到映射数据流的接收器转换中的“映射”选项卡。 选择备用键作为查找字段下的输出列。 后面的值指示此备用键的键列。

    屏幕截图显示选择备用键列。

  4. 选择后,备用键列将自动显示在下方。

    屏幕截图显示通过备用键步骤 1 将列映射到查找字段。

  5. 将左侧的输入列与输出列进行映射。

    屏幕截图显示通过备用键步骤 2 将列映射到查找字段。

注意

目前,仅当在映射数据流的接收器转换中使用内联模式时才支持此功能。

映射数据流属性

在映射数据流中转换数据时,可以从 Dynamics 中的表读取数据以及将数据写入表中。 有关详细信息,请参阅映射数据流中的源转换和接收器转换。 可以选择使用 Dynamics 数据集或内联数据集作为源和接收器类型。

源转换

下表列出了 Dynamics 支持的属性。 可以在“源选项”选项卡中编辑这些属性。

名称 描述 必需 允许的值 数据流脚本属性
实体名称 要检索的实体的逻辑名称。 使用内联数据集时需要 - (仅适用于内联数据集)
实体
查询 FetchXML 是在联机和本地 Dynamics 中使用的专属查询语言。 请参阅以下示例。 若要了解详细信息,请参阅使用 FetchXML 生成查询。 否 字符串 查询

注意

如果选择“Query”作为输入类型,则无法检索表中的列类型。 默认情况下,它将被视为字符串。

Dynamics 源脚本示例

在使用 Dynamics 数据集作为源类型时,关联的数据流脚本为:

source(allowSchemaDrift: true,
	validateSchema: false,
	query: '<fetch mapping='logical' count='3 paging-cookie=''><entity name='new_dataflow_crud_test'><attribute name='new_name'/><attribute name='new_releasedate'/></entity></fetch>') ~> DynamicsSource

如果使用内联数据集,则关联的数据流脚本为:

source(allowSchemaDrift: true,
	validateSchema: false,
	store: 'dynamics',
	format: 'dynamicsformat',
	entity: 'Entity1',
	query: '<fetch mapping='logical' count='3 paging-cookie=''><entity name='new_dataflow_crud_test'><attribute name='new_name'/><attribute name='new_releasedate'/></entity></fetch>') ~> DynamicsSource

接收器转换

下表列出了 Dynamics 接收器支持的属性。 可以在“接收器选项”选项卡中编辑这些属性。

名称 描述 必需 允许的值 数据流脚本属性
备用密钥名称 在实体上定义的用于执行更新、更新插入或删除的备用密钥名称。 否 - 备用键名称
Update 方法 指定数据库目标上允许哪些操作。 默认设置为仅允许插入。
若要更新、更新插入或删除行,需要进行“更改行”转换才能标记这些操作的行。
是 true 或 false insertable
可更新的
可更新插入
可删除的
实体名称 要写入的实体的逻辑名称。 使用内联数据集时需要 - (仅适用于内联数据集)
实体

Dynamics 接收器脚本示例

在使用 Dynamics 数据集作为接收器类型时,关联的数据流脚本为:

IncomingStream sink(allowSchemaDrift: true,
    validateSchema: false,
    deletable:true,
    insertable:true,
    updateable:true,
    upsertable:true,
    skipDuplicateMapInputs: true,
    skipDuplicateMapOutputs: true) ~> DynamicsSink

如果使用内联数据集,则关联的数据流脚本为:

IncomingStream sink(allowSchemaDrift: true,
    validateSchema: false,
    store: 'dynamics',
    format: 'dynamicsformat',
    entity: 'Entity1',
    deletable: true,
    insertable: true,
    updateable: true,
    upsertable: true,
    skipDuplicateMapInputs: true,
    skipDuplicateMapOutputs: true) ~> DynamicsSink

查找活动属性

若要了解有关属性的详细信息,请参阅“查找”活动。

有关复制活动支持作为源和接收器的数据存储的列表,请参阅支持的数据存储。