您的位置: 旅游网 > 明星

在MOSS中创建一个BDC实体 (1)

发布时间:2019-12-04 13:12:38

业务数据目录--BDC(Business Data Catalog)是MOSS中新加的一个功能。它可以将LOB(Line-of-Business)数据组合到SharePoint的其他基本功能中。比如我们可以利用BDC组合业务数据到列表或企业搜索中。为此,我们必须先构建一个XML文件,用于标识数据存储的位置(MS SQL Server数据库或Web服务)以及数据是什么样子的(比如,数据类型是什么,主键是哪个)。

本文将通过创建一个BDC元数据文件定义一个简单的LOB数据实体。在此之前,需要具备下列的环境: 安装Microsoft SQL Server 2005并部署了AdventureWorks数据库 拷贝BDC架构文件, Bdcmetadata.xsd和Bdcmetadataresource.xsd, 到Visual Studio 2005的Schema库中。将上面的两个文件从program files\Microsoft Office Servers\12.0\Bin\ 拷到 program files\Microsoft Visual Studio 8\Xml\Schemas\。 下面开始构建BDC元数据文件来定义一个简单的LOB数据实体:

1. 首先,创建一个空的XML文件

打开Visual Studio 2005,创建一个 XML文件。右击文档,选属性。在架构(Schemas)属性框上,点省略号,把Bdcmetadata.xsd 架构文件附加到该文档上。

2.定义一个 LobSystem

添加下面的XML来定义最上层的LobSystem及其参数:

<LobSystem

Type="Database"

Version="1.0.0.01"

Name="CRM"

xmlns="http://schemas.microsoft.com/office/2006/03/BusinessDataCatalog">

</LobSystem>

3.定义最上层的安全性相关参数

注意:这是可选的,我们也可以在BDC的管理页面中进行操作。

添加下面的XML到LobSystem元素的末尾(在结束标记</LobSystem>之前)。注意,我们必须更新Principal属性值,以使其指向正确的域名和用户或组名。

<AccessControlList>

<AccessControlEntryPrincipal="yourdomain\you">

<RightBdcRight="Execute"/>

<RightBdcRight="Edit"/>

<RightBdcRight="SetPermissions"/>

<RightBdcRight="SelectableInClients"/>

</AccessControlEntry>

<AccessControlEntryPrincipal="yourdomain\yourBDCusers">

<RightBdcRight="Execute"/>

<RightBdcRight="SelectableInClients"/>

</AccessControlEntry>

</AccessControlList>

4.定义一个LOB系统的实例

对于数据库来说,一个系统实例定义了BDC中使用的数据库的连接参数。添加下面的XML,作为LobSystem元素的一个子节点(在AccessControlList元素后)。注意,我们必须用正确的服务器名替换server_name。

<LobSystemInstances>

<LobSystemInstanceName="CRMDB">

<Properties>

<PropertyName="AuthenticationMode"Type="System.String">

PassThrough</Property>

<PropertyName="DatabaseAccessProvider"Type="System.String">

SqlServer</Property>

<PropertyName="RdbConnectionDataSource"Type="System.String">

your_server_name</Property>

<PropertyName="RdbConnectionInitialCatalog"Type="System.String">

AdventureWorks</Property>

<PropertyName="RdbConnectionIntegratedSecurity"Type=

"System.String">SSPI</Property>

</Properties>

</LobSystemInstance>

</LobSystemInstances>

使用pass-through方式作验证的缺点是操作系统只暴露用户名和密码。因此,如果一个公司使用双因素验证(即用户需要提供用户名,密码以外的其它特定的私有信息),我们就不能使用pass-through方式了。

如果不用考虑上面这些缺点,那么pass-through方式是我们在测试环境下的一个不错的选择。如果您的公司使用双因子验证,并且您还需要连BDC到一个SQL Server数据库,那么您可以使用SSO(Single Sign Sn),对此,这里就不做更深的介绍了。

5.定义一个实体---Customer

一个实体包括一个标题(定义在元素属性中),一个唯一标识(等同于主键),和一些方法(用于定义实体中的字段,并告诉BDC如何将实体数据从LOB系统中取出来)。下面的步骤定义了一个名为Customer的实体。

在 LobSystemInstances 元素后面为该实体添加XML核心代码。这里包括我们用来定义实体标题的占位符元素,统一标识和一个返回所有Customer的方法。

注意:一个方法包含一个Properties元素用于定义数据库查询(或Web服务方法),一个Properties 元素定义从查询返回的数据,和一个MethodInstances 元素,标识MOSS中的特定功能。 <Entities>

<EntityName="Customer">

<Properties>

<!--Propertiesgohere-->

</Properties>

<Identifiers>

<!--Identifiersgohere-->

</Identifiers>

<Methods>

<MethodName="GetCustomers">

<Properties>

<!--MethodPropertiesgohere-->

</Properties>

<Parameters>

<!--MethodParametersgohere-->

</Parameters>

<MethodInstances>

<!--MethodInstancesgohere-->

</MethodInstances>

</Method>

</Methods>

</Entity>

</Entities>

定义GetCustomers方法中的属性。对于数据库,我们的实体属性告诉BDC查询的内容和如何进行查询。为GetCustomers 方法添加下面的XML到Properties 元素内。注意,在我们的T-SQL语句中有一个WHERE子句,包含了参数minCustomerID 和maxCustomerID 的引用,我们必须提前定义出来。同时,还要注意避免出现大于和小于号。

这里我们不要按顺序写。先把注意力放到方法属性上,不要管更高一层的实体属性。因为这是我们定义查询的地方,它直接决定了实体其他部分的内容。 <PropertyName="RdbCommandText"Type="System.String">

SELECT

customerID,

LastName+','+FirstNameasName,

Phone,

EmailAddress

FROM

Sales.vIndividualCustomer

WHERE

(customerID&gt;@minCustomerIDand

customerID&lt;@maxCustomerID)

</Property>

<PropertyName="RdbCommandType"Type="System.String">Text</Property>

回到实体层次,定义属性和标识。用下面的XML替换Properties和Identifiers占位符元素。 <Properties>

<PropertyName="Title"Type="System.String">Name</Property>

</Properties>

<Identifiers>

<IdentifierName="CustomerID"TypeName="System.Int32"/>

</Identifiers>

武汉博仕中医肛肠医院康建物
京山县人民医院预约挂号
乌鲁木齐治疗睾丸炎医院
遵义癫痫专科
昆明检查妇科项目及费用
猜你会喜欢的
猜你会喜欢的