Biztalk 创建更新Oracle数据库的编排的最有效方法是什么?

Biztalk 创建更新Oracle数据库的编排的最有效方法是什么?,biztalk,Biztalk,我在Biztalk中创建了我的第一个业务流程,但很难找到一种高效的方法来更新数据库(特别是最多3个不同的表) 用户通过一条入站消息调用我们的服务,该入站消息匹配一个模式,该模式包含emplid(惟一id),然后是一组名称-值对(请参见本图中的源模式)。“名称”对应于表中的一列(例如,如果名称为“employeename”,则对应于EMPLOYEE表的name列)。当然,该值是用户希望更新该列的新值 因此,他们可以传入一条更新消息,该消息仅适用于1个表、2个表或全部3个表,具体取决于他们希望为传

我在Biztalk中创建了我的第一个业务流程,但很难找到一种高效的方法来更新数据库(特别是最多3个不同的表)

用户通过一条入站消息调用我们的服务,该入站消息匹配一个模式,该模式包含emplid(惟一id),然后是一组名称-值对(请参见本图中的源模式)。“名称”对应于表中的一列(例如,如果名称为“employeename”,则对应于EMPLOYEE表的name列)。当然,该值是用户希望更新该列的新值

因此,他们可以传入一条更新消息,该消息仅适用于1个表、2个表或全部3个表,具体取决于他们希望为传入的员工更新的字段


我目前的做法是使用3个表适配器进行3个单独的更新(每个表一个,上图中有一个),但我在处理不同的情况时遇到了问题,即如果它们为所有3个表传入updateValuePairs,而不是仅为两个表传入一个或两个表(其他查询仍尝试运行并失败)。我接近这一点了吗?还是有更好的方法来完成我想做的事情?

为了实施更清洁的解决方案,我会尝试不同的方法

创建一个存储过程,该过程处理要转到哪个表的逻辑

而您只需要一个映射和一个LOB适配器,而不是现在的3个

浏览解决方案

1.接收编排中的输入

2.将输入映射到存储过程生成的架构

3.将映射数据发送到DB/LOB适配器到DB中

这里有一个链接可以帮助您(我假设您使用biztalk 2010):


您能否详细介绍一下Id如何将入站消息传递给存储过程进行解析(或者在调用SP之前是否对其进行解析?),然后在何处捕获SP的返回值?抱歉,我以前从未在BizTalk中使用过SP。您能否告知您正在运行的BizTalk版本?它可能会影响建议的解决方案。您能否更新此问题以指示您是否知道需要哪些键->表映射?i、 是否有预先定义的列表?这个列表会改变吗?还是总是固定的?是否要在以后更改它?biztalk server 2009。键->表映射是显式的和预定义的(我知道它们)。列表不会动态更改,每个请求的列表都是相同的(除非将来有一些增强,它们可以添加一个字段)。