Sdílet prostřednictvím


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ů:

    1. Atributy, které musí být uzavřeny v hranatých závorkách. Příklad: [attributeName]
    2. Řetězcové konstanty, které musí být uzavřeny do dvojitých uvozovek. Příklad: "USA"
    3. 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")

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"