ビジネス・オブジェクトを SWIFT メッセージに変換するため、SWIFT
データ・ハンドラーは、トップレベルのビジネス・オブジェクト内の属性を順番にループします。これは、属性がビジネス・オブジェクトとその子に現れる順序に基づいて、取り込まれた
SWIFT メッセージのブロックを循環的に生成します。
ブロック番号のない属性、すなわちパーサー・プロパティーによって認識されない値を持つ属性は、無視されます。また、MQSA によって追加される UUID
ヘッダーであるブロック 0 も無視されます。
parse=value
アプリケーション固有の情報プロパティーは、ストリングのフォーマット方法を決定するために使用されます。このプロパティーは、次のようにビジネス・オブジェクトを解析します。
- parse=no; 属性はタイプ String
である必要があります。これは、{block
number:attribute value}
としてフォーマットされます。block number
は、block=block value
アプリケーション固有テキスト・プロパティーの 値です。
- parse=fixlen;
この属性は、単一のカーディナリティー・コンテナーである必要があります。これは、{block
number:attr0 value attr1
value....attrn
value}としてフォーマットされます。ここで、attrn
value は、n 番目の属性の属性値です。CxIgnore 属性と CxBlank
属性はすべて無視されます。
- parse=delim;
この属性は、単一のカーディナリティー・コンテナーである必要があります。これは、{block
number:[Tag:attr1
data]...[Tag:attr1
data]} としてフォーマットされます。ここで、Tag は属性アプリケーション固有テキストの Tag プロパティーの値で、attrn
data は属性の値です。CxIgnore 属性と CxBlank 属性はすべて無視されます。
- parse=field; この設定は、ブロック 4
のメッセージでのみ使用できます。フィールドは、ビジネス・オブジェクトの
CxIgnore と CxBlank 以外の属性によって ループで印刷されます。
- appText == NULL
で、属性がコンテナーである場合は、printBO(childBO)
を呼び出します。必要に応じて複数のカーディナリティーを処理します。
- appText != NULL である場合は、printFieldObj()
を呼び出します。これは、複数のカーディナリティーを処理し、タグを書き出すために
printFieldBO() を呼び出します。
- すべてのフィールドが汎用フィールドまたは非汎用フィールドとしてフォーマットされます。タグ番号は、Tag
ビジネス・オブジェクト属性の値として判別されます。Tag
ビジネス・オブジェクトの非 CxIgnore
属性はすべて印刷されます。汎用フィールドまたは非汎用フィールドの詳細については、付録 C, SWIFT メッセージ構造を参照してください。
