Hitachi

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


4.2.20 Python実行部品

機能

任意のPythonスクリプトを実行できます。

注意事項

バージョン

01.00.01

タグ

Execute Script

戻り値

戻り値

説明

0

正常に終了した。

1

Pythonインタプリタの実行に失敗した。

2

Pythonスクリプトの実行に失敗した。

3

Pythonスクリプトがタイムアウトした。

80

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

127

そのほかのエラーが発生した。

プロパティ一覧

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

プロパティキー

プロパティ名

説明

デフォルト値

入出力種別

必須区分

pythonInterpreterPath

Pythonインタプリタパス

スクリプトを実行するPythonインタプリタへのパスを指定します。

python

入力

scriptBody

スクリプト本体

Pythonコードを指定します。

入力

importedScript

インポートスクリプト

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

入力

webServiceConnectionCategory

Webサービス接続カテゴリ

Webサービス接続カテゴリを指定します。

入力

webServiceConnectionName

Webサービス接続名

Webサービス接続名を指定します。

入力

timeout

タイムアウト

指定したスクリプトに対するタイムアウト時間(秒単位)を指定します。

300

入力

inN

スクリプト入力 (N)

スクリプトに渡す引数を指定します。

入力

standardOutput

標準出力

指定したスクリプトの標準出力を文字列として出力します。

出力

standardErrorOutput

標準エラー出力

指定したスクリプトの標準エラー出力を文字列として出力します。

出力

outN

スクリプト出力 (N)

指定したスクリプトのoutN関数の引数に,指定した値を出力します。

出力

注※

Nは0から9の整数を示します。

プロパティリストで部品の入力/出力プロパティを指定します。入力プロパティには,サービスプロパティの値,予約プロパティの値,およびリテラル文字の組み合わせを使用できます。

スクリプト本体で使用できる変数および関数

次の変数および関数をスクリプト本体で使用できます。

表4‒14 スクリプト本体で使用できる変数および関数

カテゴリ

名前

説明

変数

inN

入力プロパティ(inN)に指定した値が設定されます。値が配列型やJSON形式で指定されていた場合も文字列型として解釈されます。

関数

outN(文字列値)

関数の引数に渡された値が部品の出力プロパティ(outN)に出力されます。

関数

log(文字列値)

任意の文字列をタスクログに出力できます。特定のプレフィックスを文字列の先頭に追加することで,ログレベルを選択できます。

プレフィックス

[Severe]

ログレベル0として出力します。

[Information]

ログレベル10として出力します。

[Fine]

ログレベル20として出力します。

[Finer]

ログレベル30として出力します。

[Debug]

ログレベル40として出力します。

(プレフィックスなし)

ログレベル10として出力します([Information]と同じ)。

注※

Nは0から9の整数を示します。

ただし,デフォルトで定義された次のimport文をスクリプトから削除すると,これらの変数および関数を使用できません。

from dnaplugin import in0, in1, in2, in3, in4, in5, in6, in7, in8, in9
from dnaplugin import out0, out1, out2, out3, out4, out5, out6, out7, out8, out9
from dnaplugin import log

スクリプト本体から参照できる環境変数

スクリプト実行時に環境変数に値を設定します。os.environ[キー名]またはos.environ.get(キー名)の形式で,次の環境変数の値を取得できます。

表4‒15 スクリプト本体から参照できる環境変数

環境変数

説明

フォーマット

PLUGIN_PROPERTIES

Python実行部品のプロパティ

JSON形式

{プロパティ名:...}

SERVICE_TEMPLATE_ID

Python実行部品が属するサービステンプレートのID

数値

SERVICE_ID

Python実行部品を実行するサービスのID

数値

SERVICE_TEMPLATE

Python実行部品が属するサービステンプレートの情報

JSON形式

{サービステンプレート属性:... }

SERVICE

Python実行部品を実行するサービスの情報

JSON形式

{サービス属性:...}

WEB_SERVICE_CONNECTIONS

Webサービス接続の設定情報

JSON形式

[{Web サービス接続属性:...}, ...]

注※

入力プロパティに指定された「Webサービス接続カテゴリ」および「Webサービス接続名」に対応した情報が取得されます。入力プロパティの指定状況に応じて取得される情報を次の表に示します。

入力プロパティの指定状況

取得情報

Webサービス接続カテゴリ

Webサービス接続名

指定あり

指定あり

指定したカテゴリと名前に一致するWebサービス接続情報

指定あり

指定なし

指定したカテゴリに一致するWebサービス接続情報

指定なし

指定あり

なし

指定なし

指定なし

なし

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

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

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

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

スクリプト本体
# -*- coding: utf-8 -*-
import os
from dnaplugin import in0, in1, in2, in3, in4, in5, in6, in7, in8, in9
from dnaplugin import out0, out1, out2, out3, out4, out5, out6, out7, out8, out9
from dnaplugin import log
from dnaplugin_imported_script import *

hoge(CNST)
インポートスクリプト
from dnaplugin import log
 
def hoge(a):
    log(a + ' from common py!')
 
CNST = 'hoge'