·概念

  今天小编将和大家分享一个新的知识点——工作流。我们可以将工作流理解为工作流程,它在IT领域不算是“新人”了,工作流思想在上世纪60年代就有人提出过;70年代就有人开始尝试,但是由于当时许多的限制,工作流一直没有成功的被实现;80年代才出现第一批成功的工作流系统;90年代工作流技术走向了第一个发展高峰期;90年代后至今工作流出现了很多版本,但是主旨还是不变的,为了使我们的工作变得更加高效。

WfMC(Workflow Management Coalition)工作流管理联盟对工作流的定义是这样的:工作流是指一类能够完全自动执行的经营过程,根据一系列过程规则,将文档、信息或任务在不同的执行者之间进行传递与执行。说的直白一点工作流就是封装好的一种框架,我们利用这种框架来解决需要多个人或者多个部门协同完成的某项工作。工作流框架有许多都是开源的,我们可以尽情的拿来学习、研究最终运用到我们的系统中。

·分类

正如我们有许多程序设计语言一样,工作流也分为几类,下面就让我们来认识几种比较常见的工作流:
第一个我们要介绍微软的一款工作流软件——WWF(Microsoft Windows Workflow Foundation),这是微软出的一款框架,这款框架是和微软的VS兼容的,而且它是一款可扩展的框架。在VS中我们可以创建一个工作流项目,小编下午实验了一个小时没有实现,但是后面会进行再次尝试的。
以下内容为小编从网上找到的一些资源,供大家参考:.Net 三款工作流引擎比较:WWF、netBPM 和 ccflow
公司有两级领导,一级为主管Chief,一级为老板Boss
场景描述:

在某公司中,部门员工休假需要主管Chief的批准。 
  如果休假天数大于10天,则 在部门主管同意后,还必须老板Boss批准。 
  如果是部门主管请假则直接提交老板批准。 
  在休假被批准之前,申请人可以撤销休假申请。 
  申请批准后,对休假天数进行修改(也可以是其他业务数据处理)。 每次休假申请结束之 后,不管通过未通过或是否取消,都必须记录下来。 
  流程结束时,系统要把请假的结果信息Email给申请人。

对于大于10天的申请,如果部门主管已批准同意而上级主管还未批准,这时申请人撤销申请后,系统应发Email通知部门主管申请已撤销。

使用WWF创建流程:
1. 启动VS2010,创建一个顺序工作流控制台的程序。
2. 输入项目名称,点击确定,将自动进入流程设计界面。
3. 自动生成的Workflow1.cs是一个工作流组件。
4. 工具箱中拖放一个IfElse活动组件到设计界面上。
5. 此时就需要较多的编码工作和表单界面设计工作,如在idelseBranchActivitiy1左侧分支,用以判断请假人是否新申请请假还是取消请假,激活Conditiong属性,并且添加内部事件EvaluateQingJiaNoValidCode,并激活,在内部输入逻辑代码根据数据库记录判断请假是否通过,未通过则取消请假。也可以走另一分支EvaluateQingJiaCode继续申请新的请假;
6. 拖放parallelActivity1组件在IfElse节点后,用以判断请假人是否为Chief,设置sequenceActivity1中的codeActivity3属性的ExecuteCode处理程序为EvaluateChiefNoValidCode,并激活,内部代码用以判断不是Chief的情况,另一分支sequenceActivity1中则判断是Chief的情况;
7.如果不是Chief请假,则需要在EvaluateChiefNoValidCode中进行逻辑判断和表单的设计,填写请假申请单, 并拖放IfElse组件,实现其中的codeActivity6代码用以判断大于10天的情况。
8.F5即可运行控制台程序,其中的通过未通过或是否取消的数据需要记录,需要通过代码和设计数据库来实现,发送Email也需要代码实现,WWF没有提供该功能。

第二个我们介绍一下BMP,这个工作流全称是Business Process Management(业务流程管理)。它分为两款java版(JBPM)和.net版(NETBPM),它是开源的框架我们同样可以在网络上学习。在百科中有人阐述到JBPM是西方思想的结晶,跟中国理解的业务存在一定的差距。
JBPM的另一个特色是它使用Hibernate来管理它的数据库。Hibernate是目前Java领域非常流行的一种数据存储层解决方案,只要是 Hibernate 支持的数据库, JBPM 也就支持。通过Hibernate,JBPM将数据的管理职能分离出去,自己专注于业务逻辑的处理。
因为对hibernate不太理解,所以重要的理解工作还是留到后面有机会的情况下继续学习,推荐一篇看到的博客:工作流技术jbpm学习总结
BPM工作流的工作原理用图来表示的话如下所示:(场景类似上一个例子)
第三个工作流小编和大家说说Activiti工作流,这个工作流是从JBPM中发展而来的,老师上课的时候说过一句学校用的也是这个工作流,但是上网搜了一些资料,发现自己还是不太懂,只是能够理解它的意思。
小编就向大家推荐两篇文章吧:三分钟了解Activity工作流、Activiti - 新一代的开源 BPM 引擎
这次就先跟大家聊到这里,等下次我们深入了解一下工作流。
PS:给大家推荐一篇师哥写的文章:从程序员的角度来看为什么我们需要工作流

你明白工作流是什么、怎么用了吗?相关推荐

  1. 初生牛犊式工作流系统

    在论坛中常常会看到一些初生牛犊发布的,我设计的工作流系统 等等.对这类的帖子我都会饶有兴趣点击进去,准备仔细观摩和研究,但往往是一略而过,失望而归,或许是我的期望太高了,以为能得到更多的借鉴和启发. ...

  2. 程序员的编程能力层次模型

    编程技能层次 编程技能层次,指的程序员设计和编写程序的能力.这是程序员的根本. 0段-非程序员: 初学编程者,遇到问题,完全是懵懵懂懂,不知道该怎么编程解决问题.也就是说,还是门外汉,还不能称之为&q ...

  3. 程序员编程能力7个能力提升阶段分析

    前言 程序员的编程技能随着经验的积累,会逐步提高.我认为编程能力可以分为一些层次. 百牛信息技术bainiu.ltd整理发布于博客园 下面通过两个维度展开编程能力层次模型的讨论. 一个维度是编程技能层 ...

  4. 飞鸽传书2011绿色版简单性

    blojsom旨在保留blosxom设计中的 飞鸽传书2011 绿色版简单性,同时增加用户在爱好,模板以及插件方面的灵活性.blojsom sourceforge net/mapleblog 是一个基 ...

  5. java jbpm工作流,三分钟明白 Activity工作流,工作流jbpm

    三分钟明白 Activity工作流,工作流jbpm 一. 什么是工作流 Georgakopoulos给出的工作流定义是:工作流是将一组任务组织起来以完成某个经营过程:定义了任务的触发顺序和触发条件,每 ...

  6. 你明白什么是会签?工作流+会签应用

    1.什么是会签? 在流程业务管理中,任务是通常都是由一个人去处理的,而多个人同时处理一个任务,这种任务我们称之为会签任务.这种业务需求很常见,如一个请款单,领导审批环节中,就需要多个部门领导签字.在流 ...

  7. 老板要我开发一个简单的工作流引擎

    点击上方蓝色"方志朋",选择"设为星标"回复"666"获取独家整理的学习资料! 第1关 一天,老板找到我,说要做个简单的工作流引擎. 我查了 ...

  8. 惊了,老板要我开发一个工作流引擎!

    来源:https://www.cnblogs.com/duck-and-duck/p/14436373.html 第1关 一天,老板找到我,说要做个简单的工作流引擎. 我查了一天啥是工作流,然后做出了 ...

  9. 方法论 | 产品经理的原型工作流

    http://www.woshipm.com/rp/1991817.html 交互原型图是产品经理必备的技能,不管是小白,还是大牛:是实习生,还是总监,都是从画原型图开始的.好的交互原型图,可以让开发 ...

最新文章

  1. hdoj-2039-三角形
  2. 安卓系统dicom阅读器_用户分享:电子书阅读器Note Pro,一座贴心的移动图书馆...
  3. 文字投影_店铺门口投影灯,引领店铺新潮流
  4. onvif学习笔记10:获取RTSP流地址
  5. php请求要通过什么协议,php – 发送多个应用程序协议请求(类似于mailto:)
  6. 移动应用程序框架Kendo UI Mobile发布R2 2016 SP2
  7. 如何解决PHP startup: Unable to load dynamic library的错误
  8. Always On 集群监听创建失败问题
  9. 图像处理_OpenCV图像增强算法实现(直方图均衡化、拉普拉斯、Log、Gamma)
  10. 指纹匹配算法matlab,指纹识别算法matlab程序
  11. VS2015静态库的使用(下)
  12. NAO机器人语音识别
  13. 用计算机确定照片的黑白灰,终极解密 如何拍摄强烈震撼人心的黑白照片
  14. Vue和Element第一天
  15. 复化梯形公式matlab实验报告_复化梯形公式matlab
  16. 怎么修改视频文件的修改时间?
  17. 考研数学 第6讲 中值定理
  18. ACPC2015 K 树的直径
  19. 响铃:抖音微视撕逼,但音乐短视频只有“神曲”逻辑吗?
  20. 条码打印软件有关打印错误的解决方法

热门文章

  1. 计算机死机的解决方法及操作步骤,电脑突然死机怎么办?试试这几种方法
  2. Conda 使用‘conda activate’激活出错
  3. 网络编程——多播与广播
  4. 梅森公式确定系统的传递函数
  5. mozilla rhnio_如何在Mozilla Firefox中清除缓存和Cookie
  6. 【读书笔记】管理技巧-逆商思维,逆商:我们该如何应对坏事件_2020.07.01
  7. 树莓派旋转编码开关(python程序)
  8. 面临裁员调薪,你或许可以考虑这些新职业
  9. 和平精英改名服务器维护中,和平精英改名卡系统正在维护怎么办 和平精英改名封号解决方法...
  10. Facebook早期投资者赞助20名年轻人弃学创业(草根网)