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:
- Attribut som måste omges av hakparenteser. Till exempel: [attributeName]
- Strängkonstanter, som måste omges av dubbla citattecken. Till exempel: "USA"
- 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")
- Exempel på IIF-uttryck som inte stöds:
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 regexPattern på replacementAttributeName 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"
Relaterade artiklar
- Automatisera användaretablering/avetablering till SaaS-appar
- Anpassa attributmappningar för användaretablering
- Omfångsfilter för användaretablering
- Använda SCIM för att aktivera automatisk etablering av användare och grupper från Microsoft Entra-ID till program
- Meddelanden om kontoetablering
- Lista över självstudier om hur du integrerar SaaS-appar