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.html
解析:
本题的实质是要问如何知道某些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.aspxide
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这个属性。spa
<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。code
<RuleDesigner> <FieldBind> <Option/> </FieldBind> </RuleDesigner>
ii.Option: 用于填充非数据绑定的 DesignerType 下拉列表框控件。Option 元素包含可用于构建工做流语句的文本和值对。它们还包含有关其 .NET 数据类型的信息。【本题的选项B】
而RuleDesigner 的属性:Sentence指定了设计时显示的提示信息,其中的占位符号%与RuleDesigner中的FieldBind的ID属性配置。orm
2.Parameters: 用做全部 Parameter 元素的容器,它不包含任何可定义属性,但包括某个条件或操做方法签名中的参数的说明。Parameters 元素是一类复杂的元素类型,它可与 Actions 和 Conditions 元素一块儿使用以定义其参数。xml
本文将介绍如何开发一个自定义的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