完成时间: 15 分钟
目的: 可以使用 WCF LOB 适配器服务开发向导从 Oracle E-Business Suite 制品生成 WCF 服务,生成的服务可以托管于如 Internet Information Services(IIS)或 Windows 进程激活服务(WAS)等宿主环境中。 本主题演示如何使用向导生成 WCF 服务文件。
先决条件
在运行向导之前,请安装以下内容:
Microsoft Windows Communication Foundation (WCF) 业务线 (LOB) 适配器 SDK,其中包含 “完整 ”选项或 “自定义 ”选项(并选择此选项中的 工具 )。 这将安装适配器服务开发向导的 Visual Studio 模板。
从 BizTalk 适配器包中的 Microsoft BizTalk 适配器,用于 Oracle 电子商务套件。
有关这些先决条件的详细信息,请参阅 BizTalk 适配器包安装指南。 安装指南通常安装在 <安装驱动器>:\Program Files\Microsoft BizTalk Adapter Pack\Documents。
注释
还必须运行随 Microsoft Office SharePoint Server 示例提供的create_apps_artifacts.sql脚本,在应用程序对象库应用程序中创建MS_SAMPLE_EMPLOYEE接口表。 本教程使用此接口表。
为 Oracle E-Business 工件操作创建 WCF 服务
本部分提供如何在 MS_SAMPLE EMPLOYEE 接口表上为 Select 操作创建 WCF 服务的步骤。
为 MS_SAMPLE EMPLOYEE 接口表上的选择操作创建 WCF 服务
启动 Visual Studio,然后创建项目。
在“ 新建项目 ”对话框中的“ 项目类型 ”窗格中,选择 “Visual C#”。 在 “模板 ”窗格中,选择 WCF 适配器服务。
或者,在 “项目类型 ”窗格中展开 Visual C#,然后选择 “Web”。 在 “模板 ”窗格中,选择 WCF 适配器服务。
注释
如果使用 Web 开发组件安装了 Visual Studio 2013,则 WCF 适配器服务 模板也可从 “新建网站 ”选项(文件>新>网站)获取。
但是,Oracle E-Business 适配器仅支持在文件系统上创建的网站。 因此,在“新建网站”对话框中创建网站时,必须在“位置”列表中选择“文件系统”。
指定解决方案的名称和位置,然后选择“ 确定”。 WCF 适配器服务开发向导将启动。
在“欢迎”页上,选择“下一步”。
在“选择操作”页面上,指定连接到 Oracle E-Business Suite 的连接字符串。 为此,做以下事情:
在 “选择绑定 ”列表中,选择 oracleEBSBinding,然后选择“ 配置”。
在“ 配置适配器 ”对话框中,选择“ 绑定属性 ”选项卡。
在 “常规 ”类别下,对于 ClientCredentialType 绑定属性,选择 “EBusiness”。
在 OracleEBS 类别下,为 OracleUserName、 OraclePassword 和 OracleEBSResponsibilityName 绑定属性指定适当的值。 在这种情况下,需要为 OracleUserName 和 OraclePassword 绑定属性提供数据库凭据。
在 “元数据 ”类别下,对于 EnableSafeTyping 绑定属性,选择 “True”。 如果要检索日期列的值,建议在生成元数据时将 EnableSafeTyping 绑定属性设置为 True 。
选择 “URI 属性 ”选项卡,然后指定连接参数的值。 有关 Oracle 电子商务适配器的连接 URI 的详细信息,请参阅 创建 Oracle E-Business Suite 连接 URI。
选择 “安全 ”选项卡,然后在 “客户端凭据类型 ”列表中,选择“ 用户名”。 指定有效的 Oracle E-Business Suite 用户名和密码以连接到 Oracle E-Business Suite。
选择 “确定 ”关闭“配置适配器”对话框,然后选择“ 连接”。 Visual Studio 成功与 Oracle E-Business Suite 建立连接后,连接状态显示为 “已连接”。 还可以在“选择操作”页上看到 Oracle E-Business Suite 元数据。
在“选择作”页上的“选择协定类型”列表中,选择“客户端”(出站作)。
在 “选择类别 ”框中,浏览到应用程序对象库应用程序中MS_SAMPLE_EMPLOYEE接口表。 有关浏览到适配器中的项目的信息,请参阅 Oracle 电子商务操作的“浏览、搜索和检索元数据”。
在 “可用类别和操作”框中,选择“选择”操作,然后选择“添加”。 “选择”操作被添加到 “添加的类别和操作” 框中。
注释
可以为每个工件添加多个操作。 还可以为不同的 Oracle 电子商务套件组件添加操作。 例如,可以为接口表添加一个操作,为并发程序添加另一个操作。 此外,还可以通过在搜索表达式中指定通配符来搜索特定操作。 有关支持的特殊字符和可在不同节点级别搜索操作的详细信息,请参阅 搜索 Oracle E-Business Suite 操作。
在“选择操作”页面上,选择下一步。
在“配置服务和终结点行为”页上,指定要配置服务和终结点行为的值。
在 “服务行为配置 ”框中,指定以下属性的值:
对于属性 指定值 启用元数据交换 将此设置为 True 以创建元数据交换终结点。 通过将此项设置为 True,可以使用标准化协议(如 WS-Metadata Exchange(MEX)和 HTTP/GET 请求来提供服务元数据。 默认值为 False。 在故障中包含异常详细信息 将此项设置为 True ,以便在返回给客户端用于调试的 SOAP 错误中包含详细的托管异常信息。 默认值为 False。 名称 服务行为配置的名称。 对于本教程,请键入 customServiceBehavior。 使用服务证书 指定是否要使用 WCF 的消息级别安全模式。 默认值为 True。 在本教程中,必须将此设置为 False。 注释
本教程不使用服务证书,因此无需为 FindValue、StoreLocation、StoreName 和 X509FindType 属性提供值。 有关证书和关联属性的详细信息,请参阅 X509ClientCertificateCredentialsElement 属性。
在 “终结点行为配置 ”框中,指定以下属性的值:
对于属性 指定值 身份验证类型 若要Microsoft Office SharePoint Server 使用 WCF 服务,请将该值设置为 HTTPUserNamePassword。 这样,客户端就可以将用户名和密码指定为 HTTP 标头的一部分。 名称 指定终结点行为配置的名称。 对于本教程,请键入 customEndpointBehavior。 用户名标题 用户名标头的名称。 对于此示例,请指定 MyUserHeader。 有关 HTTP 标头的详细信息,请参阅 对自定义 HTTP 和 SOAP 标头的支持。
注意: 如果将 身份验证类型 设置为 HTTPUserNamePassword,则必须为此属性指定值。 如果 身份验证类型 设置为 “自动”,则此属性是可选的。密码标题 密码标头的名称。 对于此示例,请指定 MyPassHeader。 有关 HTTP 标头的详细信息,请参阅 对自定义 HTTP 和 SOAP 标头的支持。
注意: 如果将 身份验证类型 设置为 HTTPUserNamePassword,则必须为此属性指定值。 如果 身份验证类型 设置为 “自动”,则此属性是可选的。重要
Microsoft建议使用最安全的可用身份验证选项。 此过程中所述的身份验证方法需要高度信任,并具有其他身份验证方法中不存在的风险。 仅当其他方法不可行时,才使用此身份验证方法。
下图显示了“配置服务和终结点行为”页,其中包含指定的值。
在“配置服务和终结点行为”页上,选择“ 下一步”。
在“配置服务终结点绑定和地址”页上,“选择要配置的协定”中显示了您已配置的项目(MS_SAMPLE_EMPLOYEE)。 所选合同的操作框显示了您在“选择操作”页面为该工件选择的选择操作。
在 “配置协定框的地址和绑定 ”中,指定以下属性的值。 准备就绪后,选择“应用”。
对于属性 指定值 绑定配置 向导仅支持基本 HTTP 绑定。 因此,绑定配置字段会自动填充到 System.ServiceModel.Configuration.BasicHttpBindingElement。
选择省略号按钮 (...) 以更改 HTTP 绑定的属性。 若要使用安全信道,必须始终将 Mode 属性设置为 传输。 向导将 Mode 属性的默认值设置为 传输。
有关其他已公开绑定的详细信息,请参阅“BasicHttpBindingElement 成员”,网址为 https://go.microsoft.com/fwlink/?LinkId=103773。端点名称 指定协定的终结点名称。 此页上的其他字段会根据前面页中指定的值自动填充。
注释
如果未在此页上指定任何值,则接受所有协定的默认值。
下图显示了具有指定值的“配置服务终结点绑定和地址”页面。
在“配置服务终结点绑定和地址”页上,选择“ 下一步”。 “摘要”页列出了 Oracle 电子商务套件工件的树结构以及为工件选择的操作。
查看摘要,然后选择“ 完成”。
该向导创建 WCF 服务,并将以下文件添加到 Visual Studio 项目:
.svc 文件。 这是 WCF 服务文件。 向导为每个协定生成一个文件。
Web.config 文件。
服务代码(.cs文件)
修改.cs文件
当您使用 Oracle E-Business 适配器从 Oracle 电子商务套件构件创建服务并希望在 Microsoft Office SharePoint Server 的业务数据列表 Web 部件中使用该服务时,您需要提供一个完整的筛选器子句,该子句以 WHERE 子句开头。 例如,如果要搜索名为“John”的员工,则需要在业务数据列表 Web 部件中提供以下筛选器子句:
where NAME like ‘JOHN’
但是,如果希望用户仅提供筛选器子句的名称作为筛选器子句的输入,而无需实际提及整个筛选器子句,则可以在.cs文件中添加代码,以修改Microsoft Office SharePoint Server 中来自业务数据列表 Web 部件的筛选器子句,以 WHERE 子句格式将其传递给 Oracle E-Business。
例如,在本教程中,如果希望用户在 Office SharePoint Server Microsoft Business Data List Web 部件中输入员工姓名并检索该员工的记录,则可以在.cs文件中添加以下代码:
SelectResponse InterfaceTables_FND_APPS_MS_SAMPLE_EMPLOYEE.Select(SelectRequest request)
{
request.FILTER = "where NAME like '" + request.FILTER + "'"; // The code to avoid the users from specifying the WHERE clause in the filter from Business Data List Web Part.
return base.Channel.Select(request);
}
发布 WCF 服务
确保为 IIS 启用 SSL。 有关如何为 IIS 启用 SSL 的说明,请参阅 https://go.microsoft.com/fwlink/?LinkId=197170。
发布 WCF 服务:
在解决方案资源管理器中,打开项目快捷菜单,然后选择“ 发布”。
在 “发布 Web ”对话框中,指定 WCF 服务的 URL。 例如:
https://<COMPUTER_NAME>:<PORT_NUMBER>/MS_SAMPLE_EMPLOYEE/
注释
必须将 WCF 服务发布到已启用 SSL 的位置。 换句话说, “目标位置” 框中的值必须以“https://”开头。 由于用户凭据在 HTTP 标头中传递,向导会自动将适配器的绑定行为配置为使用“传输”作为安全模式,这意味着 SSL 加密。 当然可以返回并编辑 web.config 文件以更改安全模式>参数的值<,但在 HTTP 标头中以明文形式传输敏感信息时,使用 SSL 始终是更好的选择。
从 “复制 ”框中,选择 “所有项目文件”。
选择发布。
验证 WCF 服务是否已成功发布。
启动 IIS Microsoft管理控制台。 打开 “开始 ”菜单,找到并打开 管理工具,然后选择 “Internet Information Services”(IIS)管理器。
导航到已发布服务的节点。 对于MS_SAMPLE_EMPLOYEE服务,请导航到 Internet Information Services><计算机名称>>网站>默认网站>MS_SAMPLE_EMPLOYEE。
在右窗格中,打开 InterfaceTables_FND_APPS_MS_SAMPLE_EMPLOYEE.svc 文件的快捷菜单,然后选择“ 浏览”。
该网页会显示用于检索 WSDL 的 URL。 可能需要使用 svcutil 命令测试元数据检索。 例如,用于检索MS_SAMPLE_EMPLOYEE服务的元数据的命令为:
svcutil.exe https://<COMPUTER_NAME>:<PORT_NUMBER>/MS_SAMPLE_EMPLOYEE/InterfaceTables_FND_APPS_MS_SAMPLE_EMPLOYEE.svc?wsdl
下一步
若要为 Oracle E-Business Suite 项目创建应用程序定义文件,请使用业务数据目录定义编辑器。 有关说明,请参阅 步骤 2:为 Oracle 电子商务套件项目创建应用程序定义文件。 应用程序定义文件标识 LOB 数据的存储位置及其存储格式。