Mein Skript, das ein PDF-Dokument aus einer Vorlage in Google Drive generiert und es an einen Empfänger basierend auf Spalten in einer Tabelle sendet, funktioniert heute aufgrund der Abschreibung von DocsList nicht mehr. Siehe hier: https://developers.google.com/google-apps/documents-list/So aktualisieren Sie DocsList auf DriveApp in meinem Code
Ich habe versucht, diese Anleitung https://developers.google.com/drive/web/migration zu aktualisieren, um alle Instanzen von DocsList mit DriveApp zu aktualisieren, aber ich kann es nicht zum Funktionieren bringen. Könnte jemand mir bitte helfen, dieses Skript zu aktualisieren, damit es richtig funktioniert? Ich habe 6 Instanzen von "DocsList" in diesem Skript, und ich konnte einige von ihnen richtig aktualisieren, aber andere wie "addFile" scheinen ein anderes Format zu erfordern. Auch nach einfach versuchen, zu finden und „DocsList“ mit „DriveApp“ ersetzen bekomme ich folgende Fehlermeldung:
„Typeerror:. Kann nicht funktionieren addFile in Objekt ProofOfCredit_CNZDTVR44N.pdf finden (Linie 45, Datei‚ProofOfCreditCode‘)“
Ich würde mich über jeden Rat und jede Hilfe freuen, da diese Abschreibung 5 meiner Skripte zerstörte, die mit dieser ziemlich identisch sind.
var docTemplate = "1JAPmsrPRrRwXCVAli229C5J7Kr4xaOnfO2rmGqvYyhU";
var docName = "ProofOfCredit";
function onFormSubmit(e) {
var first_name = e.values[1];
var last_name = e.values[2];
var customer_email = e.values[3];
var order_number = e.values[4];
var brand = e.values[5];
var amount = e.values[6];
var date_of_credit = e.values[7];
var auth_code = e.values[8];
var last_4 = e.values[9];
var request_id = e.values[10];
var rep_name = e.values[11];
var copyId = DocsList.getFileById(docTemplate)
.makeCopy(docName+'_'+order_number)
.getId();
var copyDoc = DocumentApp.openById(copyId);
var copyBody = copyDoc.getActiveSection();
copyBody.replaceText('keyFirst', first_name);
copyBody.replaceText('keyLast', last_name);
copyBody.replaceText('keyBrand', brand);
copyBody.replaceText('keyAmount', amount);
copyBody.replaceText('keyCreditdate', date_of_credit);
copyBody.replaceText('keyAuth', auth_code);
copyBody.replaceText('keyRep', rep_name);
copyBody.replaceText('keyOrder', order_number);
copyBody.replaceText('keyCClast4', last_4);
copyBody.replaceText('keyRequestID', request_id);
var todaysDate = Utilities.formatDate(new Date(), "GMT", "MM/dd/yyyy");
copyBody.replaceText('keyTodaysDate', todaysDate);
copyDoc.saveAndClose();
var pdf = DocsList.getFileById(copyId).getAs("application/pdf");
var folder = DocsList.getFolder('Proof of Credit');
var movefile = DocsList.createFile(pdf);
movefile.addToFolder(folder);
movefile.removeFromFolder(DocsList.getRootFolder());
var subject = "Proof of Credit regarding Order Number: " + order_number;
var body = "Hello " + first_name + " " + last_name + "," + "<br /><br />"
+ "Thank you for calling " + brand + " Support. The attached document contains information "
+ "for you to reference related to the credits we have issued back to your original form of payment." + "<br /><br />"
+ "If you have any further questions or require additional assistance please let us know." + "<br /><br />"
+ "Regards," + "<br /><br />"
+ rep_name + ", Payments Department" + "<br />"
+ "[email protected]";
var cc = "[email protected]";
MailApp.sendEmail(customer_email, subject, body, {htmlBody: body, attachments: pdf, cc: cc});
DocsList.getFileById(copyId).setTrashed(true);
}
Dies ist der ursprüngliche Code ohne die Zeichenfolge "DocsList" durch "DriveApp" ersetzt zu haben, da dies nicht funktionierte (noch habe ich es erwartet, aber ich dachte, es war einen Versuch wert) – cwg83