前言:通过设计器交互来创建流程图是比较常见的方式,这种方式是比较方便业务人员对流程的操作。然而,在需要流程模板,或者技术开发阶段以及一些自动化流程的处理过程中,使用代码快速创建流程图也是一种非常有必要的快捷途径。本文重点说明这种方法的实现过程和具体使用价值。

1. 交互式构建流程图

图形交互式一般是指通过界面进行节点元素拖动来绘制图形,并且,每个图像节点元素和连线元素的属性配置,都是逐一需要交互操作并且保存来完成的。其特点是清晰直观,在绘制图形的过程中,可以明确流程图形的整个流转过程。

对于流程使用涉及到的业务人员,图形交互是最适合的工具,因为业务人员不会深入到命令代码,他们只需要通过鼠标拖动、键盘输入和完成图形节点的编排就可以。

2. 代码式创建流程图

传统的图形交互方式是比较方便业务人员创建流程定义图的,图形GUI最大的优点是直观,形象,任何人都能理解;但是作为编程方式的计算机处理过程,代码式的命令脚本程序也是大行其道,因为其快速,高效和方便也是特别需要用到的。

就比如作为一个系统管理员来管理一台服务器,通常更多时候需要直接使用命令行的脚本工具,在Windows系统里面是PowerShell工具,在Linux平台下的系统管理命令,以及Bash等工具。如果没有这些命令级别的程序,那些神通广大的黑客几乎也无用武之地。所以正是这些代码式的脚本程序,极大地丰富了程序功能的强大。

2.1 代码示例

代码构建命令程序核心类是ProcessModelBuilder,下面就对其接口使用,做以特别示例。

2.1.1 简单串行流程图的代码构建

2.1.2 分支流程图代码构建

2.2 流程图展现

通过代码式构建,会直接生成流程图记录,流程图形分别展示如下。

2.2.1 简单串行流程图

2.2.2 分支流程图

3. 使用价值

虽然代码式快速构建对于业务人员没有直接使用到,或者对于引擎开发人员也不大会直接关注到。但是在一些技术领域,它的价值是显而易见的。暂时罗列两个方面供大家参考。

3.1 流程模板

如上述示例中,我们其实可以算是创建了两个类型的模板,一个是简单串行的流程图形,一个是带有分支的流程图形。假如我们提供给业务人员新建流程时,让他们选择具体是哪一种类型的模板时,这样会节省绘制流程图形中的每个节点或连线元素的时间。也减轻了业务或流程管理人员的工作量。

3.2 技术人员的利器

技术人员在进行大量流程数据开发或测试过程中,经常需要构建不同类型的流程图,想想一键生成带来的快捷极速体验,从而避免重复的拖拽及节点连线等繁琐操作,如果能够熟练使用和掌握这些命令行式的代码,确实无疑地会带来工作效率方面的显著提升。

4. 结论

通过对代码式构建流程图的工具开发,我们也清楚地认识到,代码式的快速构建流程图可以为不同类型的用户节约大量的时间,从而提升工作效率。而且,这一工具也在不断加强产品的核心竞争力。

Slickflow.NET 开源工作流引擎高级开发(四) -- 硬核编码:代码式快速构建流程图的更多相关文章

  1. Slickflow.NET 开源工作流引擎高级开发(三) -- 并行分支容器与会签工作流模式的组合

    前言:  流程引擎的核心功能是负责解析流程定义XML和流转,业务环节的不断积累,让人们不断总结和抽象出一些模式,这些模式统称为工作流模式(Workflow Pattern).本文的重点就是介绍一种常见 ...

  2. Slickflow.NET 开源工作流引擎高级开发(二) -- 流程快速测试增值服务工具介绍

    前言:流程是由若干个任务节点组成,流转过程就是从一个节点转移到下一个节点,通常需要不断切换用户身份来完成流程的测试,这样使得测试效率比较低下,本文从实战出发,介绍常见的两种快速测试方法,用于提升流程测 ...

  3. Slickflow.NET 开源工作流引擎高级开发(一) -- 流程外部事件的调用和变量存储实现

    前言:流程实现基本流转功能外,通常也需要调用外部事件,用于和业务系统的交互,同时存储一些流程变量,用于追踪和记录业务数据变化对流程流转的影响. 1. 流程事件 流程执行过程中,伴随各种事件的发生,而且 ...

  4. Slickflow.NET 开源工作流引擎高级开发(六) -- WebTest 引擎接口模拟测试工具集

    前言:引擎组件的接口测试不光是程序测试人员使用,而且也是产品负责人员需要用到的功能,因为在每一步流转过程中,就会完整模拟实际用户发生的场景,也就容易排查具体是程序问题还是业务问题,从而快速定位问题,及 ...

  5. Slickflow.NET 开源工作流引擎高级开发(五) -- 引擎和外部事件的交互

    前言:引擎组件的基本职责是负责流程流转,但是在流转过程中,除了对内部控制逻辑进行实现外,也不可避免的要去调用或者响应外部事件.本文主要描述外部事件的类型,以及调用方法过程. 1. 外部事件的类型 外部 ...

  6. Slickflow.NET 开源工作流引擎基础介绍(四) -- 多数据库支持实现

    前言:引擎作为中间件集成到用户的项目里面去,针对用户的数据库类型,需要作出SQL部分的分别实现.引擎默认数据库为MS SQLSERVER,同时也支持ORACLE, MYSQL, KINGBASE等不同 ...

  7. Slickflow.NET 开源工作流引擎基础介绍(七) -- 并行分支多实例模式实现

    前言:并行审批是比较常见的流程模式,在工作流模式介绍中,通常是多个分支通过网关(Gateway)来控制实现.默认的分支类型是静态定义好的.本文扩展了并行网关的控制方式,实现了动态多实例的并行分支网关, ...

  8. Slickflow.NET 开源工作流引擎基础介绍(二) -- 引擎组件和业务模块的交互

    集成流程引擎的必要性 业务过程的变化是在BPM系统中常见的现象,企业管理层需要不断优化组织架构,改造业务流程,不可避免地带来了业务流程的变化,企业信息系统就会随之面临重构的可能性.一种直接的方式是改造 ...

  9. Slickflow.NET 开源工作流引擎基础介绍(二) -- 引擎组件和业务系统的集成

    集成流程引擎的必要性 业务过程的变化是在BPM系统中常见的现象,企业管理层需要不断优化组织架构,改造业务流程,不可避免地带来了业务流程的变化,企业信息系统就会随之面临重构的可能性.一种直接的方式是改造 ...

随机推荐

  1. Spring RedisTemplate操作-发布订阅操作(8)

    @Component("sub") public class Sub implements MessageListener{ @Autowired private StringRe ...

  2. python 基础 元组()

    # 元组 应用场景 # 尽管 Python的列表中可以存储不同类型的数据 # 但是在开发中,更多的应用场景是 # 1.列表存储相同类型的数据 # 2.通过迭代遍历,在循环体内部,针对列表中的每一项元素 ...

  3. 1601O_HOME

    马kaiyu   https://blog.csdn.net/debugbugbg 胡guoxin https://blog.csdn.net/qq_41995727 张yizhong  https: ...

  4. Java内存模型-volatile的内存语义

    一 引言 听说在Java 5之前volatile关键字备受争议,所以本文也不讨论1.5版本之前的volatile.本文主要针对1.5后即JSR-133针对volatile做了强化后的了解. 二 vol ...

  5. Java实现去火柴游戏

    package com.gh.p10; /** * Created by Lenovo on 2014/12/10. */ import java.util.Random; import java.u ...

  6. Linux下利用backtrace追踪函数调用堆栈以及定位段错误【转】

    转自:https://www.linuxidc.com/Linux/2012-11/73470p2.htm 通常情况系,程序发生段错误时系统会发送SIGSEGV信号给程序,缺省处理是退出函数.我们可以 ...

  7. Dhaka2011

    Dhaka2011 A - Binary Matrix 题目描述:有一个\(n \times m\)的\(01\)矩阵,这一矩阵第一行和最后一行是相邻的,第一列和最后一列是相邻的,现在每次可以交换相邻 ...

  8. [SDOI2009]HH去散步 「矩阵乘法计数」

    计数问题也许可以转化为矩阵乘法形式 比如若该题没有不能在一条边上重复走的条件限制,那么直接将邻接矩阵转化为矩阵乘法即可 故 矩阵乘法计数 对于计数问题,若可以将 \(n\) 个点表示成 \(n \ti ...

  9. shell升级

    对/sbin/nologin的理解   系统账号的shell使用 /sbin/nologin ,此时无法登陆系统,即使给了密码也不行.   所谓“无法登陆”指的仅是这个用户无法使用bash或其他she ...

  10. Java中 equals 和 == 的比较

    先来看这样一个题目,假设有以下代码 下列选项中返回false的语句是? String s = "hello"; String t = "hello"; char ...