继续上篇博客的介绍
举例说明JBPM帮我们做的工作:
其一:流程的调用工作,实现自动化且灵活化
说明:每完成一个任务后,将会自动执行下一个流程
对应的xml文件
<?xml version="1.0" encoding="UTF-8"?> <process name="ApplyDepartmentDecision" xmlns="http://jbpm.org/4.4/jpdl"> <start g="306,5,48,48" name="start1"> <transition g="-93,-22" name="to 申请学籍转办" to="申请学籍转办"/> </start> <end g="335,397,48,48" name="end1"/> <task g="268,102,144,59" name="申请学籍转办"> <transition g="-69,-22" name="to 班长审批" to="班长审批"/> </task> <task assignee="班长" g="302,192,92,52" name="班长审批"> <transition g="-69,-22" name="to 导员审批" to="导员审批"/> <transition g="-93,-22" name="to 教学秘书审批" to="教学秘书审批"/> </task> <task assignee="导员" g="240,299,92,52" name="导员审批"> <transition g="-50,-22" name="to end1" to="end1"/> </task> <task assignee="教学秘书" g="414,306,92,52" name="教学秘书审批"> <transition g="-50,-22" name="to end1" to="end1"/> </task> </process>
其二:对于流程管理中的数据维护
说明:对于工作流的流转过程中产生的数据,均由工作流自己维护的工作流库来管理
优点:所有的流转数据维护都由工作流自己维护,而且处理完的任务有相应的历史记录表,我们在查看时只需要跟jbpm封装的API打交道,而不需要管理相应的表,更加简化了我们的工作量
其三:业务与流程的解耦
说明:jbpm工作流流程独立,可以使用工具定义和建模,利于跟踪、监控、管理、调度、优化和重整,和业务操作松散耦合,日后需求变动但jbpm的封装代码几乎不用修改,很好的应对了变化。
对于一般流程的变化,我们要做的只是针对需要的流程,画出相应的工作流流程指派给相应的操作人员,然后部署到项目中,然后即可自动实现相应的流程管理
总结:
工作流是一项分离业务操作和系统流程的技术,也就是我们常常挂在嘴边的抽象,解耦。其实所有的高大上的技术,最基础的还是我们面向对象的一些思想!
以上只是简单介绍了JBPM给我们带来的一些操作上的便利,也只是一些最基础的认识,对于有异议的地方还望大家指出!JBPM的学习仍在继续!
下篇简单介绍一个JBPM实例!