You could have a status table that is updated at the end of the startup script.
And checks to see if a users account is in this table at startup and then close the session. You could exclude an admin (or other) account in case the status table record doesnt get deleted at close in order to admin this table.
Then on a close script you could delete the accountname from the table.
Its not perfect but should work.
Thank you that will work but if a user forgets to logout from IWP or his computer hangs up ( for FM client) does file maker close the files. Or can I somehow close the file (whether it was open by an IWP or an Fm client) if there is no activity for say 15 minutes
IWP presents its own challenges too.
FM client would be easier as when the client closes the app a close script can clear their status record.
Phil might have some other suggestions.
There are no easy ways around isuses where things crash. But you could have the open script that finds the account open already give them the option to email and admin to restore their account.
You may be able to have some sort of last activity update script trigger. To reset if a new login attempt spanned a window where the last activity may have been yesterday etc. you would have to put this script trigger in a number of places probably on layout record loads or saves etc.
Without a ton more detail about your design I couldnt say much more. Like I said before its not perfect but should work.
If you go the activity route you could just give them a warning that the system has detected an open connection for this account if no connections are open please close the current connection and try again in 15 minutes for the old session to "time out"
I think what I will do for my purpose is to create this user control table where I log in all who signs in and out but I will concatenate the datetime to the account name and use this in my temporary tables. This way I guarantee uniqeness for every user. And I will just clear out the table every morning and this can be automated by storing the last access date and reading the actual date in the start script and prform the cleanup on date change.