ページ

2015年9月29日火曜日

GASまとめ4 - PropertiesService -


今回はデータをkey-value形式で管理してくれるPropertiesServiceについて。
スクリプト内の設定情報などを管理してくれる便利なクラスです。

データの共有範囲として、
  • 全てのユーザーで現在のドキュメント間(add-onで公開しても共有)
  • 全てのユーザーで現在のスクリプト間
  • 現在のユーザーで現在のスクリプト間
の3つある。それぞれ専用のメソッドが用意されており
  • getDocumentProperties()
  • getScriptProperties()
  • getUserProperties()
の3つある。それぞれPropertiesクラスが返ってくる。
また、別々のスクリプト間で共有はできない。

まあ、複数のドキュメント間では共有できないという事ですね

サンプル

早速サンプルを試してみたいと思います。
使用するのはgetDocumentProperties()
function setup() {
  var dp = PropertiesService.getDocumentProperties();
  dp.setProperty('AAA', 'HOGE');
  dp.setProperty('BBB', 'FUGA');
}

function dump() {
  var dp = PropertiesService.getDocumentProperties();
  var keyA = dp.getProperty('AAA');
  var keyB = dp.getProperty('BBB');
  var keyC = dp.getProperty('CCC');

  Logger.log('AAA : ' + keyA);
  Logger.log('BBB : ' + keyB);
  Logger.log('CCC : ' + keyC);
}
単純ですが、setup()でデータをそれぞれのキーで保存し、
dump()でデータを取り出しログ出力しています。
↓※実行する時には認証を求められます。


実行結果としては、
AAA : HOGE
BBB : FUGA
CCC : null
になります。
ちなみに存在しないキーを設定すると'null'が返ってきます。
Propertiesクラス

Propertiesクラスで用意されているメソッドです。
  • deleteAllProperties()
    現在のProperties設定値を全削除
  • deleteProperty(key)
    現在のProperties設定値のkeyで設定されている内容を削除
  • getKeys()
    現在のProperties設定値のkey配列String[]を取得
  • getProperties()
    現在のPropertiesのコピーを取得
  • getProperty(key)
    現在のPropertiesから引数で指定されたkeyの設定値を取得
  • setProperties(properties)
    現在のPropertiesに引数のPropertiesを設定
  • setProperties(properties, deleteAllOthers)
    引数のPropertiesを現在のPropertiesに設定し、
    引数のdeleteAllOthersがtrueの場合、設定された内容以外の設定値を削除
  • setProperty(key, value)
    現在のPropertiesに引数のkeyをキーにvalueを設定する

0 件のコメント:

コメントを投稿