オブジェクト構造のインバウンド処理のコンテキスト API
コンテキスト (ctx) は、自動化スクリプトがデータの受け渡しやアクションの起動を行うための便利メソッドを提供するオブジェクトです。 コンテキストは双方向にサポートされます。 コンテキストには定義済みの API が用意されており、各関数はさまざまなコンテキストを使用できます。
自動化スクリプトでは、処理ロジックを実装するために、コンテキスト・メソッドを使用する必要があります。 コンテキストは、オブジェクト構造の処理と、カスタム・コードを実装する自動化スクリプトの間で受け渡されます。 以下の表に、コンテキスト API と、各関数でその API が一般的に使用されるかどうかを示します。
| コンテキスト API | beforeProcess (CTX) | beforeCreateMboSet (ctx) | マクロ・ステートメント (ctx) | ミスルール (ctx) | あらかじめ (ctx) | アフターマーケット (ctx) | 保存可能 (ct) | 状況の変更 (ct) |
|---|---|---|---|---|---|---|---|---|
| ctx.setMsgType() | ✓ | |||||||
| ctx.getProcessTable() | ✓ | ✓ | ✓ | ✓ | ✓ | |||
| ctx.setProcessTable(String ProcessTable) | ✓ | |||||||
| ctx.setMboSet(MboSet mboSet) | ✓\ | |||||||
| ctx.setMbo(Mbo mbo) | ✓ | |||||||
| ctx.getData() | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| ctx.getMosDetailInfo() | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
| ctx.setSkipBaseAdditionalRules() | ✓ | |||||||
| ctx.skipMbo() | ✓ | |||||||
| ctx.skipTxn() | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| ctx.complete() | ✓ | |||||||
| ctx.process() | ✓ | |||||||
| ctx.getUserInfo() | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| ctx.getParentMbo() | ✓ | ✓ | ✓ | ✓ | ✓ | |||
| ctx.isPrimary() | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
| ctx.bypassMbo() | ✓ | |||||||
| ctx.getMsgType() | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| ctx.getPrimaryMboSet() | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ||
| ctx.getPrimaryMbo() | ✓ | ✓ | ✓ | ✓ | ||||
| ctx.processAsUpdate() | ✓ | |||||||
| ctx.processAsAdd() | ✓ | |||||||
| ctx.processAsAddAtEnd() | ✓ | |||||||
| ctx.log () | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
インバウンドのデータ処理に使用できる API は以下のとおりです。
- ctx.getMosDetailInfo()
- 処理対象のオブジェクト構造のデータ・ディクショナリー・キャッシュに関する情報を、統合フレームワークに提供します。
- ctx.skipMbo()
- Maximo ® ビジネス・オブジェクトの処理をスキップします。
- ctx.skipTxn()
- トランザクション全体 (メッセージなど) の処理をスキップします。
- ctx.complete()
- オブジェクト構造の処理を実行時点で終了します。したがって、下位階層データは処理されません。
- ctx.process()
- 実行時点で処理を継続します。 この API は、通常、条件付きロジックの一部として使用されます。
- ctx.getParentMbo()
- 上位階層ビジネス・オブジェクトを取得します。 この API は、ビジネス・オブジェクトがまだ作成されていない下位階層オブジェクトから使用できます。
- ctx.isPrimary()
- 現在のビジネス・オブジェクトが、オブジェクト構造のルート・レベルのビジネス・オブジェクトであるかどうかを示します。
- ctx.getUserInfo()
- スクリプトで新規ビジネス・オブジェクトを作成する場合に必要となるユーザー情報を取得します。
- ctx.bypassMbo()
- ビジネス・オブジェクトの作成をバイパスし、次の処理対象であるビジネス・オブジェクトから処理を継続します。
- ctx.getMsgType()
- メッセージ・タイプ (Sync、Create など) へのアクセスを提供します。
- ctx.setMsgType()
- メッセージ・タイプ (Sync、Create など) を設定します。 この API は、処理が開始される前に使用できます。
- ctx.getData()
- StructureData (XML メッセージ) へのアクセスを提供します。
- ctx.setMboSet(MboSet mboSet)
- ビジネス・オブジェクト・セット内の値を設定します。
- ctx.setMbo(Mbo mbo)
- ビジネス・オブジェクト内の値を設定します。
- ctx. getPrimaryMboSet()
- 下位階層ビジネス・オブジェクトの処理中に、オブジェクト構造のルート・ビジネス・オブジェクトを取得します。
- ctx.setProcessTable(String processTable)
- 処理対象のテーブルを設定します。 このメソッドは、MATRECTRANS テーブルと SERVRECTRANS テーブルのどちらが更新されているかを判断する処理ロジックを持つ MXRECEIPT などの非永続ビジネス・オブジェクトがある場合に使用します。 ctx.setProcessTable(String processTable) API は、beforeProcess(ctx) 関数内で使用されます。
- ctx.getProcessTable()
- ctx.setProcessTable(String processTable) API によって設定されたテーブル名を取得します。
- ctx.setSkipBaseAdditionalRules()
- 処理で準備された完成したオブジェクト構造で実行されるカスタム・ロジックを preSaveRules(ctx) 関数に追加します。
- ctx.processAsUpdate()
- ビジネス・オブジェクトの処理アクションを、追加アクションまたは削除アクションではなく更新アクションに設定します。
- ctx.processAsAdd()
- ビジネス・オブジェクトの処理アクションを、更新アクションまたは削除アクションではなく追加アクションに設定します。
- ctx.processAsAddAtEnd()
- ビジネス・オブジェクトの処理アクションを、「更新」アクションまたは「削除」アクションではなく「追加」アクションに設定し、コレクションの先頭ではなく、コレクションの末尾にビジネス・オブジェクトを作成します。
- ctx.log ()
- オブジェクト構造の処理コンテキストからログ・ステートメントを実行します。