bpmn:
TaskListener:
event:TaskLinstener会调用的类型
create:任务创建并设置所有属性后触发
assignment:任务分配给一些人时触发
complete:当任务完成,并尚未从运行数据中删除时触发
class:调用的代理类,该类必须实现TaskListener接口
expression:无法与class同时使用,指定事件发生时执行的表达式
SequenceFlow:
Main config:
lebel width:
Condition:满足条件,格式为:${boolean类型表达式}
TaskUser:
Main config:
Assignee:把任务指定给指定用户
Candidate users:任务指定给一批候选人
Candidate groups:任务指定给候选组
Form ky:关联表单
API:
RuntimeService:
ProcessInstance:流程实例
Execution:执行流,就是一个流程实例具体要执行的过程对象 好像是有分支的时候会产生新的execution
一个流程启动,就会创建一个流程实例,流程中有几个分支,就会有几个执行流
RuntimeService提供了很多操作流程实例的API
启动:startProcessInstanceByXX
激活,挂起:activateProcessInstanceById suspendProcessInstanceById
执行流的查询:createExecutionQuery获得一个ExecutionQuery对象,该对象可根据信息查询执行流
流程实例的查询:createProcessInstanceQuery
删除:deleteProcessInstance
IdentityService:管理用户和用户组
RepositoryService:
管理流程仓库,部署,删除,读取流程资源
创建部署构建器:createDeployment,通过它执行部署
deploy:部署
查询流程定义:createProcessDefinitionQuery
FormService:
管理表单--起始节点表单,任务表单
getStartFormData,getTaskFormData
目前Activiti默认支持的类型有String,long,enum,date,boolean,collection,如果要使用自定义类型,需要定义解析类
动态表单:
<startEvent activiti:initiator="applyUserId" id="start" name="start">
<extensionElements>
<activiti:formProperty datePattern="yyyy-MM-dd" id="startDate" name="请假开始日期" required="true" type="date"/>
<activiti:formProperty datePattern="yyyy-MM-dd" id="endDate" name="请假结束日期" required="true" type="date"/>
<activiti:formProperty id="reason" name="请假原因" required="true" type="string"/>
</extensionElements>
</startEvent>
<userTask activiti:assignee="admin" activiti:exclusive="true" id="deptLeaderAudit" name="部门领导审批">
<extensionElements>
<activiti:formProperty datePattern="yyyy-MM-dd" id="startDate" name="请假开始日期" type="date" writable="false"/>
<activiti:formProperty datePattern="yyyy-MM-dd" id="endDate" name="请假结束日期" type="date" writable="false"/>
<activiti:formProperty id="reason" name="请假原因" type="string" writable="false"/>
<activiti:formProperty id="deptLeaderPass" name="审批意见" required="true" type="enum">
<activiti:value id="true" name="同意"/>
<activiti:value id="false" name="不同意"/>
</activiti:formProperty>
</extensionElements>
</userTask>
静态表单:
<startEvent id="begin" name="请假申请" activiti:initiator="applyUserId" activiti:formKey="/demo/leave/startForm"></startEvent>
<userTask id="leaderAudit" name="部门经理审批" activiti:candidateGroups="test" activiti:formKey="/demo/leave/completeForm"></userTask>