2016-08-08 31 views
0

私はウェブ開発の絶対初心者です。 私のプロジェクトにGoogle Apps Script Execution APIを実装したいと思います。Google Apps Script Execution API:スクリプトエラーメッセージ:スクリプト関数が見つかりません:[JavaScript]

私は聞いてGoogle Appsのスクリプト実行API上に2つの質問があります。

(1)私は以下のエラーを解決する方法は考えています。

Script error message: Script function not found: make_date_array(month)

私のGoogle Appsのスクリプトがそれに関数 'make_date_array(月)' を持っていますが、私はGoogleが実行APIをアプリ呼び出すときに、上記のエラーが出てきます。だから私は何をすべきか分からない。

function send_mail() { 
    var date = new Date() 
    date.setDate(new Date().getDate()) 
    date = date.getFullYear() + "-" + zero_padding(date.getMonth() + 1) 
    runSingleRowQuery(0, date) 
    var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = spreadsheet.getSheetByName("Data"); 
    var message = ""; 
    var tmp_message = sheet.getRange(1,1,58 ,2).getValues(); 

    for(var i = 0;i < tmp_message.length ;i++){ 
    message += tmp_message[i][0] + ":" + tmp_message[i][1] + "<br>" 
    } 

    MailApp.sendEmail({ 
     to: 'I put my email address here' 
     subject: 'BigQuery', 
     htmlBody: message 
    });  
} 

function runSingleRowQuery(develop_mode, target_month) { 
    // Replace this value with the project ID listed in the Google 
    // Developers Console project. 
    var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); 
    var queries_sheet = spreadsheet.getSheetByName("Single row queries"); 
    var result_sheet = spreadsheet.getSheetByName("Data"); 

    if(target_month == null){ 
     var target_month = queries_sheet.getRange(1, 2).getValue(); 
    } 
    make_date_array(target_month); 

    result_sheet.getRange(1, 2).setValue(queries_sheet.getRange(1, 2).getValue()) 
    for (var i = 2; i <= queries_sheet.getLastRow(); i++) { 
     var query = queries_sheet.getRange(i, 2).getValue(); 
     if (query_variation(query) != false) { 
      query = query_variation(query) 

      Logger.log(queries_sheet.getRange(i, 1).getValue()); 
      Logger.log("# run query: \n " + query); 

     if (develop_mode != 1) { 
      Logger.log('\n#####################Run Query#########################'); 
      var request = { 
       query: query 
      }; 
      var queryResults = BigQuery.Jobs.query(request, projectId); 
      var jobId = queryResults.jobReference.jobId; 

      // Check on status of the Query Job. 
      var sleepTimeMs = 500; 
      while (!queryResults.jobComplete) { 
       Utilities.sleep(sleepTimeMs); 
       sleepTimeMs *= 2; 
       queryResults = BigQuery.Jobs.getQueryResults(projectId, jobId); 
      } 

      // Get all the rows of results. 
      var rows = queryResults.rows; 
      while (queryResults.pageToken) { 
       queryResults = BigQuery.Jobs.getQueryResults(projectId, jobId, { 
        pageToken: queryResults.pageToken 
       }); 
       rows = rows.concat(queryResults.rows); 
      } 
      result_sheet.getRange(i, 2).setValue(rows[0].f[0].v); 

      result_sheet.getRange(i, 1).setValue(queries_sheet.getRange(i, 1).getValue()); 
      result_sheet.getRange(i, 3).setValue(queries_sheet.getRange(i, 3).getValue()); 
     } 
    } 
    else { 
     result_sheet.getRange(i, 1).setValue(queries_sheet.getRange(i, 1).getValue()); 
     result_sheet.getRange(i, 2).setValue(queries_sheet.getRange(i, 2).getFormula()); 
     } 
    } 
} 

function make_date_array(month) { 
    month = month.split('-'); 
    var last_month = {}; 
    var more_last_month = {}; 
    Logger.log((parseFloat(month[0] - 1).toFixed(0))) 
    if (parseFloat(month[1] - 1).toFixed(0) < 1) { 
     last_month[0] = (parseFloat(month[0]) - 1).toFixed(0); 
     last_month[1] = 12; 
    } else { 
     last_month[0] = (parseFloat(month[0])).toFixed(0); 
     last_month[1] = (parseFloat(month[1]) - 1).toFixed(0); 
    } 
    if (last_month[1] < 10) { 
     last_month[1] = '0' + last_month[1]; 
    } 

    if (parseFloat(last_month[1] - 1).toFixed(0) < 1) { 
     more_last_month[0] = (parseFloat(last_month[0]) - 1).toFixed(0); 
     more_last_month[1] = 12; 
    } else { 
     more_last_month[0] = (parseFloat(last_month[0])).toFixed(0); 
     more_last_month[1] = (parseFloat(last_month[1]) - 1).toFixed(0); 
    } 
    if (more_last_month[1] < 10) { 
     more_last_month[1] = '0' + more_last_month[1]; 
    } 

    date_array['Ym01'] = month[0] + month[1] + '01'; 
    date_array['last_Ym01'] = last_month[0] + last_month[1] + '01'; 
    date_array['more_last_Ym01'] = more_last_month[0] + more_last_month[1] + '01'; 
    date_array['y-m-10_h:s'] = month[0] + '-' + month[1] + '-' + '10 00:00'; 
    date_array['last_y-m-10_h:s'] = last_month[0] + '-' + last_month[1] + '-' + '10 00:00'; 
    date_array['more_last_y-m-10_h:s'] = more_last_month[0] + '-' + more_last_month[1] + '-' + '01 00:00'; 
    date_array['y-m-10'] = month[0] + '-' + month[1] + '-' + '10'; 
    date_array['last_y-m-10'] = last_month[0] + '-' + last_month[1] + '-' + '10'; 

    Logger.log(date_array['last_y-m-10']) 
} 

(2)どのように私は複数の関数を呼び出すと思いますか? Googleが提供するサンプルコードを使用しました。しかし、私はいくつかの関数を呼び出す正しい方法に従うかどうかはわかりません。

// Create an execution request object. 
    var request = { 
     'function': 'send_mail', 
     'function': 'runSingleRowQuery(develop_mode, target_month)', 
     'function': 'make_date_array(month)', 
     }; 

これまで同様の問題があった場合は、上記の2つの問題に対処してもらえますか?英語は私の母国語ではないので、この投稿があなたにとって意味をなさないか、より多くの情報が必要な場合は、コメントを残してください。どんなアドバイスもありがとうございます。前もって感謝します。

私はこのコード

if(target_month == null){ 
     var target_month = queries_sheet.getRange(1, 2).getValue(); 
    } 

あなたは(なしVAR)に変更する必要があると思いますコメントにリンクするための追加的に

+0

http://stackoverflow.com/questions/22617138を参照してください。/google-apps-script-function-not-found-doget – Eugene

答えて

1

if(target_month == null){ 
     target_month = queries_sheet.getRange(1, 2).getValue(); 
    } 
関連する問題