When you add an attribute mapping rule there is also an option to add an attribute transform rule.
This is for the situation where the value you need for an attribute is not available from your system, but you can infer it from other values that are - e.g. you have attributes that identify the department and job role of a user, but need a value that tells you the country they're based in.
You set up attribute transform rules in a similar way to how you map permission sets:
You can have multiple transform rules with the same target name so that different rules can supply different values.
If more than one rule with the same target name matches, then the attribute will have more than one value. All values are passed if that attribute is released, and all values are used by statistics if it is reportable. Unfortunately the interface cannot display muliti-valued attributes on accounts at the moment.
If a rule is using the 'any' condition, or conditions are based on multi-valued attributes (e.g. memberOf), then your rule could match on any of the multiple values that it sees. Care must be taken with negative matches such as 'does not contain' in these cases.
An organisation has offices in 20 cities around the world. The directory they have connected to OpenAthens can pass the name of the office (e.g. Abuja office), but not the country. All users have access to the same set of resources and are not separated by sub-organistaion or permission set.
Management want statistics reports by country.
Because we want to use this in reports, we first must set up an attribute in the schema editor and make sure it is marked as reportable. This example will assume one has been set up with a target name of
Next we add some transform rules along the lines of: When any of these match (office contains Edinburgh, office contains Bristol) the output value is 'UK'.
Save and repeat for each country