Hitachi

JP1 Version 12 JP1/Automatic Operation サービステンプレートリファレンス


4.2.17 JavaScript実行部品

機能

JSON形式の文字列を変換するためのJavaScriptコードを実行できます。指定したJavaScriptコードでは,サービスプロパティと部品プロパティの値を参照できます。また,「underscore.js 1.8.3」の関数が使用できます。

なお,JavaScriptコードで「print関数」を使用すると,JavaScriptコード内の任意の文字列をタスクログに出力できます。このとき,次の接頭語を付加することで,ログレベルを指定できます。例えば,「print("[Debug]xxxx")」のように指定します。接頭語の大文字と小文字は区別します。

注意事項

バージョン

01.00.03

タグ

Execute Script

戻り値

戻り値

説明

0

正常に終了した。

1

JavaScriptコードが,出力プロパティ「notify」に空文字以外を指定して終了した。

60

JavaScriptライブラリの読み込みに失敗した。

61

JavaScriptコードのコンパイルに失敗した。

62

JavaScriptコードが関数型ではない。

63

内部エラーが発生した。

80

タスクの実行を停止した。

プロパティ一覧

プロパティを次の表に示します。

プロパティキー

プロパティ名

説明

デフォルト値

入出力種別

必須区分

scriptBody

スクリプト本体

JavaScriptコードを指定します。

入力

importedScript

インポートスクリプト

同一サービステンプレート上に配置したほかのJavaScript実行部品と共通で使用するメソッドや定数(JavaScriptのコード文字列)を指定します。

入力

arg0

スクリプト引数(0)

JavaScriptコードに渡す引数を指定します。JavaScriptコードに「arg0」を指定すると,プロパティに指定した値が代入されます。

入力

arg1

スクリプト引数(1)

JavaScriptコードに渡す引数を指定します。JavaScriptコードに「arg1」を指定すると,プロパティに指定した値が代入されます。

入力

arg2

スクリプト引数(2)

JavaScriptコードに渡す引数を指定します。JavaScriptコードに「arg2」を指定すると,プロパティに指定した値が代入されます。

入力

arg3

スクリプト引数(3)

JavaScriptコードに渡す引数を指定します。JavaScriptコードに「arg3」を指定すると,プロパティに指定した値が代入されます。

入力

arg4

スクリプト引数(4)

JavaScriptコードに渡す引数を指定します。JavaScriptコードに「arg4」を指定すると,プロパティに指定した値が代入されます。

入力

arg5

スクリプト引数(5)

JavaScriptコードに渡す引数を指定します。JavaScriptコードに「arg5」を指定すると,プロパティに指定した値が代入されます。

入力

arg6

スクリプト引数(6)

JavaScriptコードに渡す引数を指定します。JavaScriptコードに「arg6」を指定すると,プロパティに指定した値が代入されます。

入力

arg7

スクリプト引数(7)

JavaScriptコードに渡す引数を指定します。JavaScriptコードに「arg7」を指定すると,プロパティに指定した値が代入されます。

入力

arg8

スクリプト引数(8)

JavaScriptコードに渡す引数を指定します。JavaScriptコードに「arg8」を指定すると,プロパティに指定した値が代入されます。

入力

arg9

スクリプト引数(9)

JavaScriptコードに渡す引数を指定します。JavaScriptコードに「arg9」を指定すると,プロパティに指定した値が代入されます。

入力

notify

通知フラグ

指定したJavaScriptコードで異常を検知した場合,部品を異常終了させたいときは空文字以外を指定します。

スクリプトの実行後にこの値が空文字以外であれば,部品の戻り値に1を返却します。

出力

returnValue

スクリプト戻り値

指定したスクリプトの関数内で,返却されたオブジェクトの内容が出力されます。

出力

out0

スクリプト出力(0)

指定したスクリプト内で,第2引数のMapに「out0」として設定された値が出力されます。

出力

out1

スクリプト出力(1)

指定したスクリプト内で,第2引数のMapに「out1」として設定された値が出力されます。

出力

out2

スクリプト出力(2)

指定したスクリプト内で,第2引数のMapに「out2」として設定された値が出力されます。

出力

out3

スクリプト出力(3)

指定したスクリプト内で,第2引数のMapに「out3」として設定された値が出力されます。

出力

out4

スクリプト出力(4)

指定したスクリプト内で,第2引数のMapに「out4」として設定された値が出力されます。

出力

out5

スクリプト出力(5)

指定したスクリプト内で,第2引数のMapに「out5」として設定された値が出力されます。

出力

out6

スクリプト出力(6)

指定したスクリプト内で,第2引数のMapに「out6」として設定された値が出力されます。

出力

out7

スクリプト出力(7)

指定したスクリプト内で,第2引数のMapに「out7」として設定された値が出力されます。

出力

out8

スクリプト出力(8)

指定したスクリプト内で,第2引数のMapに「out8」として設定された値が出力されます。

出力

out9

スクリプト出力(9)

指定したスクリプト内で,第2引数のMapに「out9」として設定された値が出力されます。

出力

スクリプト本体で指定できるJavaScriptコードの引数

JavaScriptコードとして次の引数を指定できます。

serviceProperties(object型)

サービスの入力プロパティの値をマッピングできます。なお,スクリプトがこの引数の値を変更しても,サービスプロパティには反映されません。

pluginProperties(object型)

JavaScript実行部品のプロパティの値をマッピングできます。

  • arg0〜arg9

    部品プロパティに指定した値がマッピングされます。このとき,オブジェクトではなく文字列として取得されます。

  • notify

    スクリプト内でこのメンバに空文字以外の値を設定すると,部品は戻り値1を返却します。

  • out0〜out9

    スクリプト内でこのメンバに値を設定すると,部品プロパティ「out0」〜「out9」に値が反映されます。

arg0〜arg9

部品プロパティ「arg0」〜「arg9」に指定した値がマッピングされます。このとき,JSON型の文字列を指定すると,オブジェクトとして取得されます。

引数は,「serviceProperties(object型)」,「pluginProperties(object型)」,「arg0〜arg9」の順で指定してください。

JavaScriptコードのサンプル

(function(serviceProperties, pluginProperties, arg0, arg1, arg2) {
    var obj = new Object();
    print("[Debug] Function begin.");

    obj.mem1 = arg0;
    obj.mem2 = arg1;

    if (arg2 == "") {
        pluginProperties["notify"] = 999;
        pluginProperties["out1"] = "NOTE!: The arg2 is EMPTY.";
    } else {
        obj.mem3 = arg2;
        obj.status = "success";
        pluginProperties["out1"] = "Finished successfully.";
    }

    print("[Debug] Function end.");

    return obj;
})

インポートスクリプトについて

同一サービステンプレート上に配置したほかのJavaScript実行部品と共通で使用したいメソッドや定数がある場合,プロパティ「importedScript」に定義します。

プロパティ「importedScript」をサービス入力プロパティにマッピングし,ほかのJavaScript実行部品のプロパティ「importedScript」を同じサービス入力プロパティにマッピングすることにより,インポートスクリプトに定義したメソッドや定数を各JavaScript実行部品のスクリプト本体で共通に使用することができます。

インポートスクリプトのサンプル

スクリプト本体
function fn(serviceProperties, pluginProperties, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) {

    hoge(CNST);

}
インポートスクリプト
var CNST = "hoge";

function hoge(a){
    print(a + " from common js!");

}