Mój skrypt, który generuje dokument PDF z szablonu na Dysku Google i wysyła go e-mailem do odbiorcy na podstawie kolumn w arkuszu kalkulacyjnym, przestał działać z powodu deprecjacji DocsList. Zobacz poniżej: https://developers.google.com/google-apps/documents-list/Jak zaktualizować DocsList do DriveApp w moim kodzie
Próbowałem aktualizacji tego przewodnika https://developers.google.com/drive/web/migration, aby zaktualizować wszystkie wystąpienia DocsList z DriveApp, ale nie mogę go uruchomić. Czy ktoś mógłby mi pomóc zaktualizować ten skrypt, aby działał poprawnie? Mam 6 wystąpień "DocsList" w tym skrypcie i byłem w stanie zaktualizować niektóre z nich poprawnie, ale inne, takie jak "addFile", wydają się wymagać innego formatu. Nawet po prostu stara się znaleźć i zastąpić „DocsList” z „DriveApp” pojawia się następujący komunikat o błędzie:
„TypeError. Nie można odnaleźć funkcji addFile w obiekcie ProofOfCredit_CNZDTVR44N.pdf (linia 45, plik«ProofOfCreditCode»)”
Byłbym wdzięczny za wszelkie porady i pomoc, ponieważ amortyzacja zepsuła 5 moich skryptów, które są prawie identyczne z tym.
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);
}
To jest oryginalny kod bez zastępowania ciągu "DocsList" przez "DriveApp", ponieważ to nie zadziałało (nie spodziewałem się, że to zrobię, ale uznałem, że warto spróbować). – cwg83