使用 Oracle 电子商务套件插入、更新、删除或选择接口表和接口视图
Oracle 电子商务适配器针对接口表和视图提供一组标准操作,例如插入、更新、删除、选择。 本主题提供有关如何使用适配器执行这些操作的说明。 有关适配器如何支持这些操作的详细信息,请参阅 接口表和接口视图上的操作。 有关这些操作的 SOAP 消息结构的信息,请参阅 用于插入、更新、删除和选择操作的消息架构。
注意
该适配器还为包含大型数据类型(如 BLOB、CLOB、NCLOB 和 BFILE)的表和视图公开特定操作。 有关此类操作的详细信息,请参阅 对接口表、接口视图、表和包含 LOB 数据的视图的操作。 有关如何使用 BizTalk Server 对具有大型数据类型的表和列执行操作的说明,请参阅使用 WCF 服务模型对 Oracle E-Business Suite 中具有大型数据类型的表执行完整操作。
如何在 Oracle 电子商务套件上执行基本操作
将 Oracle 电子商务适配器与 BizTalk Server 配合使用,在 Oracle 电子商务套件上执行操作涉及构建基块以创建 Oracle E-Business Suite 应用程序中所述的过程性任务。 若要对 Oracle 电子商务套件中的表和视图执行插入、更新、删除或选择操作,这些任务包括:
创建 BizTalk 项目,并为要对接口表或视图调用的操作生成架构。
在 BizTalk 项目中创建消息,以便从 Oracle 电子商务套件发送和接收消息。
创建业务流程以调用接口表或视图上的操作。
生成并部署 BizTalk 项目。
通过创建物理发送和接收端口配置 BizTalk 应用程序。
启动 BizTalk 应用程序。
本主题提供有关执行这些任务的说明。
生成架构
本主题演示如何通过在 Oracle E-Business Suite 中的 AR_ARCHIVE_PURGE_INTERIM 接口表中插入记录来执行基本的插入、更新、删除或选择操作。 此接口表在 Oracle 电子商务套件的 应收账款 应用程序中可用。
为了演示如何插入记录,为AR_ARCHIVE_PURGE_INTERIM表的插入操作生成了架构。 必须创建 BizTalk 项目并使用“使用适配器服务加载项”生成架构。 有关如何生成架构的详细信息,请参阅 在 Visual Studio 中检索 Oracle 电子商务套件操作的元数据 。
定义消息和消息类型
你之前生成的架构描述了业务流程中的消息所需的“类型”。 消息通常是一个变量,其类型由相应的架构定义。 现在必须为业务流程创建消息,并将其链接到在上一步中生成的架构。
创建消息并链接到架构
将业务流程添加到 BizTalk 项目。 从 解决方案资源管理器,右键单击 BizTalk 项目名称,指向“添加”,然后单击“新建项”。 键入 BizTalk 业务流程的名称,并单击“ 添加”。
打开 BizTalk 项目的“业务流程视图”窗口(如果尚未打开该窗口)。 为此,请单击“ 视图”,指向 “其他窗口”,然后单击“ 业务流程视图”。
在“业务流程视图”中,右键单击“ 消息”,然后单击“ 新建消息”。
右键单击新创建的消息,然后选择“ 属性窗口”。
在Message_1的“属性”窗格中,执行以下操作:
使用此选项 要执行此操作 标识符 键入 Request
消息类型 从下拉列表中展开“ 架构”,然后选择“ InsertInterfaceTable.OracleEBSBinding.Insert”,其中 InsertInterfaceTable 是 BizTalk 项目的名称。 OracleEBSBinding 是为AR_ARCHIVE_PURGE_INTERIM表上的 Insert 操作生成的架构。 重复步骤 2 以创建新消息。 在新邮件的“ 属性 ”窗格中,执行以下操作:
使用此选项 要执行此操作 标识符 键入 Response
消息类型 从下拉列表中展开 “架构”,然后选择“插入”“ InterfaceTable.OracleEBSBinding.InsertResponse”。
设置业务流程
必须创建 BizTalk 业务流程才能使用 BizTalk Server 在 Oracle E-Business Suite 上执行操作。 在此业务流程中,会在定义的接收位置放置请求消息。 Oracle 电子商务适配器使用此消息,并将其传递到 Oracle 电子商务套件。 Oracle E-Business Suite 的响应将保存到另一个位置。 用于在 Oracle 数据库上执行基本表操作的典型业务流程将包含:
发送和接收形状,用于将消息发送到 Oracle 数据库并接收响应。
单向接收端口,用于接收要发送到 Oracle 数据库的请求消息。
用于将请求消息发送到 Oracle 数据库和接收响应的双向发送端口。
用于将响应从 Oracle 数据库发送到文件夹的单向发送端口。
Select 操作的示例业务流程如下所示:
添加消息形状
请确保为每个邮件形状指定以下属性。 “形状”列中列出的名称是刚才提到的业务流程中显示的消息形状的名称。
形状 | 形状类型 | 属性 |
---|---|---|
ReceiveMessage | 接收 | - 将 Name 设置为 ReceiveMessage - 将 “激活” 设置为 “True” |
SendMessage | 发送 | - 将 “名称” 设置为 SendMessage |
ReceiveResponse | 接收 | - 将 Name 设置为 ReceiveResponse - 将 “激活” 设置为 “False” |
SendResponse | 发送 | - 将 “名称” 设置为 SendResponse |
添加端口
请确保为每个逻辑端口指定以下属性。 “端口”列中列出的名称是业务流程中显示的端口名称。
端口 | 属性 |
---|---|
MessageIn | - 将 标识符 设置为 MessageIn - 将 Type 设置为 MessageInType - 将 通信模式 设置为 单向 - 将 通信方向 设置为 接收 |
LOBPort | - 将 标识符 设置为 LOBPort - 将 Type 设置为 LOBPortType - 将 通信模式 设置为 请求-响应 - 将 通信方向 设置为 “发送-接收” |
ResponseOut | - 将 标识符 设置为 ResponseOut - 将 Type 设置为 ResponseOutType - 将 通信模式 设置为 单向 - 将 “通信方向 ”设置为 “发送” |
指定操作形状的消息,并将其连接到端口
下表指定了应设置的属性及其值,以便为操作形状指定消息并将消息链接到端口。 “形状”列中列出的名称是前面提到的业务流程中显示的消息形状的名称。
形状 | 属性 |
---|---|
ReceiveMessage | - 将 “消息 ”设置为 “请求” - 将 操作 设置为 MessageIn.Insert.Request |
SendMessage | - 将 “消息 ”设置为 “请求” - 将 操作 设置为 LOBPort.Insert.Request |
ReceiveResponse | - 将 消息 设置为 响应 - 将 操作 设置为 LOBPort.Insert.Response |
SendResponse | - 将 消息 设置为 响应 - 将 操作 设置为 ResponseOut.Insert.Request |
指定这些属性后,将连接消息形状和端口,并且业务流程已完成。
现在,必须生成 BizTalk 解决方案并将其部署到 BizTalk Server。 有关详细信息,请参阅 生成和运行业务流程。
配置 BizTalk 应用程序
部署 BizTalk 项目后,前面创建的业务流程将列在 BizTalk Server 管理控制台的“业务流程”窗格中。 必须使用 BizTalk Server 管理控制台来配置应用程序。 有关演练,请参阅 演练:部署基本 BizTalk 应用程序。
配置应用程序涉及:
为应用程序选择主机。
将业务流程中创建的端口映射到 BizTalk Server 管理控制台中的物理端口。 对于此业务流程,必须:
在硬盘上定义一个位置和相应的文件端口,你将在其中放置请求消息。 BizTalk 业务流程将使用请求消息并将其发送到 Oracle 电子商务套件。
在硬盘上定义一个位置和相应的文件端口,BizTalk 业务流程将删除包含 Oracle 电子商务套件响应的响应消息。
定义物理 WCF-Custom 或 WCF-OracleEBS 发送端口以将消息发送到 Oracle E-Business Suite。 还必须在发送端口中指定操作。 有关如何创建端口的信息,请参阅 手动配置到 Oracle 电子商务适配器的物理端口绑定
若要使用 Oracle 电子商务适配器对接口表或接口视图执行操作,必须设置调用操作的正确应用程序上下文。 Oracle 电子商务适配器提供某些绑定属性来指定任何操作的应用程序上下文。 必须在用于对接口表执行操作的 WCF-Custom 或 WCF-OracleEBS 端口上设置这些绑定属性。
如果 ClientCredentialType 绑定属性设置为 Database,则必须指定以下绑定属性来设置应用程序上下文。
Binding 属性 值 OracleUserName 指定 Oracle 电子商务套件用户的名称。 Oracle 电子商务适配器不会保留在连接到 Oracle E-Business Suite 时为 OracleUserName 绑定属性输入的值大小写。 用户名使用 SQL*Plus 的标准规则传递到 Oracle E-Business Suite。 但是,如果希望保留用户名大小写,或者要输入包含特殊字符的用户名,则必须在双引号内指定值。 OraclePassword Oracle 电子商务套件用户的密码。 Oracle 电子商务适配器不会保留在连接到 Oracle E-Business Suite 时为 OraclePassword 绑定属性输入的值大小写。 密码使用 SQL*Plus 的标准规则传递到 Oracle E-Business Suite。 但是,如果希望保留密码大小写,或者要输入包含特殊字符的密码,则必须在双引号内指定值。 OracleEBSResponsibilityName 与 Oracle 电子商务套件用户关联的责任。 如果 ClientCredentialType 绑定属性设置为 EBusiness,则必须在建立连接时已指定 Oracle 电子商务凭据。 在这种情况下,只能指定 OracleEBSResponsibilityName 绑定属性的值。
有关不同绑定属性的详细信息,请参阅 阅读有关 Oracle 电子商务套件绑定属性的 BizTalk 适配器。 有关适配器如何支持设置应用程序上下文的详细信息,请参阅 设置应用程序上下文。
注意
可以通过指定绑定属性或通过设置 Oracle 电子商务适配器公开的消息上下文属性来设置应用程序上下文。 有关如何设置绑定属性的说明,请参阅 配置 Oracle 电子商务套件的绑定属性。 有关如何使用消息上下文属性设置应用程序上下文的说明,请参阅 在 Oracle 电子商务套件中使用消息上下文属性配置应用程序上下文。
注意
使用使用适配器服务 BizTalk 项目外接程序生成架构还会创建一个绑定文件,其中包含有关要为这些端口设置的端口和操作的信息。 可以从 BizTalk Server 管理控制台导入此绑定文件,为出站呼叫创建发送端口 () 或接收) 入站呼叫 (端口。 有关详细信息,请参阅 使用 Oracle E-Business Suite 的端口绑定文件配置物理端口绑定。
启动应用程序
必须启动 BizTalk 应用程序,以便将记录插入到AR_ARCHIVE_PURGE_INTERIM接口表中。 有关启动 BizTalk 应用程序的说明,请参阅 如何启动业务流程。
在此阶段,请确保:
用于接收业务流程请求消息的 FILE 接收端口正在运行。
用于从业务流程接收响应消息的 FILE 发送端口正在运行。
WCF-Custom 或 WCF-OracleEBS 发送端口以将消息发送到 Oracle 电子商务套件正在运行。
操作的 BizTalk 业务流程正在运行。
执行操作
运行应用程序后,必须将请求消息删除到 FILE 接收位置。 请求消息的架构必须符合前面生成的插入操作的架构。 例如,从AR_ARCHIVE_PURGE_INTERIM接口表中选择所有记录的请求消息为:
<Insert xmlns="http://schemas.microsoft.com/OracleEBS/2008/05/InterfaceTables/AR/AR/AR_ARCHIVE_PURGE_INTERIM">
<RECORDSET>
<InsertRecord xmlns="http://schemas.microsoft.com/OracleEBS/2008/05/TableViewRecord/AR/AR_ARCHIVE_PURGE_INTERIM">
<TRX_ID>001</TRX_ID>
<RELATED_ID>002</RELATED_ID>
</InsertRecord>
</RECORDSET>
</Insert>
此请求消息会将记录插入到AR_ARCHIVE_PURGE_INTERIM接口表中。 有关使用 Oracle 电子商务适配器在 Oracle 电子商务套件上执行基本 DML 操作的请求消息架构的详细信息,请参阅用于 插入、更新、删除和选择操作 的消息架构。
对于简单的数据列(如前面的请求消息中所示),还可以使用 InlineValue 属性。 有关 InlineValue 属性的详细信息,请参阅 对接口表和接口视图的操作中的插入操作的说明。
例如,上述具有内联值的请求消息将如下所示:
<Insert xmlns="http://schemas.microsoft.com/OracleEBS/2008/05/InterfaceTables/AR/AR/AR_ARCHIVE_PURGE_INTERIM">
<RECORDSET>
<InsertRecord xmlns="http://schemas.microsoft.com/OracleEBS/2008/05/TableViewRecord/AR/AR_ARCHIVE_PURGE_INTERIM">
<TRX_ID InlineValue="(Select TRX_ID FROM table_name)">001</TRX_ID>
<RELATED_ID>002</RELATED_ID>
</InsertRecord>
</RECORDSET>
</Insert>
在此请求消息中,将从另一个表中检索TRX_ID列的值。 因此,即使将“001”指定为TRX_ID的值,为 InlineValue 属性指定的 SELECT 语句的值也会插入表中。
业务流程使用该消息并将其发送到 Oracle 电子商务套件。 Oracle 电子商务套件的响应保存在定义为业务流程的一部分的其他文件位置。 例如,Oracle 电子商务套件针对上述请求消息的响应为:
<?xml version="1.0" encoding="utf-8" ?>
<InsertResponse xmlns="http://schemas.microsoft.com/OracleEBS/2008/05/InterfaceTables/AR/AR/AR_ARCHIVE_PURGE_INTERIM">
<InsertResult>1</InsertResult>
</InsertResponse>
响应包含插入表中的行数。
最佳实践
部署并配置 BizTalk 项目后,可以将配置设置导出到名为绑定文件的 XML 文件。 生成绑定文件后,可以从文件导入配置设置,这样就不需要为同一业务流程创建发送端口和接收端口等项。 有关绑定文件的详细信息,请参阅 在 Oracle E-Business Suite 中重复使用适配器绑定。