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" />
  

©Camel engineering LLP