Siebel 策略在只应执行一次时执行了两次

发布于 2024-10-19 04:08:35 字数 274 浏览 6 评论 0原文

我的问题是策略运行了两次,而不是一次。

当机会字段[状态]更改为“关闭”时,该策略将运行。该策略执行工作流,但当我更改该字段时,策略会运行两次,并在 2-15 秒的延迟间隔内执行工作流两次(为该机会创建活动)。

我搜索了该字段中是否有另一个策略正在运行,并且我已确认该策略运行了两次(完全相同的策略)。我尝试在工作流程中进行查询和决策点,以“验证”是否创建了一项活动并且该活动有效,但前提是该策略的运行延迟大于 9 秒。如果工作时间小于该值,则工作流将运行两次。

我该如何解决这个问题?

My problem is that a policy is running twice, instead of once.

The policy runs when a oportunity field [status] is changed to "close". The policy executes a workflow, but when I change that field, the policy runs twice executing the workflow two times (that creates an activity for that opportunity) in a delay interval of 2-15 seconds.

I searched to see if there's another policy running in that field and I have confirmed that the policy is running twice (exactly the same policy). I tried making a query and a decision point in the workflow to "validate" if there is one activity created and it works, but only if the policy runs in a delay of >9 seconds. If it works in less than that, the workflow runs twice.

How can I resolve this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

反差帅 2024-10-26 04:08:35

工作流策略用于管理数据库触发器。触发器在 s_escl_req 表中创建一条记录,因此看看这里会发生什么。然后:

  • 确保您只有一个 Workflow Monitor Agent
  • 运行生成触发器,然后重试。

如果要进行更详细的调试,请查看 SIEBEL_ROOT\siebsrvr\trigger.sql 文件以查看表和字段是否出现两次。如果是这种情况,您可能希望使某些保单过期。

PS:解决这个问题的正确方法是在metalink上搜索...

Workflow policies are used to manage database triggers. The trigger creates a record in the s_escl_req table, so see what happens here. Then:

  • Make sure you have only one Workflow Monitor Agent
  • Run Generate triggers and try again.

If you want to debug in more details, review the SIEBEL_ROOT\siebsrvr\trigger.sql file to see if your table and field apprears twice. If that is the case, you might want to expire some policies.

PS: The correct way to solve this is to search on metalink...

樱花坊 2024-10-26 04:08:35

这就是我要做的:

  1. 使用数据库实用程序检查机会表(我认为是 S_OPTY)上的数据库触发器,并查看是否意外有两个触发器;工作流程规则的行 ID 应该在其中。如果是这种情况,请按照前面的答案所述删除并重新生成触发器。

  2. 如果不是,请查看 S_ESCL_REQ(发送立即触发器)和 S_ESCL_STATE(发送延迟触发器)中发生的情况,并查找 BT_ROW_ID 与 S_OPTY 记录的 ROW_ID 匹配的记录。这将有助于进一步调查。回发!

Here's what I would do:

  1. Check the database triggers on the Opportunity table (S_OPTY I think) with a database utility and see if there are two triggers there by accident; the Row Id of the Workflow Policy should be in there. If this is the case, drop and regenerate triggers as stated by a previous answer.

  2. If not, see what happens in both S_ESCL_REQ (where immediate triggers are sent) and S_ESCL_STATE (where delayed triggers are sent) and look for records where BT_ROW_ID matches the ROW_ID of the S_OPTY record. This will help with further investigation. Post back!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文