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!");

}