调用实例
1 建立一个流程模板
/**
* 生成一个简单流程
*
* @return
*/
public static FlowDefine loadSimpleFlow() {
// 开始(所有人-张三)----申报人所在单位科长(王五)--法律事务处(李四)---结束
// flow
FlowDefine flowDefine = new FlowDefine();
// flowDefine.setId("1");
flowDefine.setName("合同申报流程");
flowDefine.setStatus(FlowDefine.STATUS_RUN);
flowDefine.setReturnType(FlowDefine.RETURN_TYPE_START);
flowDefine.setFlowTypeName("1000");
List list = new ArrayList();
flowDefine.setActions(list);
// 开始action
ActionDefine actionDefine_start = new ActionDefine();
actionDefine_start.setName("合同起草");
actionDefine_start.setStatus(ActionDefine.STATUS_RUN);
actionDefine_start.setActionType(ActionDefine.TYPE_START);
actionDefine_start.setFlowDefine(flowDefine);
actionDefine_start.setSortFlag(0);
actionDefine_start.setModelClazz("com.longtop.workflow.model.TestBean");
// 活动归属
ActionOwner actionOwner = new RoleOwner();
actionOwner.setName("1");//科员都可以起草
actionOwner.setActionDefine(actionDefine_start);
actionDefine_start.getOwners().add(actionOwner);
list.add(actionDefine_start);
//活动监听器
List exitListeners_start=new ArrayList();
ExitActionListenerModel alm=new ExitActionListenerModel();
alm.setClazzName("com.longtop.workflow.service.ContractSubmitListener");//当start退出时,需要执行的监听器
alm.setListenActionDefine(actionDefine_start);
alm.setSortFlag(new Integer(0));
exitListeners_start.add(alm);
actionDefine_start.setExitListeners(exitListeners_start);
// 王五action
ActionDefine actionDefine_wangwu = new ActionDefine();
actionDefine_wangwu.setName("初审");
actionDefine_wangwu.setStatus(ActionDefine.STATUS_RUN);
actionDefine_wangwu.setFlowDefine(flowDefine);
actionDefine_wangwu.setSortFlag(1);
actionDefine_wangwu.setModelClazz("com.longtop.workflow.model.TestBean");
list.add(actionDefine_wangwu);
// 活动归属
actionOwner = new UserOwner();
actionOwner.setName("maker.parentNode.children.dutyCode='01'");//申报人所在单位的科长
actionOwner.setActionDefine(actionDefine_wangwu);
actionDefine_wangwu.getOwners().add(actionOwner);
// 活动转换
ActionTrans trans = new ActionTrans();
// 设置start的转换对象
// 设置转换的源
List trans_list = new ArrayList();
trans_list.add(actionDefine_start);
trans.setActionDefines(trans_list);
// 转换的目标
TransCondition c = new TransCondition();
trans.getTransConditions().add(c);
c.getDescActions().add(actionDefine_wangwu);
c.setActionTrans(trans);
actionDefine_start.setTrans(trans);
// 李四action
ActionDefine actionDefine_lisi = new ActionDefine();
actionDefine_lisi.setName("法律处");
actionDefine_lisi.setStatus(ActionDefine.STATUS_RUN);
actionDefine_lisi.setModelClazz("com.longtop.workflow.model.TestBean");
actionDefine_lisi.setSortFlag(2);
list.add(actionDefine_lisi);
ActionOwner actionOwner_lisi = new CompanyOwner();
actionOwner_lisi.setName("2c9038ac138a93cd01138a93e6490003");
actionDefine_lisi.getOwners().add(actionOwner_lisi);
actionDefine_lisi.setFlowDefine(flowDefine);
actionOwner_lisi.setActionDefine(actionDefine_lisi);
// 活动转换
trans = new ActionTrans();
// 设置start的转换对象
actionDefine_wangwu.setTrans(trans);
// 设置转换的源
trans_list = new ArrayList();
trans_list.add(actionDefine_wangwu);
trans.setActionDefines(trans_list);
// 转换的目标
c = new TransCondition();
trans.getTransConditions().add(c);
c.setActionTrans(trans);
c.getDescActions().add(actionDefine_lisi);
// 结束action
ActionDefine actionDefine_end = new ActionDefine();
actionDefine_end.setName("结束");
actionDefine_end.setSortFlag(3);
actionDefine_end.setStatus(ActionDefine.STATUS_RUN);
actionDefine_end.setActionType(ActionDefine.TYPE_END);
actionDefine_end.setFlowDefine(flowDefine);
actionDefine_end.setModelClazz("com.longtop.workflow.model.TestBean");
list.add(actionDefine_end);
// 活动监听器
List exitListeners_end=new ArrayList();
alm=new ExitActionListenerModel();
alm.setClazzName("com.longtop.workflow.service.ContractPrintListener");
alm.setListenActionDefine(actionDefine_end);
alm.setSortFlag(new Integer(0));
exitListeners_end.add(alm);
actionDefine_start.setExitListeners(exitListeners_end);
// 活动转换
trans = new ActionTrans();
// 设置start的转换对象
actionDefine_lisi.setTrans(trans);
// 设置转换的源
trans_list = new ArrayList();
trans_list.add(actionDefine_lisi);
trans.setActionDefines(trans_list);
// 转换的目标
c = new TransCondition();
c.setActionTrans(trans);
trans.getTransConditions().add(c);
c.getDescActions().add(actionDefine_end);
return flowDefine;
}
分享到:
相关推荐
本项目“web工作流设计-myflow”是专为实现基于Web的工作流设计而构建的,它利用myflow.js这个JavaScript库来帮助开发者轻松地在网页上创建和操作工作流。下面将详细介绍myflow.js的工作原理、主要特点以及如何在...
"方法"方面,工作流管理系统通常采用一系列的方法来设计、实施和监控工作流程。这些方法包括工作流建模语言(如BPMN或WF-NET)、流程分析技术(如瓶颈识别和效率优化)以及工作流执行服务。流程建模语言使得业务专家...
根据给定的文件信息,我们可以深入探讨工作流管理联盟(Workflow Management Coalition,简称WFMC)发布的...在实际应用中,工作流参考模型可以帮助企业设计、实施和优化其工作流解决方案,从而更好地满足业务需求。
工作流设计开发参考资料中文版,收集整理出来的,希望能对大家有所帮助。内容包括:wfmc工作流标准--接口一;WfMC关于事件的白皮书 ;工作流标准和相关文档 ;工作流参考模型 ;工作流管理联盟规范(接口1);工作流...
工作流设计器是工作流管理系统的核心部分,它允许用户通过图形化的方式创建和编辑工作流模型。在这个HTML版本的EasyUI工作流设计器中,我们可以看到它是如何利用EasyUI的组件来构建出直观易用的界面。首先,EasyUI的...
此项目的核心在于工作流组件的自定义设计。工作流(Workflow)是一种描述和控制业务过程的技术,它可以模拟现实世界中的各种流程,如审批流程、数据处理流程等。这个组件支持在线流程设计器,意味着用户可以直接在...
本项目基于 RuoYi-Vue-Plus 进行二次开发扩展Flowable工作流功能,支持在线表单设计和丰富的工作流程设计能力。本项目主要针对Flowable工作流场景开发,脚手架功能同步更新 RuoYi-Vue-Plus 项目。采用MIT开源协议,...
这个文件很可能是WFMC关于工作流系统间通信的接口规范,详细描述了如何设计和实现API,使得不同厂商的工作流引擎可以协同工作,实现数据交换和流程协作。 3. **WorkFlow**: 这个文件名可能是某个具体的工作流文档...
5. **XML到数据库的解析过程**:文件"JWFDv0.96 开源工作流引擎设计-XMLTO数据库解析过程说明.doc"揭示了JWFD如何将XML工作流定义转化为数据库中的实际数据,这是一个关键的转换步骤,直接影响到流程的正确执行。...
用户通过工作流管理系统可以更便捷的进行业务管理,而工作流引擎是工作流管理系统的核心部分,所以有必要对工作流引擎进行设计。用户需要通过工作流系统进行任务流程的定制,包括添加、删除、修改流程,并且可以直观...
springboot-flowable-cims基于工作流引擎flowable、spring boot开发的工作流服务平台,完美整合官方flowable modeler 进行流程设计、表单设计。提供flowable rest api 接口 供后台业务系统流程调用。提供前后端分离...
在"WWF工作流设计.ppt"文件中,可能包含了关于如何使用WWF设计工作流的详细步骤、示例代码、最佳实践等内容,对于理解WWF工作流设计有很好的指导价值。建议深入学习,结合实际项目实践,提高工作效率和代码质量。
本文将从设计工具、数据库支持、运行环境以及与其他工作流的兼容性等多个维度对比分析两种主流的工作流引擎——Flowable与Camunda,并在此基础上给出选型建议。 #### 一、设计工具对比 **1.1 Camunda 设计器** ...
【工作流设计器】是一种用于创建和编辑工作流程的可视化工具,尤其在IT领域,它能够帮助用户无需编程知识就能构建复杂的工作流程。本篇主要关注的是基于Silverlight技术的开源工作流设计器,它具备以下几个核心特性...
2. 工作流实例:当根据工作流模型创建一个具体的业务流程时,就形成了一个工作流实例。每个实例代表一次流程执行,可能对应一个订单处理、员工请假申请等具体事件。 3. 任务管理:工作流引擎负责分配任务给合适的...
【标题】"WEB工作流设计器源代码"是一个与Web应用程序开发相关的项目,专注于构建用于设计和管理业务流程的工作流工具。这个源代码是使用Adobe Flex技术编写的,Flex是一种基于ActionScript和MXML的开放源代码框架,...