نسخ البيانات من وإلى Salesforce Service Cloud باستخدام Azure Data Factory أو Azure Synapse Analytics

ينطبق على: Azure Data Factory Azure Synapse Analytics

تلميح

جرب Data Factory في Microsoft Fabric، وهو حل تحليلي متكامل للمؤسسات. يغطي Microsoft Fabric كل شيء بدءا من حركة البيانات إلى علم البيانات والتحليلات في الوقت الحقيقي والمعلومات المهنية وإعداد التقارير. تعرف على كيفية بدء إصدار تجريبي جديد مجانا!

توضح هذه المقالة كيفية استخدام نشاط النسخ في Azure Data Factory وخطوط أنابيب Azure Synapse لنسخ البيانات من وإلى Salesforce Service Cloud. وهو يستند إلى مقالة نظرة عامة حول نشاط النسخ التي تعرض نظرة عامة حول نشاط النسخ.

هام

يوفر موصل Salesforce Service Cloud الجديد دعما أصليا محسنا ل Salesforce Service Cloud. إذا كنت تستخدم موصل Salesforce Service Cloud القديم في الحل الخاص بك، فيرجى ترقية موصل Salesforce Service Cloud قبل 11 أكتوبر 2024. راجع هذا القسم للحصول على تفاصيل حول الفرق بين الإصدار القديم والأحدث.

القدرات المدعومة

موصل سحابة خدمة Salesforce هذا مدعوم للإمكانيات التالية:

القدرات المدعومة IR
Copy activity (المصدر/المتلق) (1) (2)
نشاط البحث (1) (2)

① وقت تشغيل تكامل Azure ② وقت تشغيل التكامل المستضاف ذاتيًا

للحصول على قائمة مخازن البيانات المدعومة من نشاط النسخ كمصادر ومتلقين، راجع جدول مخازن البيانات المدعومة.

يدعم موصل Salesforce Service Cloud هذا، على وجه التحديد:

  • إصدارات مطور Salesforce Developer أو المحترفة أو المؤسسات أو الإصدارات غير المحدودة.
  • نسخ البيانات من وإلى مجال مخصص (يمكن تكوين المجال المخصص في كل من بيئات الإنتاج وبيئة الاختبار المعزولة).

يمكنك تعيين إصدار واجهة برمجة التطبيقات المستخدم لقراءة/كتابة البيانات بشكل صريح عبر apiVersion خاصية في الخدمة المرتبطة. عند نسخ البيانات إلى Salesforce Service Cloud، يستخدم الموصل BULK API 2.0.

المتطلبات الأساسية

  • يجب تمكين إذن API في Salesforce.

  • تحتاج إلى تكوين التطبيقات المتصلة في مدخل Salesforce للإشارة إلى هذا المستند الرسمي أو إرشادات خطوة بخطوة في التوصية الواردة في هذه المقالة.

    هام

    • يجب أن يكون لدى مستخدم التنفيذ إذن واجهة برمجة التطبيقات فقط.
    • يمكن تغيير وقت انتهاء صلاحية الرمز المميز للوصول من خلال نهج جلسة العمل بدلا من رمز التحديث المميز.

حدود واجهة برمجة تطبيقات Salesforce المجمعة 2.0

نستخدم Salesforce Bulk API 2.0 للاستعلام عن البيانات واستيعابها. في Bulk API 2.0، يتم إنشاء دفعات لك تلقائيا. يمكنك إرسال ما يصل إلى 15000 دفعة لكل فترة 24 ساعة متجددة. إذا تجاوزت الدفعات الحد، فسترى حالات فشل.

في Bulk API 2.0، يستهلك استيعاب المهام فقط الدفعات. مهام الاستعلام لا. للحصول على التفاصيل، راجع كيفية معالجة الطلبات في دليل مطور واجهة برمجة التطبيقات المجمعة 2.0.

لمزيد من المعلومات، راجع قسم "الحدود العامة" في حدود مطور Salesforce.

الشروع في العمل

لتنفيذ نشاط النسخ باستخدام أحد المسارات، يمكنك استخدام إحدى الأدوات أو عدد تطوير البرامج التالية:

إنشاء خدمة مرتبطة بـ Salesforce Service Cloud باستخدام واجهة المستخدم

استخدم الخطوات التالية لإنشاء خدمة مرتبطة بـSalesforce Service Cloud في واجهة مستخدم مدخل Microsoft Azure.

  1. استعرض للوصول إلى علامة التبويب "Manage" في مصنع بيانات Azure أو مساحة عمل Synapse، وحدد "Linked Services"، ثم انقر فوق "New":

  2. ابحث عن "Salesforce" وحدد "موصلSalesforce Service Cloud.

    لقطة شاشة لموصل Salesforce Service Cloud.

  3. قم بتكوين تفاصيل الخدمة، واختبر الاتصال، وأنشئ الخدمة المرتبطة الجديدة.

    لقطة شاشة لتكوين الخدمة المرتبطة ل Salesforce Service Cloud.

تفاصيل تكوين الموصل

توفر الأقسام التالية تفاصيل حول الخصائص المستخدمة لتعريف الكيانات الخاصة بموصل Salesforce Service Cloud.

خصائص الخدمة المرتبطة

يتم دعم الخصائص التالية لخدمة Salesforce Service Cloud المرتبطة.

الخاصية الوصف مطلوب
النوع يجب تعيين خاصية النوع إلى SalesforceServiceCloudV2. ‏‏نعم‬
environmentUrl حدد عنوان URL لمثيل Salesforce Service Cloud.
على سبيل المثال، حدد "https://<domainName>.my.salesforce.com" لنسخ البيانات من المجال المخصص. تعرف على كيفية تكوين مجالك المخصص أو عرضه بالإشارة إلى هذه المقالة.
‏‏نعم‬
نوع المصادقة نوع المصادقة المستخدمة للاتصال بسحابة خدمة Salesforce.
القيمة المسموح بها هي OAuth2ClientCredentials.
‏‏نعم‬
clientId حدد معرف العميل لتطبيق Salesforce OAuth 2.0 المتصل. لمزيد من المعلومات، انتقل إلى هذه المقالة ‏‏نعم‬
clientSecret حدد سر العميل لتطبيق Salesforce OAuth 2.0 المتصل. لمزيد من المعلومات، انتقل إلى هذه المقالة ‏‏نعم‬
apiVersion حدد إصدار Salesforce Bulk API 2.0 لاستخدامه، على سبيل المثال. 52.0 يدعم Bulk API 2.0 إصدار واجهة برمجة التطبيقات >فقط = 47.0. للتعرف على إصدار Bulk API 2.0، راجع المقالة. إذا كنت تستخدم إصدار API أقل، فإنه سيؤدي إلى فشل. ‏‏نعم‬
connectVia يُستخدم وقت تشغيل التكامل للاتصال بمخزن البيانات. إذا لم يتم تحديده، فإنه يستخدم Azure Integration Runtime الافتراضي. لا

مثال: تخزين معلومات تسجيل الدخول

{
    "name": "SalesforceServiceCloudLinkedService",
    "properties": {
        "type": "SalesforceServiceCloudV2",
        "typeProperties": {
            "environmentUrl": "<environment URL>",
            "authenticationType": "OAuth2ClientCredentials",
            "clientId": "<client ID>",
            "clientSecret": {
                "type": "SecureString",
                "value": "<client secret>"
            },
            "apiVersion": "<API Version>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

مثال: تخزين بيانات الاعتماد في Azure Key Vault

{
    "name": "SalesforceServiceCloudLinkedService",
    "properties": {
        "type": "SalesforceServiceCloudV2",
        "typeProperties": {
            "environmentUrl": "<environment URL>",
            "authenticationType": "OAuth2ClientCredentials",
            "clientId": "<client ID>",
            "clientSecret": {
                "type": "AzureKeyVaultSecret",
                "secretName": "<secret name of client secret in AKV>",
                "store":{
                    "referenceName": "<Azure Key Vault linked service>",
                    "type": "LinkedServiceReference"
                }
            },
            "apiVersion": "<API Version>"
        },
        "connectVia": {
            "referenceName": "<name of Integration Runtime>",
            "type": "IntegrationRuntimeReference"
        }
    }
}

خصائص مجموعة البيانات

للحصول على قائمة كاملة بالأقسام والخصائص المتوفرة لتعريف مجموعات البيانات، راجع مقالة مجموعات البيانات. يقدم هذا القسم قائمة بالخصائص التي تدعمها مجموعة بياناتOracle Service Cloud.

لنسخ البيانات من وإلى Salesforce Service Cloud، قم بتعيين خاصية نوع مجموعة البيانات إلى SalesforceServiceCloudV2Object. تدعم الخصائص التالية.

الخاصية الوصف مطلوب
النوع يجب تعيين خاصية النوع إلى SalesforceServiceCloudV2Object. ‏‏نعم‬
objectApiName اسم كائن Salesforce Service Cloud لاسترداد البيانات منه. إصدار وقت تشغيل التكامل المستضاف ذاتيا القابل للتطبيق هو 5.44.8984.1 أو أعلى. لا للمصدر (إذا تم تحديد "استعلام" في المصدر)، نعم للمتلقي
معرف التقرير معرف تقرير Salesforce Service Cloud لاسترداد البيانات منه. وهو غير مدعوم في المتلقي. لاحظ أن هناك قيود عند استخدام التقارير. إصدار وقت تشغيل التكامل المستضاف ذاتيا القابل للتطبيق هو 5.44.8984.1 أو أعلى. لا للمصدر (إذا تم تحديد "استعلام" في المصدر)، لا يدعم المتلقي

هام

جزء "__c" من اسم API مطلوب لأي عنصر مخصص.

اسم API لاتصال Salesforce

مثال:

{
    "name": "SalesforceServiceCloudDataset",
    "properties": {
        "type": "SalesforceServiceCloudV2Object",
        "typeProperties": {
            "objectApiName": "MyTable__c"
        },
        "schema": [],
        "linkedServiceName": {
            "referenceName": "<Salesforce Service Cloud linked service name>",
            "type": "LinkedServiceReference"
        }
    }
}

انسخ خصائص النشاط

للحصول على قائمة كاملة بالأقسام والخصائص المتوفرة لتعريف الأنشطة، راجع مقالة التدفقات. يقدم هذا القسم قائمة بالخصائص التي يدعمها مصدر Salesforce Service Cloud والملتقي.

Salesforce Service Cloud كنوع مصدر

لنسخ البيانات من Salesforce Service Cloud، قم بتعيين نوع المصدر في نشاط النسخ إلى SalesforceServiceCloudV2Source. يتم دعم الخصائص التالية في قسم المصدر لنشاط النسخ.

الخاصية الوصف مطلوب
النوع يجب تعيين خاصية نوع مصدر نشاط النسخ إلى SalesforceServiceCloudV2Source. ‏‏نعم‬
استعلام قم باستخدام الاستعلام المخصص لقراءة البيانات. يمكنك فقط استخدام استعلام لغة استعلام كائن Salesforce (SOQL) مع القيود. للحصول على قيود SOQL، راجع هذه المقالة. إذا لم يتم تحديد الاستعلام، استرداد جميع بيانات كائن Salesforce المحدد في "objectApiName/reportId" في مجموعة البيانات. لا (إذا تم تحديد "objectApiName/reportId" في مجموعة البيانات)
includeDeletedObjects يشير إلى ما إذا كان يلزم الاستعلام عن السجلات الموجودة أو الاستعلام عن كافة السجلات بما في ذلك السجلات المحذوفة. إذا لم يتم تحديده، يكون السلوك الافتراضي خطأ.
القيم المسموح بها: خطأ (افتراضي)، صحيح.
لا

هام

جزء "__c" من اسم API مطلوب لأي عنصر مخصص.

قائمة بأسماء API لاتصال Salesforce

مثال:

"activities":[
    {
        "name": "CopyFromSalesforceServiceCloud",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<Salesforce Service Cloud input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "SalesforceServiceCloudV2Source",
                "query": "SELECT Col_Currency__c, Col_Date__c, Col_Email__c FROM AllDataType__c",
                "includeDeletedObjects": false
            },
            "sink": {
                "type": "<sink type>"
            }
        }
    }
]

Salesforce Service Cloud باعتبارها نوع مصدر

لنسخ البيانات إلى Salesforce Service Cloud، قم بتعيين نوع المتلقي في نشاط النسخ إلى SalesforceServiceCloudV2Sink. تُدعم الخصائص التالية في قسم متلقي نشاط النسخ.

الخاصية الوصف مطلوب
النوع يجب تعيين خاصية نوع متلقي نشاط النسخ إلى SalesforceServiceCloudV2Sink. ‏‏نعم‬
writeBehavior أسلوب الكتابة للعملية.
القيم المسموح بها هي إدراج و Upsert.
لا (إذا كانت القيمة الافتراضية هي إدراج)
externalIdFieldName اسم حقل معرف خارجي لعملية upsert. يجب تعريف الحقل المحدد بـ "حقل المعرف الخارجي" في عنصر Salesforce. لا يمكن أن تكون "القيم الفارغة" في بيانات الإدراج المطابق. نعم لقيمة "Upsert"
writeBatchSize عدد الصفوف من البيانات المكتوبة في Salesforce Service Cloud في كل دفعة. اقترح تعيين هذه القيمة من 10,000 إلى 200,000. سيؤدي عدد قليل جدا من الصفوف في كل دفعة إلى تقليل أداء النسخ. قد يتسبب عدد كبير جدا من الصفوف في كل دفعة في انتهاء مهلة واجهة برمجة التطبيقات. لا (الافتراضي هو 100,000)
ignoreNullValues يشير إلى ما إذا كان سيتم تجاهل القيم الفارغة من بيانات الإدراج أثناء عملية الكتابة أم لا.
القيم المسموح بها صواب و خطأ.
- صواب: ترك البيانات في عنصر الوجهة دون تغيير عند إجراء عملية upsert أو تحديث. إدراج قيمة افتراضية معرفة عند القيام بعملية إدراج.
- خطأ: تحديث البيانات في عنصر الوجهة الفارغة عند القيام بعملية upsert أو تحديث. أدرج قيمة فارغة عند القيام بعملية إدراج.
لا (إذا كانت القيمة الافتراضية خطأ)
 maxConcurrentConnections الحد الأعلى للاتصالات المتزامنة التي تم إنشاؤها إلى مخزن البيانات أثناء تشغيل النشاط. حدد قيمة فقط عندما تريد تحديد الاتصالات المتزامنة.  لا

مثال: متلقي Salesforce Service Cloud في نشاط نسخ

"activities":[
    {
        "name": "CopyToSalesforceServiceCloud",
        "type": "Copy",
        "inputs": [
            {
                "referenceName": "<input dataset name>",
                "type": "DatasetReference"
            }
        ],
        "outputs": [
            {
                "referenceName": "<Salesforce Service Cloud output dataset name>",
                "type": "DatasetReference"
            }
        ],
        "typeProperties": {
            "source": {
                "type": "<source type>"
            },
            "sink": {
                "type": "SalesforceServiceCloudV2Sink",
                "writeBehavior": "Upsert",
                "externalIdFieldName": "CustomerId__c",
                "writeBatchSize": 10000,
                "ignoreNullValues": true
            }
        }
    }
]

تعيين نوع البيانات لـ Salesforce Service Cloud

عند نسخ البيانات من Salesforce Service Cloud، يتم استخدام التعيينات التالية من أنواع بيانات Salesforce Service Cloud إلى أنواع البيانات المؤقتة داخل الخدمة داخليا. لمعرفة كيفية تعيين نشاط النسخ للمخطط المصدر ونوع البيانات إلى المتلقي، راجع تعيينات المخطط ونوع البيانات.

نوع بيانات Salesforce Service Cloud نوع بيانات مؤقتة للخدمة
الرقم التلقائي السلسلة‬
خانة اختيار Boolean
‏‏العملة عدد عشري
التاريخ DateTime
التاريخ/الوقت DateTime
بريد إلكتروني السلسلة‬
المعرف السلسلة‬
علاقة البحث السلسلة‬
قائمة الخيارات متعددة الاختيارات السلسلة‬
الرقم‬ عشري
نسبة مئوية عدد عشري
هاتف السلسلة‬
قائمة انتقاء السلسلة‬
نص السلسلة‬
جزء نص السلسلة‬
مساحة النص (طويل) السلسلة‬
مساحة النص (منسق) السلسلة‬
النص (مشفر) السلسلة‬
عنوان URL السلسلة‬

إشعار

يتم تعيين نوع رقم سحابة خدمة Salesforce إلى نوع عشري في Azure Data Factory وخطوط أنابيب Azure Synapse كنوع بيانات مؤقت للخدمة. النوع العشري يحترم الدقة والمقياس المحددين. بالنسبة للبيانات التي تتجاوز منازلها العشرية المقياس المحدد، سيتم تقريب قيمتها في معاينة البيانات ونسخها. لتجنب فقدان الدقة هذا في Azure Data Factory وخطوط أنابيب Azure Synapse، ضع في اعتبارك زيادة المنازل العشرية إلى قيمة كبيرة بشكل معقول في صفحة تحرير تعريف الحقل المخصص في Salesforce Service Cloud.

بحث عن خصائص النشاط

لمعرفة تفاصيل حول الخصائص، تحقق من نشاط البحث.

ترقية الخدمة المرتبطة ب Salesforce Service Cloud

فيما يلي الخطوات التي تساعدك على ترقية الخدمة المرتبطة والاستعلامات ذات الصلة:

  1. قم بتكوين التطبيقات المتصلة في مدخل Salesforce بالإشارة إلى المتطلبات الأساسية.

  2. إنشاء خدمة جديدة مرتبطة ب Salesforce Service Cloud وتكوينها بالإشارة إلى خصائص الخدمة المرتبطة.

  3. إذا كنت تستخدم استعلام SQL في مصدر نشاط النسخ أو نشاط البحث الذي يشير إلى الخدمة المرتبطة القديمة، فستحتاج إلى تحويلها إلى استعلام SOQL. تعرف على المزيد حول استعلام SOQL من Salesforce Service Cloud كنوع مصدر ولغة استعلام عنصر Salesforce (SOQL).

  4. يتم استبدال readBehavior بتضمينDeletedObjects في مصدر نشاط النسخ أو نشاط البحث. للحصول على التكوين التفصيلي، راجع Salesforce Service Cloud كنوع مصدر.

الاختلافات بين Salesforce Service Cloud وSalesforce Service Cloud (قديم)

يوفر موصل Salesforce Service Cloud وظائف جديدة ومتوافقا مع معظم ميزات موصل Salesforce Service Cloud (القديم). يوضح الجدول أدناه اختلافات الميزات بين Salesforce Service Cloud وSalesforce Service Cloud (القديم).

سحابة خدمة Salesforce Salesforce Service Cloud (قديم)
دعم SOQL داخل Salesforce Bulk API 2.0.
بالنسبة إلى استعلامات SOQL:
• عبارات GROUP BY أو LIMIT أو ORDER BY أو OFFSET أو TYPEOF غير مدعومة.
• الدوال التجميعية مثل COUNT() غير مدعومة، يمكنك استخدام تقارير Salesforce لتنفيذها.
• دالات التاريخ في عبارات GROUP BY غير مدعومة، ولكنها مدعومة في عبارة WHERE.
• حقول العنوان المركب أو حقول الموقع الجغرافي المركب غير مدعومة. كبديل، استعلم عن المكونات الفردية للحولات المركبة.
• استعلامات العلاقة بين الأصل والتابع غير معتمدة، بينما يتم دعم استعلامات العلاقة بين الوالدين.
دعم كل من بناء جملة SQL وSQL.
لا يتم دعم الكائنات التي تحتوي على حقول ثنائية عند تحديد الاستعلام. يتم دعم الكائنات التي تحتوي على حقول ثنائية عند تحديد الاستعلام.
دعم الكائنات داخل واجهة برمجة التطبيقات المجمعة عند تحديد الاستعلام. دعم الكائنات غير المدعومة بواجهة برمجة التطبيقات المجمعة عند تحديد الاستعلام.
دعم التقرير عن طريق تحديد معرف تقرير. دعم بناء جملة استعلام التقرير، مثل {call "<report name>"}.

للحصول على قائمة بمخازن البيانات المدعومة كمصادر ومتلقين من خلال نشاط النسخ، انظر مخازن البيانات المدعومة .