تعرف على طريقة نسخ البيانات وتحويلها في Dynamics 365 (Microsoft Dataverse) أو Dynamics CRM باستخدام Azure Data Factory أو Azure Synapse Analytics
ينطبق على: Azure Data Factory Azure Synapse Analytics
تلميح
جرب Data Factory في Microsoft Fabric، وهو حل تحليلي متكامل للمؤسسات. يغطي Microsoft Fabric كل شيء بدءا من حركة البيانات إلى علم البيانات والتحليلات في الوقت الحقيقي والمعلومات المهنية وإعداد التقارير. تعرف على كيفية بدء إصدار تجريبي جديد مجانا!
توضح هذه المقالة طريقة استخدام نشاط نسخ في Azure Data Factory أو مسارات Synapse لنسخ البيانات من وإلى Dynamics 365 (Microsoft Dataverse) أو Dynamics CRM، واستخدام تدفق البيانات لتحويل البيانات في Dynamics 365 (Microsoft Dataverse) أو Dynamics CRM. للتعرف على المزيد، اقرأ المقالات التمهيدية عن Azure Data Factory أو Azure Synapse Analytics.
القدرات المدعومة
هذا الموصل معتمد للأنشطة التالية:
القدرات المدعومة | IR |
---|---|
Copy activity (المصدر/المتلق) | (1) (2) |
تعيين تدفق البيانات (المصدر/ المتلقي) | (1) |
نشاط البحث | (1) (2) |
① وقت تشغيل تكامل Azure ② وقت تشغيل التكامل المستضاف ذاتيًا
للحصول على قائمة بمخازن البيانات التي يدعمها نشاط النسخ كمصادر ومتلقين، راجع جدول مخازن البيانات المدعومة.
إشعار
بدء من نوفمبر 2020، تمت إعادة تسمية Common Data Service إلى Microsoft Dataverse. يتم تحديث هذه المقالة لتعكس أحدث المصطلحات.
يدعم موصل Dynamics هذا إصدارات Dynamics من 7 إلى 9 لكل من الإنترنت والأماكن. أكثر تحديدًا:
- مخطط الإصدار 7 إلى Dynamics CRM 2015.
- يعيّن الإصدار 8 Dynamics CRM 2016 والإصدار الأول من Dynamics 365.
- يتم تعيين الإصدار 9 إلى الإصدار الأحدث من Dynamics 365.
راجع الجدول التالي لأنواع وتكوينات المصادقة المدعومة لإصدارات ومنتجات Dynamics.
إصدارات ديناميكية | أنواع المصادقة | عينات الخدمة المرتبطة |
---|---|---|
Dataverse Dynamics 365 عبر الإنترنت Dynamics CRM عبر الإنترنت |
كيان خدمة Microsoft Entra Office 365 الهوية المُدارة التي يعيّنها المُستخدم |
مصادقة Dynamics عبر الإنترنت وMicrosoft Entra أو مصادقة Office 365 |
Dynamics 365 المحلي مع النشر المواجه للإنترنت (IFD) Dynamics CRM 2016 المحلي مع IFD Dynamics CRM 2015 المحلي مع IFD |
IFD | Dynamics المحلي مع مصادقة IFD وIFD |
إشعار
مع إيقاف خدمة الاكتشاف الإقليمية، تمت ترقية الخدمة للاستفادة من خدمة الاكتشاف العالمية أثناء استخدام مصادقة Office 365.
هام
إذا تم تكوين المستأجر والمستخدم في معرف Microsoft Entra للوصول المشروط و/أو المصادقة متعددة العوامل المطلوبة، فلن تتمكن من استخدام نوع مصادقة Office 365. بالنسبة لهذه الحالات، يجب استخدام مصادقة كيان خدمة Microsoft Entra.
بالنسبة لـ Dynamics 365 على وجه التحديد، يتم دعم أنواع التطبيقات التالية:
- Dynamics 365 for Sales
- Dynamics 365 لخدمة العملاء
- Dynamics 365 for Field Service
- Dynamics 365 for Project Service Automation
- Dynamics 365 for Marketing
لا يدعم هذا الموصل أنواع التطبيقات الأخرى مثل Finance وOperations وTalent.
تلميح
لنسخ البيانات من Dynamics 365 Finance and Operations، يمكنك استخدام موصل Dynamics AX.
تم إنشاء موصل Dynamics هذا أعلى أدوات Dynamics XRM.
المتطلبات الأساسية
لاستخدام هذا الموصل مع المصادقة الأساسية لخدمة Microsoft Entra، يجب إعداد مصادقة الخادم إلى الخادم (S2S) في Dataverse أو Dynamics. سجل أولا مستخدم التطبيق (كيان الخدمة) في معرف Microsoft Entra. يمكنك معرفة كيفية القيام بذلك هنا. أثناء تسجيل التطبيق سوف تحتاج إلى إنشاء هذا المستخدم في Dataverse أو Dynamics ومنح الأذونات. يمكن منح هذه الأذونات بشكل مباشر أو غير مباشر عن طريق إضافة مستخدم التطبيق إلى فريق تم منحه أذونات في Dataverse أو Dynamics. يمكنك العثور على مزيد من المعلومات حول كيفية إعداد مستخدم تطبيق للمصادقة باستخدام Dataverse هنا.
الشروع في العمل
لتنفيذ نشاط النسخ باستخدام أحد المسارات، يمكنك استخدام إحدى الأدوات أو عدد تطوير البرامج التالية:
- أداة نسخ البيانات
- مدخل Azure
- The .NET SDK
- عدة تطوير برامج Python
- Azure PowerShell
- واجهة برمجة تطبيقات REST
- قالب Azure Resource Manager
إنشاء خدمة مرتبطة بـ Dynamics 365 (Microsoft Dataverse) أو Dynamics CRM باستخدام الواجهة الخاصة بالمستخدم
استخدم الخطوات التالية لإنشاء خدمة مرتبطة إلى Dynamics 365 في واجهة مستخدم مدخل Microsoft Azure.
استعرض للوصول إلى علامة التبويب "Manage" في مصنع بيانات Azure أو مساحة عمل Synapse، وحدد "Linked Services"، ثم انقر فوق "New":
ابحث عن Dynamics أو Dataverse وحدد الموصل Dynamics 365 (Microsoft Dataverse) أوDynamics CRM.
قم بتكوين تفاصيل الخدمة، واختبر الاتصال، وأنشئ الخدمة المرتبطة الجديدة.
تفاصيل تكوين الموصل
توفر الأقسام التالية تفاصيل حول الخصائص المستخدمة لتحديد الكيانات الخاصة بـ Dynamics.
خصائص الخدمة المرتبطة
الخصائص التالية مدعومة للخدمة المرتبطة بـ Dynamics.
Dynamics 365 وDynamics CRM عبر الإنترنت
الخاصية | الوصف | مطلوب |
---|---|---|
النوع | يجب تعيين خاصية النوع إلى "Dynamics" أو "DynamicsCrm" أو "CommonDataServiceForApps". | نعم |
deploymentType | نوع التوزيع لمثيل Dynamics. يجب أن تكون القيمة "عبر الإنترنت" ل Dynamics عبر الإنترنت. | نعم |
serviceUri | عنوان URL للخدمة لمثيل Dynamics، وهو نفس عنوان URL الذي تقوم بالوصول إليه من المستعرض. المثال على ذلك هو "https://< organization-name.crm>[x].dynamics.com". | نعم |
نوع المصادقة | نوع المصادقة للاتصال بخادم Dynamics. تمثل القيم السارية "AADServicePrincipal" و"Office365". | نعم |
servicePrincipalId | معرف العميل لتطبيق Microsoft Entra. | نعم عندما تكون المصادقة "AADServicePrincipal" |
servicePrincipalCredentialType | نوع بيانات الاعتماد لاستخدامها للمصادقة الأساسية الخدمة. القيم الصالحة هي "ServicePrincipalKey" و"ServicePrincipalCert". ملاحظة: يوصى باستخدام ServicePrincipalKey. هناك قيود معروفة لنوع بيانات اعتماد ServicePrincipalCert حيث قد تواجه الخدمة مشكلة عابرة تتعلق بالفشل في استرداد البيانات السرية من مخزن المفاتيح. |
نعم عندما تكون المصادقة "AADServicePrincipal" |
servicePrincipalCredential | بيانات اعتماد الخدمة الأساسية. عند استخدام "ServicePrincipalKey" كنوع بيانات الاعتماد، servicePrincipalCredential يمكن أن تكون سلسلة تشفرها الخدمة عند نشر الخدمة المرتبطة. أو يمكن أن يكون إشارة إلى سر في Azure Key Vault. عند استخدام "ServicePrincipalCert" كبيانات اعتماد، servicePrincipalCredential يجب أن يكون مرجعا إلى شهادة في Azure Key Vault، وتأكد من أن نوع محتوى الشهادة هو PKCS #12. |
نعم عندما تكون المصادقة "AADServicePrincipal" |
اسم المستخدم | اسم المستخدم للاتصال بـ Dynamics. | نعم عندما تكون المصادقة "Office365" |
كلمة المرور | كلمة المرور لحساب المستخدم الذي حددته كاسم المستخدم. ضع علامة على هذا الحقل باستخدام "SecureString" لتخزينه بشكل آمن، أو قم بالإشارة إلى سر مخزن في Azure Key Vault. | نعم عندما تكون المصادقة "Office365" |
بيانات الاعتماد | حدد الهوية المدارة المعينة من قبل المستخدم ككائن بيانات الاعتماد. إنشاء واحد أو أكثر من الهويات المُدارة المخصصة من قبل المستخدم، وقم بتعيينها إلى مصنع البيانات الخاص بك وإنشاء بيانات اعتماد لكل هوية مُدارة يعينها المستخدم. |
نعم، عندما تكون مصادقة «هوية مدارة» |
connectVia | يُستخدم وقت تشغيل التكامل للاتصال بمخزن البيانات. في حالة عدم التحديد، تستخدم هذه الخاصية وقت تشغيل تكامل Azure الافتراضي. | لا |
إشعار
استخدم موصل Dynamics مسبقا خاصية organizationName الاختيارية لتحديد مثيل Dynamics CRM أو Dynamics 365 عبر الإنترنت. بينما لا تزال هذه الخاصية تعمل، نقترح عليك تحديد الخاصية serviceUri الجديدة بدلا من ذلك للحصول على أداء أفضل لاكتشاف المثيل.
مثال: Dynamics عبر الإنترنت باستخدام كيان خدمة 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"
}
}
}
مثال: Dynamics عبر الإنترنت باستخدام كيان خدمة 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": "ServicePrincipalCert",
"servicePrincipalCredential": {
"type": "AzureKeyVaultSecret",
"store": {
"referenceName": "<AKV reference>",
"type": "LinkedServiceReference"
},
"secretName": "<certificate name in AKV>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
مثال: Dynamics عبر الإنترنت باستخدام مصادقة 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"
}
}
}
مثال: Dynamics online باستخدام مصادقة هوية مُدارة يعينها المستخدم
{
"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 وDynamics CRM المحلي مع IFD
الخصائص الإضافية التي تقارن ب Dynamics عبر الإنترنت هي hostName والمنفذ.
الخاصية | الوصف | مطلوب |
---|---|---|
النوع | يجب تعيين خاصية النوع إلى "Dynamics" أو "DynamicsCrm" أو "CommonDataServiceForApps". | نعم |
deploymentType | نوع التوزيع لمثيل Dynamics. يجب أن تكون القيمة "OnPremisesWithIfd" ل Dynamics المحلي مع IFD. | نعم |
hostName | اسم المضيف لخادم Dynamics المحلي. | نعم |
المنفذ | منفذ خادم Dynamics المحلي. | لا. القيمة المفترضة هي 443. |
organizationName | اسم المؤسسة لمثيل Dynamics. | نعم |
نوع المصادقة | نوع المصادقة للاتصال بخادم Dynamics. حدد "ActiveDirectoryAuthentication" ل Dynamics المحلي مع IFD. | نعم |
المجال | مجال Active Directory الذي سيتحقق من بيانات اعتماد المستخدم. | نعم |
اسم المستخدم | اسم المستخدم للاتصال بـ Dynamics. | نعم |
كلمة المرور | كلمة المرور لحساب المستخدم الذي حددته لاسم المستخدم. يمكنك تمييز هذا الحقل بـ "SecureString" لتخزينه بشكل آمن. أو يمكنك تخزين كلمة مرور في Key Vault والسماح لنشاط النسخ بالسحب من هناك عندما يقوم بنسخ البيانات. تعرف على المزيد من بيانات اعتماد المتجر في Key Vault. | نعم |
connectVia | يُستخدم وقت تشغيل التكامل للاتصال بمخزن البيانات. في حالة عدم التحديد، تستخدم هذه الخاصية وقت تشغيل تكامل Azure الافتراضي. | لا |
إشعار
بسبب غروب نوع مصادقة Ifd بحلول 31 أغسطس 2024، يرجى الترقية إلى نوع مصادقة Active Directory قبل التاريخ إذا كنت تستخدمه حاليا.
مثال: Dynamics المحلي مع IFD باستخدام مصادقة Active Directory
{
"name": "DynamicsLinkedService",
"properties": {
"type": "Dynamics",
"description": "Dynamics on-premises with IFD linked service using IFD authentication",
"typeProperties": {
"deploymentType": "OnPremisesWithIFD",
"hostName": "contosodynamicsserver.contoso.com",
"port": 443,
"organizationName": "admsDynamicsTest",
"authenticationType": "ActiveDirectoryAuthentication",
"domain": "< Active Directory domain >",
"username": "test@contoso.onmicrosoft.com",
"password": {
"type": "SecureString",
"value": "<password>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
خصائص مجموعة البيانات
للحصول على قائمة كاملة بالأقسام والخصائص المتوفرة لتعريف مجموعات البيانات، راجع مقالة مجموعات البيانات. يوفر هذا القسم قائمة بالخصائص التي تدعمها مجموعة بيانات Dynamics.
لنسخ البيانات من Dynamics وإليها، يتم دعم الخصائص التالية:
الخاصية | الوصف | مطلوب |
---|---|---|
النوع | يجب تعيين خاصية نوع مجموعة البيانات إلى "حيوية" أو "DynamicsCrmEntity" أو "CommonDataServiceForAppsEntity". | نعم |
entityName | الاسم المنطقي للكيان المطلوب استرداده. | لا للمصدر إذا تم تحديد مصدر النشاط ك "استعلام" ونعم لجهة التلقي |
مثال
{
"name": "DynamicsDataset",
"properties": {
"type": "DynamicsEntity",
"schema": [],
"typeProperties": {
"entityName": "account"
},
"linkedServiceName": {
"referenceName": "<Dynamics linked service name>",
"type": "linkedservicereference"
}
}
}
انسخ خصائص النشاط
للحصول على قائمة كاملة بالأقسام والخصائص المتوفرة لتعريف الأنشطة، راجع مقالة التدفقات. يوفر هذا القسم قائمة خصائص مدعومة من مصدر ومتلقي MongoDB Atlas.
ديناميات كنوع مصدر
لنسخ البيانات من Dynamics، يدعم قسم مصدر نشاط النسخ الخصائص التالية:
الخاصية | الوصف | مطلوب |
---|---|---|
النوع | يجب تعيين خاصية نوع مصدر نشاط النسخ إلى "DynamicsSource" أو "DynamicsCrmSource" أو "CommonDataServiceForAppsSource". | نعم |
استعلام | FetchXML هي لغة استعلام مملوكة يتم استخدامها في Dynamics عبر الإنترنت وفي أماكن العمل. انظر المثال الآتي. لمعرفة المزيد، راجع إنشاء استعلامات باستخدام FetchXML. | لا إذا تم entityName تحديد في مجموعة البيانات |
إشعار
سيتم نسخ العمود PK دائما حتى إذا كان إسقاط العمود الذي قمت بتكوينه في استعلام FetchXML لا يحتوي عليه.
هام
- عند نسخ البيانات من Dynamics، يكون تعيين العمود الصريح من Dynamics إلى الإغراق اختياريا. ولكننا نوصي بشدة بالرسم لضمان نتيجة نسخ حتمية.
- عند استيراد الخدمة مخطط في واجهة المستخدم التأليف، فإنه يستنتج المخطط. وهو يفعل ذلك عن طريق أخذ عينات من الصفوف العليا من نتيجة الاستعلام Dynamics تكوين قائمة العمود المصدر. في هذه الحالة، يتم حذف الأعمدة التي لا تحتوي على قيم في الصفوف العليا. ينطبق نفس السلوك أيضًا على معاينة البيانات وعمليات تنفيذ النسخ إذا لم يكن هناك تعيين صريح. يمكنك مراجعة وإضافة المزيد من الأعمدة في التعيين، والتي يتم تكريمها أثناء وقت تشغيل النسخ.
مثال
"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>"
}
}
}
]
نموذج استعلام 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، يدعم قسم متلقي نشاط النسخ الخصائص التالية:
الخاصية | الوصف | مطلوب |
---|---|---|
النوع | يجب تعيين خاصية نوع مصدر نشاط النسخ إلى "DynamicsSink" أو "DynamicsCrmSink" أو "CommonDataServiceForAppsSink". | نعم. |
writeBehavior | سلوك الكتابة للعملية. يجب أن تكون القيمة "Upsert". | نعم |
alternateKeyName | اسم المفتاح البديل المحدد في الكيان الخاص بك للقيام بعملية upert. | لا. |
writeBatchSize | عدد صفوف البيانات المكتوبة إلى Dynamics في كل دفعة. | لا. القيمة الافتراضية هي 10. |
ignoreNullValues | ما إذا كان سيتم تجاهل القيم الفارغة من بيانات الإدخال غير حقول المفاتيح أثناء عملية الكتابة. القيم الصالحة هي TRUE و FALSE:
|
لا. القيمة الافتراضية هي FALSE. |
maxConcurrentConnections | الحد الأعلى للاتصالات المتزامنة التي تم إنشاؤها إلى مخزن البيانات أثناء تشغيل النشاط. حدد قيمة فقط عندما تريد تحديد الاتصالات المتزامنة. | لا |
إشعار
القيمة الافتراضية لكل من writeBatchSize المتلقي ونسخ النسخ المتوازية لمتلقي Dynamics هي 10. لذلك، يتم إرسال 100 سجل بشكل متزامن بشكل افتراضي إلى Dynamics.
بالنسبة إلى Dynamics 365 عبر الإنترنت، هناك حد يبلغ 52 استدعاء دفعة متزامنة لكل مؤسسة. إذا تم تجاوز هذا الحد، يتم إظهار استثناء "Server Busy" قبل تشغيل الطلب الأول من أي وقت مضى. احتفظ ب writeBatchSize عند 10 أو أقل لتجنب مثل هذا التقييد للمكالمات المتزامنة.
تعتمد المجموعة المثلى من writeBatchSize والنسخ المتوازية على مخطط الكيان الخاص بك. تتضمن عناصر المخطط عدد الأعمدة وحجم الصف وعدد المكونات الإضافية أو مهام سير العمل أو أنشطة سير العمل المرتبطة بتلك المكالمات. الإعداد الافتراضي writeBatchSize (10) × parallelCopies (10) يمثل التوصية الملزمة وفقًا لخدمة Dynamics. تعمل هذه القيمة لمعظم كيانات Dynamics، على الرغم من أنها قد لا تعطي أفضل أداء. يمكنك ضبط الأداء عن طريق ضبط التركيبة في إعدادات نشاط النسخ.
مثال
"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
}
}
}
]
استرجاع البيانات من المشاهدات
لاسترداد البيانات من طرق عرض Dynamics، تحتاج إلى الحصول على الاستعلام المحفوظ من طريقة العرض، واستخدام الاستعلام للحصول على البيانات.
هناك نوعان من الكيانات التي تخزن أنواعًا مختلفة من العرض: يخزن "الاستعلام المحفوظ" طريقة عرض النظام و"استعلام المستخدم" يخزن طريقة عرض المستخدم. للحصول على معلومات طرق العرض، راجع استعلام FetchXML التالي واستبدل "TARGETENTITY" ب savedquery
أو userquery
. يحتوي كل نوع كيان على المزيد من السمات المتاحة التي يمكنك إضافتها إلى الاستعلام بناءً على حاجتك. تعرف على المزيد حول كيان الاستعلام المحفوظ وكيان userquery.
<fetch top="5000" >
<entity name="<TARGETENTITY>">
<attribute name="name" />
<attribute name="fetchxml" />
<attribute name="returnedtypecode" />
<attribute name="querytype" />
</entity>
</fetch>
يمكنك أيضا إضافة عوامل تصفية لتصفية طرق العرض. على سبيل المثال، إضافة عامل التصفية التالي للحصول على طريقة عرض باسم "حساباتي النشطة" في كيان الحساب.
<filter type="and" >
<condition attribute="returnedtypecode" operator="eq" value="1" />
<condition attribute="name" operator="eq" value="My Active Accounts" />
</filter>
تعيين نوع البيانات لـ Dynamics
عند نسخ البيانات من Dynamics، يعرض الجدول التالي تعيينات من أنواع بيانات Dynamics إلى أنواع البيانات المؤقتة داخل الخدمة. لمعرفة كيفية تعيين نشاط نسخ إلى مخطط مصدر وتعيين نوع بيانات إلى متلقي، راجع تعيينات المخطط ونوع البيانات.
تكوين نوع البيانات المؤقتة المطابقة في بنية مجموعة بيانات تستند إلى نوع بيانات Dynamics المصدر باستخدام جدول التعيين التالي:
نوع بيانات Dynamics | نوع بيانات مؤقتة للخدمة | معتمد كمصدر | معتمدة كمتلقي |
---|---|---|---|
AttributeTypeCode.BigInt | طويل | ✓ | ✓ |
AttributeTypeCode.Boolean | Boolean | ✓ | ✓ |
AttributeType.Customer | GUID | ✓ | ✓ (راجع الإرشادات) |
AttributeType.DateTime | التاريخ/الوقت | ✓ | ✓ |
AttributeType.Decimal | عدد عشري | ✓ | ✓ |
AttributeType.Double | مزدوج | ✓ | ✓ |
AttributeType.EntityName | السلسلة | ✓ | ✓ |
AttributeType.Integer | Int32 | ✓ | ✓ |
AttributeType.Lookup | GUID | ✓ | ✓ (راجع الإرشادات) |
AttributeType.ManagedProperty | Boolean | ✓ | |
AttributeType.Memo | السلسلة | ✓ | ✓ |
AttributeType.Money | عدد عشري | ✓ | ✓ |
AttributeType.Owner | GUID | ✓ | ✓ (راجع الإرشادات) |
AttributeType.Picklist | Int32 | ✓ | ✓ |
AttributeType.Uniqueidentifier | GUID | ✓ | ✓ |
AttributeType.String | السلسلة | ✓ | ✓ |
AttributeType.State | Int32 | ✓ | ✓ |
AttributeType.Status | Int32 | ✓ | ✓ |
إشعار
أنواع بيانات Dynamics AttributeType.CalendarRules و AttributeType.MultiSelectPicklist و AttributeType.PartyList غير مدعومة.
كتابة البيانات إلى حقل بحث
لكتابة البيانات في حقل بحث مع أهداف متعددة مثل العميل والمالك، اتبع هذا التوجيه والمثال:
جعل المصدر يحتوي على قيمة الحقل واسم الكيان الهدف المطابق.
- إذا تم تعيين كافة السجلات إلى نفس الكيان الهدف، فتأكد من أحد الشروط التالية:
- تحتوي البيانات المصدر على عمود يخزن اسم الكيان المستهدف.
- لقد أضفت عمودًا إضافيًا في مصدر نشاط النسخ لتعريف الكيان الهدف.
- إذا تم تعيين سجلات مختلفة لكيانات مستهدفة مختلفة، فتأكد من احتواء بيانات المصدر على عمود يخزن اسم الكيان الهدف المقابل.
- إذا تم تعيين كافة السجلات إلى نفس الكيان الهدف، فتأكد من أحد الشروط التالية:
قم بتعيين أعمدة القيمة ومرجع الكيان من المصدر إلى المتلقي. يجب تعيين عمود مرجع الكيان إلى عمود ظاهري مع نمط
{lookup_field_name}@EntityReference
التسمية الخاص . العمود غير موجود فعليًا في Dynamics. يتم استخدامه للإشارة إلى أن هذا العمود هو عمود بيانات التعريف لحقل البحث متعدد الاستهدافات.
على سبيل المثال، افترض أن المصدر يحتوي على هذين العمودين:
- عمود CustomerField من نوع GUID، وهو قيمة المفتاح الأساسي للكيان الهدف في Dynamics.
- العمود الهدف من النوع String، وهو الاسم المنطقي للكيان الهدف.
افترض أيضا أنك تريد نسخ مثل هذه البيانات إلى حقل كيان Dynamics المتلقي CustomerField من النوع Customer.
في تعيين عمود نشاط النسخ، قم بتعيين العمودين كما يلي:
- CustomerField إلى CustomerField. هذا التعيين هو تعيين الحقل العادي.
- الهدف إلى CustomerField@EntityReference. عمود المتلقي هو عمود افتراضي يمثل مرجع الكيان. أدخل أسماء الحقول هذه في تعيين، حيث لن تظهر عن طريق استيراد المخططات.
إذا كانت كل خريطة سجلات المصدر إلى نفس الكيان المستهدف وكانت بيانات المصدر لا تحتوي على اسم الكيان المستهدف، فإليك اختصارا: في مصدر نشاط النسخ، أضف عمودا إضافيا. قم بتسمية العمود الجديد باستخدام النمط {lookup_field_name}@EntityReference
، واضبط القيمة على اسم الكيان الهدف، ثم تابع تعيين العمود كالمعتاد. إذا كانت أسماء أعمدة المصدر والمتلقي متطابقة، يمكنك أيضا تخطي تعيين الأعمدة الصريح لأن نشاط النسخ حسب أعمدة الخرائط الافتراضية حسب الاسم.
كتابة البيانات إلى حقل بحث عبر مفاتيح بديلة
لكتابة البيانات في حقل بحث باستخدام أعمدة مفاتيح بديلة، اتبع هذا الإرشادات والمثال:
تأكد من أن المصدر يحتوي على جميع أعمدة مفتاح البحث.
يجب تعيين أعمدة المفتاح البديلة إلى العمود مع نمط التسمية الخاص
{lookup_field_name}@{alternate_key_column_name}
. العمود غير موجود في Dynamics. يتم استخدامه للإشارة إلى أن هذا العمود يستخدم للبحث عن السجل في الكيان الهدف.انتقل إلى علامة التبويب التعيين في تحويل المتلقي لتعيين تدفقات البيانات. حدد المفتاح البديل كأعمدة إخراج ضمن حقل البحث. تشير القيمة بعد إلى أعمدة المفتاح لهذا المفتاح البديل.
بمجرد تحديدها، سيتم عرض أعمدة المفاتيح البديلة تلقائيًا أدناه.
عين أعمدة الإدخال إلى اليسار باستخدام أعمدة الإخراج.
إشعار
حاليًا يتم دعم هذا فقط عند استخدام الوضع المضمن في تحويل المتلقي لتعيين تدفقات البيانات.
تعيين خصائص تدفق البيانات
عند تحويل البيانات في تعيين تدفق البيانات، يمكنك القراءة من الجداول والكتابة إليها في Dynamics. لمزيد من المعلومات، راجع تحويل المصدر و تحويل المتلقي في تعيين تدفقات البيانات. يمكنك اختيار استخدام مجموعة بيانات Dynamics أومجموعة بيانات مضمنة باعتباره نوع المصدر والمتلقي.
تحويل المصدر
يسرد الجدول أدناه الخصائص المدعومة من متلقي CDM. يمكنك تحرير هذه الخصائص في علامة التبويب "Source options".
Name | الوصف | مطلوب | القيم المسموح بها | خاصية البرنامج النصي لتدفق البيانات |
---|---|---|---|---|
اسم الكيان | الاسم المنطقي للكيان المطلوب استرداده. | نعم، عند استخدام مجموعة البيانات المضمنة | - | (لمجموعة البيانات المضمنة فقط) الكيان |
الاستعلام | FetchXML هي لغة استعلام مملوكة يتم استخدامها في Dynamics عبر الإنترنت وفي أماكن العمل. انظر المثال الآتي. لمعرفة المزيد، راجع إنشاء استعلامات باستخدام FetchXML. | لا | السلسلة | استعلام |
إشعار
في حالة حددت Query باعتباره نوع إدخال، فلا يمكن استرداد نوع العمود من الجداول. سيتم التعامل معها باعتبارها سلسلة بنحو افتراضي.
مثال على البرنامج النصي لمصدر XML
عند استخدام مجموعة بيانات Snowflake باعتباره نوع المصدر، يكون البرنامج النصي لتدفق البيانات المقترنة:
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
إذا كنت تستخدم مجموعة بيانات مضمنة، يكون البرنامج النصي لتدفق البيانات المقترنة:
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
تحويل المتلقي
يعرض الجدول أدناه الخصائص المدعومة من متلقي CDM. يمكنك تحرير هذه الخصائص في علامة التبويب "Sink options".
Name | الوصف | مطلوب | القيم المسموح بها | خاصية البرنامج النصي لتدفق البيانات |
---|---|---|---|---|
اسم مفتاح بديل | اسم المفتاح البديل المحدد على الكيان لإجراء تحديث أو رفع أو حذف. | لا | - | alternateKeyName |
أسلوب التحديث | حدد العمليات المسموح بها في وجهة قاعدة البيانات. الوضع الافتراضي هو السماح فقط بالإدراج. لتحديث صفوف أو إجراء upsert "إدراج الصفوف أو تحديثها" أو حذفها، يلزم إجراء تحويل في الصف المعدل لوضع علامة على الصفوف التي تخضع لتلك الإجراءات. |
نعم | true أو false |
قابلة للادراج قابل للتحديث قابل للإدراج أو التحديث قابل للحذف |
اسم الكيان | الاسم المنطقي للكيان المراد كتابته. | نعم، عند استخدام مجموعة البيانات المضمنة | - | (لمجموعة البيانات المضمنة فقط) الكيان |
مثال البرنامج النصي لمتلقي Dynamics
عند استخدام مجموعة بيانات Dynamics باعتباره نوع المصدر، يكون البرنامج النصي لتدفق البيانات المقترنة:
IncomingStream sink(allowSchemaDrift: true,
validateSchema: false,
deletable:true,
insertable:true,
updateable:true,
upsertable:true,
skipDuplicateMapInputs: true,
skipDuplicateMapOutputs: true) ~> DynamicsSink
إذا كنت تستخدم مجموعة بيانات مضمنة، يكون البرنامج النصي لتدفق البيانات المقترنة:
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
بحث عن خصائص النشاط
لمعرفة تفاصيل حول الخصائص، راجع نشاط البحث.
المحتوى ذو الصلة
للحصول على قائمة بالبيانات المدعومة يخزن نشاط النسخ كمصادر ومتلقين، راجع مخازن البيانات المدعومة.