Referenční informace k zápisu výrazů pro mapování atributů v Microsoft Entra ID
Při konfiguraci zřizování pro aplikaci SaaS je jedním z typů mapování atributů, které můžete zadat, mapování výrazů. Pro tato mapování musíte napsat výraz podobný skriptu, který umožňuje transformovat data uživatelů do formátů, které jsou pro aplikaci SaaS přijatelnější.
Přehled syntaxe
Syntaxe výrazů pro mapování atributů je namapovaná na funkce jazyk Visual Basic for Application (VBA).
Celý výraz musí být definován z hlediska funkcí, které se skládají z názvu následovaného argumenty v závorkách: FunctionName(
<<argument 1>>
;<<argument N>>
).Funkce můžete vnořit do sebe. Příklad: FunctionOne(FunctionTwo(
<<argument1>>
))Do funkcí můžete předat tři různé typy argumentů:
- Atributy, které musí být uzavřeny v hranatých závorkách. Příklad: [attributeName]
- Řetězcové konstanty, které musí být uzavřeny do dvojitých uvozovek. Příklad: "USA"
- Další funkce. Příklad: FunctionOne(
<<argument1>>
, FunctionTwo(<<argument2>>
))
Pro řetězcové konstanty, pokud potřebujete zpětné lomítko (\ ) nebo uvozovky (" ) v řetězci, musí být uvozené se symbolem zpětného lomítka ( \ ). Příklad: "Název společnosti: "Contoso\""
V syntaxi se rozlišují malá a velká písmena, která je potřeba zvážit při jejich psaní jako řetězce ve funkci a při jejich vkládání přímo odsud.
Seznam funkcí
PřipojeníAppRoleAssignmentsComplexBitAndCBoolCDateCoalesceConvertToBase64ConvertToUTF8HexCountCStrDateDiff DateDiffDateFromNumFormatDateTimeGuidIgnoreFlowIfNullOrEmptyIIFInStrIsNull IsNull IsNullIsNull IsPresentIsStringSpojení položkyDolevaMidNormalizeDiacriticsnenínyníNumFromDatePCaseRandomStringRedactRemoveDuplicatesReplaceSelectUniqueValueSingleAppRoleAssignmentSplitStripSpacesSwitchToLowerToUpper Word
Připojit
Funkce: Append(zdroj, přípona)
Popis: Vezme zdrojovou řetězcovou hodnotu a připojí k ní příponu.
Parametry:
Název | Povinné nebo opakující se | Typ | Notes |
---|---|---|---|
source | Požaduje se | String | Obvykle název atributu ze zdrojového objektu. |
přípona | Požaduje se | String | Řetězec, který chcete připojit na konec zdrojové hodnoty. |
Připojení přípony konstanty k uživatelskému jménu
Příklad: Pokud používáte sandbox Salesforce, možná budete muset před synchronizací přidat další příponu ke všem uživatelským jménům.
Expression:Append([userPrincipalName], ".test")
Ukázkový vstup/výstup:
- INPUT: (userPrincipalName): "John.Doe@contoso.com"
- VÝSTUP: "John.Doe@contoso.com.test"
AppRoleAssignmentsComplex
Funkce: AppRoleAssignmentsComplex([appRoleAssignments])
Popis: Slouží ke konfiguraci více rolí pro uživatele. Podrobné informace o využití najdete v tématu Kurz – Přizpůsobení mapování atributů zřizování uživatelů pro aplikace SaaS v Microsoft Entra ID.
Parametry:
Název | Povinné nebo opakující se | Typ | Notes |
---|---|---|---|
[appRoleAssignments] | Požaduje se | String | [appRoleAssignments] objekt. |
BitAnd
Funkce: BitAnd(hodnota1; hodnota2)
Popis: Tato funkce převede oba parametry na binární reprezentaci a nastaví bit na:
- 0 – pokud jeden nebo oba odpovídající bity v hodnotě 1 a hodnota2 jsou 0
- 1 – pokud jsou oba odpovídající bity 1.
Jinými slovy, vrátí hodnotu 0 ve všech případech s výjimkou případů, kdy jsou odpovídající bity obou parametrů 1.
Parametry:
Název | Povinné nebo opakující se | Typ | Notes |
---|---|---|---|
hodnota1 | Požaduje se | Číslo | Číselná hodnota, která by měla být AND s hodnotou 2 |
hodnota2 | Požaduje se | Číslo | Číselná hodnota, která by měla být AND s hodnotou 1 |
Příklad:BitAnd(&HF, &HF7)
11110111 AND 00000111 = 00000111 tak BitAnd
vrátí hodnotu 7, binární hodnota 00000111.
CBool
Funkce:CBool(Expression)
Popis:CBool
vrátí logickou hodnotu na základě vyhodnoceného výrazu. Pokud se výraz vyhodnotí jako nenulová hodnota, CBool
vrátí hodnotu True, jinak vrátí hodnotu False.
Parametry:
Název | Povinné nebo opakující se | Typ | Notes |
---|---|---|---|
Expression | Požaduje se | výraz | Libovolný platný výraz |
Příklad:CBool([attribute1] = [attribute2])
Vrátí hodnotu True, pokud oba atributy mají stejnou hodnotu.
Datum v jazyce CDate
Funkce:
CDate(expression)
Popis:
Funkce CDate vrátí hodnotu DateTime UTC z řetězce. DateTime není nativním typem atributu, ale dá se použít v rámci funkcí kalendářních dat, jako jsou FormatDateTime a DateAdd.
Parametry:
Název | Povinné nebo opakující se | Typ | Notes |
---|---|---|---|
Expression | Požaduje se | Výraz | Libovolný platný řetězec, který představuje datum a čas. V případě podporovaných formátů se podívejte na vlastní řetězce formátu data a času .NET. |
Poznámky:
Vrácený řetězec je vždy ve standardu UTC a řídí se formátem M/d/rrrr h:mm:ss tt.
Příklad 1:
CDate([StatusHireDate])
Ukázkový vstup/výstup:
- INPUT (StatusHireDate): "2020-03-16-07:00"
- VÝSTUP: "16.3.2020 7:00:00" <- Všimněte si, že je vrácen ekvivalent UTC výše uvedeného dateTime.
Příklad 2:
CDate("2021-06-30+08:00")
Ukázkový vstup/výstup:
- VSTUP: "2021-06-30+08:00"
- VÝSTUP: "29.6.2021 4:00:00" <-- Všimněte si, že se vrátí ekvivalent UTC výše uvedeného data a času.
Příklad 3:
CDate("2009-06-15T01:45:30-07:00")
Ukázkový vstup/výstup:
- VSTUP: "2009-06-15T01:45:30-07:00"
- VÝSTUP: 15. 6. 2009 8:45:30 – <- Všimněte si, že je vrácen ekvivalent UTC výše uvedeného data a času.
Coalesce
Funkce: Coalesce(source1; source2; ...; defaultValue)
Popis: Vrátí první zdrojová hodnota, která nemá hodnotu NULL. Pokud jsou všechny argumenty null a výchozí Hodnota je přítomna, vrátí se výchozí hodnota. Pokud nejsou k dispozici všechny argumenty NULL a defaultValue, vrátí funkce Coalesce hodnotu NULL.
Parametry:
Název | Povinné nebo opakující se | Typ | Notes |
---|---|---|---|
zdroj1 ... sourceN | Požaduje se | String | Povinné, počet proměnných. Obvykle název atributu ze zdrojového objektu. |
defaultValue | Volitelné | String | Výchozí hodnota, která se má použít, když všechny zdrojové hodnoty mají hodnotu NULL. Může být prázdný řetězec (""). |
Hodnota toku pošty, pokud není NULL, jinak tok userPrincipalName
Příklad: Pokud je atribut pošty k dispozici, chcete tok. Pokud tomu tak není, chcete místo toho tok hodnoty userPrincipalName.
Expression:Coalesce([mail],[userPrincipalName])
Ukázkový vstup/výstup:
- INPUT (pošta): NULL
- INPUT (userPrincipalName): "John.Doe@contoso.com"
- VÝSTUP: "John.Doe@contoso.com"
ConvertToBase64
Funkce: ConvertToBase64(source)
Popis: Funkce ConvertToBase64 převede řetězec na řetězec Unicode base64.
Parametry:
Název | Povinné nebo opakující se | Typ | Notes |
---|---|---|---|
source | Požaduje se | String | Řetězec, který se má převést na základ 64 |
Příklad:ConvertToBase64("Hello world!")
Vrátí "SABlAGwAbABvACAAdwBvAHIAbABkACEA"
ConvertToUTF8Hex
Funkce: ConvertToUTF8Hex(zdroj)
Popis: Funkce ConvertToUTF8Hex převede řetězec na šestnáctkovou hodnotu UTF8.
Parametry:
Název | Povinné nebo opakující se | Typ | Notes |
---|---|---|---|
source | Požaduje se | String | Řetězec, který se má převést na hex UTF8 |
Příklad:ConvertToUTF8Hex("Hello world!")
Vrátí hodnotu 48656C6C6F20776F726C6421.
Počet
Funkce: Count(attribute)
Popis: Funkce Count vrátí počet prvků v atributu s více hodnotami.
Parametry:
Název | Povinné nebo opakující se | Typ | Notes |
---|---|---|---|
attribute | Požaduje se | attribute | Atribut s více hodnotami, který obsahuje počítané prvky |
CStr
Funkce: CStr(value)
Popis: Funkce CStr převede hodnotu na datový typ řetězce.
Parametry:
Název | Povinné nebo opakující se | Typ | Notes |
---|---|---|---|
value | Požaduje se | číselná, referenční nebo logická hodnota | Může to být číselná hodnota, atribut odkazu nebo logická hodnota. |
Příklad:CStr([dn])
Vrátí "cn=Joe,dc=contoso,dc=com"
DateAdd
Funkce:
DateAdd(interval, value, dateTime)
Popis:
Vrátí řetězec data a času představující datum, do kterého se přidá zadaný časový interval. Vrácené datum je ve formátu: M/d/rrrr h:mm:ss tt.
Parametry:
Název | Povinné nebo opakující se | Typ | Notes |
---|---|---|---|
interval | Požaduje se | String | Interval času, který chcete přidat. Podívejte se na přijaté hodnoty za touto tabulkou. |
value | Požaduje se | Počet | Počet jednotek, které chcete přidat. Může to být kladné (získání kalendářních dat v budoucnu) nebo záporné (pro získání dat v minulosti). |
dateTime | Požaduje se | DateTime | DateTime představující datum, ke kterému se interval přidá. |
Při předávání řetězce kalendářního data jako vstupu použijte funkci CDate k zabalení řetězce datetime. K získání systémového času ve standardu UTC použijte funkci Now .
Řetězec intervalu musí mít jednu z následujících hodnot:
- yyyy Year
- m Měsíc
- d Den
- ww Week
- h Hodina
- n Minuta
- s Sekunda
Příklad 1: Vygenerování hodnoty data na základě příchozího statusHireDate z Workday
DateAdd("d", 7, CDate([StatusHireDate]))
Příklad | interval | hodnota | dateTime (hodnota proměnné StatusHireDate) | output |
---|---|---|---|---|
Přidání 7 dnů k datu přijetí | "d" | 7 | 2012-03-16-07:00 | 23.3.2012 7:00:00 |
Získání data deseti dnů před datem přijetí | "d" | -10 | 2012-03-16-07:00 | 6.3.2012 7:00:00 |
Přidat dva týdny k datu přijetí | "ww" | 2 | 2012-03-16-07:00 | 3.30.2012 7:00:00 |
Přidání deseti měsíců k datu přijetí | "m" | 10 | 2012-03-16-07:00 | 1.16.2013 7:00:00 |
Přidat dva roky k datu přijetí | "yyyy" | 2 | 2012-03-16-07:00 | 16.3.2014 7:00:00 |
DateDiff
Funkce:
DateDiff(interval, date1, date2)
Popis:
Tato funkce pomocí parametru intervalu vrátí číslo, které označuje rozdíl mezi dvěma vstupními daty. Vrátí
- kladné číslo, pokud datum2 > datum1,
- záporné číslo, pokud datum2 < datum1,
- 0, pokud datum2 == datum1
Parametry:
Název | Povinné/volitelné | Typ | Notes |
---|---|---|---|
interval | Požaduje se | String | Interval času, který se má použít pro výpočet rozdílu |
datum 1 | Požaduje se | DateTime | DateTime představující platné datum. |
datum 2 | Požaduje se | DateTime | DateTime představující platné datum. |
Při předávání řetězce kalendářního data jako vstupu použijte funkci CDate k zabalení řetězce datetime. K získání systémového času ve standardu UTC použijte funkci Now .
Řetězec intervalu musí mít jednu z následujících hodnot:
- yyyy Year
- m Měsíc
- d Den
- ww Week
- h Hodina
- n Minuta
- s Sekunda
Příklad 1: Porovnání aktuálního data s datem přijetí z Workday s různými intervaly
DateDiff("d", Now(), CDate([StatusHireDate]))
Příklad | interval | date1 | date2 | output |
---|---|---|---|---|
Kladný rozdíl ve dnech mezi dvěma daty | d | 2021-08-18+08:00 | 2021-08-31+08:00 | 13 |
Záporný rozdíl ve dnech mezi dvěma daty | d | 25.8.2021 5:41:18 | 2012-03-16-07:00 | -3449 |
Rozdíl v týdnech mezi dvěma daty | ww | 25.8.2021 5:41:18 | 2012-03-16-07:00 | -493 |
Rozdíl v měsících mezi dvěma daty | m | 25.8.2021 5:41:18 | 2012-03-16-07:00 | -113 |
Rozdíl v letech mezi dvěma daty | yyyy | 25.8.2021 5:41:18 | 2012-03-16-07:00 | -9 |
Rozdíl v tom, kdy jsou obě data stejná | d | 2021-08-31+08:00 | 2021-08-31+08:00 | 0 |
Rozdíl v hodinách mezi dvěma daty | h | 2021-08-24 | 2021-08-25 | 24 |
Rozdíl v minutách mezi dvěma daty | n | 2021-08-24 | 2021-08-25 | 1440 |
Rozdíl v sekundách mezi dvěma daty | s | 2021-08-24 | 2021-08-25 | 86400 |
Příklad 2: Kombinování funkce DateDiff s funkcí IIF za účelem nastavení hodnoty atributu
Pokud je účet v aplikaci Workday aktivní, nastavte atribut accountEnabled uživatele na Hodnotu True pouze v případě, že datum přijetí spadá do následujících pěti dnů.
Switch([Active], ,
"1", IIF(DateDiff("d", Now(), CDate([StatusHireDate])) > 5, "False", "True"),
"0", "False")
DateFromNum
Funkce: DateFromNum(value)
Popis: Funkce DateFromNum převede hodnotu ve formátu data AD na typ DateTime.
Parametry:
Název | Povinné nebo opakující se | Typ | Notes |
---|---|---|---|
value | Požaduje se | Datum | Datum AD, které se má převést na typ DateTime |
Příklad:DateFromNum([lastLogonTimestamp])
DateFromNum(129699324000000000)
Vrátí hodnotu DateTime představující datum 1. ledna 2012 v 11:00.
FormatDateTime
Funkce: FormatDateTime(source, dateTimeStyles, inputFormat, outputFormat)
Popis: Vezme řetězec data z jednoho formátu a převede ho do jiného formátu.
Parametry:
Název | Povinné nebo opakující se | Typ | Notes |
---|---|---|---|
source | Požaduje se | String | Obvykle název atributu ze zdrojového objektu. |
dateTimeStyles | Volitelné | String | Tento parametr použijte k určení možností formátování, které přizpůsobují analýzu řetězců pro některé metody analýzy data a času. Podporované hodnoty najdete v dokumentu DateTimeStyles. Pokud je hodnota prázdná, použije se výchozí hodnota DateTimeStyles.RoundtripKind, DateTimeStyles.AllowLeadingWhite, DateTimeStyles.AllowTrailingWhite |
inputFormat | Požaduje se | String | Očekávaný formát zdrojové hodnoty Podporované formáty najdete v tématu Vlastní řetězce formátu data a času .NET. |
outputFormat | Požaduje se | String | Formát výstupního data |
Výstupní datum jako řetězec v určitém formátu
Příklad: Chcete odeslat data do aplikace SaaS, jako je ServiceNow, v určitém formátu. Můžete zvážit použití následujícího výrazu.
Expression:
FormatDateTime([extensionAttribute1], , "yyyyMMddHHmmss.fZ", "yyyy-MM-dd")
Ukázkový vstup/výstup:
- INPUT (extensionAttribute1): "20150123105347.1Z"
- VÝSTUP: "2015-01-23"
Guid
Funkce: Guid()
Popis: Identifikátor GUID funkce vygeneruje nový náhodný identifikátor GUID.
Příklad:
Guid()
Ukázkový výstup: "00aaa0a-bb11-cc22-dd33-44ee44ee4e4ee4ee"
IgnoreFlowIfNullOrEmpty
Funkce: IgnoreFlowIfNullOrEmpty(expression)
Popis: Funkce IgnoreFlowIfNullOrEmpty dává službě zřizování pokyn, aby atribut ignoroval a vyřadil ho z toku, pokud je uzavřená funkce nebo atribut null nebo prázdný.
Parametry:
Název | Povinné nebo opakující se | Typ | Notes |
---|---|---|---|
Expression | Požaduje se | Výraz | Výraz, který se má vyhodnotit |
Příklad 1: Neprotékejte atributem, pokud má hodnotu null
IgnoreFlowIfNullOrEmpty([department])
Výše uvedený výraz zahodí atribut oddělení z toku zřizování, pokud je null nebo prázdný.
Příklad 2: Neprovádět atribut, pokud se mapování výrazu vyhodnotí na prázdný řetězec nebo hodnotu null
Řekněme, že předpona atributu SuccessFactors je namapovaná na atribut místní Active Directory personalTitle pomocí následujícího mapování výrazů:
IgnoreFlowIfNullOrEmpty(Switch([prefix], "", "3443", "Dr.", "3444", "Prof.", "3445", "Prof. Dr."))
Výše uvedený výraz nejprve vyhodnotí funkci Switch . Pokud atribut předpony neobsahuje žádné hodnoty uvedené v rámci funkce Switch, vrátí ** prázdný řetězec a atribut personalTitle není zahrnut do toku zřizování pro místní Active Directory.
IIF
Funkce: IIF(podmínka,valueIfTrue,valueIfFalse)
Popis: Funkce IIF vrátí jednu ze sady možných hodnot na základě zadané podmínky.
Parametry:
Název | Povinné nebo opakující se | Typ | Notes |
---|---|---|---|
podmínka | Požaduje se | Proměnná nebo výraz | Libovolná hodnota nebo výraz, které lze vyhodnotit na hodnotu true nebo false. |
valueIfTrue | Požaduje se | Proměnná nebo řetězec | Pokud se podmínka vyhodnotí jako true, vrátí se vrácená hodnota. |
valueIfFalse | Požaduje se | Proměnná nebo řetězec | Pokud se podmínka vyhodnotí jako nepravda, vrátí se vrácená hodnota. |
V podmínce lze použít následující relační operátory:
- Rovná se (=) a nerovná se (<>)
- Větší než (>) a větší než rovno (>=)
- Menší než (<) a menší než rovno (<=)
Příklad: Nastavte hodnotu cílového atributu na atribut zdrojové země, pokud country="USA", jinak nastavte hodnotu cílového atributu na atribut zdrojového oddělení.
IIF([country]="USA",[country],[department])
Známá omezení
Tato část obsahuje omezení a alternativní řešení pro funkci IIF. Informace o řešení potíží s vytvářením uživatelů najdete v tématu Selhání vytváření kvůli hodnotě null nebo prázdných hodnot.
- Funkce IIF v současné době nepodporuje logické operátory AND a OR.
- K implementaci logiky AND použijte vnořený příkaz IIF zřetězený podél cesty trueValue .
Příklad: Pokud country="USA" and state="CA", vrátí hodnotu "Pravda", jinak vrátí "False".
IIF([country]="USA",IIF([state]="CA","True","False"),"False")
- K implementaci logiky OR použijte vnořený příkaz IIF zřetězený podél cesty falseValue .
Příklad: Pokud country="USA" nebo state="CA", vrátí hodnotu "Pravda", jinak vrátí "False".
IIF([country]="USA","True",IIF([state]="CA","True","False"))
- Pokud je zdrojový atribut použitý v rámci funkce IIF prázdný nebo null, kontrola podmínky selže.
- Nepodporované příklady výrazů IIF:
IIF([country]="","Other",[country])
IIF(IsNullOrEmpty([country]),"Other",[country])
IIF(IsPresent([country]),[country],"Other")
- Doporučené alternativní řešení: Pomocí funkce Switch zkontrolujte prázdné hodnoty nebo hodnoty null. Příklad: Pokud je atribut země prázdný, nastavte hodnotu "Jiné". Pokud je k dispozici, předejte hodnotu atributu země cílovému atributu.
Switch([country],[country],"","Other")
- Nepodporované příklady výrazů IIF:
Instr
Funkce: InStr(value1; value2; start; compareType)
Popis: Funkce InStr najde první výskyt podřetězce v řetězci.
Parametry:
Název | Povinné nebo opakující se | Typ | Notes |
---|---|---|---|
hodnota1 | Požaduje se | String | Řetězec, který se má prohledávat |
hodnota2 | Požaduje se | String | Řetězec, který se má najít |
start | Volitelné | Celé číslo | Počáteční pozice pro vyhledání podřetězdce |
compareType | Volitelné | Výčet | Může být vbTextCompare nebo vbBinaryCompare |
Příklad:InStr("The quick brown fox","quick")
Vyhodnotí se jako 5.
InStr("repEated","e",3,vbBinaryCompare)
Vyhodnotí se jako 7.
IsNull
Funkce: IsNull(Expression)
Popis: Pokud se výraz vyhodnotí jako Null, vrátí funkce IsNull hodnotu true. Pro atribut je null vyjádřena absencí atributu.
Parametry:
Název | Povinné nebo opakující se | Typ | Notes |
---|---|---|---|
Expression | Požaduje se | Výraz | Výraz, který se má vyhodnotit |
Příklad:IsNull([displayName])
Vrátí hodnotu True, pokud atribut není k dispozici.
IsNullorEmpty
Funkce: IsNullOrEmpty(Expression)
Popis: Pokud je výraz null nebo prázdný řetězec, vrátí funkce IsNullOrEmpty hodnotu true. Výsledkem je hodnota True, pokud atribut chybí nebo je k dispozici, ale je prázdný řetězec. Inverzní funkce má název IsPresent.
Parametry:
Název | Povinné nebo opakující se | Typ | Notes |
---|---|---|---|
Expression | Požaduje se | Výraz | Výraz, který se má vyhodnotit |
Příklad:IsNullOrEmpty([displayName])
Vrátí hodnotu True, pokud atribut neexistuje nebo je prázdný řetězec.
IsPresent
Funkce: IsPresent(Expression)
Popis: Pokud se výraz vyhodnotí jako řetězec, který není null a není prázdný, vrátí funkce IsPresent hodnotu true. Inverzní funkce má název IsNullOrEmpty.
Parametry:
Název | Povinné nebo opakující se | Typ | Notes |
---|---|---|---|
Expression | Požaduje se | Výraz | Výraz, který se má vyhodnotit |
Příklad:Switch(IsPresent([directManager]),[directManager], IsPresent([skiplevelManager]),[skiplevelManager], IsPresent([director]),[director])
IsString
Funkce: IsString(Expression)
Popis: Pokud výraz lze vyhodnotit na typ řetězce, funkce IsString se vyhodnotí jako True.
Parametry:
Název | Povinné nebo opakující se | Typ | Notes |
---|---|---|---|
Expression | Požaduje se | Výraz | Výraz, který se má vyhodnotit |
Položka
Funkce: Item(atribut, index)
Popis: Funkce Item vrátí jednu položku z vícehodnotového řetězce nebo atributu.
Parametry:
Název | Povinné nebo opakující se | Typ | Notes |
---|---|---|---|
attribute | Požaduje se | Atribut | Atribut s více hodnotami, který se má prohledávat |
index | Požaduje se | Celé číslo | Indexování položky v řetězci s více hodnotami |
Příklad:Item([proxyAddresses], 1)
Vrátí první položku v atributu s více hodnotami. Index 0 by neměl být použit.
Připojení
Funkce: Spojení(oddělovač, zdroj1; zdroj2; ...)
Popis: Join() se podobá append(), s tím rozdílem, že může zkombinovat více zdrojových řetězcových hodnot do jednoho řetězce a každá hodnota je oddělena oddělovačem.
Pokud je jednou ze zdrojových hodnot atribut s více hodnotami, je každá hodnota v daném atributu spojená, oddělená hodnotou oddělovače.
Parametry:
Název | Povinné nebo opakující se | Typ | Notes |
---|---|---|---|
oddělovač | Požaduje se | String | Řetězec použitý k oddělení zdrojových hodnot, když jsou zřetězeny do jednoho řetězce. Pokud není vyžadován žádný oddělovač, může být "". |
zdroj1 ... sourceN | Povinné, počet proměnných | String | Řetězcové hodnoty, které se mají spojit. |
Šipka vlevo
Funkce: Left(String; NumChars)
Popis: Funkce Vlevo vrátí zadaný počet znaků zleva od řetězce. Pokud numChars = 0, vrátí prázdný řetězec. Pokud numChars < 0, vrátí vstupní řetězec. Pokud je řetězec null, vraťte prázdný řetězec. Pokud řetězec obsahuje méně znaků než číslo zadané v numChars, vrátí se řetězec shodný s řetězcem (tj. obsahující všechny znaky v parametru 1).
Parametry:
Název | Povinné nebo opakující se | Typ | Notes |
---|---|---|---|
Řetězec | Požaduje se | Atribut | Řetězec pro vrácení znaků z |
NumChars | Požaduje se | Celé číslo | Číslo určující počet znaků, které se mají vrátit od začátku (vlevo) řetězce |
Příklad:Left("John Doe", 3)
Vrátí "Joh".
Mid
Funkce: Mid(zdroj, začátek, délka)
Popis: Vrátí podřetěžk zdrojové hodnoty. Podřetězce je řetězec, který obsahuje pouze některé znaky ze zdrojového řetězce.
Parametry:
Název | Povinné nebo opakující se | Typ | Notes |
---|---|---|---|
source | Požaduje se | String | Obvykle název atributu. |
start | Požaduje se | Celé číslo | Indexujte ve zdrojovém řetězci, kde by se měl spustit podřetězc. První znak v řetězci má index 1, druhý znak má index 2 atd. |
length | Požaduje se | Celé číslo | Délka podřetětěce. Pokud délka končí mimo zdrojový řetězec, vrátí funkce podřetězce od počátečního indexu do konce zdrojového řetězce. |
NormalizeDiacritics
Funkce: NormalizeDiacritics(source)
Popis: Vyžaduje jeden řetězcový argument. Vrátí řetězec, ale s libovolnými diacritickými znaky nahrazenými ekvivalentními nediakritickými znaky. Obvykle se používá k převodu křestní jména a příjmení obsahující diacritické znaky (zvýrazňující značky) na právní hodnoty, které se dají použít v různých identifikátorech uživatelů, jako jsou hlavní názvy uživatelů, názvy účtů SAM a e-mailové adresy.
Parametry:
Název | Povinné nebo opakující se | Typ | Notes |
---|---|---|---|
source | Požaduje se | String | Obvykle je to jméno nebo atribut příjmení. |
Znak s diakritikou | Normalizovaný znak | Znak s diakritikou | Normalizovaný znak |
---|---|---|---|
ä, à, â, ã, å, á, ą, ă, ā, ā̀, ā̂, ā̃, ǟ, ā́, ǡ, alha, å̄ | d | Ä, À, Â, Ã, Å, Á, Ą, Ă, Ā, Ā̀, Ā̂, Ā̃, Ǟ, Ā́, Ǡ, Aî, Å̄ | A |
æ, ǣ | Æ | Æ, Ǣ | AE |
ç, č, ć, c̄, cklop | c | Ç, Č, Ć, C̄, Cric | C |
ď, d̄, ḏ | d | Ď, D̄, Ḏ | D |
ë, è, é, ê, ę, ě, ė, ē, ḗ, ḕ, ē̂, ē̃, ê̄, eķ, ë̄, e̊̄ | e | Ë, È, É, Ê, Ę, Ě, Ė, Ē, Ḗ, Ḕ, Ē̂, Ē̃, Ê̄, Ē, Ë̄, E̊̄ | E |
ğ, ḡ, gğ | g | Ğ, Ḡ, Gğ | G |
ï, î, ì, í, ı, ī, ī̀, ī̂, ī̃, iλ | Mohu | Ï, Î, Ì, Í, İ, Ī, Ī̀, Ī̂, Ī̃, Iİ | I |
ľ, ł, l̄, ḹ, ḻ | l | Ł, Ľ, L̄, Ḹ, Ḻ | L |
ñ, ń, ň, n̄, ṉ | n | Ñ, Ń, Ň, N̄, Ṉ | N |
ö, ò, ő, õ, ô, ó, ō, ṓ, ṑ, ō̂, ō̃, ȫ, ṓ, ǭ, ȭ, ȱ, oò | o | Ö, Ò, Ő, Õ, Ô, Ó, Ō, Ṓ, Ṑ, Ō̂, Ō̃, Ȫ, Ṓ, Ǭ, Ȭ, Ȱ, Oós | O |
ø, ø̄, ̄ | Œ | Ø, Ø̄, ̄ | Œ |
ř, r̄, ṟ, ṝ | r | Ř, R̄, Ṟ, Ṝ | R |
ß | ss | ||
š, ś, ş, s̄, sº | s | Š, Ś, Ş, S̄, Sº | S |
ť, ț, t̄, ṯ | t | Ť, Ț, T̄, Ṯ | T |
ü, ù, û, ú, ů, ́, ū, ū, ū̀, ū̂, ū̃, ū, ǖ, ṻ, ṳ̄, ū | u | Ü, Ù, Û, Ú, Ů, Ū, Ū, Ū̀, Ū̂, Ū̃, Ū, Ǖ, Ṻ, Ṳ̄, Ū | U |
́, ý, ȳ, ȳ́, ȳ̀, ȳ̃, ỹ | y | Ȳ, Ȳ, Ȳ, Ȳ̀, Ȳ̃, Ý | Y |
ź, ž, ż, z̄, ź | z | Ź, Ž, Ż, Z̄, Ż | Z |
Odebrání diakritiky z řetězce
Příklad: Nahraďte znaky obsahující zvýrazňující značky ekvivalentními znaky, které neobsahují zvýrazňující značky.
Výraz: NormalizeDiacritics([givenName])
Ukázkový vstup/výstup:
- INPUT (givenName): "Zoë"
- VÝSTUP: "Zoe"
Not
Funkce: Not(zdroj)
Popis: Překlopí logickou hodnotu zdroje. Pokud je zdrojová hodnota True, vrátí hodnotu False. V opačném případě vrátí hodnotu True.
Parametry:
Název | Povinné nebo opakující se | Typ | Notes |
---|---|---|---|
source | Požaduje se | Logický řetězec | Očekávané zdrojové hodnoty jsou True nebo False. |
Now
Funkce: Now()
Popis:
Funkce Now vrátí řetězec představující aktuální čas UTC DateTime ve formátu M/d/rrrr h:mm:ss tt.
Příklad:Now()
Příklad vrácené hodnoty 2. 7. 2021 3:33:38
NumFromDate
Funkce: NumFromDate(value)
Popis: Funkce NumFromDate převede hodnotu DateTime na formát Active Directory, který je nutný k nastavení atributů, jako je accountExpires. Pomocí této funkce můžete převést hodnoty DateTime přijaté z cloudových aplikací hr, jako jsou Workday a SuccessFactors, na ekvivalentní reprezentaci AD.
Parametry:
Název | Povinné nebo opakující se | Typ | Notes |
---|---|---|---|
value | Požaduje se | String | Řetězec data a času ve formátu ISO 8601 . Pokud je proměnná data v jiném formátu, pomocí funkce FormatDateTime převeďte datum do formátu ISO 8601. |
Příklad:
Příklad Workday: Za předpokladu, že chcete namapovat atribut ContractEndDate z Workday, který je ve formátu 2020-12-31-08:00 na pole accountExpires v AD, tady je postup, jak můžete použít tuto funkci a změnit posun časového pásma tak, aby odpovídal vašemu národnímu prostředí.
NumFromDate(Join("", FormatDateTime([ContractEndDate], ,"yyyy-MM-ddzzz", "yyyy-MM-dd"), " 23:59:59-08:00"))
Příklad SuccessFactors: Za předpokladu, že chcete namapovat atribut endDate z SuccessFactors, který je ve formátu M/d/y hh:mm:ss tt na pole accountExpires v AD, tady je postup, jak můžete použít tuto funkci a změnit posun časového pásma tak, aby odpovídal vašemu národnímu prostředí.
NumFromDate(Join("",FormatDateTime([endDate], ,"M/d/yyyy hh:mm:ss tt","yyyy-MM-dd")," 23:59:59-08:00"))
PCase
Funkce: PCase(zdroj, wordSeparators)
Popis: Funkce PCase převede první znak každého slova v řetězci na velká a všechny ostatní znaky se převedou na malá písmena.
Parametry:
Název | Povinné/volitelné | Typ | Notes |
---|---|---|---|
source | Požaduje se | String | zdrojová hodnota, která se má převést na velká a velká písmena. |
WordSeparators | Volitelné | String | Zadejte sadu znaků, které se používají jako oddělovače slov (příklad: ",-"). |
Poznámky:
- Pokud není zadaný parametr wordSeparators, pak PCase interně vyvolá funkci .NET ToTitleCase pro převod zdrojového řetězce na velká a velká písmena. Funkce .NET ToTitleCase podporuje komplexní sadu kategorií znaků Unicode jako oddělovače slov.
- Znak mezery
- Nový znak řádku
- Řídicí znaky, jako je CRLF
- Formátování řídicích znaků
- Znaky ConnectorPunctuation , jako je podtržítko
- Znaky DashPunctuation , jako je pomlčka a spojovník (včetně znaků, jako jsou En Dash, Em Dash, dvojitý spojovník atd.)
- Znaky OpenPunctuation a ClosePunctuation, ke kterým dochází ve dvojicích, jako jsou závorky, složená závorka, úhel závorka atd.
- Znaky InitialQuotePunctuation a FinalQuotePunctuation , jako jsou jednoduché uvozovky, dvojité uvozovky a úhlové uvozovky.
- Jiné znakyPunctuation , jako je vykřičník, znak čísla, znak procenta, ampersand, hvězdička, čárka, úplná zarážka, dvojtečka, středník atd.
- Matematické znaky jako znaménko plus, znaménko menší než a větší než, svislá čára, tilda, znaménko rovná se atd.
- Znaky CurrencySymbol jako znak dolaru, znak centu, libra, znaménko eura atd.
- ModifikátorSymbolové znaky, jako jsou například symboly, zvýraznění, šipky atd.
- Jiné znakySymbol , jako je znak autorských práv, znak stupně, zaregistrované znaménko atd.
- Pokud je zadán parametr wordSeparators, PCase používá pouze znaky zadané jako oddělovače slov.
Příklad:
Řekněme, že získáváte atributy firstName a lastName ze SAP SuccessFactors a v personálním oddělení jsou oba tyto atributy velkými písmeny. Pomocí funkce PCase můžete název převést na velká a velká písmena, jak je znázorněno zde.
Výraz | Vstup | Výstup | Notes |
---|---|---|---|
PCase([firstName]) |
firstName = "PABLO GONSALVES (SECOND)" | "Pablo Gonsalves (druhý)" | Vzhledem k tomu, že parametr wordSeparators není zadaný, funkce PCase používá výchozí znakové sady oddělovačů slov. |
PCase([lastName]," '-") |
lastName = "PINTO-DE'SILVA" | "Pinto-De'Silva" | Funkce PCase používá znaky v parametru wordSeparators k identifikaci slov a jejich transformaci na velká písmena. |
PCase(Join(" ",[firstName],[lastName])) |
firstName = GREGORY, lastName = "JAMES" | "Gregory James" | Funkci Join můžete vnořit do PCase. Vzhledem k tomu, že parametr wordSeparators není zadaný, funkce PCase používá výchozí znakové sady oddělovačů slov. |
Náhodný řetězec
Funkce: RandomString(Délka, MinimumNumbers, MinimumSpecialCharacters, MinimumCapital, MinimumLowerCase, CharactersToAvoid)
Popis: Funkce RandomString generuje náhodný řetězec na základě zadaných podmínek. Zde je možné identifikovat povolené znaky.
Parametry:
Název | Povinné nebo opakující se | Typ | Notes |
---|---|---|---|
Délka | Požaduje se | Počet | Celková délka náhodného řetězce To by mělo být větší než nebo rovno součtu MinimumNumbers, MinimumSpecialCharacters a MinimumCapital. Maximálně 256 znaků |
MinimumNumbers | Požaduje se | Počet | Minimální počet v náhodném řetězci. |
MinimumSpecialCharacters | Požaduje se | Počet | Minimální počet speciálních znaků |
MinimumCapital | Požaduje se | Počet | Minimální počet velkých písmen v náhodném řetězci |
MinimálnílowerCase | Požaduje se | Počet | Minimální počet malých písmen v náhodném řetězci. |
CharactersToAvoid | Volitelné | String | Znaky, které mají být vyloučeny při generování náhodného řetězce. |
Příklad 1: – Vygenerování náhodného řetězce bez speciálních omezení znaků: RandomString(6,3,0,0,3)
Vygeneruje náhodný řetězec se 6 znaky. Řetězec obsahuje 3 čísla a 3 malá písmena (1a73qt).
Příklad 2: – Vygenerování náhodného řetězce se speciálními omezeními znaků: RandomString(10,2,2,2,1,"?,")
Vygeneruje náhodný řetězec s 10 znaky. Řetězec obsahuje alespoň 2 číslice, 2 speciální znaky, 2 velká písmena, 1 malé písmeno a vyloučí znaky "?" a "," (1@!2BaRg53).
Redigovat
Funkce: Redact()
Popis: Funkce Redact nahradí hodnotu atributu řetězcovým literálem [Redact] v protokolech zřizování.
Parametry:
Název | Povinné nebo opakující se | Typ | Notes |
---|---|---|---|
atribut/hodnota | Požaduje se | String | Zadejte atribut nebo konstantu nebo řetězec, který se má z protokolů redigovat. |
Příklad 1: Redact an attribute: Redact([userPrincipalName])
Odebere userPrincipalName z protokolů zřizování.
Příklad 2: Redact a string: Redact("StringToBeRedacted")
Odebere konstantní řetězec z protokolů zřizování.
Příklad 3: Redact a random string: Redact(RandomString(6,3,0,0,3))
Odebere náhodný řetězec z protokolů zřizování.
Odebrání duplicitních dat
Funkce: RemoveDuplicates(attribute)
Popis: Funkce RemoveDuplicates přebírá řetězec s více hodnotami a ujistěte se, že každá hodnota je jedinečná.
Parametry:
Název | Povinné nebo opakující se | Typ | Notes |
---|---|---|---|
attribute | Požaduje se | Atribut s více hodnotami | Atribut s více hodnotami, který má odstraněné duplicity |
Příklad:RemoveDuplicates([proxyAddresses])
Vrátí sanitizovaný atribut proxyAddress, kde jsou odebrány všechny duplicitní hodnoty.
Nahradit
Funkce: Replace(source, oldValue, regexPattern, regexGroupName, replaceValue, replaceAttributeName, template)
Popis: Nahradí hodnoty v řetězci rozlišováním velkých a malých písmen. Funkce se chová jinak v závislosti na zadaných parametrech:
Pokud jsou k dispozici hodnoty oldValue a replacementValue:
- Nahradí všechny výskyty oldValue ve zdroji nahrazenímValue.
Pokud jsou k dispozici staré hodnoty a šablona :
- Nahradí všechny výskyty staré Hodnoty v šabloně zdrojovou hodnotou.
Pokud jsou k dispozici hodnoty regexPattern a replacementValue :
- Funkce použije regexPattern na zdrojový řetězec a pomocí názvů skupin regulárních výrazů můžete vytvořit řetězec pro replacementValue.
Poznámka:
Další informace o konstruktorech seskupování regulárních výrazů a pojmenovaných dílčích výrazech najdete v tématu Seskupování konstruktorů v regulárních výrazech.
Při regexPattern, regexGroupName, replacementValue jsou k dispozici:
- Funkce použije regexPattern na zdrojový řetězec a nahradí všechny hodnoty odpovídající regexGroupName nahrazenímValue.
Při regexPattern, regexGroupName, replacementAttributeName jsou k dispozici:
- Pokud zdroj obsahuje hodnotu, vrátí se zdroj.
- Pokud zdroj nemá žádnou hodnotu, funkce použije regexPattern na náhradníAttributeName a vrátí hodnotu odpovídající regexGroupName.
Parametry:
Název | Povinné nebo opakující se | Typ | Notes |
---|---|---|---|
source | Požaduje se | String | Obvykle název atributu ze zdrojového objektu. |
oldValue | Volitelné | String | Hodnota, která se má nahradit ve zdroji nebo šabloně |
regexPattern | Volitelné | String | Vzor regulárních výrazů pro hodnotu, která se má nahradit ve zdroji. Při použití funkce replacementAttributeName se výraz regexPattern použije k extrahování hodnoty z hodnoty replacementAttributeName. |
regexGroupName | Volitelné | String | Název skupiny uvnitř regulárního výrazu. Když se použije název replacementAttributeName , extrahujeme hodnotu pojmenované skupiny regulárních výrazů z hodnoty replacementAttributeName a vrátíme ji jako náhradní hodnotu. |
replacementValue | Volitelné | String | Nová hodnota, kterou chcete nahradit starou hodnotou. |
replacementAttributeName | Volitelné | String | Název atributu, který se má použít pro nahrazení hodnoty |
šablona | Volitelné | String | Pokud je zadaná hodnota šablony, vyhledáme v šabloně starou hodnotu a nahradíme ji zdrojovou hodnotou. |
Nahrazení znaků pomocí regulárního výrazu
Příklad 1: Použití hodnoty oldValue a replaceValue k nahrazení celého zdrojového řetězce jiným řetězcem.
Řekněme, že váš personální systém má atribut BusinessTitle
. V rámci nedávných změn pracovních titulů chce vaše společnost aktualizovat každého, kdo má název "Produktový vývojář" na "Softwarový inženýr".
V tomto případě můžete v mapování atributů použít následující výraz.
Replace([BusinessTitle],"Product Developer", , , "Software Engineer", , )
- zdroj:
[BusinessTitle]
- oldValue: "Product Developer"
- replacementValue: "Software Engineer"
- Výstup výrazu: Softwarový inženýr
Příklad 2: Použití staré hodnoty a šablony k vložení zdrojového řetězce do jiného šablonovaného řetězce
Parametr oldValue je v tomto scénáři chybný. Ve skutečnosti se jedná o hodnotu, která se nahradí.
Řekněme, že chcete vždy generovat přihlašovací ID ve formátu <username>@contoso.com
. Existuje zdrojový atribut s názvem UserID a chcete, aby se tato hodnota použila pro <username>
část přihlašovacího ID.
V tomto případě můžete v mapování atributů použít následující výraz.
Replace([UserID],"<username>", , , , , "<username>@contoso.com")
- zdroj:
[UserID]
= "jsmith" - oldValue: "
<username>
" - šablona: "
<username>@contoso.com
" - Výstup výrazu: "jsmith@contoso.com"
Příklad 3: Použití regexPattern a replaceValue k extrahování části zdrojového řetězce a jeho nahrazení prázdným řetězcem nebo vlastní hodnotou sestavenou pomocí vzorů regulárních výrazů nebo názvů skupin regulárních výrazů.
Řekněme, že máte zdrojový atribut telephoneNumber
, který obsahuje komponenty country code
a phone number
oddělené znakem mezery. V tomto případě můžete například +91 9998887777
pomocí následujícího výrazu v mapování atributů extrahovat 10místné telefonní číslo.
Replace([telephoneNumber], , "\\+(?<isdCode>\\d* )(?<phoneNumber>\\d{10})", , "${phoneNumber}", , )
- zdroj:
[telephoneNumber]
= "+91 9998887777" - regexPattern: "
\\+(?<isdCode>\\d* )(?<phoneNumber>\\d{10})
" - replacementValue: "
${phoneNumber}
" - Výstup výrazu: 9998887777
Tento vzor můžete použít také k odebrání znaků a sbalení řetězce. Například následující výraz odebere závorky, pomlčky a mezery v řetězci mobilního čísla a vrátí pouze číslice.
Replace([mobile], , "[()\\s-]+", , "", , )
- zdroj:
[mobile] = "+1 (999) 888-7777"
- regexPattern: "
[()\\s-]+
" - replacementValue: "" (prázdný řetězec)
- Výstup výrazu: 19998887777
Příklad 4: Pomocí regexPattern, regexGroupName a replaceValue extrahujte část zdrojového řetězce a nahraďte ji jinou hodnotou literálu nebo prázdným řetězcem.
Řekněme, že váš zdrojový systém má atribut AddressLineData se dvěma součástmi číslo ulice a název ulice. Jako součást posledního přesunutí řekněme, že se změnilo číslo ulice adresy a chcete aktualizovat jenom část čísla ulice řádku adresy. V tomto případě můžete pomocí následujícího výrazu v mapování atributů extrahovat číslo ulice.
Replace([AddressLineData], ,"(?<streetNumber>^\\d*)","streetNumber", "888", , )
- zdroj:
[AddressLineData]
= "545 Tremont Street" - regexPattern: "
(?<streetNumber>^\\d*)
" - regexGroupName: "streetNumber"
- replacementValue: "888"
- Výstup výrazu: 888 Tremont Street
Tady je další příklad, ve kterém se přípona domény z hlavního názvu uživatele (UPN) nahradí prázdným řetězcem pro vygenerování přihlašovacího ID bez přípony domény.
Replace([userPrincipalName], , "(?<Suffix>@(.)*)", "Suffix", "", , )
- zdroj:
[userPrincipalName]
= "jsmith@contoso.com" - regexPattern: "
(?<Suffix>@(.)*)
" - regexGroupName: "Přípona"
- replacementValue: "" (prázdný řetězec)
- Výstup výrazu: jsmith
Příklad 5: Použití regexPattern, regexGroupName a replacementAttributeName ke zpracování scénářů, kdy je zdrojový atribut prázdný nebo nemá hodnotu.
Řekněme, že váš zdrojový systém má atribut telephoneNumber. Pokud je argument telephoneNumber prázdný, chcete extrahovat 10 číslic atributu mobilního čísla. V tomto případě můžete v mapování atributů použít následující výraz.
Replace([telephoneNumber], , "\\+(?<isdCode>\\d* )(?<phoneNumber>\\d{10})", "phoneNumber" , , [mobile], )
- source:
[telephoneNumber]
= "" (prázdný řetězec) - regexPattern: "
\\+(?<isdCode>\\d* )(?<phoneNumber>\\d{10})
" - regexGroupName: "phoneNumber"
- replacementAttributeName:
[mobile]
= "+91 8887779999" - Výstup výrazu: 8887779999
Příklad 6: Potřebujete najít znaky, které odpovídají hodnotě regulárního výrazu, a odebrat je.
Replace([mailNickname], , "[a-zA-Z_]*", , "", , )
- zdroj [mailNickname]
- oldValue: "john_doe72"
- replaceValue: ""
- Výstup výrazu: 72
SelectUniqueValue
Funkce: SelectUniqueValue(uniqueValueRule1, uniqueValueRule2, uniqueValueRule3; ...)
Popis: Vyžaduje minimálně dva argumenty, což jsou jedinečná pravidla generování hodnot definovaná pomocí výrazů. Funkce vyhodnocuje každé pravidlo a pak zkontroluje hodnotu vygenerovanou jako jedinečnost v cílové aplikaci nebo adresáři. První nalezená jedinečná hodnota je vrácená. Pokud všechny hodnoty již v cíli existují, položka je vyříděna a důvod se zaprotokoluje do protokolů auditu. K počtu argumentů, které je možné zadat, neexistuje žádná horní mez.
Tato funkce musí být na nejvyšší úrovni a nesmí být vnořená.
Tuto funkci nelze použít u atributů, které mají odpovídající prioritu.
Tato funkce je určená pouze pro vytváření položek. Při použití s atributem nastavte vlastnost Použít mapování pouze během vytváření objektu.
Tato funkce je aktuálně podporovaná pro použití s těmito aplikacemi:
- Zřizování uživatelů služby Active Directory v aplikaci Workday
- SuccessFactors to Active Directory User Provisioning
- Zřizování řízené rozhraním API pro místní Active Directory
SelectUniqueValue se nepodporuje pro použití s jinými aplikacemi zřizování.
Vyhledávání LDAP, které funkce SelectUniqueValue provádí v místní Active Directory neuvozuje speciální znaky, jako jsou diakritická znaménka. Pokud předáte řetězec jako Jéssica Smith, který obsahuje speciální znak, dojde k chybám zpracování. Vnořte funkci NormalizeDiacritics , jak je znázorněno v tomto příkladu pro normalizaci speciálních znaků.
Parametry:
Název | Povinné nebo opakující se | Typ | Notes |
---|---|---|---|
uniqueValueRule1 ... uniqueValueRuleN | Vyžaduje se minimálně 2, bez horní hranice. | String | Seznam jedinečných pravidel generování hodnot, která se mají vyhodnotit |
Generování jedinečné hodnoty pro atribut userPrincipalName (UPN)
Příklad: Na základě křestních jmen uživatele, prostředního jména a příjmení musíte vygenerovat hodnotu atributu UPN a před přiřazením hodnoty k atributu UPN zkontrolovat jeho jedinečnost v cílovém adresáři AD.
Expression:
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")
)
Ukázkový vstup/výstup:
- INPUT (PreferredFirstName): "John"
- INPUT (PreferredLastName): "Smith"
- VÝSTUP: "John.Smith@contoso.com" pokud hodnota hlavního John.Smith@contoso.com názvu uživatele (UPN) v adresáři ještě neexistuje
- VÝSTUP: "J.Smith@contoso.com" pokud hodnota hlavního názvu uživatele (UPN) John.Smith@contoso.com již v adresáři existuje.
- VÝSTUP: "Jo.Smith@contoso.com" pokud výše uvedené dvě hodnoty hlavního názvu uživatele (UPN) již v adresáři existují.
SingleAppRoleAssignment
Funkce: SingleAppRoleAssignment([appRoleAssignments])
Popis: Vrátí jeden appRoleAssignment ze seznamu všech appRoleAssignments přiřazených uživateli pro danou aplikaci. Tato funkce je nutná k převodu objektu appRoleAssignments na jeden řetězec názvu role. Osvědčeným postupem je zajistit, aby se k jednomu uživateli najednou přiřadil jenom jeden appRoleAssignment. Tato funkce není podporována ve scénářích, kdy uživatelé mají více přiřazení rolí aplikací.
Parametry:
Název | Povinné nebo opakující se | Typ | Notes |
---|---|---|---|
[appRoleAssignments] | Požaduje se | String | [appRoleAssignments] objekt. |
Rozděleno
Funkce: Split(zdroj, oddělovač)
Popis: Rozdělí řetězec na pole s více hodnotami pomocí zadaného znaku oddělovače.
Parametry:
Název | Povinné nebo opakující se | Typ | Notes |
---|---|---|---|
source | Požaduje se | String | zdrojová hodnota, kterou chcete aktualizovat. |
oddělovač | Požaduje se | String | Určuje znak, který se používá k rozdělení řetězce (příklad: ","). |
Rozdělení řetězce na pole s více hodnotami
Příklad: Musíte vzít čárkami oddělený seznam řetězců a rozdělit je do pole, které lze připojit k atributu s více hodnotami, jako je atribut PermissionSets salesforce. V tomto příkladu se seznam sad oprávnění naplní v extensionAttribute5 v Microsoft Entra ID.
Výraz: Split([extensionAttribute5], ";")
Ukázkový vstup/výstup:
- INPUT (extensionAttribute5): "PermissionSetOne, PermissionSetTwo"
- VÝSTUP: ["PermissionSetOne", "PermissionSetTwo"]
StripSpaces
Funkce: StripSpaces(zdroj)
Popis: Odebere ze zdrojového řetězce všechny znaky mezery (" ").
Parametry:
Název | Povinné nebo opakující se | Typ | Notes |
---|---|---|---|
source | Požaduje se | String | zdrojová hodnota, kterou chcete aktualizovat. |
Přepínač
Funkce: Switch(source; defaultValue; key1; value1; key2; value2; ...)
Popis: Pokud zdrojová hodnota odpovídá klíči, vrátí hodnotu pro tento klíč. Pokud zdrojová hodnota neodpovídá žádným klíčům, vrátí hodnotu defaultValue. Parametry klíče a hodnoty musí být vždy ve dvojicích. Funkce vždy očekává sudý počet parametrů. Funkce by se neměla používat pro referenční atributy, jako je správce.
Poznámka:
Funkce Switch provádí porovnání hodnot zdrojového a klíčového klíče s rozlišováním velkých a malých písmen. Pokud chcete provést porovnání bez rozlišování velkých a malých písmen, před porovnáním normalizujte zdrojový řetězec pomocí vnořené funkce ToLower a ujistěte se, že všechny klíčové řetězce používají malá písmena.
Příklad: Switch(ToLower([statusFlag]), "0", "true", "1", "false", "0")
. V tomto příkladu může mít zdrojový atribut statusFlag
hodnoty ("True" / "true" / "TRUE"). Funkce Switch ji ale vždy převede na řetězec "true" malými písmeny před porovnáním s klíčovými parametry.
Upozornění
Pro zdrojový parametr nepoužívejte vnořené funkce IsPresent, IsNull nebo IsNullOrEmpty. Místo toho jako jednu z hodnot klíče použijte prázdný řetězec literálu.
Příklad: Switch([statusFlag], "Default Value", "true", "1", "", "0")
. Pokud je v tomto příkladu zdrojový atribut statusFlag
prázdný, vrátí funkce Switch hodnotu 0.
Upozornění
Problém: Služba zřizování nesprávně nastavil hodnotu atributu na hodnotu null v cílovém systému při použití příkazu switch.
Řešení: Použijte příkaz IIF místo příkazu switch, abyste zabránili neočekávaným hodnotám null nebo použijte funkci IgnoreFlowIfNullOrEmpty s příkazem switch. Například switch([companyName], "External"; "Company A"; "A"; "Company B"; "B") by měl být reprezentován jako IIF([companyName] = "Company A", "A", IIF([companyName] = "Company B"; "B"; "External")). V případech, kdy je výchozí hodnotou atribut, použijte výraz, jako je IgnoreFlowIfNullOrEmpty(switch([companyName], [companyName], "Company A", "A", "Company B", "B")).
Původní příčina: Tento problém je specifický pro scénáře, ve kterých je ID Microsoft Entra zdrojovým systémem a příkaz switch obsahuje výchozí hodnotu.
Parametry:
Název | Povinné nebo opakující se | Typ | Notes |
---|---|---|---|
source | Požaduje se | String | Zdrojová hodnota, kterou chcete aktualizovat. |
defaultValue | Volitelné | String | Výchozí hodnota, která se má použít, když zdroj neodpovídá žádným klíčům. Může být prázdný řetězec (""). |
key | Požaduje se | String | Klíč pro porovnání zdrojové hodnoty s. |
value | Požaduje se | String | Hodnota nahrazení zdroje, který odpovídá klíči. |
Nahrazení hodnoty na základě předdefinované sady možností
Příklad: Definujte časové pásmo uživatele na základě stavového kódu uloženého v Microsoft Entra ID. Pokud kód státu neodpovídá žádné z předdefinovaných možností, použijte výchozí hodnotu Austrálie/Sydney.
Expression:Switch([state], "Australia/Sydney", "NSW", "Australia/Sydney","QLD", "Australia/Brisbane", "SA", "Australia/Adelaide")
Ukázkový vstup/výstup:
- INPUT (state): "QLD"
- VÝSTUP: "Austrálie/Brisbane"
ToLower
Funkce: ToLower(zdroj, jazyková verze)
Popis: Vezme hodnotu zdrojového řetězce a převede ji na malá písmena pomocí zadaných pravidel jazykové verze. Pokud nejsou zadané žádné informace o jazykové verzi , použije invariantní jazykovou verzi.
Pokud chcete nastavit existující hodnoty v cílovém systému na malá písmena, aktualizujte schéma cílové aplikace a nastavte vlastnost caseExact na true pro atribut, který vás zajímá.
Parametry:
Název | Povinné nebo opakující se | Typ | Notes |
---|---|---|---|
source | Požaduje se | String | Obvykle název atributu ze zdrojového objektu |
kultura | Volitelné | String | Formát názvu jazykové verze založené na dokumentu RFC 4646 je kód languagecode2-country/regioncode2, kde kód jazyka2 je dvoumísmenný kód jazyka a kód země/oblasti2 je dvoumísmenný subculture kód. Mezi příklady patří ja-JP pro japonštinu (Japonsko) a en-US pro angličtinu (USA). V případech, kdy není k dispozici dvoumísmenný kód jazyka, použije se třímísmenný kód odvozený od ISO 639-2. |
Převedení vygenerované hodnoty userPrincipalName (UPN) na malá písmena
Příklad: Chcete vygenerovat hodnotu hlavního názvu uživatele (UPN) zřetězením zdrojových polí PreferredFirstName a PreferredLastName a převodem všech znaků na malá písmena.
ToLower(Join("@", NormalizeDiacritics(StripSpaces(Join(".", [PreferredFirstName], [PreferredLastName]))), "contoso.com"))
Ukázkový vstup/výstup:
- INPUT (PreferredFirstName): "John"
- INPUT (PreferredLastName): "Smith"
- VÝSTUP: "john.smith@contoso.com"
ToUpper
Funkce: Toupper(zdroj, jazyková verze)
Popis: Vezme hodnotu zdrojového řetězce a převede ji na velká písmena pomocí zadaných pravidel jazykové verze. Pokud nejsou zadané žádné informace o jazykové verzi , použije invariantní jazykovou verzi.
Pokud chcete nastavit existující hodnoty v cílovém systému na velká písmena, aktualizujte schéma cílové aplikace a nastavte vlastnost caseExact na true pro atribut, který vás zajímá.
Parametry:
Název | Povinné nebo opakující se | Typ | Notes |
---|---|---|---|
source | Požaduje se | String | Obvykle název atributu ze zdrojového objektu. |
kultura | Volitelné | String | Formát názvu jazykové verze založené na dokumentu RFC 4646 je kód languagecode2-country/regioncode2, kde kód jazyka2 je dvoumísmenný kód jazyka a kód země/oblasti2 je dvoumísmenný subculture kód. Mezi příklady patří ja-JP pro japonštinu (Japonsko) a en-US pro angličtinu (USA). V případech, kdy není k dispozici dvoumísmenný kód jazyka, použije se třímísmenný kód odvozený od ISO 639-2. |
Word
Funkce: Word(String;WordNumber;Delimiters)
Popis: Funkce Wordu vrátí slovo obsažené v řetězci na základě parametrů popisujících oddělovače, které se mají použít, a čísla slova, která se mají vrátit. Každý řetězec znaků v řetězci oddělený jedním z znaků v oddělovači se identifikuje jako slova:
Pokud je číslo < 1, vrátí prázdný řetězec. Pokud je řetězec null, vrátí prázdný řetězec. Pokud řetězec obsahuje méně než číselná slova nebo řetězec neobsahuje žádná slova identifikovaná oddělovači, vrátí se prázdný řetězec.
Parametry:
Název | Povinné nebo opakující se | Typ | Notes |
---|---|---|---|
Řetězec | Požaduje se | Atribut s více hodnotami | Řetězec, ze které chcete vrátit slovo. |
WordNumber | Požaduje se | Celé číslo | Číslo určující, které číslo slova by se mělo vrátit |
oddělovače | Požaduje se | String | Řetězec představující oddělovače, které by se měly použít k identifikaci slov |
Příklad:Word("The quick brown fox",3," ")
Vrátí hodnotu "brown".
Word("This,string!has&many separators",3,",!&#")
Vrátí "has".
Příklady
Tato část obsahuje další příklady použití funkcí výrazů.
Odebrání známého názvu domény
Odebráním známého názvu domény z e-mailu uživatele získáte uživatelské jméno. Pokud je například doména "contoso.com", můžete použít následující výraz:
Expression:Replace([mail], "@contoso.com", , ,"", ,)
Ukázkový vstup /výstup:
- INPUT (pošta): "john.doe@contoso.com"
- VÝSTUP: "john.doe"
Generování uživatelského aliasu zřetězením částí křestního jména a příjmení
Vygenerujte uživatelský alias tak, že vezmete první tři písmena křestního jména uživatele a prvních pět písmen příjmení uživatele.
Expression:Append(Mid([givenName], 1, 3), Mid([surname], 1, 5))
Ukázkový vstup/výstup:
- INPUT (givenName): "John"
- INPUT (příjmení): "Doe"
- VÝSTUP: "JohDoe"
Přidejte čárku mezi příjmení a křestní jméno.
Přidejte čárku mezi příjmení a křestní jméno.
Expression:Join(", ", "", [surname], [givenName])
Ukázkový vstup/výstup:
- INPUT (givenName): "John"
- INPUT (příjmení): "Doe"
- VÝSTUP: "Doe, John"
Vygenerujte ID uživatele na základě ID objektu Microsoft Entra. Odeberte všechna písmena z ID a na začátku přidejte 1000.
Tento výraz umožňuje vygenerovat identifikátor uživatele, který začíná 1000 a pravděpodobně bude jedinečný.
Výraz: Join(""; 1000; Replace(ConvertToUTF8Hex([objectId]), ; "[a-zA-Z_]*", , "", ",, ))
Ukázkový vstup/výstup:
- VSTUP: "00aa00a-bb11-cc22-dd33-44ee4ee4e4e4ee"
- VÝSTUP: "100064303565343762312333930392343435612626135652636136306362633065346234"
Související články
- Automatizace zřizování a rušení zřizování uživatelů pro aplikace SaaS
- Přizpůsobení mapování atributů pro zřizování uživatelů
- Filtry oborů pro zřizování uživatelů
- Použití SCIM k povolení automatického zřizování uživatelů a skupin z Microsoft Entra ID do aplikací
- Oznámení o zřizování účtů
- Seznam kurzů o integraci aplikací SaaS