大多数规则表达式都是单值的。 它们始于一个用户属性值(可能为空),也会生成一个帐户属性值(也可能为空)。 然而,有时您可能想将空的用户属性视为 0 个值。 有时您可能想生成多个值来填充一个多值帐户属性值。
通过使用下列的规则语法,可以对一个用户属性可能包括的零个或多个值进行操作:
%*var%
在规则表达式的第一个百分号 % 之后紧挨着的可选多值标志星号 (*) 表示该规则表达式的结果应当是 0 个、1 个或多个值,具体取决于所引用用户属性包含多少值。
大多数用户属性值都是单值的,因此它们只可能包括 0 个或 1 个值。 然而,自定义属性(CustomField01 到 CustomField99)是多值属性,因此引用这些属性的规则变量可能包含 0 个、1 个或多个值。
如果某个用户属性具有多个值,但您在规则表达式中未包括星号 (*),则该规则评估的结果将是第一个值的结果。 而在大多数情况下属性值通常是无序的,因此 CA IdentityMinder 首先考虑的值可能无法预测。
如某个用户属性具有多个值,并且您在规则表达式中包括了 *,则会为该帐户属性生成多个值。 如果基于帐户模板属性设置的帐户属性本身不是多值的,则请不要在该帐户模板中定义这样的多值规则表达式。
您可以将 ADS 端点类型中的扩展帐户属性设置为多值;然后使用该多值规则表达式语法来设置该属性。 例如,某个环境定义了一个名为 patents 的扩展 ADS 帐户属性和三个也命名为 patents 的自定义用户属性。
某个 ADS 帐户模板对于该 patents 属性可以定义规则字符串 %*UCU03%。 然后,您可以通过添加一个或多个值,来更改某个用户的 patents 属性。 将这些更改应用于该用户时,要选择更新该用户帐户的选项。 此操作将参考该帐户的帐户模板,查找规则变量 %*UCU03%,并且知道要将该用户的所有 patents 均复制到该帐户的 patents 属性。
与之相似,在帐户创建期间也会评估规则字符串。 而且在帐户模板更改期间,如果该规则字符串已发生更改,则可以选择对于关联到该帐户模板的所有帐户重新评估该规则。
%*var% 语法对于引用单值用户属性的变量 var 来说也是有意义的。 上述情况仅适用于涉及串联,以及对于用户未设置所引用属性的情况。
可选的多值标志星号 (*) 表示:如果用户属性没有值,包含 var% 规则变量的规则则会评估为无值。 这不同于单值规则表达式 %var%,该单值规则表达式总是评估为一个值,即使是空字符串也是如此。
要了解该差异,请看下面的规则字符串:
(310)%UP% (310)%*UP%
这两个规则字符串好像都是在电话号码后面附加地区代码 310。 然而,它们其实是不同的,因为如果用户对于其电话号码没有值,则第一个规则会评估为帐户值 (310)。 第二个规则字符串则不会生成任何值并且将帐户属性保持为未设置状态。
另一方面,请看下面规则字符串,这两个规则字符串好像都是要在电话号码后面附加电话分机:
%UP% %UPE% %UP% %*UPE%
如果每个人都有电话号码,但是一些人没有分机号,则第一个规则字符串将对于每个没有分机号的用户生成包括电话号码的值。 第二个规则字符串则不生成值。 在这种情况下,请使用带 %UPE% 的第一个规则。
|
版权所有 © 2013 CA。
保留所有权利。
|
|