状态更改时的时间跟踪

时间:2014-10-01 11:52:22

标签: siebel escript

我对Siebel中有关服务请求的特定功能有疑问。

有没有办法跟踪某个服务请求处于给定状态/子状态的时间,例如“等待客户”?当服务请求再次更改为另一个不再“等待某人”的状态时,我不得不停止计算时间。

1 个答案:

答案 0 :(得分:0)

我不知道任何开箱即用的解决方案可满足您的需求,但是有很多方法可以通过一些自定义来实现它。例如:

  1. 创建两个新字段Waiting Time(预定义值为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)"
  3. 您的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事件上轻松实现类似的功能。如果要更改的字段是状态,请检查您是否正在进入或退出(或不)等待客户"状态,并相应地更新两个字段。