この特集のトップページへ
>
Chapter 6:ビジネスロジックの設計
6.3.6 製品情報管理処理のまとめ
以上で,製品にかかわる処理に必要となるビジネスロジックをすべて実装したことになる。製品の新規登録,更新,削除,一覧取得といった基本的な処理に加え,在庫の処理も含めたため,実装したメソッドの数はかなり多数にのぼっている。本節で実装したビジネスロジック(Business.Productコンポーネント)のメソッドをTable 6-13にまとめておく。
なお,プログラムリストを見てもらうとわかるように,ほとんどのデータベース処理は,「6.2 顧客管理処理」で説明したものと同じである。対象となるテーブルが顧客情報テーブルなのか製品情報テーブルなのかという違いでしかないメソッドも多数ある。よって,ある程度プログラムをサブルーチン化することで,より簡単に実装できるようになることも事実である。この連載では,途中でいきなりサブルーチン化して読者の混乱を招くことを避けるため,共通処理をサブルーチン化して見やすくするということはしない。しかし,実際にビジネスアプリケーションを構築するうえでは,共通化できる部分はサブルーチン化し,できるだけ使い回すようにしたほうがよい。そのほうがプログラムの見通しがよくなるし,処理を1箇所に集中させることができる。処理が1箇所に集中すれば,不具合があったときの修正個所も1箇所に集中するということである。この結果,デバッグもやりやすくなる。
Table 6-13 Business.Productコンポーネントに実装したメソッド
メソッド | 概要 | 利用するデータオブジェクトとメソッド | [コンポーネントサービス]管理ツールによるセキュリティ設定 | プログラムによるセキュリティ設定で特記すべき事項 |
---|---|---|---|---|
AddProduct | 新規に製品を登録する | DataObj.ProductコンポーネントのAddRecordメソッド | Products | 特になし |
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 | 特になし |
SetDue | 入庫予定を施行ずみとする | DataObj.ProductコンポーネントのAddStockメソッド DataObj.StockコンポーネントのIsDueメソッド,SetConfirmedFlagメソッド,GetRecordメソッド | Products | 特になし |
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ロールに属しているユーザーから呼び出された場合,削除ずみのレコードも含む |
●次回予告
次回は,伝票を登録したり,登録した伝票を営業部から製品管理部に回して製品を出庫させたり,さらに伝票を経理部に回して請求書を処理させたりといった部分を実装してゆく予定である。
Chapter 6 51/92 |