/**
* 通过自建的命令查询流程定义
*/
@Test
@Deployment(resources = {"my-process_job.bpmn20.xml"})
public void testCommand() {
activitiRule.getRuntimeService().startProcessInstanceByKey("my-process");
ManagementService managementService = activitiRule.getManagementService();
//可以自己构建command命令
ProcessDefinitionEntity processDefinitionEntity = managementService.executeCommand(new Command<ProcessDefinitionEntity>() {
@Override
public ProcessDefinitionEntity execute(CommandContext commandContext) {
ProcessDefinitionEntity processDefinitionEntity = commandContext.getProcessDefinitionEntityManager()
.findLatestProcessDefinitionByKey("my-process");
return processDefinitionEntity;
}
});
LOGGER.info("获取自定义命令的流程实体: {}", processDefinitionEntity);
}
/**
* 通过实体类查询表内容
*/
@Test
@Deployment(resources = {"my-process_job.bpmn20.xml"})
public void testTablePageQuery() {
ManagementService managementService = activitiRule.getManagementService();
TablePage tablePage = managementService.createTablePageQuery()
.tableName(managementService.getTableName(ProcessDefinitionEntity.class))
.listPage(0, 100);
List<Map<String, Object>> rows = tablePage.getRows();
rows.forEach(row -> {
LOGGER.info("查询到的表的内容 : {}", row);
});
}
- 3.用户身份增加删除(deleteUser与saveUser同理)的写法:
@Test
public void testIdentity() {
//获取服务
IdentityService identityService = activitiRule.getIdentityService();
//创建用户
User user1 = identityService.newUser("user1");
User user2 = identityService.newUser("user2");
user1.setEmail("[email protected]");
user2.setEmail("[email protected]");
identityService.saveUser(user1);
identityService.saveUser(user2);
//创建组
Group group1 = identityService.newGroup("group1");
Group group2 = identityService.newGroup("group2");
identityService.saveGroup(group1);
identityService.saveGroup(group2);
identityService.createMembership("user1", "group1");
identityService.createMembership("user1", "group2");
identityService.createMembership("user2", "group1");
//根据已知的userId进行查询
User user11 = identityService.createUserQuery().userId("user1").singleResult();
LOGGER.info("id为user1的用户 {}", ToStringBuilder.reflectionToString(user11, ToStringStyle.JSON_STYLE));
user11.setLastName("shr");
//根据组id查询用户
List<User> userList = identityService.createUserQuery().memberOfGroup("group1").listPage(0, 100);
userList.forEach(user -> {
LOGGER.info("属于group1的用户 {}", ToStringBuilder.reflectionToString(user, ToStringStyle.JSON_STYLE));
});
//根据用户查所在组别
List<Group> groupList = identityService.createGroupQuery().groupMember("user1").listPage(0, 100);
groupList.forEach(group -> {
LOGGER.info("user1所在的组 {}", ToStringBuilder.reflectionToString(group, ToStringStyle.JSON_STYLE));
});
}
常见的异常
异常信息 |
描述 |
ActivitiWrongDbException |
引擎与数据库的版本不匹配 |
ActivitiOptimisticLockingException |
并发导致乐观锁异常 |
ActivitiClassLoadingException |
加载类异常 |
ActivitiObjectNotFoundException |
操作对象不存在 |
ActivitiIllegalArgumentException |
非法的参数 |
ActivitiTaskAlreadyClaimedException |
任务被重新声明代理人 |
BpmnError |
定义业务异常,控制流程 |