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:
- Strumento Copia dati
- Il portale di Azure
- .NET SDK
- The Python SDK
- Azure PowerShell
- The REST API
- Modello di Azure Resource Manager
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.
Passare alla scheda Gestisci nell'area di lavoro di Azure Data Factory o Synapse e selezionare Servizi collegati, quindi fare clic su Nuovo:
Cercare Dynamics o Dataverse e selezionare il connettore Dynamics 365 (Microsoft Dataverse) o Dynamics CRM.
Configurare i dettagli del servizio, testare la connessione e creare il nuovo servizio collegato.
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". | Sì |
deploymentType | Il tipo di distribuzione dell'istanza di Dynamics. Il valore deve essere "Online" per Dynamics online. | Sì |
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". | Sì |
authenticationType | Il tipo di autenticazione per la connessione a un server Dynamics. I valori validi sono "AADServicePrincipal", "Office365" e "ManagedIdentity". | Sì |
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". | Sì |
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". | Sì |
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". | Sì |
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:
|
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:
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.
- Se tutti i record eseguono il mapping alla stessa entità di destinazione, verificare una delle condizioni seguenti:
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}@EntityReference
di 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.
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.
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:
Verificare che l'origine contenga tutte le colonne chiave di ricerca.
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.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.
Dopo aver selezionato, le colonne chiave alternative verranno visualizzate automaticamente in basso.
Eseguire il mapping delle colonne di input a sinistra con le colonne di output.
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. |
Sì | 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.
Contenuto correlato
Per un elenco di archivi dati supportati, l'attività di copia viene archiviata come origini e sink, vedere Archivi dati supportati.