我对Siebel中有关服务请求的特定功能有疑问。
有没有办法跟踪某个服务请求处于给定状态/子状态的时间,例如“等待客户”?当服务请求再次更改为另一个不再“等待某人”的状态时,我不得不停止计算时间。
答案 0 :(得分:0)
我不知道任何开箱即用的解决方案可满足您的需求,但是有很多方法可以通过一些自定义来实现它。例如:
Waiting Time
(预定义值为0)和Waiting Date
。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])
,而您可能需要这样做。我必须使用辅助计算字段对其进行分解。
另请注意,On Field Update Set用户属性已将其语法从Siebel 7.7-7.8更改为Siebel 8.x。
如果您熟悉服务器脚本,则可以在BusComp_PreSetFieldValue
事件上轻松实现类似的功能。如果要更改的字段是状态,请检查您是否正在进入或退出(或不)等待客户"状态,并相应地更新两个字段。