2014-10-01 182 views
0

對於服務請求,我對Siebel中的特定功能有疑問。狀態更改時的時間跟蹤

有什麼方法可以跟蹤某個服務請求處於特定狀態/子狀態的時間,例如「等待客戶」?當服務請求再次更改爲另一個不是「等待某人」的狀態時,我必須停止計時。

回答

0

我不知道任何開箱即用解決方案,但有很多方法可以通過一些定製來實現它。例如:

  1. 創建兩個新的字段,Waiting Time(與predefault值:0)和Waiting Date
  2. 創建下面BC用戶屬性:
    • On Field Update Set x = "Status", "Waiting Time", "IIF([Waiting Date] IS NULL, [Waiting Time], [Waiting Time] + (Timestamp() - [Waiting Date]))
    • On Field Update Set y = "Status", "Waiting Date", "IIF([Status]='Waiting on Customer',Timestamp(),NULL)"

Waiting Date字段將存儲最後一次服務請求變更爲 「等待客戶」如果它處於另一個狀態,則爲NULL。然後,Waiting Time將累計請求處於該狀態的總時間。

我還沒有測試過解決方案,可能需要做更多的工作,例如,Siebel不允許直接使用表達式[Waiting Time] + (Timestamp() - [Waiting Date]),並且必須使用輔助計算字段對其進行分解。

還要注意,字段更新集用戶屬性已將其語法從Siebel 7.7-7.8更改爲Siebel 8.x

如果您熟悉服務器腳本,可以在BusComp_PreSetFieldValue事件中輕鬆實現類似的功能。如果要更改的字段是狀態,請檢查您是否正在進入或退出(或不在)「等待客戶」狀態,並相應地更新這兩個字段。