Advertisement
Awn_pastebin

initProcCode.gs

Mar 11th, 2015
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function initProc() {
  2.   /***************************************************************************
  3.   初期処理
  4.   ****************************************************************************/
  5.   /*
  6.   処理の概要
  7.   :各変数を初期化
  8.   :統計くんからkeyを取り出し
  9.   :一時領域にkeyを保存する
  10.   */
  11.  
  12.   /*
  13.   処理実行の契機
  14.   :最初の1回   → 手動実行または手動でスケジュールして実行
  15.   :最初の1回以降 → 終了処理に自動でスケジュールされ実行
  16.   */
  17.  
  18.   /*******************************************************
  19.  
  20.   各種値の取得・初期化
  21.  
  22.   ********************************************************/
  23.   //プロパティの初期化
  24.   setInitProp();
  25.  
  26.   //トリガーレコーダーに記録
  27.   var thisPROCNAME = "initProc";
  28.   var thisSTAT = "STARTED";
  29.   triggerRecorder(thisPROCNAME,thisSTAT);    
  30.  
  31.   //前日の日付を取得する
  32.   var date = new Date();
  33.   date.setDate(date.getDate() - 1);
  34.   var cr_ymd = date.getFullYear() + '-' + ( '0' + ( date.getMonth() + 1 ) ).slice(-2) + '-' + ( '0' + date.getDate() ).slice(-2);
  35.  
  36.   //日付をプロパティに格納する
  37.   PropertiesService.getScriptProperties().setProperty('sp_ymd',cr_ymd);
  38.  
  39.   //掲示板名を取得する
  40.   var cr_bbsName = PropertiesService.getScriptProperties().getProperty('sp_bbsName');
  41.  
  42.    
  43.   /*******************************************************
  44.  
  45.   統計くんから指定した掲示板のキーを取得する
  46.  
  47.   ********************************************************/
  48.   //統計君からキーを取得する
  49.   var cr_toukeiArray = getToukei(cr_ymd,cr_bbsName);
  50.   var cr_toukeiArrayLength = cr_toukeiArray.length;
  51.  
  52.   //キーの個数をプロパティに格納する
  53.   PropertiesService.getScriptProperties().setProperty('sp_datListLength',cr_toukeiArrayLength - 0);
  54.  
  55.  
  56.  
  57.   /*******************************************************
  58.  
  59.   キーを一時領域に退避する
  60.  
  61.   ********************************************************/
  62.   //一時領域をアクティブにする
  63.   var ss_key = PropertiesService.getScriptProperties().getProperty('sp_ss_key');
  64.   var ss = SpreadsheetApp.openById(ss_key);
  65.   var sheet = ss.setActiveSheet(ss.getSheetByName("key"));
  66.  
  67.   //一時領域をクリアする
  68.   sheet.clear();
  69.  
  70.   //一時領域にキーを格納する
  71.   sheet.getRange(1,1,cr_toukeiArrayLength,1).setValues(cr_toukeiArray);
  72.  
  73.   /*******************************************************
  74.  
  75.   resシートのデータ削除
  76.  
  77.   ********************************************************/
  78.   //resシートをアクティブにする
  79.   var sheet = ss.setActiveSheet(ss.getSheetByName("res"));
  80.   var res_lastrow = sheet.getLastRow();
  81.   var res_lastcolumn = sheet.getLastColumn();
  82.  
  83.   //Google Spreadsheetは1つのspreadsheetにつき200万セルしか利用できないことから
  84.   //res_lastrow * res_lastcolumn が 設定したMAX_CELL より大きかったら
  85.   //resシートをクリアする
  86.   var MAX_CELL = 1000000;//100万セル
  87.   if( res_lastrow * res_lastcolumn > MAX_CELL ){
  88.     sheet.clear();
  89.   }
  90.  
  91.   /*******************************************************
  92.  
  93.   トリガーを設定する
  94.  
  95.   ********************************************************/
  96.   Logger.log("初期処理終了");
  97.   Logger.log("主処理へ");
  98.  
  99.   //主処理を実行するトリガーをセットする
  100.   ScriptApp.newTrigger("mainProc")
  101.   .timeBased()
  102.   .after(1 * 60 * 1000)// 1分後に実行
  103.   .create();
  104.  
  105.   //主処理レスキュー処理を実行するトリガーをセットする
  106.   ScriptApp.newTrigger("rescueProc")
  107.   .timeBased()
  108.   .after(22 * 60 * 1000)//22分後に実行
  109.   .create();
  110.  
  111.   //トリガーレコーダーに記録
  112.   var thisSTAT = "ENDED";
  113.   triggerRecorder(thisPROCNAME,thisSTAT);    
  114.  
  115.  
  116. }//END_OF_initProc
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement