该函数当前仅支持用于“Workday 和 SuccessFactors 到 Active Directory 用户预配”。 此函数不可用于其他预配应用程序。
必选/重复
SingleAppRoleAssignment([appRoleAssignments])
对于给定的应用程序,从向一个用户分配的所有 appRoleAssignments 列表中返回单个 appRoleAssignment。 需要此函数才能将 appRoleAssignments 对象转换为单个角色名称字符串。 请注意,最佳做法是确保每次只向一个用户分配一个 appRoleAssignment,如果分配了多个角色,则返回的角色字符串可能是不可预测的。
必选/重复
Switch(source, defaultValue, key1, value1, key2, value2, …)
当
source
值与一个
key
匹配时,返回该
key
所对应的
value
。 当
source
值未与任何 key 匹配时,则返回
defaultValue
。
Key
和
value
参数必须始终成对出现。 该函数始终需要偶数个参数。
必选/重复
基于描述要使用的分隔符与要返回的单词数的参数,Word 函数返回字符串中包含的单词。
str Word(str string, num WordNumber, str delimiters)
string:从中返回单词的字符串。
WordNumber:标识应返回单词数的数字。
delimiter:表示应该用于标识单词的分隔符的字符串
字符串中的字符由分隔符中其中一个字符分隔的每个字符串被标识为单词:
如果数字 < 1,则返回空字符串。
如果字符串为 null,则返回空字符串。
如果字符串包含的单词少于应返回数字或字符串不包含由分隔符标识的任何单词,则返回空字符串。
Word("The quick brown fox",3," ")
返回 "brown"
Word("This,string!has&many separators",3,",!&#")
返回 "has"
删除已知域名
需要从用户的电子邮件中删除已知域名,以便获取用户名。
例如,如果域为“contoso.com”,则可以使用以下表达式:
Replace([mail], "@contoso.com", , ,"", ,)
示例输入/输出:
输入
(mail):“john.doe@contoso.com”
输出:“john.doe”
将常量后缀附加到用户名
如果使用 Salesforce 沙箱,则可能需要在进行同步之前向所有用户名附加额外后缀。
Append([userPrincipalName], ".test")
示例输入/输出:
输入
:(userPrincipalName):“John.Doe@contoso.com”
输出
:“John.Doe@contoso.com.test”
通过连接名字和姓氏部分来生成用户别名
需要使用用户名字的前 3 个字母和用户姓氏的前 5 个字母来生成用户别名。
Append(Mid([givenName], 1, 3), Mid([surname], 1, 5))
示例输入/输出:
输入
(givenName):“John”
输入
(surname):“Doe”
输出:“JohDoe”
从字符串中删除音调符号
需要将包含重音符号的字符替换为不包含重音符号的等效字符。
NormalizeDiacritics([givenName])
示例输入/输出:
输入
(givenName):“Zoë”
输出:“Zoe”
将字符串拆分为多值数组
你需要获取一个以逗号分隔的字符串列表,将它们拆分为一个数组,可以将该数组插入到多值属性中,例如 Salesforce 的 PermissionSets 属性。 在此示例中,Microsoft Entra ID 的 extensionAttribute5 中填充了一个权限集列表。
Split([extensionAttribute5], ",")
示例输入/输出:
输入
(extensionAttribute5):"PermissionSetOne, PermissionSetTwo"
输出:["PermissionSetOne", "PermissionSetTwo"]
需要以某种格式将日期发送到 SaaS 应用程序。
例如,需要为 ServiceNow 设置日期格式。
FormatDateTime([extensionAttribute1], "yyyyMMddHHmmss.fZ", "yyyy-MM-dd")
示例输入/输出:
输入
(extensionAttribute1):“20150123105347.1Z”
输出:“2015-01-23”
根据预定义的选项集替换值
需要根据存储在 Microsoft Entra ID 中的状态代码来定义用户的时区。
如果状态代码与任何预定义选项都不匹配,则使用默认值“澳大利亚/悉尼”。
Switch([state], "Australia/Sydney", "NSW", "Australia/Sydney","QLD", "Australia/Brisbane", "SA", "Australia/Adelaide")
示例输入/输出:
输入
(state):“QLD”
输出
:“澳大利亚/布里斯班”
使用正则表达式替换字符
你需要查找与正则表达式匹配的值并将其删除。
Replace([mailNickname], , "[a-zA-Z_]*", , "", , )
示例输入/输出:
INPUT
(mailNickname: "john_doe72"
输出
:"72"
将生成的 userPrincipalName (UPN) 值转换为小写
在下面的示例中,通过串联 PreferredFirstName 和 PreferredLastName 源字段生成 UPN 值,ToLower 函数对生成的字符串进行运算,将所有字符都转换为小写形式。
ToLower(Join("@", NormalizeDiacritics(StripSpaces(Join(".", [PreferredFirstName], [PreferredLastName]))), "contoso.com"))
示例输入/输出:
输入
(PreferredFirstName):"John"
输入
(PreferredLastName):"Smith"
输出
:“john.smith@contoso.com”
为 userPrincipalName (UPN) 属性生成唯一值
你需要根据用户的名字、中间名和姓氏为 UPN 属性生成值,并在将该值分配给 UPN 属性之前在目标 AD 目录中检查其唯一性。
SelectUniqueValue(
Join("@", NormalizeDiacritics(StripSpaces(Join(".", [PreferredFirstName], [PreferredLastName]))), "contoso.com"),
Join("@", NormalizeDiacritics(StripSpaces(Join(".", Mid([PreferredFirstName], 1, 1), [PreferredLastName]))), "contoso.com"),
Join("@", NormalizeDiacritics(StripSpaces(Join(".", Mid([PreferredFirstName], 1, 2), [PreferredLastName]))), "contoso.com")
示例输入/输出:
输入 (PreferredFirstName):"John"
输入 (PreferredLastName):"Smith"
输出:"John.Smith@contoso.com",如果 UPN 值 John.Smith@contoso.com 尚未存在于目录中
输出:"J.Smith@contoso.com",如果 UPN 值 John.Smith@contoso.com 已存在于目录中
输出:"Jo.Smith@contoso.com",如果上面的两个值已存在于目录中
什么是预配?
什么是 Microsoft Entra 云同步?