Widgetからアクションテーブルにアクセスする

アクションテーブルに格納されたレコードは、接客アクションで配信されるWidgetから参照、書き込みすることができます。

詳細はリファレンスをご覧ください。

アクションテーブル側のパーミッション設定

アクセス先アクションテーブルの「設定」画面から、適切なパーミッションを設定してください。
以下の2つの設定があります。

  • Widgetからの参照
  • Widgetからの書き込み

Widgetからの参照

WidgetのJavaScript内からレコードを取得する方法には、以下の2種類あります。

  • 主キーを指定してレコード取得する
  • アクションテーブルクエリを使ってレコード取得する

参照先アクションテーブルの「Widgetからの参照」を有効にしてください。

❗️

Widgetからの参照を有効化する場合の注意事項

参照を有効化した場合、ブラウザからアクションテーブル内のデータが参照可能になります。
個人情報など、機密性の高い情報を扱うアクションテーブルは有効化しないようお気をつけ下さい。
有効化するのは、公開しても問題ない情報が入っているアクションテーブルのみにして下さい。

主キーを指定してレコード取得する

取得するレコードの主キーを指定できる場合は、以下のように参照します。

var table = widget.collection('v2/table001') // table001は、tableId
table.get('a001', function(err, item){
  if (err) console.error(err);
  console.log(item);
});

// 複数の主キーを同時に問い合わせることもできます
table.get(['a001', 'a002'], function(err, items){
  if (err) console.error(err);
  console.log(items);
});

アクションテーブルクエリを使ってレコード取得する

「アクションテーブルクエリ」を呼び出すことで、より複雑な条件を指定してレコード取得することができます。

なお、アクションテーブルクエリの作成については、こちらのページをご覧ください。

var table = widget.collection('v2/table001');
var params = { item_category: 'fruit' }; // クエリに渡すパラメータ
table.getByQuery('query001', params, function(err, items){
  if (err) console.error(err);
  console.log(items);
});

Widgetからの書き込み

WidgetのJavaScript内からデータを追加、更新(UPSERT)することができます。

更新先アクションテーブルの「Widgetからの書き込み」を有効にしてください。

var table = widget.collection('v2/table001'); // table001は、tableId
var item = { name: 'foo' };
table
  .query('a001') // 更新対象レコードの主キーの値
  .set(item, function(err){ // 更新対象レコードのnameを'foo'に更新する
    if (err) console.error(err);  
});

// 第1引数を主キーの値、第2引数を更新対象フィールドを含むオブジェクトにして更新することもできます
// 指定した主キーに該当するレコードが無い場合は、新規に挿入されます
table
  .set('a001', item, function(err){ // 更新対象レコードのnameを'foo'に更新する
    if (err) console.error(err);  
});

// フィールドを指定して更新することもできます
table
  .query('a001') // 更新対象レコードの主キーの値
  .field('name') // 更新対象セルのカラム名
  .set('foo', function(err){ // 更新対象レコードのnameを'foo'に更新する
    if (err) console.error(err);  
});

❗️

Widgetからの書き込みを有効化する場合の注意事項

書き込みを有効化した場合、ブラウザからアクションテーブル内の任意のデータに対して書き込み可能となります。