استرداد السجلات باستخدام Rest API في Salesforce

Astrdad Alsjlat Bastkhdam Rest Api Fy Salesforce



في هذا الدليل ، سنناقش كيفية استرداد سجلات Salesforce باستخدام REST API من خلال Workbench في Salesforce. كجزء من هذا الدليل ، سنناقش كيفية استخدام Workbench ، وجلب سجلات محددة باستخدام sObject ، وجلب سجلات متعددة من كائن باستخدام الاستعلام وجلب السجلات عن طريق كتابة Apex Custom REST API. سوف نستخدم كائن Salesforce Standard Case للتوضيح. ليست هناك حاجة لإنشاء أي سجل حالة في خلفية Salesforce. نستخدم سجل الحالة القياسي الحالي الذي توفره Salesforce.

إدخال Workbench

Workbench ليس منتجًا رسميًا من Salesforce.com. لكننا سنستخدم Salesforce لتنفيذ عمليات معالجة البيانات مثل التحديد والإدراج والإصلاح والتحديث والحذف بمجرد تسجيل الدخول إلى حساب Salesforce الخاص بك (يدعم كل من Sandbox والإنتاج). هذا هو الموقع الرسمي لتسجيل الدخول إلى Workbench باستخدام Salesforce: https://workbench.developerforce.com/login.php .

اعتبارًا من الآن ، احتفظ بإصدار API كما هو موجود فقط وانقر على زر 'تسجيل الدخول باستخدام Salesforce'.









نحن بحاجة إلى مستكشف REST. انتقل إلى علامة التبويب 'الأدوات المساعدة' وانقر على 'REST Explorer'.







سترى واجهة المستخدم كما في الرسم التوضيحي التالي. نحتاج إلى اختيار GET لجلب السجلات من Salesforce في هذا الدليل بأكمله. نحتاج إلى تحديد URI الذي يجلب سجلات Salesforce والنقر فوق الزر 'تنفيذ'.



استرداد سجل محدد باستخدام معرف Salesforce

استنادًا إلى معرف سجل Salesforce ، يمكننا جلب سجل Salesforce بالكامل. نحتاج إلى ضبط URI على النحو التالي:

/ خدمات / بيانات / v56.0 / الكائنات / اسم الكائن / بطاقة تعريف

هنا ، 'objectAPIName' هو عنصر Salesforce Standard / Custom ويشير 'id' إلى معرف Salesforce.

يعود:

ستحصل على استجابة HTTP / 1.1 200 OK الأولية بتنسيق JSON كما يلي:

{
'صفات' : {
'يكتب' :
'عنوان url' :
} و
'مجال' : قيمة،
...
}

مثال:

في هذا المثال ، نحضر سجل الحالة 5005i00000W4GM5AAN.

يكتب: / خدمات / بيانات / v56.0 / الكائنات / قضية / 5005i00000W4GM5AAN

نتيجة:

يمكننا أن نرى أن الرد يتم إنشاؤه بتنسيق JSON.

يمكننا أيضًا عرض النتائج مباشرةً من هنا:

استرجاع سجلات متعددة باستخدام الاستعلام

حان الوقت لاسترداد سجلات متعددة من كائن Salesforce. في السابق ، حددنا الكائنات في URI. هنا ، نحتاج إلى تحديد استعلام يأخذ الاستعلام كمعامل.

URI: الخدمات / بيانات / v57.0 / استفسار / ؟ ف = SELECT + field1، field2، .... + from + ObjectAPIName

نحتاج إلى استخدام '+' كمحدد لربط الكلمات الرئيسية في الاستعلام. تقوم بإرجاع إجمالي الحجم والسجلات في مجلد. اسم المجلد لكل سجل هو [العنصر 1] ، ... [العنصر n].

مثال 1:
دعنا نعيد السجلات التي تتضمن رقم القضية والحالة والأولوية والوصف من كائن الحالة.

/ خدمات / بيانات / v57.0 / استفسار / ؟ ف = حدد + رقم الحالة ، الحالة ، الأولوية ، الوصف + من + حالة

نتيجة:

عند النقر فوق 'توسيع الكل' ، سترى جميع السجلات بسماتها وقيمها.

اسمحوا لي أن أعرض السجلات الأولى والأخيرة:

المثال الثاني:
لنعد ثلاثة سجلات فقط بنفس الحقول كما رأينا في المثال الأول.

/ خدمات / بيانات / v57.0 / استفسار / ؟ ف = حدد + رقم الحالة ، الحالة ، الأولوية ، الوصف + من + حالة + حد + 2

نتيجة:
يتم إرجاع أول سجلين موجودين في كائن Case.

المثال 3:
لنحدد شرط WHERE في الاستعلام الذي يحدد السجلات بالحالة 'جديد'.

/ خدمات / بيانات / v57.0 / استفسار / ؟ ف = حدد + رقم الحالة ، الحالة ، الأولوية ، الوصف + من + حالة + أين + حالة = 'جديد'

نتيجة:

توجد خمسة سجلات بحالة 'جديد'.

مورد الراحة المخصص في Apex

يمكننا استخدام Salesforce Apex الذي يقوم بإرجاع السجل من كائن Salesforce عن طريق تحديد URI في Workbench. لكتابة REST في Apex ، يتعين علينا استخدام بعض التعليقات التوضيحية التي تصل إلى REST API في فئة Apex الخاصة بك. تأكد من أن فئة Apex الخاصة بنا يجب أن تكون ثابتة على مستوى العالم.

1.RestResource التعليق التوضيحي

يتم استخدام هذا التعليق التوضيحي لتمكين الذي يعرض فئة Apex كمورد REST. يأخذ urlMapping كمعامل يتم استخدامه لتحديد موقع URI في Workbench.

بناء الجملة:RestResource (urlMapping = ’/ Version / ApexClassName /’)

'الإصدار' هو إصدار Workbench مثل V56.0 و 'ApexClassName' هو فئة Apex حيث يتم تضمين موارد Rest API.

2.HttpGet التعليقات التوضيحية

يتم استخدام هذا التعليق التوضيحي لتمكين الذي يعرض فئة Apex كمورد REST. يتم استدعاؤه عند إرسال طلب HTTP GET إلى الخادم وإرجاع المورد المحدد.

بناء الجملة:httpGet

مثال 1: معلمة واحدة

اكتب فئة Apex “RestApi_Get_Record.apxc” التي تتضمن طريقة 'Rest Get' لإرجاع المعرف ورقم CaseNumber والحالة والأولوية والأصل من الحالة من كائن Case.

@ RestResource ( urlMapping = '/v56.0/RestApi_Get_Record/' )
فئة عالمية RestApi_Get_Record {

// REST - احصل على الطريقة
@ http الحصول على
الحالة الثابتة العالمية getCaseDetails ( ) {

// إنشاء كائن ل كائن القضية
Case_obj = حالة جديدة ( ) ؛
خريطة < سلسلة ، سلسلة > paramsMap = RestContext.request.params ،

// احصل على ال قضية بطاقة تعريف
حالة حالة السلسلة = paramsMap.get ( 'input_id' ) ؛

// استعلام SOQL من شأنه يعود بطاقة تعريف ، CaseNumber ، الحالة ، الأولوية ، الأصل من حالة من
// كائن القضية
case_obj = [ يختار بطاقة تعريف ، CaseNumber ، الحالة ، الأولوية ، الأصل من الحالة حيث المعرف =: caseid ] ؛
يعود حالة_obj ؛
}
}

URI والنتيجة:

انتقل إلى Workbench وانتقل إلى REST Explorer. قم بتمرير المعرف كـ 5002t00000Pdzr2AAB إلى معلمة input_id.

/ خدمات / قمة / v56.0 / RestApi_Get_Record / ؟ input_id = 5002t00000Pdzr2AAB

توضيح:

  • قم بإنشاء كائن لحالة 'case_obj'.
  • احصل على المعلمات باستخدام RestContext.request.params.
  • احصل على معرف الحالة من المعلمة input_id وقم بتخزينها في متغير caseid.
  • اكتب استعلام SOQL الذي يعرض المعرف ورقم الحالة والحالة والأولوية والأصل من الحالة من كائن الحالة للحالة 'caseid'.
  • إعادة كائن الحالة (case_obj).

مثال 2: بارامز متعددة

استخدم فئة Apex السابقة واحصل على معلمة 'الحالة' جنبًا إلى جنب مع المعرف. حدد هاتين المعلمتين في Workbench URI المفصول بعلامة '&'.

@ RestResource ( urlMapping = '/v56.0/RestApi_Get_Record/' )
فئة عالمية RestApi_Get_Record {

// REST - احصل على الطريقة
@ http الحصول على
الحالة الثابتة العالمية getCaseDetails ( ) {

// إنشاء كائن ل كائن القضية
Case_obj = حالة جديدة ( ) ؛
خريطة < سلسلة ، سلسلة > id_param = RestContext.request.params ،
خريطة < سلسلة ، سلسلة > status_param = RestContext.request.params ،

// احصل على id_param في case_id
سلسلة case_id = id_param.get ( 'input_id' ) ؛
// احصل على status_param في حالة_الحالة
String case_status = status_param.get ( 'حالة' ) ؛

case_obj = [ يختار بطاقة تعريف ، CaseNumber ، الحالة ، الأولوية ، الأصل من الحالة حيث المعرف =: case_id و Status =: case_status ] ؛
يعود حالة_obj ؛
}
}

URI والنتيجة:

انتقل إلى Workbench وانتقل إلى REST Explorer. قم بتمرير input_id كـ 5002t00000PdzqwAAB والحالة كـ 'مغلق' في URI.

/ خدمات / قمة / v56.0 / RestApi_Get_Record / ؟ input_id = 5002t00000PdzqwAAB & حالة = مغلق

خاتمة

ناقشنا ثلاثة سيناريوهات لاسترداد سجلات Salesforce من خلال Salesforce REST API باستخدام Workbench. لإرجاع سجل معين ، نحتاج إلى تحديد sObject عن طريق تمرير المعرف كمعامل في URI. وبالمثل ، نقوم بتمرير معلمات الاستعلام للحصول على سجلات محددة. باستخدام Apex ، يمكننا إنشاء طريقة 'Get' الخاصة بنا لتحديد السجل بناءً على معلمات فردية / متعددة.