javascript - 如何确保自动邮件中附加的PDF是最新信息?

标签 javascript google-apps-script

这是我通过 Google Apps 脚本创建的流程。

  1. 有人以 Google 形式写入信息
  2. 信息存储在电子表格中
  3. 发票是在电子表格中使用收到的最新信息创建的
  4. 发票自动转换为 PDF 格式
  5. 最新的发票附在自动发送的电子邮件中
  6. 提交 Google 表单后,此人会立即收到一封附有发票的自动电子邮件

问题是,当有人提交 Google 表单时,他们会收到一张发票​​,但他们收到的是之前信息中的发票。然后重复此操作。当有人提交时,发票中的信息来自前一位。

我是 Google Script 的初学者,所以我不知道为什么会发生这种情况。

这是我用来发送自动电子邮件的代码。我已经最小化了代码。

function for_users2() {

 var title = "【お問い合わせありがとうございます】";

 var name = '名前'; 
 var mail = 'メールアドレス'; 
 var address = "";

 var sheet = SpreadsheetApp.getActiveSheet();
 var row = sheet.getLastRow();
 var column = sheet.getLastColumn();
 var range = sheet.getDataRange();
 var TIMESTAMP_LABEL = 'タイムスタンプ';

 for (var i = 1; i <= column; i++ ) {

 var item = range.getCell(1, i).getValue();


 var value = range.getCell(row, i).getValue();

 if ( item === TIMESTAMP_LABEL ) {
 item = 'お問い合わせ日時';
 }

 if ( item === 'お問い合わせ日時' ) {
 value = Utilities.formatDate(value, 'Asia/Tokyo',"YYYY'年'MM'月'dd'日'HH'時'mm'分'ss'秒'");
 }


 body += "■"+item+"\n";


 body += value + "\n\n";


 if ( item === name ) {
 body = value+" 様\n\n"+body;
 }


 if ( item === mail ) {
 address = value;
 }
 }

 body += body2;

var token = ScriptApp.getOAuthToken();
var pdf = UrlFetchApp.fetch("https://docs.google.com/spreadsheets/d/OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO/export?exportFormat=pdf&format=pdf&size=A4&portrait=true&fitw=true&sheetnames=false&printtitle=false&pagenumbers=false&gridlines=false&fzr=false&gid=00000000000", {headers: {'Authorization': 'Bearer ' +  token}}).getBlob().setName('請求書');



  GmailApp.sendEmail(
    address,
    title,
    body,
    {
      attachments: [pdf],
      name: 'Automatic Emailer Script'
    }
 );
  }


There is no error. It's just that the invoice attached is from one previous customer.

最佳答案

感谢回答我问题的人。特别感谢 Tanaike,他建议了一种解决方法,我可以将其用作 GAS 的启动器。

由于我使用了 Utilities.sleep(5000),每当有人提交 Google 表单时,生成的发票(PDF 格式)就会更新为最新信息。由于我创建的程序并不是针对非常繁重的进程,这可能是它运行得很好的原因。

关于javascript - 如何确保自动邮件中附加的PDF是最新信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57566035/

相关文章:

javascript - ReactJS:用新值替换数组中的对象替换整个数组

javascript - 单击时无法激活导航栏中的 Bootstrap 下拉菜单

javascript - 为什么{来源 :target} when destructing in Javascript?

javascript - 使用 Google Apps 脚本将数据从 API 提取到电子表格

google-apps-script - 如何使用html文件作为htmlBody?

javascript - 使用 Google Apps 脚本获取已发送文件夹中的未读计数 - GMail

javascript - Angular 6 中具有相应组件的子路由

javascript - D3中动态更新图表数据

javascript - 修改谷歌表格脚本以复制值而不是公式

google-apps-script - 如何使用 Apps 脚本获取 Google 表单目标的电子表格标签名称