সরল ট্রিগার

ট্রিগারগুলি অ্যাপস স্ক্রিপ্টকে স্বয়ংক্রিয়ভাবে একটি ফাংশন চালাতে দেয় যখন কোনও নির্দিষ্ট ঘটনা, যেমন কোনও ডকুমেন্ট খোলা, ঘটে। সিম্পল ট্রিগার হল অ্যাপস স্ক্রিপ্টে তৈরি সংরক্ষিত ফাংশনের একটি সেট, যেমন onOpen(e) ফাংশন, যা ব্যবহারকারী যখন একটি Google Docs, Sheets, Slides, অথবা Forms ফাইল খোলেন তখন কার্যকর হয়। ইনস্টলযোগ্য ট্রিগারগুলি সাধারণ ট্রিগারগুলির চেয়ে বেশি ক্ষমতা প্রদান করে তবে ব্যবহারের আগে অবশ্যই সক্রিয় করতে হবে। উভয় ধরণের ট্রিগারের জন্য, অ্যাপস স্ক্রিপ্ট ট্রিগার করা ফাংশনটিকে একটি ইভেন্ট অবজেক্টে পাস করে যাতে ঘটনাটি কোন প্রেক্ষাপটে ঘটেছে সে সম্পর্কে তথ্য থাকে।

শুরু করা

একটি সাধারণ ট্রিগার ব্যবহার করতে, কেবল একটি ফাংশন তৈরি করুন যা এই সংরক্ষিত ফাংশন নামগুলির মধ্যে একটি ব্যবহার করে:

  • onOpen(e) তখন চলে যখন একজন ব্যবহারকারী এমন একটি স্প্রেডশিট, ডকুমেন্ট, প্রেজেন্টেশন, অথবা ফর্ম খোলেন যা সম্পাদনা করার অনুমতি ব্যবহারকারীর আছে।
  • onInstall(e) তখনই চলে যখন একজন ব্যবহারকারী Google Docs, Sheets, Slides, অথবা Forms এর মধ্যে থেকে একটি Editor অ্যাড-অন ইনস্টল করেন।
  • onEdit(e) তখন চলে যখন একজন ব্যবহারকারী স্প্রেডশিটে একটি মান পরিবর্তন করে।
  • onSelectionChange(e) তখন চলে যখন একজন ব্যবহারকারী স্প্রেডশিটে নির্বাচন পরিবর্তন করে।
  • doGet(e) তখন চলে যখন একজন ব্যবহারকারী একটি ওয়েব অ্যাপ পরিদর্শন করেন অথবা একটি প্রোগ্রাম একটি ওয়েব অ্যাপে HTTP GET অনুরোধ পাঠায়।
  • doPost(e) তখন চলে যখন একটি প্রোগ্রাম একটি ওয়েব অ্যাপে HTTP POST অনুরোধ পাঠায়।

উপরের ফাংশনের নামের e প্যারামিটারটি হল একটি ইভেন্ট অবজেক্ট যা ফাংশনে পাঠানো হয়। অবজেক্টটিতে ট্রিগারটি যে প্রেক্ষাপটে আগুন ধরেছিল সে সম্পর্কে তথ্য রয়েছে, তবে এটি ব্যবহার করা ঐচ্ছিক।

বিধিনিষেধ

যেহেতু সিম্পল ট্রিগারগুলি ব্যবহারকারীর অনুমোদন ছাড়াই স্বয়ংক্রিয়ভাবে চালু হয়, তাই তাদের উপর বেশ কয়েকটি বিধিনিষেধ আরোপ করা হয়:

  • স্ক্রিপ্টটি অবশ্যই একটি Google Sheets, Slides, Docs, অথবা Forms ফাইলের সাথে আবদ্ধ হতে হবে, অন্যথায় এমন একটি অ্যাড-অন হতে হবে যা ঐ অ্যাপ্লিকেশনগুলির একটিকে প্রসারিত করে।
  • যদি কোনও ফাইল কেবল-পঠনযোগ্য (দেখুন বা মন্তব্য করুন) মোডে খোলা হয় তবে এগুলি চলবে না।
  • স্ক্রিপ্ট এক্সিকিউশন এবং API অনুরোধগুলি ট্রিগার চালানোর কারণ হয় না। উদাহরণস্বরূপ, একটি সেল সম্পাদনা করার জন্য Range.setValue() কল করলে স্প্রেডশিটের onEdit ট্রিগার চালানো হয় না।
  • তারা এমন পরিষেবাগুলিতে অ্যাক্সেস করতে পারে না যার অনুমোদন প্রয়োজন। উদাহরণস্বরূপ, একটি সাধারণ ট্রিগার একটি ইমেল পাঠাতে পারে না কারণ Gmail পরিষেবার অনুমোদন প্রয়োজন, তবে একটি সাধারণ ট্রিগার ভাষা পরিষেবার সাহায্যে একটি বাক্যাংশ অনুবাদ করতে পারে, যা বেনামী।
  • তারা যে ফাইলের সাথে আবদ্ধ তা পরিবর্তন করতে পারে, কিন্তু অন্য ফাইল অ্যাক্সেস করতে পারে না কারণ এর জন্য অনুমোদনের প্রয়োজন হবে।
  • জটিল নিরাপত্তা বিধিনিষেধের উপর নির্ভর করে তারা বর্তমান ব্যবহারকারীর পরিচয় নির্ধারণ করতে সক্ষম হতে পারে বা নাও হতে পারে।
  • তারা ৩০ সেকেন্ডের বেশি চলতে পারে না।
  • কিছু নির্দিষ্ট পরিস্থিতিতে, এডিটর অ্যাড-অনগুলি তাদের onOpen(e) এবং onEdit(e) সহজ ট্রিগারগুলিকে নো-অথরাইজেশন মোডে চালায় যা কিছু অতিরিক্ত জটিলতা তৈরি করে। আরও তথ্যের জন্য, অ্যাড-অন অনুমোদন জীবনচক্রের নির্দেশিকা দেখুন।
  • সহজ ট্রিগারগুলি অ্যাপস স্ক্রিপ্ট ট্রিগার কোটা সীমার অধীন।

এই বিধিনিষেধগুলি doGet(e) বা doPost(e) এর ক্ষেত্রে প্রযোজ্য নয়।

onOpen(e)

যখন কোনও ব্যবহারকারী কোনও স্প্রেডশিট, ডকুমেন্ট, প্রেজেন্টেশন, অথবা ফর্ম খোলেন যা সম্পাদনা করার অনুমতি তাদের আছে, তখন onOpen(e) ট্রিগারটি স্বয়ংক্রিয়ভাবে চলে। (কোনও ফর্মের প্রতিক্রিয়া জানালে ট্রিগারটি চলে না, শুধুমাত্র সম্পাদনা করার জন্য ফর্মটি খোলার সময়।) onOpen(e) সাধারণত Google Sheets, Slides, Docs, অথবা Forms-এ কাস্টম মেনু আইটেম যোগ করতে ব্যবহৃত হয়।

ট্রিগার/ট্রিগার.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 থেকে কোনও Editor অ্যাড-অন ইনস্টল করেন তখন onInstall(e) ট্রিগারটি স্বয়ংক্রিয়ভাবে চলে। যখন কোনও ব্যবহারকারী Google Workspace Marketplace ওয়েবসাইট থেকে অ্যাড-অন ইনস্টল করেন তখন ট্রিগারটি চলবে না। মনে রাখবেন যে onInstall(e) কী করতে পারে তার উপর কিছু বিধিনিষেধ রয়েছে, অনুমোদন সম্পর্কে আরও জানুন। onInstall(e) এর সবচেয়ে সাধারণ ব্যবহার হল কাস্টম মেনু যোগ করার জন্য onOpen(e) কল করা। সর্বোপরি, যখন একটি অ্যাড-অন ইনস্টল করা হয়, তখন ফাইলটি ইতিমধ্যেই খোলা থাকে, এবং তাই ফাইলটি পুনরায় খোলা না হওয়া পর্যন্ত onOpen(e) নিজে থেকে চলে না।

ট্রিগার/ট্রিগার.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) ফাংশনটি সেই কক্ষে একটি মন্তব্য সেট করে যা শেষবার সম্পাদনা করার সময় রেকর্ড করে।

ট্রিগার/ট্রিগার.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) ফাংশনটি ঘরের পটভূমি লাল করে।

ট্রিগার/ট্রিগার.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)

যখন কোনও ব্যবহারকারী কোনও ওয়েব অ্যাপে যান অথবা কোনও প্রোগ্রাম কোনও ওয়েব অ্যাপে HTTP GET অনুরোধ পাঠায় তখন doGet(e) ট্রিগার স্বয়ংক্রিয়ভাবে চলে। যখন কোনও প্রোগ্রাম কোনও ওয়েব অ্যাপে HTTP POST অনুরোধ পাঠায় তখন doPost(e) ট্রিগারটি চলে। এই ট্রিগারগুলি ওয়েব অ্যাপস , HTML পরিষেবা এবং সামগ্রী পরিষেবার নির্দেশিকাগুলিতে আরও প্রদর্শিত হয়। মনে রাখবেন যে doGet(e) এবং doPost(e) উপরে তালিকাভুক্ত বিধিনিষেধের অধীন নয়।

উপলব্ধ ধরণের ট্রিগার

যদি সহজ ট্রিগারের উপর বিধিনিষেধের কারণে আপনার চাহিদা পূরণ না হয়, তাহলে একটি ইনস্টলযোগ্য ট্রিগার কাজ করতে পারে। নিচের সারণীতে প্রতিটি ধরণের ইভেন্টের জন্য কোন ধরণের ট্রিগার উপলব্ধ তা সংক্ষিপ্তভাবে দেখানো হয়েছে। উদাহরণস্বরূপ, Google Sheets, Slides, Forms, এবং Docs সবই সহজ খোলা ট্রিগার সমর্থন করে, কিন্তু শুধুমাত্র Sheets, Docs এবং Forms ইনস্টলযোগ্য খোলা ট্রিগার সমর্থন করে।

ইভেন্ট সহজ ট্রিগার ইনস্টলযোগ্য ট্রিগার
খোলা
শীট
স্লাইড
ফর্ম*
ডক্স

function onOpen(e)

শীট
ফর্ম*
ডক্স
সম্পাদনা
শীট

function onEdit(e)

শীট
নির্বাচন পরিবর্তন
শীট

function onSelectionChange(e)

ইনস্টল করুন
শীট
স্লাইড
ফর্ম
ডক্স

function onInstall(e)

পরিবর্তন
শীট
ফর্ম জমা দিন
শীট
ফর্ম
সময়-চালিত (ঘড়ি)
শীট
স্লাইড
ফর্ম
ডক্স
স্বতন্ত্র
পান
স্বতন্ত্র

function doGet(e)

পোস্ট
স্বতন্ত্র

function doPost(e)

* গুগল ফর্মের জন্য উন্মুক্ত ইভেন্টটি তখন ঘটে না যখন একজন ব্যবহারকারী প্রতিক্রিয়া জানাতে একটি ফর্ম খোলেন, বরং যখন একজন সম্পাদক এটি পরিবর্তন করার জন্য ফর্মটি খোলেন।