每小时触发导致每小时发送一次电子邮件警报,但仅需要第一次

时间:2019-01-21 04:34:15

标签: javascript google-apps-script google-sheets triggers

我有一个检查两件事的脚本:

->在D列中具有今天的日期并且在F列中具有关联值的行大于0.5。当这些都成立时,它会发送电子邮件警报。

但是,我将此脚本的Google脚本触发器设置为每小时一次。现在,当此条件为真时,它会每小时向我发送警报。我想仅在第一天(即第一小时)被提醒到给定的一天这种情况。

因此,我不想每天(当天的每个小时)收到24封电子邮件,而是只想收到第一封电子邮件。如何将其添加到此脚本中?

function readCell() {
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getSheetByName('test'); 
  var rg=sh.getDataRange()
  var vA=rg.getValues();
  var yesterday=new Date(new Date().getFullYear(),new Date().getMonth(),new Date().getDate());//today
  var yesterdayString=Utilities.formatDate(yesterday, Session.getScriptTimeZone(), "MMddyyyy")

  for(var i=1;i<vA.length;i++) {
    if (isDate(vA[i][2])) {
      var t1=Utilities.formatDate(new Date(vA[i][2]),Session.getScriptTimeZone(),"MMddyyyy");//

      if(t1==yesterdayString && Number(vA[i][5])>0.5) {
        MailApp.sendEmail('blabla@gmail.com','Alert!', 'Detected on: ' +vA[i][3].)

      }
    }
  }
}
function isDate(date){
  return(Object.prototype.toString.call(date) === '[object Date]');
}

0 个答案:

没有答案