月明星稀,却不见明月;蛾儿雪柳暗香飘过,纵使回首千百回,却不知,心已灭;壮志未酬,却落得个多情应该笑我;扬帆起航,却不知,帆已破。
这是我刚离职时的心情,曾几何时,真的想呆在一家公司,做一名优秀的技术管理人员,毫无保留的奉献自己的所有,将公司的业务、产品都提升一个层次。但企业管理的混乱,企业文化的丢失,公司对员工的差异化对待,公司领导的言而无信,让我对之前的公司完全的失去了信心,甚者开始了厌烦,毅然决然的离开的之前的公司,将自己推上了无业游民的行业。
对于一个从业人员来说,自己的职业道路无非就是两条道路(特别是搞软件的),一则努力成为公司中上层技术管理者,过着安稳的日子,我想这是绝大多数人的想法;要么就自己创业,闯出自己的一片天空,但这何尝容易。之前面试过一些出来创业的,一问他,什么都不知道,不由的在心里嘲笑,如今,嘲笑的是否又是我自己呢?如今的我,路又在何方,是继续走父母期望的第一条道路,还是走第二条道路,有谁能给我指导一下迷途呢,又有谁愿意陪我走第二条道路呢?
小小抱怨了一下,言归正传,接下来想写一系列的文章,关于流程引擎的,希望走在路上的伙伴一起探讨一下,也给后来者指引一些方向及思路吧。(这里给个建议:真正的技术资料只能在国外才能搜索得到,所以大家想要提升自己有水平,必须坚持用英文问Google, 英文水平差也必须坚持,当然,提升国货水平,还需要小伙伴们努力)
另外,我搭建了一个开发平台(angular,bootstrap,MVC,EF),地址:http://spritekuang.hk05.iis800.com/,将工作流集成上去了,小伙伴们可以登录进去体验一下吧。
写这一系列文章的思路以及先后顺序是:流程引擎功能特性->产品架构设计->核心数据模型设计->核心模块的设计->关键技术模块的开发,因为是原始研发的流程引擎,所以水有些深,看大家的反应写后续的文章,当然,如果没有反应,估计自己写着也没多大的兴趣,所以多多的留言或者推荐一下吧。

开始吧。
什么是工作流?
     一大堆专家有解释,挑选一个:一类能够完全自动执行的经营过程,根据一系列过程规则,将文档、信息或任务在不同的执行者之间进行传递与执行。简单的理解就是:信息(表单、文档等)在不同的人之间进行流转。
工作流的应用场景

关键业务流程:订单、报价处理、采购处理、合同审核、客户电话处理、供应链管理等

行政管理类:出差申请、加班申请、请假申请、用车申请、各种办公用品申请、购买申请、日报周报等凡是原来手工流转处理的行政表单

人事管理类:员工培训安排、绩效考评、职位变动处理、员工档案信息管理等

财务相关类:付款请求、应收款处理、日常报销处理、出差报销、预算和计划申请等

客户服务类:客户信息管理、客户投诉、请求处理、售后服务管理等

......

流程引擎功能特性

流程引擎的功能特性我这里就不详细说了,可以在上面我发的地址上找到《工作流功能特性.pptx》查看。
有一个单独的流程定义工具,流程引擎服务已WebApi的方式公开,支持与不同的开发语言及不同的前端交互访问,我这里搭建的前端用.net MVC搭建的。

关键技术点

流程引擎主要用到的一些关键技术点:WWF、EF、第三方工具DevExpress、MVC(and webapi)、Reapheal(流程跟踪图)、AngularJs(Web)、Bootstrap(Web)、RequrieJs(Web)、领域驱动(架构设计思路),这些技术不太熟悉的可以问一下google,细的技术我这里就没有列了,后续相关章节再细说,有问题随时提出来,大家一起探讨。

关键界面截图

下面截一些关键的图形,让大家对我搭建的流程引擎的功能特性有一些感官上的认识。

流程定义工具主体功能截图

审批活动任务分配规则配置界面

审批活动完成规则配置界面

审批活动路由选择规则配置界面

客户端登录界面(手机端)

待办已办界面(待办会收到一封待办邮件)

流程实例管理

流程表单

流程跟踪图

流程审批历史记录

其他功能这里有没有截图了,后续文章写到的时候再进行截图说明,当然也要看文章对大家有没有帮助再写后续的文章。

基于WWF搭建的通用审批流程的更多相关文章

  1. 案例 | 荔枝微课基于 kubernetes 搭建分布式压测系统

    王诚强,荔枝微课基础架构负责人.热衷于基础技术研发推广,致力于提供稳定高效的基础架构,推进了荔枝微课集群化从0到1的发展,云原生架构持续演进的实践者. 本文根据2021年4月10日深圳站举办的[腾讯云 ...

  2. YbSoftwareFactory 代码生成插件【十六】:Web 下灵活、强大的审批流程实现(含流程控制组件、流程设计器和表单设计器)

    程序=数据结构+算法,而企业级的软件=数据+流程,流程往往千差万别,客户自身有时都搞不清楚,随时变化的情况更是家常便饭,抛开功能等不谈,需求变化很大程度上就是流程的变化,流程的变化会给开发工作造成很大 ...

  3. 基于centos搭建微信小程序服务,配置及数据库等

    基于centos搭建小程序, ps:请提前20天准备将域名备案,申请ssl证书 实验上机地址:https://cloud.tencent.com/developer/labs/lab/10004 准备 ...

  4. 基于netty http协议栈的轻量级流程控制组件的实现

    今儿个是冬至,所谓“冬大过年”,公司也应景五点钟就放大伙儿回家吃饺子喝羊肉汤了,而我本着极高的职业素养依然坚持留在公司(实则因为没饺子吃没羊肉汤喝,只能呆公司吃食堂……).趁着这一个多小时的时间,想跟 ...

  5. FS BPM 业余研发(用户详细操作手册--单人串行/并行)之 深圳分公司技术部请假审批流程

    1.FS BPM 简介 BPM软件中BPM是英文字母缩写,大致有二个意思.第一.Business Process Management,即业务流程管理,是一套达成企业各种业 务环节整合的全面管理模式. ...

  6. 基于SpringBoot搭建应用开发框架(二) —— 登录认证

    零.前言 本文基于<基于SpringBoot搭建应用开发框架(一)——基础架构>,通过该文,熟悉了SpringBoot的用法,完成了应用框架底层的搭建. 在开始本文之前,底层这块已经有了很 ...

  7. 01 基于umi搭建React快速开发框架

    介绍 基于umi搭建一个快速开发框架,react 应用框架.umi 以路由为基础的,支持类 next.js 的约定式路由,以及各种进阶的路由功能,并以此进行功能扩展,比如支持路由级的按需加载. 我们会 ...

  8. 如何基于Go搭建一个大数据平台

    如何基于Go搭建一个大数据平台 - Go中国 - CSDN博客 https://blog.csdn.net/ra681t58cjxsgckj31/article/details/78333775 01 ...

  9. mockjs,json-server一起搭建前端通用的数据模拟框架教程

    无论是在工作,还是在业余时间做前端开发的时候,难免出现后端团队还没完成接口的开发,而前端团队却需要实现对应的功能,不要问为什么,这是肯定存在的.本篇文章就是基于此原因而产出的.希望对有这方面的需求的同 ...

随机推荐

  1. Eclipse 实现关键字自动补全功能

    一般默认情况下,Eclipse ,MyEclipse 的代码提示功能是比Microsoft Visual Studio的差很多的,主要是Eclipse ,MyEclipse本身有很多选项是默认关闭的, ...

  2. 手把手教你写Sublime中的Snippet

    手把手教你写Sublime中的Snippet Sublime Text号称最性感的编辑器, 并且越来越多人使用, 美观, 高效 关于如何使用Sublime text可以参考我的另一篇文章, 相信你会喜 ...

  3. BIOS MCSDK 2.0 学习笔记(一)

    MCSDK简介 BIOS MCSDK是为TI的高性能多核DSP提供的一套组件,包括: SYS/BIOS实时操作系统 Chip support libraries, drivers, and basic ...

  4. ireport5.6+jasperreport6.3开发(一)--中文环境配置在

    ireport在pdf的情况下无法显示中文字的解决方法 1,首先下载宋体的ttf(注意ttc的不行)下载链接如下(注意你可以用其他的ttf不一定要宋体) http://files.cnblogs.co ...

  5. MySQL FUNCTION 整理

    -- 返回最后一个INSERT查询中, AUTO_INCREMENT列设置的第一个表的值. SELECT LAST_INSERT_ID();

  6. 阿里巴巴、美团等各大互联网公司的 Java类 校招对本科生有什么要求?

    转载: 阿里巴巴.美团等各大互联网公司的 Java类 校招对本科生有什么要求?

  7. Spring的注解

    Action想使用serviceImpl时,都需要最原始的方法New一个接口,Service service = new serviceImpl();去实例化service了.都需要Action主动创 ...

  8. js点击按钮div显示,点击div或者body和按钮,div隐藏

    var box = document.getElementById("box"); var btn = document.getElementById("btn" ...

  9. Lua 与 Redis

    Lua 与 Redis 标签: Java与NoSQL 从 2.6版本 起, Redis 开始支持 Lua 脚本 让开发者自己扩展 Redis - 案例-实现访问频率限制: 实现访问者 $ip 在一定的 ...

  10. css动画与js动画的区别

    CSS动画 优点: (1)浏览器可以对动画进行优化.   1. 浏览器使用与 requestAnimationFrame 类似的机制,requestAnimationFrame比起setTimeout ...