カスタム・ペイロード処理の概要

この項では、着信データをネイティブ書式に変換する際のペイロード処理の概要を説明します。

Oracle Utilities Meter Data Frameworkの手順

  1. ファイル・アップロード・プロセス・プログラムがファイルの読取りを開始します。
  2. アップロード・プロセスがペイロード・ハンドラ・クラスのインスタンスを作成します。このクラスは、ユーザー・イグジット・インターセプタ・スクリプトとの相互作用を処理します。
  3. アップロード・プロセスが「パーサー取得時」ユーザー・イグジット・インターセプタを呼び出します。これは、com.splwg.d1.domain.sgg.dg.processing.PayloadParserインタフェースを実装するクラスのインスタンスを返すパーサーGroovyライブラリ・スクリプトを実行します。

    このペイロード・パーサーは、着信ファイル用にオープンされたストリームおよび「SGGペイロード処理構成」拡張可能参照のビジネス・オブジェクト・インスタンスを使用して初期化されます。

  4. アップロード・プロセスが「トランスフォーマ取得時」ユーザー・イグジット・インターセプタを呼び出します。これは、com.splwg.d1.domain.sgg.dg.processing.PayloadTransformerインタフェースを実装するクラスのインスタンスを返すトランスフォーマGroovyライブラリ・スクリプトを実行します。

    このペイロード・トランスフォーマは、ペイロード元を表す文字列および「SGGペイロード処理構成」拡張可能参照のビジネス・オブジェクト・インスタンスを使用して初期化されます。

  5. アップロード・プロセスは、ペイロード・パーサーを呼び出して、データを着信ドキュメントからプレーンXML書式に解析します。後述の「ペイロード・パーサーの手順」を参照してください。

  6. アップロード・プロセスがペイロード・トランスフォーマを呼び出し、プレーンXMLデータおよび結果リスト親ノードを渡します。

  7. ペイロード・トランスフォーマは、プレーンXMLデータを一連の初期測定(IMD)または設備イベント(あるいはその両方)に変換し、それぞれを結果リスト親ノードに追加した子ノードとして返します。後述の「ペイロード・トランスフォーマの手順」を参照してください。

  8. アップロード・プロセスでは、結果リストのすべての子ノードに対してビジネス・オブジェクト・インスタンスを作成します。

  9. ステップ5でペイロード・パーサーがNULLを返す(さらに処理するレコードがなくなる)まで、処理ステップ(5から9)を繰り返します。

ペイロード・パーサーの手順

  1. ペイロード・パーサーは、プレーンXMLに変換可能な、データ部分の論理的な最後に到達するまで入力ストリームを読み取ります。

  2. ペイロード・サーバーは、データを解析し、プレーンXML書式に変換します。

  3. アップロード・プロセスからの各コールに対してプロセスを実行します。

ペイロード・トランスフォーマの手順

  1. ペイロード・トランスフォーマは、指定されたプレーンXMLを読み取ります。

  2. ペイロード・トランスフォーマは、初期測定(IMD)または設備イベントを表す一連のXMLノードを生成します。ノードの名前は、提供されているSGGペイロード処理構成から取得されます。

  3. ペイロード・トランスフォーマは、生成されたノードを指定された結果リスト・ノードに追加します。