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

         本章内容:

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/359925.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

sklearn中eof报错_sklearn中的数据预处理和特征工程

小伙伴们大家好~o( ̄▽ ̄)ブ,今天我们看一下Sklearn中的数据预处理和特征工程,老规矩还是先强调一下,我的开发环境是Jupyter lab,所用的库和版本大家参考:Python 3.7.1(你的版本至少要…

sql显示前10行数据_SPL 简化 SQL 案例详解:计算各组前 N 行

取出各组的前N行数据是较常见的运算,比如:每个月每种产品销量最高的五天是哪五天,每位员工涨薪最多的一次是哪次,高尔夫会员成绩最差的三次是哪三次,等等。在SQL中,这类运算要用窗口函数以及keep/top/rownu…

jquery 与其他库冲突解决方案

var j jQuery.noConflict();j("div p").hide(); // 基于 jQuery 的代码$("content").style.display "none"; // 基于其他库的 $() 代码转载于:https://www.cnblogs.com/timelesszhuang/p/3677845.html

11. mysql锁机制_深入探讨MySQL锁机制

MySQL锁机制究竟是怎样的呢?这是很多人都提到过的问题,下面就为您详细介绍MySQL锁机制方面的知识,希望可以让您MySQL锁机制有更多的了解。当前MySQL已经支持 ISAM, MyISAM, MEMORY (HEAP) 类型表的表级锁了,BDB 表支持页级锁&…

4月21日会议总结(整理—祁子梁)

会议成果: 1.今天我们确定了软件版本的时间alphe版在12周做出来,在我们内部测试基本通过。 bate版在13周发布和其他组作交换测试,在14周release版发布并给其他人使用体验准备15周的演讲。 2.同时确定了部分功能实现顺序,”谁是卧底…

通达信金融终端_尘缘整合_V7.12

http://pan.baidu.com/s/1gvtPO http://pan.baidu.com/s/1xqrk6 通达信金融终端_尘缘整合_V7.12转载于:https://www.cnblogs.com/mier001/p/3679701.html

5天玩转mysql视频教程_六天带你玩转MySQL

教程列表:01数据库课程介绍02数据库(基础知识)03数据库(关系型数据库)04数据库(关系型数据库关键字说明)05数据库(SQL)06数据库(mysql数据库)07数据库(mysql服务器数据对象)08SQL基本操作(新增数据库)09SQL基本操作(查看数据库)10SQL基本操作(更新数据库)12SQL基本操…

winxp精简版没有IIS的解决办法

首先在“开始”菜单的“运行”中输入“c:\Windows\inf\sysoc.inf”,系统会自动使用记事本打开sysoc.inf这个文件。在sysoc.inf中找到“[Components]”这一段,因为是XP简化版,所以里面东西很少,在里面加上这段:“iisiis…

ant vue 兼容性问题_ant design for vue 关于table的一些问题

1、为table添加分页: :pagination"pagination"pagination: {defaultPageSize: 10,showTotal: (total) > 共${total} 条数据,total: 0,showSizeChanger: true,pageSizeOptions: [10, 20, 50],onShowSizeChange: (current, pageSize) > {this.pageSiz…

Coder-Strike 2014 - Finals (online edition, Div. 2) A. Pasha and Hamsters

水题 #include <iostream> #include <vector> #include <algorithm>using namespace std;int main(){int n,a,b;cin >> n >>a >> b;vector<int> apple(n1,0);int k;for(int i 0 ; i < a; i) {cin>>k;apple[k] 1;}for(…

如何查看mysql的gtid_汇总丨MySQL GTID技术点,看这一篇就够了!

mysql> SELECT * FROM mysql.gtid_executed;mysql.gtid_executed表是由MySQL服务器提供给内部使用的。它允许副本在副本上禁用二进制日志记录时使用GTIDs&#xff0c;并允许在二进制日志丢失时保留GTID状态。RESET MASTER命令&#xff0c;gtid_executed表将被清除。服务意外…

为JPA的本机查询API键入安全查询

当您使用JPA时-有时-JPQL无法解决问题&#xff0c;您将不得不使用本机SQL。 从一开始&#xff0c;像Hibernate这样的ORM就为这些情况保留了一个开放的“后门”&#xff0c;并为Spring的JdbcTemplate &#xff0c; Apache DbUtils或jOOQ提供了类似的API&#xff0c;用于纯SQL 。…

vb.net详解MDI窗体操作方法

MDI窗体可以避免打开窗体的时候被无数个子窗体困扰&#xff0c;我将为大家一一的介绍一下vb.net中MDI窗体的操作方法 一、如何创建MDI窗体&#xff1f; 1、创建mdi主窗体 新建建立一个默认空白的Windows应用程序&#xff0c;在Form1窗体的属性窗口中找到IsMDIContainer 属性&am…

lokijs可以用mysql_JavaScript实现的内存数据库LokiJS介绍和入门实例_javascript技巧

LokiJS是一个内存数据库&#xff0c;将性能考虑放在第一位。LokiJS支持索引和更快的文档访问&#xff0c;执行性能非常好(近50万OPS/秒)。其内置DynamicView类可以用于数据子集的索引&#xff0c;甚至获取更快的性能。*阅读这篇文章来看一看LokiJS的性能表现。LokiJS支持collec…

除了修改WEBCONFIG会导致WEB服务重启外,还有其他的什么操作会导致重启?

1、修改WEBCONFIG文件 2、BIN文件夹下&#xff0c;添加、删除、覆盖文件 3、IIS应用程序池回收 参考文章:http://blog.csdn.net/hb_gx/archive/2007/05/21/1619941.aspx转载于:https://www.cnblogs.com/niaowo/p/3686097.html

院队选拔赛

结束了&#xff0c;大半年的干活结束了&#xff0c;后面就是自己算法的大干活了。恩恩&#xff0c;目测就是下一站省赛了&#xff0c;早点睡觉。晚安~ 留个地址后面ak掉。hust stodgersma 转载于:https://www.cnblogs.com/stodgers/p/3898317.html

pandaboard 安装_linux fb设备(pandaboard) | 学步园

fb设备主要作用是获取帧buffer&#xff0c; 并设置&#xff0c;用于显示。fbmem是主要的框架层和抽象层。 每个具体的平台的帧设备是在调用platform_driver_register注册之后&#xff0c;由其probe函数调用create framebuffer将fbinfo设置给registered_fb(数组&#xff0c; 不同…

WinForm窗体之间传值

当程序需要将一个窗体中的一些信息传给另一个窗体并让其使用时,就需要用到这个知识点 方法一:通过接受参数的窗体的构造函数传值 例:现有Form1和Form2两个窗体,二者都包含一个文本框,Form1还包含一个按钮.程序从Form1开始运行,当点击Form1上的按钮时,Form2弹出,并将Form1中文本…

多线程写mysql数据库_多线程读写mysql数据库

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼unsigned int __stdcall scan(PVOID pM){char ip[20];strcpy(ip, (char*)pM);MYSQL mysql;MYSQL_RES* result;//初始化mysql句柄mysql_init(&mysql);//连接mysql数据库if(!mysql_real_connect(&mysql,"localhost"…

C++学习之路,漫长而遥远

一、C/C语言 如果你的基础很差&#xff0c; 建议不要一开始就学C语言&#xff0c;从C开始学起&#xff0c;对程序有个初步的认识&#xff0c;循序渐进。C语言的书嘛&#xff0c;先买一本 300 页以内的&#xff0c;把书中的每一个例子都通过键盘敲打进去到 Visual studio里面去&…