旅費規程のサンプル
これから旅費規程のサンプルを作成していきます。仕様はDrools 4.0 入門2 (サンプルプログラム)を参照ください。
ルールに基づくシステムを作成していく手順は、一般的に規模の大小に関わらず
- factモデルを作成
- factモデルをベースにしてルールを実装
ということ(もしくはこれらをスパイラルに行うこと)になります。これに従って、まずfactモデルを作成していきましょう。今回はサンプルテスト用ということでそのためのカテゴリを加えておきましょう。
左のメニューでAdministration→Categoryを選択し、右に表示されたCategoryの一覧ウィンドウでNew categoryを押すと以下のウィンドウが出るので、ひとまず”test”というカテゴリを加えておきましょう。
factモデル
Categoryの準備ができたところで、factモデルを作っていきましょう。factモデルには、通常factのtypeが複数(または一つ)含まれるわけですが、旅費規程のサンプルにおけるfactモデルでは、BusinessTripというfactのtypeのみが含まれ、そのtypeには出張者の名前であるnameというフィールドと出張していた時間を表すhourというフィールドが含まれます。以下にまとめてみると、
Factのタイプ名・・・BusinessTrip
上記Factタイプのフィールド・・・name(string),hour(double)
となり、これはちょうどDrools 4.0 入門2 (サンプルプログラム)の中のBusinessTripのクラスにあたります。
さて、まずは factのtypeを入れておく factモデル そのものを作成しておきましょう。 左のメニューで
Knowledge Bases→Create New→New Declarative Model を選択します。
開いた右のウィンドウで、名称を入力してfactモデルを新規に作成します。名前は何でも良いのですが、BusinessTripという名前はfactのtypeで使う予定なので、日本語で「出張」という名前にしておきましょう。パッケージは、新たに作ってもよいのですが、ここではすでに入っていたdefaultPackageを、descriptionには適当に「旅費規程のモデル」とでもいれておきます。
OKを押すと、fact typeを定義する画面が表示されます。
ここで、「Add new fact type」を押して、下のウィンドウを開け、新規に作成するfact typeの名前を入力します。上で決めていたFactタイプ名「BusinessTrip」を入力します。
OKを押して、次にBusinessTripにフィールドを加えていきます。 これもすでに上で決めていたフィールド名 name と hourを加えていきましょう。
「Add field」 を押して次のウィンドウを開きます。Field nameとして「name」を入力し、Typeの入力は右のコンボボックスからTextを選択します。
「OK」を押してnameを加え、次に再度「Add field」を押し「hour」を加えましょう。「OK」を押すと以下の表示となります。
これで、ひととおりの入力が終わりました。左上の「Save changes」を押すとリポジトリへのCheck in画面が出てくるので、ここでチェックインを行えばリポジトリに登録されます。
さて、左のメニューから Knowledge Bases → defaulrPackage → model を選択してみましょう。
モデルの一覧にfactモデル「出張」が表示されます。
さて、factモデルの登録ができたところでルールの登録に移りましょう。