流程定义
- 流程定义:法律
- 流程实例:具体案例
流程与流程图部署
public class ImgTest {
public static void main(String[] args) {
ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();
RepositoryService rs = engine.getRepositoryService();
DeploymentBuilder builder = rs.createDeployment();
builder.addClasspathResource("test2.bpmn");
builder.deploy();
}
}
取消创建流程图
//在activiti.cfg.xml配置文件中添加
<property name="createDiagramOnDeploy" value="false"/>
中止与激活流程定义
- suspendProcessDefinitionByXXXX
- activateProcessDefinitionByXXXX
public class ActiveTest {
public static void main(String[] args) {
ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();
RepositoryService rs = engine.getRepositoryService();
DeploymentBuilder builder = rs.createDeployment().addClasspathResource("test3.bpmn");
Deployment deploy = builder.deploy();
ProcessDefinition def = rs.createProcessDefinitionQuery().deploymentId(deploy.getId()).singleResult();
System.out.println("id"+def.getId());
rs.suspendProcessDefinitionByKey(def.getKey());
//将会抛出异常,因为流程定义被中止了
RuntimeService runService =engine.getRuntimeService();
runService.startProcessInstanceByKey(def.getKey());
}
}
流程定义权限
public class AuthTest {
public static void main(String[] args) {
// 创建流程引擎
ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();
// 得到流程存储服务实例
RepositoryService rs = engine.getRepositoryService();
// 得到身份服务组件
IdentityService is = engine.getIdentityService();
//保存用户
User user = is.newUser(UUID.randomUUID().toString());
user.setFirstName("Angus");
is.saveUser(user);
//部署流程描述文件
Deployment deploy = rs.createDeployment().addClasspathResource("test3.bpmn").deploy();
//查询流程定义实体
ProcessDefinition def = rs.createProcessDefinitionQuery().deploymentId(deploy.getId()).singleResult();
//设置用户组与流程定义的关系(设置权限)
rs.addCandidateStarterUser(def.getId(),user.getId());
List<ProcessDefinition> defs = rs.createProcessDefinitionQuery().startableByUser(user.getId()).list();
for (ProcessDefinition de : defs){
System.out.println(de.getId());
}
}
/**
* 打印结果:
* myProcess_1:15:67504
*/
}