完成时间: 15 分钟
目的: 业务数据目录公开业务线(LOB)应用程序中的数据并将其合并到门户中。 若要将此数据合并到门户网站中,必须生成Microsoft Office SharePoint Server 可以使用的应用程序定义文件。
使用业务数据目录定义编辑器工具可为业务数据目录创建应用程序定义文件。 此工具自动生成定义文件的 XML。 因此,无需在 XML 编辑器中手动创建文件。
要创建的 Microsoft Office SharePoint Server 应用程序的目的是对帐户业务组件执行查询作,以检索记录列表。 若要实现此目的,必须在业务数据目录定义编辑器中完成一组任务。 本主题提供有关如何执行这些任务的说明。
先决条件
您必须在 Microsoft Office SharePoint Server 2007 SDK 中安装业务数据目录定义编辑器。
您应已发布 WCF 服务,如 步骤 1:将 Siebel 业务组件操作发布为 WCF 服务中所述。
创建应用程序定义文件
本部分提供为 WCF 服务创建应用程序定义文件的分步说明。
连接到 WCF 服务并创建实体
必须连接到 WCF 服务才能为服务提取 Web 服务说明语言(WSDL)。 从 WSDL 中,业务数据目录定义编辑器提取方法。 这些方法可用于创建实体。 对于此示例,您必须为帐户业务组件上的查询操作创建一个实体。
连接到 WCF 服务并创建实体
启动业务数据目录定义编辑器。 在“ 开始 ”菜单上,单击 Microsoft业务数据目录定义编辑器。
在工具中,单击“ 添加 LOB 系统”。
在“添加 LOB 系统”窗口中,单击“ 连接到 Webservice”。
在 URL 框中,键入 WCF 服务的 URL。 URL 必须采用以下格式:
https://<computer_name>/Siebel_Account/BusinessObjects_Account_Account_Operation.svc?wsdl其中,BusinessObjects_Account_Account_Operation.svc 是为 Siebel 协定创建的服务文件。
测试 WCF 服务是否成功发布时,您必须键入的 URL 是可用的,如 步骤 1:将 Siebel 业务组件发布为 WCF 服务中所述。
单击连接。
单击添加 Web 方法选项卡,查看在 WCF 适配器服务开发向导中选择的操作。 你将看到 Query 方法。
将 Query 方法拖到设计图面,然后单击“ 确定”。
在 “输入 LOB 系统名称”对话框中,在 “LOB 系统名称”框中键入名称。 对于此示例,键入
Siebel_Account,然后单击“ 确定”。 实体 Entity0 是在业务数据目录定义编辑器中创建的。重要
业务数据目录定义编辑器工具不处理枚举数据类型。 因此,业务数据目录定义编辑器工具将导入字段,直到遇到枚举数据类型并忽略其余字段。 业务数据目录定义编辑器工具也会发生错误。 可以忽略此错误,然后通过单击“确定”继续。 可以在后面的阶段在应用程序定义文件中手动添加必填字段。
更改实体名称以使用更友好的名称。 对于此示例,请将 Entity0 更改为 Account。
展开 Siebel_Account 节点,然后展开 “实体” 节点。
选择 Entity0 节点。
在“属性”窗格中,在“名称”字段中键入“帐户”。
为方法设置用户名和密码头
在 Siebel 系统中为所选业务组件作创建 WCF 服务时,将用户名和密码标头指定为终结点行为配置的一部分(步骤 1:将 Siebel 业务组件作发布为 WCF 服务)。 必须为方法属性指定相同的值。
指定 Query 方法的用户名和密码标头
在“元数据对象”窗格中,展开 “帐户 ”节点,然后展开 “方法” 节点。
单击“查询”节点,在“属性”窗格中点击与属性字段对应的省略号(...)按钮。
在“PropertyView 集合编辑器”对话框中,单击“ 添加”,然后在“属性”窗格中键入
HttpHeaderUserName“ 名称 ”字段。 同样,为 PropertyValue 字段键入MyUserHeader。 在类型字段中选择System.String。
在 PropertyView 集合编辑器窗口中,单击“ 添加”,然后在“属性”窗格中键入
HttpHeaderPassword“ 名称 ”字段。 同样,为 PropertyValue 字段键入MyPassHeader。 选择System.String作为“类型”字段。单击 “确定” 。
设置用于连接到 Siebel 系统的单个 Sign-On
完成本主题中的所有过程后,将创建可导入 SharePoint 应用程序的应用程序定义 XML。 在应用程序中,您将调用 Siebel 业务组件操作,并将其作为 Web 方法公开,以从 Siebel 系统检索相关数据。 若要启用此功能,必须在 Siebel 系统中的用户与 SharePoint 应用程序中的用户之间创建映射。 导入应用程序定义 XML 后,将在 SharePoint 管理中心网站中创建此映射。
但是,若要创建映射,必须在业务数据目录定义编辑器中设置属性 SecondarySsoApplicationId 。
设置 SecondarySsoApplicationId 属性
在“元数据对象”窗格中,展开 Siebel_Account 节点,然后展开 “实例” 节点。
单击 Siebel_Account_Instance,在“属性”窗格中,单击“属性”字段的省略号(...)按钮。
在 PropertyView 集合编辑器窗口中,单击“添加”,然后在“属性”窗格中,键入 Name 字段的 SecondarySsoApplicationId。 同样,为 PropertyValue 字段键入 SiebelSSO。 选择System.String 作为“类型”字段的值。
单击 “确定” 。
要求:对帐户业务组件执行查询操作
此示例的第一个要求是创建可用于对帐户业务组件执行查询作的应用程序定义。 若要达到此要求,必须执行以下一组任务:
在 Query 方法中,创建一个筛选器,并将其映射到执行查询作的参数。 对于帐户业务组件,将使用 SearchExpr 参数执行查询。 因此,将筛选器映射到 SearchExpr 参数。
为 Query 方法创建 Finder 方法实例。 Finder 方法基于筛选器检索记录列表。
创建筛选器并将其映射到 SearchExpr 参数
为 Query 方法创建筛选器。
在“元数据对象”窗格中,展开 “帐户 ”节点,然后展开 “方法” 节点。
展开 Query 方法,右键单击 “筛选器”,然后单击“ 添加筛选器”。
在“属性”窗格中,键入
SearchExpression“名称”字段。对于 FilterType 属性,请选择 “等于”。
将筛选器映射到 Query 方法中的 SearchExpr 参数。
在“元数据对象”窗格中,展开 “帐户 ”节点,然后展开 “方法” 节点。
展开 Query 方法,然后展开 “参数” 节点。
展开 AccountQueryInputRecord 节点,然后展开第二个 AccountQueryInputRecord 节点。
单击 SearchExpr 节点,在“属性”窗格中,从 FilterDescriptor列表中选择 SearchExpression。
重要
AccountQueryInputRecord 还包含 QueryFields 节点,后者又包含项节点。 必须删除项节点,否则帐户业务组件上的查询操作可能无法提供预期的结果。 若要删除 项 节点,请右键单击该节点,然后选择“ 删除”。
为 Query 方法创建 Finder 方法实例
在“元数据对象”窗格中,展开 “帐户 ”节点,然后展开 “方法” 节点。
展开 “查询 ”节点,右键单击 “实例”,然后单击“ 添加方法实例 ”以打开“创建方法实例”窗口。
在“创建方法实例”窗口中,单击“方法实例类型的查找器”。
单击“返回”以退出TypeDescriptor返回部分。
单击 “确定” 。
在“属性”窗格中,键入
QueryAccount“名称”字段。
的名称
删除 System.Nullable 类型的参数
Query 函数的返回参数可能包含 System.Nullable 类型的参数。 由于应用程序定义中存在这些参数,在 SharePoint 门户中显示 Siebel 数据时可能会出错。 因此,必须从应用程序定义中删除 System.Nullable 类型的参数。
此外,对于 System.Nullable 类型的每个参数,业务数据目录定义编辑器将创建 System.Boolean 类型的另一个参数,并将“Specified”追加到参数名称。 例如,参数 AccountRole 为 System.Nullable 类型。 因此,业务数据目录定义编辑器会将 AccountRoleSpecified 参数添加到参数列表中。 还必须删除此类参数。
注释
可以通过在“业务数据目录定义编辑器”中选择参数并查看“属性”窗格中 TypeName 属性的值来查看参数类型。
注释
如果应用程序不包含 System.Nullable 类型的任何参数,则可以跳过此步骤。
移除 Query 方法中 System.Nullable 类型的参数
在“元数据对象”窗格中,展开 “帐户 ”节点,然后展开 “方法” 节点。
展开 “查询” 节点,然后展开 “参数” 节点。
展开 “返回 ”节点,然后展开第二个 返回 节点。
右键单击要删除的参数,然后选择“ 删除”。
在对话框中,单击“确定”。
将应用程序定义导出到文件
现已创建包含 Siebel 系统实例元数据的应用程序定义。 必须将此定义导出到 XML 文件,该文件可以导入到 office SharePoint Server Microsoft。
将应用程序定义导出到文件
右键单击“元数据对象”窗格中 的Siebel_Account 节点,然后单击“ 导出”。
将文件另存为 Siebel_Account.xml。
修改应用程序定义文件以包含特定参数
如本主题前面所述,业务数据目录定义编辑器工具不处理枚举数据类型。 业务数据目录定义编辑器工具将导入字段,直到它遇到枚举数据类型并忽略剩余字段。 因此,可能会省略应用程序中所需的某些字段。 可以手动编辑应用程序定义文件以包括这些字段。
注释
必须确保您添加的参数存在于 WCF 适配器服务开发向导在 步骤 1:将 Siebel 业务组件操作发布为 WCF 服务 中生成的 .cs 文件中。
在此应用程序定义文件中,你将添加或删除 QueryAccount 方法的返回参数。
修改应用程序定义文件
使用 Visual Studio 或任何其他编辑器打开应用程序定义文件 Siebel_Account.xml。
修改应用程序定义文件以替换 QueryAccount 方法的参数。
在应用程序定义文件中,搜索以下内容:
<TypeDescriptor TypeName="BDC.AccountQueryRecord,Siebel_Account" Name="Item">在标记中
<TypeDescriptors>,将现有<TypeDescriptor>元素替换为以下内容:<TypeDescriptor TypeName="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=<token>" Name="Id" /> <TypeDescriptor TypeName="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=<token>" Name="Country" /> <TypeDescriptor TypeName="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=<token>" Name="Name" /> <TypeDescriptor TypeName="System.String, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=<token>" Name="Location" />保存并关闭该文件。
小窍门
可以将更新的应用程序定义文件导入到业务数据目录定义编辑器工具中,以查看新添加的字段。 但是,在导入之前,必须从业务数据目录定义编辑器工具中删除现有的“Siebel_Account”应用程序。
后续步骤
现在必须创建一个 SharePoint 应用程序,以便从 Siebel 系统检索数据。 有关说明 ,请参阅步骤 3:创建 SharePoint 应用程序以从 Siebel 检索数据 。