Google apps script 时间驱动触发器中的函数参数
我有一个函数,根据其参数,它应该有两种不同的行为:Google apps script 时间驱动触发器中的函数参数,google-apps-script,Google Apps Script,我有一个函数,根据其参数,它应该有两种不同的行为: 如果没有参数,请执行以下操作: 否则,B 如果我只是运行函数,在脚本编辑器上选择它并单击run,它将按预期运行。它完成了没有参数时应该做的事情。如果我在时间驱动触发器中运行它,那么什么也不会发生。我认为在触发器中运行函数也会将参数设置为未定义。我错过什么了吗 以下是功能代码: function logToday(sede) { var sheet=SpreadsheetApp.getActiveSpreadsheet().getShee
- 如果没有参数,请执行以下操作:
- 否则,B
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());
}
}
}
传递参数的函数在哪里?你需要安排那个活动。非常感谢。我想是这样的,我想回答我自己的问题,但你的答案要好得多。非常感谢你。