Currently the retrieved permissions are not cached, every time you open up a business rule it executes the script to retrieve all permissions. To add to this it also only shows 50 results, while querying the whole dataset every time you scroll down. This has 2 mayor problems, first performance. It takes a very long time to load up the permission set for certain target systems, which makes configuring up to 100 business rules very time consuming while it doesnt have to be. Second it consumed a lot of unnecessary resources.
What we'd like to see is a cache on the retrieved permissions of about 8 hours or so. When you open up a business role and go the the target system which utilizes a permission retrieve script it executes the code and stores the result to the chache. No need to backup this data etc. With a 'purge cache' button in the business rule entitlement selector we could make the script run again if there are any changes to the retrieve permission script for example, or if a new permission item was just created in the target system. This would make configuring business rules way more user friendly, faster and consume way less resources.
We are allowed 3 schedules due to resource consumption, however by not caching the permissions we are executing scripts that retrieve hundredths to thousands of permissions entries, only to select 50 entries in them and then execute the whole process again when scrolling down to add another 50. Its also very dependent on the agent, so if the agent for Active Directory is down I cant edit business rules.