Dela via


Referens för att skriva uttryck för attributmappningar i Microsoft Entra-ID

När du konfigurerar etablering till ett SaaS-program är en av de typer av attributmappningar som du kan ange en uttrycksmappning. För dessa mappningar måste du skriva ett skriptliknande uttryck som gör att du kan omvandla användarnas data till format som är mer acceptabla för SaaS-programmet.

Syntaxöversikt

Syntaxen för Uttryck för attributmappningar påminner om VBA-funktioner (Visual Basic for Applications).

  • Hela uttrycket måste definieras i termer av funktioner, som består av ett namn följt av argument i parenteser: FunctionName(<<argument 1>>,<<argument N>>)

  • Du kan kapsla funktioner i varandra. Till exempel: FunctionOne(FunctionTwo(<<argument1>>))

  • Du kan skicka tre olika typer av argument till funktioner:

    1. Attribut som måste omges av hakparenteser. Till exempel: [attributeName]
    2. Strängkonstanter, som måste omges av dubbla citattecken. Till exempel: "USA"
    3. Andra funktioner. Till exempel: FunctionOne(<<argument1>>, FunctionTwo(<<argument2>>))
  • För strängkonstanter, om du behöver ett omvänt snedstreck ( \ ) eller citattecken ( " ) i strängen, måste det vara undantaget med omvänt snedstreck ( \ ) symbolen. Exempel: "Företagsnamn: \"Contoso\""

  • Syntaxen är skiftlägeskänslig, vilket måste beaktas när du skriver dem som strängar i en funktion jämfört med att kopiera klistra in dem direkt härifrån.

Lista över funktioner

Lägg till AppRoleAssignmentsComplexBitAndCBoolCDateCoalesceConvertToBase64ConvertToUTF8HexCountCStrDateAddDateDiffDateFromNumFormatDateTimeGuidIgnoreFlowIfNullOrEmptyIIFInStrIsNullIsNullOrEmptyIsPresentIsStringObjektkopplingvänstermittNormalizeDiacriticsIntenuNumFromDatePCaseRandomStringRedactRemoveDuplicatesReplaceSelectUniqueValueSingleAppRoleAssignmentSplitStripSpacesSwitchToLowerToUpper Word


Lägga till

Funktion: Append(källa, suffix)

Beskrivning: Tar ett källsträngsvärde och lägger till suffixet i slutet av det.

Parametrar:

Name Obligatoriskt/upprepande Type Anteckningar
källa Obligatoriskt String Vanligtvis namnet på attributet från källobjektet.
suffix Obligatoriskt String Strängen som du vill lägga till i slutet av källvärdet.

Lägga till konstant suffix i användarnamnet

Exempel: Om du använder en Salesforce Sandbox-miljö kan du behöva lägga till ytterligare ett suffix i alla dina användarnamn innan du synkroniserar dem.

Expression:Append([userPrincipalName], ".test")

Exempel på indata/utdata:

  • INPUT: (userPrincipalName): "John.Doe@contoso.com"
  • UTDATA: "John.Doe@contoso.com.test"

AppRoleAssignmentsComplex

Funktion: AppRoleAssignmentsComplex([appRoleAssignments])

Beskrivning: Används för att konfigurera flera roller för en användare. Detaljerad användning finns i Självstudie – Anpassa attributmappningar för användaretablering för SaaS-program i Microsoft Entra-ID.

Parametrar:

Name Obligatoriskt/upprepande Type Anteckningar
[appRoleAssignments] Obligatoriskt String [appRoleAssignments] objekt.

BitAnd

Funktion: BitAnd(value1, value2)

Beskrivning: Den här funktionen konverterar båda parametrarna till den binära representationen och anger lite till:

  • 0 – om en eller båda motsvarande bitar i värde1 och värde2 är 0
  • 1 – om båda motsvarande bitar är 1.

Med andra ord returnerar den 0 i alla fall utom när motsvarande bitar av båda parametrarna är 1.

Parametrar:

Name Obligatoriskt/upprepande Type Anteckningar
value1 Obligatoriskt Num Numeriskt värde som ska vara AND'ed med värde2
value2 Obligatoriskt Num Numeriskt värde som ska vara AND'ed med värde1

Exempel:BitAnd(&HF, &HF7)

11110111 AND 00000111 = 00000111 returnerar därför BitAnd 7, det binära värdet för 00000111.


CBool

Funktion:CBool(Expression)

Beskrivning:CBool returnerar ett booleskt värde baserat på det utvärderade uttrycket. Om uttrycket utvärderas till ett värde som inte är noll returnerar det Sant, annars returneras False.CBool

Parametrar:

Name Obligatoriskt/upprepande Type Anteckningar
Expression Obligatoriskt uttryck Valfritt giltigt uttryck

Exempel:CBool([attribute1] = [attribute2])
Returnerar True om båda attributen har samma värde.


CDate

Funktion:
CDate(expression)

Beskrivning:
Funktionen CDate returnerar en UTC DateTime från en sträng. DateTime är inte en inbyggd attributtyp, men den kan användas i datumfunktioner som FormatDateTime och DateAdd.

Parametrar:

Name Obligatoriskt/upprepande Type Anteckningar
Expression Obligatoriskt Uttryck Alla giltiga strängar som representerar ett datum/en tid. Information om format som stöds finns i .NET-anpassade datum- och tidsformatsträngar.

Kommentarer:
Den returnerade strängen är alltid i UTC och följer formatet M/d/åååå h:mm:ss tt.

Exempel 1:
CDate([StatusHireDate])
Exempel på indata/utdata:

  • INPUT (StatusHireDate): "2020-03-16-07:00"
  • UTDATA: "2020-03-16 07:00:00" <– Observera att UTC-motsvarigheten till ovanstående DateTime returneras

Exempel 2:
CDate("2021-06-30+08:00")
Exempel på indata/utdata:

  • INPUT: "2021-06-30+08:00"
  • UTDATA: "2021-06-29 16:00:00" <– Observera att UTC-motsvarigheten till ovanstående DateTime returneras

Exempel 3:
CDate("2009-06-15T01:45:30-07:00")
Exempel på indata/utdata:

  • INPUT: "2009-06-15T01:45:30-07:00"
  • UTDATA: "2009-06-15 8:45:30" <– Observera att UTC-motsvarigheten till ovanstående DateTime returneras

Coalesce

Funktion: Coalesce(source1, source2, ..., defaultValue)

Beskrivning: Returnerar det första källvärdet som inte är NULL. Om alla argument är NULL och defaultValue finns returneras defaultValue. Om alla argument är NULL och defaultValue inte finns returnerar Coalesce NULL.

Parametrar:

Name Obligatoriskt/upprepande Type Anteckningar
source1 ... sourceN Obligatoriskt String Obligatoriskt, variabelt antal gånger. Vanligtvis namnet på attributet från källobjektet.
defaultValue Valfritt String Standardvärde som ska användas när alla källvärden är NULL. Kan vara en tom sträng ("").

Flödespostvärde om inte NULL, annars flödesanvändarePrincipalName

Exempel: Du vill flöda e-postattributet om det finns. Om det inte är det vill du flöda värdet för userPrincipalName i stället.

Expression:Coalesce([mail],[userPrincipalName])

Exempel på indata/utdata:

  • INDATA (e-post): NULL
  • INPUT (userPrincipalName): "John.Doe@contoso.com"
  • UTDATA: "John.Doe@contoso.com"

ConvertToBase64

Funktion: ConvertToBase64(källa)

Beskrivning: Funktionen ConvertToBase64 konverterar en sträng till en Unicode base64-sträng.

Parametrar:

Name Obligatoriskt/upprepande Type Anteckningar
källa Obligatoriskt String Sträng som ska konverteras till bas 64

Exempel:ConvertToBase64("Hello world!")

Returnerar "SABlAGwAbABvACAAdwBvAHIAbABkACEA"


ConvertToUTF8Hex

Funktion: ConvertToUTF8Hex(källa)

Beskrivning: Funktionen ConvertToUTF8Hex konverterar en sträng till ett UTF8 Hex-kodat värde.

Parametrar:

Name Obligatoriskt/upprepande Type Anteckningar
källa Obligatoriskt String Sträng som ska konverteras till UTF8 Hex

Exempel:ConvertToUTF8Hex("Hello world!")

Returnerar 48656C6C6F20776F726C6421


Antal

Funktion: Count(attribute)

Beskrivning: Funktionen Count returnerar antalet element i ett flervärdesattribut.

Parametrar:

Name Obligatoriskt/upprepande Type Anteckningar
attribut Obligatoriskt attribute Flervärdesattribut som har element räknade

CStr

Funktion: CStr(value)

Beskrivning: Funktionen CStr konverterar ett värde till en strängdatatyp.

Parametrar:

Name Obligatoriskt/upprepande Type Anteckningar
värde Obligatoriskt numeriskt, referens eller booleskt värde Kan vara ett numeriskt värde, ett referensattribut eller ett booleskt värde.

Exempel:CStr([dn])

Returnerar "cn=Joe,dc=contoso,dc=com"


DateAdd

Funktion:
DateAdd(interval, value, dateTime)

Beskrivning:
Returnerar en datum-/tidssträng som representerar ett datum som ett angivet tidsintervall läggs till i. Det returnerade datumet är i formatet: M/d/åååå h:mm:ss tt.

Parametrar:

Name Obligatoriskt/upprepande Type Anteckningar
interval Obligatoriskt String Tidsintervall som du vill lägga till. Se godkända värden efter den här tabellen.
värde Obligatoriskt Antal Antalet enheter som du vill lägga till. Det kan vara positivt (för att hämta datum i framtiden) eller negativt (för att hämta datum tidigare).
dateTime Obligatoriskt Datum/tid DateTime representerar det datum då intervallet läggs till.

När du skickar en datumsträng som indata använder du funktionen CDate för att omsluta datetime-strängen. Om du vill få systemtid i UTC använder du funktionen Nu .

Intervallsträngen måste ha något av följande värden:

  • yyyy år
  • m Månad
  • d Dag
  • ww Week
  • h Timme
  • n Minut
  • s Second

Exempel 1: Generera ett datumvärde baserat på inkommande StatusHireDate från Workday
DateAdd("d", 7, CDate([StatusHireDate]))

Exempel interval värde dateTime (värdet för variabeln StatusHireDate) utdata
Lägg till 7 dagar till anställningsdatum "d" 7 2012-03-16-07:00 2012-03-23 07:00:00
Hämta ett datum tio dagar före anställningsdatumet "d" -10 2012-03-16-07:00 2012-03-06 07:00:00
Lägg till två veckor till anställningsdatum "ww" 2 2012-03-16-07:00 2012-03-30 07:00:00
Lägg till tio månader till anställningsdatum "m" 10 2012-03-16-07:00 1/16/2013 07:00:00
Lägg till två år till anställningsdatum "yyyyy" 2 2012-03-16-07:00 2014-03-16 07:00:00

DateDiff

Funktion:
DateDiff(interval, date1, date2)

Beskrivning:
Den här funktionen använder intervallparametern för att returnera ett tal som anger skillnaden mellan de två indatadatumen. Den returnerar

  • ett positivt tal om date2 > date1,
  • ett negativt tal om date2 < date1,
  • 0 om date2 == date1

Parametrar:

Name Obligatoriskt/valfritt Type Anteckningar
interval Obligatoriskt String Tidsintervall för beräkning av skillnaden.
datum 1 Obligatoriskt Datum/tid DateTime representerar ett giltigt datum.
datum 2 Obligatoriskt Datum/tid DateTime representerar ett giltigt datum.

När du skickar en datumsträng som indata använder du funktionen CDate för att omsluta datetime-strängen. Om du vill få systemtid i UTC använder du funktionen Nu .

Intervallsträngen måste ha något av följande värden:

  • yyyy år
  • m Månad
  • d Dag
  • ww Week
  • h Timme
  • n Minut
  • s Second

Exempel 1: Jämför aktuellt datum med anställningsdatum från Workday med olika intervall
DateDiff("d", Now(), CDate([StatusHireDate]))

Exempel interval date1 date2 utdata
Positiv skillnad i dagar mellan två datum d 2021-08-18+08:00 2021-08-31+08:00 13
Negativ skillnad i dagar mellan två datum d 2021-08-25 17:41:18 2012-03-16-07:00 -3449
Skillnad i veckor mellan två datum ww 2021-08-25 17:41:18 2012-03-16-07:00 -493
Skillnad i månader mellan två datum m 2021-08-25 17:41:18 2012-03-16-07:00 -113
Skillnad i år mellan två datum yyyy 2021-08-25 17:41:18 2012-03-16-07:00 -9
Skillnad när båda datumen är samma d 2021-08-31+08:00 2021-08-31+08:00 0
Skillnad i timmar mellan två datum h 2021-08-24 2021-08-25 24
Skillnad i minuter mellan två datum n 2021-08-24 2021-08-25 1440
Skillnad i sekunder mellan två datum s 2021-08-24 2021-08-25 86400

Exempel 2: Kombinera DateDiff med IIF-funktionen för att ange attributvärde
Om ett konto är Aktivt i Workday anger du attributet accountEnabled för användaren till Sant endast om anställningsdatumet är inom de närmaste fem dagarna.

Switch([Active], , 
  "1", IIF(DateDiff("d", Now(), CDate([StatusHireDate])) > 5, "False", "True"), 
  "0", "False")

DateFromNum

Funktion: DateFromNum(value)

Beskrivning: Funktionen DateFromNum konverterar ett värde i AD:s datumformat till en DateTime-typ.

Parametrar:

Name Obligatoriskt/upprepande Type Anteckningar
värde Obligatoriskt Datum AD-datum som ska konverteras till DateTime-typ

Exempel:DateFromNum([lastLogonTimestamp])

DateFromNum(129699324000000000)

Returnerar en DateTime som representerar 1 januari 2012 kl. 23:00.


FormatDateTime

Funktion: FormatDateTime(källa, dateTimeStyles, inputFormat, outputFormat)

Beskrivning: Tar en datumsträng från ett format och konverterar den till ett annat format.

Parametrar:

Name Obligatoriskt/upprepande Type Anteckningar
källa Obligatoriskt String Vanligtvis namnet på attributet från källobjektet.
dateTimeStyles Valfritt String Använd den här parametern för att ange formateringsalternativ som anpassar strängparsning för vissa metoder för datum- och tidsparsning. Värden som stöds finns i Dokumentet DateTimeStyles. Om det lämnas tomt är standardvärdet DateTimeStyles.RoundtripKind, DateTimeStyles.AllowLeadingWhite, DateTimeStyles.AllowTrailingWhite
inputFormat Obligatoriskt String Förväntat format för källvärdet. För format som stöds, se .NET anpassade datum- och tidsformatsträngar.
outputFormat Obligatoriskt String Format för utdatadatumet.

Utdatadatum som en sträng i ett visst format

Exempel: Du vill skicka datum till ett SaaS-program som ServiceNow i ett visst format. Du kan överväga att använda följande uttryck.

Expression:

FormatDateTime([extensionAttribute1], , "yyyyMMddHHmmss.fZ", "yyyy-MM-dd")

Exempel på indata/utdata:

  • INPUT (extensionAttribute1): "20150123105347.1Z"
  • UTDATA: "2015-01-23"

GUID

Funktion: Guid()

Beskrivning: Funktionen Guid genererar ett nytt slumpmässigt GUID

Exempel:
Guid()
Exempelutdata: "00aa00aa-bb11-cc22-dd33-44ee44ee44ee"


IgnoreFlowIfNullOrEmpty

Funktion: IgnoreFlowIfNullOrEmpty(expression)

Beskrivning: Funktionen IgnoreFlowIfNullOrEmpty instruerar etableringstjänsten att ignorera attributet och släppa det från flödet om den inneslutna funktionen eller attributet är NULL eller tomt.

Parametrar:

Name Obligatoriskt/upprepande Type Anteckningar
Expression Obligatoriskt Uttryck Uttryck som ska utvärderas

Exempel 1: Flöda inte ett attribut om det är null
IgnoreFlowIfNullOrEmpty([department])
Uttrycket ovan tar bort avdelningsattributet från etableringsflödet om det är null eller tomt.

Exempel 2: Skicka inte ett attribut om uttrycksmappningen utvärderas till tom sträng eller null
Anta att attributet SuccessFactors-prefixet mappas till lokal Active Directory attributet personalTitle med hjälp av följande uttrycksmappning:
IgnoreFlowIfNullOrEmpty(Switch([prefix], "", "3443", "Dr.", "3444", "Prof.", "3445", "Prof. Dr."))
Uttrycket ovan utvärderar först funktionen Switch . Om prefixattributet inte har något av värdena i switchfunktionen returnerar ** en tom sträng och attributet personalTitle ingår inte i etableringsflödet till lokal Active Directory.


IIF

Funktion: IIF(condition,valueIfTrue,valueIfFalse)

Beskrivning: IIF-funktionen returnerar ett av en uppsättning möjliga värden baserat på ett angivet villkor.

Parametrar:

Name Obligatoriskt/upprepande Type Anteckningar
tillstånd Obligatoriskt Variabel eller uttryck Valfritt värde eller uttryck som kan utvärderas till sant eller falskt.
valueIfTrue Obligatoriskt Variabel eller sträng Om villkoret utvärderas till sant returneras värdet.
valueIfFalse Obligatoriskt Variabel eller sträng Om villkoret utvärderas till falskt returneras värdet.

Följande jämförelseoperatorer kan användas i villkoret:

  • Lika med (=) och inte lika med (<>)
  • Större än (>) och större än lika med (>=)
  • Mindre än (<) och mindre än lika med (<=)

Exempel: Ange värdet för målattributet till källlandets attribut om country="USA", annars anger du målattributvärdet till källavdelningsattributet. IIF([country]="USA",[country],[department])

Kända begränsningar

Det här avsnittet innehåller begränsningar och lösningar för IIF-funktionen. Information om hur du felsöker problem med att skapa användare finns i Skapande misslyckas på grund av null-/tomma värden.

  • IIF-funktionen stöder för närvarande inte logiska operatorer för AND och OR.
  • Om du vill implementera AND-logik använder du kapslad IIF-instruktion som är länkad längs trueValue-sökvägen . Exempel: Om country="USA" och state="CA", returnerar värdet "True" returnerar annars "False". IIF([country]="USA",IIF([state]="CA","True","False"),"False")
  • Om du vill implementera OR-logik använder du kapslad IIF-instruktion som är länkad längs falseValue-sökvägen . Exempel: Om country="USA" eller state="CA", returnerar värdet "True" returnerar annars "False". IIF([country]="USA","True",IIF([state]="CA","True","False"))
  • Om källattributet som används i IIF-funktionen är tomt eller null misslyckas villkorskontrollen.
    • Exempel på IIF-uttryck som inte stöds:
      • IIF([country]="","Other",[country])
      • IIF(IsNullOrEmpty([country]),"Other",[country])
      • IIF(IsPresent([country]),[country],"Other")
    • Rekommenderad lösning: Använd funktionen Växla för att söka efter tomma/null-värden. Exempel: Om landsattributet är tomt anger du värdet "Övrigt". Om den finns skickar du värdet för landsattributet till målattributet.
      • Switch([country],[country],"","Other")

Instr

Funktion: InStr(value1, value2, start, compareType)

Beskrivning: Funktionen InStr hittar den första förekomsten av en delsträng i en sträng.

Parametrar:

Name Obligatoriskt/upprepande Type Anteckningar
value1 Obligatoriskt String Sträng som ska genomsökas
value2 Obligatoriskt String Sträng som ska hittas
start Valfritt Integer Startposition för att hitta delsträngen
compareType Valfritt Enum Kan vara vbTextCompare eller vbBinaryCompare

Exempel:InStr("The quick brown fox","quick")

Utvärderar till 5

InStr("repEated","e",3,vbBinaryCompare)

Utvärderar till 7


IsNull

Funktion: IsNull(expression)

Beskrivning: Om uttrycket utvärderas till Null returnerar funktionen IsNull sant. För ett attribut uttrycks en Null genom att attributet inte finns.

Parametrar:

Name Obligatoriskt/upprepande Type Anteckningar
Expression Obligatoriskt Uttryck Uttryck som ska utvärderas

Exempel:IsNull([displayName])

Returnerar Sant om attributet inte finns.


IsNullorEmpty

Funktion: IsNullOrEmpty(Expression)

Beskrivning: Om uttrycket är null eller en tom sträng returnerar funktionen IsNullOrEmpty sant. Detta utvärderas till Sant om attributet saknas eller finns men är en tom sträng. Inversen för den här funktionen heter IsPresent.

Parametrar:

Name Obligatoriskt/upprepande Type Anteckningar
Expression Obligatoriskt Uttryck Uttryck som ska utvärderas

Exempel:IsNullOrEmpty([displayName])

Returnerar Sant om attributet inte finns eller är en tom sträng.


IsPresent

Funktion: IsPresent(Expression)

Beskrivning: Om uttrycket utvärderas till en sträng som inte är Null och inte är tom, returnerar funktionen IsPresent sant. Inversen för den här funktionen heter IsNullOrEmpty.

Parametrar:

Name Obligatoriskt/upprepande Type Anteckningar
Expression Obligatoriskt Uttryck Uttryck som ska utvärderas

Exempel:Switch(IsPresent([directManager]),[directManager], IsPresent([skiplevelManager]),[skiplevelManager], IsPresent([director]),[director])


IsString

Funktion: IsString(Expression)

Beskrivning: Om uttrycket kan utvärderas till en strängtyp utvärderas funktionen IsString till True.

Parametrar:

Name Obligatoriskt/upprepande Type Anteckningar
Expression Obligatoriskt Uttryck Uttryck som ska utvärderas

Artikel

Funktion: Item(attribute, index)

Beskrivning: Funktionen Objekt returnerar ett objekt från en sträng/ett attribut med flera värden.

Parametrar:

Name Obligatoriskt/upprepande Type Anteckningar
attribut Obligatoriskt Attribut Flervärdesattribut som ska sökas igenom
index Obligatoriskt Integer Index till ett objekt i strängen med flera värden

Exempel:Item([proxyAddresses], 1) returnerar det första objektet i attributet med flera värden. Index 0 bör inte användas.


Anslut

Funktion: Join(separator, source1, source2, ...)

Beskrivning: Join() liknar Append(), förutom att den kan kombinera flera källsträngsvärden i en enda sträng, och varje värde avgränsas med en avgränsarsträng .

Om ett av källvärdena är ett attribut med flera värden kopplas varje värde i attributet samman, avgränsat med avgränsarvärdet.

Parametrar:

Name Obligatoriskt/upprepande Type Anteckningar
separator Obligatoriskt String Sträng som används för att separera källvärden när de sammanfogas till en sträng. Kan vara "" om ingen avgränsare krävs.
source1 ... sourceN Obligatoriskt, variabelt antal gånger String Strängvärden som ska kopplas samman.

Vänster

Funktion: Left(String, NumChars)

Beskrivning: Funktionen Vänster returnerar ett angivet antal tecken från vänster om en sträng. Om numChars = 0 returnerar du en tom sträng. Om numChars < 0 returnerar du indatasträngen. Om strängen är null returnerar du en tom sträng. Om strängen innehåller färre tecken än det tal som anges i numChars returneras en sträng som är identisk med strängen (dvs. innehåller alla tecken i parameter 1).

Parametrar:

Name Obligatoriskt/upprepande Type Anteckningar
Sträng Obligatoriskt Attribut Strängen som ska returneras från
NumChars Obligatoriskt Integer Ett tal som identifierar antalet tecken som ska returneras från början (till vänster) av strängen

Exempel:Left("John Doe", 3)

Returnerar "Joh".


Medel

Funktion: Mid(source, start, length)

Beskrivning: Returnerar en delsträng av källvärdet. En delsträng är en sträng som bara innehåller några av tecknen från källsträngen.

Parametrar:

Name Obligatoriskt/upprepande Type Anteckningar
källa Obligatoriskt String Vanligtvis namnet på attributet.
start Obligatoriskt Integer Indexera i källsträngen där delsträngen ska starta. Det första tecknet i strängen har ett index på 1, det andra tecknet har index 2 och så vidare.
length Obligatoriskt Integer Längden på delsträngen. Om längden slutar utanför källsträngen returnerar funktionen delsträng från startindex till slutet av källsträngen.

NormalizeDiacritics

Funktion: NormalizeDiacritics(source)

Beskrivning: Kräver ett strängargument. Returnerar strängen, men med alla diakritiska tecken ersatta med motsvarande icke-diakritiska tecken. Används vanligtvis för att konvertera förnamn och efternamn som innehåller diakritiska tecken (accenttecken) till juridiska värden som kan användas i olika användaridentifierare, till exempel användarnamn, SAM-kontonamn och e-postadresser.

Parametrar:

Name Obligatoriskt/upprepande Type Anteckningar
källa Obligatoriskt String Vanligtvis ett förnamn eller efternamnsattribut.
Tecken med diakritisk Normaliserat tecken Tecken med diakritisk Normaliserat tecken
ä, à, â, ã, å, á, ą, ă, ā, ā́, ā̀, ā̂, ā̃, ǟ, ā̈, ǡ, a̱, å̄ f Ä, À, Â, Ã, Å, Á, Ą, Ă, Ā, Ā', Ā̀, Ā̂, Ā̃, Ǟ, Ā̈, Ǡ, A̱, Å̄ A
æ, ǣ Æ Æ, Ǣ AE
ç, č, ć, c̄, c̱ c Ç, Č, Ć, C̄, C̱ C
ď, d̄, ḏ d Ď, D̄, Ḏ D
ë, è, é, ê, ę, ě, ė, ē, ḗ, ḕ, ē̂, ē̃, ê̄, e̱, ë̄, e̊̄ e Ë, È, É, Ê, Ę, Ě, Ė, Ē, Ḗ, Ḕ, Ē̂, Ē̃, Ê̄, E̱, Ë̄, E̊̄ E
ğ, ḡ, g̱ G Ğ, Ḡ, G̱ G
ï, î, ì, í, ı, ī, ī', ī̀, ī̂, ī̃, i̱ i Ï, Î, Ì, Í, İ, Ī, Ī', Ī̀, Ī̂, Ī̃, I̱ I
ľ, ł, l̄, ḹ, ḻ l Ł, Ľ, L̄, Ḹ, Ḻ L
ñ, ń, ň, n̄, ṉ n Ñ, Ń, Ň, N̄, Ṉ N
ö, ò, ő, õ, ô, ó, ō, ṓ, ṑ, ō̂, ō̃, ȫ, ō̈, ǭ, ȭ, ȱ, o̱ o Ö, Ò, Ő, Õ, Ô, Ó, Ō, Ṓ, Ṑ, Ō̂, Ō̃, Ȫ, Ō̈, Ǭ, Ȭ, Ȱ, O̱ O
ø, ø̄, œ̄ Œ Ø, Ø̄, Œ̄ Œ
ř, r̄, ṟ, ṝ r Ř, R̄, Ṟ, Ṝ R
ß ss
š, ś, ș, ş, s̄, s̱ s Š, Ś, Ș, Ş, S̄, S̱ S
ť, ț, t̄, ṯ d Ť, Ț, T̄, Ṯ T
ü, ū, û, ú, ů, ű, ū, ū́, ū̀, ū̂, ū̃, u̇̄, ǖ, ṻ, ṳ̄, u̱ u Ü, Ū, Û, Ú, Ů, Ű, Ū, Ū' , Ū̀, Ū̂, Ū̃, U̇̄, Ǖ, Ṻ, Ṳ̄, U̱ U
ÿ, ý, ȳ, ȳ', ȳ̀, ȳ̃, y̱ y Ÿ, Ý, Ȳ, Ȳ', Ȳ̀, Ȳ̃, Y̱ Y
ź, ž, ż, z̄, ẕ z Ź, Ž, Ż, Z̄, Ẕ Z

Ta bort diakritiska tecken från en sträng

Exempel: Ersätt tecken som innehåller accenttecken med motsvarande tecken som inte innehåller dekorstreck.

Uttryck: NormalizeDiacritics([givenName])

Exempel på indata/utdata:

  • INPUT (givenName): "Zoë"
  • UTDATA: "Zoe"

Not

Funktion: Not(source)

Beskrivning: Vänder källans booleska värde. Om källvärdet är Sant returnerar false. Annars returneras True.

Parametrar:

Name Obligatoriskt/upprepande Type Anteckningar
källa Obligatoriskt Boolesk sträng Förväntade källvärden är "True" eller "False".

Nu

Funktion: Now()

Beskrivning:
Funktionen Now returnerar en sträng som representerar aktuell UTC DateTime i formatet M/d/åååå h:mm:ss tt.

Exempel:Now()
Exempelvärdet returnerades 2021-07-2021 15:33:38


NumFromDate

Funktion: NumFromDate(värde)

Beskrivning: Funktionen NumFromDate konverterar ett DateTime-värde till Active Directory-format som krävs för att ange attribut som accountExpires. Använd den här funktionen för att konvertera DateTime-värden som tas emot från HR-molnappar som Workday och SuccessFactors till motsvarande AD-representation.

Parametrar:

Name Obligatoriskt/upprepande Type Anteckningar
värde Obligatoriskt String Datumtidssträng i ISO 8601-format . Om datumvariabeln har ett annat format använder du funktionen FormatDateTime för att konvertera datumet till ISO 8601-format.

Exempel:

  • Workday-exempel: Förutsatt att du vill mappa attributet ContractEndDate från Workday, som är i formatet 2020-12-31-08:00 till fältet accountExpires i AD, kan du använda den här funktionen och ändra tidszonsförskjutningen så att den matchar ditt språk. NumFromDate(Join("", FormatDateTime([ContractEndDate], ,"yyyy-MM-ddzzz", "yyyy-MM-dd"), " 23:59:59-08:00"))

  • SuccessFactors-exempel: Förutsatt att du vill mappa attributet endDate från SuccessFactors, som är i formatet M/d/åååå hh:mm:ss tt till fältet accountExpires i AD, så här kan du använda den här funktionen och ändra tidszonsförskjutningen så att den matchar ditt nationella inställningar. NumFromDate(Join("",FormatDateTime([endDate], ,"M/d/yyyy hh:mm:ss tt","yyyy-MM-dd")," 23:59:59-08:00"))


PCase

Funktion: PCase(source, wordSeparators)

Beskrivning: Funktionen PCase konverterar det första tecknet för varje ord i en sträng till versaler och alla andra tecken konverteras till gemener.

Parametrar:

Name Obligatoriskt/valfritt Type Anteckningar
källa Obligatoriskt String källvärde för att konvertera till rätt skiftläge.
wordSeparators Valfritt String Ange en uppsättning tecken som används som ordavgränsare (exempel: ",-")

Kommentarer:

  • Om parametern wordSeparators inte har angetts anropar PCase internt .NET-funktionen ToTitleCase för att konvertera källsträngen till rätt skiftläge. .NET-funktionen ToTitleCase stöder en omfattande uppsättning Unicode-teckenkategorier som ordavgränsare.
    • Blanksteg
    • Nytt linjetecken
    • Kontrolltecken som CRLF
    • Formatera kontrolltecken
    • ConnectorPunctuation-tecken som understreck
    • DashPunctuation-tecken som bindestreck och bindestreck (inklusive tecken som En Dash, Em Dash, dubbelt bindestreck och så vidare)
    • OpenPunctuation - och ClosePunctuation-tecken som förekommer i par som parenteser, klammerparentes, vinkelparentes och så vidare.
    • InitialQuotePunctuation - och FinalQuotePunctuation-tecken som enkla citattecken, dubbla citattecken och angular-citattecken.
    • OtherPunctuation-tecken som utropstecken, taltecken, procenttecken, ampersand, asterisk, kommatecken, fullständigt stopp, kolon, semikolon och så vidare.
    • MathSymbol-tecken som plustecken, mindre än och större än tecken, lodrät linje, tilde, likhetstecken och så vidare.
    • CurrencySymbol-tecken som dollartecken, centtecken, pundtecken, eurotecken och så vidare.
    • ModifierSymbol-tecken som macron, accenter, pilhuvuden och så vidare.
    • OtherSymbol-tecken som copyrighttecken, examenstecken, registrerat tecken och så vidare.
  • Om parametern wordSeparators anges använder PCase endast de tecken som anges som ordavgränsare.

Exempel:

Anta att du hämtar attributen firstName och lastName från SAP SuccessFactors och i HR är båda dessa attribut i versaler. Med hjälp av funktionen PCase kan du konvertera namnet till rätt skiftläge enligt nedan.

Uttryck Indata Utdata Kommentar
PCase([firstName]) firstName = "PABLO GONSALVES (SECOND)" "Pablo Gonsalves (second)" Eftersom parametern wordSeparators inte har angetts använder funktionen PCase standardteckenuppsättningen ordavgränsare.
PCase([lastName]," '-") lastName = "PINTO-DE'SILVA" "Pinto-De'Silva" Funktionen PCase använder tecken i parametern wordSeparators för att identifiera ord och transformera dem till rätt skiftläge.
PCase(Join(" ",[firstName],[lastName])) firstName = GREGORY, lastName = "JAMES" "Gregory James" Du kan kapsla funktionen Join i PCase. Eftersom parametern wordSeparators inte har angetts använder funktionen PCase standardteckenuppsättningen ordavgränsare.

RandomString

Funktion: RandomString(Length, MinimumNumbers, MinimumSpecialCharacters, MinimumCapital, MinimumLowerCase, CharactersToAvoid)

Beskrivning: Funktionen RandomString genererar en slumpmässig sträng baserat på de angivna villkoren. Tecken som tillåts kan identifieras här.

Parametrar:

Name Obligatoriskt/upprepande Type Anteckningar
Längd Obligatoriskt Antal Total längd på den slumpmässiga strängen. Detta bör vara större än eller lika med summan av MinimumNumbers, MinimumSpecialCharacters och MinimumCapital. Max 256 tecken.
MinimumNumbers Obligatoriskt Antal Minsta tal i den slumpmässiga strängen.
MinimumSpecialCharacters Obligatoriskt Antal Minsta antal specialtecken.
MinimumCapital Obligatoriskt Antal Minsta antal versaler i den slumpmässiga strängen.
MinimumLowerCase Obligatoriskt Antal Minsta antal gemener i den slumpmässiga strängen.
TeckenToAvoid Valfritt String Tecken som ska undantas när den slumpmässiga strängen genereras.

Exempel 1: – Generera en slumpmässig sträng utan särskilda teckenbegränsningar: RandomString(6,3,0,0,3) Genererar en slumpmässig sträng med 6 tecken. Strängen innehåller 3 siffror och 3 gemener (1a73qt).

Exempel 2: – Generera en slumpmässig sträng med särskilda teckenbegränsningar: RandomString(10,2,2,2,1,"?,") Genererar en slumpmässig sträng med 10 tecken. Strängen innehåller minst 2 siffror, 2 specialtecken, 2 versaler, 1 gemener och exkluderar tecknen "?" och "," (1@!2BaRg53).


Redigera

Funktion: Redact()

Beskrivning: Funktionen Redact ersätter attributvärdet med strängliteralen "[Redact]" i etableringsloggarna.

Parametrar:

Name Obligatoriskt/upprepande Type Anteckningar
attribut/värde Obligatoriskt String Ange attributet eller konstanten/strängen som ska redigeras från loggarna.

Exempel 1: Redigera ett attribut: Redact([userPrincipalName]) Tar bort userPrincipalName från etableringsloggarna.

Exempel 2: Redigera en sträng: Redact("StringToBeRedacted") Tar bort en konstant sträng från etableringsloggarna.

Exempel 3: Redigera en slumpmässig sträng: Redact(RandomString(6,3,0,0,3)) Tar bort den slumpmässiga strängen från etableringsloggarna.


RemoveDuplicates

Funktion: RemoveDuplicates(attribute)

Beskrivning: Funktionen RemoveDuplicates tar en sträng med flera värden och kontrollerar att varje värde är unikt.

Parametrar:

Name Obligatoriskt/upprepande Type Anteckningar
attribut Obligatoriskt Flervärdesattribut Flervärdesattribut som har dubbletter borttagna

Exempel:RemoveDuplicates([proxyAddresses]) Returnerar ett sanerat proxyAddress-attribut där alla duplicerade värden tas bort.


Replace

Funktion: Replace(source, oldValue, regexPattern, regexGroupName, replacementValue, replacementAttributeName, template)

Beskrivning: Ersätter värden i en sträng på ett skiftlägeskänsligt sätt. Funktionen fungerar annorlunda beroende på de parametrar som anges:

  • När oldValue och replacementValue tillhandahålls:

    • Ersätter alla förekomster av oldValue i källan med replacementValue
  • När oldValue och mall tillhandahålls:

    • Ersätter alla förekomster av oldValue i mallen med källvärdet
  • När regexPattern och replacementValue tillhandahålls:

    • Funktionen tillämpar regexPattern på källsträngen och du kan använda regex-gruppnamnen för att konstruera strängen för replacementValue

Kommentar

Mer information om regex-grupperingskonstruktioner och namngivna underuttryck finns i Gruppera konstruktioner i reguljära uttryck.

  • När regexPattern, regexGroupName, replacementValue tillhandahålls:

    • Funktionen tillämpar regexPattern på källsträngen och ersätter alla värden som matchar regexGroupName med replacementValue
  • När regexPattern, regexGroupName, replacementAttributeName tillhandahålls:

    • Om källan har ett värde returneras källan
    • Om källan inte har något värde tillämpar funktionen regexPatternreplacementAttributeName och returnerar värdet som matchar regexGroupName

Parametrar:

Name Obligatoriskt/upprepande Type Anteckningar
källa Obligatoriskt String Vanligtvis namnet på attributet från källobjektet .
oldValue Valfritt String Värde som ska ersättas i källa eller mall.
regexPattern Valfritt String Regex-mönster för det värde som ska ersättas i källan. När replacementAttributeName används används regexPattern för att extrahera ett värde från replacementAttributeName.
regexGroupName Valfritt String Namnet på gruppen i regexPattern. När namngivna replacementAttributeName används extraherar vi värdet för den namngivna regex-gruppen från replacementAttributeName och returnerar det som ersättningsvärde.
replacementValue Valfritt String Nytt värde att ersätta gamla med.
replacementAttributeName Valfritt String Namnet på attributet som ska användas för ersättningsvärde
mall Valfritt String När mallvärdet anges letar vi efter oldValue i mallen och ersätter det med källvärdet .

Ersätt tecken med ett reguljärt uttryck

Exempel 1: Använd oldValue och replacementValue för att ersätta hela källsträngen med en annan sträng.

Anta att HR-systemet har ett attribut BusinessTitle. När en del av de senaste ändringarna av jobbtiteln ändras vill företaget uppdatera alla med företagstiteln "Product Developer" till "Software Engineer". I det här fallet kan du sedan använda följande uttryck i attributmappningen.

Replace([BusinessTitle],"Product Developer", , , "Software Engineer", , )

  • källa: [BusinessTitle]
  • oldValue: "Produktutvecklare"
  • replacementValue: "Software Engineer"
  • Uttrycksutdata: Programvarutekniker

Exempel 2: Använda oldValue och mall för att infoga källsträngen i en annan templaterad sträng.

Parametern oldValue är en felbeteckning i det här scenariot. Det är faktiskt värdet som ersätts.
Anta att du alltid vill generera inloggnings-ID i formatet <username>@contoso.com. Det finns ett källattribut som heter UserID och du vill att det värdet ska användas för <username> den del av inloggnings-ID:t. I det här fallet kan du sedan använda följande uttryck i attributmappningen.

Replace([UserID],"<username>", , , , , "<username>@contoso.com")

  • källa: [UserID] = "jsmith"
  • oldValue: "<username>"
  • mall: "<username>@contoso.com"
  • Uttrycksutdata: "jsmith@contoso.com"

Exempel 3: Använda regexPattern och replacementValue för att extrahera en del av källsträngen och ersätta den med en tom sträng eller ett anpassat värde som skapats med regexmönster eller regex-gruppnamn.

Anta att du har ett källattribut telephoneNumber som har komponenter country code och phone number avgränsas med ett blankstegstecken. I det här fallet kan du till exempel +91 9998887777 använda följande uttryck i attributmappningen för att extrahera det tiosiffriga telefonnumret.

Replace([telephoneNumber], , "\\+(?<isdCode>\\d* )(?<phoneNumber>\\d{10})", , "${phoneNumber}", , )

  • källa: [telephoneNumber] = "+91 9998887777"
  • regexPattern: "\\+(?<isdCode>\\d* )(?<phoneNumber>\\d{10})"
  • replacementValue: "${phoneNumber}"
  • Uttrycksutdata: 9998887777

Du kan också använda det här mönstret för att ta bort tecken och komprimera en sträng. Följande uttryck tar till exempel bort parenteser, bindestreck och blankstegstecken i mobilnummersträngen och returnerar endast siffror.

Replace([mobile], , "[()\\s-]+", , "", , )

  • källa: [mobile] = "+1 (999) 888-7777"
  • regexPattern: "[()\\s-]+"
  • replacementValue: "" (tom sträng)
  • Uttrycksutdata: 19998887777

Exempel 4: Använd regexPattern, regexGroupName och replacementValue för att extrahera en del av källsträngen och ersätta den med ett annat literalvärde eller en tom sträng.

Anta att källsystemet har attributet AddressLineData med två komponenter gatunummer och gatunamn. Som en del av en flytt nyligen ska vi säga att gatunumret för adressen har ändrats och att du bara vill uppdatera gatunummerdelen av adressraden. I det här fallet kan du sedan använda följande uttryck i attributmappningen för att extrahera gatunumret.

Replace([AddressLineData], ,"(?<streetNumber>^\\d*)","streetNumber", "888", , )

  • källa: [AddressLineData] = "545 Tremont Street"
  • regexPattern: "(?<streetNumber>^\\d*)"
  • regexGroupName: "streetNumber"
  • replacementValue: "888"
  • Uttrycksutdata: 888 Tremont Street

Här är ett annat exempel där domänsuffixet från ett UPN ersätts med en tom sträng för att generera inloggnings-ID utan domänsuffix.

Replace([userPrincipalName], , "(?<Suffix>@(.)*)", "Suffix", "", , )

  • källa: [userPrincipalName] = "jsmith@contoso.com"
  • regexPattern: "(?<Suffix>@(.)*)"
  • regexGroupName: "Suffix"
  • replacementValue: "" (tom sträng)
  • Uttrycksutdata: jsmith

Exempel 5: Använda regexPattern, regexGroupName och replacementAttributeName för att hantera scenarier när källattributet är tomt eller inte har något värde.

Anta att källsystemet har ett attributtelefonnummer. Om telephoneNumber är tomt vill du extrahera de 10 siffrorna i attributet för mobilnummer. I det här fallet kan du sedan använda följande uttryck i attributmappningen.

Replace([telephoneNumber], , "\\+(?<isdCode>\\d* )(?<phoneNumber>\\d{10})", "phoneNumber" , , [mobile], )

  • källa: [telephoneNumber] = "" (tom sträng)
  • regexPattern: "\\+(?<isdCode>\\d* )(?<phoneNumber>\\d{10})"
  • regexGroupName: "phoneNumber"
  • replacementAttributeName: [mobile] = "+91 8887779999"
  • Uttrycksutdata: 8887779999

Exempel 6: Du måste hitta tecken som matchar ett reguljärt uttrycksvärde och ta bort dem.

Replace([mailNickname], , "[a-zA-Z_]*", , "", , )

  • källa [mailNickname]
  • oldValue: "john_doe72"
  • replaceValue: ""
  • Uttrycksutdata: 72

SelectUniqueValue

Funktion: SelectUniqueValue(uniqueValueRule1, uniqueValueRule2, uniqueValueRule3, ...)

Beskrivning: Kräver minst två argument, som är unika värdegenereringsregler som definieras med hjälp av uttryck. Funktionen utvärderar varje regel och kontrollerar sedan värdet som genererats för unikhet i målappen/katalogen. Det första unika värdet som hittades är det som returnerades. Om alla värden redan finns i målet spärras posten och orsaken loggas i granskningsloggarna. Det finns ingen övre gräns för antalet argument som kan anges.

  • Den här funktionen måste vara på den översta nivån och kan inte kapslas.

  • Den här funktionen kan inte tillämpas på attribut som har matchande prioritet.

  • Den här funktionen är endast avsedd att användas för att skapa inmatningar. När du använder den med ett attribut anger du egenskapen Tillämpa mappning till Endast när objektet skapas.

  • Den här funktionen stöds för närvarande för användning med dessa program:

    • Workday till Active Directory-användaretablering
    • SuccessFactors till Active Directory User Provisioning
    • API-driven etablering till lokal Active Directory

    SelectUniqueValue stöds inte för användning med andra etableringsprogram.

  • LDAP-sökningen som funktionen SelectUniqueValue utför i lokal Active Directory undfly inte specialtecken som diakritiska tecken. Om du skickar en sträng som "Jéssica Smith" som innehåller ett specialtecken, får du bearbetningsfel. Kapsla funktionen NormalizeDiacritics enligt det här exemplet för att normalisera specialtecken.

Parametrar:

Name Obligatoriskt/upprepande Type Anteckningar
uniqueValueRule1 ... uniqueValueRuleN Minst 2 krävs, ingen övre gräns String Lista över regler för unik värdegenerering som ska utvärderas.

Generera unikt värde för attributet userPrincipalName (UPN)

Exempel: Baserat på användarens förnamn, mellannamn och efternamn måste du generera ett värde för UPN-attributet och söka efter dess unika egenskaper i ad-målkatalogen innan du tilldelar värdet till UPN-attributet.

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")
    )

Exempel på indata/utdata:

  • INPUT (PreferredFirstName): "John"
  • INPUT (PreferredLastName): "Smith"
  • UTDATA: "John.Smith@contoso.com" om UPN-värdet John.Smith@contoso.com inte redan finns i katalogen
  • UTDATA: "J.Smith@contoso.com" om UPN-värdet John.Smith@contoso.com redan finns i katalogen
  • UTDATA: "Jo.Smith@contoso.com" om ovanstående två UPN-värden redan finns i katalogen

SingleAppRoleAssignment

Funktion: SingleAppRoleAssignment([appRoleAssignments])

Beskrivning: Returnerar en enda appRoleAssignment från listan över alla appRoleAssignments som tilldelats en användare för ett visst program. Den här funktionen krävs för att konvertera objektet appRoleAssignments till en enskild rollnamnssträng. Bästa praxis är att se till att endast en appRoleAssignment tilldelas till en användare i taget. Den här funktionen stöds inte i scenarier där användare har flera approlltilldelningar.

Parametrar:

Name Obligatoriskt/upprepande Type Anteckningar
[appRoleAssignments] Obligatoriskt String [appRoleAssignments] objekt.

Delad

Funktion: Split(source, delimiter)

Beskrivning: Delar upp en sträng i en matris med flera värden med det angivna avgränsartecknet.

Parametrar:

Name Obligatoriskt/upprepande Type Anteckningar
källa Obligatoriskt String källvärde som ska uppdateras.
avgränsare Obligatoriskt String Anger det tecken som används för att dela upp strängen (exempel: ",")

Dela upp en sträng i en matris med flera värden

Exempel: Du måste ta en kommaavgränsad lista med strängar och dela upp dem i en matris som kan anslutas till ett flervärdesattribut som Salesforces attribute PermissionSets. I det här exemplet fylls en lista med behörighetsuppsättningar i extensionAttribute5 i Microsoft Entra-ID.

Uttryck: Split([extensionAttribute5], ",")

Exempel på indata/utdata:

  • INPUT (extensionAttribute5): "PermissionSetOne, PermissionSetTwo"
  • UTDATA: ["PermissionSetOne", "PermissionSetTwo"]

StripSpaces

Funktion: StripSpaces(källa)

Beskrivning: Tar bort alla blanksteg (" ") tecken från källsträngen.

Parametrar:

Name Obligatoriskt/upprepande Type Anteckningar
källa Obligatoriskt String källvärde som ska uppdateras.

Växling

Funktion: Switch(source, defaultValue, key1, value1, key2, value2, ...)

Beskrivning: När källvärdet matchar en nyckel returnerar värdet för den nyckeln. Om källvärdet inte matchar några nycklar returnerar defaultValue. Nyckel - och värdeparametrar måste alltid komma i par. Funktionen förväntar sig alltid ett jämnt antal parametrar. Funktionen ska inte användas för referensattribut, till exempel chef.

Kommentar

Switch-funktionen utför en skiftlägeskänslig strängjämförelse av käll- och nyckelvärdena . Om du vill göra en skiftlägesokänslig jämförelse normaliserar du källsträngen före jämförelse med hjälp av en kapslad ToLower-funktion och ser till att alla nyckelsträngar använder gemener. Exempel: Switch(ToLower([statusFlag]), "0", "true", "1", "false", "0"). I det här exemplet kan källattributet statusFlag ha värden ("True" / "true" / "TRUE"). Switch-funktionen konverterar den dock alltid till gemener med strängen "true" innan den jämförs med nyckelparametrar .

Varning

För källparametern ska du inte använda de kapslade funktionerna IsPresent, IsNull eller IsNullOrEmpty. Använd i stället en literal tom sträng som ett av nyckelvärdena.
Exempel: Switch([statusFlag], "Default Value", "true", "1", "", "0"). Om källattributet statusFlag i det här exemplet är tomt returnerar funktionen Switch värdet 0.

Varning

Problem: Etableringstjänsten anger felaktigt ett attributvärde till null i målsystemet när en switch-instruktion används.
Lösning: Använd en IIF-instruktion i stället för en switch-instruktion för att förhindra oväntade null-värden eller använda funktionen IgnoreFlowIfNullOrEmpty med switch-instruktionen. Till exempel ska switch([companyName], "External", "Company A", "A", "Company B", "B") representeras som IIF([companyName] = "Company A", "A", IIF([companyName] = "Company B", "B", "External")). I fall där standardvärdet är ett attribut använder du ett uttryck som IgnoreFlowIfNullOrEmpty(switch([companyName], [companyName], "Company A", "A", "Company B", "B")).
Rotorsak: Det här problemet är specifikt för scenarier där Microsoft Entra-ID är källsystemet och switch-instruktionen innehåller ett standardvärde.

Parametrar:

Name Obligatoriskt/upprepande Type Anteckningar
källa Obligatoriskt String Källvärde som ska uppdateras.
defaultValue Valfritt String Standardvärde som ska användas när källan inte matchar några nycklar. Kan vara en tom sträng ("").
nyckel Obligatoriskt String Nyckel att jämföra källvärde med.
värde Obligatoriskt String Ersättningsvärde för källan som matchar nyckeln.

Ersätt ett värde baserat på fördefinierad uppsättning alternativ

Exempel: Definiera tidszonen för användaren baserat på tillståndskoden som lagras i Microsoft Entra-ID. Om delstatskoden inte matchar något av de fördefinierade alternativen använder du standardvärdet "Australien/Sydney".

Expression:Switch([state], "Australia/Sydney", "NSW", "Australia/Sydney","QLD", "Australia/Brisbane", "SA", "Australia/Adelaide")

Exempel på indata/utdata:

  • INPUT (tillstånd): "QLD"
  • UTDATA: "Australien/Brisbane"

ToLower

Funktion: ToLower(källa, kultur)

Beskrivning: Tar ett källsträngsvärde och konverterar det till gemener med de kulturregler som anges. Om ingen kulturinformation har angetts använder den invariant kultur.

Om du vill ange befintliga värden i målsystemet till gemener uppdaterar du schemat för målprogrammet och anger egenskapen caseExact till "true" för attributet som du är intresserad av.

Parametrar:

Name Obligatoriskt/upprepande Type Anteckningar
källa Obligatoriskt String Vanligtvis namnet på attributet från källobjektet
kultur Valfritt String Formatet för kulturnamnet baserat på RFC 4646 är languagecode2-country/regioncode2, där languagecode2 är språkkoden med två bokstäver och country/regioncode2 är subkulturkoden med två bokstäver. Exempel är ja-JP för japanska (Japan) och en-US för engelska (USA). I de fall där en språkkod med två bokstäver inte är tillgänglig används en kod med tre bokstäver som härleds från ISO 639-2.

Konvertera genererat upn-värde (userPrincipalName) till gemener

Exempel: Du vill generera UPN-värdet genom att sammanfoga källfälten PreferredFirstName och PreferredLastName och konvertera alla tecken till gemener.

ToLower(Join("@", NormalizeDiacritics(StripSpaces(Join(".", [PreferredFirstName], [PreferredLastName]))), "contoso.com"))

Exempel på indata/utdata:

  • INPUT (PreferredFirstName): "John"
  • INPUT (PreferredLastName): "Smith"
  • UTDATA: "john.smith@contoso.com"

ToUpper

Funktion: ToUpper(källa, kultur)

Beskrivning: Tar ett källsträngsvärde och konverterar det till versaler med de kulturregler som anges. Om ingen kulturinformation har angetts använder den invariant kultur.

Om du vill ange befintliga värden i målsystemet till versaler uppdaterar du schemat för målprogrammet och anger egenskapen caseExact till "true" för attributet som du är intresserad av.

Parametrar:

Name Obligatoriskt/upprepande Type Anteckningar
källa Obligatoriskt String Vanligtvis namnet på attributet från källobjektet.
kultur Valfritt String Formatet för kulturnamnet baserat på RFC 4646 är languagecode2-country/regioncode2, där languagecode2 är språkkoden med två bokstäver och country/regioncode2 är subkulturkoden med två bokstäver. Exempel är ja-JP för japanska (Japan) och en-US för engelska (USA). I de fall där en språkkod med två bokstäver inte är tillgänglig används en kod med tre bokstäver som härleds från ISO 639-2.

Word

Funktion: Word(String,WordNumber,Delimiters)

Beskrivning: Word-funktionen returnerar ett ord som finns i en sträng, baserat på parametrar som beskriver avgränsarna som ska användas och det ordnummer som ska returneras. Varje sträng med tecken i sträng avgränsad med ett av tecknen i avgränsare identifieras som ord:

Om nummer < 1 returnerar den tomma strängen. Om strängen är null returnerar den tomma strängen. Om strängen innehåller mindre än talord, eller om strängen inte innehåller några ord som identifieras av avgränsare, returneras en tom sträng.

Parametrar:

Name Obligatoriskt/upprepande Type Anteckningar
Sträng Obligatoriskt Flervärdesattribut Sträng som du vill returnera ett ord från.
WordNumber Obligatoriskt Integer Nummer som identifierar vilket ordnummer som ska returneras
Avgränsare Obligatoriskt String En sträng som representerar avgränsare som ska användas för att identifiera ord

Exempel:Word("The quick brown fox",3," ")

Returnerar "brun".

Word("This,string!has&many separators",3,",!&#")

Returnerar "has".


Exempel

Det här avsnittet innehåller fler användningsexempel för uttrycksfunktioner.

Ta bort känt domännamn

Ta bort ett känt domännamn från en användares e-post för att hämta ett användarnamn. Om domänen till exempel är "contoso.com" kan du använda följande uttryck:

Expression:Replace([mail], "@contoso.com", , ,"", ,)

Exempel på indata/utdata:

  • INPUT (e-post): "john.doe@contoso.com"
  • UTDATA: "john.doe"

Generera användaralias genom att sammanfoga delar av för- och efternamn

Generera ett användaralias genom att ta de första tre bokstäverna i användarens förnamn och de första fem bokstäverna i användarens efternamn.

Expression:Append(Mid([givenName], 1, 3), Mid([surname], 1, 5))

Exempel på indata/utdata:

  • INPUT (givenName): "John"
  • INPUT (efternamn): "Doe"
  • UTDATA: "JohDoe"

Lägg till ett kommatecken mellan efternamn och förnamn.

Lägg till ett kommatecken mellan efternamn och förnamn.

Expression:Join(", ", "", [surname], [givenName])

Exempel på indata/utdata:

  • INPUT (givenName): "John"
  • INPUT (efternamn): "Doe"
  • UTDATA: "Doe, John"

Generera ett ID för en användare baserat på deras Microsoft Entra-objekt-ID. Ta bort eventuella bokstäver från ID:t och lägg till 1 000 i början.

Med det här uttrycket kan du generera en identifierare för en användare som börjar med 1 000 och som sannolikt kommer att vara unik.

Uttryck: Join("", 1000, Replace(ConvertToUTF8Hex([objectId]), , "[a-zA-Z_]*", , "", , ))

Exempel på indata/utdata:

  • INPUT: "00aa00aa-bb11-cc22-dd33-44ee44ee44ee"
  • UTDATA: "100064303565343762312333930392343435612626135652636136306362633065346234"