0

我正在 Biztalk 中创建我的第一个编排,并且在想出一种有效的方法来更新数据库(具体来说,最多 3 个不同的表)时遇到了麻烦。

用户使用与包含 emplid(唯一 id)和一堆名称-值对的模式匹配的入站消息调用我们的服务(请参见此图中的源模式)。“名称”对应于表中的列(例如,如果名称是“employeename”,则它对应于 EMPLOYEE 表的 NAME 列)。该值当然是用户希望将该列更新为的新值。

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

我目前正在使用 3 个表适配器将其作为 3 个单独的更新(每个表一个,其中一个如上图所示)来处理它,但我无法处理不同的情况,即它们是否为所有 3 个表传递 updateValuePairs,而不是只有一个或仅适用于两个表(其他查询仍尝试运行并失败)。我接近这个权利吗?还是有更好的方法来完成我想做的事情?

4

1 回答 1

1

我会尝试不同的方式来实施更清洁的解决方案,

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

比你只需要映射和一个 LOB 适配器而不是你现在得到的 3 个

俯视解决方案

1.在编排中接收输入

2.将输入映射到存储过程生成的模式

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

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

如何使用 Oracle 存储过程

于 2012-09-05T19:08:15.817 回答