Oracle 电子商务套件中的 ExecuteReader、ExecuteScalar 或 ExecuteNonQuery 操作
Oracle E-Business 适配器公开一般操作,例如 ExecuteNonQuery、 ExecuteReader 和 ExecuteScalar。 可以使用这些操作对 Oracle 数据库执行任何 SQL 语句。 这些操作因为 SQL 语句获取的响应类型而异。 有关适配器如何支持这些操作的详细信息,请参阅 支持 ExecuteNonQuery、ExecuteReader 和 ExecuteScalar 操作。
本主题演示如何使用具有 BizTalk Server 的 Oracle E-Business 适配器执行 ExecuteReader 操作。 可以按照本主题中所述的一组过程来执行 ExecuteNonQuery 和 ExecuteScalar 操作。
如何在 Oracle 数据库上调用 ExecuteReader 操作
使用 Oracle 电子商务适配器和BizTalk Server对 Oracle 数据库执行操作涉及构建基块以创建 Oracle E-Business Suite 应用程序中所述的过程性任务。 若要在 Oracle 数据库上调用 ExecuteReader 操作,这些任务包括:
创建 BizTalk 项目,并为 ExecuteReader 操作生成架构。
在 BizTalk 项目中创建消息,以便从 Oracle 数据库发送和接收消息。
创建业务流程以调用 Oracle 数据库上的操作。
生成和部署 BizTalk 项目。
通过创建物理发送和接收端口来配置 BizTalk 应用程序。
启动 BizTalk 应用程序。
本主题提供有关执行这些任务的说明。
生成架构
本主题演示如何使用具有 BizTalk Server的 Oracle E-Business 适配器在 Oracle 数据库上调用 ExecuteReader 操作。 ExecuteReader 操作采用任何 SQL 语句作为参数,并将操作的结果集作为 DataSet 数组返回。 对于本主题,我们使用 ExecuteReader 操作对 ACCOUNTACTIVITY 表执行 SELECT 语句。 ACCOUNTACTIVITY 表是通过运行示例提供的脚本创建的。 有关脚本的详细信息,请参阅 示例。
为了演示如何调用 ExecuteReader 操作,为 ExecuteReader 操作生成架构。 必须创建 BizTalk 项目并使用“使用适配器服务加载项”生成架构。 有关如何生成架构的详细信息,请参阅 在 Visual Studio 中检索 Oracle 电子商务套件操作的元数据。
定义消息和消息类型
你之前生成的架构描述了业务流程中的消息所需的“类型”。 消息通常是一个变量,其类型由相应的架构定义。 现在必须为业务流程创建消息,并将其链接到在上一步中生成的架构。
创建消息并链接到架构
将业务流程添加到 BizTalk 项目。 在解决方案资源管理器中,右键单击 BizTalk 项目名称,指向“添加”,然后单击“新建项”。 键入 BizTalk 业务流程的名称,然后单击“ 添加”。
打开 BizTalk 项目的“业务流程视图”窗口(如果尚未打开该窗口)。 为此,请单击“ 视图”,指向“ 其他窗口”,然后单击“ 业务流程视图”。
在“业务流程视图”中,右键单击“ 消息”,然后单击“ 新建消息”。
右键单击新创建的消息,然后选择“ 属性窗口”。
在Message_1的“属性”窗格中,执行以下操作:
使用此选项 要执行此操作 标识符 键入 Request
消息类型 在下拉列表中,展开“ 架构”,然后选择 “Execute_Reader.GenericOperation.ExecuteReader”,其中“Execute_Reader”是 BizTalk 项目的名称。 GenericOperation 是为 ExecuteReader 操作生成的架构。 重复步骤 2 以创建新消息。 在新邮件的“ 属性 ”窗格中,执行以下操作:
使用此选项 要执行此操作 标识符 键入 Response
消息类型 从下拉列表中,展开“ 架构”,然后选择 “Execute_Reader.GenericOperation.ExecuteReaderResponse”。
设置业务流程
必须创建 BizTalk 业务流程才能使用 BizTalk Server 对 Oracle 数据库执行操作。 在此业务流程中,你将在定义的接收位置删除请求消息。 Oracle E-Business 适配器使用此消息并将其传递到 Oracle 数据库。 Oracle 数据库的响应将保存到另一个位置。 用于调用一般操作(如 ExecuteReader) 的典型业务流程将包含:
发送和接收形状,用于从 Oracle 数据库发送和接收消息。
用于从 Oracle 数据库发送和接收消息的双向接收端口。
用于将响应从 Oracle 数据库发送到文件夹的单向发送端口。
用于调用 ExecuteReader 操作的示例业务流程如下所示:
添加消息形状
需要为每个消息形状配置以下属性。 Shape 列中列出的名称对应于刚刚提到的业务流程中显示的消息形状的名称。
形状 | 形状类型 | 属性 |
---|---|---|
ReceiveMessage | 接收 | - 将 Name 设置为 ReceiveMessage - 将 “激活” 设置为 “True” |
SendMessage | 发送 | - 将 Name 设置为 SendMessage |
ReceiveResponse | 接收 | - 将 Name 设置为 ReceiveResponse - 将 “激活” 设置为 “False” |
SendResponse | 发送 | - 将 Name 设置为 SendResponse |
添加端口
对于每个逻辑端口,请配置下表中的属性。 “端口”列中列出的名称对应于业务流程中显示的端口名称。
端口 | 属性 |
---|---|
MessageIn | - 将 标识符 设置为 MessageIn - 将 Type 设置为 MessageInType - 将 通信模式 设置为 单向 - 将 通信方向 设置为 接收 |
LOBPort | - 将 标识符 设置为 LOBPort - 将 Type 设置为 LOBPortType - 将 通信模式 设置为 请求-响应 - 将 通信方向 设置为 “发送-接收” |
ResponseOut | - 将 标识符 设置为 ResponseOut - 将 Type 设置为 ResponseOutType - 将 通信模式 设置为 单向 - 将 “通信方向 ”设置为 “发送” |
指定操作形状的消息并将其连接到端口
下表指定属性值以指定操作形状的消息并将消息链接到端口。 “形状”列中列出的名称对应于前面业务流程图中显示的消息形状的名称。
配置这些属性后,将连接消息形状和端口,并且业务流程已完成。
然后,现在必须生成 BizTalk 解决方案并将其部署到 BizTalk Server。 有关详细信息,请参阅 生成和运行业务流程。
形状 | 属性 |
---|---|
ReceiveMessage | - 将 “消息 ”设置为 “请求” - 将 操作 设置为 MessageIn.Exec_Reader.Request |
SendMessage | - 将 “消息 ”设置为 “请求” - 将 操作 设置为 LOBPort.Exec_Reader.Request |
ReceiveResponse | - 将 消息 设置为 响应 - 将 操作 设置为 LOBPort.Exec_Reader.Response |
SendResponse | - 将 消息 设置为 响应 - 将 操作 设置为 ResponseOut.Exec_Reader.Request |
指定这些属性后,将连接消息形状和端口,并且业务流程已完成。
现在,必须生成 BizTalk 解决方案并将其部署到 BizTalk Server。 有关详细信息,请参阅 生成和运行业务流程。
配置 BizTalk 应用程序
部署 BizTalk 项目后,前面创建的业务流程将列在 BizTalk Server 管理控制台的“业务流程”窗格中。 必须使用 BizTalk Server 管理控制台来配置应用程序。 有关演练,请参阅 演练:部署基本 BizTalk 应用程序。
配置应用程序涉及:
为应用程序选择主机。
将业务流程中创建的端口映射到 BizTalk Server 管理控制台中的物理端口。 对于此业务流程,必须:
在硬盘上定义一个位置和相应的文件端口,你将在其中放置请求消息。 BizTalk 业务流程将使用请求消息并将其发送到 Oracle 数据库。
在硬盘上定义一个位置和相应的文件端口,BizTalk 业务流程将删除包含来自 Oracle 数据库的响应的响应消息。
定义物理 WCF-Custom 或 WCF-OracleEBS 发送端口以将消息发送到 Oracle 数据库。 还必须在发送端口中指定操作。 有关如何创建发送端口的信息,请参阅 手动配置到 Oracle 电子商务适配器的物理端口绑定 。
重要
作为泛型操作的一部分,如果要对属于 Oracle 电子商务套件应用程序的对象(例如存储过程、函数、接口表或接口视图)执行操作,则必须通过指定必要的绑定属性来设置应用程序上下文。 有关设置应用程序上下文的详细信息,请参阅 设置应用程序上下文。
可以通过指定绑定属性或通过设置 Oracle 电子商务适配器公开的消息上下文属性来设置应用程序上下文。 有关如何设置绑定属性的说明,请参阅 配置 Oracle 电子商务套件的绑定属性。 有关如何使用消息上下文属性设置应用程序上下文的说明,请参阅 在 Oracle 电子商务套件中使用消息上下文属性配置应用程序上下文。
注意
使用使用适配器服务 BizTalk 项目外接程序生成架构还会创建一个绑定文件,其中包含有关要为这些端口设置的端口和操作的信息。 可以从 BizTalk Server 管理控制台导入此绑定文件,为出站呼叫创建发送端口 () 或接收) 入站呼叫 (端口。 有关详细信息,请参阅 使用 Oracle E-Business Suite 的端口绑定文件配置物理端口绑定。
启动应用程序
在对 Oracle 数据库调用 ExecuteReader 操作之前,必须启动 BizTalk 应用程序。 有关启动 BizTalk 应用程序的说明,请参阅 如何启动业务流程。
在此阶段,请确保:
用于接收业务流程请求消息的 FILE 接收端口正在运行。
用于从业务流程接收响应消息的 FILE 发送端口正在运行。
用于将消息发送到 Oracle 数据库的 WCF-Custom 或 WCF-OracleEBS 发送端口正在运行。
操作的 BizTalk 业务流程正在运行。
执行操作
运行应用程序后,必须将请求消息删除到 FILE 接收位置。 请求消息的架构必须符合前面生成的 ExecuteReader 操作的架构。 例如,使用 ExecuteReader 操作执行 SELECT 语句的请求消息为:
<ExecuteReader xmlns="http://schemas.microsoft.com/OracleEBS/2008/05/GenericOperation/">
<Query>SELECT * FROM ACCOUNTACTIVITY</Query>
</ExecuteReader>
有关使用 Oracle E-Business 适配器调用 ExecuteReader 操作的请求消息架构的详细信息,请参阅 ExecuteReader 、ExecuteScalar 和 ExecuteNonQuery 操作的消息架构。
业务流程使用消息并将其发送到 Oracle 数据库。 来自 Oracle 数据库的响应保存在定义为业务流程一部分的其他 FILE 位置。 ExecuteReader 操作的响应包含作为数据集的结果集。 例如,Oracle 数据库针对上述请求消息的响应为:
<?xml version="1.0" encoding="utf-8" ?>
<ExecuteReaderResponse xmlns="http://schemas.microsoft.com/OracleEBS/2008/05/GenericOperation/">
<ExecuteReaderResult>
<xs:schema id="NewDataSet" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element msdata:IsDataSet="true" name="NewDataSet">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="NewTable">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="TID" type="xs:decimal" />
<xs:element minOccurs="0" name="ACCOUNT" type="xs:decimal" />
<xs:element minOccurs="0" name="AMOUNT" type="xs:decimal" />
<xs:element minOccurs="0" name="DESCRIPTION" type="xs:string" />
<xs:element minOccurs="0" name="TRANSDATE" type="xs:dateTime" />
<xs:element minOccurs="0" name="PROCESSED" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
<diffgr:diffgram xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
<NewDataSet xmlns="">
<NewTable>
<TID>1</TID>
<ACCOUNT>100001</ACCOUNT>
<AMOUNT>500</AMOUNT>
<DESCRIPTION />
<TRANSDATE>2008-08-04T13:04:20</TRANSDATE>
<PROCESSED>n</PROCESSED>
</NewTable>
<NewTable>
......
......
</NewTable>
......
......
</NewDataSet>
</diffgr:diffgram>
</ExecuteReaderResult>
</ExecuteReaderResponse>
最佳实践
部署并配置 BizTalk 项目后,可以将配置设置导出到名为绑定文件的 XML 文件。 生成绑定文件后,可以从文件导入配置设置,这样就不需要为同一业务流程创建发送端口和接收端口等项。 有关绑定文件的详细信息,请参阅 在 Oracle E-Business Suite 中重复使用适配器绑定。