mulesoft中的流量恢复

mulesoft中的流量恢复,mule,Mule,我面临的问题是,我使用for-each组件逐个迭代记录,然后插入到某个终端系统中。 当数据正确时,会将数据插入最终系统,但由于数据中存在一些异常,会执行异常处理代码,但不会在for循环中恢复流,以便执行所有其他记录。 我曾尝试添加sublow,然后从流中调用它,但当在sub flow中添加异常处理时,在custom或catch或choice异常处理中错误为无效内容 如何在执行异常/错误处理块后恢复流。 .子流不能有端点或异常策略,这就是为什么会出现此错误 无论如何,您都可以使用正常流而不是子流。

我面临的问题是,我使用for-each组件逐个迭代记录,然后插入到某个终端系统中。 当数据正确时,会将数据插入最终系统,但由于数据中存在一些异常,会执行异常处理代码,但不会在for循环中恢复流,以便执行所有其他记录。 我曾尝试添加sublow,然后从流中调用它,但当在sub flow中添加异常处理时,在custom或catch或choice异常处理中错误为无效内容

如何在执行异常/错误处理块后恢复流。
.

子流不能有端点或异常策略,这就是为什么会出现此错误

无论如何,您都可以使用正常流而不是子流。 如果它没有端点,那么它将被称为私有流,并且只能从应用程序内部引用


HTH.

您可以在这里选择两个选项。 1.使用批处理,它可以为您提供处理成功或失败的元素列表。
2.使用直到成功作用域首先,请记住,只要任何作用域流、try等中的处理器出现错误,在错误处理程序运行后,不管处理程序的级别:app default、flow scope或try scope,也不管错误处理程序中的错误作用域是在error Propogate上还是在error Continue上,否,重复否,执行该范围内的其他处理器

让你得到你想要的东西的模式如下:

将给定范围内的处理器或处理器系列包装到Try范围中。注意,最简单的方法是选择所需的处理器,单击鼠标右键,然后在弹出窗口中单击“换行…”。。。然后在产生的飞出-尝试。 将On Error Continue错误作用域放入Try作用域的错误处理部分。 在错误范围内以您想要的方式处理错误。这可能不包括处理器,它将错误视为不可操作。 因此,当相关处理器抛出错误时,不会调用该Try作用域中的其他处理器,但是,在运行Try作用域的On error Continue error作用域的处理器之后,处理将在父作用域中继续(在本例中为流),并且您可以继续处理集合中的元素

注意:子流不能有自己的错误处理程序,这是正确的。但是,必须指出,子流在其父/调用范围的上下文中运行,例如流/私有流,它可能具有错误处理程序。因此,如果有流A和B及其错误处理程序A'和B',以及子流C,并且流A和B通过流引用调用子流C,并且进一步假设C中有处理器P1传递错误,那么:

当从流A调用P1运行时,控制传递到A' 当P1从流B调用时,控制传递到B'。
注2:除非成功,否则对迭代没有帮助。它只会重复发送数据的尝试,直到处理器不再发送错误为止。这似乎不是O.P.所要求的,尽管我的解释可能是错误的。

只是补充了Dds所说的。您可以在私有流上添加异常策略,也可以在没有端点的正常流上添加异常策略。通过使用异常策略,异常将被捕获到私有流中,当它返回到调用流时,调用流应该恢复。