Expands to a pattern based name that is unique in the destination data store according to the criteria specified.
Each <arg-string> element provides a pattern to be used to create a proposed name.
A proposed name is tested by performing a query for that value in the name attribute against the destination data store using the <arg-dn> element or the <arg-association> element as the base of the query and scope as the scope of the query. If the destination data store is the Identity Vault and name is omitted, then a search is performed against the pseudo-attribute “[Entry].rdn”, which represents the RDN of an object without respect to what the naming attribute might be. If the destination data store is the application, then name is required.
A pattern can be tested with and/or without a counter as indicated by counter-use and counter-pattern. When a pattern is tested with a counter, the pattern is tested repeatedly with an appended counter until a name is found that does not return any instances or the counter is exhausted. The counter starting value is specified by counter-start and the counter maximum value is specified in terms of the maximum number of digits as specified by counter-digits. If the number of digits is less than those specified, then the counter is right padded with zeros unless the counter-pad attribute is set to false. The counter is considered exhausted when the counter can no longer be represented by the specified number of digits.
As soon as a proposed name is determined to be unique, the testing of names is stopped and the unique name is returned.
The order of proposed names is tested as follows:
Each pattern is tested in the order specified. If counter-use=“always” and the pattern is one of the patterns indicated by the counter-pattern then the pattern is tested with a counter, otherwise it is tested without a counter.
If no unique name has been found after the patterns have been exhausted and counter-use=“fallback”, then the patterns indicated by the counter-pattern are retried with a counter.
If all specified combinations of patterns and counters are exhausted, then the action specified by the on-unavailable is taken.
<token-unique-name name="CN" scope="subtree" counter-start="1" counter-digits="2" counter-pad="true" counter-pattern="first" counter-use="fallback" on-unavailable="error"> <arg-string> <token-upper-case> <token-substring start="0" length="1"> <token-attr name="Given Name"/> </token-substring> <token-attr name="Surname"/> </token-upper-case> </arg-string> <arg-string> <token-upper-case> <token-substring start="0" length="1"> <token-attr name="Given Name"/> </token-substring> <token-substring start="0" length="1"> <token-attr name="MI"/> </token-substring> <token-attr name="Surname"/> </token-upper-case> </arg-string> <arg-string> <token-upper-case> <token-attr name="Given Name"/> <token-attr name="Surname"/> </token-upper-case> </arg-string></token-substring>
(( arg-dn | arg-association ) ? , arg-string + )