البرنامج التعليمي لمطور Salesforce: ابدأ مع برمجة Salesforce



تشرح هذه المدونة التعليمية مفاهيم البرمجة المختلفة مثل Visualforce و Apex التي يجب أن تعرفها لبدء حياتك المهنية كمطور Salesforce.

هل تطمح لأن تكون مطور تطبيقات برمجية؟ هل تريد إنشاء تطبيقك الخاص على منصة Force.com؟ إذا كانت إجابتك على هذه الأسئلة بنعم ، فعليك بالتأكيد التفكير في أن تصبح مطورًا في Salesforce.

في مدوناتي السابقة ، ناقشت حول و شهادات Salesforce وأظهر لك أيضًا بناء تطبيق مخصص باستخدام الخيارات التعريفية المتاحة في Salesforce. في هذه المدونة ، سأناقش الخيارات البرمجية المتاحة في Salesforce لتطوير تطبيقك.





هندسة MVC

قبل الغوص في بناء تطبيق باستخدام Visualforce و Apex ، سأناقش أولاً حول بنية Salesforce Model-View-Controller. يوجد أدناه مخطط يوضح بنية Salesforce Model-View-Controller جنبًا إلى جنب مع مكونات Salesforce المختلفة.

mvc - مطور قوه المبيعات - edureka



نموذج: النموذج هو كائنات بيانات Salesforce والحقول والعلاقات. يتكون من كائنات قياسية (حساب ، فرصة ، إلخ) وعناصر مخصصة (كائنات تقوم بإنشائها).

رأي: يمثل العرض عرض البيانات ، أي واجهة المستخدم. في Salesforce ، تشكل طريقة العرض صفحات visualforce والمكونات وتخطيطات الصفحة وعلامات التبويب.

مراقب: وحدة التحكم هي اللبنة الأساسية لمنطق التطبيق الفعلي. يمكنك تنفيذ الإجراءات عندما يتفاعل المستخدم مع Visualforce.



Salesforce في العمل

لكي تكون مطورًا في Salesforce ، عليك أولاً معرفة كيفية عمل تطبيقات Salesforce. يوجد أدناه صورة والذي يمنحك الصورة الكاملة لتطبيق Salesforce. إما أن يطلب العميل أو المستخدم معلومات أو يوفرها لتطبيق Salesforce. يتم ذلك بشكل عام باستخدام Visualforce. يتم بعد ذلك تمرير هذه المعلومات إلى طبقة منطق التطبيق المكتوبة في Apex. اعتمادًا على المعلومات ، يتم إدراج البيانات أو إزالتها من قاعدة البيانات. يوفر لك Salesforce أيضًا خيار استخدام خدمات الويب للوصول مباشرة إلى منطق التطبيق.

يمكن لمطور Salesforce أن يقترب من التطوير إما باستخدام الخيارات التصريحية أو الآلية. يوجد أدناه صورة تزودك بتفاصيل حول كل من الأساليب التصريحية والبرمجية المتاحة في كل من واجهة المستخدم ومنطق الأعمال وطبقة نموذج البيانات. لإنشاء واجهة المستخدم الخاصة بك ، يمكنك إما استخدام النهج التعريفي الذي يستخدم تخطيطات الصفحات وأنواع السجلات أو استخدام نهج برمجي مثل صفحات ومكونات فيجوالفورس. بشكل عام ، يجب عليك استخدام الأسلوب البرمجي فقط عندما لا تتمكن من تحقيق واجهة المستخدم الضرورية باستخدام النهج التعريفي. لتطوير طبقة منطق الأعمال للتطبيق الخاص بك ، يمكنك إما استخدام خيارات Salesforce التصريحية لسير العمل وقواعد التحقق من الصحة وعمليات الموافقة أو استخدام نهج برمجي مثل المشغلات ووحدات التحكم والفئات. للوصول إلى نموذج البيانات ، يمكنك استخدام الأسلوب التعريفي باستخدام الكائنات والحقول والعلاقات. يمكنك أيضًا الوصول إلى نموذج البيانات برمجيًا باستخدام Metadata API و REST API و API المجمع.

لقد رأينا كيف تعمل تطبيقات Salesforce ، وبنية MVC المستخدمة للتطوير في Salesforce والطريقتين المختلفتين المتاحتين لمطور Salesforce. الآن ، اسمحوا لي أن أناقش حول Visualforce و Apex.

القوة المرئية

لإنشاء تطبيقات على نظام Salesforce الأساسي ، يلزمك معرفة كيفية تطوير واجهة المستخدم وكتابة منطق التطبيق. بصفتك مطورًا في Salesforce ، يمكنك تطوير واجهة المستخدم باستخدام Visualforce. Visualforce هو إطار عمل واجهة المستخدم لمنصة Force.com. تمامًا مثل كيفية استخدام إطار عمل javascript Angular-JS لبناء واجهات مستخدم لمواقع الويب الخاصة بك ، يمكنك استخدام Visualforce لتصميم وإنشاء واجهات مستخدم لتطبيقات Salesforce الخاصة بك.

يمكنك استخدام visualforce كلما احتجت إلى إنشاء صفحات مخصصة. بعض الأمثلة على المواقف التي يمكنك فيها استخدام Visualforce هي:

  • لبناء قوالب البريد الإلكتروني
  • لتطوير واجهة المستخدم المتنقلة
  • لإنشاء ملفات PDF من البيانات المخزنة في Salesforce
  • لتضمينها في تخطيطات الصفحة القياسية الخاصة بك
  • لتجاوز صفحة Salesforce القياسية
  • لتطوير علامات تبويب مخصصة لتطبيقك

تتكون صفحة القوة البصرية من عنصرين أساسيين:

  • Visualforce Markup - يتضمن ترميز Visualforce علامات Visualforce أو HTML أو JavaScript أو أي كود آخر ممكن على الويب.
  • وحدة تحكم Visualforce - تحتوي وحدة تحكم visualforce على التعليمات التي تحدد ما يحدث عندما يتفاعل المستخدم مع أحد المكونات. تتم كتابة وحدة تحكم Visualforce باستخدام لغة برمجة Apex.

يمكنك إلقاء نظرة على رمز صفحة Visualforce بسيط مع المكونات المختلفة أدناه:

لقد أوضحت لك أدناه خطوات كتابة صفحة فيجوال فورس بسيطة لعرض البلدان وقيم عملتها:

الخطوة 1: من الإعداد ، أدخل صفحات Visualforce في مربع البحث السريع ، ثم حدد Visualforce Pages وانقر فوق جديد.

الخطوة 2: في المحرر أضف الكود التالي لعرض الدولة وقيمة عملتها:

ذروة

بمجرد الانتهاء من تطوير واجهة المستخدم ، بصفتك مطور Salesforce ، تحتاج إلى معرفة كيفية إضافة منطق مخصص إلى تطبيقك. يمكنك كتابة رمز وحدة التحكم وإضافة منطق مخصص لتطبيقك باستخدام لغة برمجة Apex. Apex هي لغة برمجة موجهة للكائنات تتيح لك تنفيذ بيانات التحكم في التدفق والمعاملات على منصة Force.com. إذا كنت قد استخدمت لغة برمجة جافا من قبل ، فيمكنك بسهولة تعلم Apex. بنية Apex مشابهة بنسبة 70٪ لتلك الخاصة بجافا.

يمكنك استخدام Apex متى أردت إضافة منطق مخصص لتطبيقك. بعض الأمثلة على المواقف التي يمكنك فيها استخدام Apex هي:

  • عندما تريد إضافة خدمات الويب والبريد الإلكتروني إلى تطبيقك
  • عندما تريد تنفيذ عمليات تجارية معقدة
  • عندما تريد إضافة قواعد التحقق المعقدة إلى التطبيق الخاص بك
  • عندما تريد إضافة منطق مخصص لعمليات مثل حفظ سجل

يوجد أدناه لقطة شاشة لرمز Apex مع مكوناته المختلفة مثل بيان التكرار وبيان التحكم في التدفق واستعلام SOQL:

الآن بعد أن فهمنا ماهية Apex ومتى نستخدمها ، دعني أتعمق في برمجة Apex.

البرمجة في أبيكس

إذا كنت قد فهمت المفاهيم الموضحة أعلاه ، فأنت في منتصف رحلتك لتصبح مطور Salesforce. في هذا القسم ، سوف أتعمق أكثر في Apex من خلال تزويدك بمعلومات حول أنواع البيانات والمتغيرات المختلفة ، والطرق المختلفة لاسترداد البيانات من قاعدة البيانات وإظهار كيفية كتابة فصل دراسي وطريقة.

أنواع البيانات والمتغيرات

تقدم لك Salesforce 4 أنواع ومتغيرات بيانات مختلفة. يوفر لك الجدول أدناه معلومات عن كل نوع من أنواع البيانات الأربعة:

أنواع البيانات والمتغيرات وصف مثال
بدائيتشمل أنواع البيانات الأولية في Salesforce منطقية وتاريخًا وعددًا صحيحًا وكائن وسلسلة ووقتًا.منطقية isSunny = صحيح

عدد صحيح أنا = 1

String myString = 'Hello World'

sObjectsيشير sObject إلى أي كائن يمكن تخزينه في قاعدة البيانات.الحساب أ = حساب جديد ()

MyCustomObj__c obj = جديد MyCustomObj__c ()

المجموعاتلدى Apex الأنواع التالية من المجموعات:

  • القوائم
  • خرائط
  • مجموعات
قائمة var_lst = قائمة جديدة ()

تعيين setOne = مجموعة جديدة ()

خريطة var_map = خريطة جديدة ()

EnumsEnums هي أنواع بيانات مجردة ذات قيم تأخذ مجموعة محدودة من المعرفات.مواسم التعداد العامة {الشتاء ، الربيع ، الصيف ، الخريف}


SOQL و SOSL

يتطلب تطوير التطبيقات البرمجية أن تعرف كيفية إدراج البيانات واستردادها من قواعد البيانات. في Salesforce ، يمكنك استرداد البيانات من قواعد البيانات باستخدام SOQL و SOSL. إذا كنت تريد أن تكون مطورًا في Salesforce ، فيجب أن تعرف كلتا لغتي الاستعلام هاتين. لقد قدمت لك شرحًا تفصيليًا لهذه اللغات أدناه:

  • SOQL هي اختصار لـ Salesforce Object Query Language. باستخدام عبارات SOQL ، يمكنك استرداد البيانات من قاعدة البيانات كقائمة من sObjects أو كائن sObject واحد أو عدد صحيح لطريقة العد. يمكنك التفكير في SOQL كمكافئ لاستعلام SELECT SOQL. لقد قدمت مثالاً على استعلام SOQL أدناه:

List accList = [SELECT Id، Name FROM Account WHERE Name = ”YourName”]

  • SOSL تعني لغة البحث عن كائن Salesforce. يمكنك استخدام عبارات SOSL لاسترداد قائمة sObjects ، حيث تحتوي كل قائمة على نتائج البحث لنوع sObject معين. يمكنك التفكير في SOSL كمكافئ لاستعلام البحث في قاعدة البيانات. لقد قدمت مثالاً على استعلام SOSL أدناه:

قائمةsearchList = [البحث عن 'الخريطة *' في جميع الحقول RETURNING Account (المعرف ، الاسم) ، جهة الاتصال ، الفرصة ، العميل المحتمل]

يمكنك استخدام SOQL عندما تعرف أي كائن توجد البيانات فيه وتستخدم SOSL عندما لا تعرف اسم الكائن حيث توجد البيانات.

الطبقات والطرق

كما هو الحال في أي لغة برمجة أخرى ، يمكنك تطوير الفئات والطرق باستخدام Apex. يمكنك التفكير في الفصل باعتباره مخططًا باستخدام الكائنات الفردية التي يتم إنشاؤها واستخدامها. يمكنك التفكير في طريقة ما على أنها برنامج فرعي يعمل على البيانات ويعيد قيمة. لقد قدمت لك بناء الجملة لكتابة فصل وطريقة أدناه:

سلسلة حتى الآن التحويل في جافا

سأوضح لك الآن كيفية إضافة فئة وطريقة في Apex:

الخطوة 1: من الإعداد ، أدخل Apex Classes في QuickFind Box ، ثم حدد Apex Classes وانقر فوق New.

الخطوة 2: في المحرر أضف تعريف الصنف التالي:

HelloWorld فئة عامة {

}

الخطوه 3: أضف تعريف طريقة بين أقواس الفتح والإغلاق للفئة:

helloWorldMethod (Country__c [] countries) {

لـ (Country__c country: countries) {

country.currency_value__c * = 1.5

}

}

الخطوة الرابعة: انقر فوق حفظ ويجب أن يكون الفصل كاملاً على النحو التالي:

HelloWorld فئة عامة {

helloWorldMethod (Country__c [] countries) {

لـ (Country__c country: countries) {

country.currency_value__c * = 1.5

}

}

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

محفزات

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

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

يتم تنفيذ المشغلات قبل أو بعد العمليات التالية:

  • إدراج
  • تحديث
  • حذف
  • اذهب
  • وجه الفتاة
  • الحذف

سأوضح لك كيفية إضافة مشغل في القمة عن طريق إضافة مشغل لكائن البلد الذي رأيته في الفصل أعلاه:

الخطوة 1: من إعدادات إدارة الكائن للبلد ، انتقل إلى المشغلات وانقر على جديد.

الخطوة 2: في محرر المشغل ، أضف تعريف المشغل التالي:

تشغيل HelloWorldTrigger on Country__c (قبل الإدراج) {

Country__c البلدان = Trigger.new

HelloWorld.helloWorldMethod (البلدان)

}

الفرق بين الشيف والدمية

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

حدود الحاكم

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

العمليات المجمعة

بصفتك مطورًا في Salesforce ، يجب عليك دائمًا التأكد من أن التعليمات البرمجية الخاصة بك تحافظ على حدود المحافظ. للتأكد من التزام Apex بحدود الحاكم ، يجب عليك استخدام نمط تصميم المكالمات الجماعية. تشير العملية المجمعة إلى تنفيذ أكثر من سجل عند إجراء عملية DML. قبل إجراء عملية DML ، يجب عليك دائمًا التأكد من إضافة الصفوف إلى مجموعة. يوجد أدناه صورة تمنحك وصفًا كاملاً لنمط تصميم العملية المجمعة.

DMLs وعمليات البيانات

لقد رأيت سابقًا كيفية استرداد البيانات من قاعدة البيانات باستخدام استعلامات SOQL و SOSL. دعنا الآن نلقي نظرة على العبارات المختلفة التي يمكنك استخدامها لإدراج البيانات في قاعدة بيانات Salesforce. بالنسبة لمطور Salesforce ، من الضروري معرفة ما يمكن أن تفعله هذه العبارات وكيفية استخدامها.

بيان DML

وصف
إدراجيضيف كائنًا واحدًا أو أكثر إلى بيانات مؤسستك
تحديثيعدل واحدًا أو أكثر من سجلات sObject الموجودة
وجه الفتاةيقوم بإنشاء سجلات جديدة وتحديث سجلات sObject
حذفحذف واحد أو أكثر من سجلات sObject الموجودة
الحذفيستعيد واحدًا أو أكثر من سجلات sObject الموجودة
اذهبيدمج ما يصل إلى ثلاثة سجلات من نفس نوع sObject في سجل واحد

فيجوالفورس وأبكس

لقد قطعت شوطًا طويلاً في سعيكم لتصبح مطورًا في Salesforce. سأناقش بعد ذلك حول كيفية دمج صفحة Visualforce الخاصة بك ورمز القمة الخاص بك. يمكنك توصيل صفحة visualforce الخاصة بك ورمز القمة الخاص بك باستخدام وحدات التحكم والإضافات.

  • وحدات تحكم مخصصة -عندما تريد تشغيل صفحة visualforce الخاصة بك بالكامل في وضع النظام ، أي بدون أذونات وأمان على مستوى المجال ، استخدم وحدة تحكم مخصصة.

  • تمديد وحدة التحكم -عندما تريد إضافة إجراءات أو وظائف جديدة تعمل على توسيع وظائف وحدة التحكم القياسية أو المخصصة ، استخدم ملحق وحدة التحكم.

في الكود أدناه ، أوضحت لك كيفية تضمين وحدة تحكم مخصصة في صفحة Visualforce الخاصة بك:

في الكود أدناه ، أوضحت لك كيفية تضمين امتداد وحدة التحكم في صفحة visualforce الخاصة بك:

معالجة الاستثناء

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

بصفتك مطورًا في Salesforce ، فأنت بحاجة إلى معرفة كيفية اكتشاف هذه الاستثناءات وماذا تفعل بمجرد اكتشافها. للقبض على الاستثناءات ، يمكنك استخدام المحاولة والتقاط ثم الإنشاء في النهاية. بمجرد اكتشاف الاستثناء ، يمكنك التعامل معه بالطرق المذكورة أدناه:

استثناء كيفية التعامل معها
DMLاستخدم طريقة addError () في سجل أو حقل
القوة المرئيةاستخدم فئة ApexPages.message
إرسال بريد إلكتروني على الاستثناءيمكنك إخطار المطور عن طريق البريد الإلكتروني
تسجيل الدخول في كائن مخصصيمكنك استخدام طريقة مستقبلية لالتقاط كائن مخصص

حتى الآن في مدونة مطوري Salesforce هذه ، رأيت كيفية تطوير واجهة المستخدم الخاصة بك باستخدام Visualforce ، لقد رأيت كيفية كتابة منطق مخصص باستخدام Apex ومفاهيم مختلفة مثل المشغلات والعمليات المجمعة ومعالجة الاستثناءات. أخيرًا وليس آخرًا ، سنلقي نظرة على إطار عمل اختبار Salesforce.

اختبارات

بصفتك مطورًا في Salesforce ، فأنت بحاجة إلى معرفة كيفية اختبار الكود الذي تكتبه. يعد التطوير القائم على الاختبار طريقة جيدة لضمان نجاح تطبيق البرنامج على المدى الطويل. تحتاج إلى اختبار التطبيق الخاص بك حتى تتمكن من التحقق من أن التطبيق الخاص بك يعمل كما هو متوقع. على وجه الخصوص ، إذا كنت تقوم بتطوير تطبيق لأحد العملاء ، فإن اختباره قبل تسليم المنتج النهائي أمر مهم للغاية. يوفر لك Apex إطار عمل للاختبار يسمح لك بكتابة اختبارات الوحدة وتشغيل الاختبارات والتحقق من نتائج الاختبار والحصول على نتائج تغطية الكود.

يمكنك اختبار طلبك بطريقتين:

  1. من خلال واجهة مستخدم Salesforce ، تعد طريقة الاختبار هذه مهمة ولكنها لن تلتقط جميع حالات الاستخدام لتطبيقاتك
  2. يمكنك اختبار الوظائف المجمعة ، ويمكن تمرير ما يصل إلى 200 سجل من خلال التعليمات البرمجية الخاصة بك باستخدام SOAP API أو وحدة تحكم مجموعة Visualforce القياسية

لا تلزم فئات الاختبار أي بيانات بقاعدة البيانات ويتم تعليقها بعلامةisTest. لقد أوضحت لك كيفية إضافة فصل اختبار ، عن طريق إضافة فصل اختبار إلى فئة HelloWorld أدناه:

isTest

فئة خاصة HelloWorldTestClass {

static testMethod void validateHelloWorld () {

Country__c country = new Country__c (الاسم = 'الهند' ، currency_value__c = 50.0)

أدخل البلد

country = [SELECT currency_value__c من البلد حيث المعرّف = country.Id]

System.assertEquals (75، country.currency_value__c)

}

}

أتمنى أن تكون قد فهمت جميع المفاهيم التي تحتاج إلى معرفتها لتكون مطورًا في Salesforce. للغوص في مزيد من التفاصيل ، تحقق من والذي يأتي مع تدريب مباشر بقيادة المدرب وتجربة مشروع من واقع الحياة. إذا كان لديك أي تعليقات ، فالرجاء تركها في مربع التعليقات أدناه.