Google Script在更新模板之前通过电子邮件发送模板

时间:2019-01-04 23:10:03

标签: google-apps-script

我正在开发此脚本的最后一步……让我发疯了!如果通过审核,我将尝试自动发送一封电子邮件,其中包含我刚刚提交的文档。

我已经完成所有工作,但是由于某种原因,电子邮件在更新之前以pdf格式发送。发送电子邮件后,文档将使用我设置的所有替换值进行更新。

我试图将其分解为一个单独的函数,但是我不足以让AUTOFILL函数吐出我需要的新文档ID。如您所见,我什至尝试了延迟。没有成功。

function AUTOFILL() {
//get data 
  var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Form 
Responses 1");

//copy down formulas
  var fillDownRange = ss.getRange(3, 33, LastRow()-2);
  ss.getRange("AG2:AL2").copyTo(fillDownRange);

// determine if/which FIN template is needed and build
  var FIN = ss.getRange(LastRow(), 11).getValues(); 
  var FINAUTO = ss.getRange(LastRow(), 36).getValues();  

  if (FIN == "Yes"){
  if (FINAUTO == "Pass"){
  var FINtempid = "my_temp_ID_Here";
  } else var FINtempid = "my_other_temp_ID";

  var data = ss.getRange(LastRow(), 1, 1, 40).getValues();
  var FINid = DriveApp.getFileById(FINtempid).makeCopy().getId();
  var FINfile = DriveApp.getFileById(FINid);
  var KTRName = ss.getRange(LastRow(), 2).getValues()
  DocumentApp.openById(FINid).setName("Report - " +KTRName);
  var FINdoc = DocumentApp.openById(FINid);
  for (var i in data){
    var row = data[i];
  var body = FINdoc.getActiveSection();
    body.replaceText("%EMAIL%", row[14]);
    body.replaceText("%POC%", row[5]);
    body.replaceText("%PHNUM%", row[6]);
    body.replaceText("%TYPE%", row[8]);
    body.replaceText("%KTR%", row[1]);
    body.replaceText("%ID%", row[11]);
    body.replaceText("%KTRPOC%", row[12]);

    if (FINAUTO == "Pass"){
  var Blob = DriveApp.getFileById(FINid).getAs('application/pdf');
  var recipient = 'dude@help.com';
  var subject = 'Test Email';
  var body = 'Bird is the WORD';
  Utilities.sleep(10000)
  MailApp.sendEmail(recipient, subject, body, {attachments: [Blob]});
  }
  }
}  

一旦用户提交了表单,我就会在表单响应中设置一个公式来说“通过/失败”。如果通过了,那么我希望提交请求的人自动将电子邮件与我的报告一起发回。

0 个答案:

没有答案