1

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

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

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

我该如何解决这个问题?

4

2 回答 2

1

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

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

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

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

于 2011-03-11T10:06:11.347 回答
0

这是我要做的:

  1. 使用数据库实用程序检查 Opportunity 表(我认为是 S_OPTY)上的数据库触发器,看看是否有两个偶然的触发器;工作流程策略的行 ID 应该在那里。如果是这种情况,请按照先前答案的说明删除并重新生成触发器。

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

于 2011-05-10T18:06:34.307 回答