SP2010开发和VS2010专家"食谱"--第二章节--工作流(1)--创建顺序工作流

        本章我们学习如何创建顺序工作流。我们模拟Credit审批流程。当用户添加项目到列表时,我们让工作流自动在插入的项目上启动,并通过审查用户的被要求的“Credit line”,并基于用户雇佣和Credit历史审批它。

Getting ready

        使用自定义列表模板创建Credit Approval。

下面截图是最终结果:

How to do it…

1. 管理员打开VS。
2. 新建项目(使用.NET Framework 3.5)。

3. 选择顺序工作流。
4. 命名SequentialWF。确定。
5. 默认部署为场解决方案,点击下一步。
6. 选择列表工作流。
7. 点击下一步,在与工作流关联的库或列表选择Credit Approval列表。其余默认。

8. 默认。
9. 完成。VS生成必要文件,默认打开工作流设计界面(包含工作流起始与结束点)。
10. 我们先用LogToHistoryListActivity创建工作流流图。LogToHistoryListActivity是SharePoint特定的活动,可以在工具箱中找到。

11. 在onWorkflowActivate下添加这个活动,在属性窗口更名为logWorkflowStarted。设置HistoryDescription属性为Workflow Started。

12. 拖拽IFElse活动,放在logWorkflowStarted下,命名为CheckEmploymentHistoryActivity。默认添加了两个分支。其一条件为真,另一个条件为假。
        A 添加logToHistoryListActivities到两个分支,命名左边GoodEmploymentHistoryBranch,右边BadEmploymentHistoryBranch。
        B 改变这些分支下的LogToHistoryListActivities的名称。GoodEmploymentHistoryBranch下为logGoodEmploymentHistory,另一个为logBadEmploymentHistory。
        C 设置logGoodEmploymentHistory的HistoryDescription属性为Employment History is good,另一个为Employment History is bad。

13. 分之上的感叹号表明评估条件还没有设置。这对于IfElse活动是必须的。没有这个,IfElse活动不知道执行哪个分支。从分支属性窗口,选择Code Condition,设置Condition属性为CheckEmploymentHistory。

14. 相同的方法,在GoodEmploymentHistoryBranch下,添加另外一个IfElse活动,命名为CheckCreditHistoryActivity,并在每个分支上添加LogToHistoryListActivity。设置代码条件,条件属性为CheckCreditHistory。GoodCreditHistoryBranch下的HistoryDescription是Credit History is good,另外一个是Credit History is bad。

15. 在代码视图中,添加代码判定employment history。因为工作流在插入到列表的项中运行,你可以在工作流中判定项目值。

16. 同样,添加代码判定credit history。

17. 按F5生成并运行项目。在项目创建过程中,工作流已经和列表关联。添加新项目到列表,填写所有域如下:

18. 一旦你保存项目到列表,工作流立刻被初始化,开始一个实例。因为没有用户互动,工作流完结,并显示状态:

19. 点击已完结。这将列出所有工作流流程期间的历史记录。

20. 添加更多项目到列表,使用不同employment history和credit history来判定工作流其他条件。

How it works...

        每个SharePoint工作流项目都以onWorkflowActivated活动开始。这个活动是强制的,因此VS自动添加。默认下,这个活动和变量workflowProperties变量(SPWorkflowActivationProperties类型)绑定。workflowProperties变量提供了关于当前工作流上下文、初始化工作流的项目、工作流隶属的列表、启动者以及其他的信息。SharePoint workflow runtime为我们填充这些值供我们使用。
        使用workflowProperties,我们能够访问初始化工作流的列表项目,并能够在代码中访问项目信息,创建IfElse活动的条件。代码相当简单,这样它核查输入的值,并作出决策。
        logToHistoryListActivity是SharePoint特定的活动,记录信息到历史记录列表。幕后的这个活动从ISharePointService接口调用LogToHistoryList方法,在Microsoft.SharePoint.Workflow.dll程序集中应用。下面代码展示此方法的方法签名

        这个方法中,你可以指定工作流启动的事件类型、工作流注释以及其他来将你的注释集中在一个指定的类别。
        ISharePointService接口使得活动能够与工作流实例之外交换数据。本例中,写入到历史记录列表。有其他方法如SendEmail、SetState等也是这个接口的一部分。
        在VS2010中,所有SharePoint project items,如事件接收器、工作流项目或内容类型,都有类似的结构,如有feature、project item的文件夹等。当我们的工作流项目被创建时,VS添加feature文件夹(含Feature.xml文件)和Workflow1文件夹(含Elements.xml、Workflow1.cs和Workflow1.designer.cs)。最后两个文件组成了工作流的活动,和与这些活动关联的代码。像事件接收器一样,Elements.xml文件提供了关于SharePoint的这个工作流的元数据信息。你可以随意命名此文件。但是VS总是在第一次创建项目时为所有SharePoint模板命名为Elements.xml。这里你设置属性如工作流名称、类文件、包含代码的程序集等。你也可以设置关联表单、初始表单,以及与工作流相关的任务表单。因为我们的工作流没有任何这些资源,我们不作任何改变。所有Elements.xml中属性如下:

        在项目创建向导中,我们设置我们的顺序工作流为列表工作流。这个信息可以在Workflow1文件夹的.spdata文件中找到。
        为了在项目资源管理器中列出这个文件,点击项目--显示所有文件。.spdata文件时SharePoint项目元数据信息文件。是XML格式。你不应该手动修改这个文件,因为它可能在你修改项目结构如添加和删除项目时,会被VS覆盖。这个文件在打包过程中使用。它包含关于解决方案中SharePoint Project item的信息。你也可以从Workflow1文件夹的属性窗口判定这个属性。在项目创建向导中,我们设置的另一个项目也可以在属性窗口中北判定。你可以查看与工作流相关联的历史记录列表和任务列表。目标列表属性指定了和工作流关联的列表。这只是为了调试目的。你可以总是在创建部署后,关联工作流到不同列表。你通过SharePoint用户界面或者使用Feature接收器的对象模型代码关联目标列表。你也可以关联工作流到内容类型,并部署它。你将在第四章节了解内容类型,以及如何关联工作流。

There's more...

        当我们生成并部署工作流到生产环境时,你有几种方法关联工作流和内容类型、列表或站点:
A 手动通过使用SharePoint用户界面。
B 通过feature接收器在feature激活过程。
        在第四章节,我们将向你展示如何使用feature接收器关联工作流到内容类型。它和关联工作流到列表的过程相同。这里是手动关联工作流到列表的方法。
1. 列表设置--工作流设置。
2. 点击添加工作流链接,
3. 输入唯一的工作流名称,选择支持的任务列表和历史记录列表。

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
功能模块如下: 个人办公 内部邮件 系统内部的信息交流、文件交流、信息提醒等 Internet邮件 接口外部邮箱,采用pop3和smtp协议代收代发 单位公告通知 管理公告通知、新闻等信息,可选定特定部门发送 投票 内部信息投票,每个用户拥有一次投票权利 手机短信 发送内部或者外部的手机短信消息,用于提醒等 日程安排 个人日程以日历形式重点体现,到期自动提醒 工作日志 工作过程中的记录以及工作日志等 通讯簿 包含各种分类,主要用于联系使用 个人设置 设置个人参数、邮箱参数、提醒参数、修改密码等 审批流程 新建工作 新建新的审批工作流,选定需要的工作新建即可 我的工作 个人发起的所有工作,包括已审批、未审批的所有工作 待办工作 需要当前用户进行办理或者审批的工作列表 已办工作 当前用户已经办理过的各项工作,包含历史工作 工作查询 查询系统中工作的信息,全面检索 工作监控 管理员监控运行,发现问题,可强制干预 归档工作 已办理完成的工作,自动进行归档 工作委托 当前用户指定办理人,所有待办事项自动提交到委托人办理 流程设置 自定义流程、自定义表单、表单各个字段在流程中权限控制 印章管理 管理公章与私章,查看印章的各项使用日志等 公文收发 接收文件 需要接受的文件,未签收时有颜色标注 传阅文件 传阅发送出去文件 接收分类 按照指定文件夹分类查看 传阅分类 传阅文件夹个人分类查看 工作管理 我的计划 个人工作计划,可共享给其他指定用户协同查看 协同计划 其他用户协同共享查看的工作计划信息 我的汇报 个人工作汇报,可共享给其他指定用户协同查看 协同汇报 其他用户协同共享查看的工作汇报信息 下属任务 我的任务 个人接收到的各项任务,提交工作任务报告 任务分配 对下属用户分派工作任务,实时监控任务情况 下属日程 下属员工的日程安排信息 下属日志 下属员工的工作日志信息 下属计划 下属员工的工作计划信息 下属汇报 下属员工的工作汇报信息 下属邮件 下属员工的内部邮件信息 下属客户 下属员工的客户资料信息 知识文档 个人文件 类同与网络硬盘、个人文件柜存储等文件存储类 单位文件 单位各类文件存储区 项目文件 项目实施、进度、评审等文件存储类 电子刊物 电子刊物等文件存储类 重要文件 特别重要的文件额外存储类 机密文件 机密文件存储类 知识库 各项知识库、技术资料、学习资料、单位规范等 技术文件 技术类文件存储 共享文件 查看各类共享的文件资料 回收站 删除的文件,可恢复或者彻底删除 扩展应用 资产管理 管理固定资产、仪器、办公用品等 培训管理 管理培训信息 会议管理 各项会议会议、上传会议记录 车辆管理 车辆信息、使用、维修、保险、加油等 图书管理 图书信息、借阅、归还等 档案卷库 各类档案分卷库保存、销毁 考试管理 在线考试、可分题库、题目类型、试卷制定、自动评分等 学习管理 在线学习、学习心得、领导批注等 客户管理 会员管理 会员信息管理,即为个人类别的客户 我的客户 个人客户资料、联系记录、需求等 客户管理 管理所有客户资料,联系人、联系记录、需求计划等 进销存类 产品管理 产品管理、库存列表显示、库存报警等 销售管理 销售合同、产品销售出库、利润等 采购管理 采购合同、产品采购入库等 供应商管理 管理各个供应商、供应商联系人 项目管理 项目信息 项目各项信息、状态等 评审信息 评审记录 项目进度 项目具体进度安排、时间进度 收款信息 收款具体情况,按照项目分类 项目实施 项目的具体实施情况 报销申请 项目类单独报销,也可使用审批流程中的自定义流程 报销管理 审批报销记录,复杂流程可使用审批流程 项目利润 核算具体利润情况 数据统计 数据各项统计 人力资源 考勤管理 考勤记录、考勤设置、查询、统计等 人事档案 人事基本资料维护 人事合同 合同管理情况 奖惩记录 奖惩各类记录管理 奖惩制度 各类具体制度安排、单位规章制度等。 应聘简历 简历管理,建立单位人才库 面试管理 具体面试情况管理 绩效考核 绩效考核数据上报等。 绩效参数 绩效各项参数的设置 薪酬管理 薪酬各类数据管理 薪酬参数 各个参数设置 报表中心 报表分类 报表分类设置,根据需要可分多个类别 报表管理 动态定制报表、动态数据抓取。报表可自定义。 信息交流 论坛BBS 论坛各个信息、帖子发帖信息 版块设置 版块具体设置 内部聊天室 各个聊天室进入后可自由聊天 聊天室设置 聊天室的基本设置 组织机构 单位信息查询 查询单位基本信息 部门信息查询 查询部门信息 用户信息查询 查询用户个人信息 附件程序 电话区号查询 电话区号查询 邮政编码查询 邮政编码查询,超级链接到网址 列车时刻查询 链接到列车时刻查询网址 公交线路查询 公交线路查询 法律法规查询 法律法规各项资料超级链接查询 休闲游戏 链接到游戏网 万年历 日历基本信息 世界时钟 时间查询 常用网址 常用导航资料 系统管理 单位信息管理 管理单位基本信息 部门信息管理 设置部门机构,支持多分公司,集团化应用 用户信息管理 用户信息设置、下属设置、权限设置 角色信息管理 定义权限角色列表,设置角色权限 红头文件模板 红头文件模板,编辑时直接可调用 系统日志管理 系统日志,登录、删除、查看等各个操作 文件上传设置 文件上传格式参数的设置 系统菜单维护 系统各个菜单管理、点设置、导航设置
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值