许多公司在SharePoint中使用BCS连接到外部系统(如客户或生产数据库),并使其在SharePoint中可用。BCS与之前我们讨论的数据连接类型不同,主要是在:数据处于它自己的应用程序而不是SharePoint列表。BCS给SharePoint(以及InfoPath)一个视图查看数据,但是数据仍然在自己的应用程序中(特别是数据库)。
对于在SharePoint2010中使用的BCS,InfoPath2010有External Item Picker控件,专门从BCS获得数据。当添加到表单时,这个控件提供了简单的方法从数据源到连接的BCS中选择项目。例如,用户填写客户服务表单时,你可能想让她直接从BCS选择客户名,而不是在SharePoint中创建一个复制信息列表和另外一个数据连接。
BCS由SharePoint管理员创建。假设你可以使用BCS,ExternalItem Picker对于InfoPath表单设计者有很多独特的好处,包括预置安全性和数据访问模型。
你将一步步添加External Item Picker控件到表单,设置其属性,这样你可以通过BCS从外部数据源选择一个项目。本练习假设你的系统上已经在BCS中建立了external content type(ECT)。ECT使用XML定义存储在外部系统(如SQL数据库)的数据。如果你不是SharePoint管理员,你将需要收集必要信息----如提供一些如何配置ECT来使用InfoPath的说明。
准备:打开InfoPath Designer。
1. 创建空白表单,发布到SharePoint表单库。
2. 添加External Item Picker控件到表单
3. 右击控件,选择属性,点击“常规”选项卡。
本页面包括你需要从SharePoint系统管理员处收集的许多属性。最简单的方法是进入管理中心的SharePoint服务应用程序,选择Business Data Connectivity Services。
4. 点击指定的外部内容类型。下图显示了Sales Order DB内容类型
5. 从外部内容类型信息收集下列信息:Name;Namespace;External System
6. 切换到InfoPath,执行以下步骤:
A. 用Namespace填充ECT命名空间
B. 用Name填充ECT名称
C. 用ExternalSystem填充系统实例名称
D. 暂时跳过Finder名称,下一步将添加这个数据
E. 用你在控件中使用的数据库域填充显示字段名称。如果管理员使用SharePoint Designer创建ECT,你可以在Designer的ECT属性处看到所有可用域。本例中是Customer Contact。
7. 在控件属性对话框中,切换到“其他设置”选项卡,保证选中“打开时刷新”复选框,切换到“选取器模式”下拉框,选择“通过SharePoint连接到外部数据源”。这样设置是因为你将在SharePoint中使用BCS。
8. 切换回“常规”选项卡。
还有一个非常重要的域需要填写:Finder名称域。Finder名称域ECT上的筛选器相同。这个用户在控件中搜索信息的能力。如果你没有排至筛选器,用户将看到来自数据库的所有结果列表,他将不得不滚动查看全部,而不是简单地搜索。
9. 如果管理员已经在ECT的“读取列表”操作中定义筛选器,请添加添加筛选器名称到External Item Picker控件属性对话框的Finder名称域。本例中,筛选器名Filter
注意:如果你在ECT中没有筛选器,请查看本练习后如何添加筛选器的说明,然后回到步骤9.
10. 点击“应用”,点击“确定”。
点击“快速发布”按钮更新表单库。如果你在表单库中新建表单实例,你应该能够使用External Item Picker控件浏览并搜索来自外部系统的数据了。
小贴士:如果控件不正常工作不要灰心。它是最复杂的InfoPath控件之一。几个活动件需要在SharePoint和InfoPath中正确设置才能使External Item Picker控件正常运行。要核实在步骤中每个可能点都正确输入。