【问题标题】:help for Biztalk orchestraion [closed]Biztalk 管弦乐的帮助 [关闭]
【发布时间】:2010-02-24 11:17:30
【问题描述】:

我在我的 biztalk 解决方案中被困在一个地方,

我有一个编排,我从 sql server 获取数据(使用生成的 schmema),它连接到决定形状,在其中我检查了我的数据库状态列之一(通过提升属性,因为它是 sql生成 schmea 我不得不删除 MAXOCCURENCE=UNBOUND), 所以现在如果状态被批准,我需要将该行插入另一个数据库,如果它比另一个数据库中的待处理,现在的问题是如果我在源表中只取一行它工作正常,但如果有不止一行它会产生问题,

请说明这个问题,如果我的方法是否正确,我不知道循环形状,如何使用它,我假设我的 sql 接收适配器将返回我所有的行,如 SP从中生成模式返回所有行,所以我认为在决定形状时应该检查每一行

谢谢

【问题讨论】:

    标签: sql-server biztalk


    【解决方案1】:

    一种选择是使用分批的概念,以便激活编排的多个实例(表中的每行一个)。反过来,您的编排将只处理单行。

    查看此链接以了解 SQL 和 Debatching http://seroter.wordpress.com/2007/01/03/debatching-inbound-messages-from-biztalk-sql-adapter/

    【讨论】:

      【解决方案2】:

      SQL 或存储过程显然能够返回不止一行。如果这是可以接受的,那么您必须了解 SQL 接收是如何工作的。如架构所示,它可以返回一到多行。通过更改数据行的生成模式的基数,您会破坏它。

      你说你提升了一个属性来使用它的决定形状。这不是必需的。您可以使用 xpath 表达式将消息中的值提取到变量中,然后在决定中使用它。您必须将架构修改为没有太多数据行的原因是您只能提升每条消息出现一次的值。由于原始模式对它可以拥有的行数没有限制,因此它不知道将哪一行用于提升的值。

      这里真正的问题是您希望数据一次通过一行。你有两个选择:

      1. 按照上面提到的 Saravana Kumar 进行操作。
      2. 调用一次只返回一行的存储过程。

      Item #2 需要对接收端口进行一些调整,以确保只要返回数据,就会重复调用 Stored Proc。如果您不这样做,您将受到每分钟轮询周期数的限制。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-08-09
        • 2020-10-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-15
        相关资源
        最近更新 更多