compileflow流程引擎使用

compileflow简单使用

compileflow引用:https://gitee.com/mirrors/compileflow/blob/master/README_CN.md

什么是流程引擎?

流程引擎就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现”。通俗的说,流程就是多种业务对象在一起合作完成某件事情的步骤,把步骤变成计算机能理解的形式就是流程引擎。

compileflow是什么

compileflow是一个非常轻量、高性能、可集成、可扩展的流程引擎。

compileflow Process引擎是淘宝工作流TBBPM引擎之一,是专注于纯内存执行,无状态的流程引擎,通过将流程文件转换生成java代码编译执行,简洁高效。当前是阿里业务中台交易等多个核心系统的流程引擎。

compileflow能让开发人员通过流程编辑器设计自己的业务流程,将复杂的业务逻辑可视化,为业务设计人员与开发工程师架起了一座桥梁。

Design Intention
  1. 希望为业务开发提供端至端,从设计至实现的业务流程解决方案。
  2. 提供多种流程引擎,实现从战略至商业能力,商业能力至业务流程,业务流程至系统,并最终实现业务的可视化全局架构。
  3. 设计高效的执行引擎,实现对服务的快速组合或扩展,提升ideavalue的研发响应与交互速度。、
快速上手
Step1: idea在插件市场搜索compileflow安装

本地安装,插件下载地址https://github.com/alibaba/compileflow-idea-designer

Step2:maven项目引入pom文件
<dependency>
    <groupId>com.alibaba.compileflow</groupId>
    <artifactId>compileflow</artifactId>
    <version>1.2.0</version>
</dependency>

​ 可以在 search.maven.org 查看可用的版本。

注意: compileflow仅支持JDK 1.8及以上版本。

Step3: Demo创建

​ 1、创建bpm文件

在这里插入图片描述

​ 2、点击创建的bpm

在这里插入图片描述

在进行界面编排有以下几个注意的点,都是一步一步踩的坑呀,因为百度很少基本教的都是初步使用,问题解决的也很少,只能趟坑才知道!!!

注意

  1. 结束节点、开始节点只能有一个,目前为止。

  2. 判断节点可以是多个,但是不能都直接走结束节点,也就是结束节点只能有一根线连着。

  3. 传参,最好是一个实体进行传参,多个list传参不仅选不中那个list实体,而且还会报错。

  4. 在自动节点里的action setting的type 有两个类型选择一个是java、一个是spring bean,这里需要注意下,使用java的话比较简单,无注意的点,如果使用spring bean的话,需要创建下面方法进行加载。

    /**
     * 注意:这里是想让系统启动时,预先加载bpm流程到内存,防止第一次调用时,初始化流程所带来的耗时
     *
     */
    @Component
    @Configuration
    public class BpmInitializer implements InitializingBean, ApplicationContextAware {
    
        @Override
        public void afterPropertiesSet() throws Exception {
            ProcessEngine processEngine = ProcessEngineFactory.getProcessEngine();
            //将自己的bpm加载到内存里面
            processEngine.preCompile("bpm.buy");
        }
    
        @Override
        public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
            SpringApplicationContextProvider.applicationContext = applicationContext;
        }
    
    }
    

    3、点击创建bpm的全局变量

    1. 联系点击两次界面黑处,弹出配置界面。

    2. 在这里插入图片描述

    3. 这时候大家肯定很疑惑,传list实体,官方是怎么传的,界面选择不了,这里要传list的话,需要去test里面去配置,需要手动加list,对这个感到很不解,只能理解为还没有这个功能,这里还是要提一下刚刚的注意点,不能传两个list,会报错。

    4. 在这里插入图片描述

    4、自动节点选择方法

    1. 这里就比较简单,需要注意点就是传入的bean了。

    2. 在这里插入图片描述

    3. 选择对应类和方法,会自动出需要传入的参数,然后再全局变量里面传入就好了,这里也需要注意点,如果一个变量的话,会选择不了变量。

    5、判断节点返回

    1. 点击返回的那根线,会出对应的窗口

    2. 在这里插入图片描述

    3. 根据上节点的返回变量进行判断。

    6、运行bpm

        @org.junit.Test
        public void test(){
            final Map<String, Object> context = new HashMap<>();
            List<User> list = new ArrayList<>(0);
            User user = new User();
            user.setAge(12);
            user.setName("张三");
            list.add(user);
            User user1 = new User();
            user1.setAge(20);
            user1.setName("李四");
            list.add(user1);
            User user2 = new User();
            user2.setAge(20);
            user2.setName("李四1");
            list.add(user2);
            context.put("userList", list);
            LoginInfo loginInfo = new LoginInfo();
            loginInfo.setLoginName("李四2");
            //上下文传值
            context.put("logininfo", loginInfo);
            final ProcessEngine<TbbpmModel> processEngine = ProcessEngineFactory.getProcessEngine();
            processEngine.start("bpm.buy", context);
    
    
总结
  1. 上手确实很快,其实也有一些坑,主要是一步一步趟着过,百度不出来,也无什么沟通群之类的(官方的解散了)

  2. 根据自己的业务进行编排,易解耦。

  3. 快速集成。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值