私は他の同様の投稿を見て、トリガーを正しく設定するのに助けを得ましたが、まだエラーがあります。
私は、Google Appsのフォーム送信に対応して電子メールを送信するためのpdfドキュメントの送信を自動化しようとしました。私はWeb上で共有されたスクリプトを使用して、いくつかの非推奨の用語を修正しました。
プレースホルダとしてkeyItems
が埋め込まれたドキュメントテンプレートを作成しました。データを取得するためのフォームを作成しました。フォームに関連付けられているスプレッドシートは、計画どおりにデータをキャプチャしています。スプレッドシートに関連するスクリプトを編集して、フォームの提出に必要な作業をうまくやるようにしました。トリガーは、on form submit
from the spreadsheet
に正しく設定されています。私の質問は、e.values
が未定義であることについて繰り返し私が受け取ったエラーです。私は変数を宣言したときにe.values[0]
とラベル付けすることを前提としていました。つまり、スプレッドシートのフィールドから引き出された配列の順序に基づいていました。長い間巻き込まれて申し訳ありません。私は変数にダミーのコンテンツを配置し、実際のメカニズムは正常に機能するので、私のe.values
は機能していないので、pdfを送信します。ここで Google Script e.values error
// Googleドキュメントからテンプレートと名前を取得し、それ
var docTemplate = "1V_PqCBZ9vWmmIELp47X12iNtdwRCqHyOyey6VPL0o0Q";
var docName = "CertificateOfCompletion";
//フォームは、フォームからの情報を取得提出し、変数
として設定した場合function onFormSubmit(e) {
var name = e.values[2];
var email = e.values[3];
var date = e.values[4];
//提出者のテンプレートdocの一時作業コピーを作成する
var copyId = DriveApp.getFileById(docTemplate).makeCopy(docName+' for '+name).getId();
//一時的なドキュメントを開く
var copyDoc = DocumentApp.openById(copyId);
//
var copyBody = copyDoc.getBody();
//送信されたフォームからのデータとドキュメントにプレースホルダを置き換えるドキュメントに行くために、スクリプトを教えて
copyBody.replaceText('keyFullName', name);
copyBody.replaceText('keyDate', date);
copyDoc.saveAndClose();
// PDfを作成
var pdf = DriveApp.getFileById(copyId).getAs("application/pdf");
//
DriveApp.getFileById(copyId).setTrashed(true); }