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 ...
随机推荐
- oracle 11g 如何创建、修改、删除list-list组合分区
Oracle11g在分区方面做了很大的提高,不但新增了4种复合分区类型,还增加了虚拟列分区.系统分区.INTERVAL分区等功能. 9i开始,Oracle就包括了2种复合分区,RANGE-HASH和R ...
- [转]C# 文本框只能输入数字
调用TextBox的KeyPress事件 private void txtUserId_KeyPress(object sender, KeyPressEventArgs e){ //如果输入的不是数 ...
- [JAVA词形还原工具]Snowball
demo:http://snowball.tartarus.org/demo.php jar download:http://snowball.tartarus.org/download.php (J ...
- 【MVC 过滤器的应用】ASP.NET MVC 如何统计 Action 方法的执行时间
代码如下: using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; u ...
- 一步一步实战扩展 ASP.NET Route,实现小写 URL、个性化 URL
介绍 不知道大家在使用 ASP.NET MVC 时有没有一些扩展要求,反正我是有很多.在使用 MVC 这几年(PS:我是从 1.0 开始学,2.0.3.0 开发至今),我深深地觉得 MVC 的扩展性真 ...
- 搭建windows下filezilla FTP服务器
FTP服务器必不可少,鉴于serv-u越来越冗余繁多的设置,个人还是比较喜欢简单.干净,满足需求即可的东东,所以选择filezilla.更主要的原因是ta是开元免费使用的,虽然免费,功能却齐全,我发现 ...
- java中子类与父类中隐含的this引用的分析
/* 看一下下面的程序,看是否你的答案和运行的答案是否一致! */ class Parent{ public int x; public Parent p; public Parent(){} pub ...
- ActionLink()与jquery更好地结合建造MVC网页:
众所周知,微软的MVC框架提供了一系列Helper以用于创建Ajax的网页. 但是,类似于Ajax.ActionLink()的方法创建的Ajax缺乏足够的灵活性,例如: 页面上有很多选项,我们需要根据 ...
- DDD:一个朋友对领域驱动的小结
首先我在一家老板有点关系的小软件公司带领一帮工作一两年的程序员做项目,这里要特别强调的是做项目(差不多是外包,只不过客户群体比较固定),项目就是今天项目A是这个逻辑,明天项目B是那个逻辑,两者之间的业 ...
- 【HTML5】Canvas 实现放大镜效果
图片放大镜 效果 在线演示 源码 原理 首先选择图片的一块区域,然后将这块区域放大,然后再绘制到原先的图片上,保证两块区域的中心点一致, 如下图所示: 初始化 <canvas id=&qu ...