Ich habe andere ähnliche Beiträge angeschaut und habe Hilfe beim Einrichten des Triggers erhalten, aber immer noch einen Fehler.
Ich habe versucht, das Senden eines PDF-Dokuments zu automatisieren, das als Antwort auf eine Formularübermittlung in Google Apps per E-Mail gesendet werden soll. Ich habe ein im Web freigegebenes Skript verwendet, um loszulegen, und habe einige veraltete Begriffe korrigiert.
Ich erstellte eine Dokumentvorlage mit keyItems
eingebettet als Platzhalter und ich erstellte ein Formular zum Erfassen von Daten. Die mit dem Formular verknüpfte Tabelle erfasst Daten wie geplant. Ich habe das mit der Tabelle verknüpfte Skript bearbeitet, um die für die Übermittlung des Formulars erforderliche Arbeit zu erledigen. Der Trigger sieht korrekt aus, um ausgeführt zu werden on form submit
from the spreadsheet
. Meine Frage ist über den Fehler, den ich wiederholt bezüglich der e.values
undefined bin. Ich nahm an, dass ich diese als e.values[0]
und weiter bezeichnen würde, wenn ich die Variablen deklarierte - d. H. Sie würden auf ihrer Reihenfolge in dem aus den Tabellenkalkulationsfeldern gezogenen Array basieren. Es tut mir leid, dass ich langatmig bin. Wenn ich Dummy-Inhalt in den Variablen platziere, funktioniert es und sendet die pdf, so funktioniert der eigentliche Mechanismus in Ordnung, aber meine e.values
funktionieren nicht.Google Script e.values Fehler
Hier ist mein Skript // Certificate of Completion
// Vorlage von Google Text & Tabellen und Namen holen
var docTemplate = "1V_PqCBZ9vWmmIELp47X12iNtdwRCqHyOyey6VPL0o0Q";
var docName = "CertificateOfCompletion";
// Wenn eingereichten Formular Infos von Form erhalten und setzen als Variablen
function onFormSubmit(e) {
var name = e.values[2];
var email = e.values[3];
var date = e.values[4];
// temporäre Arbeitskopie der Vorlage doc für den Übergeber
erstellenvar copyId = DriveApp.getFileById(docTemplate).makeCopy(docName+' for '+name).getId();
// öffnen Sie die temporäre doc
var copyDoc = DocumentApp.openById(copyId);
// Skript anweisen, in den doc zu gehen
var copyBody = copyDoc.getBody();
// ersetzen Platzhalter in der doc mit Daten aus einer vorgelegten Form
copyBody.replaceText('keyFullName', name);
copyBody.replaceText('keyDate', date);
copyDoc.saveAndClose();
// erstellen PDf
var pdf = DriveApp.getFileById(copyId).getAs("application/pdf");
// E-Mail-Empfänger senden
var subject = "Certificate";
var body = "Congratulations!" + name + " Here is your certificate of completion " ;
MailApp.sendEmail(email, subject, body, {htmlBody: body, attachments: pdf});
// löschen temporäre Dokument
DriveApp.getFileById(copyId).setTrashed(true); }