Sharepoint学习笔记—习题系列--70-573习题解析 -(Q104-Q106)
Question 104
You plan to create a workflow that has the following three activities:
CreateTask
OnTaskChanged
CompleteTask
You need to ensure that each time the workflow starts, the three activities are linked to a single task.
What should you do?
A. Configure all activities to use the same TaskId.
B. Configure all activities to use the same correlation token.
C. Create an SPItemEventReceiver event receiver for the SharePoint Tasks list.
D. Create an SPWorkflowEventReceiver event receiver for the SharePoint Tasks list.
解析:
本题的实质是要问如何知道某些Activities是属于同一个工作流任务?
如同部队有番号,识别哪些战士属于哪个部队就要看他所在部队的番号。Sharepoint当然也采用了类似的机制,即:令牌
Sharepoint将相关令牌(Correlation Token) 作为唯一标识符,以便在工作流中的对象与承载 Windows Workflow Foundation (WF) 工作流运行时的环境之间进行映射。Windows Workflow Foundation必须为工作流提供某种与其他软件进行通信的方式。Windows Workflow Foundation运行时充当与所有工作流之间的所有通信的中间媒介。传入请求到达时,运行时会接收该请求,然后确定将该请求发送到哪个工作流实例。之后运行时会将请求传递到目标实例。实际上,Windows Workflow Foundation充当了与工作流之外的软件进行通信的代理。
对于下列每一项,您都将拥有单独的相关令牌:
1.工作流本身
2,需要在工作流中引用的各项任务 (即本题所说的情况)
不要为工作流任务和工作流本身分配相同的相关令牌。
为 OnWorkflowActivated 活动中的工作流声明相关令牌。然后,针对影响整个工作流的每个活动,将该活动的相关令牌绑定到 OnWorkflowActivated 活动的相关令牌。
工作流中的每个特定任务都应有其自己的相关令牌,每个相关活动都可以使用该相关令牌访问特定于任务的相同信息。例如,如果想在工作流中引用 CreateTask、CompleteTask 和 OnTaskChanged 活动中的相同任务,应将这些活动中的每个活动的 CorrelationToken 属性绑定到相同的相关令牌变量【这就是本题的答案】
再来看其它选项:
选项A. Configure all activities to use the same TaskId. TaskID就是用来标识WorkFlowTask的,既然如此为什么不能像令牌一样用来作为活动的标识呢?问题在于在TaskCreated Acitivity执行完成前,你是得不到TaskID的,原因是此时工作流任务创建的信息还没有被Sharepoint工作流捕获。 由此以来你又如何为CreateTask Activity分配TaskID?
选项C. Create an SPItemEventReceiver event receiver for the SharePoint Tasks list. 这里的SPItemEventReceiver类是用来捕获发生在Item上的事件的,它并不能用来标识工作流任务内部的各个活动。
选项D. Create an SPWorkflowEventReceiver event receiver for the SharePoint Tasks list.这里的 SPWorkflowEventReceiver类不可被实例化,它只是一个基类,主要用来创建捕获工作流事件的相关类的,也不能用来标识工作流任务内部的各个活动。
所以本题目正确选项应该是B
参考:
http://msdn.microsoft.com/en-us/library/ms475438.aspx
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spitemeventreceiver.aspx
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.workflow.spworkfloweventreceiver.aspx
Question 105
You create a custom workflow by using Microsoft Visual Studio 2010.
You need to specify a custom InfoPath workflow initiation form in the workflow element manifest file.
Which attribute should you configure?
A. Association_FormURN
B. Instantiation_FieldML
C. Instantiation_FormURN
D. InstantiationUrl
解析:
本题使用VS2010创建用户自定义工作流,想给此工作流指派一个InfoPath初始化表单,在工作流模板定义 XML 中如何实现?
我们知道,在开始工作流之前,可以向用户显示关联和初始表单,以便他们可以提前为工作流设置参数和其他信息。当工作流应用于特定的列表、库或内容类型时,关联表单处理工作流;当工作流应用于特定的 SharePoint 项目时,初始表单处理工作流。
我们还可以在工作流模板定义中包含预关联数据。例如,您可能希望使用默认值预先填充关联表单上的字段。
下面我们来看看如何在工作流模板定义 XML 中分别指定关联表单和初始化表单
1.指定关联表单:
对于所有工作流表单,可以在工作流模板定义 XML 中指定工作流的关联表单。为此,请编辑两个 XML 元素。
i.将 Workflow 元素的 AssociationURL 属性的值设置为“_layouts/CstWrkflIP.aspx”。这是随 Microsoft SharePoint Server 2010 提供的 .aspx 页面;此页面包含用于承载 Microsoft InfoPath 2010 工作流关联表单的 InfoPath Forms Services Web 部件:
ii. 将 Association_FormURN 元素添加到工作流模板定义中的 Metadata 元素。使用此元素可以指定您要用于工作流关联的 Office InfoPath 2007 表单的 URN。
2.指定初始化表单
若要指定 InfoPath 2010 工作流初始表单,您必须编辑工作流模板定义中的两个元素。
i. 将 Workflow 元素的 InstantiationURL 属性的值设置为“_layouts/IniWrkflIP.aspx”。这是随 SharePoint Server 2010 提供的 .aspx 页面;此页面包含用于承载 InfoPath 2010 工作流初始表单的 Office InfoPath Forms Services Web 部件
ii.将 Instantiation_FormURN 元素添加到工作流模板定义中的 Metadata 元素。使用此元素可以指定您要用于工作流启动的 InfoPath 2010 表单的 URN。
所以,根据上面的描述就解决了选项A,选项C与选项D。且选项C就是本题的答案。
至于选项 B. Instantiation_FieldML,从以下工作流模板Workflow的Element元素描述可以看出,没有Instantiation_FieldML这个属性。
<Workflow
Title="Text"
Name="Text"
CodeBesideAssembly="Text"
CodeBesideClass="Text"
Description="Text"
Id="Text"
EngineClass="Text"
EngineAssembly="Text"
AssociationUrl="Text"
InstantiationUrl="Text"
ModificationUrl="Text"
StatusUrl="Text"
TaskListContentTypeId="Text" >
</Workflow>
所以本题目正确选项应该是C
参考:
http://msdn.microsoft.com/en-us/library/aa672715.aspx
http://msdn.microsoft.com/zh-cn/library/ms563325(v=office.14).aspx
http://msdn.microsoft.com/zh-cn/library/ms481192(v=office.14).aspx
Question 106
You are creating a custom workflow action to be used in Microsoft SharePoint Designer reusable workflows.
The action programmatically creates a SharePoint site named Site1 at a specific URL. The workflow actions schema file contains the following code segment.
<WorkflowInfo>
<Actions Sequential="then" Parallel="and">
<Action Name="Create Site"
ClassName="SPDActivityDemo.CreateSite"
Assembly="SPDActivityDemo, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1a4a7a2c3215a71b"
AppliesTo="all"
Category="Test">
<Parameters>
<Parameter Name="Url" Type="System.String, mscorlib" Direction="In" />
<Parameters>
</Action>
</Actions>
</WorkflowInfo>
You need to ensure that users can specify the URL property of the action in SharePoint Designer.
What should you add to the schema of the action?
A. <xml version="1.0" encoding="utf-8">
B. <Option Name="equals" Value="Equal"/>
C. <Parameter Name="Url" Type="System.String, mscorlib" Direction="Out" />
D. <RuleDesigner Sentence="Create site at Url %1.">
<FieldBind Field="Url" Text="Url of site" Id="1" DesignerType="TextArea" />
</RuleDesigner>
解析:
本题是讲你创建了一个自定义工作流活动以用于Sharepoint Designer,此活动所作的工作就是按给定的URL创建Sharepoint Site,其中URL可由Sharepoint Designer的设计者确定,如何完善本题题干中的代码?
SharePoint2010提供了很多有用的开箱即用的Activity(活动action),我们可以在SharePoint Designer 2010 中看到这些自带的操作(actions).但有时当这些需求不能满足我的需求,但是我又想用开箱即用的Activity(活动action)来设计工作流,这时我们就需要开发自己的Workflow Activity(action),即本题的目的。
通常我们在VS2010中开发Custom Workflow Action的过程中,在我们完成了Action的后台逻辑代码之后,我们就需要添加一个xml配置文件,其后缀名为Actions,此Action文件会被SharePoint Desginer 2010识别。
下面就是一个Action代码
<WorkflowInfo>
<Conditions>…</Conditions>
<Actions Sequential="then" Parallel="and">
<Action Name="Update my custom SharePoint list"
ClassName="CustomActivities.OrderListFunctions"
Assembly="CustomActivities,
PublicKeyToken=b03f5f7f11d50a3a,
Version=1.0.0.0,
Culture=neutral"
Category="My Custom Actions"
CreatesTask="true"
CreatesInList="UpdateList"
AppliesTo="all"
ListModeration="false"
UsesCurrentItem="true">
<RuleDesigner Sentence="Update %1">
<FieldBind Field="UpdateList"
Function="UpdateOrderList"
DesignerType="ChooseListItem"
ID="1"
Text="My Custom List">
</FieldBind>
</RuleDesigner>
<Parameters>
<Parameter Type="System.String, mscorlib"
Direction="In"
Name="UpdateList"
</Parameters>
</Action>
</Actions>
</WorkflowInfo>
从代码中我们知道,<Action>节下只有两个子元素:
1.RuleDesigner: 此元素用于描述工作流设计界面上对添加此Action的参数。这也是本题需要的,即向Sharepoint Designer这个设计器提供本Action的参数输入。它又包含两个子元素:
i.FieldBind: FieldBind 元素是 RuleDesigner 元素的子级。这些元素共同用于创建一个易读的语句,此语句用于描述需要计算的条件或必须执行的活动。如果这些元素构造正确,则它们还可用于在语句中插入变量(如超链接),以便无代码工作流编辑器可以在运行工作流时将动态值替换到工作流中。FieldBind 元素将工作流创建者输入的内容映射到参数,这些参数然后传递给 Microsoft SharePoint Foundation 2010。
<RuleDesigner>
<FieldBind>
<Option/>
</FieldBind>
</RuleDesigner>
ii.Option: 用于填充非数据绑定的 DesignerType 下拉列表框控件。Option 元素包含可用于构建工作流语句的文本和值对。它们还包含有关其 .NET 数据类型的信息。【本题的选项B】
而RuleDesigner 的属性:Sentence指定了设计时显示的提示信息,其中的占位符号%与RuleDesigner中的FieldBind的ID属性配置。
2.Parameters: 用作所有 Parameter 元素的容器,它不包含任何可定义属性,但包括某个条件或操作方法签名中的参数的说明。Parameters 元素是一类复杂的元素类型,它可与 Actions 和 Conditions 元素一起使用以定义其参数。
本文将介绍如何开发一个自定义的Workflow Activity(action),并在SharePoint Designer 2010 使用该自定义的Workflow Activity。
所以,综上所述,只有选项D是比较完整的对于Action的参数的定义。选项B.C都只是其中的局部描述。
而至于选项A <xml version="1.0" encoding="utf-8">:这只是在XML标记语言文件中用于声明XML的版本和编码方式的声明语句,与本题无关。
所以本题目正确选项应该是D
参考:
http://msdn.microsoft.com/en-us/library/bb897951.aspx
http://msdn.microsoft.com/zh-cn/library/bb897917.aspx
http://msdn.microsoft.com/zh-cn/library/bb897971.aspx
http://msdn.microsoft.com/zh-cn/library/bb897931(v=office.14).aspx
Sharepoint学习笔记—习题系列--70-573习题解析 -(Q104-Q106)的更多相关文章
- Sharepoint学习笔记—ECM系列—文档列表的Metedata Navigation与Key Filter功能的实现
如果一个文档列表中存放了成百上千的文档,想要快速的找到你想要的还真不是件容易的事,Sharepoint提供了Metedata Navigation与Key Filter功能可以帮助我们快速的过滤和定位 ...
- Sharepoint学习笔记—ECM系列--文档集(Document Set)的实现
文档集是 SharePoint Server 2010 中的一项新功能,它使组织能够管理单个可交付文档或工作产品(可包含多个文档或文件).文档集是特殊类型的文件夹,它合并了唯一的文档集属性以及文件夹和 ...
- Sharepoint学习笔记—习题系列--70-576习题解析 --索引目录
Sharepoint学习笔记—习题系列--70-576习题解析 为便于查阅,这里整理并列出了70-576习题解析系列的所有问题,有些内容可能会在以后更新. 需要事先申明的是: 1. ...
- Sharepoint学习笔记—习题系列--70-573习题解析 --索引目录
Sharepoint学习笔记—习题系列--70-573习题解析 为便于查阅,这里整理并列出了我前面播客中的关于70-573习题解析系列的所有问题,有些内容可能会在以后更新, ...
- Deep Learning(深度学习)学习笔记整理系列之(五)
Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...
- Deep Learning(深度学习)学习笔记整理系列之(八)
Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...
- Deep Learning(深度学习)学习笔记整理系列之(七)
Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...
- Deep Learning(深度学习)学习笔记整理系列之(六)
Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...
- Deep Learning(深度学习)学习笔记整理系列之(四)
Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...
- Deep Learning(深度学习)学习笔记整理系列之(三)
Deep Learning(深度学习)学习笔记整理系列 zouxy09@qq.com http://blog.csdn.net/zouxy09 作者:Zouxy version 1.0 2013-04 ...
随机推荐
- Entity Framework访问MySQL数据库的存储过程并获取返回值
一.创建MySql存储过程 1, CREATE PROCEDURE `InsertAlarmInfo`(in businessindex int, in providerindex int, in ...
- jackson反序列化时忽略不需要的字段
有时候,如果数据库表中增加一个字段,但返回的JSON字符串中含有我们并不需要的字段,那么当对应的实体类中不含有该字段时,会抛出一个异常,告诉你有些字段没有在实体类中找到.解决办法很简单,在声明Obje ...
- HT全矢量化的图形组件设计
HT一直被客户称道的就是其全矢量化的设计特色,矢量相比传统图片好处太多了: 矢量可无级缩放,界面不失真不模糊 描述矢量的文本内容远比图片小得多 目前各种window.devicePixelRatio不 ...
- 五、Request
1. Request 由于python函数所有变量都没有显示类型声明,特别是函数的输入参数,输出参数,因此在阅读代码时会造成比较大的困扰,比如大部分处理函数都有request输入参数,不同模 ...
- javascript之IE版本检测
近年来随着操作系统的升级以及各种新技术的开发普及,抛弃低版本IE已经是大势所趋,这对于前端人员来时是个好消息,可以不用花费太多的时间来做低版本的兼容,很多站点采用给予低版本IE以提示的方式(恩,很友好 ...
- SpringMVC核心——参数获取与Servlet资源获取问题
一.SpringMVC 使用 @PathVariable.@RequestParam.@RequestHeader.@CookieValue 等来解决参数获取问题. 1. @PathVariable: ...
- 浏览器 UserAgent 相关知识整理
总结整理时下流行的浏览器User-Agent大全 浏览器userAgent大全 各种浏览器UserAgent一览表(桌面+移动) 使用JS判断移动设备的终端类型(浏览器UserAgent) JS通过分 ...
- Winform开发框架的业务对象统一调用方式
在这个纷繁的社会里面,统一性的特点能够带来很多高效的产出.牢固的记忆,这种特征无论对于企业.个人的开发工作,知识的传承都有着非常重要的作用,Winfrom框架本身就是基于这个理念而生,从统一的数据库设 ...
- Unity烂笔头1-自定义INSPECTOR属性窗口节点项
1.添加输入框和标签 LevelScript: using UnityEngine; using System.Collections; public class LevelScript : Mono ...
- [CLR via C#]16. 数组
数组是允许将多个数据项当作一个集合来处理的机制.CLR支持一维数组.多维数组和交错数据(即由数组构成的数组).所有数组类型都隐式地从System.Array抽象类派生,后者又派生自System.Obj ...