这些都被传智播客封装了的例子。。我只是抄下来而已
使用:
deployProcessDefinition.jsp
JbpmContext jbpmContext = JbpmConfiguration.getInstance().createJbpmContext();
DiskFileUpload fileUpload = new DiskFileUpload();
List list = fileUpload.parseRequest(request);
Iterator iterator = list.iterator();
FileItem fileItem = (FileItem)iterator.next();
if(fileItem.getContentType().indexOf("application/x-zip-compressed") == -1){
throw new Exception("Only zip format is accepted!");
}
try{
WorkflowEngine workflowEngine = ServiceLocator.getWorkflowEngine()
String pdname = workflowEngine.deployProcessDefinition(fileItem.getInputStream(),null);
out.println("流程定义部署成功:"+pdname);
}catch(Exception e){
}
jbpmContext.close();
--------------------------------------------------------------------------------
saveQingjiaForm.jsp //注意,先填写请假表单,然后就到这个页面
//这个页面有两个功能,一个是提交给下一个人,一个只是单独保存,而不提交
QingjiaForm qingjiaForm = new QingjiaForm();
qingjiaForm.setApplier((String)session.getAttribute("actorId"));
qingjiaForm.setNday(Integer.parseInt(ndays));
qingjiaForm.setReason(reason);
if("commit".equals(actionType)){
qingjiaForm.setState(QingjiaForm.SENT);
}else{
qingjiaForm.setState(QingjiaForm.INITIAL);
}
JbpmContext jbpmContext = JbpmConfiguration.getInstance().getCurrentJbpmContext();
jbpmContext.getSession().save(qingjiaForm) ; //先把这个表单放到自己的数据库中
if("commit".equals(actionType)){ //如果是提交,那么需要启动工作流引擎
WorkflowEngine workflowEngine = ServiceLocator.getWorkflowEngine();
Map varMap = new HashMap();
varMap.put("infoid",qingjiaForm.getId());
//因为是请假,那么流程定义的名字肯定是知道的,这里就叫做qingjia
//第二个是提交给谁,这个因为在表单填写的时候由用户指定,当然也是传过来的
//String pdname,String starter,String version,Map varMap
workflowEngine.startProcess("qingjia",(String)session.getAttribute("actorId"),varMap);
}
--------listTaskInstances.jsp-->openTask.jsp--------------------------------------------------------
JbpmContext jbpmContext = JbpmConfiguration.getInstance().getCurrentJbpmContext();
Session session = jbpmContext.getSession();
Criteria rootCriteria = session.createCriteria(TaskInstance.class);
String pdname = request.getParameter("pdname");
String actorId = request.getParameter("actorId");
String tname = request.getParameter("tname");
String tstate = request.getParameter("tstate");
WorkflowEngine workflowEngine = ServiceLocator.getWorkflowEngine();
WorkitemCriteria workitemCriteria = new WorkitemCriteria();
workitemCriteria.setPdname(pdnane);
workitemCriteria.setTname(tname);
workitemCriteria.setActorId((String)session.getAttribute("actorId"));
String pageNum = request.getParameter("pageNum");
pageNum = pageNum == null || pageNum.equals("")?"0":pageNum;
int everyPage = workitemCriteria.getNeveryPage();
int target = Integer.parseInt(pageNum);
int startNum = targetPage * everyPage;
workitemCriteria.setStart(startNum);
workitemCriteria.setStatus(tstate);
PagedObject po = workflowEngine.getWorklist(workitemCriteria);
pageContext.setAttribute("list",po.getResult());
<c:forEach items="${list}" var="ti">
<a href="<c:url value="/sysadmin/openTask.jsp?tiid=${ti.id}" />"><c:out value="ti.name" /></a>
</c:forEach>
--------------------------------------------------------------------
OpenTask.jsp 对应办理任务
String tiid = request.getParameter("tiid");
WorkflowEngine workflowEngine.takeWorkitem(null,tiid);
pageContext.forward(view+"?tiid="+tiid);
------------------------------------------------
auditQingjiaForm.jsp --->endTask.jsp
Long tiid = Long.parseLong(request.getParameter("tiid"));
JbpmContext jbpmContext = JbpmConfiguration.getInstance().getCurrentJbpmContext();
TaskInstance ti = jbpmContext.loadTaskInstance(tiid);
pageContext.setAttribute("tokenId",ti.getToken().getId());
Long infoid = (Long)ti.getProcessInstance().getContextInstance().getVariable("infoid");
QingjiaForm qingjiaForm = (QingjiaForm)jbpmContext.getSession().get(QingjiaForm.class,infoid);
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
...有些请假的信息
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
<input type="hidden" name="tiid" value="<%=tiid%>" />
List list = ti.getTask().getTaskNode().getLeavingTransitions();
pageContext.setAttribute("nextTrans",list);
if(list.size()>1){
<select name="nextPath">
<c:forEach items="${nextTrans}" var="nextTran" varStatus="s">
<option value="<c:out value="${nextTran.name}"/>"><c:out value="${nextTran.name}"/></option>
</c:forEach>
</select>
}
<input type="submit" value="提交任务" />
----------------------------------------------
endTask.jsp
String tiid = request.getParameter("tiid");
String transitionName = request.getParameter("nextPath");
String actorId = request.getParameter("actorId");
ti.getProcessInstance().getContextInstance().setVariable("currentUser",session.getAttribute("actorId"));
WorkflowEngine workflowEngine = ServiceLocator.getWorkflowEngine();
workflowEngine.completeWorkitem(tiid,new NextStep(transitionName.actorId));
分享到:
相关推荐
根据给定的文件信息,我们可以总结出以下关于“Spring-Jbpm-JSF-Example”的关键IT知识点: ### 1. **项目概述** 标题与描述提到的“Spring-Jbpm-JSF-Example.pdf”是一个示例项目,展示了如何将Spring框架、Jbpm...
2017年jBPM 正式发布了全新的 7版本。jBPM 是一个完全开源的业务流程管理(BPM)和案例管理解决方案。它支持流程和案例的完整生命周期,从编写工具到执行一直到监控和管理。 在核心引擎之上,提供了许多功能和工具来...
jBPM Services REST项目该项目的目的是展示如何轻松地将jBPM服务api(带有ejb实现)用于在Java EE应用程序中嵌入jBPM。去做说明必要的组件(持久性单元,用户组回调机制) 我们是否需要此项目中的自定义回调或仅需要...
示例 JBPM 测试工具该项目旨在提供一个简单的示例,展示 JBPM 和 BPM 套件安装中提供的 jbpm-test 项目中可用的完整测试功能。扩展 BaseBPMNTest 这个类是测试工具的核心。 它充当一个简单的父级,为每个测试初始化...
- 运行 `ant load.example.identities` 命令来加载示例用户和用户组数据到 MySQL 数据库。 - **测试**: - 启动 Tomcat 服务器。 - 在浏览器中访问 `http://localhost:8080/jbpm-console`,如果页面正常显示,则...
"embedding-jbpm-forms-example" 是一个项目名称,它专注于演示如何在客户端应用程序中集成和使用 jBPM(JBoss Business Process Management)的表单功能。jBPM 是一个开源的工作流和业务流程管理平台,它允许开发者...
- `ant load.example.identities` - `ant start.tomcat` 这些命令会完成JBPM的部署,启动数据库服务,创建JBPM所需的数据库架构,安装示例项目,并启动Tomcat服务器。 最后,验证JBPM的安装: 1. **访问控制台*...
http://www.mastertheboss.com/jbpm5/jbpm-5-tutorial-first-example 一般不会的问题,从官方找就行,但上面说的也不详细,结果搞了一天也没通,后来把条件直接换成 true就行了,也不用什么return money>1000了。 ...
### jbpm4.2开发知识点概述 #### 一、jbpm简介 - **定义与特点**:jbpm(Java Business Process Model)是一个开源的工作流引擎,用于自动化业务流程的执行。它提供了一种灵活的方式来定义复杂的业务流程,并通过...
这个"osworkflow-example-demo.rar"是一个示例项目,包含了OSWorkflow的源代码和一个经典的实例,适用于初学者学习和理解工作流管理系统的工作原理。由于不包含数据库和流程设计器,因此可能需要用户自行配置和设计...
jbpm学习笔记主要涵盖了jbpm(Java Business Process Management)的多个方面,包括Signavio的使用和配置、jBPM数据库的安装、Graphical ...同时,通过阅读和分析example项目,可以更好地理解和应用jBPM的实际操作。
根据提供的文件信息,我们可以深入探讨jbpm jpdl帮助文档中的关键知识点。该文档主要围绕jBPM(一款开源的工作流引擎)以及其图形化过程设计语言jpdl进行介绍。接下来,我们将按照文档的大纲顺序来解析各个部分所...
【jbpm jar java】——深入理解jbpm与Java的整合应用 jbpm,全称是JBoss Business Process Management,是一款开源的工作流管理系统,主要用于处理业务流程的建模、执行和监控。jbpm的设计目标是提供一个灵活且强大...
把JBoss安装到${jbpm.home}/jboss-5.0.0... 从${jbpm.home}/install/src/demo/example.identities.sql,读取用户和组。 安装eclipse到${jbpm.home}/eclipse 启动eclipse 安装jBPM web控制台 安装Signavio web建模器
<assignment handler="com.example.ManagerAssignment" /> </task-state> <!-- 更多任务和状态定义 --> ``` 3.2 配置流程启动与监听 在Struts或Spring MVC中,配置流程的启动方法,比如在提交请假申请时启动...
- `ant load.example.identities`:加载示例用户和用户组数据到MySQL数据库。 - `ant install.signavio.into.tomcat`:将Signavio模型设计器安装到Tomcat。 - `ant install.eclipse`:解压`JBPM_HOME\install\...