JeeSite 工作流Activiti的应用实例

  1. 新建流程模型

    在线办公-流程管理-模型管理-新建模型 
    新建模型

点击“提交”后会立即跳转到“流程在线设计器”页面,请看下一章节

  • 在线流程设计器 
    在线办公流程管理模型管理模型管理编辑

  1. 整体流程图

这里写图片描述

  1. matter属性

这里写图片描述

  1. 开始结点

这里写图片描述

  1. 办公室审批结点

这里写图片描述

  1. 箭线-是

这里写图片描述

  1. 箭线-否

这里写图片描述

  1. 部门意见结点

这里写图片描述

  1. 个人处理结点

    这里写图片描述

  2. 事件完成

    这里写图片描述

2.1 设置流程属性

名称:流程定义名称 
描述:流程定义描述 
流程标识:流程定义KEY,对应procDefKey,用来标识一个流程 
2.2 拖拽形状元素 
Start event:开始事件 
End entit:结束事件 
User task:用户任务活动 
Service task:服务任务活动 
Exclusive gateway:排它网关通道,只能有一条分支执行,如if else 
Parallel gateway:并行网关通道,所有分支一块执行 
Enclusive gateway:包含网关通道,执行符合条件的分支 
参考:http://www.mossle.com/docs/activiti/#bpmnConstructs

2.3 流程发起人流程变量 
在开始节点的属性中设置“流程发起人”变量名:如:apply

这时,任务的参与者可设置${apply},来指定谁发起谁执行

如发起人发起流程,被驳回是,驳回到发起人,可使用方法。

2.4 挂接表单地址 
全局表单:新建流程时或活动元素上未设置表单标识时调用的表单,位于开始事件属性中“表单标识”字段,指定表单访问地址。 
活动表单:当前步骤使用的表单,使用活动节点属性“表单标识”字段。

2.5 设置参与者 
在活动节点属性中找到“参与者”属性,点击“…”弹出如下窗口

assignee:任务执行人,设置系统中的“登录名”(loginName)。 
candidateUsers:任务执行人,多个用逗号“,”隔开。 
candidateGroups:任务执行组,多个用逗号“,”隔开,设置系统中的“角色英文名(enname)”。 
assignee和candidateUsers的区别是:assignee不需要签收任务,直接可执行任务;candidateUsers为竞争方式分配任务,被指定人待办中都有一条任务,谁先签收谁就获得任务的执行权。 
参与者可指定流程变量(EL表达式),动态指定参与者,如:${processer}

2.6 设置流转条件 
在流转线的属性中找到“流转条件”,这里,写EL表达式,返回true或false,如:${flag == ‘1’}

2.7 保存流程设计图 
工具栏上点击“保存”按钮

这时,任务的参与者可设置${apply},来指定谁发起谁执行

如发起人发起流程,被驳回是,驳回到发起人,可使用方法。

2.8 注意事项 
所有编号,如:模型编号、流程编号、活动节点编号,都不允许以数字开头。

3 部署流程 
- 部署流程 
这里写图片描述

-启动流程 
这里写图片描述

-信息填报 
这里写图片描述

上步咱们学习了流程设计,产生流程设计图,如何将我们的图部署到系统中并使用呢,请看如下操作: 
在线办公流程管理模型管理模型管理部署 
接着系统会提示“部署成功”信息,如果提示错误,说明你流程设计图有问题,请检查错误,重新执行部署操作。 
另外两种部署方法,通过eclipse插件设计好的流程: 
在线办公-流程管理-流程管理-部署流程-选择流程.bpmn.xml 
编写并执行ant脚本,启动系统将自动部署 
/ jeesite/src/main/resources/act/build.xml。 
设置流程分类:在流程管理中直接点击流程分类进行设置。 
同一标识流程,部署多次,版本号自动加1 
正在运行的流程,再次部署新流程后,正在运行的流程还按照原来流程设置走,再次新建的流程使用新流程走。

  • 事件 填报页面
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ include file="/WEB-INF/views/include/taglib.jsp"%>
<html> <head> <title>事件</title> <meta name="decorator" content="default"/> <script type="text/javascript"> $(document).ready(function() { $("#name").focus(); $("#inputForm").validate({ submitHandler: function(form){ lmatterding('正在提交,请稍等...'); form.submit(); }, errorContainer: "#messageBox", errorPlacement: function(error, element) { $("#messageBox").text("输入有误,请先更正。"); if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){ error.appendTo(element.parent().parent()); } else { error.insertAfter(element); } } }); }); </script> </head> <body> <ul class="nav nav-tabs"> <li><a href="${ctx}/matter/mzMatter/">事件列表</a></li> <li class="active"><a href="${ctx}/matter/mzMatter/form?id=${mzMatter.id}"><shiro:hasPermission name="matter:mzMatter:edit">${not empty mzMatter.id?'修改':'填报'}事件</shiro:hasPermission><shiro:lacksPermission name="matter:mzMatter:edit">查看</shiro:lacksPermission></a></li> </ul> <form:form id="inputForm" modelAttribute="mzMatter" action="${ctx}/matter/mzMatter/save" method="post" class="form-horizontal"> <form:hidden path="id"/> <form:hidden path="act.taskId"/> <form:hidden path="act.taskName"/> <form:hidden path="act.taskDefKey"/> <form:hidden path="act.procInsId"/> <form:hidden path="act.procDefId"/> <form:hidden id="flag" path="act.flag"/> <sys:message content="${message}"/> <fieldset> <legend>事件填报</legend> <table class="table-form"> <tr> <td class="tit">名称</td><td> <form:input path="name" htmlEscape="false" maxlength="50"/> </td> <td class="tit">发生时间</td> <td colspan="2"><input name="happenDate" type="text" readonly="readonly" maxlength="20" class="input-medium Wdate " value="<fmt:formatDate value="${mzMatter.happenDate}" pattern="yyyy-MM-dd HH:mm:ss"/>" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:false});"/></td> </tr> <tr> <td class="tit">事件内容描述</td> <td colspan="5"> <form:textarea path="content" class="required" rows="5" maxlength="200" cssStyle="width:500px"/> </td> </tr> <tr> <td class="tit">类别</td> <td colspan="2"> <form:select path="category" class="input-xlarge "> <form:option 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值