2012-06-12 55 views
0

我正在使用腳本來處理表單,因爲它已提交。其中的一部分涉及將表單中的數據與Google文檔合併,然後將該文檔通過電子郵件發送給PDF。無論如何刪除文件一旦被髮送?刪除新創建的文檔?

如果有幫助,這是我的腳本:

function onFormSubmit(e) { 
    //Get Form Values 
    var candID = parseInt(e.values[1]); 
    var emailAddress = e.values[2]; 

    //Get Additional Settings 
    var ssMaster = SpreadsheetApp.openById("0AierVcXWELCudDY2Y3J2Z1hoX3pLOXYzTW1pOVF3Wmc"); 
    var settings_sheet = ssMaster.getSheetByName("Settings"); 
    var candCodeLength = settings_sheet.getRange("B20").getValue(); 
    var candCodeChars = settings_sheet.getRange("B21").getValue(); 
    var tempDocumentID = settings_sheet.getRange("B14").getValue(); 
    var candInfoSheet = ssMaster.getSheetByName("Candidate Information"); 
    var candInfoLastRow = candInfoSheet.getLastRow(); 
    var candInfoArray = candInfoSheet.getRange(2,1,candInfoLastRow,7).getValues(); 

    //Find Corresponding Row for Form Entry 
    for(var i=0; i<candInfoArray.length; i++) { 
     if (candInfoArray[i][3] === candID) { 
     var row = i+2; 
     } 
     } 
    var candIDRowNumber = row; 

    //Create & Record Candidate Code 
    do { 
     var candCode = createCandCode(candCodeLength, candCodeChars); 
     } 
     while(checkCandCode(candInfoArray, candCode) === true); 
     candInfoSheet.getRange(row,6,1,1).setValue(candCode); 
     candInfoSheet.getRange(row,7,1,1).setValue(emailAddress); 

    //Create PDF 
    var docid = DocsList.getFileById(tempDocumentID).makeCopy("Character Reference Instructions").getId(); 
    var doc = DocumentApp.openById(docid); 
    Logger.log(candInfoArray); 
    Logger.log(row); 
    var firstName = candInfoArray[(row-2)][1]; 
    var lastName = candInfoArray[(row-2)][0]; 
    var body = doc.getActiveSection(); 
    body.replaceText("<<first>>", firstName); 
    body.replaceText("<<last>>", lastName); 
    body.replaceText("<<code>>", candCode); 
    doc.saveAndClose(); 

    //Send Email 
    var message = "You have successfully completed the NHS Registration form.\n\n Your Candidate Code (different from your Candidate ID) is \"" + candCode + "\" and should be given to your character reference so that they can fill out your character reference form.\n\n If you have any questions, please email Ann Perham at [email protected]" ; 
    var subject = "NHS Registration Confirmation & Character Reference Instructions"; 
    var advancedArgs = {name: "Ann Perham", replyTo: "[email protected]", attachments: doc.getAs("application/pdf")}; 
    MailApp.sendEmail(emailAddress, subject, message, advancedArgs); 
    } 

回答

4

你可以就在你的函數的末尾使用doc.setTrashed,而它仍然是活動的文檔。

+1

謝謝@ serge-insas!我最終在我的「發送郵件」部分之後添加了以下代碼。 'var file = DocsList.getFileById(docid); file.setTrashed(true);' 我昨天搜索了這個答案的文檔,但由於某種原因,我從來沒有想過要搜索「垃圾」這個詞。 –