月明星稀,却不见明月;蛾儿雪柳暗香飘过,纵使回首千百回,却不知,心已灭;壮志未酬,却落得个多情应该笑我;扬帆起航,却不知,帆已破。
这是我刚离职时的心情,曾几何时,真的想呆在一家公司,做一名优秀的技术管理人员,毫无保留的奉献自己的所有,将公司的业务、产品都提升一个层次。但企业管理的混乱,企业文化的丢失,公司对员工的差异化对待,公司领导的言而无信,让我对之前的公司完全的失去了信心,甚者开始了厌烦,毅然决然的离开的之前的公司,将自己推上了无业游民的行业。
对于一个从业人员来说,自己的职业道路无非就是两条道路(特别是搞软件的),一则努力成为公司中上层技术管理者,过着安稳的日子,我想这是绝大多数人的想法;要么就自己创业,闯出自己的一片天空,但这何尝容易。之前面试过一些出来创业的,一问他,什么都不知道,不由的在心里嘲笑,如今,嘲笑的是否又是我自己呢?如今的我,路又在何方,是继续走父母期望的第一条道路,还是走第二条道路,有谁能给我指导一下迷途呢,又有谁愿意陪我走第二条道路呢?
小小抱怨了一下,言归正传,接下来想写一系列的文章,关于流程引擎的,希望走在路上的伙伴一起探讨一下,也给后来者指引一些方向及思路吧。(这里给个建议:真正的技术资料只能在国外才能搜索得到,所以大家想要提升自己有水平,必须坚持用英文问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. 简单的canvas时钟

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. UITableView使用

    @多组数据和多组cell 1根数组内含数组时,只可以开启一组cell,内含多个数组时,可以开启多组cell 2多个数组开启多个cell时,既可以竖向开启,也可以横向里层开启,就好比猜题的模式 @注意点 ...

  3. Jekyll x Liquid 控制文章列表只显示特定类别的Post

    使用Liquid按照Category或者Tag过滤Post List 文章首发于szhshp的第三边境研究所(szhshp.org), 转载请注明 前段时间画了一些漫画,考虑把漫画相关的Post放到另 ...

  4. swift_枚举 | 可为空类型 | 枚举关联值 | 枚举递归 | 树的概念

    ***************可为空的类型 var demo2 :we_demo = nil 上面这个代码串的语法是错的 为什么呢, 在Swift中,所有的类型定义出来的属性的默认值都不可以是nil ...

  5. express+gulp构建项目(五)swig模板

    这里的文件负责配置swig模板引擎. index.js var jsonHash = require('./json_file'); var staticTag = require("./t ...

  6. 【转】Python 日期和时间

    本文转自:http://www.runoob.com/python/python-date-time.html Python 程序能用很多方式处理日期和时间,转换日期格式是一个常见的功能. Pytho ...

  7. WebService开发

    一.什么是WebService: 简单通俗来说,就是企业之间.网站之间通过Internet来访问并使用在线服务,一些数据,由于安全性问题,不能提供数据库给其他单位使用,这时候可以使   用WebSer ...

  8. Java中sql语句的引号问题

    1..sql语句 在数据库中,当我们查询语句时,会使用类似的语句: Select * from userinfo where userid='1' or 1; Select * from userin ...

  9. 在Mac上安装Sublime Text3的插件

    首先安装插件管理器Package Control 打开Sublime, 按下快捷键 ctrl+', 然后粘贴下面的代码,然后按回车键: import urllib.request,os; pf = ' ...

  10. [转] c# 模拟Asp.net页面中的某个按钮的点击,向web服务器发出请求

    在没有做题目中所述的内容的时候,感觉这应该是很简单的东西,但是当真正开始做的时候却发现,有很多问题现在在这里写出来,供和我一样水平不高的参考一下. 在写本文之前参照了一下文章 欢迎使用CSDN论坛阅读 ...