ActionScriptの基本

Hexabase では、データベースのアイテムに対する操作をアクションと呼びます。

このアクションの実行時に、ActionScript を実行できます。

※ この他に拡張イベントを実行する方法として、FaaS 利用と独自 Micro-service 実装があります。

ActionScript#

Hexabase のアクションに、そのままコードスクリプトを記述できる拡張プログラムです。

JavaScript で実装すると、Main 関数に Item に関する情報を引数として渡します。

ActionScript の割り当て方法#

  1. データベースで任意のアイテム詳細を表示する
  2. アイテムのアクションメニューで、ActionScript を設定したいアクションの編集ボタンをクリックする(例:内容を更新する)
  3. 「アクションスクリプトを追加する」>「アクションスクリプトの編集」

Hello world#

  1. 「スクリプト例」で「blank」を選択 > main 関数のコードが作られる
  2. logger オブジェクトのコードを書く > ログウィンドウにデータを表示できます。
function main(data) {
logger.info("Hello!!");
}
  1. 「ログ」ボタンで、ログウィンドウを表示
  2. 「試行」ボタンで、スクリプトを実行

プレスクリプトとポストスクリプト#

ActionScript は、次の 2 種類があります。

  • プレスクリプト:アクションが呼び出された時、処理前に実行します
  • ポストスクリプト:アクションが呼び出された時、処理後に実行します

ActionScript で利用できる情報#

Main()に渡される引数 data は、上のウィンドウで確認できます。

引数 dataには、主に以下の情報が含まれています。

  • ログインユーザ情報
  • Item の ID 情報
  • データストアの情報
    • ステータス
    • フィールド
    • 利用できるアクション
  • Item の情報
    • フィールドの Value
  • Item の関連データ情報
    • 関連 Item の ID 情報
      • 関連データベース
      • 関連 Item の ID

※ ActionScript には、失敗した場合のリトライやロールバックする仕組みがないため、定期的に不整合なデータをチェックしたり、失敗した場合のリトライプログラムなどを実装するか検討したほうが良いでしょう。

ActionScript 内で利用できる関数#

ActionScript は、簡易的な拡張実装を目的としたもので、外部ライブラリの利用は限定的となっています。HexabaseAPI は『callAPI()』関数から利用できます。

callAPI(
Method, // HTTP Method “GET”,”POST”など
URL, // APIのURL
Params, // APIへ渡すパラメータ
Callback // 実行結果を取得するコールバック関数
)

エラー処理#

「プレスクリプト:エラー時にアクションの実行を停止する」(Pre-Script: on Error stop action execution)を有効にしておくと、エラー発生時にスクリプトを停止できます。

function main(data) {
logger.info("Hello!!");
throw new Error("message from 'throw new Error()'");
}

固定 Token の設定#

外部サービスを呼びだすために、固定の Token などをプログラム内で利用する必要がある場合には、Hexabase のアプリケーション設定に、ActionScript に渡す定数を登録します。

この機能を利用するには、あらかじめユーザープロファイル設定で開発者向け機能を有効にしておきます。

定数の登録手順#

定数を登録しておくと、ActionScript の実行時に、{SLACK_TOKEN_1}を "XXXXXXXXXXXX" にリプレースします。

  1. 「アプリケーションの設定」を開く
  2. 「プログラム拡張」タブを選択
  3. 定数を登録する
  • 定数名:SLACK_TOKEN_1
  • 値:XXXXXXXXXXXX