Lookups
Use lookups in Filters to reduce the number of rows in the output table, by checking if values in a specified filter output column exist in a system's data table column (see Data tables).
To get started, Create a lookup.
Lookups are essentially Expression item but with an "exists in target column" logical operator, where the target column may be in any table of any system.
A comparison can also be made to Relation items, in the sense that both lookups and relation items determine a filter's output rows based on matching column values. The difference is that relation items are join operations, and lookups are not. Relation items depend on Intra-system relations and Inter-system relations, as well as Keys. In comparison, lookups do not require any such relations or keys to be in place. They are performed directly. Additionally, lookups do not add columns to the filter's output. They can only reduce the number of rows in the filter's output.
A lookup can perform either include or exclude operations. They are the inverse of one other. An include lookup returns all rows with a matching column value. An exclude lookup returns all rows without a matching column value.
The most prominent use case for lookups is to dynamically provision groups via Mappings, and subsequently assign members to those groups via Roles. This process is demonstrated in Role Model tutorial. In this case, a lookup is performed based on a transformation of another column via Custom JavaScript columns.
After lookups are configured, they become available to select as input filters for other objects. NIM treats lookups as if they are themselves filters. For example, here the departments[group_include]
and departments[group_exclude]
lookups (pictured above) are now available to select in a mapping: