Naslaginformatie voor het schrijven van expressies voor kenmerktoewijzingen in Microsoft Entra-id
Wanneer u inrichting configureert voor een SaaS-toepassing, is een van de typen kenmerktoewijzingen die u kunt opgeven een expressietoewijzing. Voor deze toewijzingen moet u een scriptachtige expressie schrijven waarmee u de gegevens van uw gebruikers kunt transformeren in indelingen die acceptabeler zijn voor de SaaS-toepassing.
Syntaxisoverzicht
De syntaxis voor expressies voor kenmerktoewijzingen doet denken aan VBA-functies (Visual Basic for Applications).
De volledige expressie moet worden gedefinieerd in termen van functies, die bestaan uit een naam gevolgd door argumenten tussen haakjes: FunctionName(
<<argument 1>>
,<<argument N>>
)U kunt functies binnen elkaar nesten. Bijvoorbeeld: FunctionOne(FunctionTwo(
<<argument1>>
))U kunt drie verschillende typen argumenten doorgeven aan functies:
- Kenmerken, die tussen vierkante haken moeten worden geplaatst. Bijvoorbeeld: [attributeName]
- Tekenreeksconstanten, die tussen dubbele aanhalingstekens moeten worden geplaatst. Bijvoorbeeld: "Verenigde Staten"
- Overige functies. Bijvoorbeeld: FunctionOne(
<<argument1>>
, FunctionTwo(<<argument2>>
))
Als u voor tekenreeksconstanten een backslash (\) of aanhalingsteken (") in de tekenreeks nodig hebt, moeten deze worden ge-escaped met het backslashteken (\). Bijvoorbeeld: "Bedrijfsnaam: \"Contoso\""
De syntaxis is hoofdlettergevoelig, waar rekening mee moet worden gehouden bij het invoeren als tekenreeksen in een functie tegenover het rechtstreeks plakken van deze tekenreeksen.
Lijst van functies
AppendAppRoleAssignmentsComplexBitAndCBoolCDateCoalesceConvertToBase64ConvertToUTF8HexCountCStrDateAddDateDiffDateFromNumFormatDateTimeGuidIgnoreFlowIfNullOrEmptyIIFInStrIsNullIsNullOrEmptyIsPresentIsStringItemJoinLeftMidNormalizeDiacriticsNotNowNumFromDatePCaseRandomStringRedactRemoveDuplicatesReplaceSelectUniqueValueSingleAppRoleAssignmentSplitStripSpacesSwitchToLowerToUpperWord
Toevoegen
Functie: Append(bron, achtervoegsel)
Beschrijving: Neemt een brontekenreekswaarde en voegt het achtervoegsel toe aan het einde ervan.
Parameters:
Naam | Vereist/herhalend | Type | Opmerkingen |
---|---|---|---|
bron | Vereist | String | Gewoonlijk de naam van het kenmerk van het bron-object. |
achtervoegsel | Vereist | String | De tekenreeks die u wilt toevoegen aan het einde van de bronwaarde. |
Constant achtervoegsel toevoegen aan gebruikersnaam
Voorbeeld: Als u een Salesforce-sandbox gebruikt, moet u mogelijk nog een achtervoegsel toevoegen aan al uw gebruikersnamen voordat u ze synchroniseert.
Expression:Append([userPrincipalName], ".test")
Voorbeeldinvoer/-uitvoer:
- INVOER: (userPrincipalName): "John.Doe@contoso.com"
- UITVOER: "John.Doe@contoso.com.test"
AppRoleAssignmentsComplex
Functie: AppRoleAssignmentsComplex([appRoleAssignments])
Beschrijving: Wordt gebruikt om meerdere rollen voor een gebruiker te configureren. Zie Zelfstudie: kenmerktoewijzingen voor gebruikersinrichting aanpassen voor SaaS-toepassingen in Microsoft Entra ID voor gedetailleerde gebruik.
Parameters:
Naam | Vereist/herhalend | Type | Opmerkingen |
---|---|---|---|
[appRoleAssignments] | Vereist | String | [appRoleAssignments]-object. |
BitAnd
Functie: BitAnd(waarde1, waarde2)
Beschrijving: met deze functie worden beide parameters geconverteerd naar de binaire representatie en wordt een bit ingesteld op:
- 0 - als een of beide van de corresponderende bits in waarde1 en waarde2 0 zijn
- 1 - als beide corresponderende bits 1 zijn.
Met andere woorden, de functie retourneert 0 in alle gevallen, behalve wanneer de corresponderende bits van beide parameters 1 zijn.
Parameters:
Naam | Vereist/herhalend | Type | Opmerkingen |
---|---|---|---|
waarde1 | Vereist | Aantal | Numerieke waarde die moet worden ge-AND'd met waarde2 |
waarde2 | Vereist | Aantal | Numerieke waarde die moet worden ge-AND'd met waarde1 |
Voorbeeld:BitAnd(&HF, &HF7)
11110111 AND 00000111 = 00000111, dus BitAnd
retourneert 7, de binaire waarde van 00000111.
CBool
Functie:CBool(Expression)
Beschrijving:CBool
retourneert een booleaanse waarde op basis van de geëvalueerde expressie. Als de expressie resulteert in een niet-nulwaarde, retourneert CBool
Waar, anders wordt Onwaar geretourneerd.
Parameters:
Naam | Vereist/herhalend | Type | Opmerkingen |
---|---|---|---|
Expression | Vereist | uitdrukking | Elke geldige expressie |
Voorbeeld:CBool([attribute1] = [attribute2])
Retourneert Waar als beide kenmerken dezelfde waarde hebben.
CDate
Functie:
CDate(expression)
Beschrijving:
De functie CDate retourneert een UTC DateTime uit een tekenreeks. DateTime is geen systeemeigen kenmerktype, maar kan worden gebruikt binnen datumfuncties zoals FormatDateTime en DateAdd.
Parameters:
Naam | Vereist/herhalend | Type | Opmerkingen |
---|---|---|---|
Expression | Vereist | Expression | Elke geldige tekenreeks die een datum/tijd vertegenwoordigt. Zie .NET datum- en tijdtekenreeksen met aangepaste notatie voor ondersteunde notaties. |
Opmerkingen:
De geretourneerde tekenreeks is altijd in UTC en volgt de notatie M/d/jjjj u:mm:ss tt.
Voorbeeld 1:
CDate([StatusHireDate])
Voorbeeldinvoer/-uitvoer:
- INVOER (StatusHireDate): "2020-03-16-07:00"
- UITVOER: "16-3-2020 7:00:00 uur" <-- Let op het UTC-equivalent van de bovenstaande datum/tijd wordt geretourneerd
Voorbeeld 2:
CDate("2021-06-30+08:00")
Voorbeeldinvoer/-uitvoer:
- INVOER: "2021-06-30+08:00"
- UITVOER: "29-6-2021 4:00:00 pm" <-- Let op het UTC-equivalent van de bovenstaande datum/tijd wordt geretourneerd
Voorbeeld 3:
CDate("2009-06-15T01:45:30-07:00")
Voorbeeldinvoer/-uitvoer:
- INVOER: "2009-06-15T01:45:30-07:00"
- UITVOER: "15-6-2009 8:45:30 am" <-- Let op het UTC-equivalent van de bovenstaande datum/tijd wordt geretourneerd
Coalesce
Functie: Coalesce(bron1, bron2, ..., standaardwaarde)
Beschrijving: retourneert de eerste bronwaarde die niet NULL is. Als alle argumenten NULL zijn en defaultValue aanwezig is, wordt de defaultValue geretourneerd. Als alle argumenten NULL zijn en defaultValue niet aanwezig is, retourneert Coalesce NULL.
Parameters:
Naam | Vereist/herhalend | Type | Opmerkingen |
---|---|---|---|
bron1 … bronN | Vereist | String | Vereist, variabel aantal keren. Gewoonlijk de naam van het kenmerk van het bron-object. |
standaardwaarde | Optioneel | String | Standaardwaarde die moet worden gebruikt wanneer alle bronwaarden NULL zijn. Mag een lege tekenreeks ("") zijn. |
Stroom-e-mailwaarde indien niet NULL, anders userPrincipalName van stroom
Voorbeeld: U wilt het e-mailkenmerk doorsturen als het aanwezig is. Als dit niet het is, wilt u in plaats daarvan de waarde van userPrincipalName doorstromen.
Expression:Coalesce([mail],[userPrincipalName])
Voorbeeldinvoer/-uitvoer:
- INVOER (email): NULL
- INVOER (userPrincipalName): "John.Doe@contoso.com"
- UITVOER: "John.Doe@contoso.com"
ConvertToBase64
Functie: ConvertToBase64(bron)
Beschrijving: de functie ConvertToBase64 converteert een tekenreeks naar een Unicode base64-tekenreeks.
Parameters:
Naam | Vereist/herhalend | Type | Opmerkingen |
---|---|---|---|
bron | Vereist | String | Tekenreeks die moet worden geconverteerd naar base64 |
Voorbeeld:ConvertToBase64("Hello world!")
Retourneert 'SABlAGwAbABvACAAdwBvAHIAbABkACEA'
ConvertToUTF8Hex
Functie: ConvertToUTF8Hex(bron)
Beschrijving: de functie ConvertToUTF8Hex converteert een tekenreeks naar een UTF8 hexadecimaal gecodeerde waarde.
Parameters:
Naam | Vereist/herhalend | Type | Opmerkingen |
---|---|---|---|
bron | Vereist | String | Tekenreeks die moet worden geconverteerd naar UTF8 hex |
Voorbeeld:ConvertToUTF8Hex("Hello world!")
Retourneert 48656C6C6F20776F726C6421
Tellen
Functie: Count(kenmerk)
Beschrijving: De functie Aantal retourneert het aantal elementen in een kenmerk met meerdere waarden.
Parameters:
Naam | Vereist/herhalend | Type | Opmerkingen |
---|---|---|---|
kenmerk | Vereist | attribute | Kenmerk met meerdere waarden dat elementen heeft geteld |
CStr
Functie: CStr(waarde)
Beschrijving: de functie CStr converteert een waarde naar een tekenreeksgegevenstype.
Parameters:
Naam | Vereist/herhalend | Type | Opmerkingen |
---|---|---|---|
value | Vereist | numeriek, verwijzing of booleaanse waarde | Kan een numerieke waarde, verwijzingskenmerk of booleaanse waarde zijn. |
Voorbeeld:CStr([dn])
Retourneert 'cn=Joe,dc=contoso,dc=com'
DateAdd
Functie:
DateAdd(interval, value, dateTime)
Beschrijving:
Retourneert een datum-/tijdtekenreeks die een datum aangeeft waarop een opgegeven tijdsinterval wordt toegevoegd. De geretourneerde datum heeft de notatie M/d/jjjj u:mm:ss tt.
Parameters:
Naam | Vereist/herhalend | Type | Opmerkingen |
---|---|---|---|
interval | Vereist | String | Tijdsinterval dat u wilt toevoegen. Zie geaccepteerde waarden na deze tabel. |
value | Vereist | Aantal | Het aantal eenheden dat u wilt toevoegen. Dit kan positief zijn (om datums in de toekomst te krijgen) of negatief (om datums in het verleden te krijgen). |
datumTijd | Vereist | Datum en tijd | DateTime die de datum aangeeft waaraan het interval wordt toegevoegd. |
Wanneer u een datumtekenreeks als invoer doorgeeft, gebruikt u de functie CDate om de datum/tijd-tekenreeks te verpakken. Gebruik de functie Now om systeemtijd in UTC op te halen.
De interval-tekenreeks moet een van de volgende waarden hebben:
- yyyy jaar
- m maand
- d dag
- ww week
- h uur
- n minuut
- s seconde
Voorbeeld 1: een datumwaarde genereren op basis van binnenkomende StatusHireDate uit Workday
DateAdd("d", 7, CDate([StatusHireDate]))
Opmerking | interval | waarde | dateTime (waarde van variabele StatusHireDate) | output |
---|---|---|---|---|
Voeg 7 dagen toe aan de datum van indiensttreding | "d" | 7 | 2012-03-16-07:00 | 3/23/2012 7:00:00 AM |
Een datum ophalen van tien dagen voor de huurdatum | "d" | -10 | 2012-03-16-07:00 | 3/6/2012 7:00:00 AM |
Voeg twee weken toe aan de datum van indiensttreding | "ww" | 2 | 2012-03-16-07:00 | 3/30/2012 7:00:00 AM |
Voeg tien maanden toe aan de datum van indiensttreding | "m" | 10 | 2012-03-16-07:00 | 1/16/2013 7:00:00 AM |
Voeg twee jaar toe aan de datum van indiensttreding | "yyyy" | 2 | 2012-03-16-07:00 | 3/16/2014 7:00:00 AM |
DateDiff
Functie:
DateDiff(interval, date1, date2)
Beschrijving:
Deze functie gebruikt de parameter interval om een getal te retourneren dat het verschil tussen de twee opgegeven datums aangeeft. De functie retourneert
- een positief getal als datum2 > datum1,
- een negatief getal als datum2 < datum1,
- 0 als datum2 == datum1
Parameters:
Naam | Vereist/Optioneel | Type | Opmerkingen |
---|---|---|---|
interval | Vereist | String | Te gebruiken tijdsinterval om het verschil te berekenen. |
datum1 | Vereist | Datum en tijd | DateTime die een geldige datum representeert. |
datum2 | Vereist | Datum en tijd | DateTime die een geldige datum representeert. |
Wanneer u een datumtekenreeks als invoer doorgeeft, gebruikt u de functie CDate om de datum/tijd-tekenreeks te verpakken. Gebruik de functie Now om systeemtijd in UTC op te halen.
De interval-tekenreeks moet een van de volgende waarden hebben:
- yyyy jaar
- m maand
- d dag
- ww week
- h uur
- n minuut
- s seconde
Voorbeeld 1: de huidige datum vergelijken met de datum van indiensttreding uit Workday met verschillende intervallen
DateDiff("d", Now(), CDate([StatusHireDate]))
Opmerking | interval | datum1 | datum2 | output |
---|---|---|---|---|
Positief verschil in dagen tussen twee datums | d | 2021-08-18+08:00 | 2021-08-31+08:00 | 13 |
Negatief verschil in dagen tussen twee datums | d | 8/25/2021 5:41:18 PM | 2012-03-16-07:00 | -3449 |
Verschil in weken tussen twee datums | ww | 8/25/2021 5:41:18 PM | 2012-03-16-07:00 | -493 |
Verschil in maanden tussen twee datums | m | 8/25/2021 5:41:18 PM | 2012-03-16-07:00 | -113 |
Verschil in jaren tussen twee datums | yyyy | 8/25/2021 5:41:18 PM | 2012-03-16-07:00 | -9 |
Verschil wanneer beide datums hetzelfde zijn | d | 2021-08-31+08:00 | 2021-08-31+08:00 | 0 |
Verschil in uren tussen twee datums | h | 2021-08-24 | 2021-08-25 | 24 |
Verschil in minuten tussen twee datums | n | 2021-08-24 | 2021-08-25 | 1440 |
Verschil in seconden tussen twee datums | s | 2021-08-24 | 2021-08-25 | 86400 |
Voorbeeld 2: DateDiff combineren met de functie IIF om een kenmerkwaarde in te stellen
Als een account actief is in Workday, wordt het kenmerk accountEnabled van de gebruiker alleen ingesteld op Waar als de datum van indiensttreding binnen de volgende vijf dagen valt.
Switch([Active], ,
"1", IIF(DateDiff("d", Now(), CDate([StatusHireDate])) > 5, "False", "True"),
"0", "False")
DateFromNum
Functie: DateFromNum(waarde)
Beschrijving: de functie DateFromNum converteert een waarde in de datumnotatie van AD naar een DateTime-type.
Parameters:
Naam | Vereist/herhalend | Type | Opmerkingen |
---|---|---|---|
value | Vereist | Datum | Naar DateTime-type te converteren AD-datum |
Voorbeeld:DateFromNum([lastLogonTimestamp])
DateFromNum(129699324000000000)
Retourneert een DateTime die 1 januari 2012 om 23.00 uur representeert.
FormatDateTime
Functie: FormatDateTime(bron, datumTijdStijlen, invoernotatie, uitvoernotatie)
Beschrijving: neemt een datumtekenreeks in de ene notatie en converteert deze naar de andere notatie.
Parameters:
Naam | Vereist/herhalend | Type | Opmerkingen |
---|---|---|---|
bron | Vereist | String | Gewoonlijk de naam van het kenmerk van het bron-object. |
datumTijdStijlen | Optioneel | String | Gebruik deze parameter om de opmaakopties op te geven waarmee tekenreeksparsering wordt aangepast voor bepaalde datum- en tijdparseringsmethoden. Zie het document DateTimeStyles voor ondersteunde waarden. Als deze parameter leeg wordt gelaten, is de gebruikte standaardwaarde DateTimeStyles.RoundtripKind, DateTimeStyles.AllowLeadingWhite, DateTimeStyles.AllowTrailingWhite |
invoernotatie | Vereist | String | Verwachte notatie van de bronwaarde. Zie .NET datum- en tijdtekenreeksen met aangepaste notatie voor ondersteunde notaties. |
uitvoernotatie | Vereist | String | Notatie van de uitvoerdatum. |
Uitvoerdatum als tekenreeks in een bepaalde notatie
Voorbeeld: u wilt datums verzenden naar een SaaS-toepassing zoals ServiceNow in een bepaalde notatie. U kunt overwegen de volgende expressie te gebruiken.
Expression:
FormatDateTime([extensionAttribute1], , "yyyyMMddHHmmss.fZ", "yyyy-MM-dd")
Voorbeeldinvoer/-uitvoer:
- INVOER (extensionAttribute1): "20150123105347.1Z"
- UITVOER: "2015-01-23"
Guid
Functie: Guid()
Beschrijving: de functie-GUID genereert een nieuwe willekeurige GUID
Voorbeeld:
Guid()
Voorbeelduitvoer: "00aa00aa-bb11-cc22-dd33-44eee44ee44eee"
IgnoreFlowIfNullOrEmpty
Functie: IgnoreFlowIfNullOrEmpty(expressie)
Beschrijving: de functie IgnoreFlowIfNullOrEmpty instrueert de inrichtingsservice om het kenmerk te negeren en uit de stroom te laten als de ingesloten functie of kenmerk NULL of leeg is.
Parameters:
Naam | Vereist/herhalend | Type | Opmerkingen |
---|---|---|---|
Expression | Vereist | Expression | Te evalueren expressie |
Voorbeeld 1: Een kenmerk niet doorstromen als het null is
IgnoreFlowIfNullOrEmpty([department])
Met de bovenstaande expressie wordt het afdelingskenmerk uit de inrichtingsstroom verwijderd als deze null of leeg is.
Voorbeeld 2: een kenmerk niet laten doorstromen als de expressietoewijzing resulteert in een lege tekenreeks of null
Stel dat het kenmerkvoorvoegsel successFactors is toegewezen aan het persoonlijketitle van het on-premises Active Directory-kenmerk met behulp van de volgende expressietoewijzing:
IgnoreFlowIfNullOrEmpty(Switch([prefix], "", "3443", "Dr.", "3444", "Prof.", "3445", "Prof. Dr."))
De bovenstaande expressie evalueert eerst de functie Switch. Als het voorvoegselkenmerk geen van de waarden bevat die worden vermeld in de functie Switch , retourneert ** een lege tekenreeks en wordt de persoonlijke kenmerktitel niet opgenomen in de inrichtingsstroom naar on-premises Active Directory.
IIF
Functie: IIF(voorwaarde, waardeIndienWaar, waardeIndienOnwaar)
Beschrijving: de functie IIF retourneert een van een set mogelijke waarden op basis van een opgegeven voorwaarde.
Parameters:
Naam | Vereist/herhalend | Type | Opmerkingen |
---|---|---|---|
voorwaarde | Vereist | Variabele of expressie | Een waarde of expressie die als WAAR of ONWAAR kan worden geëvalueerd. |
waardeIndienWaar | Vereist | Variabele of tekenreeks | Als de voorwaarde Waar oplevert, wordt deze waarde geretourneerd. |
waardeIndienOnwaar | Vereist | Variabele of tekenreeks | Als de voorwaarde Onwaar oplevert, wordt deze waarde geretourneerd. |
De volgende vergelijkingsoperatoren kunnen worden gebruikt in de voorwaarde:
- Gelijk aan (=) en niet gelijk aan (<>)
- Groter dan (>) en groter dan of gelijk aan (>=)
- Kleiner dan (<) en kleiner dan of gelijk aan (<=)
Voorbeeld: de waarde van het doelkenmerk instellen op het bronkenmerk land als land="USA", anders de waarde van het doelkenmerk instellen in op het bronkenmerk afdeling.
IIF([country]="USA",[country],[department])
Bekende beperkingen
Deze sectie bevat beperkingen en tijdelijke oplossingen voor de functie IIF. Zie Maken mislukt vanwege null-/lege waarden voor informatie over het oplossen van problemen met het maken van gebruikers.
- De functie IIF biedt momenteel geen ondersteuning voor logische EN- en OR-operators.
- Om AND-logica te implementeren, moet u geneste IIF-instructies gebruiken langs het waardeIndienWaar-pad.
Voorbeeld: als land='USA' en staat='CA', retourneer 'Waar', anders retourneer 'Onwaar'.
IIF([country]="USA",IIF([state]="CA","True","False"),"False")
- Om OR-logica te implementeren, moet u geneste IIF-instructies gebruiken langs het waardeIndienOnwaar-pad.
Voorbeeld: als land='USA' of staat='CA', retourneer 'Waar', anders retourneer 'Onwaar'.
IIF([country]="USA","True",IIF([state]="CA","True","False"))
- Als het in de functie IFF gebruikte bronkenmerk leeg of null is, mislukt de voorwaardecontrole.
- Voorbeelden van niet-ondersteunde IIF-expressies:
IIF([country]="","Other",[country])
IIF(IsNullOrEmpty([country]),"Other",[country])
IIF(IsPresent([country]),[country],"Other")
- Aanbevolen tijdelijke oplossing: gebruik de functie Switch om te controleren op lege en nullwaarden. Voorbeeld: als landkenmerk leeg is, stel waarde "Overig" in. Als deze aanwezig is, geeft u de waarde van het landkenmerk door aan het doelkenmerk.
Switch([country],[country],"","Other")
- Voorbeelden van niet-ondersteunde IIF-expressies:
InStr
Functie: InStr(waarde1, waarde2, begin, vergelijkingstype)
Beschrijving: Met de functie InStr wordt het eerste exemplaar van een subtekenreeks in een tekenreeks gevonden.
Parameters:
Naam | Vereist/herhalend | Type | Opmerkingen |
---|---|---|---|
waarde1 | Vereist | String | Te doorzoeken tekenreeks |
waarde2 | Vereist | String | Te vinden tekenreeks |
start | Optioneel | Geheel getal | Beginpositie om de subtekenreeks te zoeken |
vergelijkinstype | Optioneel | Enum | Kan vbTextCompare of vbBinaryCompare zijn |
Voorbeeld:InStr("The quick brown fox","quick")
Levert 5 op
InStr("repEated","e",3,vbBinaryCompare)
Levert 7 op
IsNull
Functie: IsNull(Expressie)
Beschrijving: als de expressie null oplevert, retourneert de functie IsNull Waar. Voor een kenmerk wordt een null uitgedrukt door het ontbreken van het kenmerk.
Parameters:
Naam | Vereist/herhalend | Type | Opmerkingen |
---|---|---|---|
Expression | Vereist | Expression | Te evalueren expressie |
Voorbeeld:IsNull([displayName])
Retourneert Waar als het kenmerk niet aanwezig is.
IsNullorEmpty
Functie: IsNullOrEmpty(expressie)
Beschrijving: als de expressie null of een lege tekenreeks is, retourneert de functie IsNullOrEmpty Waar. Dit resulteert in Waar als het kenmerk afwezig is of aanwezig is, maar een lege tekenreeks is. De omgekeerde versie van deze functie heet IsPresent.
Parameters:
Naam | Vereist/herhalend | Type | Opmerkingen |
---|---|---|---|
Expression | Vereist | Expression | Te evalueren expressie |
Voorbeeld:IsNullOrEmpty([displayName])
Retourneert Waar als het kenmerk niet aanwezig is of een lege tekenreeks is.
IsPresent
Functie: IsPresent(expressie)
Beschrijving: Als de expressie resulteert in een tekenreeks die niet Null is en niet leeg is, retourneert de functie IsPresent waar. De omgekeerde versie van deze functie heet IsNullOrEmpty.
Parameters:
Naam | Vereist/herhalend | Type | Opmerkingen |
---|---|---|---|
Expression | Vereist | Expression | Te evalueren expressie |
Voorbeeld:Switch(IsPresent([directManager]),[directManager], IsPresent([skiplevelManager]),[skiplevelManager], IsPresent([director]),[director])
IsString
Functie: IsString(expressie)
Beschrijving: als de expressie kan worden geëvalueerd tot een tekenreekstype, resulteert de functie IsString Waar.
Parameters:
Naam | Vereist/herhalend | Type | Opmerkingen |
---|---|---|---|
Expression | Vereist | Expression | Te evalueren expressie |
Artikel
Functie: Item(kenmerk, index)
Beschrijving: de functie Item retourneert één item uit een tekenreeks/kenmerk met meerdere waarden.
Parameters:
Naam | Vereist/herhalend | Type | Opmerkingen |
---|---|---|---|
kenmerk | Vereist | Kenmerk | Te doorzoeken kenmerk met meerdere waarden |
index | Vereist | Geheel getal | Index van een item in de tekenreeks met meerdere waarden |
Voorbeeld:Item([proxyAddresses], 1)
retourneert het eerste item in het kenmerk met meerdere waarden. Index 0 mag niet worden gebruikt.
Deelnemen
Functie: Join(scheidingsteken, bron1, bron2, ...)
Beschrijving: Join() is vergelijkbaar met Append(), behalve dat deze meerdere brontekenreekswaarden kan combineren tot één tekenreeks en elke waarde wordt gescheiden door een scheidingstekenreeks .
Als een van de bronwaarden een kenmerk met meerdere waarden is, wordt elke waarde in dat kenmerk samengevoegd, gescheiden door de scheidingstekenwaarde.
Parameters:
Naam | Vereist/herhalend | Type | Opmerkingen |
---|---|---|---|
scheidingsteken | Vereist | String | Tekenreeks die wordt gebruikt om bronwaarden te scheiden wanneer ze worden samengevoegd tot één tekenreeks. Mag "" zijn als geen scheidingsteken is vereist. |
bron1 … bronN | Vereist, variabel aantal keren | String | Samen te voegen tekenreekswaarden. |
Left
Functie: Left(tekenreeks, aantalTekens)
Beschrijving: de functie Left retourneert het opgegeven aantal tekens van de linkerkant van een tekenreeks. Als aantalTekens = 0, retourneer lege tekenreeks. Als aantalTekens < 0, retourneer invoertekenreeks. Als tekenreeks null is, retourneer lege tekenreeks. Als de tekenreeks minder tekens bevat dan het getal dat is opgegeven in aantalTekens, wordt een tekenreeks identiek aan tekenreeks (dat wil zeggen, met alle tekens in parameter 1) geretourneerd.
Parameters:
Naam | Vereist/herhalend | Type | Opmerkingen |
---|---|---|---|
Tekenreeks | Vereist | Kenmerk | De tekenreeks om tekens uit te retourneren |
aantalTekens | Vereist | Geheel getal | Een getal dat het aantal tekens aangeeft dat moet worden geretourneerd vanaf het begin (links) van de tekenreeks |
Voorbeeld:Left("John Doe", 3)
Retourneert 'Joh'.
Mid
Functie: Mid(bron, begin, lengte)
Beschrijving: retourneert een subtekenreeks van de bronwaarde. Een subtekenreeks is een tekenreeks die slechts een deel van de tekens van de brontekenreeks bevat.
Parameters:
Naam | Vereist/herhalend | Type | Opmerkingen |
---|---|---|---|
bron | Vereist | String | Gewoonlijk de naam van het kenmerk. |
start | Vereist | Geheel getal | Index in de bron-tekenreeks waar de subtekenreeks moet beginnen. Het eerste teken in de tekenreeks heeft een index van 1, het tweede teken heeft een index 2, enzovoort. |
length | Vereist | Geheel getal | Lengte van de subtekenreeks. Als de lengte buiten de brontekenreeks eindigt, retourneert de functie de subtekenreeks van de beginindex tot het einde van de brontekenreeks. |
NormalizeDiacritics
Functie: NormalizeDiacritics(bron)
Beschrijving: vereist één tekenreeksargument. Retourneert de tekenreeks, maar door diakritische tekens vervangen door gelijkwaardige niet-diakritische tekens. Gewoonlijk gebruikt om voor- en achternamen met diakritische tekens (accenten) te converteren naar geldige waarden die kunnen worden gebruikt in verschillende gebruikers-id's, zoals user principal names, SAM-accountnamen en e-mailadressen.
Parameters:
Naam | Vereist/herhalend | Type | Opmerkingen |
---|---|---|---|
bron | Vereist | String | Gewoonlijk een voor- of achternaamkenmerk. |
Teken met diakritisch teken | Genormaliseerd teken | Teken met diakritisch teken | Genormaliseerd teken |
---|---|---|---|
ä, à, â, ã, å, á, ą, ă, ā, ā́, ā̀, ā̂, ā̃, ǟ, ā̈, ǡ, a̱, å̄ | a | Ä, À, Â, Ã, Å, Á, Ą, Ă, Ā, Ā́, Ā̀, Ā̂, Ā̃, Ǟ, Ā̈, Ǡ, A̱, Å̄ | A |
æ, ǣ | ae | Æ, Ǣ | AE |
ç, č, ć, c̄, c̱ | c | Ç, Č, Ć, C̄, C̱ | E |
ď, d̄, ḏ | d | Ď, D̄, Ḏ | D |
ë, è, é, ê, ę, ě, ė, ē, ḗ, ḕ, ē̂, ē̃, ê̄, e̱, ë̄, e̊̄ | e | Ë, È, É, Ê, Ę, Ě, Ė, Ē, Ḗ, Ḕ, Ē̂, Ē̃, Ê̄, E̱, Ë̄, E̊̄ | E |
ğ, ḡ, g̱ | g | Ğ, Ḡ, G̱ | G |
ï, î, ì, í, ı, ī, ī́, ī̀, ī̂, ī̃, i̱ | Ik | Ï, Î, Ì, Í, İ, Ī, Ī́, Ī̀, Ī̂, Ī̃, I̱ | I |
ľ, ł, l̄, ḹ, ḻ | l | Ł, Ľ, L̄, Ḹ, Ḻ | L |
ñ, ń, ň, n̄, ṉ | n | Ñ, Ń, Ň, N̄, Ṉ | N |
ö, ò, ő, õ, ô, ó, ō, ṓ, ṑ, ō̂, ō̃, ȫ, ō̈, ǭ, ȭ, ȱ, o̱ | o | Ö, Ò, Ő, Õ, Ô, Ó, Ō, Ṓ, Ṑ, Ō̂, Ō̃, Ȫ, Ō̈, Ǭ, Ȭ, Ȱ, O̱ | O |
ø, ø̄, œ̄ | oe | Ø, Ø̄, Œ̄ | OE |
ř, r̄, ṟ, ṝ | r | Ř, R̄, Ṟ, Ṝ | R |
ß | ss | ||
š, ś, ș, ş, s̄, s̱ | s | Š, Ś, Ș, Ş, S̄, S̱ | S |
ť, ț, t̄, ṯ | h | Ť, Ț, T̄, Ṯ | T |
ü, ù, û, ú, ů, ű, ū, ū́, ū̀, ū̂, ū̃, u̇̄, ǖ, ṻ, ṳ̄, u̱ | u | Ü, Ù, Û, Ú, Ů, Ű, Ū, Ū́, Ū̀, Ū̂, Ū̃, U̇̄, Ǖ, Ṻ, Ṳ̄, U̱ | U |
ÿ, ý, ȳ, ȳ́, ȳ̀, ȳ̃, y̱ | y | Ÿ, Ý, Ȳ, Ȳ́, Ȳ̀, Ȳ̃, Y̱ | J |
ź, ž, ż, z̄, ẕ | z | Ź, Ž, Ż, Z̄, Ẕ | Z |
Diakritische tekens verwijderen uit een tekenreeks
Voorbeeld: tekens met accenten vervangen door gelijkwaardige tekens zonder accenten.
Expressie: NormalizeDiacritics([voornaam])
Voorbeeldinvoer/-uitvoer:
- INVOER (voornaam): "Zoë"
- UITVOER: "Zoe"
Not
Functie: Not(bron)
Beschrijving: hiermee wordt de booleaanse waarde van de bron gespiegeld. Als de bron-waarde Waar is, wordt Onwaar geretourneerd. Anders wordt Waar geretourneerd.
Parameters:
Naam | Vereist/herhalend | Type | Opmerkingen |
---|---|---|---|
bron | Vereist | Booleaanse tekenreeks | Verwachte bron-waarden zijn 'Waar' of 'Onwaar'. |
Nu
Functie: Now()
Beschrijving:
De functie Now retourneert een tekenreeks die de huidige UTC-datum/tijd representeert in de notatie M/d/jjjj u:mm:ss tt.
Voorbeeld:Now()
Voorbeeld van retourwaarde 7/2/2021 3:33:38 PM
NumFromDate
Functie: NumFromDate(waarde)
Beschrijving: de functie NumFromDate converteert een DateTime-waarde naar Active Directory-notatie die is vereist voor het instellen van kenmerken zoals accountExpires. Gebruik deze functie om DateTime-waarden ontvangen van HR-cloudapps, zoals Workday en SuccessFactors, te converteren naar hun equivalente AD-representatie.
Parameters:
Naam | Vereist/herhalend | Type | Opmerkingen |
---|---|---|---|
value | Vereist | String | Datum/tijdtekenreeks in ISO 8601-indeling . Als de datumvariabele een andere indeling heeft, gebruikt u de functie FormatDateTime om de datum te converteren naar de ISO 8601-indeling. |
Voorbeeld:
Workday-voorbeeld: Ervan uitgaande dat u het kenmerk ContractEndDate van Workday wilt toewijzen. Dit heeft de notatie 2020-12-31-08:00 aan het veld AccountExpires in AD. U kunt deze functie als volgt gebruiken en de tijdzoneverschil wijzigen zodat deze overeenkomt met uw landinstelling.
NumFromDate(Join("", FormatDateTime([ContractEndDate], ,"yyyy-MM-ddzzz", "yyyy-MM-dd"), " 23:59:59-08:00"))
Voorbeeld van SuccessFactors: Ervan uitgaande dat u het kenmerk endDate van SuccessFactors wilt toewijzen, dat de notatie M/d/jjjj uu:mm:ss tt aan accountExpires in AD heeft, kunt u deze functie als volgt gebruiken en de tijdzone-offset wijzigen zodat deze overeenkomt met uw landinstelling.
NumFromDate(Join("",FormatDateTime([endDate], ,"M/d/yyyy hh:mm:ss tt","yyyy-MM-dd")," 23:59:59-08:00"))
PCase
Functie: PCase(bron, woordscheidingstekens)
Beschrijving: de functie PCase converteert het eerste teken van elk woord in een tekenreeks naar een hoofdletter en alle andere tekens worden geconverteerd naar kleine letters.
Parameters:
Naam | Vereist/Optioneel | Type | Opmerkingen |
---|---|---|---|
bron | Vereist | String | bron-waarde om te converteren naar het juiste hoofdlettergebruik. |
woordscheidingstekens | Optioneel | String | Geef een set tekens op die wordt gebruikt als scheidingstekens voor woorden (bijvoorbeeld: ',-') |
Opmerkingen:
- Als de parameter wordSeparators niet is opgegeven, roept PCase intern de .NET-functie ToTitleCase aan om de brontekenreeks te converteren naar het juiste hoofdlettergebruik. De .NET-functie ToTitleCase ondersteunt een uitgebreide set Unicode-tekencategorieën als woordscheidingstekens.
- Spatie
- Teken voor nieuwe regel
- Besturingstekens zoals CRLF
- Opmaakbesturingstekens
- Koppelinterpunctie-tekens zoals het onderstrepingsteken
- DashPunctuation-tekens zoals streepje en afbreekstreepje (inclusief tekens zoals En Dash, Em Dash, dubbel afbreekstreepje, enzovoort)
- OpenPunctuation- en ClosePunctuation-tekens die voorkomen in paren zoals haakjes, accolade, hoekhaak, enzovoort.
- InitialQuotePunctuation- en FinalQuotePunctuation-tekens zoals enkele aanhalingstekens, dubbele aanhalingstekens en hoekige aanhalingstekens.
- Andere tekens , zoals uitroepteken, cijferteken, procentteken, ampersand, sterretje, komma, volledige stop, dubbele punt, puntkomma, enzovoort.
- MathSymbol-tekens zoals plusteken, kleiner dan en groter dan-teken, verticale lijn, tilde, gelijkteken, enzovoort.
- CurrencySymbol tekens zoals dollarteken, centteken, hekje, euroteken, enzovoort.
- ModifierSymbol tekens zoals macron, accenten, pijlkoppen, enzovoort.
- AndereSymboltekens , zoals copyrightteken, gradenteken, geregistreerd teken, enzovoort.
- Als de parameter woordscheidingstekens is opgegeven, gebruikt PCase alleen de opgegeven tekens als woordscheidingstekens.
Voorbeeld:
Stel dat u de kenmerken firstName en lastName van SAP SuccessFactors en in HR wilt ophalen. Beide kenmerken staan in hoofdletters. Met de functie PCase kunt u de naam converteren naar het juiste hoofdlettergebruik, zoals hier wordt weergegeven.
Expression | Invoer | Uitvoer | Opmerkingen |
---|---|---|---|
PCase([firstName]) |
firstName = "PABLO GONSALVES (SECOND)" | "Pablo Gonsalves (Second)" | Omdat de parameter wordSeparators niet is opgegeven, gebruikt de functie PCase de standaardtekenset voor woordscheidingstekens. |
PCase([lastName]," '-") |
lastName = "PINTO-DE'SILVA" | "Pinto-De'Silva" | De functie PCase gebruikt tekens in de parameter woordscheidingstekens om woorden te identificeren en het juiste hoofdlettergebruik toe te passen. |
PCase(Join(" ",[firstName],[lastName])) |
firstName = GREGORY, lastName = "JAMES" | "Gregory James" | U kunt de functie Join nesten in PCase. Omdat de parameter wordSeparators niet is opgegeven, gebruikt de functie PCase de standaardtekenset voor woordscheidingstekens. |
RandomString
Functie: RandomString(Lengte, MinimumNumbers, MinimumSpecialCharacters, MinimumCapital, MinimumLowerCase, CharactersToAvoid)
Beschrijving: de functie RandomString genereert een willekeurige tekenreeks op basis van de opgegeven voorwaarden. Toegestane tekens kunnen hier worden geïdentificeerd.
Parameters:
Naam | Vereist/herhalend | Type | Opmerkingen |
---|---|---|---|
Lengte | Vereist | Aantal | Totale lengte van de willekeurige tekenreeks. Deze moet groter dan of gelijk aan de som van minimumCijfers, minimumSpecialeTekens en minimumHoofdletters zijn. Maximaal 256 tekens. |
minimumCijfers | Vereist | Aantal | Minimumaantal cijfers in de willekeurige tekenreeks. |
minimumSpecialeTekens | Vereist | Aantal | Minimumaantal speciale tekens in de willekeurige tekenreeks. |
minimumHoofdletters | Vereist | Aantal | Minimumaantal hoofdletters in de willekeurige tekenreeks. |
minimumKleineLetters | Vereist | Aantal | Minimumaanal kleine letters in de willekeurige tekenreeks. |
teVermijdenTekens | Optioneel | String | Tekens om niet te gebruiken bij het genereren van de willekeurige tekenreeks. |
Voorbeeld 1: - Een willekeurige tekenreeks genereren zonder speciale tekenbeperkingen: RandomString(6,3,0,0,3)
Genereert een willekeurige tekenreeks met 6 tekens. De tekenreeks bevat 3 cijfers en 3 kleine letters (1a73qt).
Voorbeeld 2: - Een willekeurige tekenreeks genereren met speciale tekenbeperkingen: RandomString(10,2,2,2,1,"?,")
Genereert een willekeurige tekenreeks met 10 tekens. De tekenreeks bevat ten minste 2 cijfers, 2 speciale tekens, 2 hoofdletters, 1 kleine letter en sluit de tekens '?' en ',' uit (1@!2BaRg53).
Redact
Functie: Redact()
Beschrijving: de functie Redact vervangt de kenmerkwaarde door de letterlijke tekenreeks '[Redact]' in de inrichtingslogboeken.
Parameters:
Naam | Vereist/herhalend | Type | Opmerkingen |
---|---|---|---|
kenmerk/waarde | Vereist | String | Geef het kenmerk of de constante/tekenreeks op die u uit de logboeken wilt redigeren. |
Voorbeeld 1: Een kenmerk opnieuw uitvoeren: Redact([userPrincipalName])
Verwijdert de userPrincipalName uit de inrichtingslogboeken.
Voorbeeld 2: Een tekenreeks opnieuw uitvoeren: Redact("StringToBeRedacted")
Verwijdert een constante tekenreeks uit de inrichtingslogboeken.
Voorbeeld 3: Een willekeurige tekenreeks redact: Redact(RandomString(6,3,0,0,3))
Verwijdert de willekeurige tekenreeks uit de inrichtingslogboeken.
RemoveDuplicates
Functie: RemoveDuplicates(kenmerk)
Beschrijving: de functie RemoveDuplicates accepteert een tekenreeks met meerdere waarden en controleert of elke waarde uniek is.
Parameters:
Naam | Vereist/herhalend | Type | Opmerkingen |
---|---|---|---|
kenmerk | Vereist | Kenmerk met meerdere waarden | Kenmerk met meerdere waarden met dubbele waarden verwijderd |
Voorbeeld:RemoveDuplicates([proxyAddresses])
retourneert een opgeschoond proxyAddress-kenmerk waarbij alle dubbele waarden worden verwijderd.
Replace
Functie: Replace(bron, oudeWaarde, regexPatroon, regexGroepsnaam, vervangendeWaarde, naamVervangendKenmerk, sjabloon)
Beschrijving: vervangt waarden in een tekenreeks op een hoofdlettergevoelige manier. De functie gedraagt zich anders afhankelijk van de opgegeven parameters:
Wanneer oudeWaarde en vervangendeWaarde worden opgegeven:
- Vervangt alle exemplaren van oudeWaarde in de bron door vervangendeWaarde
Wanneer oudeWaarde en sjabloon worden opgegeven:
- Vervangt alle exemplaren van oudeWaarde in het sjabloon door de bron-waarde
Wanneer regexPatroon en vervangendeWaarde worden opgegeven:
- De functie past het regexPatroon toe op de bron-tekenreeks en u kunt de regexgroepsnamen gebruiken om de tekenreeks te construeren voor vervangendeWaarde
Notitie
Zie Groeperingsconstructies in reguliere expressies voor meer informatie over regexgroeperingsconstructies en benoemde subexpressies.
Wanneer regexPatroon, regexGroepsnaam en vervangendeWaarde worden opgegeven:
- De functie past het regexPatroon toe op de bron-tekenreeks en vervangt alle waarden die overeenkomen met regexGroepsnaam door vervangendeWaarde
Wanneer regexPatroon, regexGroepsnaam en naamVervangendKenmerk worden opgegeven:
- Als bron een waarde heeft, wordt bron geretourneerd
- Als bron geen waarde heeft, past de functie regexPatroon toe op de naamVervangendKenmerk en retourneert de waarde die overeenkomt met regexGroepsnaam
Parameters:
Naam | Vereist/herhalend | Type | Opmerkingen |
---|---|---|---|
bron | Vereist | String | Gewoonlijk de naam van het kenmerk van het bron-object. |
oudeWaarde | Optioneel | String | Waarde die moet worden vervangen in bron of sjabloon. |
regexPatroon | Optioneel | String | Regexpatroon voor de waarde die moet worden vervangen in bron. Wanneer naamVervangendKenmerk wordt gebruikt, wordt het regexPatroon toegepast om een waarde op te halen uit naamVervangendKenmerk. |
regexGroepsnaam | Optioneel | String | Naam van de groep in regexPatroon. Wanneer de naam replacementAttributeName wordt gebruikt, halen we de waarde van de benoemde regex-groep op uit de replacementAttributeName en retourneren we deze als de vervangingswaarde. |
vervangendeWaarde | Optioneel | String | Nieuwe waarde om de oude door vervangen. |
naamVervangendKenmerk | Optioneel | String | Naam van het kenmerk dat moet worden gebruikt als vervangende waarde |
sjabloon | Optioneel | String | Wanneer de sjabloonwaarde is opgegeven, zoeken we naar oldValue in de sjabloon en vervangen we deze door de bronwaarde . |
Tekens vervangen met een reguliere expressie
Voorbeeld 1:oudeWaarde en vervangendeWaarde gebruiken om de hele brontekenreeks te vervangen door een andere tekenreeks.
Stel dat uw HR-systeem een kenmerk BusinessTitle
heeft. Als onderdeel van recente wijzigingen in functietitels wil uw bedrijf iedereen met de titel 'Product Developer' bijwerken naar 'Software Engineer'.
In dat geval kunt u de volgende expressie gebruiken in de kenmerktoewijzing.
Replace([BusinessTitle],"Product Developer", , , "Software Engineer", , )
- bron:
[BusinessTitle]
- oudeWaarde: "Product Developer"
- vervangendeWaarde: "Software Engineer"
- Expressie-uitvoer: Software Engineer
Voorbeeld 2: oudeWaarde en sjabloon gebruiken om de brontekenreeks in te voegen in een andere gesjabloniseerde tekenreeks.
De parameter oudeWaarde is een onjuiste naam in dit scenario. Het is eigenlijk de waarde die wordt vervangen.
Stel dat u altijd aanmeldings-id wilt genereren in de indeling <username>@contoso.com
. Er is een bronkenmerk met de naam UserID en u wilt dat deze waarde wordt gebruikt voor het <username>
gedeelte van de aanmeldings-id.
In dat geval kunt u de volgende expressie gebruiken in de kenmerktoewijzing.
Replace([UserID],"<username>", , , , , "<username>@contoso.com")
- bron:
[UserID]
= "jsmith" - oudeWaarde: "
<username>
" - sjabloon: "
<username>@contoso.com
" - Expressie-uitvoer: "jsmith@contoso.com"
Voorbeeld 3: regexPatroon en vervangendeWaarde gebruiken om een deel van de brontekenreeks te extraheren en te vervangen door een lege tekenreeks of een aangepaste waarde die is opgebouwd met behulp van regexpatronen of regexgroepsnamen.
Stel dat u een bronkenmerk telephoneNumber
hebt met de onderdelen country code
en phone number
gescheiden door een spatieteken. In dit geval kunt u bijvoorbeeld +91 9998887777
de volgende expressie in uw kenmerktoewijzing gebruiken om het 10-cijferige telefoonnummer op te halen.
Replace([telephoneNumber], , "\\+(?<isdCode>\\d* )(?<phoneNumber>\\d{10})", , "${phoneNumber}", , )
- bron:
[telephoneNumber]
= "+91 9998887777" - regexPatroon: "
\\+(?<isdCode>\\d* )(?<phoneNumber>\\d{10})
" - vervangendeWaarde: "
${phoneNumber}
" - Expression-uitvoer: 9998887777
U kunt dit patroon ook gebruiken om tekens te verwijderen en een tekenreeks samen te vouwen. Met de volgende expressie worden bijvoorbeeld haakjes, streepjes en spatietekens in de tekenreeks voor mobiele nummers verwijderd en worden alleen cijfers geretourneerd.
Replace([mobile], , "[()\\s-]+", , "", , )
- bron:
[mobile] = "+1 (999) 888-7777"
- regexPatroon: "
[()\\s-]+
" - vervangendeWaarde: "" (lege tekenreeks)
- Expression-uitvoer: 19998887777
Voorbeeld 4:regexPatroon, regexGroepsnaam en vervangendeWaarde gebruiken om een deel van de brontekenreeks te extraheren en te vervangen door een andere letterlijke waarde of lege tekenreeks.
Stel dat uw bronsysteem een kenmerk AddressLineData heeft met de twee onderdelen straatnaam en huisnummer. Als onderdeel van een recente verplaatsing, laten we zeggen dat het straatnummer van het adres is gewijzigd en u alleen het nummer van het straatnummer van de adresregel wilt bijwerken. In dat geval kunt u de volgende expressie gebruiken in uw kenmerktoewijzing om het huisnummer op te halen.
Replace([AddressLineData], ,"(?<streetNumber>^\\d*)","streetNumber", "888", , )
- bron:
[AddressLineData]
= "545 T resource Street" - regexPatroon: "
(?<streetNumber>^\\d*)
" - regexGroepsnaam: "streetNumber"
- vervangendeWaarde: "888"
- Expressie-uitvoer: 888 Tremont Street
Hier volgt een ander voorbeeld waarbij het domeinachtervoegsel van een UPN wordt vervangen door een lege tekenreeks om aanmeldings-id te genereren zonder domeinachtervoegsel.
Replace([userPrincipalName], , "(?<Suffix>@(.)*)", "Suffix", "", , )
- bron:
[userPrincipalName]
= "jsmith@contoso.com" - regexPatroon: "
(?<Suffix>@(.)*)
" - regexGroepsnaam: "Suffix"
- vervangendeWaarde: "" (lege tekenreeks)
- Expressie-uitvoer: jsmith
Voorbeeld 5:regexPatroon, regexGroepsnaam en naamVervangendKenmerk gebruiken om scenario's af te handelen waarin het bronkenmerk leeg is of geen waarde heeft.
Stel dat uw bronsysteem een kenmerk telephoneNumber heeft. Als telephoneNumber leeg is, wilt u de 10 cijfers van het kenmerk mobileNumber extraheren. In dat geval kunt u de volgende expressie gebruiken in de kenmerktoewijzing.
Replace([telephoneNumber], , "\\+(?<isdCode>\\d* )(?<phoneNumber>\\d{10})", "phoneNumber" , , [mobile], )
- bron:
[telephoneNumber]
= "" (lege tekenreeks) - regexPatroon: "
\\+(?<isdCode>\\d* )(?<phoneNumber>\\d{10})
" - regexGroepsnaam: "phoneNumber"
- replacementAttributeName:
[mobile]
= "+91 8887779999" - Expression-uitvoer: 8887779999
Voorbeeld 6: u moet tekens zoeken die overeenkomen met de waarde van een reguliere expressie en deze verwijderen.
Replace([mailNickname], , "[a-zA-Z_]*", , "", , )
- bron [mailNickname]
- oudeWaarde: "john_doe72"
- vervangendeWaarde: ""
- Expressie-uitvoer: 72
SelectUniqueValue
Functie: SelectUniqueValue(uniekeWaardeRegel1, uniekeWaardeRegel2, uniekeWaardeRegel3, ...)
Beschrijving: vereist minimaal twee argumenten. Dit zijn regels voor het genereren van unieke waarden die zijn gedefinieerd met behulp van expressies. De functie evalueert elke regel en controleert vervolgens de gegenereerde waarde op uniekheid in de doel-app/-directory. De eerste unieke waarde die wordt gevonden, is de waarde die wordt geretourneerd. Als alle waarden al aanwezig zijn in het doel, wordt de vermelding ge borgd en wordt de reden vastgelegd in de auditlogboeken. Er is geen bovengrens aan het aantal argumenten dat kan worden opgegeven.
Deze functie moet zich op het hoogste niveau bevinden en kan niet worden genest.
Deze functie kan niet worden toegepast op kenmerken met een overeenkomende prioriteit.
Deze functie is alleen bedoeld voor het maken van vermeldingen. Als de functie wordt gebruikt met een kenmerk, stel dan de eigenschap Toewijzing toepassen in op Alleen tijdens het maken van een object.
Deze functie wordt momenteel ondersteund voor gebruik met deze toepassingen:
- Gebruikersinrichting van Workday naar Active Directory
- SuccessFactors naar Active Directory-gebruikersinrichting
- API-gestuurde inrichting voor on-premises Active Directory
SelectUniqueValue wordt niet ondersteund voor gebruik met andere inrichtingstoepassingen.
De LDAP-zoekfunctie die de functie SelectUniqueValue uitvoert in on-premises Active Directory, escapet geen speciale tekens, zoals diakritische tekens. Als u een tekenreeks als 'Jéssica Smith' doorgeeft die een speciaal teken bevat, treden er verwerkingsfouten op. Nest de functie NormalizeDiacritics , zoals in dit voorbeeld wordt weergegeven om speciale tekens te normaliseren.
Parameters:
Naam | Vereist/herhalend | Type | Opmerkingen |
---|---|---|---|
uniekeWaardeRegel1 … uniekeWaardeRegelN | Ten minste 2 zijn vereist, geen bovengrens | String | Lijst van te evalueren regels voor het genereren van unieke waarden. |
Unieke waarde genereren voor het kenmerk userPrincipalName (UPN)
Voorbeeld: op basis van de voornaam, tweede naam en achternaam van de gebruiker moet u een waarde voor het UPN-kenmerk genereren en controleren of deze uniek is in de AD-doeldirectory voordat u de waarde toewijst aan het UPN-kenmerk.
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")
)
Voorbeeldinvoer/-uitvoer:
- INVOER (PreferredFirstName): "John"
- INVOER (PreferredLastName): "Smith"
- UITVOER: "John.Smith@contoso.com" als de UPN-waarde John.Smith@contoso.com nog niet bestaat in de directory
- UITVOER: "J.Smith@contoso.com" als de UPN-waarde John.Smith@contoso.com al bestaat in de directory
- UITVOER: "Jo.Smith@contoso.com" als de twee bovenstaande UPN-waarden al bestaan in de directory
SingleAppRoleAssignment
Functie: SingleAppRoleAssignment([appRolToewijzingen])
Beschrijving: retourneert één appRolToewijzing uit de lijst van alle appRolToewijzingen die zijn toegewezen aan een gebruiker voor een bepaalde toepassing. Deze functie is vereist om het approltoewijzingenobject te converteren naar één rolnaamtekenreeks. De aanbevolen procedure is ervoor te zorgen dat slechts één approltoewijzing aan één gebruiker wordt toegewezen per keer. Deze functie wordt niet ondersteund in scenario's waarin gebruikers meerdere app-roltoewijzingen hebben.
Parameters:
Naam | Vereist/herhalend | Type | Opmerkingen |
---|---|---|---|
[appRoleAssignments] | Vereist | String | [appRoleAssignments]-object. |
Split
Functie: Split(bron, scheidingsteken)
Beschrijving: splitst een tekenreeks in een matrix met meerdere waarden, met behulp van het opgegeven scheidingsteken.
Parameters:
Naam | Vereist/herhalend | Type | Opmerkingen |
---|---|---|---|
bron | Vereist | String | bron-waarde die moet worden bijgewerkt. |
scheidingsteken | Vereist | String | Hiermee geeft u het teken op dat wordt gebruikt om de tekenreeks te splitsen (bijvoorbeeld: ",") |
Een tekenreeks splitsen in een matrix met meerdere waarden
Voorbeeld: u moet een door komma's gescheiden lijst van tekenreeksen nemen en deze splitsen in een matrix die kan worden gekoppeld aan een kenmerk met meerdere waarden, zoals het kenmerk PermissionSets van Salesforce. In dit voorbeeld wordt een lijst met machtigingensets ingevuld in extensionAttribute5 in Microsoft Entra-id.
Expressie: Split([extensionAttribute5], ",")
Voorbeeldinvoer/-uitvoer:
- INVOER (extensionAttribute5): "MachtigingenSetEen, MachtigingenSetTwee"
- UITVOER: ["MachtigingenSetEen", "MachtigingenSetTwee"]
StripSpaces
Functie: StripSpaces(bron)
Beschrijving: hiermee verwijdert u alle spaties (' ') uit de brontekenreeks.
Parameters:
Naam | Vereist/herhalend | Type | Opmerkingen |
---|---|---|---|
bron | Vereist | String | bron-waarde die moet worden bijgewerkt. |
Switch
Functie: Switch(bron, standaardwaarde, sleutel1, waarde1, sleutel2, waarde2, ...)
Beschrijving: wanneer de bron-waarde overeenkomt met een sleutel, wordt de waarde voor die sleutel geretourneerd. Als de bron-waarde niet overeenkomt met een van de sleutels, wordt de standaardwaarde geretourneerd. Sleutel- en waarde-parameters moeten altijd in paren worden opgegeven. De functie verwacht altijd een even aantal parameters. De functie mag niet worden gebruikt voor referentiële kenmerken zoals manager.
Notitie
De functie Switch voert een hoofdlettergevoelige tekenreeksvergelijking uit van de bron- en sleutel-waarden. Als u een hoofdletterongevoelige vergelijking wilt uitvoeren, normaliseer dan de bron-tekenreeks voordat u de vergelijking uitvoert met behulp van een geneste ToLower-functie om ervoor te zorgen dat alle sleutel-tekenreeksen kleine letters gebruiken.
Voorbeeld: Switch(ToLower([statusFlag]), "0", "true", "1", "false", "0")
. In dit voorbeeld kan het bron-kenmerk statusFlag
de waarden ('Waar' / 'waar' / 'WAAR') bevatten. De functie Switch converteert deze echter altijd naar tekenreeks in kleine letters 'true' voordat de vergelijking met sleutelparameters wordt vergeleken.
Let op
Gebruik voor de bronparameter niet de geneste functies IsPresent, IsNull of IsNullOrEmpty. Gebruik in plaats daarvan een letterlijke lege tekenreeks als een van de sleutelwaarden.
Voorbeeld: Switch([statusFlag], "Default Value", "true", "1", "", "0")
. Als in dit voorbeeld het bronkenmerk statusFlag
leeg is, retourneert de functie Schakelen de waarde 0.
Let op
Probleem: De inrichtingsservice heeft een kenmerkwaarde onjuist ingesteld op null in het doelsysteem wanneer u een switchinstructie gebruikt.
Oplossing: Gebruik een IIF-instructie in plaats van een switch-instructie om onverwachte null-waarden te voorkomen of gebruik de functie IgnoreFlowIfNullOrEmpty met de switch-instructie. Switch([companyName], "External", "Company A", "A", "Company B", "B") moet bijvoorbeeld worden weergegeven als IIF([companyName] = "Company A", "A", IIF([companyName] = "Company B", "B", "External")). In gevallen waarin de standaardwaarde een kenmerk is, gebruikt u een expressie zoals IgnoreFlowIfNullOrEmpty(switch([companyName], [companyName], "Company A", "A", "Company B", "B")).
Hoofdoorzaak: dit probleem is specifiek voor scenario's waarbij Microsoft Entra-id het bronsysteem is en de switch-instructie een standaardwaarde bevat.
Parameters:
Naam | Vereist/herhalend | Type | Opmerkingen |
---|---|---|---|
bron | Vereist | String | bron-waarde die moet worden bijgewerkt. |
standaardwaarde | Optioneel | String | De te gebruiken standaardwaarde wanneer de bron niet overeenkomt met een van de sleutels. Mag een lege tekenreeks ("") zijn. |
key | Vereist | String | Sleutel om de bron-waarde mee te vergelijken. |
value | Vereist | String | Vervangingswaarde voor de bron behorende bij de sleutel. |
Een waarde vervangen op basis van een vooraf gedefinieerde set opties
Voorbeeld: Definieer de tijdzone van de gebruiker op basis van de statuscode die is opgeslagen in Microsoft Entra-id. Als de statuscode niet overeenkomt met een van de vooraf gedefinieerde opties, moet de standaardwaarde 'Australië/Sydney' worden gebruikt.
Expression:Switch([state], "Australia/Sydney", "NSW", "Australia/Sydney","QLD", "Australia/Brisbane", "SA", "Australia/Adelaide")
Voorbeeldinvoer/-uitvoer:
- INVOER (staat): "QLD"
- UITVOER: "Australië/Brisbane"
ToLower
Functie: ToLower(bron, cultuur)
Beschrijving: neemt een bron-tekenreeks en converteert deze naar kleine letters met behulp van de opgegeven cultuurregels. Als er geen cultuurgegevens zijn opgegeven, wordt gebruikgemaakt van Invariant-cultuur.
Als u bestaande waarden in het doelsysteem wilt instellen op kleine letters, werkt u het schema voor uw doeltoepassing bij en stelt u de eigenschap caseExact in op 'true' voor het kenmerk waarin u geïnteresseerd bent.
Parameters:
Naam | Vereist/herhalend | Type | Opmerkingen |
---|---|---|---|
bron | Vereist | String | Gewoonlijk de naam van het kenmerk van het bronobject. |
cultuur | Optioneel | String | De notatie van de cultuurnaam op basis van RFC 4646 is taalcode2-land/regiocode2, waarbij languagecode2 de tweeletterige taalcode is en land/regiocode2 de tweeletterige subcultuurcode is. Voorbeelden zijn ja-JP voor Japans (Japan) en en-US voor Engels (Verenigde Staten). In gevallen waarin er geen tweeletterige taalcode beschikbaar is, wordt een code van drie letters gebruikt die is afgeleid van ISO 639-2. |
Gegenereerde UPN-waarde (userPrincipalName) converteren naar kleine letters
Voorbeeld: u wilt de UPN-waarde genereren door de bronvelden PreferredFirstName en PreferredLastName samen te voegen en alle tekens te converteren naar kleine letters.
ToLower(Join("@", NormalizeDiacritics(StripSpaces(Join(".", [PreferredFirstName], [PreferredLastName]))), "contoso.com"))
Voorbeeldinvoer/-uitvoer:
- INVOER (PreferredFirstName): "John"
- INVOER (PreferredLastName): "Smith"
- UITVOER: "john.smith@contoso.com"
ToUpper
Functie: ToUpper(bron, cultuur)
Beschrijving: neemt een bron-tekenreeks en converteert deze naar hoofdletters met behulp van de opgegeven cultuurregels. Als er geen cultuurgegevens zijn opgegeven, wordt gebruikgemaakt van Invariant-cultuur.
Als u bestaande waarden in het doelsysteem wilt instellen op hoofdletters, werkt u het schema voor uw doeltoepassing bij en stelt u de eigenschap caseExact in op 'true' voor het kenmerk waarin u geïnteresseerd bent.
Parameters:
Naam | Vereist/herhalend | Type | Opmerkingen |
---|---|---|---|
bron | Vereist | String | Gewoonlijk de naam van het kenmerk van het bron-object. |
cultuur | Optioneel | String | De notatie van de cultuurnaam op basis van RFC 4646 is taalcode2-land/regiocode2, waarbij languagecode2 de tweeletterige taalcode is en land/regiocode2 de tweeletterige subcultuurcode is. Voorbeelden zijn ja-JP voor Japans (Japan) en en-US voor Engels (Verenigde Staten). In gevallen waarin er geen tweeletterige taalcode beschikbaar is, wordt een code van drie letters gebruikt die is afgeleid van ISO 639-2. |
Word
Functie: Word(tekenreeks, woordnummer, scheidingstekens)
Beschrijving: de functie Word retourneert een woord in een tekenreeks op basis van parameters die de scheidingstekens beschrijven die moeten worden gebruikt en het woordnummer dat moet worden geretourneerd. Elke tekenreeks in tekenreeks, gescheiden door een van de tekens in scheidingstekens, wordt aangeduid als een woord:
Als getal < 1, retourneer lege string. Als tekenreeks null is, retourneer lege tekenreeks. Als tekenreeks minder dan numerieke woorden bevat of als een tekenreeks geen woorden bevat die worden geïdentificeerd door scheidingstekens, wordt een lege tekenreeks geretourneerd.
Parameters:
Naam | Vereist/herhalend | Type | Opmerkingen |
---|---|---|---|
Tekenreeks | Vereist | Kenmerk met meerdere waarden | Tekenreeks om een woord uit te retourneren. |
woordnummer | Vereist | Geheel getal | Nummer dat aangeeft welk woord moet worden geretourneerd |
scheidingstekens | Vereist | String | Een tekenreeks die de scheidingstekens representeert die moeten worden gebruikt om woorden te identificeren |
Voorbeeld:Word("The quick brown fox",3," ")
Retourneert 'brown'.
Word("This,string!has&many separators",3,",!&#")
Retourneert 'has'.
Voorbeelden
Deze sectie bevat meer voorbeelden van het gebruik van expressiefuncties.
Bekende domeinnaam strippen
Strip een bekende domeinnaam uit het e-mailadres van een gebruiker om een gebruikersnaam te verkrijgen. Als het domein bijvoorbeeld 'contoso.com' is, kunt u de volgende expressie gebruiken:
Expression:Replace([mail], "@contoso.com", , ,"", ,)
Voorbeeldinvoer/-uitvoer:
- INPUT (e-mail): "john.doe@contoso.com"
- UITVOER: "john.doe"
Gebruikersalias genereren door delen van voor- en achternaam samen te voegen
Genereer een gebruikersalias door de eerste drie letters van de voornaam van de gebruiker en de eerste vijf letters van de achternaam van de gebruiker te nemen.
Expression:Append(Mid([givenName], 1, 3), Mid([surname], 1, 5))
Voorbeeldinvoer/-uitvoer:
- INVOER (givenName): "John"
- INVOER (surname): "Doe"
- UITVOER: "JohDoe"
Voeg een komma toe tussen achternaam en voornaam.
Voeg een komma toe tussen achternaam en voornaam.
Expression:Join(", ", "", [surname], [givenName])
Voorbeeldinvoer/-uitvoer:
- INVOER (givenName): "John"
- INVOER (surname): "Doe"
- UITVOER: "Doe, John"
Genereer een id voor een gebruiker op basis van hun Microsoft Entra-object-id. Verwijder alle letters uit de id en voeg 1000 toe aan het begin.
Met deze expressie kunt u een id genereren voor een gebruiker die begint met 1000 en waarschijnlijk uniek is.
Expressie: Join("", 1000, Replace(ConvertToUTF8Hex([objectId]), "[a-zA-Z_]*", "", "", , ))
Voorbeeldinvoer/-uitvoer:
- INVOER: "00aa00aa-bb11-cc22-dd33-44eee44ee44eee"
- UITVOER: "100064303565343762312333930392343435612626135652636136306362633065346234"
Gerelateerde artikelen
- Automatisch gebruikers voor SaaS-apps inrichten en de inrichting ongedaan maken
- Kenmerktoewijzingen aanpassen voor het inrichten van gebruikers
- Bereikfilters voor het inrichten van gebruikers
- SCIM gebruiken om automatische inrichting van gebruikers en groepen van Microsoft Entra-id in te schakelen voor toepassingen
- Meldingen over accountinrichting
- Lijst met zelfstudies voor het integreren van SaaS-apps