Stephen Smith's Blog

Musings on Machine Learning…

Posts Tagged ‘lanpak

Evicting Users from Sage 300 ERP

with 5 comments


Generally Sage 300 ERP is used in a multi-user environment where users could be distributed across a large building or located in many different sites. Further Sage 300 ERP uses a concurrent licensing model for users, so if you have 10 Lanpaks then 10 people can login at once; however, it doesn’t matter which ten people it is.

Often companies save a bit of money by buying fewer Lanpaks than users of the product. Perhaps a clerk works the early shift of 7-3 and then when they go home a Financial Accountant runs some Financial Reports. But what happens if that clerk doesn’t sign off? What if they work at home and aren’t answering their phone? Now the Financial Accountant gets a message that all the Lanpaks are in use and can’t get their work done.

Evicting Users

To solve this problem Sage 300 ERP 2014 Product Update 2 will be introducing an Evict Users feature. Previously we provided a detailed list of everyone in the system and what they are doing which I blogged on here.  Now you can also kick them out of the system to recover the Lanpak for someone else to use.

From the Current Users screen there is now a push button to “Sign Out Selected Users”. You then get a dialog with a dire warning and are requested to enter the admin password and confirm to kick out the desired user.


Then in a minute or so, all the screens for that user will be terminated and their Lanpaks will be available for someone else to use.

Technical Details

So how is this accomplished? Basically when you evict a user, that screen will store an encrypted file in the shared data folder. Periodically any Lanpak Managers running will have a look to see if there is a new file and if there is it will see if it is for users they are managing. If so, Lanpak manager will kill the processes of all the screens they are running. The file is left in place for a few minutes, so this particular user won’t be able to sign in again immediately.

This is a fairly simple scheme that is fairly effective for recovering Lanpaks. It works both for regularly run screens from the desktop as well as web deployed screens from the Web Desktop or from Sage CRM.

Since it’s by user, you can kill the ADMIN user which will kill yourself. If all your users sign in as ADMIN then it will kill all the users on the system. So beware that if multiple users share a user id, then they will all be killed and not just one workstations.

Performing Upgrades

Another use case that this method only partially addresses is kicking everyone out of the system so you can perform an upgrade (like a Product Update). Generally a DLL or EXE file in Windows is locked if a running process uses it. Hence you can’t update Sage 300 if someone has a4wapi.dll in use for instance. It could be that this method does gets everyone out of the system, but there are a few cases which may not work:

  • If someone signs off the Sage 300 Desktop but leaves it running. In this case the EXE and DLLs are still in use, but since it isn’t using a Lanpak and isn’t associated with a user, it can’t be killed this way. However I tend to think this is fairly unlikely.
  • It won’t be effective against things that quickly open sessions, do something and then close the session. This would include things like the Sage CRM integration where the custom Sage CRM pages open a session load their data and close the session. However things like this tend to be Web Servers and can usually be stopped remotely or at least from a central place.
  • Things that we allow to use Sage 300 without using a Lanpak. This would include things like parts of the Sage CRM integration, the Sage HRMS integration and the Sage 300 Portal.
  • For third party products, if they are full SDK, it will definitely work on them. If they aren’t full SDK it may or may not work depending on how they are built.

Keep in mind that the main purpose of this feature is to manage Lanpaks, performing upgrades is just a secondary things, where hopefully it helps, but may not be a complete solution.

The Scary Warning

The warning message when you run this is fairly severe. Part of this is because we are killing the processes that are connected to our API. Generally you won’t corrupt the main database because everything is protected by transactioning. So if you do kill the process while they are say posting a batch, it just means the transaction in process will be rolled back and they will have to do it again later. Generally the expectation is that this feature is used once people go home and aren’t doing anything which would be harmless. Further in the user list screen you can see what people are doing, so don’t kill the person running Day End.

However if someone is using the UI and they are resizing columns in a grid, you could catch things at the wrong time and corrupt a *_p.ism file. But these can be deleted and sometimes repaired with ScanIsam. If you are running a non-SDK third party product, I can’t really say what will happen if it’s killed.


The Evict Users feature is the number one feature as voted on, on our Ideas web site and this is now in the product. So keep making suggestions to and voting on suggestions that are in the system that you would like to see implemented.

This features will make it easier for companies to manage their Lanpaks and get better value from the system. Hopefully this will also make managing upgrades a bit easier as well.

Written by smist08

May 24, 2014 at 4:17 pm

Managing Lanpaks in Sage 300 ERP 2014

with 9 comments


If you look in our product feedback site at you will notice a number of items in the top ideas section to do with managing Sage 300 ERP Lanpaks. In the upcoming Sage 300 ERP 2014 release, we are adding a number of features to help with this.

How to Tell Who is Using Lanpaks

We’ve always had a screen accessible from the Desktop’s Help menu where you can get a list of the Lanpaks in use, and who is using them. However there was a fundamental flaw in this screen, namely that you needed to log on to the Desktop to access it and this required using a Lanpak. So if you were out of Lanpaks, you couldn’t log in and see who was doing what.

Now if you run the Desktop, you can cancel the signon dialog and select Help – Current Users… This then will give you a signon dialog where you can signon specifically to see who is on the system without using a Lanpak. To demonstrate I did this on my laptop and the screenshot is below.


Notice that no Lanpaks were used in bringing up this screen. So now if you are out of Lanpaks and need one, you can access this screen, see what people are doing and then ask the person doing the least important work to sign-out.

Giving More Information

Previously, all the Lanpak screen told you was which user was logged into which company, you didn’t know what they were actually doing. In fact many companies have only one company and everyone logs in as ADMIN, in which case the screen gave you no useful information. The usual suggestion here is to setup users and security properly, but for Sage 300 ERP 2014 we are giving quite a bit more useful information in our new “Current Users” screen.

Now we give you the users along with their contact information. Sorry for the two screen shots, but one shows the information with the horizontal scroll bar scroll left and the next one with the scroll bar scrolled right.


Further there is an option to see all the screens that they are running and the time when they started the screen.


The screen AS9010 is the Desktop and will have a proper description by the time we ship.

This way you can make a judgment on who you want to kick out of the system. Perhaps user1 is only running data entry screens and you know they have gone home, so you can log them off. Or perhaps user2 is running I/C Day End Processing and only started it just now, so you want to let that run to completion.

Besides using this screen to manage Lanpaks once they run out, you can also use this screen to see what people are doing when the system is slow, perhaps lots of people are printing reports or posting batches. Either way you can use this to manage more cases than just Lanpaks. Managing periodic slowdowns is one case, looking for low usage times to run larger reporting or processing runs is another.

The descriptions come from the language DLL that is generated from the VB template that is part of the Sage 300 ERP SDK. This means that we will be able to display good screen names for any Sage or third party application that is written in the SDK and uses the VB UI template. We also know about a few special cases like the Desktop.

For IAPs we don’t give as much information since this tends to be used by third party non-SDK applications that we don’t know about.

For this version we don’t provide a mechanism to kick people out from here. We are considering this for a future version, but want to get this rights, so we don’t just kill a process while some one is entering an order and causing them to lose their work. However if you are running on Terminal Services then you can use the Terminal Services console to kick people right out of Windows from there.

Ideas Web Site

As I mentioned in the introduction, this feature was the direct result of input to our ideas web site. So to just stress that if there are features you want added to Sage 300 ERP, be sure to add them here. If others agree with you and it makes it to the top of the list, then it has a very good chance of being implemented. Notice that the ideas web site lists the ideas that we have implemented, ideas in progress and which are the current top rated ideas. Feel free to promote your idea on Sage City, this can help get your idea implemented with sufficient support.


With the forthcoming Sage 300 ERP 2014 release we are giving you better methods to manage your Lanpaks. First by letting you see what is going on without using a Lanpak and then second by giving you more useful information on what people are currently doing.

Written by smist08

September 1, 2013 at 2:32 am