0

我的最终目标是根据表单用户级别 (lvl)/优先级选择向客户发送自动电子邮件。3 级应在电子邮件模板中发送选定的表格答案。(我假设我对仅用于维护跟踪的 lvl 2 条目有相同的问题)

如果这些问题可能是一个重复的问题,我深表歉意(我的编码经验很少,主要是 VBA),但我已经彻底使用论坛来弄清楚其中的大部分内容,并阅读了HTML SERVICES,不幸的是我必须错过或阅读它,因为我在传递表单答案(由提交触发)和评估 e.range 以获取要从 HTML 模板中选择的数组字符串时遇到问题。

我最终在提交表单时出现以下错误。

" ReferenceError: returnData 未定义

在评估([未知文件]:10:70)

在评估([未知文件]:39:3)

在 checkAlert(代码:34:29)

在 onFormSubmit(代码:4:3) "

这是我的代码:

代码.gs

function onFormSubmit(e) {
  Logger.log("[METHOD] onFormSubmit");
  
  checkAlert(e.range);
}

function checkAlert(range) {
  Logger.log("[METHOD] checkAlert");

  var values = range.getValues();
  
  var col = values[0];
  var lvl = col[8];
  
  // lvl 0 --> Do nothing
  
  if (lvl == "1" || "2") {
    
    var datetime = col[0]; // Timestamp
    var loc = col[1]; // Location
    var RAPID = col[2]; // Y/N needs attention
    var pumpspec = col[3]; 
    var pumpair = col[4]; 
    var counter = col[5]; 
    var comm = col[6]; // User comments
    var conc = col[7]; // User concerns
    
    var sup = "supemail@example.com"; // Field Manager, and Non-routine email
    
    var returnData = [datetime, loc, RAPID, pumpspec, pumpair, counter, comm, conc, lvl, sup]; 
    var html =  HtmlService.createTemplateFromFile('2template');
    html.data = returnData;
    
    var emailContent = html.evaluate().getContent(); //HTML Output 
    
    var sub = "MAINTENANCE ALERT"

    MailApp.sendEmail({
      to: sup,
      subject: sub,
      htmlBody: emailContent
    });   
  }
  
  if (lvl == "3") {
   
   var datetime = col[0]; // Timestamp
   var loc = col[1]; // Location
   var RAPID = col[2]; // YN needs attention
   var comm = col[6]; // User comments
   var conc = col[7]; // User concerns
   
   var client = "clientemail@example.com";
   var returnData = [datetime, loc, RAPID, comm, conc, client, lvl];  //For some reason causing getValues issues
   var html = HtmlService.createTemplateFromFile('3template');
  
   html.data = returnData ;
   var emailContent = html.evaluate().getContent();
  
   MailApp.sendEmail({
     to: client,
     subject: "ALERT! Daily Inspections - RED FLAG",
     htmlBody: emailContent
     });
  }
  
}

3模板.html

        <!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>
  
   <h3> A technician has noted an immediate concerning issues:</h3><hr /> \
   <p> \
   <h1 style='line-height:90%'>Priority level <?= returnData[6] ?> - Location: <?= returnData[1] ?> <br /> \
   <span style='font-size:60%'> <?= returnData[0] ?> </span></h1> \ 
   <p><hr /> \
   <p> \
   <strong>ISSUE:</strong><br /> \
   <? returnData[4] ?> \
   </p><p> \
   <strong>ADDITIONAL INFO:</strong><br /> \
   <? returnData[3] ?> \
   </p><p> \
   <strong>FIELD MANAGER CONTACT INFO:</strong> \
   (123) 800-1234, supemail@example.com \
   </p>
    
  </body>
  <!-- var returnData = [0 datetime, 1 loc, 2 RAPID, 3 comm, 4 conc, 5 client, 6 lvl] -->
</html

我尝试在提交表单时记录“e”,以查看我得到的代码评估结果并返回“[object][Object]”,这一定是一些我不明白的概念错误。感谢您的帮助。

测井样本表

4

0 回答 0