IBM WebSphere Business Integration Server Express Adapter for SWIFT は、以下の種類のマッピングをサポートしています。
SWIFT メッセージのトップレベル・ビジネス・オブジェクト、Msg BO の構造は、SWIFT メッセージの構造を反映します。WebSphere では、各 SWIFT ブロックにビジネス・オブジェクトが必要です。表 22 に示されているように、トップレベル・ビジネス・オブジェクトには、少なくとも各 SWIFT ブロックごとに 1 つずつ、合わせて 5 つの属性が必要です。
名前 | タイプ | キー | 必須 | アプリケーション固有情報 |
---|---|---|---|---|
UUID (MQSA が前に付加された) | String | はい | いいえ | block=0;parse=no |
Swift_01Header | Swift_BasicHeader | なし | はい | block=1;
parse=fixlen |
Swift_02Header | Swift_Application
Header | なし | いいえ | block=2;
parse=fixlen |
Swift_03Header | Swift_UserHeader | なし | いいえ | block=3;
parse=delim |
Swift_Data | Swift_Text | なし | いいえ | block=4;parse=field |
Swift_05Trailer | String | なし | いいえ | block=5;parse=no |
Swift_BlockS (MQSA が付加された) | String | なし | いいえ | block=6;parse=no |
次の規則は、トップレベル・ビジネス・オブジェクトに適用されます。
BOPrefix_MTMessageType
ここで、以下のように説明されます。
BOPrefix = メタオブジェクト (MO) の属性。メタオブジェクトの詳細については、静的メタオブジェクトを参照してください。
_MT = 定数ストリング。
MessageType = SWIFT メッセージのブロック 2 の属性。詳細については、「All Things SWIFT: the SWIFT User Handbook」を参照してください。
トップレベル・ビジネス・オブジェクト名は、例えば、Swift_MT502 のようになります。
属性アプリケーション固有の情報については、表 21 を参照してください。
図 6 に、SWIFT メッセージのトップレベル・ビジネス・オブジェクトのビジネス・オブジェクト定義を示します。この Msg BO 定義は、WebSphere 開発環境で作成されました。
アプリケーション固有の情報には、各属性のブロック番号と構文解析パラメーターが含まれています。属性アプリケーション固有テキストの詳細については、表 21 を参照してください。Swift_ 属性は、次の各セクションで説明する子ビジネス・オブジェクトに対応しています。このサンプル・ビジネス・オブジェクト定義の完全な仕様は、"トップレベル・ビジネス・オブジェクト (Msg BO) 定義のサンプル"を参照してください。データ・ブロック属性 Swift_MT502Data のタイプに特に注意してください。これは、SWIFT メッセージ・タイプ 502 で、購買または販売のオーダーを示しています。この属性は、SWIFT メッセージのブロック 4 を表す トップレベル Msg BO の子オブジェクトに対応しています。子オブジェクトは、メッセージ・データ・ビジネス・オブジェクト (MsgData BO) です。
SWIFT トップレベル・ビジネス・オブジェクト定義はすべて、図 6 に示されている定義と同じですが、Swift_MT502Data として示されているブロック 4 が 特定の SWIFT メッセージの実際のデータ定義を反映する点だけは異なります。
図 6. SWIFT メッセージのトップレベル・ビジネス・オブジェクトの定義
このセクションでは、タイプ MT502 (購買または販売のオーダー) の SWIFT メッセージに対する トップレベル・ビジネス・オブジェクト (Msg BO) の定義のサンプルを示します。
[BusinessObjectDefinition] Name = Swift_MT502 Version = 1.1.0 [Attribute] Name = UUID Type = String Cardinality = 1 MaxLength = 255 IsKey = true IsForeignKey = false IsRequired = false AppSpecificInfo = block=0;parse=no IsRequiredServerBound = false [End] [Attribute] Name = Swift_01Header Type = Swift_BasicHeader ContainedObjectVersion = 1.0.0 Relationship = Containment Cardinality = 1 MaxLength = 1 IsKey = false IsForeignKey = false IsRequired = false AppSpecificInfo = block=1;parse=fixlen IsRequiredServerBound = false [End] [Attribute] Name = Swift_02Header Type = Swift_ApplicationHeader ContainedObjectVersion = 1.0.0 Relationship = Containment Cardinality = 1 MaxLength = 1 IsKey = false IsForeignKey = false IsRequired = false AppSpecificInfo = block=2;parse=fixlen IsRequiredServerBound = false [End] [Attribute] Name = Swift_03Header Type = Swift_UserHeader ContainedObjectVersion = 1.0.0 Relationship = Containment Cardinality = 1 MaxLength = 1 IsKey = false IsForeignKey = false IsRequired = false AppSpecificInfo = block=3;parse=delim IsRequiredServerBound = false [End] [Attribute] Name = Swift_MT502Data Type = Swift_MT502Data ContainedObjectVersion = 1.0.0 Relationship = Containment Cardinality = 1 MaxLength = 1 IsKey = false IsForeignKey = false IsRequired = false AppSpecificInfo = block=4;parse=field IsRequiredServerBound = false [End] [Attribute] Name = Swift_05Trailer Type = String Cardinality = 1 MaxLength = 1 IsKey = false IsForeignKey = false IsRequired = false AppSpecificInfo = block=5;parse=no IsRequiredServerBound = false [End] [Attribute] Name = Swift_BlockS Type = String Cardinality = 1 MaxLength = 1 IsKey = false IsForeignKey = false IsRequired = false AppSpecificInfo = block=6;parse=no IsRequiredServerBound = false [End] [Attribute] Name = ObjectEventId Type = String MaxLength = 255 IsKey = false IsForeignKey = false IsRequired = false IsRequiredServerBound = false [End] [Verb] Name = Create [End] [Verb] Name = Retrieve [End]
MsgBlck BO、Swift_BasicHeader のフォーマットと属性が、表 23 に示されています。SWIFT データ・ハンドラーは、このブロック内の SWIFT フィールドを それぞれ Swift_BasicHeader ビジネス・オブジェクト内の属性に変換します。このビジネス・オブジェクトには、属性アプリケーション固有の情報はありません。
名前 | タイプ | キー | 外部キー | 必須 | カーディナリティー | デフォルト | 最大長 |
---|---|---|---|---|---|---|---|
BlockIdentifier | String | はい | なし | はい | 1 | 1:a | 2 |
ApplicationIdentifier | String | なし | なし | はい | 1 |
| 1 |
ServiceIdentifier | String | なし | なし | はい | 1 |
| 2 |
LTIdentifier | String | なし | なし | はい | 1 |
| 12 |
SessionNumber | String | なし | なし | はい | 1 |
| 4 |
SequenceNumber | String | なし | なし | いいえ | 1 |
| 4 |
a BlockIdentifier 属性には、「1:」のように、区切り文字「:」が含まれています。 |
属性アプリケーション固有の情報については、表 21 を参照してください。
図 7 に、WebSphere 開発環境で手動で作成されたブロック 1 ビジネス・オブジェクト定義を示します。各属性名 (ApplicationIdentifier、ServiceIdentifier など) は、この SWIFT メッセージ・ブロック内のフィールドに対応しています。この SWIFT メッセージ・ブロックの詳細については、付録 C, SWIFT メッセージ構造および「All Things SWIFT: the SWIFT User Handbook」を参照してください。各名前付き属性に対して、型 String を指定してください。このビジネス・オブジェクトのコンポーネントには、属性アプリケーション固有の情報はありません。
このセクションでは、タイプ MT502 (購買または販売のオーダー) の SWIFT メッセージに対する ブロック 1 ビジネス・オブジェクトの定義のサンプルを示します。
[BusinessObjectDefinition] Name = Swift_BasicHeader Version = 1.1.0 [Attribute] Name = BlockIdentifier Type = String Cardinality = 1 MaxLength = 2 IsKey = true IsForeignKey = false IsRequired = true DefaultValue = 1: IsRequiredServerBound = false [End] [Attribute] Name = ApplicationIdentifier Type = String Cardinality = 1 MaxLength = 1 IsKey = false IsForeignKey = false IsRequired = true IsRequiredServerBound = false [End] [Attribute] Name = ServiceIdentifier Type = String Cardinality = 1 MaxLength = 2 IsKey = false IsForeignKey = false IsRequired = true IsRequiredServerBound = false [End] [Attribute] Name = LTIdentifier Type = String Cardinality = 1 MaxLength = 12 IsKey = false IsForeignKey = false IsRequired = true IsRequiredServerBound = false [End] [Attribute] Name = SessionNumber Type = String Cardinality = 1 MaxLength = 4 IsKey = false IsForeignKey = false IsRequired = true IsRequiredServerBound = false [End] [Attribute] Name = SequenceNumber Type = String Cardinality = 1 MaxLength = 6 IsKey = false IsForeignKey = false IsRequired = false IsRequiredServerBound = false [End] [Attribute] Name = ObjectEventId Type = String Cardinality = 1 MaxLength = 255 IsKey = true IsForeignKey = false IsRequired = false IsRequiredServerBound = false [End] [Verb] Name = Create [End]
ブロック 2 MsgBlk BO、Swift_ApplicationHeader のフォーマットと属性が 表 24 に示されています。SWIFT データ・ハンドラーは、このブロック内の SWIFT フィールドを それぞれ Swift_ApplicationHeader ビジネス・オブジェクト内の属性に変換します。このビジネス・オブジェクトには、属性アプリケーション固有の情報はありません。
名前 | タイプ | キー | 必須 | カーディナリティー | デフォルト | 最大長 |
---|---|---|---|---|---|---|
Block Identifier | String | なし | はい | 1 | 2:a | 2 |
IOIdentifier | String | なし | はい | 1 |
| 1 |
MessageType | String | なし | はい | 1 |
| 3 |
I_ReceiverAddress | String | なし | はい | 1 |
| 12 |
I_MessagePriority | String | なし | はい | 1 |
| 1 |
I_DeliveryMonitoring | String | なし | いいえ | 1 |
| 1 |
I_ObsolescencePeriod | String | なし | いいえ | 1 |
| 3 |
O_InputTime | String | なし | はい | 1 |
| 4 |
O_MessageInputReference | String | なし | はい | 1 |
| 28 |
O_OutputDate | String | なし | いいえ | 1 |
| 6 |
O_OutputMessagePriority | String | なし | いいえ | 1 |
| 6 |
a BlockIdentifier 属性には、「2」のように、区切り文字「:」が含まれています。 |
表 24 の最初の 3 つの属性は I/O 属性です。I_ で始まる属性は入力属性であり、SWIFT からビジネス・オブジェクトへの変換中にデータが取り込まれます。O_ で始まる属性は出力属性であり、ビジネス・オブジェクトから SWIFT への変換中にデータが取り込まれます。CxIgnore プロパティーは、ビジネス・オブジェクトから SWIFT への変換に対して 設定する必要があります。
属性アプリケーション固有の情報については、表 21 を参照してください。
図 8 に、WebSphere 開発環境で手動で作成されたブロック 2 ビジネス・オブジェクト定義を示します。各属性名 (BlockIdentifier、IOIdentifier など) は、この SWIFT メッセージ・ブロック内のフィールドに対応しています。示されている定義は、入力属性 (I_) の定義であり、SWIFT からビジネス・オブジェクトへの変換中にデータが取り込まれます。この SWIFT メッセージ・ブロックの詳細については、付録 C, SWIFT メッセージ構造および「All Things SWIFT: the SWIFT User Handbook」を参照してください。各名前付き属性に対して、型 String を指定してください。このビジネス・オブジェクトのコンポーネントには、属性アプリケーション固有の情報はありません。
このセクションでは、タイプ MT502 (購買または販売のオーダー) の SWIFT メッセージに対する ブロック 2 ビジネス・オブジェクトの定義のサンプルを示します。
[BusinessObjectDefinition] Name = Swift_ApplicationHeader Version = 1.1.0 [Attribute] Name = BlockIdentifier Type = String Cardinality = 1 MaxLength = 2 IsKey = false IsForeignKey = false IsRequired = true DefaultValue = 2: IsRequiredServerBound = false [End] [Attribute] Name = IOIdentifier Type = String Cardinality = 1 MaxLength = 1 IsKey = false IsForeignKey = false IsRequired = true DefaultValue = O IsRequiredServerBound = false [End] [Attribute] Name = MessageType Type = String Cardinality = 1 MaxLength = 3 IsKey = false IsForeignKey = false IsRequired = true IsRequiredServerBound = false [End] [Attribute] Name = O_InputTime Type = String Cardinality = 1 MaxLength = 4 IsKey = false IsForeignKey = false IsRequired = true IsRequiredServerBound = false [End] [Attribute] Name = O_MessageInputReference Type = String Cardinality = 1 MaxLength = 28 IsKey = false IsForeignKey = false IsRequired = true IsRequiredServerBound = false [End] [Attribute] Name = O_OutputDate Type = String Cardinality = 1 MaxLength = 6 IsKey = false IsForeignKey = false IsRequired = false IsRequiredServerBound = false [End] [Attribute] Name = O_OutputTime Type = String Cardinality = 1 MaxLength = 4 IsKey = false IsForeignKey = false IsRequired = false IsRequiredServerBound = false [End] [Attribute] Name = O_OutputMessagePriority Type = String Cardinality = 1 MaxLength = 1 IsKey = false IsForeignKey = false IsRequired = false IsRequiredServerBound = false [End] [Attribute] Name = I_ReceiverAddress Type = String Cardinality = 1 MaxLength = 12 IsKey = false IsForeignKey = false IsRequired = true IsRequiredServerBound = false [End] [Attribute] Name = I_MessagePriority Type = String Cardinality = 1 MaxLength = 1 IsKey = false IsForeignKey = false IsRequired = true IsRequiredServerBound = false [End] [Attribute] Name = I_DeliveryMonitoring Type = String Cardinality = 1 MaxLength = 1 IsKey = false IsForeignKey = false IsRequired = false IsRequiredServerBound = false [End] [Attribute] Name = I_ObsolescencePeriod Type = String Cardinality = 1 MaxLength = 3 IsKey = false IsForeignKey = false IsRequired = false IsRequiredServerBound = false [End] [Attribute] Name = ObjectEventId Type = String Cardinality = 1 MaxLength = 255 IsKey = true IsForeignKey = false IsRequired = false IsRequiredServerBound = false [End] [Verb] Name = Create [End]
ブロック 3 MsgBlk BO、Swift_UserHeader のフォーマットと属性が 表 25 に示されています。このビジネス・オブジェクトには、属性アプリケーション固有の情報、Tag パラメーターがあります。Tag パラメーターについては、表 21 を参照してください。
名前 | タイプ | キー | 外部 | 必須 | カーディナリティー | アプリケーション固有情報 | 最大長 |
---|---|---|---|---|---|---|---|
Tag103 | String | はい | なし | いいえ | 1 | Tag=103 | 6 |
Tag113 | String | なし | なし | いいえ | 1 | Tag=113 | 6 |
Tag108 | String | なし | なし | いいえ | 1 | Tag=108 | 6 |
Tag119 | String | なし | なし | いいえ | 1 | Tag=119 | 6 |
Tag115 | String | なし | なし | いいえ | 1 | Tag=115 | 6 |
図 9 に、WebSphere 開発環境で手動で作成されたブロック 3 ビジネス・オブジェクト定義を示します。各属性名 (Tag103、Tag113 など) は、この SWIFT メッセージ・ブロック内のフィールドに対応しています。この SWIFT メッセージ・ブロックの詳細については、付録 C, SWIFT メッセージ構造および「All Things SWIFT: the SWIFT User Handbook」を参照してください。各名前付き属性に対して、型 String を指定してください。このビジネス・オブジェクトのコンポーネントのアプリケーション固有の情報は、SWIFT タグです。
このセクションでは、タイプ MT502 (購買または販売のオーダー) の SWIFT メッセージに対する ブロック 3 ビジネス・オブジェクトの定義のサンプルを示します。
[BusinessObjectDefinition] Name = Swift_UserHeader Version = 1.1.0 [Attribute] Name = Tag103 Type = String Cardinality = 1 MaxLength = 255 IsKey = true IsForeignKey = false IsRequired = false AppSpecificInfo = Tag=103 IsRequiredServerBound = false [End] [Attribute] Name = Tag113 Type = String Cardinality = 1 MaxLength = 255 IsKey = false IsForeignKey = false IsRequired = false AppSpecificInfo = Tag=113 IsRequiredServerBound = false [End] [Attribute] Name = Tag108 Type = String Cardinality = 1 MaxLength = 255 IsKey = false IsForeignKey = false IsRequired = false AppSpecificInfo = Tag=108 IsRequiredServerBound = false [End] [Attribute] Name = Tag119 Type = String Cardinality = 1 MaxLength = 255 IsKey = false IsForeignKey = false IsRequired = false AppSpecificInfo = Tag=119 IsRequiredServerBound = false [End] [Attribute] Name = Tag115 Type = String Cardinality = 1 MaxLength = 255 IsKey = false IsForeignKey = false IsRequired = false AppSpecificInfo = Tag=115 IsRequiredServerBound = false [End] [Attribute] Name = ObjectEventId Type = String Cardinality = 1 MaxLength = 255 IsKey = true IsForeignKey = false IsRequired = false IsRequiredServerBound = false [End] [Verb] Name = Create [End]
SWIFT ブロック 4 には、SWIFT メッセージの本文が含まれています。ブロック 4 は、一方ではメッセージ・タグとその内容のフィールドから構成され、もう一方ではメッセージ・タグのシーケンスから構成されます。このデータ内容は、ブロック 1、2、および 3 の構造とは異なる、ブロック 4 ビジネス・オブジェクト構造を作成します。ブロック 4 ビジネス・オブジェクトは、メッセージ・データのビジネス・オブジェクト (MsgData BO) です。
SWIFT メッセージ内のすべてのタグとシーケンスが、MsgData BO の子ビジネス・オブジェクトとしてモデル化されます。したがって、MsgData BO は、Field ビジネス・オブジェクト (MsgField BO) と Sequence ビジネス・オブジェクト (MsgSeq BO) の 2 種類の子オブジェクトを持ちます。これらのビジネス・オブジェクトは、SWIFT データがブロック 4 でフォーマットされる方法を反映します。具体的には、これらのビジネス・オブジェクト内の属性は、SWIFT メッセージ・フォーマット仕様で 指定された内容 (メッセージ・タグとその内容) と順序 (シーケンス) をモデル化します。メッセージ・タグのシーケンスは、ビジネス・オブジェクト定義が SWIFT メッセージを忠実に表す場合に重要です。MsgField BO および MsgSeq BO の詳細については、"Sequence ビジネス・オブジェクトと Field ビジネス・オブジェクト" を参照してください。
例として、「SWIFT Standards Release Guide」 から MT502 (購買または販売のオーダー) のフォーマット仕様を見てみましょう。後述の図 10 に、MT502 に対応するビジネス・オブジェクト定義の一部が示されています。ビジネス・オブジェクト定義は、SWIFT メッセージ内のメッセージ・タグとシーケンスの 構造を反映しています。
MsgData BO のフォーマットの要約を以下の各セクションで示します。
SWIFT メッセージのブロック 4 を表す MsgData BO の命名規則は次のとおりです。
Swift_MT<message_type>Data
例えば、次のようになります。
Name = Swift_MT502Data
MsgData BO の各属性は、次のいずれかを表します。
したがって、属性名は MsgSeq BO および MsgField BO の属性名と同じになります。MsgField BO 属性の命名規則は次のとおりです。
Swift_<tag_number>_<position_in_the_SWIFT_message>
例えば、次のようになります。
Name = Swift_94_1
MsgSeq BO 属性の命名規則は次のとおりです。
Swift_MT<message_type>_<SWIFT_sequence_name>
例えば、次のようになります。
Name = Swift_MT502_B
詳細については、"Sequence ビジネス・オブジェクトの構造"および"Field ビジネス・オブジェクト定義"を参照してください。
MsgData 属性のタイプは次のとおりです。
MsgField BO 属性:
Swift_Tag_<tag_number>
例えば、次のようになります。
Type = Swift_Tag_94
MsgSeq BO 属性:
Swift_MT<message_type>_<SWIFT_sequence_name>
例えば、次のようになります。
Type = Swift_MT502_B
MsgData BO およびその MsgSeq BO 属性に対して組み込まれたオブジェクト・バージョンは 1.1.0 です。例えば、次のようになります。
[Attribute] Name = Swift_MT502_B Type = Swift_MT502_B ... ContainedObjectVersion = 1.1.0 ... [End]
MsgData BO およびその MsgSeq BO 属性の関係属性プロパティーは、Containment です。例えば、次のようになります。
[Attribute] Name = Swift_MT502Data Type = Swift_MT502Data ... Relationship = Containment ... [End]
MsgData BO およびその MsgSeq BO 属性のカーディナリティー・プロパティーは n です。フィールドの繰り返しを表す MsgField BO 属性のカーディナリティーも n です。その他の属性のカーディナリティーはすべて 1 です。例えば、次のようになります。
[Attribute] Name = Swift_16_1 Type = Swift_Tag_16 ... Cardinality = n ... [End]
各 MsgData BO 定義に、キー属性として定義された属性が少なくとも 1 つ含まれている 必要があります (IsKey = true)。規則では、各 BO 定義内の最初の単一カーディナリティー属性をキー属性として定義する必要があります。
例えば、次のようになります。
[Attribute] Name = Swift_16.1 Type = Swift_Tag_16 ... Cardinality = 1 IsKey = true [End]
MsgData BO 定義では、MsgField BO 属性だけがアプリケーション固有の情報を持ちます。MsgSeq BO 属性では、このプロパティーは常にヌルです。MsgField BO 属性の場合、アプリケーション固有の情報の規則は次のとおりです。
Tag=nn;Letter=xx;Content=string
ここで、nn はフィールドの SWIFT タグ番号、xx はタグに対してサポートされる 1 つ以上の文字オプション、string は 表 21 で説明されている非汎用フィールドの修飾子の値です。例えば、次のようになります。
[Attribute] Name = Swift_16_22 Type = Swift_Tag_16 ... AppSpecificInfo = Tag=16;Letter=S;Content=OTHRPRTY ... [End]
MsgField BO 属性が MsgSeq BO に表示され、アプリケーション固有の情報に次のものが示されている場合は、
...;Union=True
DataField 属性の代わりに MsgField 子オブジェクト (TagUnion ビジネス・オブジェクトと その子オブジェクトである TagLetterOption オブジェクト) に値が取り込まれます。TagUnion ビジネス・オブジェクトの詳細については、"Field ビジネス・オブジェクト定義"を参照してください。
前述のように、コネクターは SWIFT メッセージ内のシーケンスとタグを それぞれ Sequence ビジネス・オブジェクト (MsgSeq BO) および Field ビジネス・オブジェクト (MsgField BO) としてモデル化します。図 11 に、これらのビジネス・オブジェクトの階層関係を示します。
図 11. (ブロック 4) MsgData BO 内の Field ビジネス・オブジェクト と Sequence ビジネス・オブジェクト
図 12 に、フィールド属性とシーケンス属性を含むシーケンスを示す SWIFT メッセージ (MT502) の定義の一部を示します。シーケンス属性 Swift_MT02_B_Order_Details には、タイプ Tag の いくつかの属性 (例えば、Swift_Tag_16、Swift_Tag_94) だけでなく、サブシーケンス Swift_MT502_B1_Price も含まれています。このサブシーケンスはオプションのシーケンスの繰り返しであり、そのプロパティーはこれを反映します (Required= no; Cardinality=n)。サブシーケンスにはアプリケーション固有の情報は含まれていません。
図 13 に示されているように、各 Sequence ビジネス・オブジェクト (MsgSeq BO) 属性は、次のいずれかのものを示します。
MsqSeq BO がネストできるサブシーケンスの数に制限はありません。
図 13. MsgSeq BO 内の Field ビジネス・オブジェクトと Subsequence ビジネス・オブジェクト
図 14 に、MsgSeq BO の別の抜粋を示します。この抜粋では、Swift_Tag_ 属性が MsgField BO を示しています。Swift_MT502_A1_Linkages 属性は、サブシーケンス MsgSeq BO の子オブジェクトに対して使用されています。
図 14. Sequence ビジネス・オブジェクト (MsgSeq BO) からの抜粋
Sequence ビジネス・オブジェクトには次の規則が適用されます。
Sequence ビジネス・オブジェクトのサンプルは、"Sequence ビジネス・オブジェクト定義のサンプル"を参照してください。
MsgData BO と同様に、MsgSeq BO は、MsgSeq BO または MsgField BO のいずれかの属性から構成されます。これらの属性のフォーマットについては、"MsgData BO フォーマット"を参照してください。
このセクションでは、タイプ MT502 (購買または販売のオーダー) の SWIFT メッセージに対する MsgSeq BO の定義のサンプルを示します。この定義は、「Mandatory Sequence A Order to Buy or Sell」のものです。
[BusinessObjectDefinition] Name = Swift_MT502_A_General_Information Version = 1.0.0 [Attribute] Name = Start_Of_Block Type = Swift_Tag_16 ContainedObjectVersion = 1.0.0 Relationship = Containment Cardinality = 1 MaxLength = 1 IsKey = true IsForeignKey = false IsRequired = true AppSpecificInfo = Tag=16;Letter=R;Content=GENL IsRequiredServerBound = false [End] [Attribute] Name = Senders_Reference Type = Swift_Tag_20 ContainedObjectVersion = 1.0.0 Relationship = Containment Cardinality = 1 MaxLength = 1 IsKey = false IsForeignKey = false IsRequired = true AppSpecificInfo = Tag=20;Letter=C IsRequiredServerBound = false [End] [Attribute] Name = Function_Of_The_Message Type = Swift_Tag_23 ContainedObjectVersion = 1.0.0 Relationship = Containment Cardinality = 1 MaxLength = 1 IsKey = false IsForeignKey = false IsRequired = true AppSpecificInfo = Tag=23;Letter=G IsRequiredServerBound = false [End] [Attribute] Name = Preparation_DateTime Type = Swift_Tag_98 ContainedObjectVersion = 1.0.0 Relationship = Containment Cardinality = 1 MaxLength = 1 IsKey = false IsForeignKey = false IsRequired = false AppSpecificInfo = Tag=98;Letter=A|C IsRequiredServerBound = false [End] [Attribute] Name = Indicator Type = Swift_Tag_22 ContainedObjectVersion = 1.0.0 Relationship = Containment Cardinality = n MaxLength = 1 IsKey = false IsForeignKey = false IsRequired = true AppSpecificInfo = Tag=22;Letter=F IsRequiredServerBound = false [End] [Attribute] Name = Swift_MT502_A1_Linkages Type = Swift_MT502_A1_Linkages ContainedObjectVersion = 1.0.0 Relationship = Containment Cardinality = n MaxLength = 1 IsKey = false IsForeignKey = false IsRequired = false IsRequiredServerBound = false [End] [Attribute] Name = End_Of_Block Type = Swift_Tag_16 ContainedObjectVersion = 1.0.0 Relationship = Containment Cardinality = 1 MaxLength = 1 IsKey = false IsForeignKey = false IsRequired = true AppSpecificInfo = Tag=16;Letter=S;Content=GENL IsRequiredServerBound = false [End] [Attribute] Name = ObjectEventId Type = String MaxLength = 255 IsKey = false IsForeignKey = false IsRequired = false IsRequiredServerBound = false [End] [Verb] Name = Create [End] [Verb] Name = Retrieve [End]
WebSphere は、すべての SWIFT タグを Field ビジネス・オブジェクト (MsgField BO) として 表します。各 MsgField BO は、フィールドが非汎用であっても、SWIFT 汎用フィールド構造を使用してモデル化されます。WebSphere は 2 つの追加のビジネス・オブジェクト・モデルを使用して、SWIFT メッセージ・コンポーネントの表示と結合に使用される文字とオプションの組み合わせをビジネス・オブジェクト内のサブフィールドとして表します。
図 15 に示されているように、各 MsgField BO には 5 つの属性があります。このうち、TagUnion BO が 1 つだけ含まれており、そのデータ型は以下で括弧 () 内に示されています。
図 15. MsgField BO の属性とビジネス・オブジェクト
SWIFT Qualifier および Issuer Code (IC) 以外のすべてのサブフィールドの内容と順序が、DataField の子オブジェクトに取り込まれます。これは、TagUnion BO およびその子オブジェクト TagLetterOption BO です。図 15 に示されている属性およびビジネス・オブジェクトについては、以下で説明します。
MsgField BO の命名規則は次のとおりです。
Swift_Tag_<N>
ここで、N はメッセージ番号を表します。例えば、次のようになります。
Name = Swift_Tag_22
TagUnion BO の命名規則は次のとおりです。
Swift_Tag_Union_<tag_number>
ここで、tag_number はタグ番号の数値表現です。例えば、次のようになります。
Name = Swift_Tag_Union_20
TagLetterOption BO の命名規則は次のとおりです。
Swift_Tag_Union_<tag_number>_Opt_[<letter_option>]
ここで、tag_number はタグ番号の数値表現、[<letter_option>] はタグが文字に関連付けられている場合の文字オプションです。タグに文字が関連付けられていない場合、名前は Opt で終わります。例えば、次のようになります。
Name = Swift_Tag_Union_20_Opt_C
MsgField BO 内の 5 つの属性の名前は次のとおりです。
TagUnion BO 内の属性の名前は次のとおりです。
Swift_<tag_number>_[<letter_option>]
ここで、tag_number はタグ番号の数値表現、大括弧は、文字がタグに関連付けられている場合のみ付加されることを示します。例えば、次のようになります。
Swift_20_C
TagLetterOption BO 内の属性の名前は、SWIFT フォーマット仕様テーブルに示されているサブフィールド名のワードを連結したものです。SWIFT フォーマット仕様でのワードのスペルに関わりなく、連結されたストリング内の各ワードの先頭文字は常に大文字であり、後続の文字は小文字です。スペースおよび英字記号以外の記号は連結名から除外されます。フィールドにサブフィールドがない場合は、Subfield が属性名として使用されます。例えば、95R 内のサブフィールド「Proprietary」の場合、TagLetterOption BO Swift_Tag_Union_95_Opt_R の定義内の対応する属性名は次のようになります。
Name = ProprietaryCode
MsgField 属性のタイプは次のとおりです。
例えば、MsgField BO 定義では、Swift_Tag_20 属性のタイプは次のように示されます。
[Attribute] Name = DataField Type = Swift_Tag_Union_20
TagUnion BO 内の属性のタイプは、TagLetterOption BO 子オブジェクトの名前になります。例えば、Swift_Tag_Union_20 の TagUnion BO 定義では、TagLetterOption 属性のタイプは次のようになります。
[Attribute] Name = Swift_20_C Type = Swift_Tag_Union_20_Opt_C
TagLetterOption BO 内の属性のタイプは常に String です。
MsgField BO、TagUnion BO、および TagLetterOption BO に対して組み込まれているオブジェクト・バージョンは 1.1.0 です。例えば、次のようになります。
また、MsgSeq BO 属性の場合も 1.1.0 です。例えば、次のようになります。
[Attribute] Name = Swift_20_C Type = Swift_Tag_Union_20_Opt_C ... ContainedObjectVersion = 1.1.0 ... [End]
TagUnion BO および TagLetterOption BO 内の属性のカーディナリティーは、常に 1 に設定されます。例えば、次のようになります。
[Attribute] Name = Swift_20_C Type = Swift_Tag_Union_20_Opt_C ... Cardinality = 1 ... [End]
各 MsgField BO で、属性 Letter をキー属性として定義する必要があります。
例えば、次のようになります。
[Attribute] Name = Letter Type = String IsKey = true ... [End]
TagUnionBO の最初の属性がキーとして定義されます。
TagLetterOption BO の最初の属性がキーとして定義されます。
TagLetterOption BO の AppSpecificInfo 属性の定義は、ビジネス・オブジェクト・サブフィールドに重要な SWIFT メッセージ・フォーマット情報を 提供します。AppSpecificInfo 属性には、次の情報が含まれている必要があります。
Format=***;Delim=$$$
ここで、以下のように説明されます。
*** は、区切り文字情報を除外した SWIFT サブフィールド・フォーマット仕様を表します。
$$$ は、現在のサブフィールドと次のサブフィールドの間の区切り文字を 構成する 1 つ以上の文字を表します。
区切り文字が CrLf である場合は、シンボル・ストリング CrLf が、復帰文字のすぐ後に改行文字が続くことを指定します。
例えば、TagLetterOption BO、Swift_Tag_Union_95_Opt_C の AppSpecificInfo 属性は次のように表示されます。
[Attribute] Name = CountryCode Type = String ... AppSpecificInfo = Format=2!a;Delim=/ ... [End]
サンプル・オブジェクトと属性定義は、"MsgField BO、TagUnion BO、および TagLetterOption BO の定義のサンプル"を参照してください。
このセクションでは、TagUnion および TagLetterOption の属性とオブジェクトを示す MsgField BO 定義のサンプルを示します。
サンプル MsgField BO、Swift_Tag_21 は次のとおりです。
[BusinessObjectDefinition] Name = Swift_Tag_21 Version = 3.0.0 [Attribute] Name = Letter Type = String MaxLength = 255 IsKey = true IsForeignKey = false IsRequired = false IsRequiredServerBound = false [End] [Attribute] Name = Qualifier Type = String MaxLength = 255 IsKey = false IsForeignKey = false IsRequired = false IsRequiredServerBound = false [End] [Attribute] Name = IC Type = String MaxLength = 255 IsKey = false IsForeignKey = false IsRequired = false IsRequiredServerBound = false [End] [Attribute] Name = Data Type = String MaxLength = 255 IsKey = false IsForeignKey = false IsRequired = false IsRequiredServerBound = false [End] [Attribute] Name = DataField Type = Swift_Tag_Union_21 ContainedObjectVersion = 3.0.0 Relationship = Containment Cardinality = 1 MaxLength = 0 IsKey = false IsForeignKey = false IsRequired = false IsRequiredServerBound = false [End] [Attribute] Name = ObjectEventId Type = String MaxLength = 255 IsKey = false IsForeignKey = false IsRequired = false IsRequiredServerBound = false [End] [Verb] Name = Create [End] [Verb] Name = Delete [End] [Verb] Name = Retrieve [End] [Verb] Name = Update [End] [End]
DataField 属性が、Type 属性によって名前を定義された TagUnion BO、Swift_Tag_Union_21 を表していることに注意してください。次に、その TagUnion BO を示します。これは、Swift_Tag_21 のすべての文字オプションを属性として示します。
[BusinessObjectDefinition] Name = Swift_Tag_Union_21 Version = 1.1.0 [Attribute] Name = Swift_21 Type = Swift_Tag_Union_21_Opt ContainedObjectVersion = 1.0.0 Relationship = Containment Cardinality = 1 MaxLength = 0 IsKey = true IsForeignKey = false IsRequired = false IsRequiredServerBound = false [End] [Attribute] Name = Swift_21_A Type = Swift_Tag_Union_21_Opt_A ContainedObjectVersion = 1.0.0 Relationship = Containment Cardinality = 1 MaxLength = 0 IsKey = false IsForeignKey = false IsRequired = false IsRequiredServerBound = false [End] [Attribute] Name = Swift_21_B Type = Swift_Tag_Union_21_Opt_B ContainedObjectVersion = 1.0.0 Relationship = Containment Cardinality = 1 MaxLength = 0 IsKey = false IsForeignKey = false IsRequired = false IsRequiredServerBound = false [End] [Attribute] Name = Swift_21_C Type = Swift_Tag_Union_21_Opt_C ContainedObjectVersion = 1.0.0 Relationship = Containment Cardinality = 1 MaxLength = 0 IsKey = false IsForeignKey = false IsRequired = false IsRequiredServerBound = false [End] [Attribute] Name = Swift_21_D Type = Swift_Tag_Union_21_Opt_D ContainedObjectVersion = 1.0.0 Relationship = Containment Cardinality = 1 MaxLength = 0 IsKey = false IsForeignKey = false IsRequired = false IsRequiredServerBound = false [End] [Attribute] Name = Swift_21_E Type = Swift_Tag_Union_21_Opt_E ContainedObjectVersion = 1.0.0 Relationship = Containment Cardinality = 1 MaxLength = 0 IsKey = false IsForeignKey = false IsRequired = false IsRequiredServerBound = false [End] [Attribute] Name = Swift_21_F Type = Swift_Tag_Union_21_Opt_F ContainedObjectVersion = 1.0.0 Relationship = Containment Cardinality = 1 MaxLength = 0 IsKey = false IsForeignKey = false IsRequired = false IsRequiredServerBound = false [End] [Attribute] Name = Swift_21_G Type = Swift_Tag_Union_21_Opt_G ContainedObjectVersion = 1.0.0 Relationship = Containment Cardinality = 1 MaxLength = 0 IsKey = false IsForeignKey = false IsRequired = false IsRequiredServerBound = false [End] [Attribute] Name = Swift_21_N Type = Swift_Tag_Union_21_Opt_N ContainedObjectVersion = 1.0.0 Relationship = Containment Cardinality = 1 MaxLength = 0 IsKey = false IsForeignKey = false IsRequired = false IsRequiredServerBound = false [End] [Attribute] Name = Swift_21_P Type = Swift_Tag_Union_21_Opt_P ContainedObjectVersion = 1.0.0 Relationship = Containment Cardinality = 1 MaxLength = 0 IsKey = false IsForeignKey = false IsRequired = false IsRequiredServerBound = false [End] [Attribute] Name = Swift_21_R Type = Swift_Tag_Union_21_Opt_R ContainedObjectVersion = 1.0.0 Relationship = Containment Cardinality = 1 MaxLength = 0 IsKey = false IsForeignKey = false IsRequired = false IsRequiredServerBound = false [End] [Attribute] Name = ObjectEventId Type = String MaxLength = 255 IsKey = false IsForeignKey = false IsRequired = false IsRequiredServerBound = false [End] [Verb] Name = Create [End] [Verb] Name = Retrieve [End] [End]
上記の TagUnion BO の最初の属性 Swift_21 で、IsKey = true であることに注意してください。
属性 Swift_21_A は、子オブジェクト TagLetterOption BO を示しています。この子オブジェクトの名前は、属性の Type 属性によって定義されます (Swift_Tag_Union_21_Opt_A)。次に、その TagLetterOption BO を示します。
[BusinessObjectDefinition] Name = Swift_Tag_Union_21_Opt_A Version = 1.0.0 [Attribute] Name = ReferenceOfTheIndividualAllocation Type = String MaxLength = 255 IsKey = true IsForeignKey = false IsRequired = false AppSpecificInfo = Format=16x IsRequiredServerBound = false [End] [Attribute] Name = ObjectEventId Type = String MaxLength = 255 IsKey = false IsForeignKey = false IsRequired = false IsRequiredServerBound = false [End] [Verb] Name = Create [End] [Verb] Name = Retrieve [End]
この TagLetterOption BO の唯一の属性である ReferenceOfTheIndividualAllocation が、このタグ・オプションの対応する SWIFT サブフィールド名の連結であることに注意してください。各ワードの先頭文字は大文字です。Qualifier サブフィールドおよび Issuer Code サブフィールドは、TagLetterOption BO の属性から除外されます。この属性では、IsKey プロパティーも true です。
TagLetterOption BO は、単純および複雑な SWIFT フィールドおよびサブフィールドのフォーマットを表すことができます。次に、Swift_Tag_Union_22_Opt のビジネス・オブジェクト定義、TagLetterOption BO を示します。この属性とアプリケーション固有の情報は、SWIFT Field 22、送信側と受信側との Common Reference 機能のサブフィールド・フォーマットを指定します。Function の AppSpecificInfo が、SWIFT メッセージでのデータの解析に使用されるフォーマットと区切り文字を指定することに注意してください。CommonReference は、サブフィールド名の連結です。CommonReference の AppSpecificInfo は、図 16 に示されている内容に対応します。
[BusinessObjectDefinition] Name = Swift_Tag_Union_22_Opt Version = 1.0.0 [Attribute] Name = Function Type = String MaxLength = 255 IsKey = true IsForeignKey = false IsRequired = false AppSpecificInfo = Format=8a;Delim=/ IsRequiredServerBound = false [End] [Attribute] Name = CommonReference Type = String MaxLength = 255 IsKey = false IsForeignKey = false IsRequired = false AppSpecificInfo = Format=4!a2!c4!n4!a2!c IsRequiredServerBound = false [End] [Attribute] Name = ObjectEventId Type = String MaxLength = 255 IsKey = false IsForeignKey = false IsRequired = false IsRequiredServerBound = false [End] [Verb] Name = Create [End] [Verb] Name = Retrieve [End] [End]