2013-10-28 14 views
1

我有一个由以前调用非常简单的存储过程的人员构建的流程流。在完成该过程后,过程流程有两个转换,一个是存储过程成功,另一个是否则成功。但是,存储过程本身并不返回可由流程流直接评估的任何内容,如返回结果。现在,如果这个过程失败了(带有无限的最大存在性问题),它将调用分支,它将调用存储过程来发送失败的电子邮件消息。如果成功,相反会发生。我不得不调整程序,所以我创建了一个新的程序。现在,如果它失败或成功,无论如何调用成功分支。我已经检查了oracle的所有文档,以了解如何使这项工作成为可能,并且对于我的生活无法确定如何使其正常工作。我首先在oracle论坛上发布了这个消息,但没有得到任何回应。有没有人有一个想法如何使这项工作?Oracle仓库构建器(owb)在流程流程中评估存储过程结果

+1

请问现有过程遇到错误时会抛出未处理的异常?新程序?为什么2013年有人会得到一个最大范围异常? –

回答

0

按照Oracle仓库构建指南:

当您添加过渡到画布上,默认情况下,过渡没有适用于它的条件。

确保您已按文档的Defining Transition Conditions部分所述正确定义了条件转换。

如果一个用户定义的活动将返回ERROR结果:

  1. 它抛出一个异常,或
  2. 它返回值3Use Return as Status选项设置为true
+0

我改变了存储过程,使其具有单个输出整数返回值。然而,无论它被设置为1,2还是3,它们被定义为成功,警告或错误的评估值,它们仍然分支到成功分支。 – sldahlin

+0

@sldahlin:它需要是一个函数,而不是一个使用存储函数的程序 –

+0

我能够完成需要的东西。文档需要以更完整的方式阐明这一点。非常感谢你 – sldahlin

0

“但是,存储过程本身不会返回任何 可以通过进程流直接进行评估,如返回结果。”

这是关键:如果操作过程程序没有产生任何信号,您如何判断它是否成功?事实上,在这种情况下成功的定义是什么?

我不明白为什么当你必须“调整程序”时,你写了一个新的而不是,呃调整原来的程序。要解决这个问题的唯一方法是从原始程序中获得一些反馈。

在这一点上,我们用尽了细节。直接的选择是编辑原始程序,以便传回结果信息,可能通过OUT参数或通过引入一些记录功能。或者,重新编写它以在失败时引发异常。间接选择是编写一些查询来确定程序在给定运行中所取得的成果,然后确定这是否构成成功。

个人而言,重写原始程序似乎是更好的选择。


如果这个答案不能帮助你,那么你需要解释更多关于你的情况。你的程序做了什么,你如何评估它,为什么你不能重新写它。