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

head2.gif 6.3.6 製品情報管理処理のまとめ
 以上で,製品にかかわる処理に必要となるビジネスロジックをすべて実装したことになる。製品の新規登録,更新,削除,一覧取得といった基本的な処理に加え,在庫の処理も含めたため,実装したメソッドの数はかなり多数にのぼっている。本節で実装したビジネスロジック(Business.Productコンポーネント)のメソッドをTable 6-13にまとめておく。

 なお,プログラムリストを見てもらうとわかるように,ほとんどのデータベース処理は,「6.2 顧客管理処理」で説明したものと同じである。対象となるテーブルが顧客情報テーブルなのか製品情報テーブルなのかという違いでしかないメソッドも多数ある。よって,ある程度プログラムをサブルーチン化することで,より簡単に実装できるようになることも事実である。この連載では,途中でいきなりサブルーチン化して読者の混乱を招くことを避けるため,共通処理をサブルーチン化して見やすくするということはしない。しかし,実際にビジネスアプリケーションを構築するうえでは,共通化できる部分はサブルーチン化し,できるだけ使い回すようにしたほうがよい。そのほうがプログラムの見通しがよくなるし,処理を1箇所に集中させることができる。処理が1箇所に集中すれば,不具合があったときの修正個所も1箇所に集中するということである。この結果,デバッグもやりやすくなる。

Table 6-13 Business.Productコンポーネントに実装したメソッド
メソッド概要利用するデータオブジェクトとメソッド[コンポーネントサービス]管理ツールによるセキュリティ設定プログラムによるセキュリティ設定で特記すべき事項
AddProduct新規に製品を登録するDataObj.ProductコンポーネントのAddRecordメソッド

Products
ProductsAdmin
AllAdmin

特になし
GetProduct既存の製品情報を取得するDataObj.ProductコンポーネントのIsDeletedメソッド,GetRecordメソッドすべてのロールProductsAdminロールまたはAllAdminロールに属するユーザーは削除ずみの製品情報も取得できる
UpdateProduct既存の製品情報を更新するDataObj.ProductコンポーネントのIsDeletedメソッド,UpdateRecordメソッドProducts
ProdutsAdmin
AllAdmin
特になし
DeleteProduct既存の製品を削除ずみまたは削除にするDataObj.ProductコンポーネントのIsDeletedメソッド,SetDeletedFlagメソッド,DeleteRecordメソッド
DataObj.StockコンポーネントのIsExistsProductメソッド
DataObj.SlipDetailコンポーネントのIsExistsProductメソッド
Products
ProductsAdmin
AllAdmin
ProductsAdminロールまたはAllAdminロールに属する場合,削除ずみの製品を削除すると,製品のレコードそのものが削除される
UndeleteProduct削除ずみの顧客を復活させるDataObj.ProductコンポーネントのSetDeletedFlagメソッドProductsAdmin
AllAdmin
特になし
GetProducts登録されているすべての製品情報の一覧を返すDataObj.ProductコンポーネントのGetRecordsメソッドすべてのロールProductsAdminロールもしくはAllAdminロールに属しているユーザーから呼び出された場合,削除ずみの製品も含む
AddStorage新規に入庫予定情報を登録するDataObj.StockコンポーネントのAddRecordメソッド
DataObj.ProductコンポーネントのIsDeletedメソッド

Products
ProductsAdmin
AllAdmin

特になし
SetDue入庫予定を施行ずみとする

DataObj.ProductコンポーネントのAddStockメソッド

DataObj.StockコンポーネントのIsDueメソッド,SetConfirmedFlagメソッド,GetRecordメソッド

Products
ProductsAdmin
AllAdmin

特になし
CancelDue施行ずみとした入庫予定を施行まえに戻す

DataObj.ProdctコンポーネントのAddStockメソッド

DataObj.StockコンポーネントのIsDueメソッド,SetConfirmedFlagメソッド,GetRecordメソッド

ProductsAdmin
AllAdmin
特になし
GetStorage既存の入庫または出庫予定を取得するDataObj.StockコンポーネントのIsDeletedメソッド,GetRecordメソッドすべてのロールProductsAdminロールまたはAllAdminロールに属するユーザーは削除ずみの予定も取得できる
UpdateStorage既存の入庫予定を更新するDataObj.StockコンポーネントのIsDueメソッド,InStockメソッド,UpdateRecordメソッドProducts
ProductsAdmin
AllAdmin
特になし
DeleteStorage既存の入庫予定を削除ずみまたは削除にするDataObj.StockコンポーネントのInStockメソッド,IsDueメソッド,IsDeletedメソッド,SetDeletedFlagメソッド,DeleteRecordメソッドProducts
ProductsAdmin
AllAdmin
ProductsAdminロールまたはAllAdminロールに属する場合,削除ずみの入庫予定を削除すると,レコードそのものが削除される
UndeleteStorage削除ずみの入庫予定を復活させる

DataObj.StockコンポーネントのGetRecordメソッド,SetDeletedFlagメソッド

DataObj.ProductコンポーネントのIsDeletedメソッド

ProductsAdmin
AllAdmin
特になし
GetStorages条件に合致する入庫予定や出庫予定の一覧を返すDataObj.StockコンポーネントのGetRecordsメソッドすべてのロールProductsAdminロールまたはAllAdminロールに属しているユーザーから呼び出された場合,削除ずみのレコードも含む

 
●次回予告
 次回は,伝票を登録したり,登録した伝票を営業部から製品管理部に回して製品を出庫させたり,さらに伝票を経理部に回して請求書を処理させたりといった部分を実装してゆく予定である。

prevpg.gif Chapter 6 51/92 nextpg.gif