Activiti6.0工作流使用说明文档V1.0

合集下载

Activiti 6.0 数据库表结构

Activiti 6.0 数据库表结构

Activiti数据表结构目录1ACTIVITI数据库表结构 ----------------------------------------------------------------------------------------------- 21.1数据库表名说明 ------------------------------------------------------------------------------------------------ 21.2数据库表结构---------------------------------------------------------------------------------------------------- 31.3A CTIVITI数据表清单: ------------------------------------------------------------------------------------------------ 41.3.1ACT_EVT_LOG(事件日志) ---------------------------------------------------------------------------- 41.3.2ACT_GE_BYTEARRAY (通用的流程定义和流程资源) --------------------------------------- 41.3.3ACT_GE_PROPERTY (系统相关属性)------------------------------------------------------------- 51.3.4ACT_HI_ACTINST (历史节点表)-------------------------------------------------------------------- 51.3.5ACT_HI_COMMENT (历史审批意见表) --------------------------------------------------------- 61.3.6ACT_HI_DETAIL (历史详细信息) ------------------------------------------------------------------ 71.3.7ACT_HI_IDENTITYLINK (历史流程人员表)------------------------------------------------------ 81.3.8ACT_HI_PROCINST(历史流程实例信息)核心表 ----------------------------------------------- 81.3.9ACT_HI_TASKINST(历史任务流程实例信息)核心表 ----------------------------------------- 91.3.10ACT_HI_VARINST(历史变量信息)---------------------------------------------------------------- 101.3.11ACT_ID_GROUP(用户组表) -------------------------------------------------------------------- 101.3.12ACT_ID_INFO (用户扩展信息表)---------------------------------------------------------------- 111.3.13ACT_ID_MEMBERSHIP(用户用户组关联表) ---------------------------------------------- 111.3.14ACT_ID_USER(用户信息表)------------------------------------------------------------------------ 121.3.15ACT_PROCDEF_INFO(流程定义信息)----------------------------------------------------------- 121.3.16ACT_RE_DEPLOYMENT(部署信息表) ----------------------------------------------------------- 121.3.17ACT_RE_MODEL (流程设计模型表) ----------------------------------------------------------------- 131.3.18ACT_RE_PROCDEF (流程定义:解析表)------------------------------------------------------ 141.3.19ACT_RU_DEADLETTER_JOB(无法执行工作表)----------------------------------------------- 151.3.20ACT_RU_EVENT_SUBSCR (运行时事件) ------------------------------------------------------------ 161.3.21ACT_RU_EXECUTION (运行时流程执行实例) ------------------------------------------- 161.3.22ACT_RU_IDENTITYLINK(身份联系) -------------------------------------------------------------- 171.3.23ACT_RU_JOB(运行中的任务) --------------------------------------------------------------------- 181.3.24ACT_RU_SUSPENDED_JOB(暂停表) ------------------------------------------------------------- 181.3.25ACT_RU_TASK(运行时任务数据表) ----------------------------------------------------------------- 191.3.26ACT_RU_TIMER_JOB(定时器表) ----------------------------------------------------------------- 201.3.27ACT_RU_VARIABLE(运行时流程变量数据表) ---------------------------------------------------- 20 2ACTIVITI中主要对象的关系 -------------------------------------------------------------------------------------- 211Activiti数据库表结构1.1数据库表名说明Activiti工作流总共包含28张数据表,所有的表名默认以“ACT_”开头。

泛微OA-V6.0操作手册

泛微OA-V6.0操作手册

泛微协同办公OA系统e-officeV6.0从入门到精通操作教程版权说明本手册以及相关的计算机软件程序仅用于为泛微协同管理平台最终用户提供信息,上海泛微软件有限公司有权。

本手册是上海泛微软件有限公司的专有信息,并受中华人民共和国版权法和国际公约的保护。

未得到上海泛微软件有限公司明确的书面许可,不得为任何目的、以任何形式或手段辅助或传播本手册的任何部分内容。

本手册内容若有变动,恕不另行通知。

本手册中例子中所引用的公司、人名和数据若非特殊说明,均属虚构。

本手册以及本手册所提及的任何产品的使用均受适应的最终用户许可协议限制。

本手册由上海泛微软件有限公司制作。

本手册中提及的所有商标、商标名称、服务标志及徽标均归其各自公司所有。

序言初始化的系统空空如也,很可能让你觉得无从下手。

通过阅读《e-officeV6.0 081115使用手册》将帮助您在1个小时之内快速搭建自己公司的办公系统以及学习系统的日常维护。

首先下载安装e-office系统,注意安装的系统地址目录必须为“根目录”下面,并且不能是中文目录(例如:D:\eoffice)。

否则系统无法登录。

进入登陆界面,系统默认登陆账号为“admin”无密码。

只需要直接点击登陆即可。

这里会出现几个常见的系统安装问题,在此例举出来:1.系统安装后,登陆界面不能显示。

这个情况主要是您的电脑配置问题,并不是软件有问题。

一般自己解决的方案:第一步,检查电脑的IE浏览器是否为6.0以上版本,如果您的浏览器版本太老,建议您去微软的网站上升级一下。

2.如果浏览器版本没有问题,出现的症状为“系统安装完后进不了OA系统,输入地址IE窗口会自动关闭”那么可以肯定是电脑中有自带的“拦截功能”。

这是因为拦截软件拦截了登陆窗口,请删除拦截软件或关闭拦截软件的弹出窗口拦截功能。

3.如果安装后,进不了OA系统,在IE中提示“找不到页面”,那么e-office系统端口可能与IIS冲突,建议换一个端口如81/8080/8082……试试看。

activiti6官方示例笔记

activiti6官方示例笔记

activiti6官⽅⽰例笔记概述要想学习activiti⼯作流, ⼊门便是学习官⽅的⽰例。

下边我将基于官⽅的 demo 做⼀遍流程,考虑⾃⼰的业务该如何基于activiti设计逻辑。

⼯作流要素:流程表单⽤户有了以上 3 ⼤要素,流程便可以流转。

表单绑定在流程节点上,⽤来输⼊当前流程信息⽤户绑定在流程节点上,⽤来处理当前流程任务下载安装⾸先到下载 activiti6.0.0。

对activiti7感兴趣的可以看然后将 war 包置于tomcat/webapps⽬录下,启动 tomcat 即可。

应⽤说明地址帐号/密码activiti-app流程、表单、⽤户、发布、任务...admin/testactiviti-admin平台管理查看流程平台运⾏详情admin/adminactiviti-rest rest-api 接⼝应⽤kermit/kermit应⽤说明地址帐号/密码⽤户管理登录Kickstart App:主要⽤于流程模型管理、表单管理及应⽤(App)管理,⼀个应⽤可以包含多个流程模型,应⽤可发布给其他⽤户使⽤。

Task App:⽤于管理整个 activiti-app 的任务,在该功能⾥⾯也可以启动流程Idenity management:⾝份信息管理,可以管理⽤户、⽤户组等数据创建⽤户创建过程如下,注意 id 即是登录帐号。

依次分别创建 3 个帐号⽤户审批流程。

流程定义在主界⾯点击Kickstart App进⼊流程定义页⾯。

上图中模拟了⼀个请假流程,但是流程的执⾏需要⼈来参与,所以下边我们进⾏流程和帐号绑定。

选定流程节点后点击Assignment属性,会有弹窗进⾏绑定。

同理,将其他节点进⾏绑定。

然后保存关闭即可,可以看到⼀个流程已创建完毕。

动态表单之前的都是基本演⽰,假设我们需要复杂的表单,那么可以在流程节点上绑定表单即可,这⾥做下动态表单的基本演⽰。

1. 选中流程节点,编辑Referenced form, 动态创建节点关联表单。

《Activiti6.0工作流引擎深度解析与实战》笔记

《Activiti6.0工作流引擎深度解析与实战》笔记

《Activiti6.0⼯作流引擎深度解析与实战》笔记1.1 课程导学--- 什么是⼯作流引擎?是⽤来驱动业务按照流程图逐步流转的核⼼框架。

--- 为什么学习⼯作流引擎?早期:企业OA、CRM、流程审批现在:电商购物、⾦融出⾏、中台⽀撑--- Activiti6.0流程引擎配置--- 核⼼API--- 数据模型设计--- BPMN2.0规范--- BPMN2.0元素2.1 本章概述⼯作流⼊门:⼯作流介绍、⼯作流技术选型、Activiti6.0快速体验。

2.2 ⼯作流介绍⼯作流是什么?为什么学习⼯作流?如何去学习⼯作流?1、审批业务场景(如请假,有⼀系列步骤)2、审批流程模型化(抽象出⼀系列流程图模型)“开始节点”(开始StartEvent)->填写审批信息的“⽤户节点”->通过“流程判断”(排他⽹关Exclusive Gateway)可以流转到“主管审批”(任务UserTask)->...->“结束节点”(结束EndEvent)3、常见的⽹上购物流程4、购物⼯作流程模型化有3个参与者,“电商购物流程”是泳池Pool,“仓储物流”等是泳道Line,“检验库存”是服务任务ServiceTask(服务任务是指不是由⼈⼯操作,⽽是由系统⾃动完成实现的逻辑)。

5、⼯作流是什么6、为什么需要⼯作流2.3 ⼯作流引擎技术选型2.4 Activiti6.0快速体验--部署环境介绍默认的⽤户名和密码是:admin和test2.5 Activiti6.0快速体验--部署环境实操win10下打开Cygwin,进⾏如下操作:1、curl -s "http://get.sdkman.io" | bash报错:Looking for a previous installation of SDKMAN...Looking for unzip...Looking for zip...Not found.Please install zip on your system using your favourite package manager.参考:https:///IOIO_/article/details/84946257解决⽅法是重新点击cygwin的安装包,把zip的package安装⼀遍,重启cygwin,再输⼊⼀遍这个命令即可。

Activiti6.0教程28张表解析

Activiti6.0教程28张表解析

Activiti6.0教程28张表解析使⽤Activit的朋友都知道Activiti对应的有28张表,今天我们就来说下Activit中28张表对应的含义是什么?如何创建表?在Activiti中创建表有三种⽅式,我们依次来看下:⼀、通过硬编码的形式直接指定// 创建⼀个流程成引擎对像ProcessEngineConfiguration processEngineConfiguration = ProcessEngineConfiguration.createStandaloneInMemProcessEngineConfiguration();// 设置数据库连接信息processEngineConfiguration.setJdbcDriver("com.mysql.jdbc.Driver");processEngineConfiguration.setJdbcUrl("jdbc:mysql://localhost:3306/db_activiti");processEngineConfiguration.setJdbcUsername("root");processEngineConfiguration.setJdbcPassword("");processEngineConfiguration.setDatabaseType("mysql");processEngineConfiguration.setDatabaseSchemaUpdate("update");// 设置⾃动创建表processEngineConfiguration.setDatabaseSchemaUpdate("true");// 在创建引擎对象的时候⾃动创建表ProcessEngine processEngine = processEngineConfiguration.buildProcessEngine();⼆、通过activit.cfg.xml配置⽂件<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/schema/beans /schema/beans/spring-beans.xsd"> <bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration"><property name="jdbcUrl" value="jdbc:mysql://localhost:3306/db_activiti?characterEncoding=utf8" /><property name="jdbcDriver" value="com.mysql.jdbc.Driver" /><property name="jdbcUsername" value="root" /><property name="jdbcPassword" value="" /><property name="databaseSchemaUpdate" value="true" /><property name="databaseType" value="mysql"></property></bean></beans>ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();三、使⽤配置⽂件,在资源⽬录下创建activiti-context.xml<!-- 创建流程引擎配置对象 --><bean id="ProcessEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneInMemProcessEngineConfiguration"><property name="jdbcDriver" value="com.mysql.jdbc.Driver"/><property name="jdbcUrl" value="jdbc:mysql://localhost:3306/db_activiti" /><property name="jdbcUsername" value="root" /><property name="jdbcPassword" value="" /><property name="databaseSchemaUpdate" value="true" /></bean>代码⾥边读取加载配置⽂件String resource = "activiti-context.xml";String beanName = "ProcessEngineConfiguration";ProcessEngineConfiguration cf = ProcessEngineConfiguration.createProcessEngineConfigurationFromResource(resource, beanName); ProcessEngine processEngine = cf.buildProcessEngine();以上就是创建表的三种⽅式,接下来我们看创建好的表都有哪些?先上⼀张图,后⾯详细说。

泛微OA_V6.0操作手册范本

泛微OA_V6.0操作手册范本

泛微协同办公OA系统e-officeV6.0从入门到精通操作教程说明本手册以及相关的计算机软件程序仅用于为泛微协同管理平台最终用户提供信息,泛微软件有权。

本手册是泛微软件的专有信息,并受中华人民国法和国际公约的保护。

未得到泛微软件明确的书面许可,不得为任何目的、以任何形式或手段辅助或传播本手册的任何部分容。

本手册容若有变动,恕不另行通知。

本手册中例子中所引用的公司、人名和数据若非特殊说明,均属虚构。

本手册以及本手册所提及的任何产品的使用均受适应的最终用户许可协议限制。

本手册由泛微软件制作。

本手册中提及的所有商标、商标名称、服务标志及徽标均归其各自公司所有。

序言初始化的系统空空如也,很可能让你觉得无从下手。

通过阅读《e-officeV6.0 081115使用手册》将帮助您在1个小时之快速搭建自己公司的办公系统以及学习系统的日常维护。

首先下载安装e-office系统,注意安装的系统地址目录必须为“根目录”下面,并且不能是中文目录(例如:D:\eoffice)。

否则系统无法登录。

进入登陆界面,系统默认登陆账号为“admin”无密码。

只需要直接点击登陆即可。

这里会出现几个常见的系统安装问题,在此例举出来:1.系统安装后,登陆界面不能显示。

这个情况主要是您的电脑配置问题,并不是软件有问题。

一般自己解决的方案:第一步,检查电脑的IE浏览器是否为6.0以上版本,如果您的浏览器版本太老,建议您去微软的上升级一下。

2.如果浏览器版本没有问题,出现的症状为“系统安装完后进不了OA系统,输入地址IE窗口会自动关闭”那么可以肯定是电脑中有自带的“拦截功能”。

这是因为拦截软件拦截了登陆窗口,请删除拦截软件或关闭拦截软件的弹出窗口拦截功能。

3.如果安装后,进不了OA系统,在IE中提示“找不到页面”,那么e-office系统端口可能与IIS冲突,建议换一个端口如81/8080/8082……试试看。

还有一种原因是这台电脑以前曾经安装过apache,和e-office 中的apache有冲突。

activiti工作流使用一般步骤

activiti工作流使用一般步骤

activiti⼯作流使⽤⼀般步骤activiti⼯作流使⽤的⼀般步骤⼀、在eclipse或Myeclipse中安装activiti插件;⼆、通过activiti连接数据库,有以下两种连接数据库的形式:1.通过java代码链接数据库:public void createTableByOracle(){ProcessEngineConfiguration configuration = ProcessEngineConfiguration.createStandaloneProcessEngineConfiguration();configuration.setJdbcUrl("jdbc:oracle:thin:@192.168.1.150:1521:orcl");configuration.setJdbcDriver("oracle.jdbc.OracleDriver");configuration.setJdbcUsername("scott");configuration.setJdbcPassword("oracle");configuration.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);ProcessEngine processEngine = configuration.buildProcessEngine();System.out.println("-------------------------------------");System.out.println(processEngine);}2.通过配置⽂件配置链接数据库(1)配置⽂件:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans" xmlns:xsi="/2001/XMLSchema-instance"xmlns:context="/schema/context" xmlns:tx="/schema/tx"xmlns:jee="/schema/jee" xmlns:aop="/schema/aop"xsi:schemaLocation="/schema/beans /schema/beans/spring-beans-3.0.xsd/schema/context /schema/context/spring-context-3.0.xsd/schema/tx /schema/tx/spring-tx-3.0.xsd/schema/jee /schema/jee/spring-jee-3.0.xsd/schema/aop /schema/aop/spring-aop-3.0.xsd"><bean id="dataSource"class="org.springframework.jdbc.datasource.SimpleDriverDataSource"><property name="driverClass" value="com.mysql.jdbc.Driver" /><property name="url" value="jdbc:mysql://192.168.1.150:3306/officemanage?characterEncoding=utf8" /><property name="username" value="root" /><property name="password" value="123456" /></bean><bean id="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource" /></bean><bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration"><property name="dataSource" ref="dataSource" /><property name="transactionManager" ref="transactionManager" /><property name="databaseSchemaUpdate" value="true" /></bean></beans>(2)java代码读取配置⽂件链接数据库:public void createTableByXML(){ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();}三、创建⼯作流的bpmn类型的⽂件:四、部署bpmn和png类型的⼯作流⽂件资源:(注意:⼀个⼯作流程部署⼀次即可,以后只需要启动⼀条流程即可)public void deployTest(){System.out.println("开始部署⼀个审批流程");ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();Deployment deployment = processEngine.getRepositoryService().createDeployment().name("路费报销审批流程").addClasspathResource("choiceProcess.bpmn").addClasspathResource("choiceProcess.png").deploy(); System.out.println("部署流程完毕");}五、启动⼀条流程:public void StartProcess(){System.out.println("开始启动⼀个审批流程");ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();ProcessInstance processInstance = processEngine.getRuntimeService().startProcessInstanceByKey("luFeiBaoXiaoShenPi");System.out.println(processInstance.getId()+"--------"+processInstance.getActivityId());System.out.println("启动流程完毕");}六、查看某个⼈要完成的任务列表:public void queryProcess(){ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();String assignee0 = "lsy";List<Task> zhangSanList = processEngine.getTaskService().createTaskQuery().taskAssignee(assignee0).orderByTaskCreateTime().asc().list();System.out.println("****************"+assignee0+"个⼈任务列表***********************");for (Task task : zhangSanList) {System.out.println("id:"+task.getId()+",名称:"+task.getName()+",创建时间"+task.getCreateTime()+",⼈物:"+task.getAssignee());}}七、某个⼈完成⾃⼰的某个任务:1.不带变量:public void completeTask(){ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();processEngine.getTaskService().complete("235009");System.out.println("完成任务");}2.带变量:public void completeTaskByVariables(){ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();Map<String, Object> variables = new HashMap<String,Object>();variables.put("money", 501);processEngine.getTaskService().complete("265004",variables);System.out.println("完成任务");}⼋、某个⼈查看⾃⼰已完成的任务列表:public void queryHistoryTask(){ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();List<HistoricTaskInstance> historicList = processEngine.getHistoryService().createHistoricTaskInstanceQuery().taskAssignee("lsy").list();for (HistoricTaskInstance historicTaskInstance : historicList) {System.out.println(historicTaskInstance.getId()+":"+historicTaskInstance.getProcessDefinitionId()+":"+historicTaskInstance.getAssignee()+":"+historicTaskInstance.getExecutionId()+":"+historicTaskInstance.getStartTime()+":"+historicTaskIns }}。

工作流参考手册初稿V01

工作流参考手册初稿V01

第1章工作流参考手册初稿V01在使用EOS WorkFlow的过程中,不管是开发者在〝开发环境〞中定义业务流程,依旧〝工作流引擎〞操纵流程流转,或是工作流参与者使用的〝客户端〞,再或者治理员使用的〝治理与监控工具〞,在这期间都会贯穿EOS Workflow 的5个要紧对象——流程定义、活动定义、流程实例、活动实例以及工作项。

1.1 EOS工作流开发过程简述EOS的工作流开发过程能够看作是一个不断迭代的过程,如以下图:第一是分析需求,然后依照需求定义流程,在那个时期最要紧的工作任务事实上是设计,依照业务需求来设计流程,那个流程要如何走,流程相关的数据如何流淌,流程的参与者如何界定,与流程相关的业务数据如何流淌及储存等等。

在那个时期的工作结果是一个能够公布的流程,第一次形成的流程可能是一个比较简单的,并不完善的版本,然而随着迭代的进行,那个流程将不断地被修正和改进,直到形成一个能够使用的版本。

接下来是流程的公布,流程公布的目的是让工作流引擎能够识别该流程。

在开发环境(JBoss)下能够直截了当在Studio中公布流程,开发时期一样用此方法,在生产环境中一样是先打包,然后在://localhost:端口/eosmgr中公布。

流程公布后就能够执行了,流程在执行时期叫流程实例,它有待启动、运行、挂起、完成、终止、中止等六种状态。

我们在设计及开发的过程中可能会犯一些错误,从而导致公布的流程执行不正确,或者还可能差不多开发好的流程满足不了现在的需求,需要进行调整,那个时候迭代就开始了。

1.2 概念说明流程定义:描述一个完整的业务过程,它由假设干活动组成。

包括了流程的差不多信息、流程的开始和终止条件、组成的活动、活动间流转的规那么、需要用户执行的工作任务〔工作项〕、可能调用的应用程序以及流程相关数据等信息。

提交到流程定义库〔WFProcessDefine〕后会包含流程定义ID〔流程定义的唯独标识〕、流程定义名称、版本号、流程定义描述以及提交时刻等描述。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Activiti工作流使用说明文档V1.02019年8月9日目录一、模型设计器 (4)1.1任务 (5)1.1.1 用户任务 (5)1.1.2 服务任务 (5)1.1.3 脚本任务 (6)1.1.4 业务规则任务 (7)1.1.5 接收任务 (7)1.1.6 手动任务 (7)1.1.7 邮件任务 (8)1.1.8 Camel任务 (8)1.1.9 Mule任务 (8)1.1.10 决策任务 (9)1.2构造 (10)1.2.1 子流程 (10)1.2.2 事件子流程 (11)1.3泳道列表 (11)1.4分支 (12)1.4.1 排他分支 (12)1.4.2 并行分支 (12)1.4.3 包容分支 (13)1.4.4 事件分支 (13)1.5事件 (14)1.5.1 定时器事件 (14)1.5.2 信号事件 (14)1.5.3 消息事件 (16)1.5.4 错误事件 (16)1.5.5 边界事件 (17)1.5.6 中间事件 (18)1.5.7 开始事件 (18)1.5.8 结束事件 (18)1.6属性元素 (18)1.6.1 异步 (18)1.6.2 排他 (19)1.6.3 补偿 (19)1.6.4 中断任务 (20)1.6.5 分配 (21)1.6.6 到期时间 (22)1.6.7 表单 (22)1.6.8 表达式 (24)1.6.9 多实例 (25)1.7监听器配置 (28)1.7.1 执行监听器 (29)1.7.2 任务监听器 (30)1.7.3 事件监听器 (32)1.7.4 全局事件监听器 (33)二、workflow-service (34)2.1数据更新逻辑 (34)2.2方法表达式配置 (35)2.3自定义外置表单 (36)2.4事件监听器配置 (37)2.5方法调用说明 (37)三、常见问题 (37)一、模型设计器模型设计器项目qqdznyyglpt-workflow-designer主要完成自定义流程、表单设计,可以在模型设计器中完成整个功能的流转,但仅限与admin(密码默认为test)相同租户的用户可使用全功能,其他租户用户登录后只有流程设计、表单配置、决策表配置功能,无法在设计器进行流程执行。

需要更改的模型、表单、决策表生效,则必须重新发布,发布之后新启的流程按最新的走,发布之前的流程仍然按前一版本执行。

用户手册地址:https:///userguide/数据库及邮件服务器配置文件地址:qqdznyyglpt-workflow-designer\src\META-INF\activiti-app\activiti-app.properties 。

打印工作流SQL语句的开关在log4j.properties中配置.activiti.engine.impl.persistence.entity=DEBUG即可。

模型设计器功能介绍:使用流程说明:1.1任务1.1.1用户任务用户任务需要人为处理完成。

常用属性配置包括名称、是否为多实例、分配(任务处理人/处理组配置)、到期时间、表单(引用的表单、表单元素、表单地址),各属性详细用法见1.4节属性元素。

1.1.2服务任务服务任务可以用于执行外部的java类,可以通过以下3种方式实现:⚫类:指定一个实现了JavaDelegate 或ActivityBehavior接口的类(包含包名),可通过类字段配置额外需要传递的参数,类中必须包含该字段的声明;⚫表达式:可以使用值表达式或者方法表达式,当使用的方法表达式有返回值时,可以指定一个结果变量名称来接收该值,后续流程节点中可直接使用该变量;⚫委托表达式:指定一个实现了JavaDelegate的类,并且该类已在配置文件ActivitiEngineConfiguration中注册为bean,可通过类字段配置额外需要传递的参数。

1.1.3脚本任务脚本任务是一个自动任务,当流程执行到脚本任务即会自动执行该任务上配置的脚本。

脚本格式主要定义使用什么脚本类型(JSR-223)编写脚本代码,目前JavaScript是默认的,其他脚本类型均需要增加对应的脚本引擎依赖包。

在脚本中所有流程中参数均可以被引用,也可以使用execution.setVariable("variableName", variableValue)设置流程参数,设置流程参数名称时,需避免使用out, out:print, lang:import, context, elcontext。

scriptTask示例应用.zip以上是脚本JavaScript的脚本示例(可将zip导入designer的应用中),其中field0是流程中已存在变量,可以直接引用,assignee是新设置的流程变量,可以在下一节点获取并使用。

1.1.4业务规则任务业务规则任务可以同步执行一个或多个规则,Activiti使用Drools引擎执行业务规则,*.drl的规则文件需和流程定义一起导入(同外置表单)。

当有多个规则文件配置时,可使用逗号隔开;当有多个输入变量,也可使用逗号隔开;但输出变量只能有一个名称,缺省值是org.activiti.engine.rules.OUTPUT1.1.5接收任务接收任务是用于等待某个特定消息的任务到达。

1.1.6手动任务手动任务定义了一个扩展BPM引擎的外部任务,对于流程来说手动任务就是一个传递任务。

1.1.7邮件任务邮件任务主要用于自定义邮件发送,使用邮件任务时,首先需要在activiti-app.properties文件中配置邮件服务器地址。

邮件任务的各元素属性的配置内容均可使用或者加入表达式。

1.1.8Camel任务Camel任务不是标准的BPMN2.0包含的,他通过从Camel中收发消息来增强Activiti 的集成性,在Activiti中他被作为一个专用的服务任务被应用。

需要在Spring容器中配置camelContext1.1.9Mule任务Mule任务不是标准的BPMN2.0包含的,在Activiti中他被作为一个专用的服务任务,他可以给Mule发送消息以增强Activiti的集成性。

他的属性元素定义如下表:1.1.10决策任务决策任务主要是根据决策表配置的决策原则自动进行任务节点处理,决策表中的变量可以被引用作为流转条件的判断。

如果决策表里某个输出没有结果,则在下一个节点引用时该变量为空,如果是在判断节点引用该变量,可能会报无法识别属性某某的错误。

如下示例中,当决策表自动判断loanAmount>2时,会出结果rejectLoan=true,如果此时在后续的判断节点引用${riskCheck==false},则会抛出找不到riskCheck属性的异常。

以下是示例应用,可导入designer的应用中进行测验。

决策表示例应用.zip1.2构造1.2.1子流程当需要将几个流程节点都作为一个子流程时,可以将该几个流程节点作为一整体,及创建一个子流程,如下图中间审批可以作为一个子流程,定时器监听的是整个子流程的耗时时间。

子流程中必须包含一个空起始时间,必须包含一个结束事件,并且序列流不能越过子流程框定的范围。

1.2.2事件子流程事件子流程是由事件触发的子流程,事件子流程由非空开始事件发起,并且事件子流程没有任何的出入序列流。

Activiti只支持使用错误开始事件和消息开始事件触发事件子流程。

1.3泳道列表主要是为了让流程配置看起来层次分明,逻辑明朗,部署的时候会根据泳道的流程ID 生成流程定义任务。

泳道列表包含泳道池和泳道,首先将泳道池拖拽到界面,然后将泳道拖拽到泳道池中形成泳道池的分割线。

1.4分支分支也叫网关,是用于控制流程流转的。

1.4.1排他分支有且仅有一个后续分支连线会被执行,当分支连线上的流转条件为true(或者没有设置条件)时,流程将通过该分支连线继续执行;如果存在多个分支连线流转条件均为true,则默认执行第一个分支连线;如果没有满足条件的分支连线,则会抛出找不到后续节点的异常。

1.4.2并行分支并行分支包含分叉和聚合,当包含多个分叉任务节点,每执行完一个任务节点就会在聚合口等待,直到所有聚合节点包含的任务节点均执行完成后,流程才会进入后续节点。

并行分支后的任务节点是被强制生成并行实例的,即使在并行分支连线上有配置的流转条件也无效。

1.4.3包容分支包容分支是排他分支和并行分支的结合体,也包含分叉和聚合,与并行分支不同的是他可以在分支连线上定义流转条件,并且只会并行执行流转条件为true的连线上的任务,与排他分支不同的是他可以同时并行执行多个任务。

1.4.4事件分支事件分支后续节点只能连接中间捕获事件,并且必须连接两个或两个以上的中间捕获事件(否则执行过程中会报错),另外,连接事件分支的中间捕获事件必须只有一个信号输入流。

如下图当流程执行到事件分支时被挂起,流程实例订阅了一个信号事件并创建了一个间隔时间为10分钟的定时器。

这将导致流程引擎等待10分钟去接收一个信号事件,如果信号在10分钟内到达,则定时器被取消流程在信号后继续执行,如果信号没有被激活,则流程在定时器后继续执行,并且信号订阅被取消。

1.5事件事件是用于在流程生命周期中模拟某件事的发生,主要分为捕获事件和抛出事件。

流程执行到捕获事件时将等待一个触发器发生,流程执行到抛出事件时相关触发器将被激活。

1.5.1定时器事件定时器事件由定义的定时器到点触发,可以被用作开始事件、中间事件、边界事件,并且定时器事件只有jobExecutorActivate 或asyncExecutorActivate属性被设置为true的时候定时器才会执行。

定时器必须包含以下三种方式之一的配置,否则流程将发布不成功:方式一,按照ISO-8601格式直接配置日期时间,例如2011-03-11T12:13:14+08:00或20040503T093008+08,其中T用于分隔日期和时间,+08:00是用于表示北京时间;方式二,时间间隔配置格式是用P加间隔时间,例如P1Y3M5DT6H7M30S,表示间隔1年3个月5天6小时7分30秒,其中T也是用于分隔日期和时间;方式三,循环周期配置格式是R3/{startDatetime}/PT10H/${EndDatetime},表示循环执行3次,每次间隔周期10小时,并在指定的结束时间停止定时器。

还可使用cron expression进行配置。

1.5.2信号事件在流程定义时可以进行信号定义,信号事件广播范围分为全局信号事件和流程实例信号事件,全局信号事件可用于流程间的通讯,一旦全局信号事件被抛出,所有订阅了该信号事件的流程实例都会接受到信号,并且捕获信号只能捕获信号流程发起之后的信号;流程实例信号事件用于流程内的通讯。

相关文档
最新文档