この特集のトップページへ
Chapter 6:ビジネスロジックの設計



6.4.1 伝票の作成
●ビジネスコンポーネントの構築
 ビジネスコンポーネント側では,DataObj.SlipコンポーネントのAddRecordメソッド(List 6-90)とDataObj.SlipInformationコンポーネントのAddRecordメソッド(List 6-92)とを組み合わせて呼び出すことにより,伝票を追加する。このプログラムは,Business.Slipコンポーネントに実装する。

 そのためにまず,BusinessプロジェクトにSlipクラスモジュールを追加する。Slipクラスモジュールを追加するには,Businessプロジェクトを開き,[プロジェクト]メニューから[クラスモジュールの追加]を選択すればよい。

 Slipクラスモジュールを追加したら,そのトランザクション動作の初期値を「トランザクションが新しく必要」に設定するため,MTSTransactionModeプロパティを[RequiresNewTransaction]に変更しておく(Fig.6-75)。

Fig.6-75 BusinessプロジェクトのSlipクラスモジュールのMTSTransactionModeプロパティ
fig6_75

 Slipクラスモジュールを追加したら,List 6-94に示すAddSlipメソッドを追加する。AddSlipメソッドは,DataObj.SlipコンポーネントのAddRecordメソッド(List 6-90)とDataObj.SlipInformationコンポーネントのAddRecordメソッド(List 6-92)とを組み合わせ,伝票情報ならびにそれに付随する伝票追加情報をデータベース上に格納する。AddSlipメソッドは,追加した伝票の伝票番号(伝票テーブルのIDフィールドの値)を戻り値として返す。なお,List 6-94の26〜32行目では,DataObj.SlipコンポーネントのAddRecordメソッドを呼び出すまえに,DataObj.CustomerコンポーネントのIsDeletedメソッド(List 6-23)を呼び出し,指定された顧客番号と同じ顧客が存在しているかどうかを確認している。これは取引先となる顧客が不明な伝票を作ってしまうことを防ぐための処理である。31行目にあるように取引先となる顧客が存在しなかった場合にはエラー扱いとしている。

 なお,List 6-94ではセキュリティをチェックしていない。しかし,このサンプルでAddSlipメソッドを呼び出して伝票を追加できるのは,営業部員(Salesロールのメンバ),その上司(SalesManagerロールのメンバ),管理者(SalesAdminロールとAllAdminロールのメンバ)だけである。これらの制限は,プログラムとして実装するのではなく,[コンポーネントサービス]管理ツールで設定することにする。

prevpg.gif Chapter 6 54/92 nextpg.gif