Google apps script 时间驱动触发器中的函数参数

Google apps script 时间驱动触发器中的函数参数,google-apps-script,Google Apps Script,我有一个函数,根据其参数,它应该有两种不同的行为: 如果没有参数,请执行以下操作: 否则,B 如果我只是运行函数,在脚本编辑器上选择它并单击run,它将按预期运行。它完成了没有参数时应该做的事情。如果我在时间驱动触发器中运行它,那么什么也不会发生。我认为在触发器中运行函数也会将参数设置为未定义。我错过什么了吗 以下是功能代码: function logToday(sede) { var sheet=SpreadsheetApp.getActiveSpreadsheet().getShee

我有一个函数,根据其参数,它应该有两种不同的行为:

  • 如果没有参数,请执行以下操作:

  • 否则,B

如果我只是运行函数,在脚本编辑器上选择它并单击run,它将按预期运行。它完成了没有参数时应该做的事情。如果我在时间驱动触发器中运行它,那么什么也不会发生。我认为在触发器中运行函数也会将参数设置为未定义。我错过什么了吗

以下是功能代码:

function logToday(sede) {
  var sheet=SpreadsheetApp.getActiveSpreadsheet().getSheetByName('workedDays');
  var dateElement = new dateElement_();
  var hour=dateElement.hour()+":45";
  var monthYear=dateElement.month(); 
  var day=dateElement.dayInMonth();
  var dayName=dateElement.weekDayName();

  Logger.log("Running log Today with: "+sede);

  if(! sede)
  {

    sede="";hour="";
    sheet.appendRow([monthYear,dayName,day,sede,hour]);

  }
  else
  {
    var LastRow=new LastRow_(sheet);

    if(LastRow.getColValue("sede")=="")
    {
      LastRow.setColValue("sede",sede);
      LastRow.setColValue("Entered Hour",hour);
      if(dateElement.weekDay()==0 || dateElement.weekDay()==6 )colorWeekend(sheet);
      Logger.log(dateElement.weekDay());

    }
  }

}

触发时,函数将从触发器中获得一些参数。例如,每分钟一次的时间触发器将返回如下内容: {分钟=58,星期几=1,时区=UTC,一年中的星期=7,秒=20,月中的天=10,月=2,年=2014,小时=10,authMode=full}

执行此测试的函数:

function test(e){
  SpreadsheetApp.openById("YOUR_SPREADSHEET_ID").appendRow([e]);
}
您可以做的是:在代码中,您可以将对象传递给函数,而不是将简单字符串解析为参数:

function passSedeArg(){
  var obj={"sede":"argument"}; // here "argument" must be changed for the old "sede" you where passing
  logToday(obj);
}

function logToday(obj) {
  var sheet=SpreadsheetApp.getActiveSpreadsheet().getSheetByName('workedDays');
  var dateElement = new dateElement_();
  var hour=dateElement.hour()+":45";
  var monthYear=dateElement.month(); 
  var day=dateElement.dayInMonth();
  var dayName=dateElement.weekDayName();

  Logger.log("Running log Today with: "+sede);

  if(typeof obj.sede=="undefined") // no obj.sede argument where given
  {

    sede="";hour="";
    sheet.appendRow([monthYear,dayName,day,sede,hour]);

  }
  else // you have a obj.sede argument
  {
    var LastRow=new LastRow_(sheet);

    if(LastRow.getColValue("sede")=="")
    {
      LastRow.setColValue("sede",obj.sede);
      LastRow.setColValue("Entered Hour",hour);
      if(dateElement.weekDay()==0 || dateElement.weekDay()==6 )colorWeekend(sheet);
      Logger.log(dateElement.weekDay());

    }
  }
}

传递参数的函数在哪里?你需要安排那个活动。非常感谢。我想是这样的,我想回答我自己的问题,但你的答案要好得多。非常感谢你。