APPENDIX C |
Maps and Filters |
Maps and Filters are two common closely related concepts in directory synchronization, though they may be known by different names in different products. Maps are configurable rules that determine how one or more attributes of one directory are combined to produce an attribute in another directory. Maps are needed for two primary reasons:
![]() |
Semantics vary: For example, one e-mail directory might include a JOB DESCRIPTION field that contains the same contents held in the TITLE and BUSINESS CATEGORY fields of another directory. |
![]() |
Formats vary: For example, one e-mail directory might allow a description field to contain 500 characters while another directory might limit the same field to 250 characters. |
Filters are configurable rules that determine which objects are to be propagated, based on the values of certain attributes. Filters are needed to block propagation of objects which are not relevant to, or not authorized in, other directories. For example, e-mail system administrators typically have two e-mail accounts: a personal e-mail account, used to interact with other users; and an administrator's account used to maintain other accounts on the e-mail system. In most instances it is not necessary, or desirable, to propagate the latter e-mail address to other directories. To avoid this, you can filter it.Like maps, filters are typically defined separately for each direction. The scalability constraints of many simple e-mail system directories may preclude the blanket propagation of all enterprise users to each of the outlying secondary directories, so in order to limit the size, only objects meeting certain criteria might be propagated. In the other direction, user objects which are only of local interest would likely be filtered out.
In most cases, you are not required to write new maps or filters. Rather, you need to modify the settings used in existing filters. To adjust or create maps and filters, you need to use software-specific grammar. These grammar variables are described in xx. Examples are provided for each variable..
Use functions in the interpolated sections of a "match" or "assign" to modify a variable. You may not nest functions (but you can certainly use a temporary variable to get the same effect), and there is no way to define a new function.Descriptions for each function are provided in TABLE C-2.
Expressions are simple comparisons that may be performed within a match to check for a valid string. They are set off by use of square brackets. The following things may be used in an expression: variables, functions, string and numeric constants, string relational operators (eq, ne, lt, gt, le, ge), numeric relational operators (==, !=, <, ,<=, =), the string concatenation operator (.), the unary negation operator (-), the logical operators (not, and, or), and the ascii-to-character and character-to-ascii converter functions (ord, chr).$a $b $c $d $e: ${Hope this is long enough}
[&length($Hope this is long enough} < 123]
${Real variable} = ${Hope this is long enough}