SQL問合せを使用して、エンティティ・オブジェクトからフィルタリングされる属性のサブセットを指定する。データのビューは、SQLに基づいているが、基礎となるエンティティ・オブジェクトとは別であるため、必要なUIをサポートする柔軟性の高いデータ取得が実現する。つまり、画面に表示する必要のあるデータのセットを問い合せることができる。ビュー・オブジェクトにより、クライアントには、基礎となるエンティティ・オブジェクトを意識せずに、またはこれらに関する知識がない場合でも、スクロールして更新ができる行セットが提供される。クライアントは結果セット内を移動し、属性値を取得および設定することにより、データを操作する。トランザクションがコミットされると、基礎となるデータベース内のデータが変更される。ビュー・オブジェクト間の関係は、ビュー・リンクを使用して表される。各ビュー・オブジェクトは、結果セット内の移動に使用できるデフォルトのイテレータを提供する。
ビュー・オブジェクトは、通常、次の場合に使用される。
定義済の行および列のセットへのアクセスを制限することにより、さらに高度なセキュリティを追加する場合。たとえば、(給与などの)機密性の高いデータを含む列を除外したビュー・オブジェクトを作成できる。
データの複雑性を隠す場合。たとえば、1つのビュー・オブジェクトに、複数のエンティティ・オブジェクトの列または行を表示できる。このようなビュー・オブジェクトでは、データが複数の表から取得されたものであるという事実が隠される。
表示形式をカスタマイズする場合。ビュー・オブジェクトを使用することにより、ビュー・オブジェクトの基礎となっているエンティティ・オブジェクトに影響を与えずに、列の名前を変更できる。
複雑な問合せを保存する場合。問合せにより、表データに関する大量の計算を実行できる。この問合せをビュー・オブジェクトに保存すると、ビュー・オブジェクトの問合せが実行されたときのみ計算が実行される。計算が実行されてから、データがデータベースから取得される。
最適化され、実行にかかる時間の短いSQLを使用し、必要なデータのみを選択することにより、アプリケーションの効率を高める場合。
1つのエンティティ・オブジェクトに対して複数のビュー・オブジェクトを定義できる。また、1つのビュー・オブジェクトは複数のエンティティ・オブジェクトからデータを選択できる。データはエンティティ・オブジェクト・レベルでキャッシュされ、同じトランザクション内のすべてのビュー・オブジェクト参照でそのキャッシュを共有するため、あるビュー・オブジェクトを介して行われた変更は、同じトランザクション内の他のビュー・オブジェクトでただちに使用可能になる。
ビュー・オブジェクトを定義する場合、どの基礎エンティティ・オブジェクトを読取り専用にするか、およびどのエンティティ・オブジェクトでビュー・オブジェクトの属性リスト内の属性に対する読み書き操作を可能にするかを指定できる。
アプリケーション・モジュール・ウィザードおよびアプリケーション・モジュール・エディタでは、マスター/ディテール関係でビュー・オブジェクトをリンクするために使用するビュー・リンクを選択できる。ビュー・リンクは、実行時に実行されるコード内でも指定できる。ディテール・ビュー・オブジェクトは、自動的に、対応するマスター・ビュー・オブジェクトと同期化される。
アプリケーション・モジュールは、無制限ビューやディテール・ビューなど同じビュー・オブジェクトを何回も使用できる。別名を指定して、所定のビュー・オブジェクトの様々な使用方法を表すことができる。