カスタム・ペイロード処理の概要
この項では、着信データをネイティブ書式に変換する際のペイロード処理の概要を説明します。
Oracle Utilities Meter Data Frameworkの手順
- ファイル・アップロード・プロセス・プログラムがファイルの読取りを開始します。
- アップロード・プロセスがペイロード・ハンドラ・クラスのインスタンスを作成します。このクラスは、ユーザー・イグジット・インターセプタ・スクリプトとの相互作用を処理します。
- アップロード・プロセスが「パーサー取得時」ユーザー・イグジット・インターセプタを呼び出します。これは、com.splwg.d1.domain.sgg.dg.processing.PayloadParserインタフェースを実装するクラスのインスタンスを返すパーサーGroovyライブラリ・スクリプトを実行します。
このペイロード・パーサーは、着信ファイル用にオープンされたストリームおよび「SGGペイロード処理構成」拡張可能参照のビジネス・オブジェクト・インスタンスを使用して初期化されます。
- アップロード・プロセスが「トランスフォーマ取得時」ユーザー・イグジット・インターセプタを呼び出します。これは、com.splwg.d1.domain.sgg.dg.processing.PayloadTransformerインタフェースを実装するクラスのインスタンスを返すトランスフォーマGroovyライブラリ・スクリプトを実行します。
このペイロード・トランスフォーマは、ペイロード元を表す文字列および「SGGペイロード処理構成」拡張可能参照のビジネス・オブジェクト・インスタンスを使用して初期化されます。
-
アップロード・プロセスは、ペイロード・パーサーを呼び出して、データを着信ドキュメントからプレーンXML書式に解析します。後述の「ペイロード・パーサーの手順」を参照してください。
-
アップロード・プロセスがペイロード・トランスフォーマを呼び出し、プレーンXMLデータおよび結果リスト親ノードを渡します。
-
ペイロード・トランスフォーマは、プレーンXMLデータを一連の初期測定(IMD)または設備イベント(あるいはその両方)に変換し、それぞれを結果リスト親ノードに追加した子ノードとして返します。後述の「ペイロード・トランスフォーマの手順」を参照してください。
-
アップロード・プロセスでは、結果リストのすべての子ノードに対してビジネス・オブジェクト・インスタンスを作成します。
-
ステップ5でペイロード・パーサーがNULLを返す(さらに処理するレコードがなくなる)まで、処理ステップ(5から9)を繰り返します。
ペイロード・パーサーの手順
-
ペイロード・パーサーは、プレーンXMLに変換可能な、データ部分の論理的な最後に到達するまで入力ストリームを読み取ります。
-
ペイロード・サーバーは、データを解析し、プレーンXML書式に変換します。
-
アップロード・プロセスからの各コールに対してプロセスを実行します。
ペイロード・トランスフォーマの手順
-
ペイロード・トランスフォーマは、指定されたプレーンXMLを読み取ります。
-
ペイロード・トランスフォーマは、初期測定(IMD)または設備イベントを表す一連のXMLノードを生成します。ノードの名前は、提供されているSGGペイロード処理構成から取得されます。
-
ペイロード・トランスフォーマは、生成されたノードを指定された結果リスト・ノードに追加します。