Copiar e transformar dados no Dynamics 365 (Microsoft Dataverse) ou no Dynamics CRM usando o Azure Data Factory ou o Azure Synapse Analytics
APLICA-SE A: Azure Data Factory Azure Synapse Analytics
Gorjeta
Experimente o Data Factory no Microsoft Fabric, uma solução de análise tudo-em-um para empresas. O Microsoft Fabric abrange tudo, desde a movimentação de dados até ciência de dados, análises em tempo real, business intelligence e relatórios. Saiba como iniciar uma nova avaliação gratuitamente!
Este artigo descreve como usar uma atividade de cópia no Azure Data Factory ou pipelines Synapse para copiar dados de e para o Dynamics 365 (Microsoft Dataverse) ou Dynamics CRM e usar um fluxo de dados para transformar dados no Dynamics 365 (Microsoft Dataverse) ou Dynamics CRM. Para saber mais, leia os artigos de introdução do Azure Data Factory e do Azure Synapse Analytics .
Capacidades suportadas
Este conector é suportado para as seguintes atividades:
Capacidades suportadas | IR |
---|---|
Atividade de cópia (origem/coletor) | (1) (2) |
Mapeando o fluxo de dados (origem/coletor) | (1) |
Atividade de Pesquisa | (1) (2) |
(1) Tempo de execução de integração do Azure (2) Tempo de execução de integração auto-hospedado
Para obter uma lista de armazenamentos de dados que uma atividade de cópia suporta como fontes e coletores, consulte a tabela Armazenamentos de dados suportados.
Nota
A partir de novembro de 2020, o Common Data Service foi renomeado para Microsoft Dataverse. Este artigo é atualizado para refletir a terminologia mais recente.
Este conector do Dynamics suporta as versões 7 a 9 do Dynamics para online e no local. Mais especificamente:
- A versão 7 é mapeada para o Dynamics CRM 2015.
- A versão 8 mapeia para o Dynamics CRM 2016 e a versão anterior do Dynamics 365.
- A versão 9 é mapeada para a versão posterior do Dynamics 365.
Consulte a tabela a seguir de tipos e configurações de autenticação suportados para versões e produtos do Dynamics.
Versões dinâmicas | Tipos de autenticação | Exemplos de serviço vinculado |
---|---|---|
Versículo de dados Dynamics 365 online Dynamics CRM Online |
Entidade de serviço Microsoft Entra Escritório 365 Identidade gerida atribuída pelo utilizador |
Dynamics online e entidade de serviço do Microsoft Entra ou autenticação do Office 365 |
Dynamics 365 local com implantação voltada para a Internet (IFD) Dynamics CRM 2016 local com IFD Dynamics CRM 2015 local com IFD |
IFD | Dynamics on-premises com autenticação IFD e IFD |
Nota
Com a substituição do Serviço de Descoberta regional, o serviço foi atualizado para aproveitar o Serviço de Descoberta global ao usar a Autenticação do Office 365.
Importante
Se o seu inquilino e utilizador estiver configurado no Microsoft Entra ID para acesso condicional e/ou se for necessária a Autenticação Multifator, não poderá utilizar o tipo de Autenticação do Office 365. Para essas situações, você deve usar uma autenticação de entidade de serviço do Microsoft Entra.
Para o Dynamics 365 especificamente, os seguintes tipos de aplicativo são suportados:
- Dynamics 365 for Sales
- Dynamics 365 for Customer Service
- Dynamics 365 for Field Service
- Dynamics 365 for Project Service Automation
- Dynamics 365 for Marketing
Esse conector não suporta outros tipos de aplicativos, como Finanças, Operações e Talentos.
Gorjeta
Para copiar dados do Dynamics 365 Finance and Operations, você pode usar o conector do Dynamics AX.
Este conector do Dynamics é criado com base nas ferramentas do Dynamics XRM.
Pré-requisitos
Para usar esse conector com a autenticação de entidade de serviço do Microsoft Entra, você deve configurar a autenticação de servidor para servidor (S2S) em Dataverse ou Dynamics. Primeiro, registre o usuário do aplicativo (Service Principal) no Microsoft Entra ID. Você pode descobrir como fazer isso aqui. Durante o registro do aplicativo, você precisará criar esse usuário no Dataverse ou no Dynamics e conceder permissões. Essas permissões podem ser concedidas direta ou indiretamente, adicionando o usuário do aplicativo a uma equipe à qual foram concedidas permissões no Dataverse ou no Dynamics. Você pode encontrar mais informações sobre como configurar um usuário de aplicativo para autenticar com o Dataverse aqui.
Começar agora
Para executar a atividade Copiar com um pipeline, você pode usar uma das seguintes ferramentas ou SDKs:
- A ferramenta Copiar dados
- O portal do Azure
- O SDK do .NET
- O SDK do Python
- Azure PowerShell
- A API REST
- O modelo do Azure Resource Manager
Criar um serviço vinculado ao Dynamics 365 (Microsoft Dataverse) ou ao Dynamics CRM usando a interface do usuário
Use as etapas a seguir para criar um serviço vinculado ao Dynamics 365 na interface do usuário do portal do Azure.
Navegue até a guia Gerenciar em seu espaço de trabalho do Azure Data Factory ou Synapse e selecione Serviços Vinculados e clique em Novo:
Pesquise Dynamics ou Dataverse e selecione o conector Dynamics 365 (Microsoft Dataverse) ou Dynamics CRM.
Configure os detalhes do serviço, teste a conexão e crie o novo serviço vinculado.
Detalhes de configuração do conector
As seções a seguir fornecem detalhes sobre as propriedades que são usadas para definir entidades específicas do Dynamics.
Propriedades do serviço vinculado
As propriedades a seguir são suportadas para o serviço vinculado do Dynamics.
Dynamics 365 e Dynamics CRM online
Property | Descrição | Obrigatório |
---|---|---|
tipo | A propriedade type deve ser definida como "Dynamics", "DynamicsCrm" ou "CommonDataServiceForApps". | Sim |
deploymentType | O tipo de implantação da instância do Dynamics. O valor deve ser "Online" para Dynamics online. | Sim |
serviceUri | A URL de serviço da sua instância do Dynamics, a mesma que você acessa do navegador. Um exemplo é "https://< organization-name.crm>[x].dynamics.com". | Sim |
authenticationType | O tipo de autenticação para se conectar a um servidor do Dynamics. Os valores válidos são "AADServicePrincipal", "Office365" e "ManagedIdentity". | Sim |
servicePrincipalId | A ID do cliente do aplicativo Microsoft Entra. | Sim quando a autenticação é "AADServicePrincipal" |
servicePrincipalCredentialType | O tipo de credencial a ser usado para autenticação da entidade de serviço. Os valores válidos são "ServicePrincipalKey" e "ServicePrincipalCert". Nota: É recomendável usar ServicePrincipalKey. Há uma limitação conhecida para o tipo de credencial ServicePrincipalCert em que o serviço pode encontrar um problema transitório de falha na recuperação do segredo do cofre de chaves. |
Sim quando a autenticação é "AADServicePrincipal" |
servicePrincipalCredential | A credencial da entidade de serviço. Quando você usa "ServicePrincipalKey" como o tipo de credencial, servicePrincipalCredential pode ser uma cadeia de caracteres que o serviço criptografa na implantação do serviço vinculado. Ou pode ser uma referência a um segredo no Cofre de Chaves do Azure. Quando você usa "ServicePrincipalCert" como credencial, servicePrincipalCredential deve ser uma referência a um certificado no Cofre de Chaves do Azure e garantir que o tipo de conteúdo do certificado seja PKCS #12. |
Sim quando a autenticação é "AADServicePrincipal" |
nome de utilizador | O nome de usuário para se conectar ao Dynamics. | Sim quando a autenticação é "Office365" |
password | A senha para a conta de usuário que você especificou como o nome de usuário. Marque este campo com "SecureString" para armazená-lo com segurança ou faça referência a um segredo armazenado no Cofre de Chaves do Azure. | Sim quando a autenticação é "Office365" |
credenciais | Especifique a identidade gerenciada atribuída pelo usuário como o objeto de credencial. Crie uma ou várias identidades gerenciadas atribuídas pelo usuário, atribua-as ao seu data factory e crie credenciais para cada identidade gerenciada atribuída pelo usuário. |
Sim quando a autenticação é "ManagedIdentity" |
ConecteVia | O tempo de execução de integração a ser usado para se conectar ao armazenamento de dados. Se nenhum valor for especificado, a propriedade usará o tempo de execução de integração padrão do Azure. | Não |
Nota
O conector do Dynamics anteriormente usava a propriedade opcional organizationName para identificar sua instância online do Dynamics CRM ou do Dynamics 365. Enquanto essa propriedade ainda funciona, sugerimos que você especifique a nova propriedade serviceUri para obter um melhor desempenho para a descoberta de exemplo.
Exemplo: Dynamics online usando a entidade de serviço e a autenticação de chave do Microsoft Entra
{
"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 a entidade de serviço e a autenticação de certificado do Microsoft Entra
{
"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 365
{
"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"
}
}
}
Exemplo: Dynamics online usando autenticação de identidade gerenciada atribuída pelo usuário
{
"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"
}
}
}
Dynamics 365 e Dynamics CRM local com IFD
As propriedades adicionais que se comparam ao Dynamics online são hostName e port.
Property | Descrição | Obrigatório |
---|---|---|
tipo | A propriedade type deve ser definida como "Dynamics", "DynamicsCrm" ou "CommonDataServiceForApps". | Sim |
deploymentType | O tipo de implantação da instância do Dynamics. O valor deve ser "OnPremisesWithIfd" para Dynamics on-premises com IFD. | Sim |
Nome do host | O nome do host do servidor Dynamics local. | Sim |
porta | A porta do servidor Dynamics local. | N.º O valor padrão é 443. |
nome_da_organização | O nome da organização da instância do Dynamics. | Sim |
authenticationType | O tipo de autenticação para se conectar ao servidor do Dynamics. Especifique "ActiveDirectoryAuthentication" para Dynamics local com IFD. | Sim |
domínio | O domínio do Ative Directory que verificará as credenciais do usuário. | Sim |
nome de utilizador | O nome de usuário para se conectar ao Dynamics. | Sim |
password | A senha para a conta de usuário que você especificou para o nome de usuário. Você pode marcar este campo com "SecureString" para armazená-lo com segurança. Ou você pode armazenar uma senha no Cofre de Chaves e permitir que a atividade de cópia seja extraída de lá quando fizer a cópia de dados. Saiba mais em Credenciais da Loja no Cofre de Chaves. | Sim |
ConecteVia | O tempo de execução de integração a ser usado para se conectar ao armazenamento de dados. Se nenhum valor for especificado, a propriedade usará o tempo de execução de integração padrão do Azure. | Não |
Nota
Devido ao fim do tipo de autenticação Ifd até 31 de agosto de 2024, atualize para o tipo de Autenticação do Ative Directory antes da data, se estiver usando no momento.
Exemplo: Dynamics on-premises com IFD usando autenticação do Ative Directory
{
"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.onmicrosoft.com",
"password": {
"type": "SecureString",
"value": "<password>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Propriedades do conjunto de dados
Para obter uma lista completa de seções e propriedades disponíveis para definir conjuntos de dados, consulte o artigo Conjuntos de dados. Esta seção fornece uma lista de propriedades suportadas pelo conjunto de dados do Dynamics.
Para copiar dados de e para o Dynamics, as seguintes propriedades são suportadas:
Property | Descrição | Obrigatório |
---|---|---|
tipo | A propriedade type do conjunto de dados deve ser definida como "DynamicsEntity", "DynamicsCrmEntity" ou "CommonDataServiceForAppsEntity". | Sim |
entityName | O nome lógico da entidade a ser recuperada. | Não para fonte se a fonte de atividade for especificada como "consulta" e sim para coletor |
Exemplo
{
"name": "DynamicsDataset",
"properties": {
"type": "DynamicsEntity",
"schema": [],
"typeProperties": {
"entityName": "account"
},
"linkedServiceName": {
"referenceName": "<Dynamics linked service name>",
"type": "linkedservicereference"
}
}
}
Propriedades da atividade Copy
Para obter uma lista completa de seções e propriedades disponíveis para definir atividades, consulte o artigo Pipelines . Esta seção fornece uma lista de propriedades suportadas pelos tipos de fonte e coletor do Dynamics.
Dinâmica como um tipo de origem
Para copiar dados do Dynamics, a seção copiar fonte de atividade suporta as seguintes propriedades:
Property | Descrição | Obrigatório |
---|---|---|
tipo | A propriedade type da fonte de atividade de cópia deve ser definida como "DynamicsSource", "DynamicsCrmSource" ou "CommonDataServiceForAppsSource". | Sim |
query | FetchXML é uma linguagem de consulta proprietária que é usada no Dynamics online e local. Veja o seguinte exemplo. Para saber mais, consulte Criar consultas com FetchXML. | Não se entityName no conjunto de dados for especificado |
Nota
A coluna PK sempre será copiada, mesmo que a projeção de coluna configurada na consulta FetchXML não a contenha.
Importante
- Quando você copia dados do Dynamics, o mapeamento explícito de colunas do Dynamics para o coletor é opcional. Mas é altamente recomendável o mapeamento para garantir um resultado de cópia determinística.
- Quando o serviço importa um esquema na interface do usuário de criação, ele infere o esquema. Ele faz isso amostrando as linhas superiores do resultado da consulta do Dynamics para inicializar a lista de colunas de origem. Nesse caso, as colunas sem valores nas linhas superiores são omitidas. O mesmo comportamento também se aplica a visualizações de dados e execuções de cópia se não houver mapeamento explícito. Você pode revisar e adicionar mais colunas ao mapeamento, que são honradas durante o tempo de execução da cópia.
Exemplo
"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 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>
Dinâmica como um tipo de coletor
Para copiar dados para o Dynamics, a seção do coletor de atividade de cópia suporta as seguintes propriedades:
Property | Descrição | Obrigatório |
---|---|---|
tipo | A propriedade type do coletor de atividade de cópia deve ser definida como "DynamicsSink", "DynamicsCrmSink" ou "CommonDataServiceForAppsSink". | Sim. |
writeBehavior | O comportamento de gravação da operação. O valor deve ser "Upsert". | Sim |
alternateKeyName | O nome de chave alternativo definido em sua entidade para fazer um upsert. | N.º |
writeBatchSize | A contagem de linhas de dados gravados no Dynamics em cada lote. | N.º O valor predefinido é 10. |
ignoreNullValues | Se os valores nulos devem ser ignorados de dados de entrada diferentes de campos-chave durante uma operação de gravação. Os valores válidos são TRUE e FALSE:
|
N.º O valor padrão é FALSE. |
maxConcurrentConnections | O limite superior de conexões simultâneas estabelecidas para o armazenamento de dados durante a execução da atividade. Especifique um valor somente quando quiser limitar conexões simultâneas. | Não |
Nota
O valor padrão para o coletor writeBatchSize e a atividade de cópia parallelCopies para o coletor do Dynamics é 10. Portanto, 100 registros são enviados simultaneamente por padrão para o Dynamics.
Para o Dynamics 365 online, há um limite de 52 chamadas em lote simultâneas por organização. Se esse limite for excedido, uma exceção "Servidor ocupado" será lançada antes que a primeira solicitação seja executada. Mantenha writeBatchSize em 10 ou menos para evitar essa limitação de chamadas simultâneas.
A combinação ideal de writeBatchSize e parallelCopies depende do esquema da sua entidade. Os elementos do 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. A configuração padrão de writeBatchSize (10) × parallelCopies (10) é a recomendação de acordo com o serviço Dynamics. Esse valor funciona para a maioria das entidades do Dynamics, embora possa não oferecer o melhor desempenho. Você pode ajustar o desempenho ajustando a combinação nas configurações de atividade de cópia.
Exemplo
"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
}
}
}
]
Recuperando dados de modos de exibição
Para recuperar dados de modos de exibição do Dynamics, você precisa obter a consulta salva do modo de exibição e usar a consulta para obter os dados.
Existem duas entidades que armazenam diferentes tipos de visualização: "consulta salva" armazena a visualização do sistema e "consulta do usuário" armazena a visualização do usuário. Para obter as informações das exibições, consulte a seguinte consulta FetchXML e substitua "TARGETENTITY" por savedquery
ou userquery
. Cada tipo de entidade tem mais atributos disponíveis que você pode adicionar à consulta com base em sua necessidade. Saiba mais sobre a entidade savedquery e a entidade userquery.
<fetch top="5000" >
<entity name="<TARGETENTITY>">
<attribute name="name" />
<attribute name="fetchxml" />
<attribute name="returnedtypecode" />
<attribute name="querytype" />
</entity>
</fetch>
Você também pode adicionar filtros para filtrar as exibições. Por exemplo, adicione o seguinte filtro para obter uma exibição chamada "Minhas contas ativas" na entidade da conta.
<filter type="and" >
<condition attribute="returnedtypecode" operator="eq" value="1" />
<condition attribute="name" operator="eq" value="My Active Accounts" />
</filter>
Mapeamento de tipo de dados para Dynamics
Quando você copia dados do Dynamics, a tabela a seguir mostra mapeamentos de tipos de dados do Dynamics para tipos de dados provisórios dentro do serviço. Para saber como uma atividade de cópia mapeia para um esquema de origem e um tipo de dados mapeia para um coletor, consulte Mapeamentos de esquema e tipo de dados.
Configure o tipo de dados provisório correspondente em uma estrutura de conjunto de dados baseada no tipo de dados do Dynamics de origem usando a seguinte tabela de mapeamento:
Tipo de dados dinâmicos | Tipo de dados provisórios de serviço | Suportado como fonte | Suportado como lavatório |
---|---|---|---|
AttributeTypeCode.BigInt | Longo | ✓ | ✓ |
AttributeTypeCode.Boolean | Boolean | ✓ | ✓ |
AttributeType.Customer | GUID | ✓ | ✓ (Ver orientações) |
AttributeType.DateTime | Datetime | ✓ | ✓ |
AttributeType.Decimal | Decimal | ✓ | ✓ |
AttributeType.Double | Duplo | ✓ | ✓ |
AttributeType.EntityName | String | ✓ | ✓ |
AttributeType.Integer | Int32 | ✓ | ✓ |
AttributeType.Lookup | GUID | ✓ | ✓ (Ver orientações) |
AttributeType.ManagedProperty | Boolean | ✓ | |
AttributeType.Memo | String | ✓ | ✓ |
AttributeType.Money | Decimal | ✓ | ✓ |
AttributeType.Owner | GUID | ✓ | ✓ (Ver orientações) |
AttributeType.Picklist | Int32 | ✓ | ✓ |
AttributeType.Uniqueidentifier | GUID | ✓ | ✓ |
AttributeType.String | String | ✓ | ✓ |
AttributeType.State | Int32 | ✓ | ✓ |
AttributeType.Status | Int32 | ✓ | ✓ |
Nota
Os tipos de dados Dynamics AttributeType.CalendarRules, AttributeType.MultiSelectPicklist e AttributeType.PartyList não são suportados.
Gravando dados em um campo de pesquisa
Para gravar dados em um campo de pesquisa com vários destinos, como Cliente e Proprietário, siga estas orientações e exemplo:
Faça com que sua origem contenha o valor do campo e o nome da entidade de destino correspondente.
- Se todos os registros forem mapeados para a mesma entidade de destino, verifique uma das seguintes condições:
- Os dados de origem têm uma coluna que armazena o nome da entidade de destino.
- Você adicionou uma coluna adicional na fonte de atividade de cópia para definir a entidade de destino.
- 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.
- Se todos os registros forem mapeados para a mesma entidade de destino, verifique uma das seguintes condições:
Mapeie as colunas de valor e de referência de entidade da origem para o coletor. A coluna de referência de entidade deve ser mapeada para uma coluna virtual com o padrão
{lookup_field_name}@EntityReference
de nomenclatura especial. Na verdade, a coluna não existe no Dynamics. É usado para indicar que esta coluna é a coluna de metadados do campo de pesquisa de vários destinos fornecido.
Definindo o campo Proprietário
Ao definir o campo Proprietário no Dynamics 365 (Microsoft Dataverse) ou no Dynamics CRM, é importante fornecer uma referência válida. As opções válidas para o @EntityReference
são:
systemuser
: Refere-se a um utilizador individual dentro do sistema.team
: Refere-se a uma equipe de usuários dentro da organização.
Certifique-se de que o valor fornecido corresponde a uma dessas opções para evitar erros durante a transformação de dados.
Por exemplo, suponha que a fonte tenha estas duas colunas:
- Coluna CustomerField do tipo GUID, que é o valor da chave primária da entidade de destino em Dynamics.
- Coluna de destino do tipo String, que é o nome lógico da entidade de destino.
Suponha também que você deseja copiar esses dados para o campo de entidade do coletor Dynamics CustomerField do tipo Customer.
No mapeamento de coluna de atividade de cópia, mapeie as duas colunas da seguinte maneira:
- CustomerField para CustomerField. Este mapeamento é o mapeamento de campo normal.
- Alvo para CustomerField@EntityReference. A coluna do coletor é uma coluna virtual que representa a referência da entidade. Insira esses nomes de campo em um mapeamento, pois eles não aparecerão importando esquemas.
Se todos os seus registros de origem forem mapeados para a mesma entidade de destino e seus dados de origem não contiverem o nome da entidade de destino, aqui está um atalho: na fonte de atividade de cópia, adicione uma coluna adicional. Nomeie a nova coluna usando o padrão {lookup_field_name}@EntityReference
, defina o valor para o nome da entidade de destino e prossiga com o mapeamento de coluna como de costume. Se os nomes das colunas de origem e coletor forem idênticos, você também poderá ignorar o mapeamento explícito de colunas, pois a atividade de cópia por padrão mapeia colunas por nome.
Gravar dados em um campo de pesquisa por meio de chaves alternativas
Para gravar dados em um campo de pesquisa usando colunas de chave alternativas, siga estas orientações e exemplo:
Verifique se a fonte contém todas as colunas de chave de pesquisa.
As colunas de chave alternativas devem ser mapeadas para a coluna com o padrão
{lookup_field_name}@{alternate_key_column_name}
de nomenclatura especial. A coluna não existe no Dynamics. Ele é usado para indicar que essa coluna é usada para procurar o registro na entidade de destino.Vá para a guia Mapeamento na transformação do coletor de fluxos de dados de mapeamento. Selecione a chave alternativa como colunas de saída no campo Pesquisa. O valor depois indica as colunas de chave dessa chave alternativa.
Uma vez selecionadas, as colunas de teclas alternativas serão exibidas automaticamente abaixo.
Mapeie suas colunas de entrada à esquerda com as colunas de saída.
Nota
Atualmente, isso só é suportado quando você usa o modo embutido na transformação do coletor de fluxos de dados de mapeamento.
Mapeando propriedades de fluxo de dados
Ao transformar dados em mapeamento de fluxo de dados, você pode ler e gravar em tabelas no Dynamics. Para obter mais informações, consulte a transformação de origem e a transformação de coletor no mapeamento de fluxos de dados. Você pode optar por usar um conjunto de dados do Dynamics ou um conjunto de dados embutido como tipo de fonte e coletor.
Transformação da fonte
A tabela abaixo lista as propriedades suportadas pelo Dynamics. Você pode editar essas propriedades na guia Opções de origem .
Nome | Descrição | Obrigatório | Valores permitidos | Propriedade do script de fluxo de dados |
---|---|---|---|---|
Nome da entidade | O nome lógico da entidade a ser recuperada. | Sim ao usar o conjunto de dados embutido | - | (apenas para conjunto de dados embutido) entidade |
Query | FetchXML é uma linguagem de consulta proprietária que é usada no Dynamics online e local. Veja o seguinte exemplo. Para saber mais, consulte Criar consultas com FetchXML. | Não | String | query |
Nota
Se você selecionar Consulta como tipo de entrada, o tipo de coluna das tabelas não poderá ser recuperado. Ele será tratado como string por padrão.
Exemplo de script de origem do Dynamics
Quando você usa o conjunto de dados Dynamics como tipo de origem, o script de fluxo de dados associado é:
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
Se você usar o conjunto de dados embutido, o script de fluxo de dados associado será:
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
Transformação do lavatório
A tabela abaixo lista as propriedades suportadas pelo coletor do Dynamics. Você pode editar essas propriedades na guia Opções do coletor .
Nome | Descrição | Obrigatório | Valores permitidos | Propriedade do script de fluxo de dados |
---|---|---|---|---|
Nome de chave alternativo | O nome de chave alternativo definido em sua entidade para fazer uma atualização, atualização ou exclusão. | Não | - | alternateKeyName |
Método de atualização | Especifique quais operações são permitidas no destino do banco de dados. O padrão é permitir apenas inserções. Para atualizar, atualizar ou excluir linhas, uma transformação de linha Alter é necessária para marcar linhas para essas ações. |
Sim | true ou false |
inserível atualizável Atualizável suprimido |
Nome da entidade | O nome lógico da entidade a ser gravada. | Sim ao usar o conjunto de dados embutido | - | (apenas para conjunto de dados embutido) entidade |
Exemplo de script de coletor do Dynamics
Quando você usa o conjunto de dados Dynamics como tipo de coletor, o script de fluxo de dados associado é:
IncomingStream sink(allowSchemaDrift: true,
validateSchema: false,
deletable:true,
insertable:true,
updateable:true,
upsertable:true,
skipDuplicateMapInputs: true,
skipDuplicateMapOutputs: true) ~> DynamicsSink
Se você usar o conjunto de dados embutido, o script de fluxo de dados associado será:
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
Propriedades da atividade de pesquisa
Para saber detalhes sobre as propriedades, consulte Atividade de pesquisa.
Conteúdos relacionados
Para obter uma lista de dados suportados que armazenam a atividade de cópia como fontes e coletores, consulte Armazenamentos de dados suportados.