アクション起動ポイント

Maximo アクション・フレームワークには、ワークフロー、エスカレーション、ユーザー・インターフェース・メニュー、ボタン、およびその他多くのコンポーネントから実行できるアクションの組み込みライブラリーがあります。 ただし、このライブラリーに含まれていないアクションが必要になる場合があります。 Jython および JavaScriptを使用してアクションをスクリプト化できるため、スクリプトはこの問題に対処します。

例えば、スクリプト化されたアクションを使用して、資産に対して計算された計測値を実行できます。 アクション起動ポイントを持つスクリプトを作成するには、自動化スクリプト・アプリケーションから 作成 > アクション起動ポイントを持つスクリプトを選択します。

その資産に関連付けられている他の計測値に基づいて資産計測値を計算するとします。 例えば、プレッシャー・メーターの最後の計測値が IN 計測値とO-PRESSUR計測値の合計になるように、IN-PRESSURおよび O-PRESSURXX_ENCODE_CASE_CAPS_LOCK_OFF 計測値に基づいて、プレッシャー・メーターの値を計算するとします。 オブジェクト起動ポイントを使用して計測値変更イベントをトラップする必要があるリアルタイムではなく、オフラインで実行することを選択したとします。 IBM® Maximo® Manage でオフライン・アクションを繰り返し実行する 1 つの方法は、Maximo ビジネス・オブジェクト (MBO) のコンテキストで事前定義アクションを実行するクーロン・ジョブであるエスカレーションを使用することです。 アクション Java コードを作成する代わりに、スクリプトを使用できます。

データベース構成アプリケーションを使用して、資産計測値の入力圧力に対して assetmeterip という関係を定義します。このアプリケーションは、資産をIN-PRESSURという名前の資産計測値に関連付けます。 以下の where 節を使用します。
assetnum=:assetnum and siteid=:siteid and metername='IN-PRESSUR'
同様に、他の 2 つの関係を定義します。
テーブル1。
関係名 関係の場所
Assetmeterop assetnum= :assetnum and siteid= :siteid and metername = ' O-PRESSUR'
Assetmeterp assetnum= :assetnum and siteid= :siteid and metername = 'プレッシャー'

自動化スクリプト・アプリケーションで、 作成 > 「アクション起動ポイントを含むスクリプト」をクリックします。 アクション起動ポイントを定義します。

このタスクによってアクションが作成されますが、そのアクションをエスカレーション、ワークフロー、またはユーザー・インターフェースのボタンまたはメニューに付加する必要があります。 デフォルトでは、起動ポイント名がアクションの名前として使用されますが、命名規則に合わせて値を変更することができます。 ただし、後で名前の混乱や競合が発生するため、名前を変更しないことをお勧めします。 タスクの最初のステップで、オブジェクト名がオプションであることを確認しました。これは、アクションが Maximo オブジェクトに関連付けられている場合と関連付けられていない場合がある Maximo アクション・フレームワークに対応しています。 ただし、この場合は、アクションが資産 MBO に固有であるため、オブジェクトを資産として指定する必要があります。

次に、スクリプトおよび変数バインディングに使用する変数を定義する必要があります。 IN-PRESSURAND O-PRESSURMETER 計測値の最後の計測値が必要であり、計算値を圧力計測値の新しい計測値属性に設定する必要があります。 ただし、計算値が「圧力」計測値の最後の計測値と同じである場合は、計測値が変更されていなくても計測値履歴が生成されるため、この値を設定する必要はありません。 これを確認するには、プレッシャー・メーターの最後の計測値が必要です。 変数バインディングを以下の例に示します。
表2.
変数名 変数の型 バインディング
IPLR IN assetmeterip.lastreading
OLR IN assetmeterop.lastreading
PLR IN assetmeterp.lastreading
PNR OUT assetmeterp.newreading

iplr、または IN-PRESSURMETER の最後の計測値、olr、または O-PRESSUR の最後の計測値、および plr、または PRESSMETER の最後の計測値は、pnr、プレッシャー計測値の最後の計測値を計算するために必要な値であるため、すべて IN タイプです。 圧力計 MBO に設定し直すと、pnr のタイプは OUT になります。

以下のスクリプト・コードを使用します。
y=float(iplr)+float(olr)
if y!=float(plr):
  pnr=str(y)

計算値が plr [圧力計の最終計測値] と同じである場合、2 番目の行の if チェックは、 pnr 値を更新しないようにします。 この計算は例として実装されています。 実際の実装環境では、お客様のビジネス要件に応じて任意の複雑な数学計算を行うことができます。これは、お客様が選択したスクリプト言語によって提供される数学的サポートによってのみ制限されます。

ここで、このアクションをエスカレーションに関連付ける必要があります。 3 つすべての計測値を持つ資産にのみ適用されるエスカレーションを作成します。 エスカレーション条件を使用して、そのシフティング機能を実装します。 以下の SQL 条件を使用します。
exists (select assetnum from assetmeter where metername='IN-PRESSUR' and
assetnum=asset.assetnum and siteid=asset.siteid) and exists (select assetnum from assetmeter
where metername='O-PRESSUR' and assetnum=asset.assetnum and siteid=asset.siteid) and
exists (select assetnum from assetmeter where metername='PRESSURE' and
assetnum=asset.assetnum and siteid=asset.siteid)

このエスカレーションのアクションを選択します。 アクションの名前は、変更しない限り、起動ポイントの名前と同じです。 エスカレーションをアクティブ化すると、ジョブは完了します。 エスカレーションは、3 つの計測値を持つすべての資産に対してスクリプト化されたアクションを実行し、変更された資産計測値が保存され、エスカレーション・フレームワークによってコミットされます。

アクションを Maximo オブジェクトに関連付けないことを選択した場合、変数およびバインディングを指定するステップでは、変数を MBO 属性にバインドすることはできません。 ただし、リテラル、システム・プロパティー、および maxvar 変数バインディング・タイプを使用できます。 このユース・ケースは、例えば、Web サービスなど、MBO に固有ではないサービスを呼び出す汎用アクションを作成する場合や、MBO API の直接使用に基づいてスクリプト・コードを実行することを意図しているため、MBO 属性バインディングを必要としない汎用アクションを作成する場合に発生する可能性があります。