BizTalk SQL 适配器复合操作,链接存储过程调用
BizTalk SQL Adapter composite operation, chaining stored procedure calls
我们需要在同一个数据库上调用三个存储过程,想着用组合操作将它们包装在同一个事务的同一个调用中。
问题是,我们需要将第一个存储过程的结果用作第二个和第三个过程的输入,这可行吗?
谢谢
不,很遗憾不是。该映射将 运行 并创建 XML 供 SQL 适配器随后执行。
您可以考虑创建一个仅 运行 第一个存储过程的双向发送端口;和另一个订阅第一个发送端口的响应的发送端口和运行第二个和第三个过程。
恐怕这是不可能的。
复合操作的输入是一个 XML 实例,其中每个输入参数都是预先提供的。
如果确实需要执行这些特定的存储过程,您可以尝试将它们包装到一个自定义存储过程中,您可以在其中随意执行。
也可以尝试将这 3 个存储过程的逻辑合并到一个新的存储过程中。尝试考虑标量函数、table 类型、table 值函数等。 SQL 服务器拥有相当多的武器库,可以让您为所欲为。
是的,您绝对可以做到这一点,但您不会使用复合操作。
您将使用按顺序执行调用的编排,使用一个响应创建下一个使用映射的请求。
这实际上是一种非常常见的模式。
我们需要在同一个数据库上调用三个存储过程,想着用组合操作将它们包装在同一个事务的同一个调用中。
问题是,我们需要将第一个存储过程的结果用作第二个和第三个过程的输入,这可行吗?
谢谢
不,很遗憾不是。该映射将 运行 并创建 XML 供 SQL 适配器随后执行。
您可以考虑创建一个仅 运行 第一个存储过程的双向发送端口;和另一个订阅第一个发送端口的响应的发送端口和运行第二个和第三个过程。
恐怕这是不可能的。
复合操作的输入是一个 XML 实例,其中每个输入参数都是预先提供的。
如果确实需要执行这些特定的存储过程,您可以尝试将它们包装到一个自定义存储过程中,您可以在其中随意执行。
也可以尝试将这 3 个存储过程的逻辑合并到一个新的存储过程中。尝试考虑标量函数、table 类型、table 值函数等。 SQL 服务器拥有相当多的武器库,可以让您为所欲为。
是的,您绝对可以做到这一点,但您不会使用复合操作。
您将使用按顺序执行调用的编排,使用一个响应创建下一个使用映射的请求。
这实际上是一种非常常见的模式。