【処理のイメージ】
まずトリガーA で実行したスクリプトA から「スクリプト実行中」のメッセージを表示するための HTML を返します。
その HTML から JavaScript でトリガーB を発火させ、実際に処理を実行するスクリプトB の実行結果を返します。
【画面遷移イメージ】
・HTTPトリガーA 実行開始時
・スクリプトB 終了時
【スクリプトの完成イメージ】
・プロジェクトの構成
・スクリプトA
・スクリプトB
【スクリプト、トリガーの作成手順】
1. スクリプトB を作成
スクリプトB は実際の処理を実行するメインのスクリプトです。
(1) 文字列型スクリプト出力変数を作成します。
(2) [HTML データ生成] 処理で、レスポンスとなる HTML を作成します。
スクリプト実行終了後に表示したいメッセージや結果データを記述します。
ここでは例として、下記の HTML を作成しています。
-----------
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
</head>
<body>
<table>
//スクリプト実行後に表示したいメッセージや結果データ//
</table>
</body>
</html>
-----------
(3) [変数代入] 処理で、「(2)」で作成した HTML のコンポーネント変数
html_data を「(1)」のスクリプト出力変数にマッピングします。
(4) [待機] 処理で 3秒待機するよう設定します。
※サンプルスクリプト実行時に「スクリプト実行中」のメッセージが
表示されることを確認するため、[待機] 処理としています
(5) スクリプトB をサービス登録します。
2. トリガーB を作成
「1.」で作成したスクリプトB を実行するための HTTPトリガーを作成します。
ここでは実行パスを「/b」とします。
スクリプト出力変数の [値] には HTTPトリガー変数「${trigger.outputData}」を設定します。
トリガーの設定画面に自動表示されるスクリプト起動用の URL を取得します。
※ DataSpider Cloud の場合、Studio でトリガーを設定した後に、
連携サーバにHTTPトリガー情報を設定する必要があります。
詳細は本FAQの「■DataSpider Cloud の HTTPトリガー設定について」をご確認ください。
3. スクリプトA を作成
「スクリプト実行中」のメッセージを表示するための HTMLを作成するスクリプトです。
(1) 文字列型スクリプト出力変数を作成
(2) [HTML データ生成] 処理で、レスポンスとなる HTML を作成します。
ここではメッセージを表示しトリガーB を実行する リクエストを生成するため、以下のような内容で記述します。
「<スクリプトB を実行するHTTPトリガーのURL>」の部分には、
「2.」で取得したスクリプト起動用の URL を設定します。
-----------
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>HTTPトリガー実行時にメッセージを表示</title>
</head>
<body>
<script type="text/javascript">
var url = "<スクリプトB を実行するHTTPトリガーのURL>";
var request = new XMLHttpRequest();
request.onreadystatechange = function() {
var READYSTATE_COMPLETED = 4;
if(this.readyState == READYSTATE_COMPLETED) {
var htmltext = this.responseText;
document.getElementById("respText").innerHTML = htmltext;
}
}
request.open("GET", url, true);
request.send()
</script>
<div id="respText">スクリプト実行中</div>
</body>
</html>
-----------
(3) [変数代入] 処理で、「(2)」で作成した HTML のコンポーネント変数
html_data を「(1)」のスクリプト出力変数にマッピングします。
(4) スクリプトA をサービス登録します。
4. トリガーA を作成
「3.」で作成したスクリプトA を実行するための HTTPトリガーを作成します。
ここでは実行パスを「/a」とします。
スクリプト出力変数の [値] には HTTPトリガー変数「${trigger.outputData}」を設定します。
トリガーの設定画面に自動表示されるスクリプト起動用の URL を取得します。
※ DataSpider Cloud の場合は、「2.」と同様に連携サーバへ HTTP トリガー情報の設定を行ってください。
5. 実行結果の確認
「4.」で取得したスクリプト起動用の URL を指定してブラウザからリクエストを実行し、
ブラウザ上で実行結果を確認します。
■DataSpider Cloud の HTTPトリガー設定について
DataSpider Cloud では、Studio でトリガーを設定した後に、連携サーバにHTTPトリガー情報を設定する必要があります。詳細は下記ヘルプをご参照ください。
・[フロント画面メニュー]-[連携サーバ管理]-[HTTPトリガー情報]
・[機能詳細]-[HTTPトリガー/Webサービストリガー]
■補足
上記でご紹介した方法のほかに、Ajax を利用して実装するといった方法も考えられます。
また、 HTTP クライアント側で処理を作り込めば、ブラウザに返却したメッセージを基に次の処理を実施するなど、処理の幅が広がります。お客様のご要件に合わせて実装をご検討ください。
参考情報
▼ DataSpider Servista ヘルプ
・[HTTPトリガー]
・[HTMLデータ生成処理]
・[ドキュメントMapper/変数Mapper]
・[待機処理]
▼ DataSpider Cloud ヘルプ
・[HTTPトリガー]
・[HTMLデータ生成処理]
・[ドキュメントMapper/変数Mapper]
・[待機処理]