Activiti6.0的一些小功能

  • 1、通过自建的命令查询流程定义
 /**
     * 通过自建的命令查询流程定义
     */
    @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);
    }
  • 2、通过实体类查询表内容
 /**
     * 通过实体类查询表内容
     */
    @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 定义业务异常,控制流程

猜你喜欢

转载自blog.csdn.net/qq_42046342/article/details/100898049
今日推荐