Copiar dados de e para Dynamics 365 (Common Data Service) ou Dynamics CRM usando o Azure Data FactoryCopy data from and to Dynamics 365 (Common Data Service) or Dynamics CRM by using Azure Data Factory

APLICA-SE A: Azure Data Factory Azure Synapse Analytics

Este artigo descreve como usar uma atividade de cópia no Azure Data Factory para copiar dados de e para o Microsoft Dynamics 365 e o Microsoft Dynamics CRM.This article outlines how to use a copy activity in Azure Data Factory to copy data from and to Microsoft Dynamics 365 and Microsoft Dynamics CRM. Ele se baseia no artigo visão geral da atividade de cópia que apresenta uma visão geral de uma atividade de cópia.It builds on the copy activity overview article that presents a general overview of a copy activity.

Funcionalidades com suporteSupported capabilities

Este conector tem suporte para as seguintes atividades:This connector is supported for the following activities:

Você pode copiar dados do Dynamics 365 (Common Data Service) ou Dynamics CRM para qualquer armazenamento de dados de coletor com suporte.You can copy data from Dynamics 365 (Common Data Service) or Dynamics CRM to any supported sink data store. Você também pode copiar dados de qualquer repositório de dados de fonte com suporte para Dynamics 365 (Common Data Service) ou Dynamics CRM.You also can copy data from any supported source data store to Dynamics 365 (Common Data Service) or Dynamics CRM. Para obter uma lista de armazenamentos de dados com suporte de uma atividade de cópia como fontes e coletores, consulte a tabela armazenamentos de dados com suporte .For a list of data stores that a copy activity supports as sources and sinks, see the Supported data stores table.

Este conector do Dynamics dá suporte ao Dynamics das versões 7 a 9 para online e local.This Dynamics connector supports Dynamics versions 7 through 9 for both online and on-premises. Mais especificamente:More specifically:

  • A versão 7 é mapeada para o Dynamics CRM 2015.Version 7 maps to Dynamics CRM 2015.
  • A versão 8 é mapeada para o Dynamics CRM 2016 e para a versão anterior do Dynamics 365.Version 8 maps to Dynamics CRM 2016 and the early version of Dynamics 365.
  • A versão 9 é mapeada para a versão mais recente do Dynamics 365.Version 9 maps to the later version of Dynamics 365.

Consulte a tabela a seguir de tipos de autenticação e configurações com suporte para versões e produtos do Dynamics.Refer to the following table of supported authentication types and configurations for Dynamics versions and products.

Versões do DynamicsDynamics versions Tipos de autenticaçãoAuthentication types Exemplos de serviço vinculadoLinked service samples
Common Data ServiceCommon Data Service

Dynamics 365 onlineDynamics 365 online

Dynamics CRM onlineDynamics CRM online
Entidade de serviço do Azure Active Directory (Azure AD)Azure Active Directory (Azure AD) service principal

Office 365Office 365
Dynamics online e serviço Azure AD-entidade de segurança ou autenticação do Office 365Dynamics online and Azure AD service-principal or Office 365 authentication
Dynamics 365 local com a IFD (implantação voltada para a Internet)Dynamics 365 on-premises with internet-facing deployment (IFD)

Dynamics CRM 2016 local com IFDDynamics CRM 2016 on-premises with IFD

Dynamics CRM 2015 local com IFDDynamics CRM 2015 on-premises with IFD
IFDIFD Dynamics local com a IFD e a autenticação IFDDynamics on-premises with IFD and IFD authentication

Para o Dynamics 365 especificamente, os seguintes tipos de aplicativos são compatíveis:For Dynamics 365 specifically, the following application types are supported:

  • Dynamics 365 for SalesDynamics 365 for Sales
  • Dynamics 365 for Customer ServiceDynamics 365 for Customer Service
  • Dynamics 365 for Field ServiceDynamics 365 for Field Service
  • Dynamics 365 for Project Service AutomationDynamics 365 for Project Service Automation
  • Dynamics 365 for MarketingDynamics 365 for Marketing

Esse conector não dá suporte a outros tipos de aplicativos, como finanças, operações e talento.This connector doesn't support other application types like Finance, Operations, and Talent.

Esse conector do Dynamics é criado sobre as Ferramentas do Dynamics xrm.This Dynamics connector is built on top of Dynamics XRM tooling.

Dica

Para copiar dados de finanças e operações do Dynamics 365, você pode usar o conector do Dynamics AX.To copy data from Dynamics 365 Finance and Operations, you can use the Dynamics AX connector.

Pré-requisitosPrerequisites

Para usar esse conector com a autenticação de entidade de serviço do Azure AD, você deve configurar a autenticação de servidor para servidor (S2S) no Common Data Service ou Dynamics.To use this connector with Azure AD service-principal authentication, you must set up server-to-server (S2S) authentication in Common Data Service or Dynamics. Consulte Este artigo para obter as etapas detalhadas.Refer to this article for detailed steps.

IntroduçãoGet started

Para executar a atividade de Cópia com um pipeline, será possível usar as ferramentas ou os SDKs abaixo:To perform the Copy activity with a pipeline, you can use one of the following tools or SDKs:

As seções que se seguem fornecem detalhes sobre as propriedades que são usadas para definir entidades do Data Factory específicas ao Dynamics.The following sections provide details about properties that are used to define Data Factory entities specific to Dynamics.

Propriedades do serviço vinculadoLinked service properties

As propriedades a seguir têm suporte no serviço vinculado do Dynamics.The following properties are supported for the Dynamics linked service.

Dynamics 365 e Dynamics CRM OnlineDynamics 365 and Dynamics CRM online

PropriedadeProperty DescriçãoDescription ObrigatórioRequired
typetype A propriedade Type deve ser definida como "Dynamics", "DynamicsCrm" ou "CommonDataServiceForApps".The type property must be set to "Dynamics", "DynamicsCrm", or "CommonDataServiceForApps". SimYes
deploymentTypedeploymentType O tipo de implantação da instância do Dynamics.The deployment type of the Dynamics instance. O valor deve ser "online" para o Dynamics online.The value must be "Online" for Dynamics online. SimYes
serviceUriserviceUri A URL de serviço da instância do Dynamics, a mesma que você acessa no navegador.The service URL of your Dynamics instance, the same one you access from browser. Um exemplo é "https:// <organization-name> . CRM [x]. Dynamics. com".An example is "https://<organization-name>.crm[x].dynamics.com". SimYes
authenticationTypeauthenticationType O tipo de autenticação para se conectar a um servidor do Dynamics.The authentication type to connect to a Dynamics server. Os valores válidos são "AADServicePrincipal" e "Office365".Valid values are "AADServicePrincipal" and "Office365". SimYes
servicePrincipalIdservicePrincipalId A ID do cliente do aplicativo do Azure AD.The client ID of the Azure AD application. Sim quando a autenticação for "AADServicePrincipal"Yes when authentication is "AADServicePrincipal"
servicePrincipalCredentialTypeservicePrincipalCredentialType O tipo de credencial a ser usado para autenticação de entidade de serviço.The credential type to use for service-principal authentication. Os valores válidos são "ServicePrincipalKey" e "ServicePrincipalCert".Valid values are "ServicePrincipalKey" and "ServicePrincipalCert". Sim quando a autenticação for "AADServicePrincipal"Yes when authentication is "AADServicePrincipal"
servicePrincipalCredentialservicePrincipalCredential A credencial de entidade de serviço.The service-principal credential.

Quando você usa "ServicePrincipalKey" como o tipo de credencial, servicePrincipalCredential pode ser uma cadeia de caracteres que Azure data Factory criptografa na implantação do serviço vinculado.When you use "ServicePrincipalKey" as the credential type, servicePrincipalCredential can be a string that Azure Data Factory encrypts upon linked service deployment. Ou pode ser uma referência a um segredo no Azure Key Vault.Or it can be a reference to a secret in Azure Key Vault.

Quando você usa "ServicePrincipalCert" como a credencial, servicePrincipalCredential deve ser uma referência a um certificado no Azure Key Vault.When you use "ServicePrincipalCert" as the credential, servicePrincipalCredential must be a reference to a certificate in Azure Key Vault.
Sim quando a autenticação for "AADServicePrincipal"Yes when authentication is "AADServicePrincipal"
Nome de Usuáriousername O nome de usuário para se conectar ao Dynamics.The username to connect to Dynamics. Sim quando a autenticação for "Office365"Yes when authentication is "Office365"
passwordpassword A senha da conta de usuário que você especificou como o nome de usuários.The password for the user account you specified as the username. Marque este campo com "SecureString" para armazená-lo com segurança no Data Factory ou faça referência a um segredo armazenado em Azure Key Vault.Mark this field with "SecureString" to store it securely in Data Factory, or reference a secret stored in Azure Key Vault. Sim quando a autenticação for "Office365"Yes when authentication is "Office365"
connectViaconnectVia O runtime de integração a ser usado para se conectar ao armazenamento de dados.The integration runtime to be used to connect to the data store. Se nenhum valor for especificado, a propriedade usará o tempo de execução de integração do Azure padrão.If no value is specified, the property uses the default Azure integration runtime. Não para fonte e sim para o coletor se o serviço vinculado de origem não tiver um tempo de execução de integraçãoNo for source, and yes for sink if the source linked service doesn't have an integration runtime

Observação

O conector do Dynamics usou anteriormente a propriedade OrganizationName opcional para identificar sua instância do Dynamics CRM ou do Dynamics 365 online.The Dynamics connector formerly used the optional organizationName property to identify your Dynamics CRM or Dynamics 365 online instance. Embora essa propriedade ainda funcione, sugerimos que você especifique a nova propriedade ServiceUri em vez disso, para obter um melhor desempenho para a descoberta de instância.While that property still works, we suggest you specify the new serviceUri property instead to gain better performance for instance discovery.

Exemplo: Dynamics online usando o serviço do Azure AD-entidade de segurança e autenticação de chaveExample: Dynamics online using Azure AD service-principal and key authentication

{  
    "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"  
        }  
    }  
}  

Exemplo: Dynamics online usando serviço do Azure AD-entidade de segurança e autenticação de certificadoExample: Dynamics online using Azure AD service-principal and certificate authentication

{ 
    "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" 
        } 
    } 
} 

Exemplo: Dynamics online usando a autenticação do Office 365Example: Dynamics online using Office 365 authentication

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

Dynamics 365 e Dynamics CRM local com IFDDynamics 365 and Dynamics CRM on-premises with IFD

Propriedades adicionais que se comparam ao Dynamics online são hostname e Port .Additional properties that compare to Dynamics online are hostName and port .

PropriedadeProperty DescriçãoDescription ObrigatórioRequired
typetype A propriedade Type deve ser definida como "Dynamics", "DynamicsCrm" ou "CommonDataServiceForApps".The type property must be set to "Dynamics", "DynamicsCrm", or "CommonDataServiceForApps". Sim.Yes.
deploymentTypedeploymentType O tipo de implantação da instância do Dynamics.The deployment type of the Dynamics instance. O valor deve ser "OnPremisesWithIfd" para o Dynamics local com IFD.The value must be "OnPremisesWithIfd" for Dynamics on-premises with IFD. Sim.Yes.
hostNamehostName O nome do host do servidor do Dynamics local.The host name of the on-premises Dynamics server. Sim.Yes.
portaport O nome da porta do servidor do Dynamics local.The port of the on-premises Dynamics server. Não.No. O valor padrão é 443.The default value is 443.
organizationNameorganizationName O nome da organização da instância do Dynamics.The organization name of the Dynamics instance. Sim.Yes.
authenticationTypeauthenticationType O tipo de autenticação para se conectar ao servidor do Dynamics.The authentication type to connect to the Dynamics server. Especifique "Ifd" para o Dynamics local com IFD.Specify "Ifd" for Dynamics on-premises with IFD. Sim.Yes.
Nome de Usuáriousername O nome de usuário para se conectar ao Dynamics.The username to connect to Dynamics. Sim.Yes.
passwordpassword A senha para a conta de usuário especificada para o nome do usuário.The password for the user account you specified for the username. Você pode marcar esse campo com "SecureString" para armazená-lo com segurança em Data Factory.You can mark this field with "SecureString" to store it securely in Data Factory. Ou você pode armazenar uma senha em Key Vault e deixar a atividade de cópia efetuar pull a partir daí quando ela faz a cópia de dados.Or you can store a password in Key Vault and let the copy activity pull from there when it does data copy. Saiba mais sobre Armazenar credenciais no Cofre de Chaves.Learn more from Store credentials in Key Vault. Sim.Yes.
connectViaconnectVia O runtime de integração a ser usado para se conectar ao armazenamento de dados.The integration runtime to be used to connect to the data store. Se nenhum valor for especificado, a propriedade usará o tempo de execução de integração do Azure padrão.If no value is specified, the property uses the default Azure integration runtime. Não para fonte e sim para coletor.No for source and yes for sink.

Exemplo: Dynamics local com IFD usando a autenticação de IFDExample: Dynamics on-premises with IFD using IFD authentication

{
    "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": "Ifd",
            "username": "test@contoso.onmicrosoft.com",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Propriedades do conjunto de dadosDataset properties

Para obter uma lista completa das seções e propriedades disponíveis para definir os conjuntos de dados, confira o artigo sobre Conjuntos de Dados.For a full list of sections and properties available for defining datasets, see the Datasets article. Esta seção fornece uma lista das propriedades com suporte pelo conjunto de dados do Dynamics.This section provides a list of properties supported by Dynamics dataset.

Para copiar dados de e para o Dynamics, há suporte para as seguintes propriedades:To copy data from and to Dynamics, the following properties are supported:

PropriedadeProperty DescriçãoDescription ObrigatórioRequired
typetype A propriedade Type do conjunto de conjuntos deve ser definida como "DynamicsEntity", "DynamicsCrmEntity" ou "CommonDataServiceForAppsEntity".The type property of the dataset must be set to "DynamicsEntity", "DynamicsCrmEntity", or "CommonDataServiceForAppsEntity". SimYes
entityNameentityName O nome lógico da entidade a ser recuperada.The logical name of the entity to retrieve. Não para origem se a origem da atividade for especificada como "consulta" e sim para o coletorNo for source if the activity source is specified as "query" and yes for sink

ExemploExample

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

Propriedades da atividade de cópiaCopy activity properties

Para obter uma lista completa das seções e propriedades disponíveis para definir atividades, confia o artigo Pipelines.For a full list of sections and properties available for defining activities, see the Pipelines article. Esta seção fornece uma lista das propriedades com suporte pela fonte e tipos de coletor do Dynamics.This section provides a list of properties supported by Dynamics source and sink types.

Dynamics como um tipo de fonteDynamics as a source type

Para copiar dados do Dynamics, a seção origem da atividade de cópia dá suporte às seguintes propriedades:To copy data from Dynamics, the copy activity source section supports the following properties:

PropriedadeProperty DescriçãoDescription ObrigatórioRequired
typetype A propriedade Type da fonte da atividade de cópia deve ser definida como "Dynamics Source", "DynamicsCrmSource" ou "CommonDataServiceForAppsSource".The type property of the copy activity source must be set to "DynamicsSource", "DynamicsCrmSource", or "CommonDataServiceForAppsSource". SimYes
Consultaquery FetchXML é uma linguagem de consulta proprietária que é usada no Dynamics online e no local.FetchXML is a proprietary query language that is used in Dynamics online and on-premises. Veja o exemplo a seguir.See the following example. Para saber mais, consulte criar consultas com FetchXML.To learn more, see Build queries with FetchXML. Não se entityName o conjunto de DataSet for especificadoNo if entityName in the dataset is specified

Observação

A coluna PK sempre será copiada, mesmo que ela não esteja contida na projeção da coluna que você configurar na consulta FetchXML.The PK column will always be copied out even if the column projection you configure in the FetchXML query doesn't contain it.

Importante

  • Quando você copia dados do Dynamics, o mapeamento de coluna explícito do Dynamics para o coletor é opcional.When you copy data from Dynamics, explicit column mapping from Dynamics to sink is optional. Mas é altamente recomendável o mapeamento para garantir um resultado de cópia determinística.But we highly recommend the mapping to ensure a deterministic copy result.
  • Quando Data Factory importa um esquema na interface do usuário de criação, ele infere o esquema.When Data Factory imports a schema in the authoring UI, it infers the schema. Ele faz isso por meio da amostragem das principais linhas do resultado da consulta do Dynamics para inicializar a lista de colunas de origem.It does so by sampling the top rows from the Dynamics query result to initialize the source column list. Nesse caso, as colunas sem valores nas linhas superiores são omitidas.In that case, columns with no values in the top rows are omitted. O mesmo comportamento se aplica a execuções de cópia se não houver mapeamento explícito.The same behavior applies to copy executions if there is no explicit mapping. Você pode examinar e adicionar mais colunas ao mapeamento, que são respeitadas durante o tempo de execução da cópia.You can review and add more columns into the mapping, which are honored during copy runtime.

ExemploExample

"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>"
            }
        }
    }
]

Exemplo de consulta FetchXMLSample FetchXML query

<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 como um tipo de coletorDynamics as a sink type

Para copiar dados para o Dynamics, a seção de coletor de atividade de cópia dá suporte às seguintes propriedades:To copy data to Dynamics, the copy activity sink section supports the following properties:

PropriedadeProperty DescriçãoDescription ObrigatórioRequired
typetype A propriedade Type do coletor da atividade de cópia deve ser definida como "DynamicsSink", "DynamicsCrmSink" ou "CommonDataServiceForAppsSink".The type property of the copy activity sink must be set to "DynamicsSink", "DynamicsCrmSink", or "CommonDataServiceForAppsSink". Sim.Yes.
writeBehaviorwriteBehavior O comportamento da operação de gravação.The write behavior of the operation. O valor deve ser "Upsert".The value must be "Upsert". SimYes
alternateKeyNamealternateKeyName O nome da chave alternativa definido em sua entidade para fazer um Upsert.The alternate key name defined on your entity to do an upsert. Não.No.
writeBatchSizewriteBatchSize A contagem de linhas de dados gravados no Dynamics em cada lote.The row count of data written to Dynamics in each batch. Não.No. O valor padrão é 10.The default value is 10.
ignoreNullValuesignoreNullValues Se é para ignorar valores nulos de dados de entrada que não sejam campos de chave durante uma operação de gravação.Whether to ignore null values from input data other than key fields during a write operation.

Os valores válidos são true e false :Valid values are TRUE and FALSE :
  • True : deixa os dados no objeto de destino inalterados quando você faz uma operação de Upsert ou atualização.TRUE : Leave the data in the destination object unchanged when you do an upsert or update operation. Insira um valor padrão definido quando você faz uma operação insert.Insert a defined default value when you do an insert operation.
  • False : atualizar os dados no objeto de destino para um valor nulo quando você fizer uma operação de Upsert ou atualização.FALSE : Update the data in the destination object to a null value when you do an upsert or update operation. Insira um valor nulo ao fazer uma operação de inserção.Insert a null value when you do an insert operation.
Não.No. O valor padrão é false .The default value is FALSE .

Observação

O valor padrão para o coletor writeBatchSize e a atividade de cópia parallelCopies para o coletor do Dynamics é 10.The default value for both the sink writeBatchSize and the copy activity parallelCopies for the Dynamics sink is 10. Portanto, os registros 100 são enviados simultaneamente por padrão ao Dynamics.Therefore, 100 records are concurrently submitted by default to Dynamics.

Para o Dynamics 365 online, há um limite de duas chamadas de lote simultâneas por organização.For Dynamics 365 online, there's a limit of two concurrent batch calls per organization. Se esse limite for excedido, uma exceção de "servidor ocupado" será lançada antes que a primeira solicitação seja executada.If that limit is exceeded, a "Server Busy" exception is thrown before the first request is ever run. Mantenha writeBatchSize em 10 ou menos para evitar essa limitação de chamadas simultâneas.Keep writeBatchSize at 10 or less to avoid such throttling of concurrent calls.

A combinação ideal de writeBatchSize e parallelCopies depende do esquema da sua entidade.The optimal combination of writeBatchSize and parallelCopies depends on the schema of your entity. Os elementos de esquema incluem o número de colunas, o tamanho da linha e o número de plug-ins, fluxos de trabalho ou atividades de fluxo de trabalho conectados a essas chamadas.Schema elements include the number of columns, row size, and number of plug-ins, workflows, or workflow activities hooked up to those calls. A configuração padrão de writeBatchSize (10) × parallelCopies (10) é a recomendação de acordo com o serviço do Dynamics.The default setting of writeBatchSize (10) × parallelCopies (10) is the recommendation according to the Dynamics service. Esse valor funciona para a maioria das entidades do Dynamics, embora possa não fornecer o melhor desempenho.This value works for most Dynamics entities, although it might not give the best performance. Você pode ajustar o desempenho ajustando a combinação em suas configurações de atividade de cópia.You can tune the performance by adjusting the combination in your copy activity settings.

ExemploExample

"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
            }
        }
    }
]

Mapeamento de tipo de dados para DynamicsData type mapping for Dynamics

Quando você copia dados do Dynamics, a tabela a seguir mostra mapeamentos de tipos de dados do Dynamics para Data Factory tipos de dados provisórios.When you copy data from Dynamics, the following table shows mappings from Dynamics data types to Data Factory interim data types. Para saber como uma atividade de cópia é mapeada para um esquema de origem e um tipo de dados é mapeado para um coletor, consulte mapeamentos de tipo de dados e esquema.To learn how a copy activity maps to a source schema and a data type maps to a sink, see Schema and data type mappings.

Configure o tipo de dados Data Factory correspondente em uma estrutura de conjunto de dados com base em seu tipo de fonte Dynamics de origem usando a seguinte tabela de mapeamento:Configure the corresponding Data Factory data type in a dataset structure that is based on your source Dynamics data type by using the following mapping table:

Tipo de dados do DynamicsDynamics data type Tipo de dados provisório do Data FactoryData Factory interim data type Tem suporte como origemSupported as source Tem suporte como coletorSupported as sink
AttributeTypeCode.BigIntAttributeTypeCode.BigInt longLong
AttributeTypeCode.BooleanAttributeTypeCode.Boolean BoolianoBoolean
AttributeType.CustomerAttributeType.Customer GUIDGUID ✓ (Consulte as diretrizes)✓ (See guidance)
AttributeType.DateTimeAttributeType.DateTime DatetimeDatetime
AttributeType.DecimalAttributeType.Decimal DecimalDecimal
AttributeType.DoubleAttributeType.Double DuploDouble
AttributeType.EntityNameAttributeType.EntityName StringString
AttributeType.IntegerAttributeType.Integer Int32Int32
AttributeType.LookupAttributeType.Lookup GUIDGUID ✓ (Consulte as diretrizes)✓ (See guidance)
AttributeType.ManagedPropertyAttributeType.ManagedProperty BoolianoBoolean
AttributeType.MemoAttributeType.Memo StringString
AttributeType.MoneyAttributeType.Money DecimalDecimal
AttributeType.OwnerAttributeType.Owner GUIDGUID ✓ (Consulte as diretrizes)✓ (See guidance)
AttributeType.PicklistAttributeType.Picklist Int32Int32
AttributeType.UniqueidentifierAttributeType.Uniqueidentifier GUIDGUID
AttributeType.StringAttributeType.String StringString
AttributeType.StateAttributeType.State Int32Int32
AttributeType.StatusAttributeType.Status Int32Int32

Observação

Não há suporte para os tipos de dados do Dynamics attributeType. CalendarRules , attributeType. MultiSelectPicklist e attributeType. partylist .The Dynamics data types AttributeType.CalendarRules , AttributeType.MultiSelectPicklist , and AttributeType.PartyList aren't supported.

Gravando dados em um campo de pesquisaWriting data to a lookup field

Para gravar dados em um campo de pesquisa com vários destinos, como cliente e proprietário, siga este guia e exemplo:To write data into a lookup field with multiple targets like Customer and Owner, follow this guidance and example:

  1. Faça com que sua fonte contenha o valor do campo e o nome da entidade de destino correspondente.Make your source contains both the field value and the corresponding target entity name.

    • Se todos os registros forem mapeados para a mesma entidade de destino, certifique-se de uma das seguintes condições:If all records map to the same target entity, ensure one of the following conditions:
      • Os dados de origem têm uma coluna que armazena o nome da entidade de destino.Your source data has a column that stores the target entity name.
      • Você adicionou uma coluna adicional na origem da atividade de cópia para definir a entidade de destino.You've added an additional column in the copy activity source to define the target entity.
    • Se registros diferentes forem mapeados para entidades de destino diferentes, verifique se os dados de origem têm uma coluna que armazena o nome da entidade de destino correspondente.If different records map to different target entities, make sure your source data has a column that stores the corresponding target entity name.
  2. Mapeie as colunas valor e referência de entidade da origem para o coletor.Map both the value and entity-reference columns from source to sink. A coluna entidade-referência deve ser mapeada para uma coluna virtual com o padrão de nomenclatura especial {lookup_field_name}@EntityReference .The entity-reference column must be mapped to a virtual column with the special naming pattern {lookup_field_name}@EntityReference. Na verdade, a coluna não existe no Dynamics.The column doesn't actually exist in Dynamics. Ele é usado para indicar que essa coluna é a coluna de metadados do campo de pesquisa de várias destinos fornecido.It's used to indicate this column is the metadata column of the given multitarget lookup field.

Por exemplo, suponha que a fonte tenha estas duas colunas:For example, assume the source has these two columns:

  • Customerfield coluna do tipo GUID , que é o valor da chave primária da entidade de destino no Dynamics.CustomerField column of type GUID , which is the primary key value of the target entity in Dynamics.
  • Coluna de destino do tipo cadeia de caracteres , que é o nome lógico da entidade de destino.Target column of type String , which is the logical name of the target entity.

Além disso, suponha que você deseja copiar esses dados para o campo de entidade de dinâmica do coletor customerfield do tipo Customer .Also assume you want to copy such data to the sink Dynamics entity field CustomerField of type Customer .

Em mapeamento de coluna de atividade de cópia, mapeie as duas colunas da seguinte maneira:In copy-activity column mapping, map the two columns as follows:

  • Customerfield para customerfield .CustomerField to CustomerField . Esse mapeamento é o mapeamento de campo normal.This mapping is the normal field mapping.
  • Destino para customerfield @ EntityReference .Target to CustomerField@EntityReference . A coluna Sink é uma coluna virtual que representa a referência de entidade.The sink column is a virtual column representing the entity reference. Insira esses nomes de campo em um mapeamento, pois eles não aparecerão Importando esquemas.Input such field names in a mapping, as they won't show up by importing schemas.

Pesquisa de Dynamics – mapeamento de coluna de campo

Se todos os seus registros de origem mapearem para a mesma entidade de destino e os dados de origem não contiverem o nome da entidade de destino, aqui está um atalho: na origem da atividade de cópia, adicione uma coluna adicional.If all of your source records map to the same target entity and your source data doesn't contain the target entity name, here is a shortcut: in the copy activity source, add an additional column. Nomeie a nova coluna usando o padrão {lookup_field_name}@EntityReference , defina o valor para o nome da entidade de destino e, em seguida, continue com o mapeamento de coluna como de costume.Name the new column by using the pattern {lookup_field_name}@EntityReference, set the value to the target entity name, then proceed with column mapping as usual. Se os nomes de coluna de origem e de coletor forem idênticos, você também poderá ignorar o mapeamento de coluna explícito, pois a atividade de cópia, por padrão, mapeia as colunas por nome.If your source and sink column names are identical, you can also skip explicit column mapping because copy activity by default maps columns by name.

Pesquisa de Dynamics-campo adicionando uma coluna de referência de entidade

Pesquisar propriedades de atividadeLookup activity properties

Para obter detalhes sobre as propriedades, consulte atividade de pesquisa.To learn details about the properties, see Lookup activity.

Próximas etapasNext steps

Para obter uma lista de armazenamento de dados, a atividade de cópia no Data Factory dá suporte a fontes e coletores, consulte armazenamentos de dados com suporte.For a list of data stores the copy activity in Data Factory supports as sources and sinks, see Supported data stores.