compileflow简单使用

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

什么是流程引擎?

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

compileflow是什么

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

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

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

Design Intention

  1. 希望为业务开发提供端至端,从设计至实现的业务流程解决方案。
  2. 提供多种流程引擎,实现从战略至商业能力,商业能力至业务流程,业务流程至系统,并最终实现业务的可视化全局架构。
  3. 设计高效的执行引擎,实现对服务的快速组合或扩展,提升 idea value 的研发响应与交互速度。、
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. 快速集成。

    :open_book: 英文文档| 它是什么? compileflow-idea-designer是一个Idea插件。 它使您可以轻松完成编译流程引擎过程的编码设计和属性编辑。 Compileflow引擎开源地址: : 下载最新的插件安装包,下载地址:: 如果您是idea的2020版及更高版本,请下载此文件: XML源文件预览:支持编辑和预览XML源文件 流程友好的可视化:支持XML源文件进行Swing图预览,并将图片导出到本地 过程友好且可编辑:支持直接在Swing图画布中拖放节点,设计过程以及编辑节点属性,全局属性等。 大量显示Java源代码:该过程最终将被编译成Java代码以执行,并且设计者支持XML到Java代码的预览效果 XML语法错误提示:如果打开的XML源文件中存在语法错误,则会在Java源代码预览区域中提示该错误。 可扩展性:可以轻松扩展以
    流程引擎的入门级使用教学 一、下载activiti安装包 链接:https://pan.baidu.com/s/1-_XjIsuZfhiEZn6iLul6-Q 密码:mfyk (这是其他网友的链接) 二、eclipse安装activiti插件(我使用的是离线安装方式,在线安装我这也没试过!) 1、将安装包解压,解压文件目录如下:有四个jar包和一个压缩包 2、将四个j...
    compileflow是什么 compileflow是一个非常轻量、高性能、可集成、可扩展的流程引擎compileflow Process引擎是淘宝工作流TBBPM引擎之一,是专注于纯内存执行,无状态的流程引擎,通过将流程文件转换生成java代码编译执行,简洁高效。当前是阿里业务中台交易等多个核心系统的流程引擎compileflow能让开发人员通过流程编辑器设计自己的业务流程,将复杂的业务逻辑可视化,为业务设计人员与开发工程师架起了一座桥梁。 最新插件安装包下载 希望为业务开发提供端
    compileflow 是什么 compileflow 是一个非常轻量、高性能、可集成、可扩展的流程引擎compileflow Process 引擎是淘宝工作流 TBBPM 引擎之一,是专注于纯内存执行,无状态的流程引擎,通过将流程文件转换生成 java 代码编译执行,简洁高效。当前是阿里业务中台交易等多个核心系统的流程引擎compileflow 能让开发人员通过流程编辑器设计自己的业务流程,将复杂的业务逻辑可视化,为业务设计人员与开发工程师架起了一座桥梁。 高性能:通过将流程文件转换生
    上个周末抽时间整理了一些阿里开源的一些 Java 开源项目,希望对大家有帮助!这篇文章收录的所有开源项目都是还在继续维护并且可以使用的。 虽然有部分项目不是那么”完美“,但是依然非常值得我们学习。 感谢阿里技术团队的小伙伴们为 Java 开源生态做的贡献! Canal Canal[kə'næl] 翻译过来是水道/管道/沟渠的意思,主要用于基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费。 Canal 可以帮助我们实现 MySQL 和其他数据源比如 Elasticsearch、Kafka