2011-02-26 113 views
1

我的問題是策略運行兩次而不是一次。Siebel策略只應執行一次執行兩次

該策略在oportunity字段[status]更改爲「close」時運行。該策略執行一個工作流程,但是當我更改該字段時,該策略會以2-15秒的延遲間隔運行兩次(爲該機會創建一個活動)兩次執行工作流程。

我搜索了一下是否有另一個策略在該字段中運行,並且我確認該策略運行兩次(完全相同的策略)。我嘗試在工作流中創建查詢和決策點以「驗證」是否創建了一個活動並且它可以工作,但前提是該策略的運行延遲時間大於9秒。如果工作量少於此量,則工作流將運行兩次。

我該如何解決這個問題?

回答

1

工作流策略用於管理數據庫觸發器。觸發器在s_escl_req表中創建一條記錄,所以看看這裏發生了什麼。然後:

  • 確保你只有一個工作流程監控代理
  • 運行產生觸發,然後再試一次。

如果您想要更詳細地進行調試,請查看SIEBEL_ROOT \ siebsrvr \ trigger.sql文件以查看您的表和字段是否會發生兩次。如果是這種情況,您可能希望過期一些策略。

PS:要解決這個正確的方法是在MetaLink上搜索...

0

這裏是我會做:

  1. 檢查數據庫觸發器的機遇表(S_OPTY我認爲)用數據庫工具查看是否存在兩個意外事件觸發器;工作流策略的行ID應該在那裏。如果是這種情況,請按照先前的回答所述刪除並重新生成觸發器。

  2. 如果沒有,請參閱S_ESCL_REQ(其中發送立即觸發器)和S_ESCL_STATE(其中發送延遲觸發器)中發生的情況,並查找BT_ROW_ID與S_OPTY記錄的ROW_ID匹配的記錄。這將有助於進一步調查。發回!