Pelajari cara menyalin dan mengubah data di Dynamics 365 (Microsoft Dataverse) atau Dynamics CRM menggunakan Azure Data Factory atau Azure Synapse Analytics

BERLAKU UNTUK:Azure Data Factory Azure Synapse Analytics

Tip

Cobalah Data Factory di Microsoft Fabric, solusi analitik all-in-one untuk perusahaan. Microsoft Fabric mencakup semuanya mulai dari pergerakan data hingga ilmu data, analitik real time, kecerdasan bisnis, dan pelaporan. Pelajari cara memulai uji coba baru secara gratis!

Artikel ini menguraikan cara menggunakan aktivitas penyalinan di Azure Data Factory atau alur Synapse untuk menyalin data dari dan ke Dynamics 365 (Microsoft Dataverse) atau Dynamics CRM, dan menggunakan aliran data untuk mengubah data di Dynamics 365 (Microsoft Dataverse) atau Dynamics CRM. Untuk mempelajari selengkapnya, baca artikel pengantar Azure Data Factory dan Azure Synapse Analytics.

Kemampuan yang didukung

Konektor ini didukung untuk kegiatan berikut:

Kemampuan yang didukung IR
Salin aktivitas (sumber/sink) ① ②
Memetakan aliran data (sumber/sink)
Aktivitas pencarian ① ②

① Runtime integrasi Azure ② Runtime integrasi yang dihost sendiri

Untuk daftar penyimpanan data yang didukung aktivitas penyalinan sebagai sumber dan sink, lihat tabel Penyimpanan data yang didukung.

Catatan

Berlaku sejak November 2020, Common Data Service telah diubah namanya menjadi Microsoft Dataverse. Artikel ini diperbarui untuk menerapkan terminologi terbaru.

Konektor Dynamics ini mendukung Dynamics versi 7 hingga 9 baik online maupun lokal. Lebih spesifik:

  • Versi 7 memetakan ke Dynamics CRM 2015.
  • Versi 8 memetakan ke Dynamics CRM 2016 dan versi awal Dynamics 365.
  • Versi 9 memetakan ke versi Dynamics 365 yang lebih baru.

Lihat tabel jenis dan konfigurasi autentikasi yang didukung berikut untuk versi dan produk Dynamics.

Versi Dynamics Jenis autentikasi Sampel layanan tertaut
Dataverse

Dynamics 365 online

Dynamics CRM online
Perwakilan layanan Microsoft Entra

Office 365

Identitas terkelola yang ditetapkan pengguna
Dynamics online dan perwakilan layanan Microsoft Entra atau autentikasi Office 365
Dynamics 365 lokal dengan penyebaran yang terhubung ke internet (IFD)

Dynamics CRM 2016 lokal dengan IFD

Dynamics CRM 2015 lokal dengan IFD
IFD Dynamics lokal dengan IFD dan autentikasi IFD

Catatan

Dengan penghentian Discovery Service regional, layanan telah diperbarui untuk memanfaatkan Discovery Service global saat menggunakan Autentikasi Office 365.

Penting

Jika penyewa dan pengguna Anda dikonfigurasi di MICROSOFT Entra ID untuk akses bersyarat dan/atau Autentikasi Multifaktor diperlukan, Anda tidak akan dapat menggunakan jenis Autentikasi Office 365. Untuk situasi tersebut, Anda harus menggunakan autentikasi perwakilan layanan Microsoft Entra.

Khusus untuk Dynamics 365, berikut ini jenis aplikasi yang didukung:

  • Dynamics 365 for Sales
  • Dynamics 365 untuk Layanan Pelanggan
  • Dynamics 365 untuk Bidang Layanan
  • Dynamics 365 untuk Automasi Layanan Proyek
  • Dynamics 365 for Marketing

Konektor ini tidak mendukung jenis aplikasi lain seperti Finance, Operations, dan Talent.

Tip

Untuk menyalin data dari Dynamics 365 Finance and Operations, Anda dapat menggunakan konektor Dynamics AX.

Konektor Dynamics ini dibangun pada alat Dynamics XRM.

Prasyarat

Untuk menggunakan konektor ini dengan autentikasi perwakilan layanan Microsoft Entra, Anda harus menyiapkan autentikasi server-ke-server (S2S) di Dataverse atau Dynamics. Pertama-tama daftarkan pengguna aplikasi (Perwakilan Layanan) di ID Microsoft Entra. Anda dapat mengetahui cara melakukannya di sini. Selama pendaftaran aplikasi, Anda harus membuat pengguna tersebut di Dataverse atau Dynamics dan memberikan izin. Izin tersebut dapat diberikan secara langsung atau tidak langsung dengan menambahkan pengguna aplikasi ke tim yang telah diberi izin di Dataverse atau Dynamics. Anda dapat menemukan informasi selengkapnya tentang cara menyiapkan pengguna aplikasi untuk mengautentikasi dengan Dataverse di sini.

Mulai

Untuk melakukan aktivitas Salin dengan alur, Anda dapat menggunakan salah satu alat atau SDK berikut:

Membuat layanan tertaut ke Dynamics 365 (Microsoft Dataverse) atau Dynamics CRM menggunakan UI

Gunakan langkah-langkah berikut untuk membuat layanan tertaut ke Dynamics 365 di UI portal Azure.

  1. Telusuri ke tab Kelola di ruang kerja Azure Data Factory atau Synapse Anda dan pilih Layanan Tertaut, lalu klik Baru:

  2. Cari Dynamics atau Dataverse dan pilih konektor Dynamics 365 (Microsoft Dataverse) atau Dynamics CRM.

    Screenshot of the Dynamics 365 connector.

    Screenshot of the Dataverse connector.

  3. Konfigurasikan detail layanan, uji koneksi, dan buat layanan tertaut baru.

    Screenshot of linked service configuration for Dynamics 365.

Detail konfigurasi konektor

Bagian berikut ini menyediakan detail tentang properti yang digunakan untuk menentukan entitas khusus untuk Dynamics.

Properti layanan tertaut

Properti berikut ini didukung untuk layanan tertaut Dynamics.

Dynamics 365 dan Dynamics CRM online

Properti Deskripsi Wajib
jenis Properti jenis harus diatur ke "Dynamics", "DynamicsCrm", atau "CommonDataServiceForApps". Ya
deploymentType Jenis penyebaran instans Dynamics. Nilai harus "Online" untuk Dynamics online. Ya
serviceUri URL layanan instans Dynamics Anda, yang sama dengan yang Anda akses dari browser. Contohnya adalah "https://<organization-name.crm>.crm[x].dynamics.com". Ya
authenticationType Jenis autentikasi untuk menyambungkan ke server Dynamics. Nilai yang valid adalah "AADServicePrincipal", "Office365" dan “ManagedIdentity”. Ya
servicePrincipalId ID klien aplikasi Microsoft Entra. Ya ketika autentikasi adalah "AADServicePrincipal"
servicePrincipalCredentialType Jenis informasi masuk yang digunakan untuk autentikasi perwakilan layanan. Nilai yang valid adalah "ServicePrincipalKey" dan "ServicePrincipalCert".

Catatan: Disarankan untuk menggunakan ServicePrincipalKey. Ada batasan yang diketahui untuk jenis kredensial ServicePrincipalCert di mana layanan mungkin mengalami masalah sementara gagal mengambil rahasia dari brankas kunci.
Ya ketika autentikasi adalah "AADServicePrincipal"
servicePrincipalCredential Informasi masuk perwakilan layanan.

Ketika Anda menggunakan "ServicePrincipalKey" sebagai jenis info masuk, servicePrincipalCredential bisa menjadi string yang dienkripsi layanan saat penyebaran layanan tertaut. Atau bisa menjadi referensi ke rahasia di Azure Key Vault.

Saat Anda menggunakan "ServicePrincipalCert" sebagai mandat, servicePrincipalCredential harus menjadi rujukan ke sertifikat di Azure Key Vault dan pastikan jenis konten sertifikatnya adalah PKCS #12.
Ya ketika autentikasi adalah "AADServicePrincipal"
Nama pengguna Nama pengguna untuk menyambungkan ke Dynamics. Ya ketika autentikasi adalah "Office365"
kata sandi Kata sandi akun pengguna yang Anda tetapkan untuk nama pengguna. Tandai bidang ini dengan "SecureString" untuk menyimpannya dengan aman, atau referensikan rahasia yang disimpan di Azure Key Vault. Ya ketika autentikasi adalah "Office365"
informasi masuk Tentukan identitas terkelola yang ditetapkan pengguna sebagai objek kredensial.

Buat satu atau beberapa identitas terkelola yang ditetapkan pengguna, tetapkan mereka ke pabrik data Anda dan buat informasi masuk untuk setiap identitas terkelola yang ditetapkan pengguna.
Ya ketika autentikasi adalah "ManagedIdentity"
connectVia Runtime integrasi yang akan digunakan untuk menyambungkan ke penyimpanan data. Jika tidak ada nilai yang ditentukan, properti menggunakan runtime integrasi Azure default. Tidak

Catatan

Konektor Dynamics sebelumnya menggunakan properti opsional organizationName untuk mengidentifikasi instans online Dynamics CRM atau Dynamics 365 Anda. Meskipun properti masih berfungsi, sebaiknya Anda tentukan properti serviceUri baru untuk mendapatkan performa yang lebih baik untuk penemuan instans.

Contoh: Dynamics online menggunakan perwakilan layanan Microsoft Entra dan autentikasi kunci

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

Contoh: Dynamics online menggunakan perwakilan layanan Microsoft Entra dan autentikasi sertifikat

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

Contoh: Dynamics online menggunakan autentikasi 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"
        }
    }
}

Contoh: Dinamika online menggunakan autentikasi identitas terkelola yang ditetapkan pengguna

{
    "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 dan Dynamics CRM lokal dengan IFD

Properti tambahan yang sebanding dengan Dynamics online adalah hostName dan port.

Properti Deskripsi Wajib
jenis Properti jenis harus diatur ke "Dynamics", "DynamicsCrm", atau "CommonDataServiceForApps". Ya.
deploymentType Jenis penyebaran instans Dynamics. Nilai harus "OnPremisesWithIfd" untuk Dynamics lokal dengan IFD. Ya.
hostName Nama host server Dynamics lokal. Ya.
pelabuhan Port server Dynamics lokal. Nomor. Nilai default adalah 443.
organizationName Nama organisasi instans Dynamics. Ya.
authenticationType Jenis autentikasi untuk menyambungkan ke server Dynamics. Tentukan "Ifd" untuk Dynamics lokal dengan IFD. Ya.
Nama pengguna Nama pengguna untuk menyambungkan ke Dynamics. Ya.
kata sandi Kata sandi akun pengguna yang Anda tentukan untuk nama pengguna. Anda dapat menandai bidang ini dengan "SecureString" untuk menyimpannya dengan aman. Atau Anda dapat menyimpan kata sandi di Key Vault dan membiarkan aktivitas penyalinan menariknya dari sana ketika penyalinan data. Pelajari selengkapnya di Menyimpan info masuk di Key Vault. Ya.
connectVia Runtime integrasi yang akan digunakan untuk menyambungkan ke penyimpanan data. Jika tidak ada nilai yang ditentukan, properti menggunakan runtime integrasi Azure default. Tidak

Contoh: Dinamika lokal dengan IFD menggunakan autentikasi 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"
        }
    }
}

Properti himpunan data

Untuk daftar lengkap bagian dan properti yang tersedia untuk menentukan himpunan data, lihat artikel Himpunan Data. Bagian ini menyediakan daftar properti yang didukung oleh himpunan data Dynamics.

Untuk menyalin data dari dan ke Dynamics, properti berikut ini didukung:

Properti Deskripsi Wajib
jenis Properti jenis himpunan data harus diatur ke "DynamicsEntity", "DynamicsCrmEntity", atau "CommonDataServiceForAppsEntity". Ya
entityName Nama logis dari entitas yang akan diambil. Tidak untuk sumber jika sumber aktivitas ditetapkan sebagai "kueri" dan ya untuk sink

Contoh

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

Properti aktivitas salin

Untuk daftar lengkap bagian dan properti yang tersedia untuk menentukan aktivitas, lihat artikel Alur. Bagian ini menyediakan daftar properti yang didukung oleh jenis sumber dan sink dari Dynamics.

Dynamics sebagai jenis sumber

Untuk menyalin data dari Dynamics, bagian sumber aktivitas penyalinan mendukung properti berikut:

Properti Deskripsi Wajib
jenis Properti jenis sumber aktivitas penyalinan harus diatur ke "DynamicsSource", "DynamicsCrmSource", atau "CommonDataServiceForAppsSource". Ya
pertanyaan FetchXML adalah bahasa kueri eksklusif yang digunakan dalam Dynamics online dan lokal. Lihat contoh berikut. Untuk mempelajari lebih lanjut, lihat Membuat kueri dengan FetchXML. Tidak jika entityName dalam himpunan data ditentukan

Catatan

Kolom PK akan selalu disalin meskipun proyeksi kolom yang Anda konfigurasikan dalam kueri FetchXML tidak memuatnya.

Penting

  • Saat Anda menyalin data dari Dynamics, pemetaan kolom eksplisit dari Dynamics ke sink bersifat opsional. Tetapi kami sangat merekomendasikan pemetaan ini untuk memastikan hasil salinan yang deterministik.
  • Ketika layanan mengimpor skema di dalam antarmuka pengguna penulisan, ia akan menyimpulkan skema. Data Factory melakukannya dengan mengambil sampel dari baris atas hasil kueri Dynamics untuk menginisialisasi daftar kolom sumber. Dalam hal ini, kolom tanpa nilai di baris atas akan dihilangkan. Perilaku yang sama juga berlaku untuk pratinjau data dan eksekusi salinan jika tidak ada pemetaan eksplisit. Anda dapat meninjau dan menambahkan lebih banyak kolom ke dalam pemetaan, yang diperhitungkan selama jalannya penyalinan.

Contoh

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

Sampel kueri 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 sebagai jenis sink

Untuk menyalin data dari Dynamics, bagian sink aktivitas penyalinan mendukung properti berikut:

Properti Deskripsi Wajib
jenis Properti jenis sink aktivitas penyalinan harus diatur ke "DynamicsSink", "DynamicsCrmSink", atau "CommonDataServiceForAppsSink". Ya.
writeBehavior Perilaku penulisan operasi. Nilainya harus "Upsert". Ya
alternateKeyName Nama kunci alternatif yang ditentukan pada entitas Anda untuk melakukan upsert. Nomor.
writeBatchSize Jumlah baris data yang ditulis ke Dynamics di setiap batch. Nomor. Nilai defaultnya adalah 10.
ignoreNullValues Apakah mengabaikan nilai null dari data input selain bidang kunci selama operasi penulisan.

Nilai yang diperbolehkan adalah TRUE dan FALSE:
  • TRUE: Biarkan data di objek tujuan tanpa perubahan saat Anda melakukan operasi upsert atau pembaruan. Sisipkan nilai default yang ditentukan saat Anda melakukan operasi sisipan.
  • FALSE: Perbarui data di objek tujuan ke nilai null saat Anda melakukan operasi upsert atau pembaruan. Sisipkan nilai null saat Anda melakukan operasi sisipan.
Nomor. Nilai defaultnya adalah FALSE.
maxConcurrentConnections Batas atas koneksi bersamaan yang ditetapkan ke penyimpanan data selama eksekusi aktivitas. Menentukan nilai hanya saat Anda ingin membatasi koneksi bersamaan. Tidak

Catatan

Nilai default untuk sinkwriteBatchSize dan aktivitas penyalinan parallelCopies untuk sink Dynamics adalah 10. Oleh karena itu, 100 rekaman secara default dikirimkan bersamaan ke Dynamics.

Untuk Dynamics 365 online, ada batas 52 panggilan batch bersamaan per organisasi. Jika batas itu terlampaui, pengecualian "Server Sibuk" dimunculkan sebelum permintaan pertama dijalankan. Jaga writeBatchSize pada 10 atau kurang untuk menghindari pembatasan panggilan bersamaan.

Kombinasi optimal writeBatchSize dan parallelCopies bergantung pada skema entitas Anda. Elemen skema mencakup jumlah kolom, ukuran baris, dan jumlah plug-in, alur kerja, atau aktivitas alur kerja yang terhubung ke panggilan tersebut. Pengaturan default writeBatchSize (10) × parallelCopies (10) adalah rekomendasi dari layanan Dynamics. Nilai ini berfungsi untuk sebagian besar entitas Dynamics, meskipun mungkin tidak memberikan performa terbaik. Anda dapat menyelaraskan performa dengan menyesuaikan kombinasi di pengaturan aktivitas penyalinan Anda.

Contoh

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

Mengambil data dari tampilan

Untuk mengambil data dari tampilan Dynamics, Anda perlu mendapatkan kueri tampilan yang disimpan, dan menggunakan kueri tersebut untuk mendapatkan data.

Ada dua entitas yang menyimpan berbagai jenis tampilan: "kueri yang disimpan" menyimpan tampilan sistem dan "kueri pengguna" menyimpan tampilan pengguna. Untuk mendapatkan informasi tampilan, lihat kueri FetchXML berikut dan ganti "TARGETENTITY" dengan savedquery atau userquery. Setiap jenis entitas memiliki lebih banyak atribut yang tersedia yang dapat Anda tambahkan ke kueri berdasarkan kebutuhan Anda. Pelajari selengkapnya tentang entitas savedquery dan entitas userquery.

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

Anda juga dapat menambahkan filter untuk memfilter tampilan. Misalnya, tambahkan filter berikut untuk mendapatkan tampilan bernama "Akun Aktif Saya" di entitas akun.

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

Pemetaan jenis data untuk Dynamics

Saat Anda menyalin data dari Dynamics, tabel berikut ini memperlihatkan pemetaan dari jenis data Dynamics ke jenis data dalam layanan. Untuk mempelajari bagaimana aktivitas penyalinan memetakan ke skema sumber dan jenis data memetakan ke sink, lihat Pemetaan skema dan jenis data.

Mengonfigurasikan jenis data interim terkait dalam struktur himpunan data yang didasarkan pada jenis data Dynamics sumber Anda dengan menggunakan tabel pemetaan berikut ini:

Jenis data Dynamics Jenis data sementara layanan Didukung sebagai sumber Didukung sebagai sink
AttributeTypeCode.BigInt Panjang
AttributeTypeCode.Boolean Boolean
AttributeType.Customer GUID ✓ (Lihat panduan)
AttributeType.DateTime Tanggalwaktu
AttributeType.Decimal Decimal
AttributeType.Double Laju
AttributeType.EntityName String
AttributeType.Integer Int32
AttributeType.Lookup GUID ✓ (Lihat panduan)
AttributeType.ManagedProperty Boolean
AttributeType.Memo String
AttributeType.Money Decimal
AttributeType.Owner GUID ✓ (Lihat panduan)
AttributeType.Picklist Int32
AttributeType.Uniqueidentifier GUID
AttributeType.String String
AttributeType.State Int32
AttributeType.Status Int32

Catatan

Jenis data Dynamics AttributeType.CalendarRules, AttributeType.MultiSelectPicklist, dan AttributeType.PartyList tidak didukung.

Menulis data ke bidang pencarian

Untuk menulis data ke dalam bidang pencarian dengan banyak target seperti Pelanggan dan Pemilik, ikuti panduan dan contoh ini:

  1. Buat supaya sumber Anda berisi nilai bidang dan nama entitas target terkait.

    • Jika semua rekaman dipetakan ke entitas target yang sama, pastikan salah satu kondisi berikut:
      • Data sumber Anda memiliki kolom yang menyimpan nama entitas target.
      • Anda telah menambahkan kolom tambahan di sumber aktivitas penyalinan untuk menentukan entitas target.
    • Jika rekaman yang berbeda memetakan ke entitas target yang berbeda, pastikan data sumber Anda memiliki kolom yang menyimpan nama entitas target terkait.
  2. Petakan kolom nilai dan referensi entitas dari sumber ke sink. Kolom referensi entitas harus dipetakan ke kolom virtual dengan pola penamaan khusus {lookup_field_name}@EntityReference. Kolom sebenarnya tidak ada di Dynamics. Ini digunakan untuk menunjukkan bahwa kolom ini adalah kolom metadata dari bidang pencarian multitarget yang diberikan.

Misalnya, asumsikan sumber memiliki dua kolom ini:

  • Kolom CustomerField dari jenis GUID, yang merupakan nilai kunci primer dari entitas target di Dynamics.
  • Kolom Target dari jenis Untai (karakter), yang merupakan nama logis entitas target.

Asumsikan juga Anda ingin menyalin data tersebut ke bidang entitas Dynamics sink CustomerField dari jenis Pelanggan.

Dalam pemetaan kolom aktivitas penyalinan, petakan dua kolom tersebut sebagai berikut:

  • CustomerField ke CustomerField. Pemetaan ini adalah pemetaan bidang normal.
  • Target ke CustomerField@EntityReference. Kolom sink adalah kolom virtual yang mewakili referensi entitas. Masukkan nama bidang tersebut dalam pemetaan, karena tidak akan muncul dengan mengimpor skema.

Dynamics lookup-field column mapping

Jika semua rekaman sumber Anda memetakan ke entitas target yang sama dan data sumber Anda tidak memuat nama entitas target, berikut adalah pintasan: di sumber aktivitas penyalinan, tambah kolom tambahan. Beri nama kolom baru menggunakan pola {lookup_field_name}@EntityReference, atur nilai ke nama entitas target, lalu lanjutkan dengan pemetaan kolom seperti biasa. Jika nama kolom sumber dan sink Anda identik, Anda juga bisa melewati pemetaan kolom eksplisit karena aktivitas penyalinan secara default memetakan kolom berdasarkan nama.

Dynamics lookup-field adding an entity-reference column

Menulis data ke bidang pencarian melalui kunci alternatif

Untuk menulis data ke bidang pencarian menggunakan kolom kunci alternatif, ikuti panduan dan contoh ini:

  1. Pastikan sumber Anda berisi semua kolom kunci pencarian.

  2. Kolom kunci alternatif harus dipetakan ke kolom dengan pola penamaan khusus {lookup_field_name}@{alternate_key_column_name}. Kolom tidak ada di Dynamics. Hal ini digunakan untuk menunjukkan bahwa kolom ini digunakan untuk mencari rekaman di entitas target.

  3. Buka tab Pemetaan di transformasi sink aliran data pemetaan. Pilih kunci alternatif sebagai kolom output pada bidang Pencarian. Nilai setelah menunjukkan kolom kunci dari kunci alternatif ini.

    Screenshot shows selecting alternate key columns.

  4. Setelah dipilih, kolom kunci alternatif akan secara otomatis ditampilkan di bawah.

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

  5. Petakan kolom input Anda di sebelah kiri dengan kolom output.

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

Catatan

Saat ini hanya didukung ketika Anda menggunakan mode sebaris dalam transformasi sink pemetaan aliran data.

Properti pemetaan aliran data

Saat mengubah data dalam memetakan aliran data, Anda dapat membaca dari dan menulis ke tabel di Dynamics. Untuk informasi selengkapnya, lihat transformasi sumber dan transformasi sink dalam aliran data pemetaan. Anda dapat memilih untuk menggunakan himpunan data Dynamics atau himpunan data sebaris sebagai jenis sumber dan sink.

Transformasi sumber

Tabel di bawah ini mencantumkan properti yang didukung oleh Dynamics. Anda bisa mengedit properti ini di tab opsi Sumber.

Nama Deskripsi Wajib diisi Nilai yang diizinkan Properti skrip aliran data
Nama entitas Nama logis dari entitas yang akan diambil. Ya saat menggunakan himpunan data sebaris - (hanya untuk himpunan data sebaris)
entitas
Kueri FetchXML adalah bahasa kueri eksklusif yang digunakan dalam Dynamics online dan lokal. Lihat contoh berikut. Untuk mempelajari lebih lanjut, lihat Membuat kueri dengan FetchXML. Tidak String pertanyaan

Catatan

Jika Anda memilih Kueri sebagai jeni input, jenis kolom dari tabel tidak dapat diambil. Ini akan diperlakukan sebagai untai secara default.

Contoh skrip sumber Dynamics

Saat Anda menggunakan himpunan data Dynamics sebagai jenis sumber, skrip aliran data terkait adalah:

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

Jika menggunakan himpunan data sebaris, skrip aliran data terkait adalah:

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

Transformasi sink

Tabel di bawah ini mencantumkan properti yang didukung oleh sink Dynamics. Anda dapat mengedit properti ini di tab opsi Sink.

Nama Deskripsi Wajib diisi Nilai yang diizinkan Properti skrip aliran data
Nama kunci alternatif Nama kunci alternatif yang ditentukan pada entitas Anda untuk melakukan pembaruan, upsert, atau penghapusan. Tidak - alternateKeyName
Perbarui() metode Menentukan operasi apa yang diizinkan di tujuan database Anda. Defaultnya hanya mengizinkan operasi sisipan.
Untuk memperbarui, meningkatkan, atau menghapus baris, transformasi baris Alterdiperlukan untuk menandai baris untuk tindakan tersebut.
Ya true atau false dapat disisipkan
updateable
dapat dibuat upsert
deletable
Nama entitas Nama logis entitas yang akan ditulis. Ya saat menggunakan himpunan data sebaris - (hanya untuk himpunan data sebaris)
entitas

Contoh skrip sink Dynamics

Saat Anda menggunakan himpunan data Dynamics sebagai jenis sink, skrip aliran data terkait adalah:

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

Jika menggunakan himpunan data sebaris, skrip aliran data terkait adalah:

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

Properti aktivitas pencarian

Untuk mempelajari detail tentang properti, lihat Aktivitas pencarian.

Untuk daftar penyimpanan data yang didukung sebagai sumber dan sink oleh aktivitas salin, lihat Penyimpanan data yang didukung.