如何实现Shark工作流?
如何实现Shark工作流?
Shark工作流的实现和WMFC&OMG规范的对比
-----第一部分:流程的初始化和执行
活动的状态列表:
1、 open.running
2、 open.not_running.not_started
3、 open.not_running.suspended
4、 closed.completed
5、 closed.terminated
6、 closed.aborted
流程类名:WfProcess,所有具体的流程实例通过:WfProcessMgr 类来管理,调用create_process方法来程成一个Process的实例。
工作流活动的初始化过程如下:
在InstantiateProcess类中,相应初始化消息,调用actionPerformed方法来完成。具体如下:
1、 流程实例WfProcess都是通过:WfProcessMgr 类来创建,调用create_process方法来程成一个Process的实例。
2、 获得该流程启动需要得的上下文:
NameValue[] context=proc.process_context();
3、 如果有初始化必需的参数,显示用户界面,用户输入后继续进行。
4、 调用这个实例的start ()函数具体执行这个Process。
如下:
1) change_state("open.running");设置这个Process的状态为开始执行;
2) 使用:
Set starts = SharkUtilities.getStartActivities( getProcessDefinition() );
来获得这个Process下所有可执行的活动activity;
3) 调用startActivity , 执行上面获得Activities , 进行具体的活动执行。
待续
作者:田春峰
accesine@163.com
我在察看了 OsWorkflow , shark , ofbiz , obe , jbpm 后发现工作流困难的地方在于:
1、如何把工作流程和工作流程执行的具体任务联系起来。
就是说:
比如:一个工作流有A,B,C三个具体的活动activity。
那么,如何把这些activity 和具体的java方法函数帮定到一起,
比如:如何让A流程执行createLog()方法,B流程执行makeDesicision()方法,等等。
2、工作流如何在B/S下让用户自定义。
如果那位朋友有类似的经验,我们可以交流。