Logout User action

Im trying to Logout a user after 120 seconds of inactivity.

Ive tried setting a rule so that it auto logs out, but it doesn’t happen. This includes after the ticket is closed.

Is there a tutorial on how this action works? Is there a way to set it so that it does logout after 120 seconds?

Kind regards

Matt

1 Like

Currently there is not a time based logout option, it just works on ticket closed

Yep, i know about that one, but theres a way of doing it based on a timeout according to a previous update, I’m just unable to work out how to use it.

Thanks for your help though! :smile:
Matt

somewhere i read there isn’t, true… but theres a way of enabling it by using a string like timeout -60 or something?

Matt

Use the Action called Execute Automation Command. It has a parameter for Delay.

In your Rules for Ticket Closed event, add an action for Execute Automation Command that calls the above Action, then set another Rule for Automation Command Executed Event for that Command, and place the Logout User Action within it.

1 Like

thanks QMcKay, ill give that a shot!

Matt

I use the delay to overcome screenswitch issue on logout, i have it set to 1 second so ticket sorts itself out then logout action kicks in 1 second later

This just delays when logout happens at the normal time ie ticket closed, i dont think there is a way it can be set for inactivity for example set at 60 seconds then touch the screen, wait 30 seconds and touch screen again to reset timer, then wait a further 60 seconds for logout to happen.

For logout to happen ticket would always need an entity assigned for the ticket to close, so a timed logout wouldnt work anyway if there wasnt an entity or ticket tag auto assigned to every ticket created

It works fairly well. Even though the Automation Command attempts to fire after X seconds, if there is an open Ticket, the Logout fails. Only 2 Actions and 2 Rules required…


Action - Logout User


Action - Execute Automation Command


Rule - Ticket Closed - fire Execute Automation Command Action with:

AMCname: AL AutoLogout
delayseconds: 5 (or whatever)


Rule - Automation Command Executed - fire Logout User Action


DB Tools Import:

AL_Automation.zip (730 Bytes)

3 Likes

I was just replying to ask for screenshots, thanks.

Let me try again :smile:
Can I ask how you have a black theme?

Regards

Matt

Yes you can :stuck_out_tongue_winking_eye:

I am running a new version (with lots of new features) that is currently undergoing a lot of testing. I don’t use it in production, because it may still contain bugs, but it is getting close. :wink:

Aha gotcha!

Im pushing it with the upgrades, my till isn’t supposed to be supporting windows 7. waiting for the cash to buy a touchscreen so I can upgrade! :smile:

Thanks for the above tutorials, I’ve just gone through them now, ill let you know how I get on!

Everyone here is great, what a community. I just hope with all the learning I’m doing now I can later pass on my knowledge. i get a lot of free time at work.

Matt

1 Like

Excellent thanks, it works!

Im going to follow the above tutorial to auto close a ticket after a delay too then we should be sorted! :smile:
Matt

So… it works fairly well. However… there are a pile of other scenarios that don’t work, so it is not a true timed autologout. We need to take more control over what is happening at various other times. For example…

Create a Ticket, then close it, or pay it, or whatever.
Now navigate somewhere, like the Accounts screen, or the Tickets screen, or the Reports screen, or simply click Select Table (or Customer), but don’t actually select an Entity.
Sit there until the delay has passed, and you will be logged out.

Ok, so we don’t really want to be logged out at that point. We need to reset the delay (reset the timer) somehow…

I’m thinking something like Application Screen Changed Event and an Update Program Setting Action to store the delay… let me think on this a little more…

It logs out the users well with how I’ve set it up now.

I have only 2 scenarios with users on my till as it goes straight into POS mode after login. this is:

  1. They complete the transaction, the amount processed was the exact amount that was tendered, the ticket auto closes and then auto logs out after 30 seconds.

  2. They complete the transaction, the amount processed was less than the amount that was tendered, the ticket auto closes after 30 seconds, the user logs out after a further 30 seconds.

For my trade, i believe the solution has been created.

Regards

Matt

Here is a Resetting Timer. In addition to the 2 Actions posted previously, add another one …

Action - Update Program Setting - AL Store Time


Add a new Rule …

Rule - Application Screen Changed - AL Screen Change

AL Store Time
Constraint: (none)
SettingName: ALtime
SettingValue: [=TN('{DATE:HH}')*60*60+TN('{DATE:mm}')*60+TN('{DATE:ss}')]

AL Execute Automation Command
Constraint: '[:CurrentScreen]'!='Management' && '[:CurrentScreen]'!='LoginScreen'
AMCname: AL AutoLogout
delayseconds: 5


Modify the Rule AL AutoLogout to add this Constraint to the Rule:

[=(TN('{DATE:HH}')*60*60+TN('{DATE:mm}')*60+TN('{DATE:ss}'))-TN('{SETTING:ALtime}')+1] *Greater* 5

Or, this Constraint to the Action called AL Logout User:

[=(TN('{DATE:HH}')*60*60+TN('{DATE:mm}')*60+TN('{DATE:ss}'))-TN('{SETTING:ALtime}')] >= 5

1 Like

Do you feel this is something that could benefit myself? I don’t use the select table method, I have a fast food business.

I suppose adding it won’t hurt though.

I really appreciate your time on this, I’m sure many others will benefit from this also.

Matt

Whether it would benefit is up to you.

The first solution I posted is based on the Ticket Closed Event.

The latter solution has that as well, but also operates on Application Screen Changed Event. Consider this regarding the first solution:

  • Login and go to the POS/Ticket Screen.
  • Let it sit there for the timeout value (i.e. 30 seconds).
  • nothing happens - you are still logged in, because you haven’t created a Ticket, nor Closed one, which is required by the first solution

Because the 2nd solution watches another event, you would be logged out after 30 seconds, no matter which screen you are on.

2 Likes

gotcha! Ok, thats great. Would this also be included before a ticket is closed but after it is processed?

Regards

Matt

I don’t understand your question. What do you mean by “processed”?

It will attempt to logout after a certain time, but at least one thing will prevent that from happening: an Open Ticket. I expect this to be the behavior you would want.

If you have implemented a mechanism to auto-close a ticket, then logout, then it’s a different story.