式関数
数式は、Maximo ビジネス・オブジェクト (MBO) から数値を計算するための式ライブラリーを提供します。 フレームワークには、多くの標準機能が用意されています。 スクリプト・フレームワークは、組み込み関数のライブラリーを拡張するためのカスタム関数を作成する方法を提供します。 以下の例は、スクリプトを使用して標準偏差関数を追加するためのセットアップ手順を示しています。
式スクリプト・コードを作成します。 以下の例では、 Pythonを使用しています。 このスクリプトは、 Apache 数学ライブラリーを使用して標準偏差を計算します。
from org.apache.commons.math3.stat.descriptive import DescriptiveStatistics
from java.lang import Math
relation = ctx.getExpression().getCalculatedValue(params[0])
attr = ctx.getExpression().getCalculatedValue(params[1])
dstats = DescriptiveStatistics()
workOrders = mbo.getMboSet(relation)
wo = workOrders.moveFirst()
while wo is not None:
cost = wo.getDouble(attr)
dstats.addValue(cost)
wo = workOrders.moveNext()
std = dstats.getStandardDeviation()
service.log(str(std))
evalresult = stdこのスクリプト・ポイントでは、以下のリストの暗黙的変数がサポートされています。
| 変数 | 目的 |
|---|---|
| exp | com.ibm.tivoli.maximo.expression.Expression のインスタンス。これは、構文解析された式のインスタンスへのハンドルです。 |
| CTX | com.ibm.tivoli.maximo.expression.ScriptFunction 関数のインスタンスです。 |
| MBO | 式のコンテキスト内の MBO。 |
| params | 入力パラメーター。 |
データベースの構成アプリケーションで、実装タイプが script で、クラス名またはスクリプト名が大文字のスクリプト名である新しい数式関数を追加します。
オブジェクトまたは属性の数式を追加または変更します。 このサンプルの式は、Asset オブジェクト上にあります。
この数式をテストするには、以下の REST API 呼び出しを実行します。
GET /oslc/os/mxapiasset?lean=1&oslc.select=assetnum,siteid,exp.assetwocoststd&oslc.where=assetnum="11430"ここで、 exp.assetwocoststd は式の名前です。