आसान ट्रिगर

ट्रिगर की मदद से Apps Script फ़ाइल के अपने-आप चालू हो जाता है. ऐसा तब होता है, जब कोई इवेंट जैसे, कोई दस्तावेज़ खोलना. आसान ट्रिगर सेट होते हैं ऐप्लिकेशन स्क्रिप्ट में पहले से मौजूद रिज़र्व फ़ंक्शन, जैसे कि onOpen(e) फ़ंक्शन, यह सुविधा तब काम करती है, जब कोई उपयोगकर्ता Google Docs, Sheets, Slides या Forms की फ़ाइल खोलता है. इंस्टॉल किए जा सकने वाले ट्रिगर से ज़्यादा फ़ायदे मिलते हैं सामान्य ट्रिगर की तुलना में अतिरिक्त क्षमताएं होती हैं, लेकिन इस्तेमाल करने से पहले उन्हें चालू करना ज़रूरी होता है. दोनों के लिए टाइप करते समय, Apps Script ट्रिगर किए गए फ़ंक्शन को इवेंट ऑब्जेक्ट जिसमें जानकारी शामिल हो इवेंट के कॉन्टेक्स्ट के बारे में जानकारी.

शुरू करना

आसान ट्रिगर का इस्तेमाल करने के लिए, ऐसा फ़ंक्शन बनाएं जो इनमें से किसी एक का इस्तेमाल करता हो रिज़र्व किए गए फ़ंक्शन के नाम:

  • onOpen(e) तब चलता है, जब कोई उपयोगकर्ता स्प्रेडशीट, दस्तावेज़, प्रज़ेंटेशन या ऐसा फ़ॉर्म जिसमें उपयोगकर्ता के पास बदलाव करने की अनुमति हो.
  • onInstall(e) तब चलता है, जब कोई उपयोगकर्ता किसी इसमें से एडिटर ऐड-ऑन Google Docs, Sheets, Slides या Forms.
  • onEdit(e) तब चलता है, जब कोई उपयोगकर्ता स्प्रेडशीट में कोई वैल्यू बदलता है.
  • onSelectionChange(e) तब चलता है, जब कोई उपयोगकर्ता स्प्रेडशीट में चुने गए विकल्प को बदलता है.
  • जब कोई उपयोगकर्ता वेब ऐप्लिकेशन पर जाता है, तब doGet(e) चलता है या कोई प्रोग्राम किसी वेब ऐप्लिकेशन को एचटीटीपी GET अनुरोध भेजता है.
  • doPost(e) तब चलता है, जब कोई प्रोग्राम किसी वेब ऐप्लिकेशन को एचटीटीपी POST का अनुरोध भेजता है.

ऊपर दिए गए फ़ंक्शन के नाम में e पैरामीटर इवेंट ऑब्जेक्ट जो फ़ंक्शन का इस्तेमाल करना होगा. ऑब्जेक्ट में उस कॉन्टेक्स्ट के बारे में जानकारी होती है जिसकी वजह से ट्रिगर करना है, लेकिन इसका इस्तेमाल करना ज़रूरी नहीं है.

पाबंदियां

ऐसा इसलिए होता है, क्योंकि सिंपल ट्रिगर अपने-आप ट्रिगर हो जाते हैं, लेकिन उपयोगकर्ता से ऐसा करने के लिए नहीं कहा जाता के रूप में किया जा सकता है, तो उन पर कई पाबंदियां लागू होती हैं:

  • स्क्रिप्ट, Google से बाउंड होनी चाहिए Sheets, Slides, Docs या Forms फ़ाइल या अन्य ऐड-ऑन, जो नहीं रखना चाहते.
  • अगर किसी फ़ाइल को रीड-ओनली (देखें या टिप्पणी करें) मोड में खोला जाता है, तो ये सेटिंग काम नहीं करेंगी.
  • स्क्रिप्ट निष्पादन और एपीआई अनुरोधों की वजह से ट्रिगर नहीं चलते. उदाहरण के लिए, Range.setValue() को कॉल किया जा रहा है किसी सेल में बदलाव करने से स्प्रेडशीट का onEdit ट्रिगर नहीं चलता.
  • वे इन सेवाओं को ऐक्सेस नहीं कर सकते: अनुमति देना. उदाहरण के लिए, एक सामान्य ट्रिगर ईमेल नहीं भेज सकता क्योंकि Gmail सेवा को ऐक्सेस करने के लिए अनुमति लेना ज़रूरी है, लेकिन तो आसान ट्रिगर किसी वाक्यांश का अनुवाद भाषा सेवा, जो पहचान छिपाकर काम करती है.
  • वे उस फ़ाइल में बदलाव कर सकते हैं जिससे वे सीमित हैं. हालांकि, वे अन्य फ़ाइलों को ऐक्सेस नहीं कर सकते क्योंकि इसके लिए अनुमति की ज़रूरत होगी.
  • ऐसा हो सकता है कि वे मौजूदा उपयोगकर्ता की पहचान का पता न लगा पाएं, एक या उससे ज़्यादा सुरक्षा से जुड़ी पाबंदियों का जटिल सेट.
  • ये विज्ञापन 30 सेकंड से ज़्यादा नहीं चल सकते.
  • कुछ मामलों में, एडिटर ऐड-ऑन अपनी onOpen(e) को मैनेज करते हैं और onEdit(e) सिंपल ट्रिगर, बिना अनुमति वाले मोड में होते हैं. कुछ अन्य दिक्कतों को दूर कर सकता है. ज़्यादा जानकारी के लिए, देखें ऐड-ऑन अनुमति की लाइफ़साइकल के बारे में जानकारी देने वाली गाइड.
  • आसान ट्रिगर पर Apps Script ट्रिगर लागू होता है कोटे की सीमाएं तय करनी होंगी.

ये पाबंदियां doGet(e) या doPost(e) पर लागू नहीं होती हैं.

onOpen(e)

जब कोई उपयोगकर्ता स्प्रेडशीट खोलता है, तो onOpen(e) ट्रिगर अपने-आप चलता है, किसी दस्तावेज़, प्रज़ेंटेशन या फ़ॉर्म में बदलाव करने की अनुमति है. ( फ़ॉर्म का जवाब देते समय ट्रिगर नहीं होता, बल्कि सिर्फ़ तब काम करता है, जब फ़ॉर्म को खोला जाता है इसमें बदलाव करें.) onOpen(e) का इस्तेमाल आम तौर पर, अपने हिसाब से लेबल जोड़ने के लिए किया जाता है Google Sheets, Slides, Docs या फ़ॉर्म.

triggers/triggers.gs
/**
 * The event handler triggered when opening the spreadsheet.
 * @param {Event} e The onOpen event.
 * @see https://developers.google.com/apps-script/guides/triggers#onopene
 */
function onOpen(e) {
  // Add a custom menu to the spreadsheet.
  SpreadsheetApp.getUi() // Or DocumentApp, SlidesApp, or FormApp.
      .createMenu('Custom Menu')
      .addItem('First item', 'menuItem1')
      .addToUi();
}

onInstall(e)

जब कोई उपयोगकर्ता किसी ऐप्लिकेशन को इंस्टॉल करता है, तो onInstall(e) ट्रिगर अपने-आप चलता है इसमें से एडिटर ऐड-ऑन Google Docs, Sheets, Slides या Forms. किसी उपयोगकर्ता के ट्रिगर न होने पर ट्रिगर नहीं होगा ऐड-ऑन को Google Workspace Marketplace वेबसाइट. ध्यान दें कि onInstall(e) क्या-क्या कर सकते हैं, इसकी कुछ पाबंदियां हैं. इसके बारे में ज़्यादा जानें अनुमति देना. onInstall(e) का सबसे आम इस्तेमाल यह है कि आप onOpen(e) को कॉल करके कस्टम मेन्यू चुनें. आखिरकार, जब कोई ऐड-ऑन इंस्टॉल होता है, तो फ़ाइल पहले से ही खुली होती है, इसलिए, जब तक फ़ाइल को फिर से खोला नहीं जाता, तब तक onOpen(e) अपने-आप नहीं चलता.

triggers/triggers.gs
/**
 * The event handler triggered when installing the add-on.
 * @param {Event} e The onInstall event.
 * @see https://developers.google.com/apps-script/guides/triggers#oninstalle
 */
function onInstall(e) {
  onOpen(e);
}

onEdit(e)

जब कोई उपयोगकर्ता किसी भी वैल्यू को बदलता है, तो onEdit(e) ट्रिगर अपने-आप चालू हो जाता है जोड़ें. ज़्यादातर onEdit(e) ट्रिगर, इवेंट ऑब्जेक्ट का इस्तेमाल करें. उदाहरण के लिए, नीचे दिया गया onEdit(e) फ़ंक्शन उस सेल पर टिप्पणी सेट करता है जिसमें इसे पिछली बार संपादित किए जाने का समय रिकॉर्ड करता है.

triggers/triggers.gs
/**
 * The event handler triggered when editing the spreadsheet.
 * @param {Event} e The onEdit event.
 * @see https://developers.google.com/apps-script/guides/triggers#onedite
 */
function onEdit(e) {
  // Set a comment on the edited cell to indicate when it was changed.
  const range = e.range;
  range.setNote('Last modified: ' + new Date());
}

onSelectionChange(e)

जब कोई उपयोगकर्ताonSelectionChange(e) चुनें. इस ट्रिगर को चालू करने के लिए, आपको ट्रिगर जोड़ने के बाद और हर बार स्प्रेडशीट खोलने पर, एक स्प्रेडशीट भी बनाई जा सकती है.

अगर चुनी गई सेल के बीच कम समय में एक से ज़्यादा सेल में बदलाव होता है, तो कुछ सेल को इंतज़ार का समय कम करने के लिए, बदलाव इवेंट स्किप किए जा सकते हैं. उदाहरण के लिए, यदि कई उपयोगकर्ता बदलाव एक-दूसरे के दो सेकंड के अंदर किए जाते हैं. सिर्फ़ पहला और आखिरी बदलाव चुनने में बदलाव करने से onSelectionChange(e) ट्रिगर चालू हो जाएगा.

नीचे दिए गए उदाहरण में, अगर कोई खाली सेल चुनी गई है, तो onSelectionChange(e) फ़ंक्शन सेल के बैकग्राउंड लाल होना चाहिए.

triggers/triggers.gs
/**
 * The event handler triggered when the selection changes in the spreadsheet.
 * @param {Event} e The onSelectionChange event.
 * @see https://developers.google.com/apps-script/guides/triggers#onselectionchangee
 */
function onSelectionChange(e) {
  // Set background to red if a single empty cell is selected.
  const range = e.range;
  if (range.getNumRows() === 1 &&
    range.getNumColumns() === 1 &&
    range.getCell(1, 1).getValue() === '') {
    range.setBackground('red');
  }
}

doGet(e) और doPost(e)

जब कोई उपयोगकर्ता किसी साइट पर जाता है, तो doGet(e) ट्रिगर अपने-आप चालू हो जाता है वेब ऐप्लिकेशन या कोई प्रोग्राम एक एचटीटीपी GET अनुरोध भेजता है वेब ऐप्लिकेशन में साइन इन करते हैं. doPost(e) तब चलता है, जब कोई प्रोग्राम किसीPOST वेब ऐप्लिकेशन खोलें. इन ट्रिगर को गाइड में ज़्यादा दिखाया गया है, ताकि वेब ऐप्लिकेशन, एचटीएमएल सेवा, और कॉन्टेंट सेवा. ध्यान दें कि doGet(e) और doPost(e) पर ऊपर बताई गई पाबंदियां लागू नहीं होती हैं.

ट्रिगर के उपलब्ध टाइप

अगर आसान ट्रिगर पर लगी पाबंदियों की वजह से, वे मीटिंग से नहीं जुड़ती हैं आपकी ज़रूरतों को पूरा करने के लिए, एक इंस्टॉल किया जा सकने वाला ट्रिगर काम कर सकता है. नीचे दी गई टेबल में खास जानकारी दी गई है कि किस तरह के ट्रिगर हैं यह विकल्प हर तरह के इवेंट के लिए उपलब्ध है. उदाहरण के लिए, Google Sheets, Slides, Forms, और Docs, सभी पर आसानी से खुलने वाले ट्रिगर की सुविधा काम करती है. हालांकि, यह सिर्फ़ Sheets, Docs, और Forms में काम करती है ऐसे ओपन ट्रिगर जिन्हें इंस्टॉल किया जा सके.

इवेंट आसान ट्रिगर इंस्टॉल किए जा सकने वाले ट्रिगर
खोलें
शीट
स्लाइड
Forms*
Docs

function onOpen(e)

शीट
Forms*
Docs
बदलाव करें
शीट

function onEdit(e)

शीट
चुने गए बदलाव
शीट

function onSelectionChange(e)

इंस्टॉल करें
शीट
स्लाइड
Forms
Docs

function onInstall(e)

बदलें
शीट
फ़ॉर्म सबमिट
शीट
Forms
समय के अनुसार (घड़ी में)
शीट
स्लाइड
Forms
Docs
स्टैंडअलोन
पाएं
स्टैंडअलोन

function doGet(e)

पोस्ट करें
स्टैंडअलोन

function doPost(e)

* Google फ़ॉर्म के लिए ओपन इवेंट तब नहीं होता है, जब कोई उपयोगकर्ता किसी फ़ॉर्म भरें, लेकिन जब कोई संपादक इसे संशोधित करने के लिए फ़ॉर्म खोले.