步骤 7(可选):在 Outlook 任务窗格中显示外部数据部件 (Layout.xml)
利用 Microsoft Business Connectivity Services (BCS),您可以在 Outlook 任务窗格中轻松显示外部数据部件。Business Connectivity Services 提供两种外部数据部件,丰富列表部件和 InfoPath 部件。丰富列表部件显示外部系统中的条目列表。InfoPath 部件可以显示任何 InfoPath 表单(即使是代码隐藏的表单)。
上次修改时间: 2011年8月22日
适用范围: SharePoint Server 2010
图 1 显示(在代码示例:AdventureWorks2008 声明性 Outlook 解决方案示例中)相关客户订单通过丰富列表部件在列表中的显示方式,以及订单详细信息在 InfoPath 部件中的显示方式。
图 1. 在 Outlook 任务窗格中显示订单历史记录的外部数据部件
除了这两种外部数据部件,您还可以显示任何已由开发人员创建的自定义外部数据部件。
在具有要在任务窗格中显示的外部数据部件后,可以创建布局文件。该文件定义显示在任务窗格中的控件,应使用哪些外部内容类型填充它们,以及控件公开的任何其他自定义属性。
最后,您应使用解决方案中所需任务窗格行为更新 OIR.config 文件。
创建任务窗格布局
使用 Microsoft SharePoint Designer 2010 创建订单外部内容类型的外部列表。有关详细信息,请参阅如何:在 SharePoint 中创建外部列表。
创建外部列表的 InfoPath 表单。若要执行此操作,请参阅如何:使用 Microsoft InfoPath 自定义外部列表窗体。然后,使用 SharePoint Designer 2010 导出该表单。
在 Microsoft InfoPath 2010 Designer 中打开表单并按照所需方式对其进行自定义。
将表单保存至解决方案项目文件夹,然后将其关闭。
创建布局文件以指定丰富列表部件和 InfoPath 表单部件在 Outlook 任务窗格中的布局。您可以使用 BCS 项目生成器工具(该链接可能指向英文页面)基于 BDC 模型创建窗体区域清单文件。
您还可以手动创作窗体区域清单,方法如下。
复制 Microsoft SharePoint 2010 软件开发工具包 (SDK) 中所提供的模板:Layout.xml,并将其保存至 Solution Artifacts 文件夹(命名为 RelatedOrderHeader.xml)。
在 XML 编辑器中打开 RelatedOrderHeader.xml 进行编辑。如果是在 Visual Studio 中打开 XML 文件,请附加布局架构 (LayoutDefinitions.xsd)。这会为您提供 IntelliSense 功能,还会帮助您创建有效的条目。请参阅架构文档的 LayoutDefinitions 架构和 LayoutDefinitions 架构自定义属性。
将 XML 中标有 EnterX 的值替换为有效值。下面的 XML 示例演示了文件在编辑后的外观。
<?xml version="1.0" encoding="utf-8" ?> <Container ContainerType="Stack" xmlns="https://schemas.microsoft.com/office/2009/05/BusinessApplications/Layout" xmlns:loc="https://schemas.microsoft.com/office/2009/05/BusinessApplications/Localization"> <CustomProperties> </CustomProperties> <Children> <OBPart PartType="List" DataSourceName="PrimaryEntityNameInContext" Text="Related Order" Description="A list of all related Orders" > <CustomProperties > <CustomProperty Name="DataSourceMode" Value="AssociationList" /> <CustomProperty Name="DataMemberName" Value="GetOrdersForCustomer" /> <CustomProperty Name="MaximumVisibleRowCount" Value="12" /> <CustomProperty Name="DefaultActionName" Value="Edit" /> <CustomProperty Name="DefaultActionSource" Value="TargetContext" /> <CustomProperty Name="ConsumerPartName" Value="IPOBP" /> <CustomProperty Name="ColumnsXml" Value="<Columns>< Column DisplayName=" " Name="$SyncState$" />< Column FormatString="d" DisplayName="Order Date" Name="OrderDate"/><Column FormatString="#.00" DisplayName="Total Due" Name=" TotalDue" /></Columns>" /> </CustomProperties> <ActionNames> </ActionNames> </OBPart> <OBPart PartType="InfoPath"> <CustomProperties> <CustomProperty Name="Name" Value="IPOBP" /> <CustomProperty Name="FormLocation" Value="OrderHeaderTemplate.xsn" /> <CustomProperty Name="IsReadOnly" Value="True" /> <CustomProperty Name="Height" Value="1000" /> <CustomProperty Name="ViewName" Value="taskpaneview" /> </CustomProperties> </OBPart> </Children> </Container>
保存并关闭该文件。
打开 OIR.config 文件进行编辑。将此条目添加到客户 ContextDefinition 的底部,当客户位于 Outlook 环境中时,告知 BCS 客户端运行时您要在任务窗格中承载此布局。
<Declarative:Layouts> <Declarative:Layout Name="RelatedOrderHeader" LayoutFileName="RelatedOrderHeader"> </Declarative:Layout> </Declarative:Layouts>
保存并关闭该文件。
接下来,您需要创建一个操作以显示任务窗格,并创建一个功能区文件以显示该操作。