【问题标题】:Siebel policy executes twice when it should only execute onceSiebel 策略在应该只执行一次时执行了两次
【发布时间】:2011-07-05 01:00:48
【问题描述】:
我的问题是一个策略运行了两次,而不是一次。
当机会字段 [status] 更改为“关闭”时,该策略运行。该策略执行一个工作流,但是当我更改该字段时,该策略会运行两次,以 2-15 秒的延迟间隔执行两次工作流(为该机会创建一个活动)。
我搜索了该字段中是否有另一个策略正在运行,并且我已确认该策略运行了两次(完全相同的策略)。我尝试在工作流中进行查询和决策点,以“验证”是否创建了一个活动并且它有效,但前提是策略运行延迟 > 9 秒。如果它的工作时间小于这个值,则工作流会运行两次。
我该如何解决这个问题?
【问题讨论】:
标签:
workflow
crm
siebel
policies
【解决方案1】:
工作流程策略用于管理数据库触发器。触发器在 s_escl_req 表中创建了一条记录,所以看看这里发生了什么。那么:
- 确保您只有一个 Workflow Monitor 代理
- 运行生成触发器并重试。
如果您想更详细地调试,请查看 SIEBEL_ROOT\siebsrvr\trigger.sql 文件以查看您的表和字段是否出现了两次。如果是这种情况,您可能希望使某些政策过期。
PS:解决这个问题的正确方法是在metalink上搜索...
【解决方案2】:
我会这样做:
使用数据库实用程序检查 Opportunity 表(我认为是 S_OPTY)上的数据库触发器,看看是否有两个意外触发器;工作流程策略的行 ID 应该在那里。如果是这种情况,请按照前面的答案删除并重新生成触发器。
如果不是,请查看 S_ESCL_REQ(发送即时触发器)和 S_ESCL_STATE(发送延迟触发器)中发生的情况,并查找 BT_ROW_ID 与 S_OPTY 记录的 ROW_ID 匹配的记录。这将有助于进一步调查。回帖!