步骤 2:为 Siebel 业务组件操作创建应用程序定义文件
完成时间: 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 Business 数据目录定义编辑器”。
在工具中,单击“ 添加 LOB 系统”。
在“添加 LOB 系统”窗口中,单击“ 连接到 Web 服务”。
在“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 是在业务数据目录定义编辑器中创建的。重要
业务数据目录定义编辑器工具不处理枚举数据类型。 因此,Business 数据目录定义编辑器工具会导入字段,直到遇到枚举数据类型,并忽略剩余字段。 业务数据目录定义编辑器工具也会出错。 可以忽略此错误,然后单击“确定”继续操作。 可以在以后的阶段在应用程序定义文件中手动添加必填字段。
更改实体名称以使用更友好的名称。 对于此示例,请将 Entity0 更改为 Account。
展开 “Siebel_Account ”节点,然后展开“ 实体” 节点。
选择 Entity0 节点。
在“属性”窗格中的“名称”字段中,键入“帐户”。
指定方法的用户名和密码标头
在 Siebel 系统中为所选业务组件操作创建 WCF 服务时,将用户名和密码标头指定为终结点行为配置的一部分, (步骤 1:将 Siebel 业务组件操作发布为 WCF 服务) 。 必须为方法属性指定相同的值。
指定 Query 方法的用户名和密码标头
在“元数据对象”窗格中,展开“ 帐户” 节点,然后展开“ 方法” 节点。
单击“ 查询” 节点,然后在“属性”窗格中,针对“ 属性 ”字段单击省略号 (...) 按钮。
在“PropertyView 集合编辑器”对话框中,单击“添加”,然后在“属性”窗格中键入
HttpHeaderUserName
“名称”字段。 同样,键入MyUserHeader
PropertyValue 字段。 为“类型”字段选择“System.String”。在“PropertyView 集合编辑器”窗口中,单击“ 添加”,然后在“属性”窗格中,键入
HttpHeaderPassword
“ 名称” 字段。 同样,键入MyPassHeader
PropertyValue 字段。 为“类型”字段选择“System.String”。单击 “确定” 。
设置用于连接到 Siebel 系统的单 Sign-On
完成本主题中的所有过程后,将创建可导入 SharePoint 应用程序的应用程序定义 XML。 在应用程序中,你将调用以 Web 方法 (公开的 Siebel 业务组件操作,) 从 Siebel 系统检索相关数据。 若要启用此功能,必须在 Siebel 系统中的用户与 SharePoint 应用程序中的用户之间创建映射。 导入应用程序定义 XML 后,可以在 SharePoint 管理中心网站中创建此映射。
但是,若要创建映射,必须在业务数据目录定义编辑器中设置属性 SecondarySsoApplicationId。
设置 SecondarySsoApplicationId 属性
在“元数据对象”窗格中,展开 “Siebel_Account ”节点,然后展开“ 实例” 节点。
单击 “Siebel_Account_Instance ”,然后在“属性”窗格中,单击“ 属性 ”字段的省略号 (...) 按钮。
在“PropertyView 集合编辑器”窗口中,单击“添加”,然后在“属性”窗格中,为“名称”字段键入 SecondarySsoApplicationId。 同样,为 PropertyValue 字段键入 SiebelSSO。 为“类型”字段选择“System.String”。
单击 “确定” 。
要求:对帐户业务组件执行查询操作
此示例的第一个要求是创建可用于对帐户业务组件执行查询操作的应用程序定义。 若要实现此要求,必须执行以下一组任务:
在 Query 方法中,创建一个筛选器,并将其映射到对其执行 Query 操作的参数。 对于帐户业务组件,你将使用 SearchExpr 参数执行查询。 因此,你将筛选器映射到 SearchExpr 参数。
为 Query 方法创建 Finder 方法实例。 Finder 方法基于筛选器检索记录列表。
创建筛选器并将其映射到 SearchExpr 参数
为 Query 方法创建筛选器。
在“元数据对象”窗格中,展开“ 帐户” 节点,然后展开“ 方法” 节点。
展开 Query 方法,右键单击“ 筛选器”,然后单击“ 添加筛选器”。
在“属性”窗格中,键入
SearchExpression
“名称”字段。对于 FilterType 属性,请选择“ 等于”。
将筛选器映射到 Query 方法中的 SearchExpr 参数。
在“元数据对象”窗格中,展开“ 帐户” 节点,然后展开“ 方法” 节点。
展开 Query 方法,然后展开 “参数” 节点。
展开 AccountQueryInputRecord 节点,然后展开第二 个 AccountQueryInputRecord 节点。
单击 SearchExpr 节点,然后在“属性”窗格中,从 FilterDescriptor列表中选择“SearchExpression”。
重要
AccountQueryInputRecord 还包含 QueryFields 节点,后者又包含 Item 节点。 必须删除 “项” 节点,否则“帐户”业务组件上的“查询”操作可能不会提供所需的结果。 若要删除 “项 ”节点,请右键单击该节点,然后选择“ 删除”。
为 Query 方法创建 Finder 方法实例
在“元数据对象”窗格中,展开“ 帐户” 节点,然后展开“ 方法” 节点。
展开 “查询” 节点,右键单击“ 实例”,然后单击“ 添加方法实例 ”打开“创建方法实例”窗口。
在“创建方法实例”窗口中,单击“方法实例类型”的“查找工具”。
单击“从返回 TypeDescriptor 部分返回”。
单击 “确定” 。
在“属性”窗格中,键入
QueryAccount
“名称”字段。
删除 System.Nullable 类型的参数
Query 函数的返回参数可能包含 System.Nullable 类型的参数。 由于应用程序定义中存在这些参数,在 SharePoint 门户上显示 Siebel 数据时可能会收到错误。 因此,必须从应用程序定义中删除 System.Nullable 类型的参数。
此外,对于 System.Nullable 类型的每个参数,Business 数据目录 定义编辑器会创建另一个 System.Boolean 类型的参数,并将“Specified”追加到参数名称中。 例如,参数 AccountRole 的类型为 System.Nullable。 因此,业务数据目录定义编辑器将 AccountRoleSpecified 参数添加到参数列表中。 还必须删除此类参数。
注意
可以通过在“业务数据目录定义编辑器”中选择参数,并在“属性”窗格中查看 TypeName 属性的值来查看参数类型。
注意
如果应用程序不包含 System.Nullable 类型的任何参数,则可以跳过此步骤。
删除 Query 方法的 System.Nullable 类型的参数
在“元数据对象”窗格中,展开“ 帐户” 节点,然后展开“ 方法” 节点。
展开“ 查询” 节点,然后展开“ 参数” 节点。
展开 “返回” 节点,然后展开第二个 “返回” 节点。
右键单击要删除的参数,然后选择“ 删除”。
在对话框中,单击“确定”。
将应用程序定义导出到文件
现已创建包含 Siebel 系统实例元数据的应用程序定义。 必须将此定义导出到 XML 文件,该文件可以导入 Microsoft Office SharePoint Server。
将应用程序定义导出到文件
右键单击“元数据对象”窗格中 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 检索数据 。