Kopiowanie i przekształcanie danych w usłudze Dynamics 365 (Microsoft Dataverse) lub Dynamics CRM przy użyciu usługi Azure Data Factory lub Azure Synapse Analytics

DOTYCZY: Azure Data Factory Azure Synapse Analytics

Napiwek

Wypróbuj usługę Data Factory w usłudze Microsoft Fabric — rozwiązanie analityczne typu all-in-one dla przedsiębiorstw. Usługa Microsoft Fabric obejmuje wszystko, od przenoszenia danych do nauki o danych, analizy w czasie rzeczywistym, analizy biznesowej i raportowania. Dowiedz się, jak bezpłatnie rozpocząć nową wersję próbną !

W tym artykule opisano sposób używania działania kopiowania w potokach usługi Azure Data Factory lub Synapse do kopiowania danych z i do usługi Dynamics 365 (Microsoft Dataverse) lub Dynamics CRM oraz używania przepływu danych do przekształcania danych w usłudze Dynamics 365 (Microsoft Dataverse) lub Dynamics CRM. Aby dowiedzieć się więcej, przeczytaj artykuły z wprowadzeniem do usługi Azure Data Factory i Azure Synapse Analytics .

Obsługiwane możliwości

Ten łącznik jest obsługiwany w następujących działaniach:

Obsługiwane możliwości IR
działanie Kopiuj (źródło/ujście) ① ②
Przepływ danych mapowania (źródło/ujście)
Działanie Lookup ① ②

(1) Środowisko Azure Integration Runtime (2) Self-hosted Integration Runtime

Aby uzyskać listę magazynów danych obsługiwanych przez działanie kopiowania jako źródła i ujścia, zobacz tabelę Obsługiwane magazyny danych.

Uwaga

Od 2020 listopada Common Data Service zmieniło nazwę na Microsoft Dataverse. Ten artykuł został zaktualizowany w celu odzwierciedlenia najnowszej terminologii.

Ten łącznik usługi Dynamics obsługuje usługę Dynamics w wersji od 7 do 9 zarówno w trybie online, jak i lokalnie. W szczególności:

  • Wersja 7 mapuje na dynamics CRM 2015.
  • Wersja 8 jest mapowana na dynamics CRM 2016 i wczesną wersję usługi Dynamics 365.
  • Wersja 9 jest mapowania na nowszą wersję usługi Dynamics 365.

Zapoznaj się z poniższą tabelą obsługiwanych typów i konfiguracji uwierzytelniania dla wersji i produktów usługi Dynamics.

Wersje usługi Dynamics Typy uwierzytelniania Przykłady połączonej usługi
Dataverse

Dynamics 365 Online

Dynamics CRM Online
Jednostka usługi Microsoft Entra

Office 365

Tożsamość zarządzana przypisana przez użytkownika
Usługa Dynamics Online i jednostka usługi Microsoft Entra lub uwierzytelnianie usługi Office 365
Lokalna usługa Dynamics 365 z wdrożeniem dostępnym z Internetu (IFD)

Dynamics CRM 2016 lokalnie z ifD

Lokalny program Dynamics CRM 2015 z ifD
IFD Lokalna usługa Dynamics z uwierzytelnianiem IFD i IFD

Uwaga

Po wycofaniu regionalnej usługi odnajdywania usługa została uaktualniona do korzystania z globalnej usługi odnajdywania podczas korzystania z uwierzytelniania usługi Office 365.

Ważne

Jeśli dzierżawa i użytkownik jest skonfigurowany w usłudze Microsoft Entra ID na potrzeby dostępu warunkowego i/lub uwierzytelniania wieloskładnikowego jest wymagane, nie będzie można użyć typu uwierzytelniania usługi Office 365. W takich sytuacjach należy użyć uwierzytelniania jednostki usługi Entra firmy Microsoft.

W szczególności w przypadku usługi Dynamics 365 obsługiwane są następujące typy aplikacji:

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

Ten łącznik nie obsługuje innych typów aplikacji, takich jak Finanse, Operacje i Talent.

Napiwek

Aby skopiować dane z usługi Dynamics 365 Finance and Operations, możesz użyć łącznika Dynamics AX.

Ten łącznik usługi Dynamics jest oparty na narzędziach dynamics XRM.

Wymagania wstępne

Aby użyć tego łącznika z uwierzytelnianiem jednostki usługi Microsoft Entra, należy skonfigurować uwierzytelnianie między serwerami (S2S) w usłudze Dataverse lub Dynamics. Najpierw zarejestruj użytkownika aplikacji (jednostkę usługi) w identyfikatorze Entra firmy Microsoft. Możesz dowiedzieć się, jak to zrobić tutaj. Podczas rejestracji aplikacji należy utworzyć tego użytkownika w usłudze Dataverse lub Dynamics i udzielić uprawnień. Te uprawnienia można udzielić bezpośrednio lub pośrednio przez dodanie użytkownika aplikacji do zespołu, któremu udzielono uprawnień w usłudze Dataverse lub Dynamics. Więcej informacji na temat konfigurowania użytkownika aplikacji do uwierzytelniania w usłudze Dataverse można znaleźć tutaj.

Rozpocznij

Aby wykonać działanie Kopiuj za pomocą potoku, możesz użyć jednego z następujących narzędzi lub zestawów SDK:

Tworzenie połączonej usługi z usługą Dynamics 365 (Microsoft Dataverse) lub Dynamics CRM przy użyciu interfejsu użytkownika

Wykonaj poniższe kroki, aby utworzyć połączoną usługę z usługą Dynamics 365 w interfejsie użytkownika witryny Azure Portal.

  1. Przejdź do karty Zarządzanie w obszarze roboczym usługi Azure Data Factory lub Synapse i wybierz pozycję Połączone usługi, a następnie kliknij pozycję Nowy:

  2. Wyszukaj usługę Dynamics lub Dataverse i wybierz łącznik Dynamics 365 (Microsoft Dataverse) lub Dynamics CRM.

    Screenshot of the Dynamics 365 connector.

    Screenshot of the Dataverse connector.

  3. Skonfiguruj szczegóły usługi, przetestuj połączenie i utwórz nową połączoną usługę.

    Screenshot of linked service configuration for Dynamics 365.

szczegóły konfiguracji Połączenie or

Poniższe sekcje zawierają szczegółowe informacje o właściwościach używanych do definiowania jednostek specyficznych dla usługi Dynamics.

Właściwości połączonej usługi

Następujące właściwości są obsługiwane w przypadku połączonej usługi Dynamics.

Dynamics 365 i Dynamics CRM Online

Właściwości Opis Wymagania
type Właściwość type musi być ustawiona na "Dynamics", "DynamicsCrm" lub "CommonDataServiceForApps". Tak
Deploymenttype Typ wdrożenia wystąpienia usługi Dynamics. Wartość musi być "Online" dla usługi Dynamics Online. Tak
Serviceuri Adres URL usługi wystąpienia usługi Dynamics, taki sam, do którego uzyskujesz dostęp z przeglądarki. Przykładem jest "https://< organization-name.crm>[x].dynamics.com". Tak
authenticationType Typ uwierzytelniania do nawiązania połączenia z serwerem Dynamics. Prawidłowe wartości to "AADServicePrincipal", "Office365" i "ManagedIdentity". Tak
servicePrincipalId Identyfikator klienta aplikacji Microsoft Entra. Tak, gdy uwierzytelnianie ma wartość "AADServicePrincipal"
servicePrincipalCredentialType Typ poświadczeń do użycia na potrzeby uwierzytelniania jednostki usługi. Prawidłowe wartości to "ServicePrincipalKey" i "ServicePrincipalCert".

Uwaga: zaleca się używanie klucza ServicePrincipalKey. Istnieje znane ograniczenie typu poświadczeń ServicePrincipalCert, w którym usługa może napotkać przejściowy problem polegający na tym, że nie można pobrać wpisu tajnego z magazynu kluczy.
Tak, gdy uwierzytelnianie ma wartość "AADServicePrincipal"
servicePrincipalCredential Poświadczenie jednostki usługi.

W przypadku użycia wartości "ServicePrincipalKey" jako typu servicePrincipalCredential poświadczeń może być ciąg, który usługa szyfruje po wdrożeniu połączonej usługi. Może to być odwołanie do wpisu tajnego w usłudze Azure Key Vault.

W przypadku użycia polecenia "ServicePrincipalCert" jako poświadczenia musi być odwołaniem do certyfikatu w usłudze Azure Key Vault i upewnij się, servicePrincipalCredential że typ zawartości certyfikatu to PKCS #12.
Tak, gdy uwierzytelnianie ma wartość "AADServicePrincipal"
nazwa użytkownika Nazwa użytkownika do nawiązania połączenia z usługą Dynamics. Tak, gdy uwierzytelnianie to "Office365"
hasło Hasło dla konta użytkownika określonego jako nazwa użytkownika. Oznacz to pole ciągiem "SecureString" w celu bezpiecznego przechowywania go lub odwołuj się do wpisu tajnego przechowywanego w usłudze Azure Key Vault. Tak, gdy uwierzytelnianie to "Office365"
poświadczenia Określ tożsamość zarządzaną przypisaną przez użytkownika jako obiekt poświadczeń.

Utwórz jedną lub wiele tożsamości zarządzanych przypisanych przez użytkownika, przypisz je do fabryki danych i utwórz poświadczenia dla każdej tożsamości zarządzanej przypisanej przez użytkownika.
Tak, gdy uwierzytelnianie ma wartość "ManagedIdentity"
connectVia Środowisko Integration Runtime do nawiązania połączenia z magazynem danych. Jeśli nie określono żadnej wartości, właściwość używa domyślnego środowiska Azure Integration Runtime. Nie.

Uwaga

Łącznik usługi Dynamics wcześniej używał opcjonalnej właściwości organizationName do identyfikowania wystąpienia usługi Dynamics CRM lub Dynamics 365 Online. Mimo że ta właściwość nadal działa, zalecamy określenie nowej właściwości serviceUri , aby uzyskać lepszą wydajność na potrzeby odnajdywania wystąpień.

Przykład: Dynamics Online przy użyciu jednostki usługi Microsoft Entra i uwierzytelniania klucza

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

Przykład: Dynamics Online przy użyciu jednostki usługi Microsoft Entra i uwierzytelniania certyfikatu

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

Przykład: Dynamics Online przy użyciu uwierzytelniania usługi 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"
        }
    }
}

Przykład: Usługa Dynamics Online korzystająca z uwierzytelniania tożsamości zarządzanej przypisanej przez użytkownika

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

Lokalne usługi Dynamics 365 i Dynamics CRM z usługą IFD

Dodatkowe właściwości, które porównują się z usługą Dynamics Online, to hostName i port.

Właściwości Opis Wymagania
type Właściwość type musi być ustawiona na "Dynamics", "DynamicsCrm" lub "CommonDataServiceForApps". Tak.
Deploymenttype Typ wdrożenia wystąpienia usługi Dynamics. Wartość musi mieć wartość "OnPremisesWithIfd" dla lokalnej usługi Dynamics z ifD. Tak.
Nazwa hosta Nazwa hosta lokalnego serwera Dynamics. Tak.
port Port lokalnego serwera Dynamics. L.p. Wartość domyślna to 443.
organizationName Nazwa organizacji wystąpienia usługi Dynamics. Tak.
authenticationType Typ uwierzytelniania do nawiązania połączenia z serwerem Dynamics. Określ "Ifd" dla lokalnej usługi Dynamics z ifd. Tak.
nazwa użytkownika Nazwa użytkownika do nawiązania połączenia z usługą Dynamics. Tak.
hasło Hasło dla konta użytkownika określonego dla nazwy użytkownika. Możesz oznaczyć to pole ciągiem "SecureString", aby je bezpiecznie przechowywać. Możesz też przechowywać hasło w usłudze Key Vault i zezwolić na ściąganie działania kopiowania w momencie kopiowania danych. Dowiedz się więcej na temat przechowywania poświadczeń w usłudze Key Vault. Tak.
connectVia Środowisko Integration Runtime do nawiązania połączenia z magazynem danych. Jeśli nie określono żadnej wartości, właściwość używa domyślnego środowiska Azure Integration Runtime. Nie.

Przykład: dynamics on-premises with IFD using IFD authentication (Dynamics on-premises with IFD using IFD authentication)

{
    "name": "DynamicsLinkedService",
    "properties": {
        "type": "Dynamics",
        "description": "Dynamics on-premises with IFD linked service using IFD authentication",
        "typeProperties": {
            "deploymentType": "OnPremisesWithIFD",
            "hostName": "contosodynamicsserver.contoso.com",
            "port": 443,
            "organizationName": "admsDynamicsTest",
            "authenticationType": "Ifd",
            "username": "test@contoso.onmicrosoft.com",
            "password": {
                "type": "SecureString",
                "value": "<password>"
            }
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

Właściwości zestawu danych

Aby uzyskać pełną listę sekcji i właściwości dostępnych do definiowania zestawów danych, zobacz artykuł Zestawy danych. Ta sekcja zawiera listę właściwości obsługiwanych przez zestaw danych usługi Dynamics.

Aby skopiować dane z i do usługi Dynamics, obsługiwane są następujące właściwości:

Właściwości Opis Wymagania
type Właściwość typu zestawu danych musi być ustawiona na "DynamicsEntity", "DynamicsCrmEntity" lub "CommonDataServiceForAppsEntity". Tak
entityName Nazwa logiczna jednostki do pobrania. Nie dla źródła, jeśli źródło działania jest określone jako "zapytanie" i tak dla ujścia

Przykład

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

Właściwości działania kopiowania

Aby uzyskać pełną listę sekcji i właściwości dostępnych do definiowania działań, zobacz artykuł Pipelines (Potoki ). Ta sekcja zawiera listę właściwości obsługiwanych przez typy źródła i ujścia usługi Dynamics.

Dynamics jako typ źródła

Aby skopiować dane z usługi Dynamics, sekcja źródło działania kopiowania obsługuje następujące właściwości:

Właściwości Opis Wymagania
type Właściwość type źródła działania kopiowania musi być ustawiona na "DynamicsSource", "DynamicsCrmSource" lub "CommonDataServiceForAppsSource". Tak
zapytanie FetchXML to zastrzeżony język zapytań używany w usłudze Dynamics online i lokalnie. Zobacz poniższy przykład. Aby dowiedzieć się więcej, zobacz Kompilowanie zapytań za pomocą narzędzia FetchXML. Nie, jeśli entityName w zestawie danych określono

Uwaga

Kolumna PK będzie zawsze kopiowana nawet wtedy, gdy projekcja kolumn skonfigurowana w zapytaniu FetchXML nie zawiera tej kolumny.

Ważne

  • Podczas kopiowania danych z usługi Dynamics jawne mapowanie kolumn z usługi Dynamics do ujścia jest opcjonalne. Jednak zdecydowanie zalecamy mapowanie, aby zapewnić wynik deterministycznego kopiowania.
  • Gdy usługa importuje schemat w interfejsie użytkownika tworzenia, wywnioskuje schemat. Wykonuje to przez próbkowanie pierwszych wierszy z wyniku zapytania Dynamics w celu zainicjowania listy kolumn źródłowych. W takim przypadku kolumny bez wartości w pierwszych wierszach zostaną pominięte. To samo zachowanie dotyczy również podglądu danych i wykonywania kopiowania, jeśli nie ma jawnego mapowania. Możesz przejrzeć i dodać więcej kolumn do mapowania, które są honorowane podczas wykonywania kopiowania.

Przykład

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

Przykładowe zapytanie 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 jako typ ujścia

Aby skopiować dane do usługi Dynamics, sekcja ujścia działania kopiowania obsługuje następujące właściwości:

Właściwości Opis Wymagania
type Właściwość type ujścia działania kopiowania musi być ustawiona na "DynamicsSink", "DynamicsCrmSink" lub "CommonDataServiceForAppsSink". Tak.
writeBehavior Zachowanie zapisu operacji. Wartość musi mieć wartość "Upsert". Tak
alternateKeyName Alternatywna nazwa klucza zdefiniowana w jednostce w celu wykonania operacji upsert. L.p.
writeBatchSize Liczba wierszy zapisanych w usłudze Dynamics w każdej partii. L.p. Wartość domyślna to 10.
ignoreNullValues Czy ignorować wartości null z danych wejściowych innych niż pola klucza podczas operacji zapisu.

Prawidłowe wartości to TRUE i FALSE:
  • PRAWDA: Pozostaw dane w obiekcie docelowym bez zmian podczas wykonywania operacji upsert lub update. Wstaw zdefiniowaną wartość domyślną podczas wykonywania operacji wstawiania.
  • FAŁSZ: Zaktualizuj dane w obiekcie docelowym do wartości null podczas wykonywania operacji upsert lub update. Wstaw wartość null podczas wykonywania operacji wstawiania.
L.p. Wartość domyślna to FALSE.
maxConcurrent Połączenie ions Górny limit połączeń współbieżnych ustanowionych z magazynem danych podczas uruchamiania działania. Określ wartość tylko wtedy, gdy chcesz ograniczyć połączenia współbieżne. Nie.

Uwaga

Wartość domyślna zarówno dla ujścia writeBatchSize, jak i równoległych działań kopiowaniaKopies dla ujścia usługi Dynamics wynosi 10. W związku z tym 100 rekordów jest domyślnie przesyłanych współbieżnie do usługi Dynamics.

W przypadku usługi Dynamics 365 online istnieje limit 52 współbieżnych wywołań wsadowych na organizację. Jeśli ten limit zostanie przekroczony, zostanie zgłoszony wyjątek "Serwer zajęty", zanim zostanie uruchomione pierwsze żądanie. Zachowaj wartość writeBatchSize na 10 lub mniej, aby uniknąć takiego ograniczania współbieżnych wywołań.

Optymalna kombinacja funkcji writeBatchSize i parallelCopies zależy od schematu jednostki. Elementy schematu obejmują liczbę kolumn, rozmiar wiersza i liczbę wtyczek, przepływów pracy lub działań przepływu pracy podłączonych do tych wywołań. Domyślne ustawienie writeBatchSize (10) × parallelCopies (10) jest zaleceniem zgodnie z usługą Dynamics. Ta wartość działa w przypadku większości jednostek usługi Dynamics, chociaż może nie zapewnić najlepszej wydajności. Wydajność można dostosować, dostosowując kombinację w ustawieniach działania kopiowania.

Przykład

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

Pobieranie danych z widoków

Aby pobrać dane z widoków usługi Dynamics, musisz pobrać zapisane zapytanie widoku i użyć zapytania w celu pobrania danych.

Istnieją dwie jednostki, które przechowują różne typy widoków: "zapisane zapytanie" przechowuje widok systemu i "zapytanie użytkownika" przechowuje widok użytkownika. Aby uzyskać informacje o widokach, zapoznaj się z następującym zapytaniem FetchXML i zastąp ciąg "TARGETENTITY" ciągiem savedquery lub userquery. Każdy typ jednostki ma więcej dostępnych atrybutów, które można dodać do zapytania w zależności od potrzeb. Dowiedz się więcej o jednostce savedquery i jednostce userquery.

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

Możesz również dodać filtry, aby filtrować widoki. Dodaj na przykład następujący filtr, aby uzyskać widok o nazwie "Moje aktywne konta" w jednostce konta.

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

Mapowanie typów danych dla usługi Dynamics

Podczas kopiowania danych z usługi Dynamics w poniższej tabeli przedstawiono mapowania z typów danych usługi Dynamics na tymczasowe typy danych w usłudze. Aby dowiedzieć się, jak działanie kopiowania mapuje schemat źródłowy i typ danych na ujście, zobacz Mapowania schematu i typu danych.

Skonfiguruj odpowiedni typ danych tymczasowych w strukturze zestawu danych opartej na źródłowym typie danych usługi Dynamics przy użyciu następującej tabeli mapowania:

Typ danych usługi Dynamics Typ danych tymczasowych usługi Obsługiwane jako źródło Obsługiwane jako ujście
AttributeTypeCode.BigInt Długi
AttributeTypeCode.Boolean Wartość logiczna
AttributeType.Customer Identyfikator GUID √ (Zobacz wskazówki)
AttributeType.DateTime Datetime
AttributeType.Decimal Dziesiętne
AttributeType.Double Liczba rzeczywista
AttributeType.EntityName String
AttributeType.Integer Int32
AttributeType.Lookup Identyfikator GUID √ (Zobacz wskazówki)
AttributeType.ManagedProperty Wartość logiczna
AttributeType.Memo String
AttributeType.Money Dziesiętne
AttributeType.Owner Identyfikator GUID √ (Zobacz wskazówki)
AttributeType.Picklist Int32
AttributeType.Uniqueidentifier Identyfikator GUID
AttributeType.String String
AttributeType.State Int32
AttributeType.Status Int32

Uwaga

Typy danych usługi Dynamics AttributeType.CalendarRules, AttributeType.MultiSelectPicklist i AttributeType.PartyList nie są obsługiwane.

Zapisywanie danych w polu odnośnika

Aby zapisać dane w polu odnośnika z wieloma miejscami docelowymi, takimi jak Klient i Właściciel, postępuj zgodnie z poniższymi wskazówkami i przykładami:

  1. Utwórz źródło zawierające zarówno wartość pola, jak i odpowiednią nazwę jednostki docelowej.

    • Jeśli wszystkie rekordy są mapowania na tę samą jednostkę docelową, upewnij się, że jeden z następujących warunków:
      • Dane źródłowe mają kolumnę, która przechowuje nazwę jednostki docelowej.
      • Dodano dodatkową kolumnę w źródle działania kopiowania, aby zdefiniować jednostkę docelową.
    • Jeśli różne rekordy są mapowanie na różne jednostki docelowe, upewnij się, że dane źródłowe mają kolumnę przechowującą odpowiednią nazwę jednostki docelowej.
  2. Mapuj zarówno kolumny wartości, jak i odwołania do jednostek z źródła do ujścia. Kolumna odwołania do jednostki musi zostać zamapowana na kolumnę wirtualną ze specjalnym wzorcem {lookup_field_name}@EntityReferencenazewnictwa . Kolumna nie istnieje w usłudze Dynamics. Służy do wskazywania, że ta kolumna jest kolumną metadanych danego pola odnośnika wielotargetowego.

Załóżmy na przykład, że źródło ma następujące dwie kolumny:

  • Kolumna CustomerField typu GUID, która jest podstawową wartością klucza jednostki docelowej w usłudze Dynamics.
  • Kolumna docelowa typu Ciąg, która jest logiczną nazwą jednostki docelowej.

Załóżmy również, że chcesz skopiować takie dane do pola jednostki ujścia Dynamics CustomerField typu Klient.

W mapowaniu kolumn kopiowania zamapuj dwie kolumny w następujący sposób:

  • CustomerField do CustomerField. To mapowanie jest normalnym mapowaniem pól.
  • Element docelowy CustomerField@EntityReference. Kolumna ujścia to kolumna wirtualna reprezentująca odwołanie do jednostki. Wprowadź takie nazwy pól w mapowaniu, ponieważ nie będą wyświetlane przez zaimportowanie schematów.

Dynamics lookup-field column mapping

Jeśli wszystkie rekordy źródłowe są mapowania na tę samą jednostkę docelową, a dane źródłowe nie zawierają nazwy jednostki docelowej, oto skrót: w źródle działania kopiowania dodaj dodatkową kolumnę. Nazwij nową kolumnę przy użyciu wzorca {lookup_field_name}@EntityReference, ustaw wartość na nazwę jednostki docelowej, a następnie kontynuuj mapowanie kolumn w zwykły sposób. Jeśli nazwy kolumn źródłowych i ujścia są identyczne, możesz również pominąć jawne mapowanie kolumn, ponieważ działanie kopiowania domyślnie mapuje kolumny według nazwy.

Dynamics lookup-field adding an entity-reference column

Zapisywanie danych w polu odnośnika za pomocą kluczy alternatywnych

Aby zapisać dane w polu odnośnika przy użyciu kolumn kluczy alternatywnych, postępuj zgodnie z poniższymi wskazówkami i przykładami:

  1. Upewnij się, że źródło zawiera wszystkie kolumny klucza odnośnika.

  2. Kolumny klucza alternatywnego muszą być mapowane na kolumnę ze specjalnym wzorcem {lookup_field_name}@{alternate_key_column_name}nazewnictwa . Kolumna nie istnieje w usłudze Dynamics. Służy do wskazywania, że ta kolumna jest używana do wyszukiwania rekordu w jednostce docelowej.

  3. Przejdź do karty Mapowanie w przekształceniu ujścia przepływów danych mapowania. Wybierz alternatywny klucz jako kolumny wyjściowe w polu Odnośnik. Wartość po wskazuje kolumny kluczy tego klucza alternatywnego.

    Screenshot shows selecting alternate key columns.

  4. Po wybraniu kolumny klucza alternatywnego zostaną automatycznie wyświetlone poniżej.

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

  5. Zamapuj kolumny wejściowe po lewej stronie na kolumny wyjściowe.

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

Uwaga

Obecnie jest to obsługiwane tylko w przypadku korzystania z trybu wbudowanego w transformacji ujścia przepływów danych mapowania.

Właściwości przepływu mapowania danych

Podczas przekształcania danych w przepływie mapowania danych można odczytywać dane i zapisywać je w tabelach w usłudze Dynamics. Aby uzyskać więcej informacji, zobacz przekształcanie źródła i przekształcanie ujścia w przepływach danych mapowania. Możesz użyć zestawu danych usługi Dynamics lub wbudowanego zestawu danych jako typu źródła i ujścia.

Przekształcanie źródła

Poniższa tabela zawiera listę właściwości obsługiwanych przez usługę Dynamics. Te właściwości można edytować na karcie Opcje źródła.

Nazwa/nazwisko opis Wymagania Dozwolone wartości Właściwość skryptu przepływu danych
Nazwa podmiotu Nazwa logiczna jednostki do pobrania. Tak w przypadku używania wbudowanego zestawu danych - (tylko w przypadku wbudowanego zestawu danych)
podmiot
Query FetchXML to zastrzeżony język zapytań używany w usłudze Dynamics online i lokalnie. Zobacz poniższy przykład. Aby dowiedzieć się więcej, zobacz Kompilowanie zapytań za pomocą narzędzia FetchXML. Nie. String zapytanie

Uwaga

Jeśli wybierzesz pozycję Zapytanie jako typ danych wejściowych, nie można pobrać typu kolumny z tabel. Domyślnie będzie traktowany jako ciąg.

Przykład skryptu źródłowego usługi Dynamics

Jeśli używasz zestawu danych dynamics jako typu źródła, skojarzony skrypt przepływu danych to:

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

Jeśli używasz wbudowanego zestawu danych, skojarzony skrypt przepływu danych to:

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

Przekształcenie ujścia

W poniższej tabeli wymieniono właściwości obsługiwane przez ujście usługi Dynamics. Te właściwości można edytować na karcie Opcje ujścia.

Nazwa/nazwisko opis Wymagania Dozwolone wartości Właściwość skryptu przepływu danych
Nazwa alternatywnego klucza Alternatywna nazwa klucza zdefiniowana w jednostce w celu przeprowadzenia aktualizacji, operacji upsert lub usunięcia. Nie. - alternateKeyName
Metoda aktualizacji Określ, jakie operacje są dozwolone w miejscu docelowym bazy danych. Ustawieniem domyślnym jest zezwalanie tylko na wstawianie.
Aby zaktualizować, upsert lub usunąć wiersze, do tagowania wierszy dla tych akcji jest wymagane przekształcenie alter wiersza.
Tak true lub false możliwość wstawienia
Aktualizowana
upsertable
możliwe do usunięcia
Nazwa podmiotu Nazwa logiczna jednostki do zapisu. Tak w przypadku używania wbudowanego zestawu danych - (tylko w przypadku wbudowanego zestawu danych)
podmiot

Przykładowy skrypt ujścia usługi Dynamics

Jeśli używasz zestawu danych usługi Dynamics jako typu ujścia, skojarzony skrypt przepływu danych to:

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

Jeśli używasz wbudowanego zestawu danych, skojarzony skrypt przepływu danych to:

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

Właściwości działania wyszukiwania

Aby dowiedzieć się więcej o właściwościach, zobacz Działanie wyszukiwania.

Aby uzyskać listę obsługiwanych magazynów danych, które przechowuje działanie kopiowania jako źródła i ujścia, zobacz Obsługiwane magazyny danych.