I have a question about a specific functionality in Siebel, regarding service requests.
Is there a way to track time when certain service request is in a given status/substatus, for example "Waiting on Customer"? When the service request is changed again to another status that isn't "Wait for somebody" anymore, I have to stop counting the time.
I don't know of any out of the box solution to your needs, however there are many ways to achieve it with a bit of customisation. For example:
Waiting Time
(with predefault value: 0) andWaiting 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)"
Your
Waiting Date
field will store the last time the service request changed to "Waiting on Customer", or NULL if it's on another status. Then,Waiting Time
will accumulate the total time the request has been in that status.I have not tested the solution, it might need some more work, for example, it's possible that Siebel doesn't allow you to use the expression
[Waiting Time] + (Timestamp() - [Waiting Date])
directly and you'll have to decompose it using auxiliary calculated fields.Note also that the On Field Update Set user property has changed its syntax from Siebel 7.7-7.8 to Siebel 8.x.
If you're familiar with server scripting, you could implement something similar quite easily, on the
BusComp_PreSetFieldValue
event. If the field being changed is Status, check if you're entering or exiting (or not) the "Waiting on Customer" status, and update the two fields accordingly.