Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在主函数中运行2个函数_Javascript_Google Apps Script_Google Sheets - Fatal编程技术网

Javascript 在主函数中运行2个函数

Javascript 在主函数中运行2个函数,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我是一个初学者,如果我的代码看起来有点混乱,很抱歉 我正在尝试编写一个函数,每当列中的单元格等于send\u email时,将电子邮件发送到特定的电子邮件地址。电子邮件正文需要包含来自单元格等于send\u email的行的数据 这是我的代码: function warnStatusBeginDay() { // This function imports house data, every day, between 0am and 1am, and sends an email if

我是一个初学者,如果我的代码看起来有点混乱,很抱歉

我正在尝试编写一个函数,每当列中的单元格等于
send\u email
时,将电子邮件发送到特定的电子邮件地址。电子邮件正文需要包含来自单元格等于
send\u email
的行的数据

这是我的代码:

  function warnStatusBeginDay() {
  // This function imports house data, every day, between 0am and 1am, and sends an email if the time left to answer the 'acta de observacion' is 3 or 7 days from the deadline

  //Check when to send email

  var checkValues = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('service_1_2_main').getRange('V2:AQ').getValues();

  for (var i in checkValues) {

    if (checkValues[i][4] === 'send_email') {
      //Send email notification

      function sendMail_7() {
      // Build email body
      var email_head = "https://i.imgur.com/aaa.jpg";
      var house_id = checkValues[i][10];
      var project = checkValues[i][7];
      var name = checkValues[i][14];
      var address = checkValues[i][19];
      var neigh = checkValues[i][21];
      var municipality = checkValues[i][17];
      var country = checkValues[i][18];
      var acta_date = Utilities.formatDate(checkValues[i][13],"GMT-0500","d MMM yyyy");
      var acta_date_limit = Utilities.formatDate(checkValues[i][12],"GMT-0500","EEE, d MMM yyyy");
      var record_id = checkValues[i][11];
      var lat = checkValues[i][8];
      var lng = checkValues[i][9];
      var imageURL = checkValues[i][20];
      var mapURL = "http://maps.googleapis.com/maps/api/staticmap?center="+lat+","+lng+"&zoom=15&size=300x300&maptype=hybrid&markers=color:red%7C"+lat+","+lng+"&key=myKey";
      var mapURL2 = "https://www.google.com/maps/search/?api=1&query="+lat+","+lng;

      var body = "<p>" +
                  "<p><img src='" + email_head + "' width='269' height='70' alt='Build Change - Sistema de notificación'></p>" + 
                  "<i>[Este es un mensaje automatizado, por favor no responda a este correo]</i>" + "<br>" + "<br>" +    
                  "La vivienda a continuación recibió una acta de observación el " + acta_date + ". El plazo limite para responder al acta vence en <b>7 días</b> desde hoy." + "<br>" + "<br>" +
                  "<b>Código ID vivienda: </b>" + house_id + "<br>" +
                  "<b>Proyecto: </b>" + project + "<br>" +
                  "<b>Nombre y apellido propietario: </b>" + name + "<br>" +
                  "<b>Fecha vencimiento acta de observación: </b>" + acta_date_limit + "<br>" + "<br>" +
                  "<b>Código ID Fulcrum: </b><a href=\"https://web.fulcrumapp.com/records/" + record_id + "\">" + record_id + "</a><br>" +
                  "<b>Latitud y longitud: </b><a href=\"" + mapURL2 + "\">" + lat + ", " + lng + "</a><br>" +
                  "<b>Barrio/Comuna/Localidad/Sector: </b>" + neigh + "<br>" +                  
                  "<b>Dirección: </b>" + address + "<br>" +
                  "<b>Municipalidad: </b>" + municipality + "<br>" +
                  "<b>País: </b>" + country + "<br>" +
                  "<p><a href='https://web.fulcrumapp.com/records/" + record_id + "' title='Open in Fulcrum'><img src='" + mapURL + "'></a>" + "     " + "<img src='" + imageURL + "' height='300 alt='Imagén fachada vivienda'></p>" +
                "</p>";

      // Send email
        MailApp.sendEmail({
          to: "myemail.dev@gmail.com",
          subject: house_id + " - Acta de observación en vencimiento (7 días restantes)",
          htmlBody: body
        });
      }      
      sendMail_7();            
    }
    else {
      continue;
    }  
  }

  SpreadsheetApp.flush();

  for (var j in checkValues) {

    if (checkValues[j][6] === 'send_email') {
      //Send email notification

      function sendMail_3() {
      // Build email body
      var email_head = "https://i.imgur.com/aaa.jpg";
      var house_id = checkValues[j][10];
      var project = checkValues[j][7];
      var name = checkValues[j][14];
      var address = checkValues[j][19];
      var neigh = checkValues[j][21];
      var municipality = checkValues[j][17];
      var country = checkValues[j][18];
      var acta_date = Utilities.formatDate(checkValues[j][13],"GMT-0500","d MMM yyyy");
      var acta_date_limit = Utilities.formatDate(checkValues[j][12],"GMT-0500","EEE, d MMM yyyy");
      var record_id = checkValues[j][11];
      var lat = checkValues[j][8];
      var lng = checkValues[j][9];
      var imageURL = checkValues[j][20];
      var mapURL = "http://maps.googleapis.com/maps/api/staticmap?center="+lat+","+lng+"&zoom=15&size=300x300&maptype=hybrid&markers=color:red%7C"+lat+","+lng+"&key=myKey";
      var mapURL2 = "https://www.google.com/maps/search/?api=1&query="+lat+","+lng;

      var body = "<p>" +
                  "<p><img src='" + email_head + "' width='269' height='70' alt='Build Change - Sistema de notificación'></p>" + 
                  "<i>[Este es un mensaje automatizado, por favor no responda a este correo]</i>" + "<br>" + "<br>" +    
                  "La vivienda a continuación recibió una acta de observación el " + acta_date + ". El plazo limite para responder al acta vence en <b>3 días</b> desde hoy." + "<br>" + "<br>" +
                  "<b>Código ID vivienda: </b>" + house_id + "<br>" +
                  "<b>Proyecto: </b>" + project + "<br>" +
                  "<b>Nombre y apellido propietario: </b>" + name + "<br>" +
                  "<b>Fecha vencimiento acta de observación: </b>" + acta_date_limit + "<br>" + "<br>" +
                  "<b>Código ID Fulcrum: </b><a href=\"https://web.fulcrumapp.com/records/" + record_id + "\">" + record_id + "</a><br>" +
                  "<b>Latitud y longitud: </b><a href=\"" + mapURL2 + "\">" + lat + ", " + lng + "</a><br>" +
                  "<b>Barrio/Comuna/Localidad/Sector: </b>" + neigh + "<br>" +                  
                  "<b>Dirección: </b>" + address + "<br>" +
                  "<b>Municipalidad: </b>" + municipality + "<br>" +
                  "<b>País: </b>" + country + "<br>" +
                  "<p><a href='https://web.fulcrumapp.com/records/" + record_id + "' title='Open in Fulcrum'><img src='" + mapURL + "'></a>" + "     " + "<img src='" + imageURL + "' height='300 alt='Imagén fachada vivienda'></p>" +
                "</p>";

      // Send email
        MailApp.sendEmail({
          to: "myemail.dev@gmail.com",
          subject: house_id + " - Acta de observación en vencimiento (3 días restantes)",
          htmlBody: body
        });
      }      
      sendMail_3();
    }
    else {
      return;
    }  
  }   
}
函数warnStatusBeginDay(){
//此功能每天在凌晨0点到凌晨1点之间导入房屋数据,如果回答“观测行动”的剩余时间为截止日期后3或7天,则发送电子邮件
//检查何时发送电子邮件
var checkValues=SpreadsheetApp.getActiveSpreadsheet().getSheetByName('service_1_2_main').getRange('V2:AQ').getValues();
用于(检查值中的var i){
如果(检查值[i][4]=“发送电子邮件”){
//发送电子邮件通知
函数sendMail_7(){
//构建电子邮件正文
var电子邮件头=”https://i.imgur.com/aaa.jpg";
var house_id=校验值[i][10];
var项目=检查值[i][7];
var名称=校验值[i][14];
var地址=校验值[i][19];
var neigh=校验值[i][21];
var=校验值[i][17];
var国家=校验值[i][18];
var acta_date=Utilities.formatDate(检查值[i][13],“GMT-0500”,“d MMM yyyy”);
var acta_date_limit=Utilities.formatDate(校验值[i][12],“GMT-0500”,“EEE,d MMM yyyy”);
var记录_id=校验值[i][11];
var lat=校验值[i][8];
var lng=校验值[i][9];
var-imageURL=checkValues[i][20];
var mapURL=”http://maps.googleapis.com/maps/api/staticmap?center=“+lat+”、“+lng+”&zoom=15&size=300x300&maptype=hybrid&markers=color:red%7C”+lat+”、“+lng+”&key=myKey”;
var mapURL2=”https://www.google.com/maps/search/?api=1&query=“+lat+”,“+lng;
var body=“”+
“

”+ “[Este es un mensaje automatizado,por pose no respond a Este correo]”+“
“+”
“+ “观察行为的延续生命”+“日期行为”+“第7天行动的响应者行为”+“
”+“
”+ “Código ID vivienda:“+house_ID+”
”+ “项目:”项目+“
”+ “名称y apellido PROPITARIO:“+name+”
”+ “观察行为法:“+acta_date_limit+”
“+”
”+ “Código ID支点:
”+ “横向和纵向:
”+ “Barrio/Comuna/Localidad/section:“+neigh+”
”+ “Dirección:“+地址+”
”+ “市政当局:”市政当局+“
”+ “帕伊斯:“+country+”
”+ “”+“+”

”+ “

”; //发送电子邮件 MailApp.sendmail({ 致:“我的邮件。dev@gmail.com", 主题:house_id+“-Acta de observación en vencimiento(7 días restantes)”, htmlBody:body }); } sendMail_7(); } 否则{ 继续; } } SpreadsheetApp.flush(); 用于(检查值中的var j){ 如果(检查值[j][6]=“发送电子邮件”){ //发送电子邮件通知 函数sendMail_3(){ //构建电子邮件正文 var电子邮件头=”https://i.imgur.com/aaa.jpg"; var house_id=校验值[j][10]; var项目=校验值[j][7]; var名称=校验值[j][14]; var地址=校验值[j][19]; var neigh=校验值[j][21]; var=校验值[j][17]; var国家=校验值[j][18]; var acta_date=Utilities.formatDate(检查值[j][13],“GMT-0500”,“d MMM yyyy”); var acta_date_limit=Utilities.formatDate(校验值[j][12],“GMT-0500”,“EEE,d MMM yyyy”); var记录_id=校验值[j][11]; var lat=校验值[j][8]; var lng=校验值[j][9]; var-imageURL=checkValues[j][20]; var mapURL=”http://maps.googleapis.com/maps/api/staticmap?center=“+lat+”、“+lng+”&zoom=15&size=300x300&maptype=hybrid&markers=color:red%7C”+lat+”、“+lng+”&key=myKey”; var mapURL2=”https://www.google.com/maps/search/?api=1&query=“+lat+”,“+lng; var body=“”+ “

”+ “[Este es un mensaje automatizado,por pose no respond a Este correo]”+“
“+”
“+ “生命是观察行为的延续”+acta_date+”。el plazo limite第三次行动的响应者。”+“
”+“
”+“
”+ “Código ID vivienda:“+house_ID+”
”+ “项目:”项目+“
”+ “名称y apellido PROPITARIO:“+name+”
”+ “观察行为法:“+acta_date_limit+”
“+”
”+ “Código ID支点:
”+ “横向和纵向:
”+ “Barrio/Comuna/Localidad/section:“+neigh+”
”+ “Dirección:“+地址+”
”+ “市政当局:”市政当局+“
”+ “帕伊斯:“+country+”
”+ “”+“+”

”+ “

”; //发送电子邮件 MailApp.sendmail({ 致:“我的邮件。dev@gmail.com", 主题:house_id+“-Acta de observación en vencimiento(3 días restantes)”, htmlBody:body }); } sendMail_3(); } 否则{ 返回; } } }
基本上,我是通过
get.Values
构建一个数组,然后检查:

  • 数组中第五列的哪一行等于
    send_email
    checkValues[i][4]====“send_email”
    ),然后发送与
    相同数量的单元格数的电子邮件