Activiti学习-流程部署(二)

前言

good good study, day day up

介绍

activiti的内容核心主题大概都与他提供的几个类有关,我们的后续学习也基本上离不开他们....

RepositoryService ...

RuntimeService...

TaskService...

HistoryService...

部署

创建一个如下图简单的bpmn文件

部署方式一 :

@Autowired
    private RepositoryService repositoryService;

    /**
     * 部署方式一:
     * 这里直接以现有资源的方式进行部署
     */
    public void deployActivitiInfo() {
        Deployment deploy = this.repositoryService.createDeployment()
                .addClasspathResource("activiti/simple/holiday.bpmn")   // bpmn文件
                .addClasspathResource("activiti/simple/holiday.png")    // 图片文件
                .name("简单的请假流程")
            	//.key("")
                //.category("")
                .deploy();

        logger.info("流程名称: {}", deploy.getName());
        logger.info("流程部署ID: {}", deploy.getId());
    }
	

至此,这种方式就算是部署成功了...

影响的表: act_ge_bytearray 存储了部署的一些Blob数据 act_re_deployment 以及 act_re_procdef 流程部署的信息

倘若设置不使用uuid的话,可以在yaml的activi的配置下加上下面这个配置

use-strong-uuids: false

// 输出结果
// 流程名称: 简单的请假流程
// 流程部署ID: 1

部署方式二:

/**
     * 部署方式二:
     * 以压缩包流的形式进行部署
     * @throws Exception
     */
    public void deployActivitiInfoByZip() throws Exception{
        InputStream is = ActivitiDeploymentService.class
                .getClassLoader().getResourceAsStream("activiti/simple/zip/holiday.zip");

        ZipInputStream zipInputStream = new ZipInputStream(is);

        Deployment deploy = this.repositoryService.createDeployment()
                .addZipInputStream(zipInputStream)
            	//.key("")
                //.category("")
                .name("压缩包部署形式的流程部署")
            	.deploy();


        logger.info("压缩部署的流程名称: {}", deploy.getName());
        logger.info("压缩的流程部署ID: {}", deploy.getId());

    }
## 输出结果
Process deployed: {id: myProcess_1:2:2504, key: myProcess_1, name: null }
压缩部署的流程名称: 压缩包部署形式的流程部署
压缩的流程部署ID: 2501

部署方式三

直接以流的形式进行部署,这里就不多赘述了...

查询

 

/**
     * 查询已经部署的流程信息
     */
    public void searchDeploymentActivitiInfo() {
        List<Deployment> deploymentList = this.repositoryService.createDeploymentQuery().list();
        logger.error("查询已经部署的流程信息: {}", deploymentList);

        if (deploymentList != null && !deploymentList.isEmpty()) {
            for (Deployment deploymentItem : deploymentList) {
                logger.error("---------------------------------------------");
                logger.error("deploymentInfo is {}", deploymentItem);
                logger.error("部署ID: {}", deploymentItem.getId());
                logger.error("部署名称: {}", deploymentItem.getName());
                logger.error("部署分类: {}", deploymentItem.getCategory());   //null
                logger.error("部署时间: {}", deploymentItem.getDeploymentTime());
                logger.error("部署TenantId: {}", deploymentItem.getTenantId());
                logger.error("---------------------------------------------");

                //设置(设置其中一个)
                if ("1".equals(deploymentItem.getId())) {
                    this.repositoryService
                            .setDeploymentCategory(deploymentItem.getId(), "holiday");
                } else {
                    this.repositoryService
                            .setDeploymentKey(deploymentItem.getId(), "zip_holiday");
                }
            }
        }

        //采用Category 以及key查询
        long holidayCountByCategory = this.repositoryService.createDeploymentQuery().deploymentCategory("holiday").count();
        logger.error("holidayCountByCategory is {}", holidayCountByCategory);

        //采用key查询
        long zip_holiday_count = this.repositoryService.createDeploymentQuery().deploymentKey("zip_holiday").count();
        logger.error("zip_holiday_count is {}", zip_holiday_count);

    }
## 输出结果
查询已经部署的流程信息: [DeploymentEntity[id=1, name=简单的请假流程], DeploymentEntity[id=2501, name=压缩包部署形式的流程部署]]
---------------------------------------------
deploymentInfo is DeploymentEntity[id=1, name=简单的请假流程]
部署ID: 1
部署名称: 简单的请假流程
部署分类: null
部署时间: Sun Nov 29 11:04:15 CST 2020
部署TenantId: 
---------------------------------------------

---------------------------------------------
deploymentInfo is DeploymentEntity[id=2501, name=压缩包部署形式的流程部署]
部署ID: 2501
部署名称: 压缩包部署形式的流程部署
部署分类: null
部署时间: Sun Nov 29 11:21:43 CST 2020
部署TenantId: 
---------------------------------------------
holidayCountByCategory is 1
zip_holiday_count is 1

删除

/**
     * 流程的删除
     */
    public void removeDeploymentActivitiInfo() {
        Deployment deploymentInfo = this.repositoryService.createDeploymentQuery().deploymentKey("zip_holiday").singleResult();
        if (deploymentInfo != null) {
            //this.repositoryService.deleteDeployment(deploymentInfo.getId());

            /**
             * 如果不想删除正在执行的实例,不需要调用原有的方法
             * 摘自源码
             * Deletes the given deployment and cascade deletion to process instances, history process instances and jobs.
             * @param deploymentId id of the deployment, cannot be null.
             */
            this.repositoryService.deleteDeployment(deploymentInfo.getId(), true);
        }
    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值