以编程方式禁用/启用Google Apps脚本脚本触发器

问题描述 投票:1回答:2

我创建了一个脚本来作为基于时间的触发器运行。

  • 我想在周末休假和假期期间禁用该触发器。
  • 我理想上希望它成为我已经拥有的功能的一部分删除以前提交的表单,这意味着用户在每个假期开始时只有一个按钮可以按下(删除以前的提交并禁用时间触发器)。
  • 如果下一次学生提交表单时,触发器被重新启用(表示假期结束了。)>
  • 不确定如何使用脚本以这种方式禁用/启用触发器-感谢您提供任何建议!

   //Menu allowing user to choose to delete previous form submissions
    function onOpen() {
      var ui = SpreadsheetApp.getUi();
      // Or DocumentApp or FormApp.
      ui.createMenu('Clear Out Responses')
      .addItem('Clear Form & Responses', 'showAlert')
          .addToUi();
    }


//Alert box deleting previous form submissions on yes, doing nothing if not
function showAlert() {
  var ui = SpreadsheetApp.getUi(); // Same variations.

  var result = ui.alert(
     'This will clear all previously registered data',
     'Are you sure you want to continue?',
      ui.ButtonSet.YES_NO);

  // Process the user's response.
  if (result == ui.Button.YES) {
    // User clicked "Yes".
 var ui = SpreadsheetApp.getUi();
  var source = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Form Responses 1");
  var lastRow = source.getLastRow()
  source.deleteRows(2, lastRow)}
  var form, urlForm = SpreadsheetApp.getActiveSpreadsheet().getFormUrl();
  if (urlForm) {}
    form = FormApp.openByUrl(urlForm);
    if (form) form.deleteAllResponses();
  }

//Trigger running  record-keeping function each night 
function dailyTrigger() {
  ScriptApp.newTrigger('dailyRecord')
  .timeBased()
  .atHour(22)
  .everyDays(1)
  .create();
}


//Record-keeping function, copy/value-pasting record into next clear column
function dailyRecord() {
    var ss = SpreadsheetApp.getActive()
        .getSheetByName('History'),
        lastColumn = ss.getLastColumn(),
        colE = ss.getRange("C:C")
            .getValues();
    ss.getRange(1, lastColumn + 1, colE.length, 1)
        .setValues(colE);
}

我创建了一个脚本来作为基于时间的触发器运行。我想在周末休假和假期期间禁用该触发器。理想情况下,我希望它成为已删除的函数的一部分...

google-apps-script triggers
2个回答
3
投票

您看过getUserTriggers()getUserTriggers()吗?


1
投票

无法检索现有触发器并重新定义它。例如,无法检索已经运行的基于时间的触发器,并且无法使用代码为其指定新的运行时间。

© www.soinside.com 2019 - 2024. All rights reserved.