सिंपल ट्रिगर

संग्रह की मदद से व्यवस्थित रहें अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें.

ट्रिगर से, 'Apps स्क्रिप्ट' अपने-आप फ़ंक्शन चालू कर देती है. जैसे, कोई खास इवेंट, जैसे कि दस्तावेज़ खोलना. आसान ट्रिगर, 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 का अनुरोध भेजता है.
  • जब कोई प्रोग्राम किसी वेब ऐप्लिकेशन को एचटीटीपी POST का अनुरोध भेजता है, तो doPost(e) चलता है.

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

पाबंदियां

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

  • स्क्रिप्ट लक्ष्य Google शीट, स्लाइड, दस्तावेज़ या फ़ॉर्म फ़ाइल से होनी चाहिए या फिर ऐसे ऐड-ऑन होने चाहिए जो उन ऐप्लिकेशन में से किसी एक को विस्तृत करते हों.
  • ये फ़ाइलें तब नहीं चलती हैं, जब कोई फ़ाइल रीड-ओनली (देखें या टिप्पणी करें) मोड में खुलती है.
  • स्क्रिप्ट रन करने और एपीआई अनुरोधों की वजह से ट्रिगर नहीं होते. उदाहरण के लिए, किसी सेल में बदलाव करने के लिए 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 या Forms में पसंद के मुताबिक मेन्यू आइटम जोड़ने के लिए किया जाता है.

ट्रिगर/trigger.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)

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

ट्रिगर/trigger.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) फ़ंक्शन उस सेल पर एक टिप्पणी सेट करता है जिसे पिछली बार बदलाव करते समय रिकॉर्ड किया गया था.

ट्रिगर/trigger.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) फ़ंक्शन सेल की बैकग्राउंड को लाल रंग पर सेट कर देता है.

ट्रिगर/trigger.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)

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

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

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

इवेंट आसान ट्रिगर इंस्टॉल करने लायक ट्रिगर
खुला है
Sheets
Slides
Forms*
Docs

function onOpen(e)

Sheets
Forms*
Docs
बदलाव करें
Sheets

function onEdit(e)

Sheets
चुना गया बदलाव
Sheets

function onSelectionChange(e)

इंस्टॉल करें
Sheets
Slides
Forms
Docs

function onInstall(e)

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

function doGet(e)

पोस्ट
साइटें
सबसे अलग

function doPost(e)

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