По состоянию на 12:56 сегодня этот скрипт работал на 100% за последние 4+ года за несколько итераций. Я не знаю javascript сам по себе, но мне удалось взломать это вместе и сделать эту работу без проблем. По сути, это форма Google, которая заполняет лист, затем объединяет данные с шаблоном документа и выводит PDF, который мне по электронной почте.
Я вижу, что интерфейс Trigger был обновлен до нового внешнего вида Googles, и при этом ему не хватает некоторых старых опций, но я не думаю, что это сломало бы систему. Я немного читал на этом сайте и удалил старый триггер и сделал новый в надежде, что это поможет, но это не помогло.
Google изменил параметр e.values
? Я не видел этого на их сайте Stackbug ...
Это очень важно для моего ежедневного рабочего процесса и остановило несколько человек от автоматизации их работы. Любая помощь очень ценится.
var docTemplate = "DOCTEMPLATECODE"; //
var docName = "SG19 - Formal Offer";
// When Form Gets submitted
function onFormSubmit(e) {
//Get information from form and set as variables
var todays_date = e.values[0];
var email_address = e.values[1];
var agency_name = e.values[2];
var artist_name = e.values[3];
var play_date = e.values[4];
var other_artists = e.values[5];
var stage_name = e.values[6];
var set_time = e.values[7];
var artist_fee = e.values[8];
var additional_terms = e.values[9];
var artist_camp = e.values[10];
var billing_size = e.values[11];
var expiration_date = e.values[12];
var guest_list = e.values[13];
var copyId = DriveApp.getFileById(docTemplate)
.makeCopy(docName + ' for ' + artist_name + " - " + play_date)
.getId();
// Open the temporary document
var copyDoc = DocumentApp.openById(copyId);
// Get the document’s body section
var copyBody = copyDoc.getActiveSection();
var TARGET_FOLDER="TARGETFOLDERCODE";
// Replace place holder keys,in our google doc template
copyBody.replaceText('keyAgencyName', agency_name);
copyBody.replaceText('keyArtistName', artist_name);
copyBody.replaceText('keyArtistName', artist_name);
copyBody.replaceText('keyAgencyName', agency_name);
copyBody.replaceText('keyPlayDate', play_date);
copyBody.replaceText('keyStageName', stage_name);
copyBody.replaceText('keySetTime', set_time);
copyBody.replaceText('keyArtistFee', artist_fee);
copyBody.replaceText('keyAddTerms', additional_terms);
copyBody.replaceText('keyArtistCamp', artist_camp);
copyBody.replaceText('keyBillingSize', billing_size);
copyBody.replaceText('keyOtherArtists', other_artists);
copyBody.replaceText('keyTodaysDate', todays_date);
copyBody.replaceText('keyExpirationDate', expiration_date);
copyBody.replaceText('keyGuestList', guest_list);
// Save and close the temporary document
copyDoc.saveAndClose();
// Convert temporary document to PDF
var pdf = DriveApp.getFileById(copyId).getAs("application/pdf");
var targetFolder = DriveApp.getFolderById(TARGET_FOLDER) ;
var new_pdf = DriveApp.getFileById(copyId).makeCopy(artist_name + " - " + "
Serenity Gathering " + " - " + " Oakdale CA " + " - " + play_date,
targetFolder)
.getAs("application/pdf");
// Attach PDF and send the email
var subject = "Formal Offer " + " - " + artist_name + " - " + " Serenity
Gathering " + " - " + " Oakdale CA " + " - " + play_date;
var body = "Greetings, our offer for " + artist_name + " at " + " Serenity
Gathering " + play_date + " is attached ";
MailApp.sendEmail(email_address, subject, body, {htmlBody: body,
attachments: pdf});
// Delete temp file
DriveApp.getFileById(copyId).setTrashed(true);
}