Slickflow.NET 开源工作流引擎高级开发(四) -- 硬核编码:代码式快速构建流程图
前言:通过设计器交互来创建流程图是比较常见的方式,这种方式是比较方便业务人员对流程的操作。然而,在需要流程模板,或者技术开发阶段以及一些自动化流程的处理过程中,使用代码快速创建流程图也是一种非常有必要的快捷途径。本文重点说明这种方法的实现过程和具体使用价值。
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 开源工作流引擎高级开发(四) -- 硬核编码:代码式快速构建流程图的更多相关文章
- Slickflow.NET 开源工作流引擎高级开发(三) -- 并行分支容器与会签工作流模式的组合
前言: 流程引擎的核心功能是负责解析流程定义XML和流转,业务环节的不断积累,让人们不断总结和抽象出一些模式,这些模式统称为工作流模式(Workflow Pattern).本文的重点就是介绍一种常见 ...
- Slickflow.NET 开源工作流引擎高级开发(二) -- 流程快速测试增值服务工具介绍
前言:流程是由若干个任务节点组成,流转过程就是从一个节点转移到下一个节点,通常需要不断切换用户身份来完成流程的测试,这样使得测试效率比较低下,本文从实战出发,介绍常见的两种快速测试方法,用于提升流程测 ...
- Slickflow.NET 开源工作流引擎高级开发(一) -- 流程外部事件的调用和变量存储实现
前言:流程实现基本流转功能外,通常也需要调用外部事件,用于和业务系统的交互,同时存储一些流程变量,用于追踪和记录业务数据变化对流程流转的影响. 1. 流程事件 流程执行过程中,伴随各种事件的发生,而且 ...
- Slickflow.NET 开源工作流引擎高级开发(六) -- WebTest 引擎接口模拟测试工具集
前言:引擎组件的接口测试不光是程序测试人员使用,而且也是产品负责人员需要用到的功能,因为在每一步流转过程中,就会完整模拟实际用户发生的场景,也就容易排查具体是程序问题还是业务问题,从而快速定位问题,及 ...
- Slickflow.NET 开源工作流引擎高级开发(五) -- 引擎和外部事件的交互
前言:引擎组件的基本职责是负责流程流转,但是在流转过程中,除了对内部控制逻辑进行实现外,也不可避免的要去调用或者响应外部事件.本文主要描述外部事件的类型,以及调用方法过程. 1. 外部事件的类型 外部 ...
- Slickflow.NET 开源工作流引擎基础介绍(四) -- 多数据库支持实现
前言:引擎作为中间件集成到用户的项目里面去,针对用户的数据库类型,需要作出SQL部分的分别实现.引擎默认数据库为MS SQLSERVER,同时也支持ORACLE, MYSQL, KINGBASE等不同 ...
- Slickflow.NET 开源工作流引擎基础介绍(七) -- 并行分支多实例模式实现
前言:并行审批是比较常见的流程模式,在工作流模式介绍中,通常是多个分支通过网关(Gateway)来控制实现.默认的分支类型是静态定义好的.本文扩展了并行网关的控制方式,实现了动态多实例的并行分支网关, ...
- Slickflow.NET 开源工作流引擎基础介绍(二) -- 引擎组件和业务模块的交互
集成流程引擎的必要性 业务过程的变化是在BPM系统中常见的现象,企业管理层需要不断优化组织架构,改造业务流程,不可避免地带来了业务流程的变化,企业信息系统就会随之面临重构的可能性.一种直接的方式是改造 ...
- Slickflow.NET 开源工作流引擎基础介绍(二) -- 引擎组件和业务系统的集成
集成流程引擎的必要性 业务过程的变化是在BPM系统中常见的现象,企业管理层需要不断优化组织架构,改造业务流程,不可避免地带来了业务流程的变化,企业信息系统就会随之面临重构的可能性.一种直接的方式是改造 ...
随机推荐
- tweenMax学习笔记
tweenMax是一款缓动插件,能实现很多牛逼的效果,在网上看了些demo,确实很吊,虽说很多用CSS3也能做出来,但是技多不压身,学之. 网上的demo还是很多的,但是资料不多,唯一能够让我有思绪的 ...
- [转载]JavaScript异步编程助手:Promise模式
http://www.csdn.net/article/2013-08-12/2816527-JavaScript-Promise http://www.cnblogs.com/hustskyking ...
- 20155314 2016-2017-2 《Java程序设计》第5周学习总结
20155314 2016-2017-2 <Java程序设计>第5周学习总结 教材学习内容总结 理解异常架构 牚握try...catch...finally处理异常的方法 会用throw, ...
- laravel一个页面两个表格分页处理
关键是看懂laravel自带的 paginate() 方法. 在Builder.php文件(项目名称/laravel/vendor/laravel/framework/src/Illuminate/D ...
- 【Python】exe2shellcode,shellcode2exe
用python写这类程序真简洁,要是用C++又不知道得多写多少行代码了. exe2shellcode #! /usr/bin/env python # -*- coding: utf-8 -*- im ...
- MySQL 5.6 Replication 复制 FAQ
原文请参照MySQL官方文档Reference Manual,版本5.6.10. 复制功能使得数据可以从一个MySQL数据库(master主库)复制到另一个或多个MySQL数据库(slave从库).缺 ...
- php删除非空目录代码实现
<?php header("Content-type: text/html; charset=utf-8"); $dir='mydir'; function deldir($ ...
- 小白学习安全测试(三)——扫描工具-Nikto使用
扫描工具-Nikto #基于WEB的扫描工具,基本都支持两种扫描模式.代理截断模式,主动扫描模式 手动扫描:作为用户操作发现页面存在的问题,但可能会存在遗漏 自动扫描:基于字典,提高速度,但存在误报和 ...
- Go语言之Windows 10开发工具LiteIDE初步使用
Intel Core i5-8250U,Windows 10家庭中文版,go version go1.11 windows/amd64,LiteIDE X34.1 在RUNOOB.COM的Go语言教程 ...
- android 通用 Intent
通用 Intent 本文内容显示详细信息 闹钟 日历 相机 联系人/人员应用 电子邮件 文件存储 本地操作 地图 音乐或视频 新笔记 电话 搜索 设置 发送短信 网络浏览器 使用 Android 调试 ...