SharePoint 的工作流是基于 Workflow Foundation 的,我们就先谈谈 WF,只有对 WF 有正确的认识,才能找到 SharePoint 工作流的解决方案。

Workflow Foundation 的 2 个最显著的特点

直接支持状态机模型

状态机是工作流的理论基础,但以前几乎没有工作流产品直接支持状态机,因为一般的工作流产品大都有直接的商业目的,目标就是应用,而状态机的技术难度较高,出于降低应用难度的原因,都会对状态机进行封装,使之可以在一个流程图中实现流程的跳转。通过牺牲功能,来换取易用性。

而 WF 的目标是一个基础的架构,所以可以直接支持状态机模型,虽然开发有较高的技术难度,却实现了完善的流程流转功能。而在 WF 之上,可以构建不同的平台,来满足不同应用的需要。

我们的工作流平台实施了近百个业务流程,都是采用状态机,没有一个能够通过顺序流来实现,所以状态机是 WF 应用的基础,只有通过状态机才能实现复杂的流程逻辑。有些人通过在顺序流中加入循环来实现流程的回退,这种发式大大的提高了流程的复杂度,并限制了流程的功能。

细粒度的Activity

WF 的基础构件是 Activity, Activity 的数量很多,功能很细;在编码中需要的所有流转相关的语句,几乎都有对应的 Activity;通过现有 Activity 的继承,可以方便的对功能进行扩充;通过 CodeActivity 可以方便的实现业务逻辑。

但有一些 WF 和 SharePoint 工作流解决方案却对 Activity 进行了封装,不再支持原生的 Activity, 对流程的开发可能有一些好处,但对业务逻辑的开发却带来了非常大的麻烦。

SharePoint 工作流和 WF 的关系

WF 是一个工作流引擎,实现了流程驱动的功能,对外部提供了流程驱动的接口,它既可以应用于人机交互的流程,也可以实现工业控制的流程。但是 WF 技术难度较高,代码复杂;在 WF 上开发一个最简单的人机交互流程,也需要了解其复杂的机制,实现流程驱动的接口,编写大量的代码。

SharePoint 是一个工作流平台,它应用于人机交互的流程,在 WF 流程驱动的接口上实现了角色或人员对流程驱动的功能。所以在 SharePoint 上,既不需要了解 WF 流程驱动接口的机制,也不需要编写代码,就可以实现一个简单的人机交互流程。

现有解决方案的问题

见过几个 SharePoint 的已完成和开发中的工作流产品和解决方案,但是都不支持状态机和原生的 Activity;不支持状态机,流程的回退和跳转功能的实现会很困难;不支持原生的 Activity,实现业务逻辑很麻烦。

WF 工作流的解决方案对经验有很高的要求,只有用过其它的工作流产品,对其不足有所了解,才能认识到 WF 的精妙;只有对 WF 有深入的了解,并进行过成功的应用,才能对 SharePoint 工作流有信心。虽然前面提到的那几个 SharePoint 工作流产品的设计和开发人员的技术水平还是比较高的,但经验上有所不足,连复杂的 WF 应用都没有成功实施过,如何设计开发 SharePoint 的工作流产品和解决方案。

成功的解决方案即能满足功能上的要求,同时它的应用也应该是一件简单的工作。

SharePoint 工作流解决方案的基础

综上所述要想成功应用 SharePoint 工作流,以下两点是基础:
1、采用 WF 的状态机模型
2、支持 WF 原生的 Activity

转载于:https://www.cnblogs.com/hayden/archive/2011/04/14/2015969.html

SharePoint 工作流解决方案(一):顺序工作流和状态机工作流相关推荐

  1. 数据流代替工作流解决方案

    主 题:   准备写一篇工作流的文章,标题就是"数据流代替工作流解决方案",请大家讨论一下工作流/数据流 作 者:   flygoldfish (长江支流) 等 级:   信 誉 ...

  2. SharePoint 状态机工作流解决方案(一):为什么要用状态机

    以前一直是作 Windows Workflow Foundation 的工作流平台,对 WF 比较熟悉,开发的工作流平台满足了公司实施的各种项目的工作流应用的需求. 最近作了一个 SharePoint ...

  3. SharePoint 2010 工作流解决方案:将 SharePoint Designer 可重用工作流导入 Visual Studio...

    在 SharePoint Designer 中创建的工作流(即,声明性工作流)由 XML 语句组成,而非由代码组成. SharePoint Designer 2010 引入了可重用工作流,它们是可由 ...

  4. 创建、部署和卸载SharePoint工作流解决方案包(WSP)

    在Visual Studio 2005时代,Visual Studio的插件提供了一个批处理文件(*.bat)来部署SharePoint工作流:在Visual Studio 2008时代,Visual ...

  5. 状态机工作流,顺序工作流和Flowchart

    什么是工作流,工作流可以说是对业务处理过程的建模,当我们设计工作流的时候,我们首先要分析业务处理过程中要经历的步骤.然后,我们就可以利用WF创建工作流模型来模拟业务的处理过程. WF工作流包含两种类型 ...

  6. 一步一步部署微软工作流解决方案(MWMS)到生产环境

    我向微软申请了MWMS,可拿到CD时解压不了,连DEMO环境都部署不了,要微软换吧,先叫我退回CD再寄,晕了... 于是我从网上下了原码,心想我用源码来搞吧,不要你的DEMO了,想从网上找相关的部署- ...

  7. wf工作流java_WF Workflow 状态机工作流 开发

    概述 工作流是对业务流程的建模,当我们设计工作流的时候,我们首先要分析业务处理过程中要经历的步骤.然后,我们就可以利用WF创建工作流模型来模拟业务的处理过程. 我们知道,WF包含两种类型的工作流:顺序 ...

  8. java 状态机工作流_7.4.14 状态机工作流(1)

    7.4.14  状态机工作流(1) 本节来了解SharePoint中的状态机工作流.状态机工作流主要跟以下几个活动有关. State:表示一个审批状态.内部可以放置StateInitializatio ...

  9. ASP.NET XML Web 服务的工作流解决方案

    XML Web 服务通过创建组成终端对终端工作流解决方案的应用程序的方式而启用了一个强大的机制.对于在需要长期运行的情节(如那些在业务对业务的事务处理中发现的)之中,这样的解决方案是比较适宜的. Bi ...

最新文章

  1. python3的数据类型以及模块的含义
  2. 对于索引(a,b,c),下列哪些说法是正确的
  3. 新手探索NLP(五)
  4. 集成信息医院需要什么样的集成平台
  5. 华为Hi Suite - Android智能设备新管家
  6. 当随机不够随机:一个在线扑克游戏的教训
  7. linux动态库与静态库混合连接
  8. eclipse快速定位到错误处
  9. 论文浅尝 | 用异源监督进行关系抽取:一种表示学习方法
  10. 更改tomcat自带的logo
  11. c语言中函数的递归调用,用C语言函数调用与递归解决问题
  12. VectorDraw web library javascript Crack
  13. 使用petalinux编译工程,报错:Unable to parse input tree,已解决
  14. 编译原理(3):词法分析
  15. 关于数据库表结构的设计
  16. java 3行4列二维数组_输入一个3行4列矩阵到二维数组中,并打印出来
  17. AES128加密-S盒和逆S盒构造推导及代码实现
  18. ppt html5转换,PPT还能转H5?这大概是制作招聘H5最快的方法了...
  19. JProfiler 9.1注册码
  20. 二分法求函数的零点(c语言)

热门文章

  1. Linux下docker安装配置oracle,oracle创建用户并远程连接,实测可用!
  2. java 数据结构 无向图_数据结构-无向图
  3. etcd 笔记(01)— etcd 简介、特点、应用场景、常用术语、分布式 CAP 理论、分布式原理
  4. python中如何对复杂的json数据快速查找key对应的value值(使用JsonSearch包)
  5. 谷歌BERT预训练源码解析(二):模型构建
  6. GPU、AI芯片技术市场分析
  7. 色彩(颜色)空间原理(下)
  8. Nucleus 实时操作系统中断(下)
  9. 数据治理(三):数据质量管理
  10. 大数据调度平台Airflow(一):什么是Airflow