完成时间: 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 适配器包中的适用于 Oracle 电子商务套件的 Microsoft BizTalk 适配器。
有关这些先决条件的详细信息,请参阅 BizTalk 适配器包安装指南。 安装指南通常安装在 <安装驱动器>:\Program Files\Microsoft BizTalk 适配器包\文档处。
注意
还必须运行随 Microsoft Office SharePoint Server 示例一起提供的 create_apps_artifacts.sql 脚本,以在应用程序对象库应用程序中创建MS_SAMPLE_EMPLOYEE接口表。 本教程使用此接口表。
为 Oracle 电子商务项目上的操作创建 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 电子商务套件连接字符串。 为此,请执行以下操作:
在 “选择绑定” 列表中,单击“ 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 操作。
在“选择操作”页上,单击“ 下一步”。
在“配置服务和终结点行为”页上,指定值以配置服务和终结点行为。
在“ 服务行为配置 ”框中,指定以下内容的值:
对于 属性 指定值 EnableMetadataExchange 将此设置为 True 以创建元数据交换终结点。 通过将此项设置为 True,可以使用标准化协议(如 WS-Metadata Exchange (MEX) 和 HTTP/GET 请求)提供服务元数据。 默认值为 False。 IncludeExceptionDetailsinFault 将此设置为 True 以包含托管异常信息,详细说明返回给客户端进行调试的 SOAP 错误。 默认值为 False。 名称 服务行为配置的名称。 对于本教程,请键入 customServiceBehavior。 UseServiceCertificate 指定是否要使用 WCF 的消息级别安全模式。 默认值为 True。 对于本教程,必须将此设置为 False。 注意
由于本教程未使用服务证书,因此无需为 FindValue、 StoreLocation、 StoreName 和 X509FindType 属性提供值。 有关证书和关联属性的详细信息,请参阅 中的 https://go.microsoft.com/fwlink/?LinkId=103771“X509ClientCertificateCredentialsElement 属性”。
在“ 终结点行为配置 ”框中,指定以下内容的值:
对于 属性 指定值 身份验证类型 若要使 Microsoft Office SharePoint Server 使用 WCF 服务,应将其设置为 HTTPUserNamePassword。 这使客户端能够将用户名和密码指定为 HTTP 标头的一部分。 名称 指定终结点行为配置的名称。 对于本教程,请键入 customEndpointBehavior。 UsernameHeader 用户名标头的名称。 对于此示例,请指定 MyUserHeader。 有关 HTTP 标头的详细信息,请参阅 中的 https://go.microsoft.com/fwlink/?LinkId=106692“对自定义 HTTP 和 SOAP 标头的支持”。 注意: 如果 身份验证类型 设置为 HTTPUserNamePassword,则必须为此属性指定值。 如果 “身份验证类型” 设置为 “自动”,则此属性是可选的。 PasswordHeader 密码标头的名称。 对于此示例,请指定 MyPassHeader。 有关 HTTP 标头的详细信息,请参阅 中的 https://go.microsoft.com/fwlink/?LinkId=106692“对自定义 HTTP 和 SOAP 标头的支持”。 注意: 如果 “身份验证类型” 设置为 “HTTPUserNamePassword”,则必须为此属性指定值。 如果 “身份验证类型” 设置为 “自动”,则此属性是可选的。 下图显示了具有指定值的“配置服务和终结点行为”页。
在“配置服务和终结点行为”页上,单击“ 下一步”。
在“配置服务终结点绑定和地址”页上, “选择要配置的协定 ”显示配置的项目 (MS_SAMPLE_EMPLOYEE) 。 “所选合同”框下的“操作”显示“选择操作”页上为项目选择的操作。
在 “配置合同的地址和绑定 ”框中,指定以下各项的值:
对于 属性 指定值 绑定配置 向导仅支持基本 HTTP 绑定。 因此,绑定配置字段会自动填充到 System.ServiceModel.Configuration.BasicHttpBindingElement。
单击省略号按钮 (...) 更改 HTTP 绑定的属性。 若要使用安全信道,必须始终将 Mode 属性设置为 Transport。 向导将 Mode 属性的默认值设置为 Transport。
有关公开的其他绑定的详细信息,请参阅 中的 https://go.microsoft.com/fwlink/?LinkId=103773“BasicHttpBindingElement 成员”。终结点名称 指定协定的终结点名称。 此页上的其他字段将根据你在前面页中指定的值自动填充。
单击 “应用” 。
注意
如果未在此页上指定任何值,则接受所有协定的默认值。
下图显示了具有指定值的“配置服务终结点绑定和地址”页。
在“配置服务终结点绑定和地址”页上,单击“ 下一步”。 “摘要”页列出了 Oracle 电子商务套件项目的树结构以及为项目选择的操作。
查看摘要,然后单击“ 完成”。
该向导创建 WCF 服务,并将以下文件添加到 Visual Studio 项目:
.svc 文件。 这是 WCF 服务文件。 向导为每个协定生成一个文件。
Web.config 文件。
服务代码 (.cs 文件)
修改 .cs 文件
使用 Oracle 电子商务适配器从 Oracle 电子商务套件项目创建服务,并希望从 Microsoft Office SharePoint Server 中的业务数据列表 Web 部件使用该服务时,应提供从 WHERE 子句开始的完整筛选器子句。 例如,如果要搜索名为“John”的员工,则需要在业务数据列表 Web 部件中提供以下筛选器子句:
where NAME like ‘JOHN’
但是,如果希望用户仅提供名称作为筛选器子句的输入而不实际提及整个筛选子句,则可以在 .cs 文件中添加一个代码,用于修改来自 Microsoft Office SharePoint Server 中业务数据列表 Web 部件的筛选子句,以 WHERE 子句格式将其传递给 Oracle E-Business。
例如,在本教程中,如果希望用户在 Microsoft Office SharePoint Server 的业务数据列表 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 电子商务套件项目创建应用程序定义文件,请使用业务数据目录定义编辑器。 有关说明,请参阅 步骤 2:为 Oracle 电子商务套件项目创建应用程序定义文件。 应用程序定义文件标识 LOB 数据的存储位置及其存储格式。