Java 定義クラスおよび自動化スクリプト
Java™ 定義クラスと自動化スクリプトをオブジェクト構造で同時に使用することができます。 Java 定義クラスは、各関数の自動化スクリプトの前に実行されます。
統合フレームワーク およびマイグレーション・マネージャー に組み込まれている一部のオブジェクト構造は、データをフィルタリングする Java 定義クラスを提供します。 例えば、部品オブジェクト構造では TOOL タイプの部品がフィルター処理されます。 自動化スクリプトが Java 定義クラスを使用して実装されている場合、自動化スクリプトは、Java 定義クラスのフィルター操作をオーバーライドして Java クラスのフィルター操作を除去するか、またはフィルター操作基準を変更して、XML メッセージからより多くのデータを除外したり、XML メッセージにより多くのデータを組み込んだりすることができます。
例えば、MXOPERLOC オブジェクト構造の Java 定義クラスは、タイプ LABOR のロケーションをフィルターで除外し、タイプ OPERATING のロケーションをメッセージに含めることができます。 このフィルター処理を変更したり、フィルター処理を追加したり、デフォルトのフィルター処理を置き換えたりすることができます。 以下のサンプル・スクリプトでは、OPERATING タイプのロケーションがフィルター処理されるように処理を変更し、かつ LABOR タイプのロケーションの処理を続行します。
def skipMbo(ctx):
if ctx.getMboName()=='LOCATIONS':
if ctx.getMbo().getString("type")=="LABOR":
ctx.process()
if ctx.getMbo().getString("type")=="OPERATING":
ctx.skipMbo()
以下のサンプル・スクリプトでは、MXOPERLOC オブジェクト構造に対して COURIER タイプを除外するフィルター処理を追加しています。
if ctx.getMboName()=='LOCATIONS':
if ctx.getMbo().getString("type")=="COURIER":
ctx.skipMbo()
以下のサンプル・スクリプトでは、定義クラスのフィルター処理を置き換えて、COURIER タイプのロケーションのみが除外されるようにしています。
def skipMbo(ctx):
if ctx.getMboName()=='LOCATIONS':
if ctx.getMbo().getString("type")=="COURIER":
ctx.skipMbo()
else:
ctx.process()