NIM

Lookups

Use lookups in Filters to check which values from a filter column exist in a system's data table column (see Data tables).

To get started, Create a lookup.

The most common use case for lookups is to dynamically provision groups via Mappings, and to subsequently assign members to those groups via Roles, when a transformation is required to relate the source (filter) column to the target (data table) column.

For example, say that you want a 1:1 correspondence of departments in an source (HR) system with groups in a target system. Say that the HR system has department names such as HR, DEV, etc., but the target system has a slightly different naming scheme for groups: GRP_ prefix: GRP_HR, GRP_DEV, etc. In this case, you can't relate these columns via the normal means of Inter-system relations, because inter-system relations don't support transformations or fuzzy matches.

Tip

Use lookups only as a last resort. It is better to rely on inter-system relations when possible.

The solution is to transform the departments column via a JavaScript filter column (see Custom JavaScript columns), and then perform a lookup of the transformed column against the target system's group data table column. You can first use an exclude version of the lookup with a group create mapping function to create the groups that don't already exist, and subsequently an include version of the lookup with a role generator to assign members to the groups that now do exist.

A very similar example is creating and managing groups & roles based on combinations of columns, rather than a direct 1:1 correspondence. For example, in K-12 organizations it is common for groups to be based on combinations of student grade, building, and campus. This is also possible via custom JavaScript columns.

Aside from these two specific examples, lookups can be useful for the following general scenario:

  • You want to check for the existence of values in a column from system X with values in a column from system Y, but a transformation is required, and;

  • You can't (or don't want) to solve the problem outside of NIM by adding an additional identifier field in one of the systems (which then becomes an additional data table column in NIM). If you can solve the problem this way, you can simply use inter-system relations and a lookup is not necessary.