欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年Activiti工作流详解完整教 .pdf

    • 资源ID:33403032       资源大小:3.15MB        全文页数:38页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

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

    2022年Activiti工作流详解完整教 .pdf

    Activiti教程详解完整教程1.Activiti 介绍Activiti 是由 Alfresco 软件在 2010 年 5 月 17 日发布的业务流程管理(BPM)框架 ,它是覆盖了业务流程管理,工作流,服务协作等领域的一个开源,灵活的, 易扩展的可执行流程语言框架。Activiti 基于 Apache 许可的开源BPM平台, 创始人 Tom Baeyens是 JBoss JBPM 的项目架构师,它的特色是提供了eclipse 插件,开发人员可以通过插件直接绘画出业务流程图。1.1 工作流引擎ProcessEngine对象,这是Activiti 工作的核心。负责生成流程运行时的各种实例及数据,监控和管理流程的运行。1.2 BPMN 业务流程建模与标注(Business Process Model and Notation,BPMN ) ,描述流程的基本符号,包括这些图元如何组合成一个业务流程图(Business Process Diagram) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 38 页 - - - - - - - - - 2.准备环境2.1 Activiti软件环境1)JDK1.6或者更高版本2)支持的数据库有:h2,mysql,oracle,mysql,db2 等3)支持 Activiti 运行的 jar 包,可以通过maven 依赖引入4)开发环境为Eclipse3.7 或者以上版本,myeclipse 为 8.6 版本2.2 安装流程设计器(eclipse插件 ) 1)打开 Help Install New Software Add 输入Name: Activiti Designer Location: http:/Activiti.org/designer/update/ 输入完成后,单击OK按钮等待下载完成后安装。安装完成后在菜单选项中会出现Activiti 的目录选项名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 38 页 - - - - - - - - - 2.3 设置 eclipse activit插件的画流程图选项打开菜单 Windows - Preferences - Activiti -Save 下流程图片的生成方式勾选上 Create process definition image when saving the diagram 操作,勾选上这个操作后在画流程图后保存eclipse 会自动生成对应的流程图片。2.4 准备开发环境2.4.1 创建 maven web 项目,在 maven 中添加 Activiti 依赖在 eclipse 左边工作栏右键New 选择创建 Maven Project 项目,创建一个名为ActivitiTest 的项目名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 38 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 38 页 - - - - - - - - - 点击 Finish 完成。右键项目选择Properties,选择 Project Facets 勾选上图中的选项,点击Apply,再点击 OK 然后将项目转换成web 项目 ,右键项目选择Properties,在 Project Facets 中做如下勾选 ,然后点击 Appy 应用和 OK 确定名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 38 页 - - - - - - - - - 然后右键项目Properties , 选择 Deployment Assembly, 将 test 相关目录 Remove 掉之保留 main下面需要发布的内容,如下图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 38 页 - - - - - - - - - 然后点击Appply 和 OK 然后在 pom.xml 文件中添加以下依赖org.ActivitiActiviti-engine5.21.0 org.ActivitiActiviti-spring5.21.0 org.codehaus.groovygroovy-all2.4.3 org.slf4jslf4j-api1.7.6 org.slf4jslf4j-jdk141.7.6 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 38 页 - - - - - - - - - junitjunit3.8.1 test mysql mysql-connector-java5.1.38 然后在命令行下mvn compile 编译当前项目,将需要的包下载到本地仓库2.4.2 初始化数据库1)src/main/resource 目录下创建Activiti.cfg.xml文件 ,内容如下 jdbcUrl 为你电脑数据库的url jdbcUsername 为数据库用户名jdbcPassword 为数据库密码2)在 main/java 目录下创建任意目录和类编写创建 Activiti 数据表方法publicclass CreateTable /* * 创建流程表 * */Testpublicvoid createTable() ProcessEngine processEngine = ProcessEngineConfiguration.createProcessEngineConfigurationFromResource ( Activiti.cfg.xml) .buildProcessEngine(); System. out .println(-processEngine: + processEngine); 然后运行该测试方法,如果运行成功,在数据库中应该会产生25 张 Activiti的相关数据表名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 38 页 - - - - - - - - - 2.4.3 Activiti 表说明下面是概括了几个常用的数据表流程部署相关表act_re_deployement 部署对象表act_rep_procdef 流程定义表act_ge_bytearray 资源文件表act_ge_prperty 主键生成策略表(对于部署对象表的主键ID)流程实例相关表act_ru_execution 正在执行的执行对象表(包含执行对象ID 和流程实例ID,如果有多个线程可能流程实例ID 不一样)act_hi_procinst 流程实例历史表act_hi_actinst 存放历史所有完成的任务Task 任务相关表act_ru_task 代办任务表(只对应节点是UserTask的)act_hi_taskinst 代办任务历史表(只对应节点是UserTask的)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 38 页 - - - - - - - - - act_hi_actinst 所有节点活动历史表(对应流程的所有节点的活动历史,从开始节点一直到结束节点中间的所有节点的活动都会被记录)流程变量表act_ru_variable 正在执行的流程变量表act_hi_variable 流程变量历史表3.核心 API 3.1 ProcessEngine 说明 : 1) 在 Activiti 中最核心的类,其他的类都是由他而来。2) 产生方式ProcessEngine processEngine = ProcessEngines. getDefaultProcessEngine(); 3)可以产生RepositoryService RepositoryService repositoryService =processEngine.getRepositoryService(); 4) 可以产生RuntimeService RuntimeService runtimeService = processEngine.getRuntimeService(); 5) 可以产生TaskService TaskService taskService =processEngine.getTaskService(); 各个 Service 的作用RepositoryService 管理流程定义RuntimeService 执行管理,包括启动,推进,删除流程实例等操作TaskService 任务管理3.2 RepositoryService Activiti 的仓库服务类。所谓的仓库指流程定义文档的两个文件:bpmn 文件和流程图片该 service 可以用来删除部署的流程定义。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 38 页 - - - - - - - - - 3.3 RuntimeService 是 Activiti 的流程执行服务类,可以从这个服务类中获取很多关于流程执行的相关的信息。3.4 TaskService 是 Activiti 的任务服务类。可以从这个类中获取任务的相关信息,如当前正在执行的个人待办和用户组待办任务。3.5 HistoryService 是 Activiti 的查询历史信息的类,在一个流程执行完成后,这个对象为我们提供查询历史信息,可以跟踪流程实例对应所有待办节点的运行情况。3.6 ProcessDefinition 流程定义类,可以从这里获得资源文件等。3.7 ProcessInstance 代表流程定义的执行实例,当一个部署的流程图启动后,该流程只有一条流程实例数据,但是它的流程任务可以有多个,每个任务对应流程图中相应的流程节点。4.入门 HelloWorld程序4.1 创建流程图方法点击 ActivitiTest 项目,在src/main/java 目录下创建一个diagrams 目录用来存放流程图在当前项目右键选择Activiti Diagram 流程图输入流程图名称HelloWorld ,然后点击OK,名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 38 页 - - - - - - - - - 在控制面板的右边栏有相关的画图图标操作名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 38 页 - - - - - - - - - 其中一个流程必须包含一个开始节点和一个结束节点,结束节点可以有多个。然后使用StartEvent, UserTask,EndEvent 画出下面的流程图,然后用Connection中的SequenceFlow 连线连接起来。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 38 页 - - - - - - - - - 4.2 创建流程图,如下图4.3 指定流程图名称,ID 和 UserTask的处理人1)选中第一个节点,在General 中的 name 属性中输入当前节点的名称,在 Main config 中的Assignee 中输入该节点的处理人,然后以此类推将3 个节点的值设置完成。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 38 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 38 页 - - - - - - - - - ,2)然后在流程图旁边的空白出点击一下,输入流程的ID 和 Name 值,然后保存名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 38 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 38 页 - - - - - - - - - 4.4 将流程图部署到Activiti的数据表中启动完成后在act_re_deployment流程部署表和act_re_procdef 流程定义表中会有对应的数据信息 . 4.5 启动流程实例其中 runtimeService .startProcessInstanceByKey(HelloWorldKey );中的 HelloWorldKey 对应流程图中的 ID 值,在数据表中对应act_re_procdef 流程定义表中的key 字段名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 38 页 - - - - - - - - - 启动完流程后在act_ru_execution 表中会产生一条数据,这条数据为当前流程正在执行的任务,其中act_id_字段的值对应流程图节点的ID 值在act_ru_task表 中 会 产 生 一 条 任 务 数 据 ,execution_id_ 对 应act_ru_execution主 键 ,proc_inst_id_ 为流程实例ID,name_值为流程节点名称,assignee_字段为该待办当前的处理人4.6 查询待办任务指定查询张三的待办,可以查询出待办为第一个节点的处理任务。4.7 完成待办任务名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 38 页 - - - - - - - - - 其中 taskId 对应 act_ru_task 表的主键 ID,因为当前待办任务为第一个节点提交申请,当执行完这个待办后下一条待办数据将会流转到审批【部门经理】 那,然后以此类推可以将部门经理和总经理的待办任务全部查询和执行完成。5.查询和删除流程定义1)查询流程定义名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 21 页,共 38 页 - - - - - - - - - 2) 删除流程定义名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 22 页,共 38 页 - - - - - - - - - 6.流程变量操作6.1 设置流程变量1)设置流程变量有多种方式,可以在流程启动,和任务执行的时候设置a.启动流程的时候设置b. 通过 taskService 或者 runtimeService 设置名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 23 页,共 38 页 - - - - - - - - - 提示: 如果设置的流程变量值是一个对象类型,这个对象必须实现序列化Serializable操作 ,并且要为该对象类指定一个版本 ID 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 24 页,共 38 页 - - - - - - - - - 6.2 获取流程变量见工程操作7.流程连线在画流程图的时候可以对流程的连线设置表达式,然后在执行的时候设置流程变量值,然后Activiti 会根据对应的值走对应的节点名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 25 页,共 38 页 - - - - - - - - - 点击一条连线, 在 Main config 中的 Condition 属性值中设置 $message=同意 ,另外一条线设置为 $message=不同意 ,然后在代码中设置对应流程变量值。见工程操作名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 26 页,共 38 页 - - - - - - - - - 8.排他网关如下图 ,其中黑色的叉叉对应eclipse 画流程图图标中的ExclusiveGateWay图标然后对每条线的Condition 属性指定对应的表达式,然后在执行任务时候设置对应的流程变量名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 27 页,共 38 页 - - - - - - - - - Activiti 会根据变量的值来判断对应连线中的表达式走对应的流程节点路线。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 28 页,共 38 页 - - - - - - - - - 见工程操作9.并行网关十字图标对应图标中的ParallelGateway 并行网关不需要指定连线的表达式,当流程流转到并行任务时会出发多个任务,当多个任务完成后在会将流程流转到下一个节点见工程操作名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 29 页,共 38 页 - - - - - - - - - 10.个人任务的三种指定方式10.1 在 Assignee 中指定任务具体的处理人名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 30 页,共 38 页 - - - - - - - - - 10.2 在 Assignee 中指定任务的处理人或角色变量当指定Assignee 为一个变量值后需要在代码中设置对应的处理人,比如在启动的时候设置userId 的值名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 31 页,共 38 页 - - - - - - - - - 在工程中可以将起草人的处理变量设置为userId,审批人的处理变量设置为appUserId,然后通过业务模块和登录人来获取对应模块的审批人。10.3 为任务节点设置一个监听类来设置当前节点的处理人如果设置了监听类就不需要在设置Assignee的值1)创建一个监听器类,需要实现TaskListener接口2) 点击任务节点,选择Listener 选项卡,点击New ,将 Event 的值改为 create 然后选择创建的TaskListenerImpl 实现类名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 32 页,共 38 页 - - - - - - - - - 然后当任务到达该节点后Activiti 会触发监听实现类的notify 方法名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 33 页,共 38 页 - - - - - - - - - 11.组任务的三种指定方式11.1 在任务节点中设置Candidate user 候选人设置的候选处理人用英文输入法的逗号隔开,当任务到达该节点后,设置的候选人其中任何一个人都可以处理当前待办,处理完成后待办结束。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 34 页,共 38 页 - - - - - - - - - 11.2 在 Candidate user中设置一个变量作为处理人然后通过启动或者执行流程向下传递的时候设置该流程变量值名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 35 页,共 38 页 - - - - - - - - - 11.3 通过监听类来设置待办处理人如果设置了监听类就不需要在设置Assignee的值名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 36 页,共 38 页 - - - - - - - - - 和个人任务的监听类一样实现TaskListener接口,然后设置CandidateUser 的值名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 37 页,共 38 页 - - - - - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 38 页,共 38 页 - - - - - - - - -

    注意事项

    本文(2022年Activiti工作流详解完整教 .pdf)为本站会员(C****o)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

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




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开