Business Model Component(BMC)
業務アプリケーションをサービス単位にコンポーネント化し、
ビジネス・ルールを集約することでメンテナンシビリティを高めます。
実装
アプリケーションの実装
≪Interface≫jp.co.cam.usax.bmc.BMCIFを実現したクラスを実装します。
標準処理を実装した下記の抽象クラスをご利用ください。
- 標準クラス
-
jp.co.cam.usax.bmc.impl.AbstractBusinessModelComponent
(実装例)
package jp.co.hogehoge.bmc;
/**
* 銀行口座の開設処理。
*/
public class OpenAccountBMC
extends AbstractBusinessModelComponent
{
/**
* 処理を実行する。
* @return true 正常 or false 異常
* @throws RuleException 処理中に発生した例外を報告
*/
public boolean run()
throws RuleException
{
...省略(処理を実装)
}
}
Attribute定義の実装
クラス名と同名の
LocalAttributeを実装します。
(例)/jp/co/hogehoge/bmc/OpenAccountBMC.xml
Rule定義の実装
クラス名と同名のRule定義ファイルを実装します。
(例)/jp/co/hogehoge/bmc/OpenAccountBMC.rule
Rule定義ファイルの書き方はこちらを参照ください。
EventクラスからBMCを実行する
EventクラスなどRuledDataBeanIFを実現したクラスは、BMCにアクセスできす。
アプリケーションの実装
(実装例)
// BMC
final BMCIF bmc = super.getBusinessModelByID("BMCの管理ID");
// 実行パラメータの設定
bmc.setString("パラメータ1", "A");
bmc.setString("パラメータ2", "B");
if (!bmc.run()) {
// 実行結果:エラー
// BMCの処理メッセージ
final MessageIF msgs = bmc.getMessage();
// メッセージを移送
super.getMessage().addAll(msgs);
return false;
}
Attributeの定義
使用するBMCクラスは呼出し元のクラスが使用するAttributeに定義します。
(実装例)
<attribute id="BMCの管理ID"
name="jp.co.hogehoge.bmc.OriginBMC" />