সরল ট্রিগার

ট্রিগারগুলি অ্যাপস স্ক্রিপ্টকে স্বয়ংক্রিয়ভাবে একটি ফাংশন চালাতে দেয় যখন একটি নির্দিষ্ট ইভেন্ট যেমন একটি নথি খোলার মতো ঘটনা ঘটে। সরল ট্রিগার হল অ্যাপস্ স্ক্রিপ্টে তৈরি করা সংরক্ষিত ফাংশনগুলির একটি সেট, যেমন ফাংশন 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 পত্রক, স্লাইডস, ডক্স বা ফর্ম ফাইলের সাথে আবদ্ধ হতে হবে, অন্যথায় একটি অ্যাড-অন হতে হবে যা এই অ্যাপ্লিকেশনগুলির মধ্যে একটিকে প্রসারিত করে৷
  • একটি ফাইল শুধুমাত্র-পঠন (দেখুন বা মন্তব্য) মোডে খোলা হলে তারা চলবে না।
  • স্ক্রিপ্ট এক্সিকিউশন এবং API অনুরোধ ট্রিগার চালানোর কারণ হয় না। উদাহরণস্বরূপ, একটি সেল এডিট করতে Range.setValue() কল করলে স্প্রেডশীটের onEdit ট্রিগার চালানো হয় না।
  • অনুমোদনের প্রয়োজন হয় এমন পরিষেবাগুলি তারা অ্যাক্সেস করতে পারে না৷ উদাহরণস্বরূপ, একটি সাধারণ ট্রিগার একটি ইমেল পাঠাতে পারে না কারণ Gmail পরিষেবাটির অনুমোদনের প্রয়োজন হয়, কিন্তু একটি সাধারণ ট্রিগার ভাষা পরিষেবার সাথে একটি বাক্যাংশ অনুবাদ করতে পারে, যা বেনামী৷
  • তারা যে ফাইলটিতে আবদ্ধ তা পরিবর্তন করতে পারে, কিন্তু অন্য ফাইলগুলি অ্যাক্সেস করতে পারে না কারণ এর জন্য অনুমোদনের প্রয়োজন হবে।
  • নিরাপত্তা বিধিনিষেধের জটিল সেটের উপর নির্ভর করে তারা বর্তমান ব্যবহারকারীর পরিচয় নির্ধারণ করতে পারে বা নাও পারে।
  • তারা 30 সেকেন্ডের বেশি সময় ধরে চলতে পারে না।
  • নির্দিষ্ট পরিস্থিতিতে, সম্পাদক অ্যাড-অনগুলি তাদের onOpen(e) এবং onEdit(e) সাধারণ ট্রিগারগুলিকে নো-অথরাইজেশন মোডে চালায় যা কিছু অতিরিক্ত জটিলতা উপস্থাপন করে। আরও তথ্যের জন্য, অ্যাড-অন অনুমোদনের জীবনচক্রের নির্দেশিকা দেখুন।
  • সরল ট্রিগারগুলি Apps স্ক্রিপ্ট ট্রিগার কোটা সীমা সাপেক্ষে৷

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

onOpen(e)

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

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 থেকে একটি Editor অ্যাড-অন ইনস্টল করেন। কোনো ব্যবহারকারী 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) ট্রিগার স্বয়ংক্রিয়ভাবে চলে যখন কোনো ব্যবহারকারী কোনো ওয়েব অ্যাপে যান বা কোনো প্রোগ্রাম কোনো ওয়েব অ্যাপে একটি HTTP GET অনুরোধ পাঠায়। doPost(e) চলে যখন একটি প্রোগ্রাম একটি ওয়েব অ্যাপে একটি HTTP POST অনুরোধ পাঠায়। এই ট্রিগারগুলি ওয়েব অ্যাপস , এইচটিএমএল পরিষেবা এবং বিষয়বস্তু পরিষেবার নির্দেশিকাগুলিতে আরও প্রদর্শিত হয়৷ মনে রাখবেন doGet(e) এবং doPost(e) উপরে তালিকাভুক্ত বিধিনিষেধের অধীন নয়।

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

যদি সাধারণ ট্রিগারগুলির উপর নিষেধাজ্ঞাগুলি আপনার প্রয়োজনগুলি পূরণ করতে বাধা দেয়, তবে একটি ইনস্টলযোগ্য ট্রিগার পরিবর্তে কাজ করতে পারে। নীচের সারণীটি সংক্ষিপ্ত করে যে প্রতিটি ধরণের ইভেন্টের জন্য কোন ধরণের ট্রিগার উপলব্ধ। উদাহরণস্বরূপ, Google পত্রক, স্লাইড, ফর্ম এবং ডক্স সবই সহজ ওপেন ট্রিগার সমর্থন করে, কিন্তু শুধুমাত্র শীট, ডক্স এবং ফর্ম ইনস্টলযোগ্য ওপেন ট্রিগার সমর্থন করে।

ঘটনা সরল ট্রিগার ইনস্টলযোগ্য ট্রিগার
খোলা
চাদর
স্লাইড
ফর্ম*
ডক্স

function onOpen(e)

চাদর
ফর্ম*
ডক্স
সম্পাদনা করুন
চাদর

function onEdit(e)

চাদর
নির্বাচন পরিবর্তন
চাদর

function onSelectionChange(e)

ইনস্টল করুন
চাদর
স্লাইড
ফর্ম
ডক্স

function onInstall(e)

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

function doGet(e)

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

function doPost(e)

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