Отслеживание времени при изменении статуса

У меня есть вопрос об определенной функциональности в Siebel, касающейся запросов на обслуживание.

Есть ли способ отследить время, когда определенный запрос на обслуживание находится в заданном статусе / подстатусе, например, "Ожидание клиента"? Когда запрос на обслуживание снова меняется на другой статус, который больше не "ждать кого-то", я вынужден прекратить считать время.

1 ответ

Я не знаю ни одного готового решения, отвечающего вашим потребностям, однако есть много способов добиться этого с небольшой настройкой. Например:

  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)"

Ваш Waiting Date поле будет хранить время последнего изменения запроса на обслуживание: "Ожидание от клиента" или NULL, если он находится в другом статусе. Затем, Waiting Time будет накапливать общее время, в течение которого запрос находился в этом состоянии.

Я не тестировал решение, может потребоваться дополнительная работа, например, возможно, что Siebel не позволяет использовать выражение [Waiting Time] + (Timestamp() - [Waiting Date]) напрямую, и вам придется разложить его, используя вспомогательные вычисляемые поля.

Также обратите внимание, что пользовательское свойство "Набор обновлений на месте" изменило свой синтаксис с Siebel 7.7-7.8 на Siebel 8.x.

Если вы знакомы с серверными сценариями, вы можете легко реализовать нечто подобное на BusComp_PreSetFieldValue событие. Если изменяемое поле имеет статус, проверьте, вводите ли вы или нет (или нет) статус "Ожидание клиента", и соответствующим образом обновите два поля.

Другие вопросы по тегам