domain specific flowのつづき
今度はruntime編。独自workitemの振る舞いを指定するには、以下の手順のみ。
1. WorkitemHandlerを実装するクラスを用意
2. statefulesessionからworkitemManager経由で独自workitemをregisterする
以上
例えば
public class AutoHandler implements WorkItemHandler { @Override public void abortWorkItem(WorkItem workItem, WorkItemManager manager) { } @Override public void executeWorkItem(WorkItem workItem, WorkItemManager manager) { String msg = (String) workItem.getParameter("Message"); manager.completeWorkItem(workItem.getId(), null); System.out.println("executed!!!"); } }
でフローが遷移すればこれが呼ばれます。
呼び出す前にはちゃんと
ksession.getWorkItemManager().registerWorkItemHandler( "system", new AutoHandler()); // start a new process instance ksession.startProcess("com.sample.ruleflow");
ってやる必要があります、うーん、こんなのsession毎にregisterするのはどうなんでしょかね。。。でもこれだけで独自workItemのフロー描画と実行ができます。