ステップ4: カスタム・ビジネス・ロジック・メソッドのコール |
![]() 前へ |
![]() 次へ |
ビジネス・コンポーネント・バッチ・クライアント・チュートリアルのこのステップでは、CustomerView
ビュー・オブジェクトに対するカスタム行メソッドを作成し、クライアントのためにそれをコールします。
このステップを完了する前に、バッチ・クライアントが主キーによりCustomerView
の行を検索することができることを確認します。
顧客名のファースト・ネームとラスト・ネームを連結するメソッドを作成します。このメソッドは、CustomerView
の行セット全体ではなく、行セットの1行にのみ適用されるので、ビュー行クラスでメソッドを作成します。
CustomerView
に対してビュー行クラスを生成し、メソッドを追加するには、次のようにします。
CustomersViewRowImpl.java
を生成します。}
の直前に次のコードを入力します。
public String getCustFullName()
{
StringBuffer fullName = new StringBuffer(40);
fullName.append(getAttribute("CustFirstName"));
fullName.append(" ");
fullName.append(getAttribute("CustLastName"));
return fullName.toString();
}
CustomersViewRowImpl.getCustFullName()
は、クライアントから直接コールしないでください。ローカル・モードでバッチ・クライアントを実行する予定でも、層に依存しないインタフェース(サーバー側CustomersViewRowImpl
の反対)を使用すると、アプリケーションはデプロイメント構成に依存しません。
クライアント行インタフェースを生成すると、このメソッドをクライアントからコールし、層に依存しないようにすることができます。
CustomersViewに対するクライアント行インタフェースを生成するには、次のようにします。
JDeveloperによりCustomersViewRow
というインタフェースが生成されます。このインタフェースは、CustomersViewRowImpl
によって実装され、getCustFullName()
を公開します。サーバー側パッケージOnlineOrders
にあるCustomersViewRowImpl
と違い、CustomersViewRow
はパッケージOnlineOrders.common
にあり、複数層の環境でクライアントを使用してデプロイします。
ここで、層に依存しない方法でクライアントからgetCustFullName()
をコールします。
クライアントからgetCustFullName()
をコールするには、次のようにします。
import
ブロックに次の文を追加します。
import OnlineOrders.common.*;
Row row_Cust = customersFound[0];
それを次の行に置き換えます。
CustomersViewRow row_Cust = (CustomersViewRow) customersFound[0];
row_Cust
をCustomersViewRow
に変換することにより、汎用のoracle.jbo.Row
インタフェースにないCustomersViewRow
のメソッドをコールすることができます。
show("Name: " + row_Cust.getCustFullName());
バッチ・クライアントを実行して、行った変更を確認できます。
このバージョンのバッチ・クライアントを実行し、保存するには、次のようにします。
メッセージ・ビューにプログラムの出力が表示されます。
次は、ビュー・リンクを走査して検索を行い、ディテール・データを表示します。