我有一个关于Siebel中特定功能的问题,关于服务请求。
有没有一种方法可以跟踪特定服务请求处于给定状态/子状态的时间,例如"等待客户"?当服务请求再次更改为另一个不再是"等待某人"的状态时,我必须停止计时。
我不知道有任何开箱即用的解决方案可以满足您的需求,但有很多方法可以通过定制来实现。例如:
- 创建两个新字段
Waiting Time
(预定义值为0)和Waiting Date
- 创建以下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
字段将存储服务请求最后一次更改为"Waiting on Customer"的时间,如果处于其他状态,则为NULL。然后,Waiting Time
将累积请求处于该状态的总时间。
我还没有测试该解决方案,它可能需要更多的工作,例如,Siebel可能不允许您直接使用表达式[Waiting Time] + (Timestamp() - [Waiting Date])
,您必须使用辅助计算字段对其进行分解。
还请注意,On Field Update Set用户属性已将其语法从Siebel 7.7-7.8更改为Siebel 8.x。
如果您熟悉服务器脚本,您可以在BusComp_PreSetFieldValue
事件上很容易地实现类似的功能。如果更改的字段为Status,请检查您是否正在进入或退出(或未进入)"Waiting on Customer"状态,并相应地更新这两个字段。