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

    一.数组 Array 1.创建数组 /* 构造函数 */ var arr1 = new Array(); //创建一个空数组 var arr1 = new Array(5); //创建指定长度数组(数 ...

  2. Eclipse右下角一直提示Computing additional info解决办法

    今天不知道按了什么,发现Eclipse右下角一直提示computing additional info,打开progress,里面同时有好几条一样的信息,但是一直也执行不完,上网查找方案,发现原来是用 ...

  3. C#文件创建、修改、访问时间修改

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  4. kali 安装FTP服务器-vsftpd

    参考文章:Ubuntu 14.04 FTP服务器--vsftpd的安装和配置 本文将会介绍在kali2.0上安装vsftpd,主要分成四块:更新源列表.安装和配置vsftpd服务器.使用ftp命令传输 ...

  5. PHP 中 define() 和 const 定义常量时的区别

    自 PHP 5.3.0 起,有两种方式定义常量,使用 const 关键字或者 define() 函数:   1 2 const FOO = 'BAR'; define('FOO', 'BAR'); 这 ...

  6. Python中Paramiko协程方式详解

    什么是协程 协程我们可以看做是一种用户空间的线程. 操作系统对齐存在一无所知,需要用户自己去调度. 比如说进程,线程操作系统都是知道它们存在的.协程的话是用户空间的线程,操作系统是不知道的. 为什么要 ...

  7. 滴滴快车,安全把你带到凡科安全知识h5大赛

    滴滴出行提出"安全第一.体验第二.效率第三"的可持续发展宗旨.近期,滴滴出行还推广了"安全带"宣传,包括明星夫妻CP安全带姿势和明星后排安全带语音播报等,来提升 ...

  8. matplotlib总结

    主要使用matplot.pyplot import matplot.pyplot as plt plt.figure(1) plt.subplot(211) plt.plot(x,y, 'rs') p ...

  9. leetcode刷题全纪录(持续更新)

    2.Add Two Numbers 原题链接https://leetcode.com/problems/add-two-numbers/ AC解: public ListNode addTwoNumb ...

  10. 微信webview

    会露出灰色的地步 https://segmentfault.com/q/1010000004295291 有说用iscroll5来解决,但是明显有bug啊 https://segmentfault.c ...