skipMbo(ctx) 関数を使用したビジネス・オブジェクトの処理のスキップ
skipMbo(ctx) 関数は、シリアライゼーション処理の間に作成された XML メッセージからデータをフィルタリングします。 skipMbo(ctxは、Maximo® ビジネス・オブジェクトをフィルタリングし、ビジネス・オブジェクトがスキップされた後にメッセージの処理を継続するか、または実行時点でメッセージの処理を終了することができます。
ctx.skipMbo() API
ctx.skipMbo() API は、XML メッセージ内の Maximo ビジネス・オブジェクトの処理をフィルターで除外します。
例えば、以下のスクリプトは ctx.skipMbo() API で実行され、すべての注文書明細と、1234 注文書明細に関連する注文書コスト・データをフィルタリングで除外します。
def skipMbo(ctx):
if ctx.getMboName()=="POLINE" and ctx.getMbo().getString("itemnum")=="1234":
ctx.skipMbo()ctx.skipMbo() API を、オブジェクト構造のルート・オブジェクトまたはプライマリー・オブジェクトで使用すると、if 文内の基準を満たすすべてのビジネス・オブジェクトが、XML メッセージからフィルタリングされます。
ctx.process() API
ctx.process() API は、ctx.skipMbo() API によるフィルタリングの対象ではない行を引き続き処理します。以下に例を示します。
def skipMbo(ctx):
if ctx.getMboName()=="POLINE" and ctx.getMbo().getString("itemnum")=="1234":
ctx.skipMbo()
else
ctx.process()ctx.process() API をデータ行に対して実行すると、そのデータのシリアライズが有効化されます。 Java™ 定義クラスがそのデータ行をスキップした場合、 ctx.process() API は Java 定義クラスをオーバーライドし、データをシリアライズできるようにします。
ctx.complete() API
ctx.complete() API が呼び出されると、現在のビジネス・オブジェクト・インスタンス、その下位階層ビジネス・オブジェクト・インスタンス、およびそのピア・レベルのビジネス・オブジェクト・インスタンスに対するオブジェクト構造のアウトバウンド処理が停止されます。
例えば、PO オブジェクトは、POLINE と POTERM という下位階層オブジェクトによって構成されています。 POLINE オブジェクトには、下位階層オブジェクト POCOST があります。 ctx.complete() API が PO オブジェクトに対して呼び出されると、その PO に関連する POLINE、POTERM、および POCOST の各オブジェクトは処理されません。
以下のスクリプト例では、ステータスが COMPLETE であるすべての注文書について、その注文書明細データがシリアライズされずに処理が行われます。
def skipMbo(ctx):
if ctx.getMboName()=="PO" and ctx.getMbo().getString("status")=="COMPLETE":
ctx.complete()
else
ctx.process()