ビュー・リンク(view link)

表のビューを表すビュー・オブジェクト間の関係を定義する。関係は1対1または1対多にすることができ、複数のビュー・リンクを使用して多対多関係を作成できる。ビュー・リンク・ウィザードおよびビュー・リンク・エディタでリンク元とリンク先のビュー・オブジェクトを指定すると、ビュー・オブジェクトから選択した属性を使用してビュー・オブジェクトがリンクされる。

1対多関係の例として、マスター/ディテール関係のEmployeeViewビュー・オブジェクトにリンクされたDepartmentViewビュー・オブジェクトがある。このビュー・リンクでは、特定の部門の従業員に関する情報を効率的に参照できる。

さらに複雑な1対多関係としては、マスター/ディテール関係でOrderViewビュー・オブジェクトにリンクしているCustomerViewビュー・オブジェクトや、マスター/ディテール関係でItemViewビュー・オブジェクトにリンクしているOrderViewビュー・オブジェクトがある。ユーザーは、特定の顧客の注文の品目を1つのフォームで簡単に調べられる。

ビュー・リンクは、Associationに基づいて作成できるが、ビュー・リンクを使用するためにはAssociationは必要ない。デフォルトの関係が適切な機能を提供しない場合は、ビュー・リンク・ウィザードまたはビュー・リンク・エディタの「SQL設定」ページを介して複合関係を作成できる。

ビュー・オブジェクトがリンクのディテール・ビューとして指定されている場合、ビュー・オブジェクトはディテール情報にデータを制限する(ビュー・オブジェクトを定義するSQL文へのWHERE句の追加など)。そうでない場合、ビュー・オブジェクトはすべてのデータが使用可能な無制限ビューを提供する。つまり、ビュー・リンクでは、マスター・ビューにより提供されているバインド値に基づき、これに関連するビューが選択される。

2つのビュー・オブジェクトがアプリケーション・モジュールでマスター/ディテール関係でリンクされている場合、マスター・ビュー・オブジェクトのデフォルトの(すなわち最初の)イテレータにより、ディテール・ビュー・オブジェクトをリフレッシュするためのイベントが起動される。ディテール・ビュー・オブジェクトが作成されると、ビジネス・コンポーネントのフレームワークにより、マスターのイテレータのイベント・リスナーとして登録される。このため、イテレータがマスター・ビュー・オブジェクト内の別の行に移動すると、ディテール・ビュー・オブジェクトの内容は自動的にリフレッシュされる。

アプリケーション・モジュールではビュー・リンクを再利用できる。ビジネス・コンポーネントAPIを使用し、実行時にビュー・リンクを動的に作成することもできる。

ビュー・リンクが既存のAssociationを基にしており、そのAssociationがコンポジットとして定義されている場合は、ディテール・ビュー行を作成する際にマスター・ビュー行が存在している必要があり、そのマスター・ビュー行にはnull以外のキー値が必要であることに注意する。Associationがコンポジットとして定義されていない場合は、このような制限は適用されない。

UMLでは、リンクは、2つ以上のオブジェクト間の接続を表すAssociationのインスタンス。