Stephen,

How about a "you must be present to win" model instead?

Why not have your "every N minutes" logic actually be to prompt the
user to "Click Continue or you will be auto logged out"? If N is the
same time as your Mid-tier session timeout then you have a good,
matching model too. I would think an active link "on interval" that
opens a dialog attached to any forms you are concerned about would
start the process. Then the dialog could have a second "on interval"
active link that would do the "timeout" logic. When the user clicks
"Continue" then you can trap the "activity" and just close the dialog
without exiting the User Tool.  And if you want certain user activity
to also delay the start time of this interval, then you could do that
too. With the Global field value idea. However, I would limit the
things that qualify for that condition as much as possible. Things
like "Window Open","after Submit", "after Modify", would be my likely
candidates. Button clicks do not count in my book. :)

Oh.. one other idea.. if you can find a "place to put the executable"
on every one's pc and it is small enough, then maybe you could attach
it as an attachment and use the User Tool to "install it" on their
PCs?  (Just a thought.)

HTH..


--
Carey Matthew Black
Remedy Skilled Professional (RSP)
ARS = Action Request System(Remedy)

Solution = People + Process + Tools
Fast, Accurate, Cheap.... Pick two.
Never ascribe to malice, that which can be explained by incompetence.



On 8/1/06, Heider, Stephen <[EMAIL PROTECTED]> wrote:
List,

I previously submitted an enhancement to add an Inactivity event that
can be detected by an active link.  I don't think this feature was added
to ARS 7.0.

I know that one way to manually detect user inactivity is with a global
display only datetime field on all forms the user may use, combined with
workflow that updates this global with $TIMESTAMP $ each time the user
"does something".  Does something = the user actually clicked a button,
performed a search, submitted a ticket, etc.  This would need to ignore
auto-refreshes of tables or other automatic processes not manually
initiated by the user.  This can be done but requires some tedious
programming.

All our computers have an automatic 20-minute screensaver that locks the
Windows screens.  How can you detect that the Windows screensaver is
active and/or the computer is locked?

Instead of detecting the screensaver or lock status, I can pull the
system idle time using VB.Net. *I converted it to .Net from here:
http://vbnet.mvps.org/code/system/getlastinputinfo.htm

Module Module1

    Private Structure LASTINPUTINFO
        Dim cbSize As Integer
        Dim dwTime As Integer
    End Structure
    Private Declare Function GetTickCount Lib "kernel32" () As Integer
    Private Declare Function GetLastInputInfo Lib "user32" (ByRef plii
As LASTINPUTINFO) As Integer

    Sub Main()
        Try
            Dim lii As LASTINPUTINFO
            lii.cbSize = Len(lii)
            Call GetLastInputInfo(lii)
            Console.WriteLine((GetTickCount() - lii.dwTime) / 1000)
        Catch ex As Exception
            Console.WriteLine(ex.Message)
        End Try
        End
    End Sub

End Module

This returns the number of system idle seconds.  An active link would
auto-run every 5 minutes (for example) checking to see if a threshold
was reached.

This works but there are two reasons why I want to avoid this approach.
1. It runs in a separate process, which takes at least 1 second to
initialize.  2. The clients would need to run this from a network share
instead of locally.  This will add 1-3 seconds depending upon current
WAN conditions.  Managing the distribution of this console app on every
computer or every LAN server is not currently an option.

I am looking for a solution that would run from within workflow that is
directly supported, something like OLE. I realize that this won't work
for mid-tier.

Any suggestions?  Thanks in advance.

I know if a solution is found that many companies will benefit from it.
I think the most obvious benefit would be to pause all table
auto-refreshes after a certain period of idle time.

As many of us have experienced, users sometimes leave their computers on
24 hours a day and logged into Remedy.  Just think of the amount of data
being dragged across the WAN because of all those table auto-refreshes
to computers where no-one is there.  Pausing refreshes could provide a
boost in performance at certain large companies.


Stephen

_______________________________________________________________________________
UNSUBSCRIBE or access ARSlist Archives at http://www.wwrug.org

Reply via email to