Appsense–First letter of username

I had to extract a the first letter of a username using Appsense Policy Configuration within Environment Manager. I would have hoped there was a trim functionality natively available, however none were found in the version that was dealt with.

Therefore a bit of optimized search had to be performed. As far as I can see this is faster than executing a script, but perhaps a bit more work to setup initially.

imageCreated 5 top Username matches with these regular expressions;

.*\\[a-eA-E]\w*
.*\\[f-jF-J]\w*
.*\\[k-oK-O]\w*
.*\\[p-uP-U]\w*
.*\\[v-zV-Z]\w*

Below each one I then parsed through the letters that the regular expression matched (A-E for example) and once a match was hit – set the environment variable FIRSTLETTER to the matching letter.

Search was for the letter A as a sample; *\a*
For each specific letter I used a query and not a regular expression.

I created an Appsense template for EM that you can download, which contains a reusable node!

Appsense Environment Manager–fast logon

Some general rules of the Appsense Environment Manager and howto to implement a fast logon. Most of this is available in version 8.3 and upwards.

Personalize or Policy

The order of which things comes down is;

Personalization data
Policy

If a value is both persisted in personalization data and then enforced via policy – it is essentially beeing set twice. Pick one – don’t personalize or don’t enforce.

Avoid including to much in Global settings for Personalization or for each app. If you add an exclusion or remove an inclusion at a later stage – it will not clean out any settings already in the database. Whats in the database will always be brought down to the client.

(things can be cleaned out of the database – but that’s tedious)

Order items

Items in a policy can be placed in multiple ways and there aren’t any obvious structure todo it if you are brand new. Here comes some general rules of the trade;

Long running actions should start of early – so place them at the top. As early as possible.

Scripts needs to be extracted and then executed. They cost time. Avoid unless necessary. Appsense native functions are faster.

If one action fails (setting an environment variable as an example), all actions depending on that will be stopped. To avoid child nodes still executing, check Stop if failed. (correction by Bryan Chriscoli)

Since 8.1, the threads are dynamically created. You can have 100 parallel actions and it will create 100 threads, child’s actions/nodes are then limited to 10.
(correction by Brian Chriscoli)

Logon vs Process start

Avoid setting all application specific settings during logon, if its only effecting one (or a set of) applications use the Process Start (Office for example)

Use the condition to set a process trigger to only run once for the session to avoid additional startup time for applications