Пользователь
Логин:
Пароль:
Регистрация
Забыли свой пароль?

Поиск по сайту
 

 Расширенный поиск
Реклама

Создания (даты последней активности) в системе OMNITRACKER

Довольно часто возникает ситуация, когда нужно найти активного специалиста в нужной группе. Обзванивать всю группу не очень удобно, а вот найти пользователя группы, вполне возможно. Можно пойти тремя путями, о них чуть ниже:

Первый вариант, сделать отчет, который будет смотреть на таблицу History. Условия отбора довольно простые, берем текущее время и вычитаем последний час. Группируем по специалистам и выводим название группы. Далее строим отчет, к которому прописываем созданный фильтр и делаем обязательность выбора группы. Теперь при запуске отчета сотрудник выбирает интересующую группу и смотрит кто из сотрудников присутствует на месте. Также не забываем поставить изолированную блокировку, чтобы не блокировать работу приложения, данным запросом т.к. подобный запрос может заблокировать работу приложения.



Второй вариант, это написания правила, которое будет обновлять в карточке пользователя некое поле, формат дата. Данный вариант не очень красивый, т.к. это дополнительные расходы в транзакционном цикле workflow. Пишется простой скрипт, который нужно будет поместить в список глобальных скриптов и для каждой папки пред определить правило, которое будет его выполнять. Данный метод крайне нежелателен он ресурсоемкий в целом для системы, допустим кто-то запустит групповую правку и тут скрипт будет работать в цикле на каждом изменении. Это некрасивое решение, но оно все-таки есть.

Третий вариант, пожалуй, самый лучший из всего что можно придумать. Как и во втором варианте нам потребуется создать поле формат дата, в разделе «Учетные записи», «Пользователи».





Выдаем права на поле.





В меню системы выбираем пункт, файл > скрипты, скрипт автоматического старта.






Код
Option Explicit
On Error Resume Next
Dim objUserAccount
Set objUserAccount = ActiveSession.GetRequestByUniqueId(ActiveUser.Object.UniqueId)
objUserAccount.Fields("DateOfLastActivity").TValue = Now
objUserAccount.SaveEx 1 ' otSaveDoNotCheckPermissions
If Err <> 0 Then
    LogMessage "Error in Autostart script: " & Err.Description
    Err.Clear
End If

На выходе мы получили дату последнего входа сотрудника. С точки зрения нагрузки на систему оно минимальное, и действует только в момент авторизации. Теперь достаточно вывести данное поле в общий вид рабочей группы, и мы будем видеть дату входа, когда был авторизован конкретный пользователь. Это позволяет не пользовать какими-либо дополнительными средствами, вроде отчетов и не блокирует работу системы.