Condividi tramite


Copiare e trasformare dati in Dynamics 365 (Microsoft Dataverse) o Dynamics CRM usando Azure Data Factory o Azure Synapse Analytics

SI APPLICA A: Azure Data Factory Azure Synapse Analytics

Suggerimento

Provare Data Factory in Microsoft Fabric, una soluzione di analisi all-in-one per le aziende. Microsoft Fabric copre tutto, dallo spostamento dati al data science, all'analisi in tempo reale, alla business intelligence e alla creazione di report. Vedere le informazioni su come iniziare una nuova prova gratuita!

Questo articolo spiega come usare un'attività Copy nelle pipeline di Azure Data Factory o Synapse per copiare dati da/in Dynamics 365 (Microsoft Dataverse) o Dynamics CRM e usare un flusso di dati per trasformare dati in Dynamics 365 (Microsoft Dataverse) o Dynamics CRM. Per altre informazioni, leggere gli articoli introduttivi Azure Data Factory e Azure Synapse Analytics.

Funzionalità supportate

Il connettore è supportato per le attività seguenti:

Funzionalità supportate IR
Attività di copia (origine/sink) ① ②
Flusso di dati per mapping (origine/sink)
Attività Lookup ① ②

① Azure Integration Runtime ② Runtime di integrazione self-hosted

Per un elenco di archivi dati supportati da un'attività Copy come origini o sink, vedere la tabella Archivi dati supportati.

Nota

A partire da novembre 2020, Common Data Service è stato rinominato in Microsoft Dataverse. Questo articolo è aggiornato in base alla terminologia più recente.

Questo connettore Dynamics supporta le versioni da 7 a 9 di Dynamics sia online che in locale. In particolare:

  • La versione 7 esegue il mapping a Dynamics CRM 2015.
  • La versione 8 esegue il mapping a Dynamics CRM 2016 e alla versione iniziale di Dynamics 365.
  • La versione 9 esegue il mapping alla versione successiva di Dynamics 365.

Fare riferimento alla seguente tabella delle configurazioni e dei tipi di autenticazione supportati per le versioni e i prodotti Dynamics.

Versioni di Dynamics Tipi di autenticazione Esempi di servizi collegati
Dataverse

Dynamics 365 Online

Dynamics CRM Online
Entità servizio Microsoft Entra

Office 365

Identità gestita assegnata dall'utente
Dynamics online ed entità servizio Microsoft Entra o autenticazione di Office 365
Dynamics 365 locale con distribuzione con connessione Internet (IFD)

Dynamics CRM 2016 locale con IFD

Dynamics CRM 2015 locale con IFD
IFD Dynamics locale con IFD e autenticazione IFD

Nota

Con la deprecazione del Servizio di individuazione a livello di area, il servizio è stato aggiornato per sfruttare il Servizio di individuazione globale quando si usa l'autenticazione di Office 365.

Importante

Se il tenant e l'utente sono configurati in Microsoft Entra ID per l'accesso condizionale e/o è necessaria l'autenticazione a più fattori, non sarà possibile usare il tipo di autenticazione di Office 365. Per tali situazioni, è necessario usare un'autenticazione dell'entità servizio Microsoft Entra.

Per Dynamics 365 in particolare, sono supportati i tipi di applicazioni seguenti:

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

Questo connettore non supporta altri tipi di applicazioni come Finance, Operations e Talent.

Suggerimento

Per copiare dati da Dynamics 365 Finance e Operations, è possibile usare il connettore Dynamics AX.

Questo connettore Dynamics si basa su strumenti Dynamics XRM.

Prerequisiti

Per usare questo connettore con l'autenticazione dell'entità servizio Microsoft Entra, è necessario configurare l'autenticazione da server a server (S2S) in Dataverse o Dynamics. Registrare prima l'utente dell'applicazione (entità servizio) in Microsoft Entra ID. Questa operazione à descritta qui. Durante la registrazione dell'applicazione, sarà necessario creare l'utente in Dataverse o Dynamics e concedere le autorizzazioni. Queste autorizzazioni possono essere concesse direttamente o indirettamente aggiungendo l'utente dell'applicazione a un team a cui sono state concesse le autorizzazioni in Dataverse o Dynamics. Per altre informazioni su come configurare un utente dell'applicazione per l'autenticazione con Dataverse, vedere qui.

Operazioni preliminari

Per eseguire l'attività di copia con una pipeline, è possibile usare uno degli strumenti o SDK seguenti:

Creare un servizio collegato a Dynamics 365 (Microsoft Dataverse) o Dynamics CRM usando l'interfaccia utente

Usare la procedura seguente per creare un servizio collegato a Dynamics 365 nell'interfaccia utente del portale di Azure.

  1. Passare alla scheda Gestisci nell'area di lavoro di Azure Data Factory o Synapse e selezionare Servizi collegati, quindi fare clic su Nuovo:

  2. Cercare Dynamics o Dataverse e selezionare il connettore Dynamics 365 (Microsoft Dataverse) o Dynamics CRM.

    Screenshot del connettore Dynamics 365.

    Screenshot del connettore Dataverse.

  3. Configurare i dettagli del servizio, testare la connessione e creare il nuovo servizio collegato.

    Screenshot della configurazione del servizio collegato per Dynamics 365.

Dettagli di configurazione del connettore

Le sezioni seguenti riportano informazioni dettagliate sulle proprietà che vengono usate per definire entità specifiche di Dynamics.

Proprietà del servizio collegato

Per il servizio collegato di Dynamics sono supportate le proprietà seguenti.

Dynamics 365 e Dynamics CRM online

Proprietà Descrizione Richiesto
type La proprietà "type" deve essere impostata su "Dynamics", "DynamicsCrm" o "CommonDataServiceForApps".
deploymentType Il tipo di distribuzione dell'istanza di Dynamics. Il valore deve essere "Online" per Dynamics online.
serviceUri URL del servizio dell'istanza di Dynamics, lo stesso a cui si accede dal browser. Un esempio è "https://<organization-name>.crm[x].dynamics.com".
authenticationType Il tipo di autenticazione per la connessione a un server Dynamics. I valori validi sono "AADServicePrincipal", "Office365" e "ManagedIdentity".
servicePrincipalId L'ID client dell'applicazione Microsoft Entra. Sì quando l'autenticazione è "AADServicePrincipal"
servicePrincipalCredentialType Il tipo di credenziale da usare per l'autenticazione service-principal. I valori consentiti sono "ServicePrincipalKey" e "ServicePrincipalCert".

Nota: è consigliabile usare ServicePrincipalKey. Esiste una limitazione nota per il tipo di credenziale ServicePrincipalCert in cui il servizio potrebbe riscontrare un problema temporaneo di mancato recupero del segreto dall'insieme di credenziali delle chiavi.
Sì quando l'autenticazione è "AADServicePrincipal"
servicePrincipalCredential La credenziale service-principal.

Quando si usa "ServicePrincipalKey" come tipo di credenziale, servicePrincipalCredential può essere una stringa crittografata dal servizio durante la distribuzione del servizio collegato. In alternativa, può essere un riferimento a un segreto in Azure Key Vault.

Quando si usa "ServicePrincipalCert" come credenziale, servicePrincipalCredential deve fare riferimento a un certificato in Azure Key Vault e accertarsi che il tipo di contenuto del certificato sia PKCS #12.
Sì quando l'autenticazione è "AADServicePrincipal"
username Il nome utente per connettersi a Dynamics. Sì quando l'autenticazione è "Office365"
password La password per l'account utente specificato come nome utente. Contrassegnare questo campo come "SecureString" per archiviarlo in modo sicuro o fare riferimento a un segreto archiviato in Azure Key Vault. Sì quando l'autenticazione è "Office365"
credentials Specificare l'identità gestita assegnata dall'utente come oggetto credenziale.

Creare una o più identità gestite assegnate dall'utente, assegnarle al data factory e creare credenziali per ogni identità gestita assegnata dall'utente.
Sì quando l'autenticazione è "ManagedIdentity"
connectVia Runtime di integrazione da usare per la connessione all'archivio dati. Se non viene specificato alcun valore, la proprietà usa Azure Integration Runtime predefinito. No

Nota

Il connettore Dynamics precedentemente usava la proprietà organizationName facoltativa per identificare l'istanza di CRM o Dynamics 365 online. Anche se tale proprietà funziona ancora, è preferibile specificare la nuova proprietà serviceUri per ottenere prestazioni migliori per l'individuazione dell'istanza.

Esempio: Dynamics online che usa l'entità servizio Microsoft Entra o l'autenticazione tramite chiave

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

Esempio: Dynamics online che usa l'entità servizio Microsoft Entra o l'autenticazione tramite certificato

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

Esempio: Dynamics online che usa l'autenticazione di 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"
        }
    }
}

Esempio: Dynamics online che usa l'autenticazione tramite identità gestita assegnata dall'utente

{
    "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 locale con IFD

Proprietà aggiuntive rispetto a Dynamics online sono hostName e port.

Proprietà Descrizione Richiesto
type La proprietà "type" deve essere impostata su "Dynamics", "DynamicsCrm" o "CommonDataServiceForApps".
deploymentType Il tipo di distribuzione dell'istanza di Dynamics. Il valore deve essere "OnPremisesWithIfd" per Dynamics locale con IFD.
hostName Nome host del server Dynamics locale.
port Porta del server Dynamics locale. No. Il valore predefinito è 443.
organizationName Il nome organizzazione dell'istanza di Dynamics.
authenticationType Tipo di autenticazione per la connessione al server Dynamics. Specificare "ActiveDirectoryAuthentication" per Dynamics locale con IFD.
dominio Dominio di Active Directory che verificherà le credenziali utente.
username Il nome utente per connettersi a Dynamics.
password Specificare la password per l'account utente specificato per il nome utente. È possibile contrassegnare questo campo come "SecureString" per archiviarlo in modo sicuro. In alternativa, è possibile archiviare la password in Key Vault e consentire all'attività Copy di eseguirne il pull da tale posizione quando si esegue una copia di dati. Per altre informazioni, vedere Archiviare le credenziali nell'insieme di credenziali delle chiavi.
connectVia Runtime di integrazione da usare per la connessione all'archivio dati. Se non viene specificato alcun valore, la proprietà usa Azure Integration Runtime predefinito. No

Nota

A causa del ritiro del tipo di autenticazione Ifd entro il 31 agosto 2024, eseguire l'aggiornamento al tipo di autenticazione di Active Directory prima della data se è attualmente in uso.

Esempio: Dynamics locale con IFD usando l'autenticazione di Active 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"
        }
    }
}

Proprietà del set di dati

Per un elenco completo delle sezioni e delle proprietà disponibili per la definizione dei set di dati, vedere l'articolo Set di dati. Questa sezione presenta un elenco delle proprietà supportate dal set di dati Dynamics.

Per copiare dati da/in Dynamics, sono supportate le proprietà seguenti:

Proprietà Descrizione Richiesto
type La proprietà "type" del set di dati deve essere impostata su "DynamicsEntity", "DynamicsCrmEntity" o "CommonDataServiceForAppsEntity".
entityName Il nome logico dell'entità da recuperare. No per l'origine se l'origine dell'attività è specificata come "query", sì per il sink

Esempio

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

Proprietà dell'attività di copia

Per un elenco completo delle sezioni e delle proprietà disponibili per la definizione delle attività, vedere l'articolo sulle pipeline. Questa sezione presenta un elenco delle proprietà supportate dai tipi di origine e di sink Dynamics.

Dynamics come tipo di origine

Per copiare dati da Dynamics, la sezione source dell'attività Copy supporta le proprietà seguenti:

Proprietà Descrizione Richiesto
type La proprietà "type" dell'origine dell'attività Copy deve essere impostata su "DynamicsSource", "DynamicsCrmSource" o "CommonDataServiceForAppsSource".
query FetchXML è un linguaggio di query proprietario usato in Dynamics online e locale. Vedi l'esempio seguente. Per altre informazioni, vedere Creare query con FetchXML. No se è specificato entityName nel set di dati

Nota

La colonna della chiave primaria verrà sempre copiata anche se la proiezione della colonna configurata nella query FetchXML non la contiene.

Importante

  • Quando si copiano dati da Dynamics, il mapping esplicito delle colonne da Dynamics al sink è facoltativo. È consigliabile, tuttavia, eseguire il mapping per garantire un risultato di copia deterministico.
  • Quando il servizio importa uno schema nell'interfaccia utente di creazione, inferisce lo schema. A tale scopo, campiona le prime righe dal risultato della query Dynamics per inizializzare l'elenco di colonne di origine. In tal caso, le colonne senza valori nelle prime righe vengono omesse. Lo stesso comportamento si applica anche all'anteprima dei dati e alle esecuzioni di copie in assenza di un mapping esplicito. È possibile rivedere e aggiungere altre colonne nel mapping che vengono rispettate durante il runtime di copia.

Esempio

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

Esempio di query 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 come tipo di sink

Per copiare dati da Dynamics, la sezione sink dell'attività Copy supporta le proprietà seguenti:

Proprietà Descrizione Richiesto
type La proprietà "type" del sink dell'attività Copy deve essere impostata su "DynamicsSink", "DynamicsCrmSink" o "CommonDataServiceForAppsSink". Sì.
writeBehavior Comportamento dell'azione di scrittura dell'operazione. Il valore deve essere "Upsert".
alternateKeyName Il nome della chiave alternativa definito nell'entità per eseguire l'operazione di upsert. No.
writeBatchSize Conteggio delle righe di dati scritti da Dynamics in ogni batch. No. Il valore predefinito è 10.
ignoreNullValues Indica se ignorare valori null dai dati di input diversi dai campi chiave durante un'operazione di scrittura.

I valori validi sono TRUE e FALSE:
  • TRUE: lasciare invariati i dati nell'oggetto di destinazione quando si esegue un'operazione upsert o update. Inserire un valore predefinito definito quando si esegue un'operazione di inserimento.
  • FALSE: aggiornare i dati nell'oggetto di destinazione su un valore null quando si esegue un'operazione upsert o update. Inserire un valore null quando si esegue un'operazione insert.
No. Il valore predefinito è FALSE.
maxConcurrentConnections Limite massimo di connessioni simultanee stabilite all'archivio dati durante l'esecuzione dell'attività. Specificare un valore solo quando si desidera limitare le connessioni simultanee. No

Nota

Il valore predefinito per il sink writeBatchSize e l'attività Copy parallelCopies per il sink Dynamics è 10 in entrambi i casi. Pertanto, a Dynamics vengono inviati simultaneamente 100 record.

Per Dynamics 365 online, è previsto un limite di 52 chiamate batch simultanee per organizzazione. Se tale limite viene superato, viene generata un'eccezione "Server occupato" prima che venga eseguita la prima richiesta. Mantenere writeBatchSize a 10 o a un valore inferiore per evitare tale limitazione delle chiamate simultanee.

La combinazione ottimale di writeBatchSize e parallelCopies dipende dallo schema dell'entità. Gli elementi dello schema includono il numero di colonne, le dimensioni delle righe e il numero di plug-in, flussi di lavoro o attività del flusso di lavoro associate a tali chiamate. L'impostazione predefinita di writeBatchSize (10) × parallelCopies (10) è quella consigliata in base al servizio Dynamics. Questo valore funziona per la maggior parte delle entità Dynamics, anche se potrebbe non offrire prestazioni ottimali. È possibile ottimizzare le prestazioni regolando la combinazione nelle impostazioni di attività di copia.

Esempio

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

Recupero di dati dalle visualizzazioni

Per recuperare dati da visualizzazioni Dynamics, è necessario ottenere la query salvata della visualizzazione e usare la query per ottenere i dati.

Esistono due entità che archiviano diversi tipi di visualizzazione: "query salvata" archivia la visualizzazione di sistema e "query utente" archivia la visualizzazione utente. Per ottenere le informazioni delle visualizzazioni, fare riferimento alla query FetchXML seguente e sostituire "TARGETENTITY" con savedquery o userquery. Ogni tipo di entità ha più attributi disponibili che è possibile aggiungere alla query in base alle esigenze. Altre informazioni sull'entità savedquery e sull'entità userquery.

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

È anche possibile aggiungere filtri per filtrare le visualizzazioni. Ad esempio, aggiungere il filtro seguente per ottenere una visualizzazione denominata "My Active Accounts" nell'entità account.

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

Mapping dei tipi di dati per Dynamics

Quando si copiano dati da Dynamics, la tabella seguente mostra i mapping da tipi di dati Dynamics a tipi di dati provvisori all'interno del servizio. Per informazioni sul modo in cui l'attività Copy esegue il mapping a uno schema di origine e il tipo di dati esegue il mapping a un sink, vedere Mapping dello schema e del tipo di dati.

Configurare il tipo di dati provvisorio corrispondente in una struttura del set di dati basata sul tipo di dati Dynamics di origine usando la tabella di mapping seguente:

Tipo di dati di Dynamics Tipo di dati provvisorio del servizio Supportato come origine Supportato come sink
AttributeTypeCode.BigInt Lungo
AttributeTypeCode.Boolean Booleano
AttributeType.Customer GUID ✓ (vedere le indicazioni)
AttributeType.DateTime Datetime
AttributeType.Decimal Decimale
AttributeType.Double Double
AttributeType.EntityName String
AttributeType.Integer Int32
AttributeType.Lookup GUID ✓ (vedere le indicazioni)
AttributeType.ManagedProperty Booleano
AttributeType.Memo String
AttributeType.Money Decimale
AttributeType.Owner GUID ✓ (vedere le indicazioni)
AttributeType.Picklist Int32
AttributeType.Uniqueidentifier GUID
AttributeType.String String
AttributeType.State Int32
AttributeType.Status Int32

Nota

Non sono supportati i tipi di dati Dynamics AttributeType.CalendarRules, AttributeType.MultiSelectPicklist e AttributeType.PartyList.

Scrittura di dati in un campo di ricerca

Per scrivere dati in un campo di ricerca con più destinazioni, ad esempio Customer e Owner, seguire le indicazioni e l'esempio riportati di seguito:

  1. Impostare l'origine in modo che contenga sia il valore del campo che il nome dell'entità di destinazione corrispondente.

    • Se tutti i record eseguono il mapping alla stessa entità di destinazione, verificare una delle condizioni seguenti:
      • I dati di origine hanno una colonna che archivia il nome dell'entità di destinazione.
      • È stata aggiunta una colonna aggiuntiva nell'origine dell'attività Copy per definire l'entità di destinazione.
    • Se record diversi eseguono il mapping a entità di destinazione diverse, accertarsi che i dati di origine includano una colonna che archivia il nome dell'entità di destinazione corrispondente.
  2. Eseguire il mapping sia del valore che delle colonne di riferimento entità dall'origine al sink. È necessario eseguire il mapping della colonna di riferimento entità a una colonna virtuale con il modello di denominazione speciale {lookup_field_name}@EntityReference. La colonna non esiste effettivamente in Dynamics. Viene usata per indicare che questa colonna è la colonna di metadati del campo di ricerca multitarget specificato.

Si supponga, ad esempio, che l'origine includa queste due colonne:

  • Colonna CustomerField di tipo GUID, che è il valore della chiave primaria dell'entità di destinazione in Dynamics.
  • Colonna Target di tipo String, che è il nome logico dell'entità di destinazione.

Si supponga, inoltre, di voler copiare tali dati nel campo entità Dynamics sink CustomerField di tipo Customer.

Nel mapping delle colonne dell'attività Copy, eseguire il mapping delle due colonne nel modo seguente:

  • CustomerField a CustomerField. Questo mapping è il mapping dei campi normale.
  • Target a CustomerField@EntityReference. La colonna sink è una colonna virtuale che rappresenta il riferimento entità. Immettere tali nomi di campo in un mapping, perché non verranno visualizzati importando schemi.

Mapping delle colonne dei campi di ricerca di Dynamics

Se tutti i record di origine eseguono il mapping alla stessa entità di destinazione e i dati di origine non contengono il nome dell'entità di destinazione, una scorciatoia è possibile: nell'origine dell'attività Copy aggiungere una colonna aggiuntiva. Assegnare il nome alla nuova colonna usando il modello {lookup_field_name}@EntityReference, impostare il valore sul nome dell'entità di destinazione, quindi procedere con il mapping delle colonne come di consueto. Se i nomi delle colonne di origine e sink sono identici, è anche possibile ignorare il mapping esplicito delle colonne perché l'attività Copy per impostazione predefinita esegue il mapping delle colonne in base al nome.

Campo di ricerca Dynamics che aggiunge una colonna di riferimento entità

Scrittura di dati in un campo di ricerca tramite chiavi alternative

Per scrivere dati in un campo di ricerca usando colonne chiave alternative, seguire le indicazioni e l'esempio riportati di seguito:

  1. Accertarsi che l'origine contenga tutte le colonne chiave di ricerca.

  2. Le colonne chiave alternative devono essere mappate alla colonna con il modello di denominazione speciale {lookup_field_name}@{alternate_key_column_name}. La colonna non esiste in Dynamics. Viene usata per indicare che questa colonna viene usata per cercare il record nell'entità di destinazione.

  3. Passare alla scheda Mapping nella trasformazione sink dei flussi di dati per mapping. Selezionare la chiave alternativa come colonne di output nel campo di ricerca. Il valore dopo indica le colonne chiave di questa chiave alternativa.

    Screenshot che mostra la selezione di colonne chiave alternative.

  4. Dopo la selezione, le colonne chiave alternative verranno visualizzate automaticamente in basso.

    Screenshot che mostra il mapping delle colonne ai campi di ricerca tramite il passaggio 1 delle chiavi alternative.

  5. Eseguire il mapping delle colonne di input a sinistra con le colonne di output.

    Screenshot che mostra il mapping delle colonne ai campi di ricerca tramite il passaggio 2 delle chiavi alternative.

Nota

Attualmente ciò è supportato solo quando si usa la modalità inline nella trasformazione sink di flussi di dati per mapping.

Proprietà del flusso di dati per mapping

Quando vengono trasformati dati in un flusso di dati per mapping, è possibile leggere da e scrivere in tabelle in Dynamics. Per altre informazioni, vedere la trasformazione origine e la trasformazione sink nei flussi di dati per mapping. È possibile scegliere di usare un set di dati Dynamics o un set di dati inline come tipo di origine e sink.

Trasformazione origine

La tabella seguente elenca le proprietà supportate da Dynamics. È possibile modificare queste proprietà nella scheda Opzioni origine.

Nome Descrizione Richiesto Valori consentiti Proprietà script del flusso di dati
Nome entità Il nome logico dell'entità da recuperare. Sì quando si usa il set di dati inline - (solo set di dati inline)
entità
Query FetchXML è un linguaggio di query proprietario usato in Dynamics online e locale. Vedi l'esempio seguente. Per altre informazioni, vedere Creare query con FetchXML. No String query

Nota

Se si seleziona Query come tipo di input, non è possibile recuperare il tipo di colonna dalle tabelle. Verrà considerato come stringa per impostazione predefinita.

Esempio di script di origine Dynamics

Quando si usa il set di dati Dynamics come tipo di origine, lo script del flusso di dati associato è:

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 si usa un set di dati inline, lo script del flusso di dati associato è:

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

Trasformazione sink

La tabella seguente elenca le proprietà supportate dal sink Dynamics. È possibile modificare queste proprietà nella scheda Opzioni sink.

Nome Descrizione Richiesto Valori consentiti Proprietà script del flusso di dati
Nome chiave alternativa Il nome chiave alternativa definito nell'entità per eseguire un'operazione di update, upsert o delete. No - alternateKeyName
Metodo di aggiornamento Specificare le operazioni consentite nella destinazione del database. Per impostazione predefinita, sono consentiti solo gli inserimenti.
Per operazioni di aggiornamento, upsert o eliminazione di righe, è necessaria una trasformazione Altera riga perché i tag siano applicati alle righe per queste azioni.
true oppure false insertable
aggiornabile
upsertable
deletable
Nome entità Il nome logico dell'entità da scrivere. Sì quando si usa il set di dati inline - (solo set di dati inline)
entità

Esempio di script di sink Dynamics

Quando si usa il set di dati Dynamics come tipo di sink, lo script del flusso di dati associato è:

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

Se si usa un set di dati inline, lo script del flusso di dati associato è:

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

Proprietà dell'attività Lookup

Per informazioni dettagliate sulle proprietà, vedere Attività di ricerca.

Per un elenco di archivi dati supportati dall'attività Copy come origini e sink, vedere Archivi dati supportati.