欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > PPT文档下载  

    传智播客JBPM1Basicsnew.ppt

    • 资源ID:2299273       资源大小:251.51KB        全文页数:39页
    • 资源格式: PPT        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    传智播客JBPM1Basicsnew.ppt

    北京传智播客教育 www.itcast.cn,课程大纲,JBPM基本用法 工作流基本知识 JBPM基本用法 JBPM高级用法 各种类型节点的用法及应用场景 JBPM实现原理 系统架构和数据结构 基于JBPM的工作流应用平台开发 工作流应用平台介绍 设计和实现策略,北京传智播客教育 www.itcast.cn,基于jBPM的应用开发 基础知识,孙文举,北京传智播客教育 www.itcast.cn,内容,工作流基本知识 概念和术语 JBPM基本概况 jBPM中与工作流领域对应的概念 JBPM基本用法 基本API的用法以及应用策略 实例开发 实例编写一个报销审批流程的相关代码 课堂交流和答疑,北京传智播客教育 www.itcast.cn,jBPM介绍,jBPM是什么 是基于java实现的流程业务处理框架(Business Process Management) jBPM能做什么 支撑企业的流程性业务应用:解释业务规则,使得协作自动化 特点 没有采用WFMC的规范xPDL(尤其是业务定义部分) 强大的业务逻辑描述能力(jPDL) 核心组件是流程调度引擎 轻量级,core engine无须运行于JEEContainer 采用hibernate作为数据持久化的工具,兼容多种数据库 简单易用,灵活、可扩展,同一需求有多种解决策略,北京传智播客教育 www.itcast.cn,BPM VS Workflow,区别 Workflow更侧重于对流程的处理模型,属于技术领域范畴 BPM除了对流程的处理,还要提供灵活的编程模型,易于企业应用的集成,更侧重于业务范畴 用workflow替代BPM 我们在后面的课程中将以workflow名词为主,北京传智播客教育 www.itcast.cn,业务流程示例,示例: 参与者/活动/数据,北京传智播客教育 www.itcast.cn,工作流(系统)简介,什么是工作流? WFMC定义:The automation of a business process, in whole or part, during which documents, information or tasks are passed from one participant to another for action, according to a set of procedural rules. 要素:任务(task),参与者(participant ) 什么是工作流管理系统 WFMC定义:A system that defines, creates and manages the execution of workflows through the use of software, running on one or more workflow engines, which is able to interpret the process definition, interact with workflow participants and, where required, invoke the use of IT tools and applications. 要素:工作流的管理、工作流的调度执行、工作流引擎,北京传智播客教育 www.itcast.cn,为什么用工作流,工作流带来的益处 实现了无纸化的工作模式; 过程可监控:便于对执行过程的跟踪和监控 数据可管理:便于对数据进行检索、分析 可靠性:减少人-人交互的主观错误的机率 常见应用领域 行政管理:行政、事业单位、大中型(国有)企业 产品研发和制造:用于对整个研发、生产制造过程的管理和调度 电子商务:订单处理 其他 如大型内容管理系统的多步审核 常见场景 公文流转、行政审批、订单处理、产品研发、制造过程 其他需要多个角色协作、多步完成的活动,北京传智播客教育 www.itcast.cn,工作流系统核心模型,工作流引擎,工作列表,流程定义,解释定义,产生,业务数据库,持久化组件,北京传智播客教育 www.itcast.cn,模型说明,加载流程定义 定义工具可以系统提供,也可以只是读取定义结果 启动流程 启动选定的流程,创建流程实例 办理任务(流程的每一步) 执行流程的每个步骤(不一定都需要人参与:自动任务节点) 记录流程的状态 对状态的管理是工作流引擎的主要职责,北京传智播客教育 www.itcast.cn,工作流(系统)主要概念,流程定义:预先定义的业务流转逻辑 流程实例:业务的一次实际流转过程 参与者:任务的执行者 活动(任务):组成流程定义的节点 活动实例:组成流程实例的元素 流转:从一个节点到另一个节点这一行为 工作列表:当前需要办理的任务集合 工作流引擎:工作流的核心组件,对流程实例、任务实例以及其状态进行管理,北京传智播客教育 www.itcast.cn,我们已经介绍了工作流的基本知识 我们看看jBPM中与之对应的一些概念和名词,北京传智播客教育 www.itcast.cn,Jbpm套件的组成,jPDL Designer:流程定义设计器,流程建模工具 jPDL Library:流程执行引擎 WebConsole:参与者和流程执行环境的交互界面,流程运行期间的监控工具,北京传智播客教育 www.itcast.cn,工作流系统研究切入点,如何编写流程定义 如何部署流程 如何加载流程 如何启动流程 如何执行任务 如何完成任务,北京传智播客教育 www.itcast.cn,概念 : ProcessDefinition,定义了流程的业务逻辑,包含业务节点和流转。是有向图结构。,北京传智播客教育 www.itcast.cn,概念 : ProcessInstance,ProcessDefinition 执行期间的体现 包含了流程定义被解释之后的一些信息,诸如开始时间,结束时间 其他相关联的信息,北京传智播客教育 www.itcast.cn,概念 : Task TaskInstance,Task 是ProcessDefinition的组成部分,定义了活动的具体内容 TaskInstance Task被解释执行时的信息,开始时间,结束时间,参与者id create start end 三种状态,北京传智播客教育 www.itcast.cn,概念 : Actor,活动的参与者 jBPM目前只需要actor的Id,对actor的具体解释是由业务应用层负责 任务创建时可以指定任务的参与者,也可以不指定 在一般的系统中,不建议采用jBPM的identity组件,北京传智播客教育 www.itcast.cn,概念:Token,是一个指针(运行期的概念),代表着一条执行路径,指向当前流程中正在执行的节点 在实例的运行期间,tokens 可能是一树形结构 同一时刻,可能存在多个token,但是只有一个root token,北京传智播客教育 www.itcast.cn,我们已经介绍了jBPM的工作流主要元素 我们看看jBPM中与之对应的工作机制,北京传智播客教育 www.itcast.cn,jBPM API : 典型应用-流程定义部署,JbpmContext jbpmContext = JbpmConfiguration.getInstance().createJbpmContext(); GraphSession graphSession = jbpmContext.getGraphSession(); ProcessDefinition processDefinition = ProcessDefinition .parseXmlResource(“org/ministone/training/jbpm/processdefinition.xml“); /部署流程定义,如果已经存在同名的定义,则版本号会自动累加 graphSession. deployProcessDefinition(processDefinition); jbpmContext.close();,北京传智播客教育 www.itcast.cn,如何加载和开始流程,JbpmContext jbpmContext =JbpmConfiguration.getInstance.createJbpmContext(); GraphSession graphSession = jbpmContext.getGraphSession(); /加载流程定义 ProcessDefinition processDefinition = graphSession .loadProcessDefinition(processDefinitionId); / 创建流程实例:启动流程 ProcessInstance processInstance = new ProcessInstance(processDefinition); /此时,rootToken指向流程定义的第一个节点 jbpmContext.save(processInstance); jbpmContext.close();,北京传智播客教育 www.itcast.cn,如何给任务设置参与者 (最简单的方式),某一个任务固定由某人处理: “ ,北京传智播客教育 www.itcast.cn,如何给任务设置参与者,用变量传递参与者的ID 值一般在web层确定 定义配置: “ “ Handler 实现 public class UserIdAssignmentHandler implements AssignmentHandler public void assign(Assignable assignable, ExecutionContext executionContext) throws Exception String actorId = (String) executionContext.getVariable(“userId“); assignable.setActorId(actorId); ,北京传智播客教育 www.itcast.cn,如何获取工作列表,获取待办列表: JbpmContext jbpmContext = JbpmConfiguration.getInstance().createJbpmContext(); TaskMgmtSession taskMgmtSession = jbpmContext.getTaskMgmtSession(); /只能获取尚未完成的任务列表(待办任务) List list = taskMgmtSession.findTaskInstances(userId); jbpmContext.close(); 如果需要灵活的列表获取接口,需要直接使用hibernate session对象对数据库进行查询 诸如按时间、按流程、分页等附加要求,北京传智播客教育 www.itcast.cn,如何执行任务,典型代码: JbpmContext jbpmContext = JbpmConfiguration.getInstance().createJbpmContext(); TaskMgmtSession taskMgmtSession = jbpmContext.getTaskMgmtSession(); TaskInstance taskInstance = taskMgmtSession.loadTaskInstance(id); taskInstance.start(); jbpmContext.save(taskInstance); jbpmContext.close(); start()方法的调用 标识着一个任务的执行的开始:任务的开始时间会被填充 在实际业务中类似签收的作用 也可以带入参数(actorId)来主动参与任务的执行,北京传智播客教育 www.itcast.cn,如何结束任务,典型代码: JbpmContext jbpmContext = JbpmConfiguration.getInstance().createJbpmContext(); TaskMgmtSession taskMgmtSession = jbpmContext.getTaskMgmtSession(); TaskInstance taskInstance = taskMgmtSession.loadTaskInstance(id); taskInstance.end(); jbpmContext.save(taskInstance); jbpmContext.close(); end 方法的调用 当前任务实例的结束:任务的结束时间会被填充 下一个节点的初始化 当前任务的结束和下一个流程节点的开始是在一个事务内完成,从而保证了数据的完整性,北京传智播客教育 www.itcast.cn,如何设置(流程实例)变量,变量用来处理工作流相关数据 不需要定义 和流程实例信息一起被持久化 变量的访问和赋值是在某一个token上进行的,缺省时,是基于root Token 变量的作用域和所属的token的生命周期一致,分支上同名变量互不影响,和parent的同名变量也互不影响 典型代码: JbpmContext jbpmContext = JbpmConfiguration.getInstance().createJbpmContext(); GraphSession graphSession = jbpmContext.getGraphSession(); ProcessInstance processInstance = graphSession.loadProcessInstance(Long .parseLong(instanceId); ContextInstance contextInstance = processInstance.getContextInstance(); contextInstance.setVariable(vname, value);/设置到了rootToken jbpmContext.save (processInstance); jbpmContext.close();,北京传智播客教育 www.itcast.cn,jBPM API : JbpmContext(一),职责 对实例数据的操作 用于获取GraphSession对象; 主要方法 Connection getConnection() Session getSession() public GraphSession getGraphSession() public TaskMgmtSession getTaskMgmtSession() public LoggingSession getLoggingSession() public SchedulerSession getSchedulerSession() public void close(),北京传智播客教育 www.itcast.cn,jBPM API : JbpmContext(二),典型用法 JbpmContext jbpmContext = JbpmConfiguration.getInstance().createJbpmContext(); try TaskInstance taskInstance = . .do your process operations. jbpmContext.save(taskInstance); catch(Throwable) /process exception here finally jbpmContext.close(); ,北京传智播客教育 www.itcast.cn,jBPM API : JbpmContext(三), JbpmContextFilter org.jbpm.web.JbpmContextFilter JbpmContextFilter /wfapp/* ,web.xml配置,北京传智播客教育 www.itcast.cn,jBPM API : GraphSession,职责 Graph 相关的数据持久化操作 主要是ProcessDefinition和ProcessInstance 主要方法 public void saveProcessDefinition( ProcessDefinition processDefinition ) public ProcessDefinition loadProcessDefinition(long processDefinitionId) public ProcessDefinition findProcessDefinition(String name, int version) public List findAllProcessDefinitions() public void saveProcessInstance(ProcessInstance processInstance) public ProcessInstance loadProcessInstance(long processInstanceId) public List findProcessInstances(long processDefinitionId) Delete方法,北京传智播客教育 www.itcast.cn,jBPM API : TaskMgmtSession,职责 TaskInstance相关的数据查询操作 TaskInstance数据通过ProcessInstance进行保存 主要方法 public List findTaskInstances(String actorId) public List findPooledTaskInstances(String actorId) public List findTaskInstancesByToken(long tokenId) public TaskInstance loadTaskInstance(long taskInstanceId) 没有save方法,save是通过对processInstance的操作实现的,北京传智播客教育 www.itcast.cn,编程步骤总结,创建流程定义 部署流程定义 启动流程实例 获取任务列表 执行任务 结束任务,北京传智播客教育 www.itcast.cn,我们已经介绍了工作流的基本知识和jBPM的基本用法 接下来基于jBPM完成一个流程应用的实现,北京传智播客教育 www.itcast.cn,工作流应用一般开发步骤,分析业务流程、定义流程 部署流程定义 创建和启动流程实例 执行流程(任务),北京传智播客教育 www.itcast.cn,实例演示任务说明,任务 完成一个基于web的报销审批系统 需求简单描述 每个员工可以填写报销申请(申请人,申请日期,报销金额,报销类别) 500元的部门经理批示之后,需要送总经理审批之后再送财务审核 财务审核之后,通知申请人领款。 实现步骤 流程建模:对需求进行深入的分析,进行流程建模(可以现在纸上画草图),然后手工编写xml流程定义文件 业务数据建模:分析业务数据报销单,并对报销单进行建模 系统功能设计:规划需要完成的功能,北京传智播客教育 www.itcast.cn,一些tip,如果transition指向的node 不存在,当执行该节点时会出现NullPointerException 如果action和assignment等对应的class不存在,则在执行期间才会报错 一个场景: 在任何一步,都有可能流转到前面的某个节点,那么如何做到不用重新为下一步分配任务呢?,北京传智播客教育 www.itcast.cn,The End,有问题可以发邮件给我swenker126.com,

    注意事项

    本文(传智播客JBPM1Basicsnew.ppt)为本站会员(本田雅阁)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开