业务数据目录--BDC(Business Data Catalog)是MOSS中新加的一个功能。它可以将LOB(Line-of-Business)数据组合到SharePoint的其他基本功能中。比如我们可以利用BDC组合业务数据到列表或企业搜索中。
-
定义方法参数。添加下面的XML到GetCustomers 方法的Parameters 元素中。这里定义了3个参数。头两个是输入参数,通过CustomerID过滤了列表。第三个参数定义了由SQL查询返回的数据。
所有这3个参数都包括了一个到前面我们创建的标识的引用。这个标识是实体的非常重要的一个部分。MOSS用它来查询一个特定的元素(因此标识被定义在输入参数中)。它同时还用于输出实体的各种附加功能中(比如应用于Business Data Action中)。没有标识,实体就会严重瘫痪。
返回参数通常比较复杂。它被定义为一个数据的记录集。这样就告诉了MOSS,将会有多个实体被返回。
<Parameter Direction="In" Name="@minCustomerID">
<TypeDescriptor TypeName="System.Int32" Name="customerID" IdentifierName="CustomerID">
<DefaultValues>
<DefaultValue MethodInstanceName="CustomerFinderInstance" Type="System.Int32">
0</DefaultValue>
<DefaultValue MethodInstanceName=
"CustomerSpecificFinderInstance" Type="System.Int32">
0</DefaultValue>
</DefaultValues>
</TypeDescriptor>
</Parameter>
<Parameter Direction="In" Name="@maxCustomerID">
<TypeDescriptor TypeName="System.Int32" Name="customerID" IdentifierName="CustomerID">
<DefaultValues>
<DefaultValue MethodInstanceName="CustomerFinderInstance" Type=
"System.Int32">9999999</DefaultValue>
<DefaultValue MethodInstanceName=
"CustomerSpecificFinderInstance" Type="System.Int32">
9999999</DefaultValue>
</DefaultValues>
</TypeDescriptor>
</Parameter>
<Parameter Direction="Return" Name="Customers">
<TypeDescriptor TypeName="System.Data.IDataReader, System.Data, Version=2.0.3600.0,
Culture=neutral, PublicKeyToken=b77a5c561934e089" IsCollection="true"
Name="CustomerDataReader">
<TypeDescriptors>
<TypeDescriptor TypeName="System.Data.IDataRecord, System.Data,
Version=2.0.3600.0, Culture=neutral, PublicKeyToken=
b77a5c561934e089" Name="CustomerDataRecord">
<TypeDescriptors>
<TypeDescriptor TypeName="System.Int32" IdentifierName=
"CustomerID" Name="customerID" />
<TypeDescriptor TypeName="System.String" Name="Name" />
<TypeDescriptor TypeName="System.String" Name="Phone" />
<TypeDescriptor TypeName="System.String" Name="EmailAddress" >
<LocalizedDisplayNames>
<LocalizedDisplayName LCID="1033">Email Address
</LocalizedDisplayName>
</LocalizedDisplayNames>
</TypeDescriptor>
</TypeDescriptors>
</TypeDescriptor>
</TypeDescriptors>
</TypeDescriptor>
</Parameter>
- 定义方法的实例。添加下面的XML到MethodInstances 元素中。MOSS通过Finder 方法获取所有实体的已知实例。而且,MOSS通过finder方法来支持Business Data List WebPart。MOSS通过特定的Finder方法来获取查询特定方法实例的类型。搜索,业务数据操作,筛选,几乎所有其他的BDC功能都会用到该方法。
一个方法通常只支持0或1个方法的实例。在本例中,我们只有一个方法,可以返回所有的customers或单个customer。当您定义您的实体时,您会发现或许使用两个方法会更容易些,一个GetCustomers 方法和一个GetSingleCustomer 方法。我们在这里只是为了简化XML,所以写的比较简练。
<MethodInstance
Name="CustomerFinderInstance"
Type="Finder"
ReturnParameterName="Customers"
ReturnTypeDescriptorName="CustomerDataReader" />
<MethodInstance
Name="CustomerSpecificFinderInstance"
Type="SpecificFinder"
ReturnParameterName="Customers"
ReturnTypeDescriptorName="CustomerDataReader"/>
- 保存文件。
6.将完成的元数据文件上传到SSP(Shared Service Provider)
打开管理中心,点左侧导航栏中的共享服务(通常名为SharedServices1)。在BDC一节中,点导入应用程序定义。点浏览,找到刚刚创建的元数据文件,双击。其他的应用程序定义项都用默认值就好,点导入。
7. 使用业务数据列表部件来显示Customer数据
在一个我们创建好的站点里,在页面中添加一个业务数据列表部件。 打开属性面板,在“类型”中输入Customer然后回车。MOSS会分析该属性,并得到Customer(CRMDB) 实体。 点确定,该实体就会显示在WebPart中了。
MOSS中的BDC功能允许我们将处于门户以外的LOB数据包括进来,用于列表和企业搜索。BDC需要一个XML元数据文件用于定义到外部数据源的连接参数、各种查询(或Web服务方法调用),以及用于查询或方法调用的所有的输入输出参数。定义一个元数据文件,关键是理解其结构。理解BDC的关键就是理解实体。实体包括:
属性,允许BDC开发人员在实体层次定义特定的元数据,比如默认的显示元素(Title)。
标识,LOB字段的集合,唯一标识该实体。
方法, 包括T-SQL或Web服务方法,用于获取实体数据。实体可以包括多个方法,可以随意包含参数和筛选,可供BDC用户筛选结果。