步骤 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 文件。

创建任务窗格布局

  1. 使用 Microsoft SharePoint Designer 2010 创建订单外部内容类型的外部列表。有关详细信息,请参阅如何:在 SharePoint 中创建外部列表

  2. 创建外部列表的 InfoPath 表单。若要执行此操作,请参阅如何:使用 Microsoft InfoPath 自定义外部列表窗体。然后,使用 SharePoint Designer 2010 导出该表单。

  3. 在 Microsoft InfoPath 2010 Designer 中打开表单并按照所需方式对其进行自定义。

    将表单保存至解决方案项目文件夹,然后将其关闭。

  4. 创建布局文件以指定丰富列表部件和 InfoPath 表单部件在 Outlook 任务窗格中的布局。您可以使用 BCS 项目生成器工具(该链接可能指向英文页面)基于 BDC 模型创建窗体区域清单文件。

    您还可以手动创作窗体区域清单,方法如下。

    1. 复制 Microsoft SharePoint 2010 软件开发工具包 (SDK) 中所提供的模板:Layout.xml,并将其保存至 Solution Artifacts 文件夹(命名为 RelatedOrderHeader.xml)。

    2. 在 XML 编辑器中打开 RelatedOrderHeader.xml 进行编辑。如果是在 Visual Studio 中打开 XML 文件,请附加布局架构 (LayoutDefinitions.xsd)。这会为您提供 IntelliSense 功能,还会帮助您创建有效的条目。请参阅架构文档的 LayoutDefinitions 架构LayoutDefinitions 架构自定义属性

    3. 将 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="&lt;Columns&gt;&lt;
                Column DisplayName=&quot; &quot; Name=&quot;$SyncState$&quot; /&gt;&lt;
                Column FormatString=&quot;d&quot; DisplayName=&quot;Order Date&quot; 
                Name=&quot;OrderDate&quot;/&gt;&lt;Column FormatString=&quot;#.00&quot; 
                DisplayName=&quot;Total Due&quot; Name=&quot;
                TotalDue&quot; /&gt;&lt;/Columns&gt;" />  
            </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>
      
    4. 保存并关闭该文件。

  5. 打开 OIR.config 文件进行编辑。将此条目添加到客户 ContextDefinition 的底部,当客户位于 Outlook 环境中时,告知 BCS 客户端运行时您要在任务窗格中承载此布局。

    <Declarative:Layouts>
      <Declarative:Layout Name="RelatedOrderHeader" 
                          LayoutFileName="RelatedOrderHeader">
      </Declarative:Layout>
    </Declarative:Layouts>
    
  6. 保存并关闭该文件。

接下来,您需要创建一个操作以显示任务窗格,并创建一个功能区文件以显示该操作。

后续步骤

步骤 8(可选):定义功能区和操作 (Ribbon.xml)