本章内容:

1. 创建顺序工作流。

2. 创建带有初始表单的网站工作流。

3. 从工作流创建任务。

4. 创建自定义任务表单。

Introduction

根据国际工作流联盟(http://www.WFMC.org)标准组织,完全致力于流程,这样定义工作流:
业务流程的自动化,整体或部分,其中文档、信息或任务根据一系列过程规则,从一个参与者传递到另一个参与者操作。
简单说来工作流时管理业务流程执行的系统。组织应用工作流有以下原因:
1. 审批和跟踪;
2. 高效;
3. 连贯一致;
4. 更好客户支持。
无论什么原因,它通过将业务流程打碎成小的活动,以逻辑顺序执行来应用。
工作流中,活动是最小的可执行片段。以管理雇员事件和费用报表的业务流程为例。这里,当雇员提交报表时,通知被发送到管理者,做出批准或拒绝的决策。一旦完成,通知会发送回到雇员。业务流程中发生的每一步都被认为是活动。这里有三种:
1. 标准活动;
2. 控制流活动;
3. 容器活动。
标准活动是执行像发送邮件,执行.NET代码或创建任务等的活动。控制流活动是用来作为决策点的活动,例如if-else、while循环等。这些活动要求你提供决策规则。这些规则可以被定义为基于声明或代码。声明的规则储存在拓展名为.rules的XML文件中。容器活动是可以主持其他活动,并创建综合活动。例如顺序活动,条件活动组等。一些控制流活动也是容器活动。
SharePoint 2010 工作流是基于Windows Workflow Foundation(WF)。WF是.NET 3.5 Framework的一部分。使用WF,你可以生成许多启用工作流的应用程序,不需要和SharePoint互动。你的应用程序也可以主持其他工作流并执行它们。这样,你的应用程序必须管理被主持的工作流的生命周期。因为工作流可能是长期运行的过程,系统重启或重置不应该终结工作流过程。工作流实例状态依然被保持在数据库或XML中。主持工作流的应用程序叫宿主应用程序。宿主应用程序可以提供自定义的交流和其他服务,使得你的工作流域外部应用程序高效互动。宿主拥有workflow runtime engines,以及一些runtime services帮助工作流活动执行它们的功能。
SharePoint 是一个宿主应用程序。提供runtime engine使工作流得以执行。有runtime服务如persistence服务--储存工作流时里状态到内容数据库。拥有communication服务管理SharePoint工作流上任务的沟通。任务是SharePoint域用户沟通的方式。事务服务也管理工作流中事务性情境,如出现异常时回滚到之前状态。。SharePoint也提供timer服务和tracking服务,保存工作流实例历史到历史列表。timer服务帮助自动一段时间后从无意义的状态重新工作流。在我们的例子中,如果管理者没有在5天内回应任务,我们就编写唤醒拖延活动给管理者发送警告。
WF支持状态机和顺序工作流。SharePoint基于WF支持这两种类型。顺序工作流中,活动被以逻辑顺序放置,有明确的开始和结束。活动向流图一样一步步执行。顺序工作流中没有返回到之前步骤。书序工作流适用于不需要人互动的自动流程,像移动文档从一个库到另一个库、或以用户提交以后特定的顺序,系统自动进行审批、库存核查和发送通知到完成部门。它们也被用在当你像让用户遵从某种模式。状态机工作流在第三章节“高级工作流”中讲解。VS2010提供了模板开发这两种工作流。为了定义工作流,我们创建一个项目,并添加活动到工作流designer界面中来构建我们的逻辑流。
SharePoint中,工作流定义可以与列表或文档库、内容类型和网站关联。当与列表或库关联时,工作流在项目上运行。你可以手动启动工作流或在新项目被创建或修改时自动启动。因为站点工作流没有指定运行的项目,所以必须通过点击链接这些外部事件启动工作流或者通过代码使用外部应用程序启动。
当工作流和内容类型关联时,工作流可以在任何项目上启动,只要包含这个内容类型就,而与项目所属的列表或库无关。我们将在第四章节“列表定义和内容类型”了解。
网站工作流对于SharePoint2010中是新引进的。不依靠列表或库。存在于网站劫镖,并在网站中关联的列表或库上运行。这些类型的工作流通常用于安排维护工作或者需要与不同列表中多个项目互动的工作流中。
状态机工作流和顺序工作流可以与之前列出的三种类别关联。你的业务要求是驱动因素,决定工作流类型,是否需要是网站或列表工作流。当关联时,你可以询问相关用户。这可以是配置信息,如审批组或数据连接字符串等,特定于工作流关联的网站或列表。通过提供表单,这样用户可以输入这些信息。这叫关联表单。你也可以向用户提供表单,在工作流启动实例中输入,及新建初始表单。初始表单用作获得用户输入。也被用作覆盖特定工作流实例的关联数据。任务表单用来在用户被分配任务时,呈现给用户。任务是SharePoint与用户互动的方法(关于执行的活动)。
除了提供框架开发自定义工作流,SharePoint也提供许多开箱即用OOB的工作流,如审批工作流、三态工作流、收集反馈工作流、处置工作流等。

转载于:https://www.cnblogs.com/crazygolf/p/3856813.html

SP2010开发和VS2010专家食谱--第二章节--工作流相关推荐

  1. SP2010开发和VS2010专家食谱--第一章节--列表和事件接收器(6)--使用列表事件接收器...

    直到现在我们学习了列表项目事件接收器,现在我们学习一下列表事件接收器吧.本文章中,无论何时在网站创建新列表,我们需要记录监察项到另一个列表. Getting ready 创建自定义列表EventRec ...

  2. SP2010开发和VS2010专家食谱--第三章节--高级工作流(2)--为沙盒解决方案创建自定义活动...

    尽管沙河解决方案功能有限,你仍然可以开发自定义活动,在SharePoint Designer中使用而不用改变web.config或添加.ACTION文件到根文件夹. 转载于:https://www.c ...

  3. SP2010开发和VS2010专家食谱--第六章节--Web Services和REST(5)--Inserting new contacts through REST...

    我们现在知道了我们可以使用REST请求从SharePoint列表获得数据,如何从客户端应用程序添加数据到列表呢?本文中,我们将探讨如何做到. 转载于:https://www.cnblogs.com/c ...

  4. SP2010开发和VS2010专家食谱--第四章节—列表定义和内容类型(7)--创建列表定义...

    之前当我们部署内容类型时,我们不得不在SharePoint用户界面手动创建基于内容类型的列表.我们可以使用VS而不用SharePoint用户界面创建基于内容类型的列表实例. 转载于:https://w ...

  5. SP2010开发和VS2010专家食谱--第七章节--使用客户端对象模型(2)--Handling exceptions...

    之前文章中,我们创建了带有自定义域和一些数据的列表.如果这些调用成批发送给服务器,我们如何处理异常呢?本文中,我们将创建控制台应用程序处理异常. 转载于:https://www.cnblogs.com ...

  6. 《Android 开发入门与实战(第二版)》——6.6节配置改变

    本节书摘来自异步社区<Android 开发入门与实战(第二版)>一书中的第6章,第6.6节配置改变,作者eoe移动开发者社区 组编 , 姚尚朗 , 靳岩,更多章节内容可以访问云栖社区&qu ...

  7. node.js学习-第二章节

    目录 前言 学习NodeJS的意义 01-nodejs搭建静态资源服务器 1.1-nodejs搭建静态资源服务器01 1.2-nodejs搭建静态资源服务器02 02-nodejs接收get请求与po ...

  8. 《Android 开发入门与实战(第二版)》——导读

    本节书摘来自异步社区<Android 开发入门与实战(第二版)>一书中的目录,作者eoe移动开发者社区 组编 , 姚尚朗 , 靳岩,更多章节内容可以访问云栖社区"异步社区&quo ...

  9. 《Android 开发入门与实战(第二版)》——6.10节本章小结

    本节书摘来自异步社区<Android 开发入门与实战(第二版)>一书中的第6章,第6.10节本章小结,作者eoe移动开发者社区 组编 , 姚尚朗 , 靳岩,更多章节内容可以访问云栖社区&q ...

最新文章

  1. 新版数采仪问题解决全记录-升级失败问题
  2. 11g RAC OCR,VOTING DISK存储全部损坏,利用自动备份,恢复OCR,VOTING DISK到新存储。...
  3. npm运行报错:Error: ENOSPC: System limit for number of file watchers reached
  4. Codeforces Beta Round #75 (Div. 1 Only) B. Queue 线段树。单点更新
  5. ip和nmcli命令的的使用方法
  6. Linux嵌入式开发_修改机器码
  7. 图:双屏前期设置方法[又名:系统扩展桌面设置方法-双屏双显扩展桌面技术前期设置方法-PPT分屏技术设置方法]
  8. Rust: Integers: Recreation One
  9. Visual Studio Installer 一直提取文件0B不动怎么办:修改DNS教程
  10. SSID,BSSID,ESSID 区别介绍
  11. 尼古拉斯·凯奇:名门传奇
  12. 一个程序员的十年程序人生感悟
  13. 夜读 | 比管理时间更重要的,是管理精力
  14. JGG | 河北大学杜会龙组综述植物泛基因组学研究
  15. 降噪无线耳机推荐,热销火爆的降噪蓝牙耳机分享
  16. 一个月裂变50多万人?商城引流模式玩法——分享购
  17. 切换windows系统版本
  18. 【05】数据可视化:02-ECharts数据可视化案例_立可得智能看板
  19. 第一章 初步认识数据透视表
  20. 通过拼音模糊搜索汉字的功能实现

热门文章

  1. pcb板材的tg是什么_做到这6点,PCB过回焊炉不会出现板弯及板翘!
  2. js实现数组降维算法[不准用Array.prototype.flat的api]
  3. php auth和rbac区别,php中比rbac更好的权限认证的方式auth类认证
  4. react获取全局_使用react hooks实现的简单全局状态管理
  5. oracle 查询不同编号的时间最小记录_投稿 | ORACLE amp; PostgreSql 利用伪列删除完全重复的两行...
  6. 艾默生变频器报警PHP,艾默生ct变频器报警ou 这个CT的变频器报警UU怎么解决?
  7. mysql bc_正则表达式——MySQL搜索过滤
  8. 必看!工业交换机必须满足这些标准才能称合格
  9. 如何识别交换机的性能优劣?
  10. 【渝粤教育】国家开放大学2018年秋季 1087t数学分析专题研究 参考试题