B1 Ghost License Allocations

Advantage ERP GroupWhat are ghost license allocations in SAP Business One?  And how can they be fixed?
You’ve been using SAP Business One for a while, or you might be in the middle of your implementation project, and you realize that your system doesn’t seem to have access to all the licenses that you purchased.  You go back through your contracts and confirm that yes, you purchased 5 Professional licenses (for example).  Next, you launch the B1 License Administration screen and your fear is confirmed – the Total Assigned plus the Total Free is less than number of purchased licenses.  Here’s that screen on our demo system with 2 Professional licenses:
B1 License Administration screen

How did this happen?  And where are these ‘ghost license allocations’?

We’ve seen ghost license allocations occur during the implementation process when several test databases are used and concurrently User ID codes are being changed.  For example, at first the User ID for John Doe is entered as JDoe in the test database.  Later it is decided to use a different ID format so JD01 is entered in the live database.  In this example, a Professional license was allocated to the user JDoe and this user had full access to the system.  Later on, a new test database was refreshed from the live database, a Professional license is allocated to JD01, and John Doe started to use his new ID.  JDoe’s Ghost License Allocation lurks in the shadows, consuming a valuable resource…

SAP globally allocates user licenses outside of the installation’s functional database.  The B1 license tracking mechanism has no way to know that a database has been deleted or refreshed.  The B1 License Administrator screen appears to be maintaining data inside the user’s active database, but this is actually a rare exception to that rule – it maintains the global license allocation data for only the users that are active in the current database.
Ok, got it, how do we fix it?
The solution that SAP publishes to partners involves removing all B1 license allocations and reentering all license allocations (starting over).  This must be done with all users logged out of the system and full records of license allocations must be saved in advance for all types of licenses used in the system.
But if you know the User ID code that holds the ghost allocation then these approaches can be used:
  • If the old test database still exists then log into that database, launch the License Administrator screen, and clear the license allocation for the known user.  Log out and log back into the production system and the licenses will now be available.
  • If the old test database has been deleted and a backup exists, then restore the backup, log into the restored database, clear the license allocation, log out, and delete the restored database.
  • If the old database can’t be found or restored, then Refresh the test database from a backup of live (or just use the existing test database)
    • Log into this test database and launch the Users screen.  Create a new User ID with a name that exactly matches the ID that is holding the ghost allocation.
    • Launch the License Administrator screen, and clear the license allocation for the user just created.
    • Since this is a test system the user record just created can be left alone or deleted
Work with your SAP partner or support representative on this one.  They will be able to help you if you don’t know the user ID that is holding the ghost allocation. Don’t go this alone if you’re thinking to yourself “how hard could it be?”  or if you’re not experienced with all the screens described here.
Do not correct ghost license allocations in a live / production database.  Unlike most other data, removing a User record does not actually delete the record.  The Remove function marks the User record as inactive and the inactive record stays in the database from then on.  This lingering record doesn’t matter in a test database.


Leave a comment

Please note, comments must be approved before they are published