發表文章

目前顯示的是有「time-base action」標籤的文章

疑難雜症 - 為什麼workflow不觸發!!

最近在跟Salesforce的Support來來回回討論一個難解問題,就是我們某個workflow有時候沒有成功被觸發。 而問題難就難在這個「有時候」。 他沒有一定失敗,但也不總是成功。我們無法刻意地重現問題。而且我們看來看去也實在看不出來失敗與成功的關鍵差異。 背景說明 我們有一個 Case object 的 workflow,含有兩個 Time-Based Action。 當有 case 符合此 workflow 的條件時,三天後會更新此 case 上某個 field,五天後會把這個 case 給 close 掉。 但我們發現有些 case 雖然成功執行了第一個 action (更新 field),但卻沒執行第二個 action (close case)。 為數眾多 應當 close 的 case 就一直卡在那裡。 解題過程 針對這些卡住的 case,我們做了這些分析: 假說1 :可能是在執行完第一個 action 後、還沒執行第二個 action 的這個期間,case 的值有發生變動,以致於不再符合 workflow 的條件,workflow 自然就停了 。 推翻假說1 :我們檢查了這些應關而未關的 case。幾乎都仍然處於符合 workflow 條件的的狀態。只要去隨便一下 update 該 case ,會發現又可以再次從頭觸發 workflow。所以看來並不是因為 criteria 走樣而造成的。 假說2 :我們發現應關而未關的 case 的 LastModifiedBy 幾乎都是同一個帳號。LastModifiedBy 也就是觸發 workflow 並執行 action的人。那會不會是這個帳號沒有關 case 的權限呢? 推翻假說2 :我 login as 了該帳號去嘗試手動關閉 case,相常順利毫無阻礙。而且我們也檢查了許多應關且有關的 case,其中不乏這個帳號成功透過 workflow 關閉的 case。可見應非權限問題。 後來實在走投無路了,想不出問題可能出在哪邊,我們就開了 case 向 Salesforce Support 求助。Support Agent 協助我們看了半天,也看不出個所以然來。不過 Support 有提出一個有可能改善的方案: …one possible adjustment in the WFR condition th...