ビジネス・オブジェクトへの FixedWidth 文書の変換

このセクションでは、FixedWidth データ・ハンドラーが FixedWidth 文書をビジネス・オブジェクトに変換する方法について以下の項目を説明します。

FixedWidth ストリングの要件

FixedWidth データ・ハンドラーは、ストリングをビジネス・オブジェクトに変換するときに、以下の前提条件の下に処理を行います。

固定幅ストリングのフォーマットは、次のようになっています。

[Bus_Obj_Name<blank_space_padding_for_size >]
 [Verb<blank_space_padding_for_size >]
 [Attr1<blank_space_padding_for_size >]
 [Attr2...<blank_space_padding_for_size >] 
 [Number-of-child-object_instances<blank_space_padding_for_size >]
 [Child_Object_Name<blank_space_padding_for_size >]
 [Child_Object_Verb<blank_space_padding_for_size >]
 [Child_Object_Attr1<blank_space_padding_for_size >]
 [Child_Object_Attr2...<blank_space_padding_for_size >]
 <EndBO:Bus_Obj_Name>
 

このフォーマットでは、最初の 2 つのフィールド (Bus_Obj_Name および Verb) は、FixedWidth 子メタオブジェクト内の BONameSize および BOVerbSize 属性で指定された長さのフィールドを作成するようにパッドされます。 以降の属性は、各ビジネス・オブジェクト属性の MaxLength プロパティーで指定された長さのフィールドを作成するようにパッドされます。

その属性で CxIgnore が使用可能であれば、FixedWidth データ・ハンドラーで用いられるフィールドの長さは、少なくとも 8 文字以上でなければなりません。 属性が CxIgnore の値を含んでいないことが保証されていれば、MaxLength は 8 文字より少なくてもかまいません。

コネクターが固定幅フォーマットのファイルを読み取る場合、望ましい値を生成するように CxIgnore メタオブジェクト属性、および CxBlank メタオブジェクト属性を構成する必要があります。 これらのストリングは、最小の MaxLength 属性に影響します。MaxLength の最小値は、両方に対応する必要があります。

直列化データの処理

FixedWidth データ・ハンドラーは、以下のようにして FixedWidth 文書をビジネス・オブジェクトに加工します。

  1. データ・ハンドラーは、データを格納するためのビジネス・オブジェクトを作成する。ビジネス・オブジェクトのタイプがコネクターによって変換メソッドに渡されるか、またはデータ・ハンドラーがストリングの最初のフィールドからビジネス・オブジェクトの名前を取り出します。タイプ・パラメーターとデータの内容が一致しない場合、データ・ハンドラーはエラーを生成します。
  2. データ・ハンドラーは、ビジネス・オブジェクトに動詞を設定します。データ・ハンドラーは、トップレベル・ビジネス・オブジェクト用の動詞が、データの 2 番目のフィールドにあることを想定しています。
  3. データ・ハンドラーは、子メタオブジェクト (ビジネス・オブジェクトのアプリケーション固有情報の cw_mo_ タグに名前がリストされているもの) があるかどうかを判別します。データ・ハンドラーは、ビジネス・オブジェクトのこれらの属性を設定する処理を実行しませんcw_mo_ タグの詳細については、ビジネス・オブジェクトからの変換のインプリメントを参照してください。
  4. データ・ハンドラーは、OmitObjectEventId という名前のメタオブジェクト属性を調べる。この属性が true に設定されている場合、データ・ハンドラーは ObjectEventId 属性にデータを取り込む処理を実行しません。
  5. データ・ハンドラーは、残りのビジネス・オブジェクト属性を設定するため、ビジネス・オブジェクト定義で指定された各属性の MaxLength に基づいてデータを構文解析する。データから属性値を取り出し、ビジネス・オブジェクト内の単純属性の値として取り込みます。

    データ・ハンドラーは、以下のようにして配列属性を処理します。

Copyright IBM Corp. 2004