如何实现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下让用户自定义。
如果那位朋友有类似的经验,我们可以交流。