InputStream is = java.util.Date.class.getResourceAsStream("Collection.class");
1 JBPM的子流程是怎么工作的?
没有做
2 B2C也是担保交易,支付宝压款是完全可以接受的。
3 在退款协议期可能会有死循环,所以要介入人工处理阶段。人工处理应该是数据库定时JOB,将超时的任务导出到到后台小二的job list,子流程处理也要返回两个结果,退或不退,来判断是否退款是否结束
4 JBPM的任务节点(task-node)
任务节点是一个需要人工参与的节点,当流程进入节点,会生成相应的任务实例(task instance),并通过实现某个委派接口AssignHandler或jBPM表达式将任务委派给参与者,在界面上,需要根据参与者角色生成某个按钮,参与者按了后,节点才会进入下一个流程。节点进入等待状态,知道任务被参与者完成或跳过,过程才会继续。
判定节点(decision)
判定节点的设计目标是根据上下文环境和程序逻辑来判定流程转向。通过指定的DecisionHandler接口的实现类或jBPM表达式,返回transition字符串名称。来决定流程的方向。
普通节点(node)
普通节点也可以处理定义的相应的处理任务,通过实现的ActionHandler的类。同任务节点不同的是,普通节点定义的任务是自动执行的,而不需要人工来点,比如通知消息。
可以定义成一个Node节点,在时间发生后,发Email或wangwang消息。或退款成功,通知支付宝按退款协议给双方打款,也可以做成一个Node节点。
5 Node,TaskNode,Decision上都可以挂接EventNode,
三种结点都可定义结点事件(event):
node-enter,该事件在流程进入结点时触发
node-leave,该事件在流程离开节点是触发
可以在事件上挂接ActioinHandler接口的实现类来完成一些特定的功能。
在EventNode中,写ActionHandler的实现类,从而自动完成一些任务,比如发邮件等任务。
6 NodeTask的具体定义,几个参数是什么意思?
比如General,Detail,Assignment,Controller,Reminder分别代表什么意思。
7 JPML中最常用的几个程序回调接口
动作处理接口ActionHandler,在需要evnet,antion的地方回调
interface ActionHandler{
void execute(ExecutionContext executionContext) throws Exception;
}
该接口通过执行上下文ExecutionContext来了解当前的状态,比如节点处的位置,买卖双方的信息等。
判定接口(DecisionHandler)
public interface DecisionHandler extends Serializable {
String decide(ExecutionContext executionContext) throws Exception;
}
会返回一个字符串,在这个节点,根据字符串,决定往哪个transision分支走。
委派处理接口(AssignmentHandler)
接口方法:void assign(Assignable assignable, ExecutionContext executionContext) throws Exception;
适用于TaskNode中新增的Task节点,对应的是Assignment的Tab,他的作用是将Task委派给指定的人员或角色。
委派处理接口被用户任务元素(task)的委派(assignment)子元素中,它的职责很明确,就是将任务分配给指定的人员或角色。
在AssignmentHandler接口的方法中,Assignable变量通常指任务实例(TaskInstance)。通过将ExecutionContext和TaskInstance两个变量都暴露给接口方法,用户就可以根据流程上下文情况,来决定要将指定的任务分配个谁。
作用于Node和作用于transision的handler虽然都是继承自同一个接口ActionHandler,但是Node的execute的方法内,必须执行executionContext.leaveNode来保证流程的向下执行,而transition不用使用这个方法。
8 一个TradeProcessConstans类,来包装所有字符串常量。
我们对Jbpm的封装
9 当流程开始的时候,创建流程常量。
protected void createProcessInstance(String user){ //生成实例 pi = pdf.createProcessInstance(); //设置流程发起人 pi.getContextInstance().createVariable("initiator", user); //触发流程转向 pi.signal(); //进入流程的第一个节点,会触发第一个Transision。 //新建一个ProcessInstance,会自动触发这步,但是,因为系统升级的过程中,有的流程是正在退款的过程中,所以,对这种流程要判断,并且要赋给它一个初始的状态。 }
当用户提交借款申请。
当经理审批通过,是经理在界面点击通过或不通过的按钮,业务层调用:
TaskInstance ti = pi.getTaskMgmtInstance().getInstance().iterator().next(); ti.end("部门经理审批通过");
如果如果点击不通过。
ti.end("部门经理审批不通过");
打印出TaskInstance所有的向下的支路.
List<Transistion> transitions = ti.getToken.getNode().getLeavingTransitions(); for(Transition t : transitions){ sysout(t.getName()); }
进入TaskNode节点,会自动回调TaskNode的Task节点的AssignHandler和ControllerHandler,决定流程如何向下一个节点流转。
10 executionContext.getContextInstance.getVarable();
可以把OrderID或外部ID,用户ID等放到varable中去,并持久化到数据库。
11 超时是应用层考虑还是数据库层考虑,这里放到一边。
设计的结果是应用层考虑超时。
12 借款的流程顺序。
第一个Transision,StartProcessActionHander
第二个回调:在提交支款申请里面,DepartmentManagerHandler
第三个回调:AssignmentHandler,进入部门经理审批流程,将这个审批任务分配给一个或一群人。调用这个Handler来调用:DepartmentManagerApproveAssignmentHandler来进行分配。
第4个回掉:ActionHandler的回调,在审批同意的Transition里回调
ManagerApprovedAction
第5个回调,在部门经理审批同意后,看金额是否大于6000,决定是否上调给总经理审批。
如果小于5000,自动执行小于5000的Transition,在DecideNode,不需要等待,直接执行。执行"<5000 财务拨款"Transition,进入下一个Node"财务拨款"。
问题,在这个过程中,如果保证事务,如果一个节点失败了,是否要进行回滚,和如何进行回滚,JBPM有机制来保证这个过程吗?
第6个回调,流转到"财务拨款",财务拨款是个Node,系统自动调用,而不需要人工参与。
Node和TaskNode中的Action不同的是,NodeAction的execute最后必须调用
/* * 这句别漏了,否则流程不会向下走哒 */ executionContext.leaveNode();
不然,流程不会向走。
第7个回调,Trasition流转到邮件通知这步,流转调用SendMailActionHandler,,其实邮件通知可以在BenforeNode和LeaveNode里面用Event来做,也是一种方法。
13 ProcessDefinition
--ProcessInstance
----TaskInstance
------Token
--------Node
----------Transition
14 JbpmContext的用处。
15 怎么在Jbpm中使用单元测试。
16 怎么在mysql指定的数据库上创建一个用户名密码,并且把所有或部分的权限赋给他。
17 部署Jbpm
调用ProcessDefinition,将其在内存中生成,并部署到MySql中去。
18 class.getResourceAsStream 是以当前目录为基础,得到InputStream.
可以用
InputStream is = java.util.Date.class.getResourceAsStream("Collection.class");
得到了InputStream就可以用ClassLoad将类重新载入内存了。
19 怎么得到ClassPath的路径,实际上,需要的是类路径上的配置文件。
Class.getResourceAsStream("/log4j.properties"); Class.getClassLoader.getResourceAsStream("log4j.properties");
20 使用EmEditor的技巧。
怎么在每一行某位加一个";",比如在数据库脚本?
查找(^[^--]*$) 表示所有不以--开头的行,用()将他们括起来,是为了back reference(向后引用),将他们替换成\0;表示将前面查到的所有都替换,并且在末尾加一个;
怎么删除空行?
查找^[ \t]*$\r\n,并将他们替换为空.
发表评论
-
为什么我们要写单元测试?
2009-05-07 00:56 1291今天下午下班前,退款流程改造项目,前台的开发人 ... -
自定义Maven Package 类型
2008-09-27 00:30 14870问题提出 pom.xml中的<packagi ... -
交易中心810问题
2008-08-13 22:11 11281 使用sftp上传或下载文 ... -
交易三期808问题
2008-08-13 21:51 14011 XiaoerTransferMoeny,少加了一个out_ ... -
交易中心626问题
2008-07-02 01:50 16011 Facade->Service->Manage ... -
交易三期619任务
2008-07-02 01:40 2127this.executeQueryForObject(&quo ... -
研究JBPM的用法
2008-06-22 15:23 15841 将JBPM的配置文件打包 ... -
交易中心610的问题
2008-06-14 15:41 11111 Mysql 如何将访问mysql的sql语句输出到一个文件 ... -
Ebay的可伸缩性架构
2008-06-09 20:59 10811 Maven的原理和API 2 毕玄推荐的两本书。 计算 ... -
用户中心602问题
2008-06-02 21:06 14221 写单元测试,模拟用户中心可能发生的各种情况,比如,数据库挂 ... -
用户中心601问题-2
2008-06-01 22:04 11721 怎么把svn-base从Open Reso ... -
用户中心601问题
2008-06-01 13:40 9861 关于线程同步 线程调 ... -
用户中心531问题
2008-06-01 13:19 10511 定时器Timer,TimerTask,Timer的内部实现 ... -
用户中心528问题
2008-06-01 13:15 15321 能够从UIC中学习什么。 怎么按功能在Eclipse里面把 ... -
用户中心526问题
2008-06-01 13:02 189314 Runtime.getRuntime().addShut ...
相关推荐
在jPDL中,与流程设计相关的文件有三个:processdefinition.xml、gdp.xml、processimage.jpg。其中processdefinition.xml是流程定义的描述文件;gpd.xml是对图形界面呈现的XML描述;而 processimage.jpg则是对图形...
【jbmp3.0.13】是一款基于Java的工作流管理插件,它在实际应用中表现出优秀的稳定性和...同时,通过持续学习和实践,掌握jbmp的工作原理和最佳实践,将能更好地利用这一强大的工作流工具,提升企业的业务流程管理效率。
jbmp用户指南(工作流) ...总之,jbmp作为一款强大的工作流引擎,为企业提供了便捷的业务流程管理手段,通过学习和掌握jbmp,开发者可以构建出更加灵活、智能的业务系统,提升企业的运营效率和管理水平。
学习并实践这个入门实例,你将能够掌握JBMP的基本用法,为进一步深入研究和应用业务流程管理打下坚实的基础。通过不断地练习和应用,你将能够灵活地利用JBMP解决实际工作中的流程自动化问题,提升企业的业务效率。
jbpm作为一款强大的工作流引擎,不仅简化了业务流程的管理,还提供了丰富的开发工具和示例,降低了学习曲线。通过理解其核心概念和实践开发,开发者可以构建出符合业务需求的高效工作流系统。在实际项目中,应根据...
JBMP 5.3 版本是JBoss工作流管理系统的一个重要里程碑,它带来了许多增强功能和优化。这个开发手册将帮助开发者深入了解如何在JBoss环境中集成和使用JBM进行业务流程的管理和实现。 1. **JBM5.3.chm** - 这个CHM...
本教程将深入探讨jBMP的核心概念,包括流程定义语言、业务日历以及流程建模,帮助初学者快速入门。 一、jBPM流程定义语言 jBPM采用的是BPMN 2.0(Business Process Model and Notation)标准,这是一种图形化的流程...
JBMP(Java Business Management Process)是Java业务流程管理的一种实现,它提供了一套框架用于定义、执行和监控业务流程。本文档将深入介绍JBPM5.1版本,帮助读者从入门到掌握其核心功能。 1. 简介 JBPM是开源的 ...
8. **优点**:使用插件的好处在于集成开发环境中的一站式服务,避免了在不同工具间切换的麻烦,提升了开发效率,同时通过图形化的界面,降低了学习和使用EJB及JBMP的难度。 综上所述,"myeclipse6.0的jbmp插件"是一...
标题中的"oa.rar_OA文档_SSH JBMP_jbmp oa_oa_oa ssh"表明这是一个与OA...学习和研究这个压缩包,不仅可以深入了解SSH和JBMP在OA系统中的应用,还能掌握Java Web开发的实践技巧,以及如何管理和优化企业的工作流程。
JBPM工作流笔记,自己做的一些笔记,JBMP初学
关于JBoss JBMP-java工作流用户开发手册
这是web-jbpm的开发框架,布署到tomcat里面用,只要生成一个mysql的jbpm数据库执行mysql.create.sql, 实现了上传流程定义文件.可以数据库中查看 里面的架包是jbpm-starters-kit-3.1.4\jbpm.3\lib下面的所有包;...
【标题】"chen-jbpm_websale.zip_jbmp_jbmp_java_jbpm_jbpm_websale_网上销售系统" 提供的是一个基于JBPM(Java Business Process Management)技术的网上销售系统的示例项目。JBPM是一个开源的工作流管理系统,它...
【SSH整合与JBMP4详解】 SSH(Spring、Struts、Hibernate)是Java Web开发中的经典框架组合,用于构建高效、可维护的企业级应用程序。在这个整合中,Spring作为整体架构的控制层,负责依赖注入和业务流程管理;...
jbmp part 3 total 108 for java develop tools
jbmp part 2 total 108 for java develop tools
jbPM,全称Java Business Process Management,是一种开源的工作流和业务流程管理(BPM)框架,广泛应用于构建可扩展和灵活的业务应用。该框架支持BPMN2.0标准,提供了丰富的功能来帮助开发者设计、执行和监控业务...
通过本文档的学习,相信读者已经对jBPM有了较为全面的认识。jBPM不仅提供了强大的工作流管理功能,还支持灵活的定制化需求。对于希望改善内部业务流程的企业来说,jBPM无疑是一个值得考虑的选择。未来随着技术的不断...
学习工作流和JBMP,你需要理解如何设计和定义业务流程,例如使用流程图表示活动、决策和流程分支;了解如何使用JBPM的工具创建和部署流程定义;熟悉任务分配和审批机制;并掌握监控和分析流程执行情况的方法,以便...