शीर्ष - अवलोकन
एपेक्स क्या है?
एपेक्स Salesforce.com द्वारा विकसित एक मालिकाना भाषा है। आधिकारिक परिभाषा के अनुसार, एपेक्स एक दृढ़ता से टाइप की गई, ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग लैंग्वेज है जो डेवलपर्स को Force.com API पर कॉल के साथ संयोजन में Force.com प्लेटफॉर्म सर्वर पर फ्लो और ट्रांजेक्शन कंट्रोल स्टेटमेंट को निष्पादित करने की अनुमति देती है।
इसमें जावा की तरह सिंटैक्स होता है और डेटाबेस संग्रहीत प्रक्रियाओं की तरह कार्य करता है। यह डेवलपर्स को बटन क्लिक, संबंधित रिकॉर्ड अपडेट और विज़ुअलफोर्स सहित अधिकांश सिस्टम ईवेंट में व्यावसायिक तर्क जोड़ने में सक्षम बनाता हैpages.Apexकोड वेब सेवा अनुरोधों और वस्तुओं पर ट्रिगर से शुरू किया जा सकता है। Apex प्रदर्शन संस्करण, असीमित संस्करण, एंटरप्राइज़ संस्करण और डेवलपर संस्करण में शामिल है।
एक भाषा के रूप में एपेक्स की विशेषताएं
आइए अब एक भाषा के रूप में एपेक्स की विशेषताओं पर चर्चा करें -
को एकीकृत
एपेक्स ने डीएमएल ऑपरेशन्स जैसे INSERT, UPDATE, DELETE और DML एक्सेप्शन हैंडलिंग के समर्थन में बनाया है। इसमें इनलाइन SOQL और SOSL क्वेरी को संभालने के लिए समर्थन है जो sObject रिकॉर्ड के सेट को लौटाता है। हम भविष्य के अध्यायों में sObject, SOQL, SOSL का विस्तार से अध्ययन करेंगे।
जावा सिंटैक्स की तरह और उपयोग करने में आसान
एपेक्स का उपयोग करना आसान है क्योंकि यह जावा जैसे सिंटैक्स का उपयोग करता है। उदाहरण के लिए, चर घोषणा, लूप सिंटैक्स और सशर्त विवरण।
डेटा के साथ मजबूत एकीकृत
एपेक्स एक साथ कई प्रश्नों और डीएमएल स्टेटमेंट को निष्पादित करने के लिए केंद्रित और डिज़ाइन किया गया डेटा है। यह डेटाबेस पर कई लेनदेन स्टेटमेंट जारी करता है।
जोर से टाइप किया हुआ
एपेक्स एक जोरदार टाइप की गई भाषा है। यह sObject जैसी स्कीमा ऑब्जेक्ट्स के लिए सीधे संदर्भ का उपयोग करता है और यदि इसे हटा दिया गया है या गलत डेटा प्रकार का है तो कोई भी अमान्य संदर्भ जल्दी से विफल हो जाता है।
बहुपरत पर्यावरण
एपेक्स एक बहुपरत वातावरण में चलता है। नतीजतन, एपेक्स रनटाइम इंजन को रनवे कोड के साथ निकटता से बनाए रखने के लिए डिज़ाइन किया गया है, इसे साझा संसाधनों पर एकाधिकार से रोका जा सकता है। कोई भी कोड जो सीमा का उल्लंघन करता है, आसानी से समझने में त्रुटि संदेशों के साथ विफल हो जाता है।
स्वचालित रूप से अपग्रेड करता है
एपेक्स को सेल्सफोर्स रिलीज के हिस्से के रूप में अपग्रेड किया गया है। हमें इसे मैन्युअल रूप से अपग्रेड करने की आवश्यकता नहीं है।
आसान परीक्षण
एपेक्स यूनिट परीक्षण निर्माण और निष्पादन के लिए अंतर्निहित समर्थन प्रदान करता है, जिसमें परीक्षण के परिणाम शामिल हैं जो इंगित करते हैं कि कितना कोड कवर किया गया है, और आपके कोड के कौन से हिस्से अधिक कुशल हो सकते हैं।
डेवलपर को कब चुनना चाहिए?
एपेक्स का उपयोग तब किया जाना चाहिए जब हम पहले से निर्मित और मौजूदा बॉक्स कार्यक्षमता के उपयोग से जटिल व्यावसायिक कार्यक्षमता को लागू करने में सक्षम नहीं होते हैं। नीचे ऐसे मामले हैं जहां हमें Salesforce कॉन्फ़िगरेशन पर एपेक्स का उपयोग करने की आवश्यकता है।
एपेक्स अनुप्रयोग
हम जब चाहें अपैक्स का उपयोग कर सकते हैं -
अन्य प्रणालियों को एकीकृत करने के साथ वेब सेवाएँ बनाएँ।
ईमेल ब्लास्ट या ईमेल सेटअप के लिए ईमेल सेवाएं बनाएं।
एक ही समय में कई वस्तुओं पर जटिल सत्यापन करें और कस्टम सत्यापन कार्यान्वयन भी।
ऐसी जटिल व्यावसायिक प्रक्रियाएँ बनाएँ जो मौजूदा वर्कफ़्लो कार्यक्षमता या प्रवाह द्वारा समर्थित नहीं हैं।
कस्टम ट्रांजेक्शनल लॉजिक बनाएं (तर्क जो पूरे लेनदेन पर होता है, न कि केवल एक रिकॉर्ड या ऑब्जेक्ट के साथ) जैसे रिकॉर्ड अपडेट करने के लिए डेटाबेस के तरीकों का उपयोग करना।
जब कोई घटना संशोधित होती है या संबंधित वस्तु के रिकॉर्ड को संशोधित करती है, तो कुछ तर्क देते हैं, जब कुछ घटना होती है, जिससे आग लग जाती है।
एपेक्स की कार्य संरचना
जैसा कि नीचे दिए गए चित्र में दिखाया गया है (संदर्भ: सेल्सफोर्स डेवलपर डॉक्यूमेंटेशन), एपेक्स पूरी तरह से मांग पर आधारित है
क्रियाओं का प्रवाह
डेवलपर द्वारा कोड को सहेजने पर दो अनुक्रम की क्रियाएं होती हैं और जब कोई अंतिम उपयोगकर्ता कुछ कार्रवाई करता है जो एपेक्स कोड को दिखाता है जैसे कि नीचे दिखाया गया है -
डेवलपर कार्रवाई
जब कोई डेवलपर प्लेटफ़ॉर्म पर एपेक्स कोड लिखता और सहेजता है, तो प्लेटफ़ॉर्म एप्लिकेशन सर्वर पहले कोड को निर्देश के सेट में संकलित करता है जिसे एपेक्स रनटाइम दुभाषिया द्वारा समझा जा सकता है, और फिर उन निर्देशों को मेटाडेटा के रूप में सहेजता है।
एंड यूजर एक्शन
जब कोई एंड-यूज़र एपेक्स के निष्पादन को ट्रिगर करता है, तो एक बटन पर क्लिक करके या विज़ुअलीफोर्स पेज पर पहुंचकर, प्लेटफ़ॉर्म एप्लिकेशन सर्वर मेटाडेटा से संकलित निर्देशों को पुनः प्राप्त करता है और परिणाम लौटने से पहले उन्हें रनटाइम दुभाषिया के माध्यम से भेजता है। अंतिम उपयोगकर्ता मानक एप्लिकेशन प्लेटफ़ॉर्म अनुरोध की तुलना में निष्पादन समय में कोई अंतर नहीं देखता है।
चूंकि एपेक्स Salesforce.com की मालिकाना भाषा है, इसलिए यह कुछ सुविधाओं का समर्थन नहीं करता है जो एक सामान्य प्रोग्रामिंग भाषा करती है। निम्नलिखित कुछ विशेषताएं हैं जिनका शीर्ष समर्थन नहीं करता है -
यह उपयोगकर्ता इंटरफ़ेस में तत्व नहीं दिखा सकता है।
आप मानक एसएफडीसी प्रदान की गई कार्यक्षमता को नहीं बदल सकते हैं और मानक कार्यक्षमता निष्पादन को रोकना भी संभव नहीं है।
कई सूत्र बनाना भी संभव नहीं है क्योंकि हम इसे अन्य भाषाओं में कर सकते हैं।
एपेक्स सिंटेक्स को समझना
एपेक्स कोड में आमतौर पर कई चीजें शामिल होती हैं जिनसे हम अन्य प्रोग्रामिंग भाषाओं से परिचित हो सकते हैं।
परिवर्तनीय घोषणा
दृढ़ता से टाइप की गई भाषा के रूप में, आपको एपेक्स में डेटा प्रकार के साथ प्रत्येक चर की घोषणा करनी चाहिए। जैसा कि नीचे दिए गए कोड (नीचे स्क्रीनशॉट) में देखा गया है, lstAcc को डेटा प्रकार के साथ खातों की सूची के रूप में घोषित किया गया है।
SOQL क्वेरी
इसका उपयोग Salesforce डेटाबेस से डेटा प्राप्त करने के लिए किया जाएगा। नीचे स्क्रीनशॉट में दी गई क्वेरी खाता ऑब्जेक्ट से डेटा ला रही है।
लूप स्टेटमेंट
इस लूप स्टेटमेंट का उपयोग किसी सूची पर पुनरावृत्ति या किसी निर्दिष्ट संख्या के लिए कोड के एक टुकड़े पर पुनरावृति के लिए किया जाता है। नीचे दिए गए स्क्रीनशॉट में दिखाए गए कोड में, पुनरावृत्ति वही होगी जो हमारे पास रिकॉर्ड की संख्या है।
फ्लो कंट्रोल स्टेटमेंट
यदि इस कोड में प्रवाह नियंत्रण के लिए स्टेटमेंट का उपयोग किया जाता है। कुछ शर्त के आधार पर, यह तय किया जाता है कि निष्पादन के लिए जाना है या किसी विशेष कोड के निष्पादन को रोकना है। उदाहरण के लिए, नीचे दिखाए गए कोड में, यह जाँच कर रहा है कि सूची खाली है या इसमें रिकॉर्ड हैं।
डीएमएल स्टेटमेंट
डेटाबेस में रिकॉर्ड्स पर रिकॉर्ड डालें, अपडेट करें, अपग्रेड करें, ऑपरेशन डिलीट करें। उदाहरण के लिए, नीचे दिया गया कोड नए फ़ील्ड मान वाले खातों को अपडेट करने में मदद करता है।
निम्नलिखित एक उदाहरण है कि एपेक्स कोड स्निपेट कैसा दिखेगा। हम इस ट्यूटोरियल में आगे इन सभी एपेक्स प्रोग्रामिंग अवधारणाओं का अध्ययन करने जा रहे हैं।