Copiare e trasformare i 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 completa per le aziende. Microsoft Fabric copre tutti gli elementi, dallo spostamento dei dati all'analisi scientifica dei dati, all'analisi in tempo reale, alla business intelligence e alla creazione di report. Scopri come avviare gratuitamente una nuova versione di valutazione .

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

Funzionalità supportate

Questo connettore è supportato per le attività seguenti:

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

(1) Runtime di integrazione di Azure (2) Runtime di integrazione self-hosted

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

Nota

A partire da novembre 2020, Common Data Service è stato rinominato in Microsoft Dataverse. Questo articolo viene aggiornato per riflettere la terminologia più recente.

Questo connettore Dynamics supporta le versioni da 7 a 9 di Dynamics per online e 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.

Vedere la tabella seguente di tipi e configurazioni 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 e l'entità servizio Microsoft Entra o l'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 l'autenticazione IFD e IFD

Nota

Con la deprecazione del servizio di individuazione a livello di area, il servizio è stato aggiornato per sfruttare il servizio di individuazione globale durante l'uso dell'autenticazione di Office 365.

Importante

Se il tenant e l'utente sono configurati in Microsoft Entra ID per l'accesso condizionale e/o Multi-Factor Authentication, 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, ad esempio Finance, Operations e Talent.

Suggerimento

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

Questo connettore Dynamics si basa sugli 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 di tutto l'utente dell'applicazione (entità servizio) in Microsoft Entra ID. Per informazioni su come eseguire questa operazione , vedere 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. Altre informazioni su come configurare un utente dell'applicazione per l'autenticazione con Dataverse sono disponibili qui.

Introduzione

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 di 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 of the Dynamics 365 connector.

    Screenshot of the Dataverse connector.

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

    Screenshot of linked service configuration for Dynamics 365.

Dettagli di configurazione di Connessione or

Le sezioni seguenti forniscono informazioni dettagliate sulle proprietà 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
Tipo 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 ID client dell'applicazione Microsoft Entra. Sì quando l'autenticazione è "AADServicePrincipal"
servicePrincipalCredentialType Tipo di credenziale da usare per l'autenticazione dell'entità servizio. I valori validi 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 Credenziali dell'entità servizio.

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 essere un riferimento a un certificato in Azure Key Vault e assicurarsi che il tipo di contenuto del certificato sia PKCS #12.
Sì quando l'autenticazione è "AADServicePrincipal"
username Nome utente da connettere a Dynamics. Sì quando l'autenticazione è "Office365"
password Password per l'account utente specificato come nome utente. Contrassegnare questo campo con "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 alla data factory e creare le 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 il runtime di integrazione di Azure predefinito. No

Nota

Il connettore Dynamics usava in precedenza la proprietà facoltativa organizationName per identificare l'istanza online di Dynamics CRM o Dynamics 365. Sebbene questa proprietà funzioni ancora, è consigliabile specificare la nuova proprietà serviceUri per ottenere prestazioni migliori per l'individuazione delle istanze.

Esempio: Dynamics online con l'entità servizio e l'autenticazione della chiave di 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"  
        }  
    }  
}  

Esempio: Dynamics online con l'entità servizio Microsoft Entra e l'autenticazione del 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 con 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 con l'autenticazione dell'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

Le proprietà aggiuntive che confrontano con Dynamics online sono hostName e port.

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

Esempio: Dynamics locale con IFD usando l'autenticazione IFD

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

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 e in Dynamics, sono supportate le proprietà seguenti:

Proprietà Descrizione Richiesto
Tipo 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à viene specificata come "query" e sì per 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 origine dell'attività di copia supporta le proprietà seguenti:

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

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. È tuttavia consigliabile eseguire il mapping per garantire un risultato di copia deterministico.
  • Quando il servizio importa uno schema nell'interfaccia utente di creazione, deduce lo schema. A tale scopo, campionare 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 copia se non è presente alcun mapping esplicito. È possibile esaminare 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 in Dynamics, la sezione sink dell'attività di copia supporta le proprietà seguenti:

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

I valori validi sono TRUE e FAL edizione Standard:
  • TRUE: lasciare invariati i dati nell'oggetto di destinazione quando si esegue un'operazione di upsert o aggiornamento. Inserire un valore predefinito definito quando si esegue un'operazione di inserimento.
  • FAL edizione Standard: aggiornare i dati nell'oggetto di destinazione a un valore Null quando si esegue un'operazione di upsert o aggiornamento. Inserire un valore Null quando si esegue un'operazione di inserimento.
Nr. Il valore predefinito è FAL edizione Standard.
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 sia per il sink writeBatchSize che per l'attività di copia parallelCopies per il sink di Dynamics è 10. Pertanto, 100 record vengono inviati contemporaneamente per impostazione predefinita a Dynamics.

Per Dynamics 365 online, è previsto un limite di 52 chiamate batch simultanee per organizzazione. Se tale limite viene superato, viene generata un'eccezione "Server Busy" prima dell'esecuzione della prima richiesta. Mantenere writeBatchSize a 10 o meno 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) è la raccomandazione 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 i dati dalle viste Dynamics, è necessario ottenere la query salvata della vista e usare la query per ottenere i dati.

Esistono due entità che archiviano diversi tipi di visualizzazione: "saved query" archivia la visualizzazione di sistema e "user query" archivia la visualizzazione utente. Per ottenere le informazioni delle viste, 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 "Account attivi" 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 dai tipi di dati Dynamics ai tipi di dati provvisori all'interno del servizio. Per informazioni sul mapping di un'attività di copia a uno schema di origine e un tipo di dati viene mappato a un sink, vedere Mapping di schemi e tipi 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 provvisori del servizio Supportato come origine Supportato come sink
AttributeTypeCode.BigInt Lungo
AttributeTypeCode.Boolean Boolean
AttributeType.Customer GUID ✓ (vedere indicazioni)
AttributeType.DateTime Datetime
AttributeType.Decimal Decimale
AttributeType.Double Double
AttributeType.EntityName Stringa
AttributeType.Integer Int32
AttributeType.Lookup GUID ✓ (vedere indicazioni)
AttributeType.ManagedProperty Boolean
AttributeType.Memo Stringa
AttributeType.Money Decimale
AttributeType.Owner GUID ✓ (vedere indicazioni)
AttributeType.Picklist Int32
AttributeType.Uniqueidentifier GUID
AttributeType.String Stringa
AttributeType.State Int32
AttributeType.Status Int32

Nota

I tipi di dati Di Dynamics AttributeType.CalendarRules, AttributeType.MultiSelectPicklist e AttributeType.PartyList non sono supportati.

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 queste indicazioni ed esempio:

  1. Impostare l'origine contenente 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à di copia per definire l'entità di destinazione.
    • Se record diversi eseguono il mapping a entità di destinazione diverse, assicurarsi che i dati di origine dispongano di una colonna che archivia il nome dell'entità di destinazione corrispondente.
  2. Eseguire il mapping sia del valore che delle colonne di riferimento di entità dall'origine al sink. È necessario eseguire il mapping della colonna di riferimento all'entità a una colonna virtuale con il modello {lookup_field_name}@EntityReferencedi denominazione speciale . La colonna non esiste effettivamente in Dynamics. Viene usato per indicare che questa colonna è la colonna di metadati del campo di ricerca multitarget specificato.

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

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

Si supponga anche di voler copiare tali dati nel campo dell'entità Dynamics sink CustomerField di tipo Customer.

Nel mapping delle colonne dell'attività di copia eseguire il mapping delle due colonne nel modo seguente:

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

Dynamics lookup-field column mapping

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, ecco un collegamento: nell'origine dell'attività di copia aggiungere una colonna aggiuntiva. Assegnare un 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à di copia per impostazione predefinita esegue il mapping delle colonne in base al nome.

Dynamics lookup-field adding an entity-reference column

Scrittura di dati in un campo di ricerca tramite chiavi alternative

Per scrivere dati in un campo di ricerca usando colonne chiave alternative, seguire queste indicazioni ed esempio:

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

  2. Le colonne chiave alternative devono essere mappate alla colonna con il modello {lookup_field_name}@{alternate_key_column_name}di denominazione speciale . La colonna non esiste in Dynamics. Viene usato 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 di mapping. Selezionare la chiave alternativa come colonne di output nel campo Ricerca. Il valore dopo indica le colonne chiave di questa chiave alternativa.

    Screenshot shows selecting alternate key columns.

  4. Dopo aver selezionato, le colonne chiave alternative verranno visualizzate automaticamente in basso.

    Screenshot shows mapping columns to lookup fields via alternate keys step 1.

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

    Screenshot shows mapping columns to lookup fields via alternate keys step 2.

Nota

Attualmente questa opzione è supportata solo quando si usa la modalità inline nella trasformazione sink dei flussi di dati di mapping.

Proprietà del flusso di dati per mapping

Quando si trasformano i dati nel flusso di dati di mapping, è possibile leggere e scrivere nelle 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.

Name Descrizione Richiesto Valori consentiti Proprietà script flusso di dati
Nome entità Il nome logico dell'entità da recuperare. Sì quando si usa il set di dati inline - (solo per set di dati inline)
entità
Query FetchXML è un linguaggio di query proprietario usato in Dynamics online e in locale. Vedi l'esempio seguente. Per altre informazioni, vedere Creare query con FetchXML. No Stringa 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 di Dynamics. È possibile modificare queste proprietà nella scheda Opzioni sink.

Name Descrizione Richiesto Valori consentiti Proprietà script flusso di dati
Nome chiave alternativo Nome della chiave alternativo definito nell'entità per eseguire un aggiornamento, upsert o eliminazione. No - alternateKeyName
Metodo di aggiornamento Specificare le operazioni consentite nella destinazione del database. Per impostazione predefinita, sono consentiti solo gli inserimenti.
Per aggiornare, upsert o eliminare righe, è necessaria una trasformazione Alter row per contrassegnare le righe per tali azioni.
true o false Inseribile
Aggiornabile
aggiornabile
deletable
Nome entità Nome logico dell'entità da scrivere. Sì quando si usa il set di dati inline - (solo per set di dati inline)
entità

Esempio di script sink dynamics

Quando si usa dynamics set di dati 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, l'attività di copia viene archiviata come origini e sink, vedere Archivi dati supportati.