ActionScriptの基本
Hexabase では、データベースのアイテムに対する操作をアクションと呼びます。このアクションに、Javascriptのコードを割り当てることができます。これがActionScriptです。
ActionScriptでは、アクションを呼び出すことで、割り当てたコードを実行します。
※「内容を更新する」アクションのActionScriptでUpdate Itme APIを呼び出すと、再帰的に「内容を更新する」アクションが呼ばれます。
ActionScript の割り当て方法
- データベースで任意のアイテム詳細を表示する
- アイテムのアクションメニューで、ActionScript を設定したいアクションの編集ボタンをクリックする(例:内容を更新する)
- 「アクションスクリプトを追加する」>「アクションスクリプトの編集」
アクションスクリプトエディタ
ActionScriptは、アクションスクリプトエディタで編集できます。
該当するアイテムに関する情報は、JavaScriptでmain関数を実装すると、引数として受け取りできます。引数として参照できる情報は、アクションスクリプトエディタの左側で確認できます。
Hello world
- 「スクリプト例」で「blank」を選択 > main 関数のコードが作られる
- logger オブジェクトのコードを書く > ログウィンドウにデータを表示できます。
function main(data) {
logger.info("Hello!!");
}
- 「ログ」ボタンで、ログウィンドウを表示
- 「試行」ボタンで、スクリプトを実行
ActionScript で利用できる情報
Main()に渡される引数 data 、アクションスクリプトエディタの左枠で確認できます。
引数 dataには、主に以下の情報が含まれています。
- ログインユーザ情報
- Item の ID 情報
- データストアの情報
- ステータス
- フィールド
- 利用できるアクション
- Item の情報
- フィールドの Value
- Item の関連データ情報
- 関連 Item の ID 情報
- 関連データベース
- 関連 Item の ID
- 関連 Item の ID 情報
※ ActionScript には、失敗した場合のリトライやロールバックする仕組みがないため、定期的に不整合なデータをチェックしたり、失敗した場合のリトライプログラムなどを実装するか検討したほうが良いでしょう。
プレスクリプトとポストスクリプト
ActionScript は、次の 2 種類があります。
- プレスクリプト:アクションが呼び出された時、処理前に実行します
- ポストスクリプト:アクションが呼び出された時、処理後に実行します
Hexabase APIを呼び出す
ActionScriptでは、callAPIAsync関数/callAPI関数でHexabase APIを利用できます。
callAPIAsync(
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" にリプレースします。
- 「アプリケーションの設定」を開く
- 「プログラム拡張」タブを選択
- 定数を登録する
- 定数名:SLACK_TOKEN_1
- 値:XXXXXXXXXXXX
サンプルコード
ActionScriptのサンプルコードは、アクションスクリプトエディタの右枠で呼出しできます。
現在、次のサンプルコードを利用できます。
- blank
- slack
- simpleAsync
- sendGridExample
- sampleCallAPI
また、次のページでサンプル実装について解説しています。
利用できるライブラリ
ActionScriptは、Node.jsベースのJavaScriptを実行します。
コードから次のライブラリを利用できます。
- axios
- fs
- crypto
- form-data
- jszip
- encoding-japanese
この他に利用したいライブラリがあれば、サービス運営者にご相談ください。