2013-09-05 3 views
0

Google 애플리케이션 스크립트를 사용하여 양식에서 정보를 얻으려고합니다. 그러나 양식에 이미 대상이 있는지 확인하고 확인하는 것이 좋습니다. 스프레드 시트가 첨부되어 있습니다. ID가없는 경우 ID를 가져오고 싶습니다. 아래의 코드를 실행할 때마다 de-bugger는 "양식에 현재 응답 대상이 없습니다."라는 오류가 발생합니다.Google 양식에 대상 스프레드 시트가 있는지 확인하십시오.

양식 응답 대상이없는 경우이 방법 getDestinationId()는 예외가 발생

var form = FormApp.getActiveForm(); 
    var formName = form.getTitle(); 


    function randomQuestion() { 
     var theFormID = form.getId(); 

     var sheetID = function sheetID() { 

     if (form.getDestinationId() === 'undefined') { 
      var ss = SpreadsheetApp.create(formName + ' (Responses)'); 
      form.setDestination(FormApp.DestinationType.SPREADSHEET, ss.getId()); 
      return form.getDestinationId(); 

     }else { 
     return form.getDestinationId();} 

     } 
    var sheet = sheetID(); 
    g; // <-un-comment this to make the de-bugger throw an error =) 
    } 

답변

1

도와주세요. 여기에 하나를 만들 수 없습니다 만약 내가 응답 스프레드 시트가 있는지 테스트하는 데 사용하고 코드입니다

... 
var form = FormApp.getActiveForm(), idResponse; 
try { 
    idResponse = form.getDestinationId(); 
} 
catch(e) { 
    // TODO 
} 
... 
+0

버그로보고해야합니다! – Mogsdad

+0

적어도 문서는보다 구체적이어야하며 메서드가 예외를 throw 할 수 있음을 나타냅니다. 다른 방법으로도 가능합니다. [openById (id)] (https://developers.google.com/apps-script/reference/forms/form-app?hl=en#openById (String)) 및 [openByUrl (url)] (https : // developers.google.com/apps-script/reference/forms/form-app?hl=ko#openByUrl(String)) – wchiquito

+0

고맙습니다.이 작업 ... 그리고 뭔가 배웠습니다! 다음은 스프레드 시트가 있는지 테스트하고 스프레드 시트를 작성하지 않은 경우 사용한 코드입니다. 'code' var form = FormApp.getActiveForm(); var ssID; 시도 { ssID = form.getDestinationId(); } catch (e) { var exception = e.name; if (예외 === "예외") { var ss = SpreadsheetApp.create (formName + '(응답)'); form.setDestination (FormApp.DestinationType.SPREADSHEET, ss.getId()); ssID = form.getDestinationId(); } else { ssID = form.getDestinationId(); } }'code' – user2262933

2

: 당신은 try...catch와 같은 것을이 처리해야합니다.

var form = FormApp.getActiveForm(); 
    var formName = form.getTitle(); 
    var ssID; 

    try { 
     ssID = form.getDestinationId(); 
    } 
    catch(e) { 
     var exception = e.name; 
     if (exception === "Exception"){ 
     var ss = SpreadsheetApp.create(formName + ' (Responses)'); 
     form.setDestination(FormApp.DestinationType.SPREADSHEET, ss.getId()); 
     ssID = form.getDestinationId(); 
     }else{ 
     ssID = form.getDestinationId(); 
     } 
    } 
관련 문제