compileflow 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
compileflow 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
compileflow 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 Apache
开发语言 Java
操作系统 跨平台
软件类型 开源软件
所属分类 程序开发工作流引擎
开源组织 阿里巴巴
地区 国产
投 递 者 徐安是个好人
适用人群 未知
收录时间 2020-08-20

软件简介

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

compileflow Process引擎是淘宝工作流TBBPM引擎之一,是专注于纯内存执行,无状态的流程引擎,通过将流程文件转换生成java代码编译执行,简洁高效。

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

Design Intention

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

Features

  1. 高性能:通过将流程文件转换生成java代码编译执行,简洁高效。
  2. 丰富的应用场景:在阿里巴巴中台解决方案中广泛使用,支撑了导购、交易、履约、资金等多个业务场景。
  3. 可集成:轻量、简洁的设计使得可以极其方便地集成到各个解决方案和业务场景中。
  4. 完善的插件支持:流程设计目前有IntelliJ IDEAEclipse插件支持,可以在流程设计中实时动态生成java代码并预览,所见即所得。
  5. 支持流程设计图导出svg文件和单元测试代码。

Quick Start

Step1: 下载安装IntelliJ IDEA插件(可选)

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

安装说明:请使用IntelliJ IDEA本地安装方法进行安装,重新启动IntelliJ IDEA就会生效。

Step2: 引入POM文件

首发包暂时还未上传到公网,后续稳定后会进行上传

<dependency>
    <groupId>com.alibaba.compileflow</groupId>
    <artifactId>compileflow</artifactId>
    <version>1.0.0</version>
</dependency>

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

Step3: 流程设计

下面以ktv demo为例,通过demo的演示和实践了解节点及属性的配置和API的使用。

demo描述:N个人去ktv唱歌,每人唱首歌,ktv消费原价为30元/人,如果总价超过300打九折,小于300按原价付款。

S3.1

创建bpm文件,如下图:

注:bpm文件路径要和code保持一致,在文件加载模式下流程引擎执行时会根据code找到文件。

S3.2

通过插件进行流程设计或者直接编写流程xml文件。

S3.3 调用流程

编写如下单元测试:

@Test
public void testProcessEngine() {
    final String code = "bpm.ktv.ktvExample";

    final Map<String, Object> context = new HashMap<>();
    final List<String> pList = new ArrayList<>();
    pList.add("wuxiang");
    pList.add("xuan");
    pList.add("yusu");
    context.put("pList", pList);

    final ProcessEngine processEngine = ProcessEngineFactory.getProcessEngine();

    final TbbpmModel tbbpmModel = (TbbpmModel)processEngine.load(code);
    final OutputStream outputStream = TbbpmModelConverter.getInstance().convertToStream(tbbpmModel);
    System.out.println(outputStream);
    System.out.println(processEngine.getTestCode(code));

    processEngine.preCompile(code);

    System.out.println(processEngine.start(code, context));
}

compileflow原生只支持淘宝BPM规范,为兼容BPMN 2.0规范,做了一定适配,但仅支持部分BPMN 2.0元素,如需其他元素支持,可在原来基础上扩展。

更多资料

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (6)

加载中
为啥不维护开发文档,作为一个没弄个工作流的人,用着有点费劲
2021/12/22 16:53
回复
举报
缺点就是还不是很完善
2021/07/06 15:45
回复
举报
以前做过一个.net的工作流,就是将流程编译成程序集。
2020/09/17 09:46
回复
举报
有木有分享看看 .net的比较少
2020/09/18 17:05
回复
举报
好东西,期待详细的开发文档
2020/09/16 18:20
回复
举报
教程有点少,研究研究
2020/08/21 10:32
回复
举报
更多评论
暂无内容
发表了博客
2020/08/24 14:48

第一章:compileflow是什么

1、引子 还记得我们的研发流程是什么样的么?虽然研发模式百花齐放,在不同团队都有自己的一套研发流程。但是最本质的不会变。一般我们拿到需求,进行评审完毕后就开始做制作技术方案。而在这个过程中,流程图是我们一定会画的。无论你是如何面向对象设计。要完成一件事情,设计一段逻辑,流程图是最好的表现方式,可以让你清楚的了解程序的具体运行步骤。 问题来了,大家应该都有这样一种经历。尽管前期流程图设计的有多完美。...

1
2
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
6 评论
91 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部