नवंबर 2007
परिचय
Salesforce.com और Google, लोकप्रिय "सॉफ़्टवेयर एज़ अ सर्विस" ऐप्लिकेशन होस्ट करते हैं. साथ ही, दोनों संगठन ऐसे एपीआई उपलब्ध कराते हैं जिनकी मदद से डेवलपर, इन ऐप्लिकेशन को चलाने वाले डेटा के बड़े स्टोर को ऐक्सेस कर सकते हैं. जब हम दोनों सेट के एपीआई को एक साथ इस्तेमाल करते हैं, तो चीज़ें दिलचस्प हो जाती हैं. G Suite का इस्तेमाल, एंटरप्राइज़ सेटिंग और Salesforce.com में लगातार बढ़ता जा रहा है. Salesforce.com ने कस्टम बिज़नेस ऐप्लिकेशन बनाने के लिए एक बड़ा प्लैटफ़ॉर्म बनाया है. इसलिए, डेवलपर (आप!) के पास Google और Salesforce.com की सुविधाओं को एक साथ इस्तेमाल करने के कई मौके हैं.
इस लेख में, RESTful Google Data APIs का इस्तेमाल करके एंटरप्राइज़ मैशअप बनाने का तरीका बताया गया है. भले ही, आपने Salesforce.com प्लैटफ़ॉर्म या Google Data प्रोटोकॉल का इस्तेमाल अभी शुरू ही किया हो. हम आपको डेवलपमेंट एनवायरमेंट सेट अप करने, मौजूदा Salesforce.com और Google मैशअप इंस्टॉल करने, और फिर अपना मैशअप लिखने में मदद करेंगे.
नमस्ते, Salesforce.com!
अगर आप मेरी तरह Salesforce.com के नए उपयोगकर्ता हैं, तो आपको Apex Developer Network (ADN) पर डेवलपर खाते के लिए साइन अप करना होगा. डेवलपर खाते से आपको Salesforce.com की सभी सुविधाओं वाला खाता मिलता है. साथ ही, आपको Apex wiki और discussion boards का ऐक्सेस भी मिलता है.
इसके बाद, आपको Eclipse के लिए Apex Toolkit डाउनलोड करना होगा. टूलकिट के लिए, Java 1.5 और Eclipse 3.2.2 या इसके बाद के वर्शन की ज़रूरत होती है. अगर आपको Eclipse के बारे में जानकारी है, तो टूलकिट के लिए सॉफ़्टवेयर अपडेट साइट http://www.adnsandbox.com/eclipsetoolkit/10.0/
है. अगर आपको Eclipse प्लगिन के बारे में जानकारी नहीं है या इंस्टॉलेशन के दौरान कोई समस्या आती है, तो Apex wiki में इंस्टॉल करने के बारे में पूरी जानकारी दी गई है.
टूलकिट इंस्टॉल हो जाने के बाद, Apex से जुड़ी मदद का कॉन्टेंट ऐक्सेस किया जा सकता है. यह कॉन्टेंट, Eclipse के सहायता सिस्टम में इंटिग्रेट किया गया है. इस कॉन्टेंट को देखने के लिए, Eclipse में Help | Help Contents | Apex Toolkit for Eclipse पर जाएं. मदद के लिए उपलब्ध संसाधनों में से एक, क्विकस्टार्ट ट्यूटोरियल है. इसमें आपको नया प्रोजेक्ट बनाने और एस-कंट्रोल, क्लास, और ट्रिगर जोड़ने का तरीका बताया जाएगा. अगर आपने पहले कभी Apex कोड का इस्तेमाल नहीं किया है, तो आगे बढ़ने से पहले आपको यह ट्यूटोरियल देखना चाहिए और एक Apex प्रोजेक्ट बनाना चाहिए.
Google Calendar में इवेंट एक्सपोर्ट करना
रॉन हेस ने Google Calendar Mash-up ऐप्लिकेशन बनाया है. इसकी मदद से, Salesforce.com से Google Calendar में इवेंट एक्सपोर्ट किए जा सकते हैं. रॉन ने एक लेख भी लिखा है. इसमें बताया गया है कि उनका मैशअप कैसे काम करता है. Google Spreadsheets ऐप्लिकेशन, रॉन के Google Calendar मैश-अप पर आधारित है. इसे बनाने का तरीका हम आपको बाद में बताएंगे. धन्यवाद रॉन!
अगर आप Salesforce.com के पावर यूज़र हैं, तो शायद आपको Ron के Google Calendar ऐप्लिकेशन को इंटिग्रेट करने और इस्तेमाल करने के लिए किसी निर्देश की ज़रूरत न पड़े. शुरुआत में मुझे थोड़ी मदद की ज़रूरत पड़ी. इसलिए, यहां बताया गया है कि मैंने Ron के ऐप्लिकेशन को काम करते हुए देखने के लिए क्या किया.
- ऐप्लिकेशन इंस्टॉल करें:
- Google Calendar Mash-up पेज पर जाएं और इसे अभी पाएं पर क्लिक करें.
- अपने ADN खाते के क्रेडेंशियल डालें और जारी रखें पर क्लिक करें.
- नियम और शर्तें पढ़ें. इसके बाद, जारी रखें पर क्लिक करें.
- "पैकेज के कॉन्टेंट की जांच करें" पेज पर जाकर, आगे बढ़ें पर क्लिक करें.
- सुरक्षा का कोई लेवल चुनें और आगे बढ़ें पर क्लिक करें.
- इंस्टॉल करें क्लिक करें.
- Salesforce.com AJAX प्रॉक्सी को कॉन्फ़िगर करना
- "एडमिनिस्ट्रेशन सेटअप" मेन्यू में, सुरक्षा कंट्रोल | रिमोट साइट की सेटिंग पर क्लिक करें.
- नई रिमोट साइट पर क्लिक करें.
- "रिमोट साइट का नाम" के तौर पर Google डालें. साथ ही, "रिमोट साइट का यूआरएल" के लिए https://www.google.com का इस्तेमाल करें.
- सेव करें पर क्लिक करें.
- इवेंट के बारे में जानकारी देने वाले पेज पर, "Google पर जोड़ें" बटन जोड़ें:
- "ऐप्लिकेशन सेटअप" मेन्यू में, पसंद के मुताबिक बनाएं | गतिविधियां | इवेंट पेज के लेआउट पर क्लिक करें.
- "इवेंट लेआउट" लाइन में जाकर, बदलाव करें पर क्लिक करें.
- "ज़्यादा जानकारी वाले पेज पर मौजूद बटन" सेक्शन पर दो बार क्लिक करें.
- "Google में जोड़ें" को हाइलाइट करें और बटन जोड़ने के लिए, दाईं ओर मौजूद (>) ऐरो पर क्लिक करें.
- ठीक है पर क्लिक करें.
- "पेज लेआउट की प्रॉपर्टी" पेज पर, सेव करें पर क्लिक करें.
- किसी इवेंट को एक्सपोर्ट करना
- अपना कैलेंडर देखने के लिए, सबसे ऊपर बाईं ओर मौजूद होम पर क्लिक करें.
- अगर आपके पास कोई इवेंट नहीं है, तो इवेंट बनाने के लिए नया इवेंट पर क्लिक करें.
- इवेंट की ज़्यादा जानकारी वाला पेज देखने के लिए, किसी इवेंट पर क्लिक करें.
- Google में जोड़ें बटन पर क्लिक करें.
- JavaScript सूचना में ठीक है पर क्लिक करें
- अपने Google खाते के उपयोगकर्ता नाम और पासवर्ड से साइन इन करें.
- SalesForce ऐप्लिकेशन को अपने Google Calendar में बदलाव करने की अनुमति देने के लिए, ऐक्सेस दें पर क्लिक करें.
- अपने Google Calendar में इवेंट देखना
Google Sheets ऐप्लिकेशन बनाना
ठीक है, शायद आप Salesforce.com पेजों पर क्लिक करके थक गए हैं और अब कुछ कोड लिखने के लिए तैयार हैं. Eclipse को फिर से चालू करें. अब आपको दिखेगा कि आपके बनाए गए Apex प्रोजेक्ट में, Ron के Google Calendar ऐप्लिकेशन के लिए S-Controls मौजूद हैं. ऐसा इसलिए है, क्योंकि Eclipse के लिए Apex Toolkit, Salesforce.com के साथ लगातार सिंक होता रहता है. है न यह कमाल की बात?
Google Calendar Mash-up की कुछ सुविधाओं का फिर से इस्तेमाल करके, अपना Google डेटा ऐप्लिकेशन बनाया जा सकता है. जैसे, पुष्टि करने के कंट्रोल. इस सेक्शन के बाकी हिस्से में, हम आपको एक ऐसा ऐप्लिकेशन बनाने का तरीका बताएंगे जो आपके Salesforce.com संपर्कों को Google स्प्रेडशीट में एक्सपोर्ट करता है.
सामान्य एस-कंट्रोल पब्लिश करना
एस-कंट्रोल एक ऐसी फ़ाइल होती है जिसे Salesforce.com होस्ट करता है. जब उपयोगकर्ता आपके ऐप्लिकेशन को ऐक्सेस करते हैं, तब यह फ़ाइल वेब ब्राउज़र में एक्ज़ीक्यूट होती है. एस-कंट्रोल में किसी भी तरह का कॉन्टेंट शामिल हो सकता है. इसे वेब ब्राउज़र में दिखाया या चलाया जा सकता है. जैसे, एचटीएमएल, सीएसएस या JavaScript.
Salesforce.com और Google के मैशअप में कई मूविंग पार्ट होते हैं. इसलिए, मैंने सबसे पहले संपर्क सूची वाले पेज पर "Google पर एक्सपोर्ट करें" बटन जोड़ा. यह बटन, एक सामान्य S-Control को चालू करता है. ऐसा मैंने सिर्फ़ यह पक्का करने के लिए किया कि JavaScript में पूरी तरह से शामिल होने से पहले, सभी प्लंबिंग सही थी.
अपने Apex प्रोजेक्ट में, "S-Controls" फ़ोल्डर पर राइट क्लिक करें. इसके बाद, Apex | New S-Control चुनें. नए S-Control को export_contacts नाम और लेबल दें. टाइप को Custom HTML के तौर पर छोड़ दें और Finish पर क्लिक करें.
नए S-Control में, एचटीएमएल फ़ाइल का स्ट्रक्चर मौजूद होगा. आपको <head> में कई JavaScript जोड़नी होंगी. हालांकि, <body> को पहले भरा जा सकता है, ताकि संपर्क एक्सपोर्ट होने के दौरान उपयोगकर्ता को कुछ दिखाया जा सके. "वेटिंग डॉट" और Google Sheets का लोगो दिखाने के लिए, इस एचटीएमएल को अपने एस-कंट्रोल के मुख्य हिस्से में कॉपी करें:
<div id="waiting" align="center" /> <img src="/img/icon/home32.png" height="64" width="64" /> <img src="/img/waiting_dots.gif" alt="Please wait..." title="Please wait..." height="25" width="196" /> <img src="http://docs.google.com/images/doclist/logo_docs.gif" /> <p><h3>Exporting contacts to Google Spreadsheets, please wait...</h3></p> </div>
अब S-Control को पब्लिश किया जा सकता है. साथ ही, एक ऐसा बटन सेट अप किया जा सकता है जो इसे चालू करेगा.
- S-Control फ़ाइल को पब्लिश करने के लिए, Eclipse का इस्तेमाल करें:
- अपने Apex प्रोजेक्ट पर राइट क्लिक करें और Apex | Synchronize with Salesforce चुनें.
- डायरेक्ट्री ट्री में अपना नया S-Control ढूंढें. उस पर राइट क्लिक करें और Override remote and publish to server चुनें.
- अगर आपको अपना S-Control नहीं मिल रहा है, तो हो सकता है कि Apex Toolkit ने उसे पहले ही अपलोड कर दिया हो. हालांकि, यह पक्का करने के लिए कि सर्वर पर नया कोड चल रहा है, सिंक्रनाइज़ पर्सपेक्टिव का इस्तेमाल करना बेहतर होता है.
- Salesforce.com के यूज़र इंटरफ़ेस (यूआई) का इस्तेमाल करके, ऐसा बटन तय करें जो इस S-Control को चालू करेगा:
- "ऐप्लिकेशन सेटअप" मेन्यू में, पसंद के मुताबिक बनाएं | संपर्क | बटन और लिंक पर क्लिक करें.
- "कस्टम बटन और लिंक" सेक्शन में, नया पर क्लिक करें.
- लेबल के लिए, Export to Google डालें और नाम के तौर पर Export_to_Google को ही रहने दें.
- डिसप्ले टाइप के तौर पर, "सूची वाला बटन" चुनें.
- कॉन्टेंट सोर्स के तौर पर, "कस्टम एस-कंट्रोल" चुनें.
- "साइडबार के साथ मौजूदा विंडो में दिखाएं" को व्यवहार के तौर पर चुनें.
- कस्टम एस-कंट्रोल मेन्यू से "export_contacts" चुनें.
- संपर्कों की सूची में बटन जोड़ें:
- "ऐप्लिकेशन सेटअप" मेन्यू में, पसंद के मुताबिक बनाएं | संपर्क | खोज लेआउट पर क्लिक करें.
- "संपर्क सूची का व्यू" लाइन में जाकर, बदलाव करें पर क्लिक करें.
- "Google पर एक्सपोर्ट करें" को हाइलाइट करें. इसके बाद, बटन जोड़ने के लिए राइट (>) ऐरो पर क्लिक करें.
- सेव करें पर क्लिक करें.
- इसे आज़माकर देखें:
- संपर्क टैब पर क्लिक करें.
- व्यू के तौर पर "सभी संपर्क" चुनें और शुरू करें! पर क्लिक करें.
- Google में एक्सपोर्ट करें बटन पर क्लिक करें.
- "waiting_dots" को देखें, लेकिन कुछ और होने की उम्मीद न करें.
Google स्प्रेडशीट के साथ इंटरैक्ट करना
Google Calendar Mash-up के सोर्स को देखने पर पता चलता है कि gcal_snippet.scf फ़ाइल में, Google Calendar सर्वर के लिए ऐब्स्ट्रैक्शन होता है. Google Sheets के साथ इंटरैक्ट करने के लिए, आपको Google Sheets सर्वर के लिए ऐसी ही फ़ाइल बनानी होगी. मैंने Salesforce.com AJAX प्रॉक्सी का इस्तेमाल करने के लिए, Ron Hess के कोड का फिर से इस्तेमाल किया. साथ ही, Google AuthSub से पुष्टि करने के लिए, मैंने Google Calendar में इवेंट लिखने वाले फ़ंक्शन को Google Sheets में जानकारी लिखने वाले फ़ंक्शन से बदल दिया. इस फ़ाइल का पूरा सोर्स, gspreadsheet_snippet.scf में उपलब्ध है.
इसके बाद, मैंने export_contacts.scf S-Control में JavaScript जोड़ी, ताकि Salesforce.com से संपर्क जानकारी के लिए क्वेरी की जा सके और उसे Google स्प्रेडशीट में लिखा जा सके. Salesforce.com से डेटा निकालना आसान है. सिर्फ़ एक क्वेरी बनाएं और डेटा वापस मिलने पर उसे लागू करने के लिए, एक कॉलबैक फ़ंक्शन दें. उदाहरण के लिए:
var query = 'Select FirstName, LastName, Phone From Contact'; var queryResult = sforce.connection.query(query, queryCallback);
Salesforce.com से संपर्क जानकारी मिलने के बाद, आपको यह तय करना होगा कि इसे कहां एक्सपोर्ट करना है. RESTful Google Data प्रोटोकॉल में, हर स्प्रेडशीट की पहचान एक यूनीक यूआरएल से की जा सकती है. किसी उपयोगकर्ता की स्प्रेडशीट और उनसे जुड़े यूआरएल की सूची पाने के लिए, मेटाफ़ीड यूआरएल http://spreadsheets.google.com/feeds/spreadsheets/private/full
को क्वेरी करें. यहां दिया गया तरीका, इन स्प्रेडशीट में दोहराता है और किसी खास टाइटल वाली स्प्रेडशीट ढूंढता है. सही स्प्रेडशीट मिलने पर, यह सबसे पहले वर्कशीट की सूची पाता है. इसके बाद, पहली वर्कशीट के लिए सेल फ़ीड यूआरएल दिखाता है.
function getCellFeedUrl() { var SPREADSHEET_TITLE = 'Salesforce.com Contacts'; var WORKSHEET_REL = 'http://schemas.google.com/spreadsheets/2006#worksheetsfeed'; var CELLSFEED_REL = 'http://schemas.google.com/spreadsheets/2006#cellsfeed'; // Query to find the spreadheet called "Salesforce.com Contacts" var spreadsheets = g.getFeed('http://spreadsheets.google.com/feeds/spreadsheets/private/full'); var entries = g.getEntryList(spreadsheets); for (var e in entries) { if (g.getTitle(entries[e]) == SPREADSHEET_TITLE) { var worksheetsFeedUrl = g.link(entries[e],WORKSHEET_REL); var worksheets = g.getFeed(worksheetsFeedUrl); var worksheetEntries = g.getEntryList(worksheets); return g.link(worksheetEntries[0], CELLSFEED_REL); } } }
Google Sheets Data API में उपलब्ध फ़ीड के बारे में ज़्यादा जानकारी, रेफ़रंस गाइड में देखी जा सकती है.
queryCallback
फ़ंक्शन, getCellFeedUrl
तरीके का इस्तेमाल करके, सेल अपडेट करने के अनुरोध भेजने के लिए ज़रूरी सेल फ़ीड यूआरएल ढूंढता है. इसके बाद, संपर्क जानकारी को एक बार में एक सेल में लिखता है.
function queryCallback(queryResult) { var cellFeedUrl = getCellFeedUrl(); var contacts = queryResult.getArray('records'); for (var i=0; i<contacts.length; i++) { g.updateCell(cellFeedUrl, i+1, 1, contacts[i].LastName + ", " + contacts[i].FirstName); g.updateCell(cellFeedUrl, i+1, 2, contacts[i].Phone); } jumpback(); // Return to the contacts page when your done }
updateCell
तरीका, gspreadsheet_snippet.scf S-Control में मौजूद है. यह तरीका, दी गई लाइन और कॉलम में मौजूद सेल का बदलाव करने वाला यूआरएल हासिल करता है. इसके बाद, एक एचटीटीपी PUT
मैसेज भेजता है. इस मैसेज में, अपडेट की गई सेल का Google डेटा प्रज़ेंटेशन शामिल होता है:
GoogleSpreadsheet.prototype.updateCell = function(cellsFeedUrl, row, column, content ) { var cellEntry = this.getFeed(cellsFeedUrl+'/R'+row+'C'+column); var cellEditUrl = this.link(cellEntry,'edit'); var newCellEntry = "<atom:entry xmlns:atom='http://www.w3.org/2005/Atom'>" + "<atom:category scheme='http://schemas.google.com/spreadsheets/2006' " + "term='http://schemas.google.com/spreadsheets/2006#cell' />" + "<gs:cell xmlns:gs='http://schemas.google.com/spreadsheets/2006' " + "row='" + row + "' col='" + column + "' inputValue='" + content + "' />" + "</atom:entry>"; this.putEntry(cellEditUrl, newCellEntry); }
Google Spreadsheets Data API की मदद से, सेल अपडेट करने के तरीके के बारे में ज़्यादा जानकारी डेवलपर की गाइड में दी गई है.
Google Spreadsheets Data API, https://spreadsheets.google.com
सबडोमेन का इस्तेमाल करता है. इसलिए, ऊपर दिया गया कोड काम करने से पहले, आपको Salesforce.com AJAX प्रॉक्सी सर्वर को कॉन्फ़िगर करना होगा. साथ ही, https://spreadsheets.google.com
जोड़ना होगा.
आपको Google Docs में जाकर, डेटा को सेव करने के लिए एक नई स्प्रेडशीट भी बनानी होगी. पक्का करें कि आपने इसे Salesforce.com Contacts के तौर पर सेव किया हो.
इन S-Controls को अपलोड करने के बाद, अपनी संपर्क जानकारी को Google स्प्रैडशीट में एक्सपोर्ट किया जा सकेगा. क्या ऐसा करने का कोई और तरीका है? Salesforce.com और Google Data API के बारे में नई जानकारी मिलने के बाद, Google Sheets से Salesforce.com में संपर्क जानकारी इंपोर्ट करने के लिए भी कुछ कोड लिखा जा सकता है.
नतीजा
इस लेख में, Salesforce.com प्लैटफ़ॉर्म और Google Data API के बारे में सिर्फ़ बुनियादी जानकारी दी गई है. अब जब आपको इन दोनों के बारे में पता चल गया है, तो सोचें कि इन सिस्टम का फ़ायदा पाने के लिए, कौन-कौनसे ऐप्लिकेशन बनाए जा सकते हैं. Google Data के एपीआई की संख्या लगातार बढ़ रही है. इससे आपको अपने ऐप्लिकेशन में इस्तेमाल करने के लिए ज़्यादा जानकारी मिलती है. साथ ही, Salesforce.com प्लैटफ़ॉर्म कई काम के टूल उपलब्ध कराता है, जिनके बारे में इस लेख में नहीं बताया गया है. हम AppExchange में आपके अगले एंटरप्राइज़ मैशअप का इंतज़ार करेंगे.
कोडिंग करते रहें!