目录


mac-flow 示例与流程编辑器

前往下载 流程应用示例简化版流程编辑依赖JAR包与源码下载

创建服务

  点击“服务管理”,“添加”,添加成功后,即可在表格上点击“编辑流程”开始编辑

图片未能加载

开始编辑

  下图是一个简单的流程图:

create service

  操作方式与要点:   点击编辑器右上角的菜单按钮,可以生成XML

属性配置

  选中某个节点,在其“接口配置”中填写“实现类”作为这个节点的handler,然后点击“属性配置”为这个handler注入必要属性:

图片未能加载

图片未能加载

  注:如果想引用一个现有的bean,需要上图中“类型”一列填“ref”,“值”一列填被引用的bean的ID

包装器

  节点的包装器配置用于在调用当前节点的Handler之前和之后进行一些处理,比如参数转换,原理如下:

图片未能加载

  在选中某个支持包装器的节点,在“高级选项”中填现“包装器”。

图片未能加载

  注:在编写通用的参数映射包装器时,往往需要配置数据之是如何映射,点击“参数映射”来完成此动作。如果默认的配置方式不能解决问题,可以通过二次开发来定制。

判定节点与多路分支节点

  判定节点和多路分支节点都支持MVEL表达式和注入Handler这两种实现方法,如果如果有注入handler则直接调用,否则将解析配置的表达式。

流程引用

  新创建的服务将被作为组件放到组件库,在流程编辑器的左侧的“组件库”标签页可以找到,拖动一个组件到绘图区即可。被引用的流程将显示一个子流程节点(subflow)
  选中某个子流程节点,在右侧“基础属性”区可以找到“转到子流程”的链接,方便转去编辑子流程。

循环与递归

  mac-flow天然支持循环,无需专门的处理,非常自然,递归同理。参见makeMoney示例

并行与异步

  fork分为两种形式,一种是以固定的分支并行(参见account query示例),另一种是动态的分支并行(参见make money示例)。前者多用于联机交易,后者多用于批量应用。
  fork/join是实现异步的一种形式,也可以自行使用Future模式来实现。更多的异步形式,比如异步通知,如果不是从通讯层开始支持,而单靠流程引擎通过线程也实现的话,意义不大。由mac-rpc来实现更合适。

事务处理

  事务处理依赖于应用框架如何实现事务,并不属于流程引擎的功能范畴,mac-flow只提供接口,并不提供默认的实现。这里提供一种基于spring事务管理器的实现SimpleTxHandler.java,供大家参考。

创建组件

  选中一个节点,点击右侧面板最下端的“转换为组件”按钮,即可将当前节点转成组件。下次画图时就可以直接从组件库中将此组件拖出使用,不必重复配置。
  注:由于组件的管理相对复杂,提供下载的流程编辑器在修改组件时并不会更新已画好的流程图。