掟破りの逆ぶりエディタ

往年の藤波辰巳vs長州力の試合で古館さんがこのセリフをいってるところを思い浮かべながらみると感慨深いかもしれません.
f:id:wkzk:20090414002245p:image
f:id:wkzk:20090414002246j:image
って感じ。
こういうのがdrools-flowだと簡単にできます。Domain Specific Itemと呼んでいます。フローってBPMNをはじめ画像って固定化されるよね、でもいろいろな業務フロー書いていくとひとつひとつのアクションって業務によって違いをもたせて表現させたりしたいよねー、と。そんな時にはDomain Specific Itemの拡張性を利用します。勝手に画像を使ってはいけませんが今日だけ、勉強用ということで。

今日はデザイン編として、eclispeでフロー上で書くときの手順でっす!
(1)droolseclipse pluginを入れましょう!
(2)画像をクラスパス上に置きます。
(3)クラスパス上にMETA-INFフォルダを作成します
(4)confファイルを作成します。今回は名前をMyWorkDefinition.confにして以下のようにMVELで書きます。

import org.drools.process.core.datatype.impl.type.StringDataType;
[
  [
    "name"        : "system",
    "parameters"  : [
                   "Message" : new StringDataType()
                    ],
    "displayName" : "system",
    "icon" : "icons/auto.gif"
  ],
  [
    "name"        : "timer",
    "parameters"  : [
                   "Message" : new StringDataType()
                    ],
    "displayName" : "timer",
    "icon" : "icons/autoTimer.gif"
  ],
  [
    "name"        : "manual",
    "parameters"  : [
                   "Message" : new StringDataType()
                    ],
    "displayName" : "manual",
    "icon" : "icons/manual.gif"
  ]
]

name,parameter,displayName,iconが指定しなければいけないやつです。見ればだいたい説明も不要かと。これをMETA-INF下に置きます。
(5)同じくMETA-INF下にdrools.rulebase.confというファイルを置きます。drools.rulebase.confファイル自体は他にもいろいろな設定値を制御できるファイルなのですが、今回の指定でいうと以下のように宣言します。

drools.workDefinitions = MyWorkDefinitions.conf

この1行だけです。
(6)しゅーりょー!
これでruleflowをひらいてフローを書ける画面をひらくとworkitemのところに指定したアイテムで使えるようになります!簡単ですね。
※displayNameには今のところ日本語使えないっす(涙)あとでJIRAあげたいと思います(グスン)。
なので、これらかわいい画像を使ってフローを書きたい人は素直に本家ぶりエディタを使いましょう。
http://www.escafe.org/escafeFlowEditor/
こちらからどうぞ〜