2012-06-12 4 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! 나는 "Send Mail"섹션 바로 다음에 다음 코드를 추가했다. 'var file = DocsList.getFileById (docid); file.setTrashed (true); ' 어제이 답변을 찾았지만 어떤 이유로'휴지통 '이라는 용어를 검색하지 않았습니다. –

관련 문제