Verweis zum Schreiben von Ausdrücken für Attributzuordnungen in Microsoft Entra ID

Wenn Sie die Bereitstellung für eine SaaS-Anwendung konfigurieren, ist einer der Attributzuordnungstypen, die Sie angeben können, eine Ausdruckszuordnung. Für diese Zuordnungen müssen Sie einen skriptähnlichen Ausdruck schreiben, mit dem Sie die Daten Ihrer Benutzer in Formate transformieren können, die für die SaaS-Anwendung akzeptabler sind.

Syntaxübersicht

Die Syntax für die Ausdrücke für Attributzuordnungen ist den Funktionen von Visual Basic for Applications (VBA) ähnlich.

  • Der gesamte Ausdruck muss mittels Funktionen definiert werden, die aus einem Namen mit darauffolgenden Argumenten in Klammern bestehen: FunctionName(<<argument 1>>,<<argument N>>)

  • Sie können Funktionen ineinander verschachteln. Beispiel: FunctionOne(FunctionTwo(<<argument1>>))

  • Sie können drei verschiedene Argumententypen an die Funktionen übergeben:

    1. Attribute, die in eckige Klammern eingeschlossen werden müssen. Beispiel: [Attributname]
    2. Zeichenfolgenkonstanten, die in doppelte Anführungszeichen eingeschlossen werden müssen. Beispiel: „USA“
    3. Andere Funktionen Beispiel: FunctionOne(<<argument1>>, FunctionTwo(<<argument2>>))
  • Bei Zeichenfolgenkonstanten, in denen ein umgekehrter Schrägstrich ( \ ) oder ein Anführungszeichen ( " ) benötigt wird, muss dieser bzw. dieses mit einem umgekehrten Schrägstrichsymbol ( \ ) versehen werden. Beispiel: "Firmenname: \"Contoso\""

  • Bei der Syntax muss die Groß- und Kleinschreibung beachtet werden – ein wichtiger Punkt, wenn Sie die Funktionen nicht direkt von hier kopieren, sondern als Zeichenfolgen eingeben.

Liste der Funktionen

AppendAppRoleAssignmentsComplexBitAndCBoolCDateCoalesceConvertToBase64ConvertToUTF8HexCountCStrDateAddDateDiffDateFromNumFormatDateTimeGuidIgnoreFlowIfNullOrEmptyIIFInStrIsNullIsNullOrEmptyIsPresentIsStringItemJoinLeftMidNormalizeDiacriticsNotNowNumFromDatePCaseRandomStringRedactRemoveDuplicatesReplaceSelectUniqueValueSingleAppRoleAssignmentSplitStripSpacesSwitchToLowerToUpperWord


Anfügen

Funktion: Append(Quelle, Suffix)

Beschreibung: Fügt das Suffix am Ende eines angegebenen Quellzeichenfolgenwerts an.

Parameter:

Name Erforderlich/wiederholt type Notizen
Quelle Erforderlich String Normalerweise der Name des Attributs aus dem Quellobjekt
Suffix Erforderlich String Die Zeichenfolge, die Sie am Ende des Quellwerts anfügen möchten

Anfügen eines konstanten Suffixes an einen Benutzernamen

Beispiel: Wenn Sie Salesforce Sandbox verwenden, müssen Sie möglicherweise allen Benutzernamen ein weiteres Suffix anfügen, bevor Sie diese synchronisieren.

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

Beispieleingabe/-ausgabe:

  • EINGABE: (userPrincipalName): "John.Doe@contoso.com"
  • AUSGABE: „John.Doe@contoso.com.test“

AppRoleAssignmentsComplex

Funktion: AppRoleAssignmentsComplex([appRoleAssignments])

Beschreibung: Wird zum Konfigurieren mehrerer Rollen für einen Benutzer verwendet. Ausführliche Informationen zur Verwendung finden Sie unter Tutorial: Anpassen von Attributzuordnungen für die Benutzerbereitstellung für SaaS-Anwendungen in Microsoft Entra ID.

Parameter:

Name Erforderlich/wiederholt type Notizen
[appRoleAssignments] Erforderlich String [appRoleAssignments] -Objekt

BitAnd

Funktion: BitAnd(value1, value2)

Beschreibung: Diese Funktion konvertiert beide Parameter in die binäre Darstellung und legt ein Bit auf Folgendes fest:

  • 0 – wenn mindestens eines der entsprechenden Bits in „value1“ und „value2“ den Wert „0“ aufweist
  • 1 – wenn beide entsprechenden Bits 1 sind.

Anders gesagt: sie gibt in allen Fällen 0 zurück, außer wenn die entsprechenden Bits beider Parameter 1 sind.

Parameter:

Name Erforderlich/wiederholt type Notizen
value1 Erforderlich Nummer Numerischer Wert, der mit „value2“ mit AND verarbeitet werden soll
value2 Erforderlich Nummer Numerischer Wert, der mit „value1“ mit AND verarbeitet werden soll

Beispiel:BitAnd(&HF, &HF7)

11110111 AND 00000111 = 00000111, daher gibt BitAnd „7“ zurück, den Binärwert von 00000111.


ZBool

Funktion:CBool(Expression)

Beschreibung:CBool gibt einen booleschen Wert zurück, der auf dem ausgewerteten Ausdruck basiert. Wenn die Auswertung des Ausdrucks einen Wert ungleich 0 (null) ergibt, gibt CBoolTrue zurück. Andernfalls wird False zurückgegeben.

Parameter:

Name Erforderlich/wiederholt type Notizen
Ausdruck Erforderlich expression Ein beliebiger gültiger Ausdruck

Beispiel:CBool([attribute1] = [attribute2])
Gibt True zurück, wenn beide Attribute den gleichen Wert haben.


ZDate

Funktion:
CDate(expression)

Beschreibung:
Die CDate-Funktion gibt einen UTC-DateTime-Wert aus einer Zeichenfolge zurück. DateTime ist kein nativer Attributtyp, kann aber in Datumsfunktionen wie FormatDateTime und DateAdd verwendet werden.

Parameter:

Name Erforderlich/wiederholt type Notizen
Ausdruck Erforderlich Ausdruck Jede gültige Zeichenfolge, die ein Datum/eine Uhrzeit darstellt. Informationen zu unterstützten Formaten finden Sie unter .NET: Benutzerdefinierte Formatzeichenfolgen für Datum und Uhrzeit.

Hinweise:
Die zurückgegebene Zeichenfolge wird immer als UTC-Wert angegeben und weist das Format M/d/yyyy h:mm:ss tt auf.

Beispiel 1:
CDate([StatusHireDate])
Beispieleingabe/-ausgabe:

  • EINGABE: (StatusHireDate): "2020-03-16-07:00"
  • AUSGABE: "3/16/2020 7:00:00 AM" <-- Beachten Sie, dass die UTC-Entsprechung des obigen DateTime-Werts zurückgegeben wird

Beispiel 2:
CDate("2021-06-30+08:00")
Beispieleingabe/-ausgabe:

  • EINGABE: "2021-06-30+08:00"
  • AUSGABE: "6/29/2021 4:00:00 PM" <-- Beachten Sie, dass die UTC-Entsprechung des obigen DateTime-Werts zurückgegeben wird

Beispiel 3:
CDate("2009-06-15T01:45:30-07:00")
Beispieleingabe/-ausgabe:

  • EINGABE: "2009-06-15T01:45:30-07:00"
  • AUSGABE: "6/15/2009 8:45:30 AM" <-- Beachten Sie, dass die UTC-Entsprechung des obigen DateTime-Werts zurückgegeben wird

Coalesce

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

Beschreibung: Gibt den ersten Quellwert zurück, der nicht NULL ist. Wenn alle Argumente NULL sind und „defaultValue“ vorhanden ist, wird der Standardwert (defaultValue) zurückgegeben. Wenn alle Argumente NULL sind und defaultValue nicht vorhanden ist, gibt Coalesce NULL zurück.

Parameter:

Name Erforderlich/wiederholt type Notizen
Quelle1 … QuelleN Erforderlich String Erforderlich, unterschiedlich oft. Normalerweise der Name des Attributs aus dem Quellobjekt
defaultValue Optional String Der zu verwendende Standardwert, wenn alle Quellwerte NULL sind. Kann eine leere Zeichenfolge ("") sein.

E-Mail-Wert übermitteln, wenn nicht NULL, andernfalls userPrincipalName-Wert übermitteln

Beispiel: Sie möchten das E-Mail-Attribut übermitteln, wenn es vorhanden ist. Andernfalls möchten Sie stattdessen den Wert von userPrincipalName übermitteln.

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

Beispieleingabe/-ausgabe:

  • EINGABE (mail): NULL
  • EINGABE (userPrincipalName): "John.Doe@contoso.com"
  • AUSGABE: „John.Doe@contoso.com“

ConvertToBase64

Funktion: ConvertToBase64(source)

Beschreibung: Die ConvertToBase64-Funktion konvertiert eine Zeichenfolge in eine Unicode-Base64-Zeichenfolge.

Parameter:

Name Erforderlich/wiederholt type Notizen
Quelle Erforderlich String Eine in Base64 zu konvertierende Zeichenfolge

Beispiel:ConvertToBase64("Hello world!")

Gibt „SABlAGwAbABvACAAdwBvAHIAbABkACEA“ zurück.


ConvertToUTF8Hex

Funktion: ConvertToUTF8Hex(source)

Beschreibung: Die ConvertToUTF8Hex-Funktion konvertiert eine Zeichenfolge in einen hexadezimal-codierten UTF8-Wert.

Parameter:

Name Erforderlich/wiederholt type Notizen
Quelle Erforderlich String Eine in UTF-8 (Hex) zu konvertierende Zeichenfolge

Beispiel:ConvertToUTF8Hex("Hello world!")

Gibt „48656C6C6F20776F726C6421“ zurück.


Anzahl

Funktion: Count(attribute)

Beschreibung: Die Count-Funktion gibt die Anzahl von Elementen in einem mehrwertigen Attribut zurück.

Parameter:

Name Erforderlich/wiederholt type Notizen
attribute Erforderlich Attribut Mehrwertiges Attribut, aus dem Elemente gezählt werden

CStr

Funktion: CStr(value)

Beschreibung: Die CStr-Funktion konvertiert einen Wert in einen Zeichenfolgendatentyp.

Parameter:

Name Erforderlich/wiederholt type Notizen
value Erforderlich Numerischer Wert, Verweisattribut oder boolescher Wert Kann ein numerischer Wert, ein Verweisattribut oder ein boolescher Wert sein.

Beispiel:CStr([dn])

Gibt „cn=Joe,dc=contoso,dc=com“ zurück


DateAdd

Funktion:
DateAdd(interval, value, dateTime)

Beschreibung:
Gibt eine Datums-/Uhrzeitzeichenfolge zurück, die ein Datum darstellt, zu dem ein bestimmtes Zeitintervall hinzugefügt wurde. Das zurückgegebene Datum weist das folgende Format auf: M/d/yyyy h:mm:ss tt.

Parameter:

Name Erforderlich/wiederholt type Notizen
interval Erforderlich String Gibt das Zeitintervall an, das Sie hinzufügen möchten. Die zulässigen Werte werden unterhalb dieser Tabelle aufgeführt.
value Erforderlich Number Die Anzahl der Einheiten, die Sie hinzufügen möchten. Der Wert kann positiv (für Datumsangaben in der Zukunft) oder negativ (für Datumsangaben in der Vergangenheit) sein.
dateTime Erforderlich Datetime DateTime-Wert, der das Datum darstellt, dem das Intervall hinzugefügt wird.

Verwenden Sie bei Übergabe einer Datumszeichenfolge als Eingabe die CDate-Funktion zum Umschließen der DateTime-Zeichenfolge. Verwenden Sie die Now-Funktion zum Abrufen der Systemzeit in UTC.

Die interval-Zeichenfolge muss einem der folgenden Werte entsprechen:

  • yyyy: Jahr
  • m: Monat
  • d: Tag
  • ww: Woche
  • h: Stunde
  • n: Minute
  • s: Sekunde

Beispiel 1: Generieren eines Datumswerts basierend auf eingehendem StatusHireDate-Informationen aus Workday
DateAdd("d", 7, CDate([StatusHireDate]))

Beispiel interval value dateTime (Wert der StatusHireDate-Variablen) output
Hinzufügen von 7 Tagen zum Einstellungsdatum "d" 7 2012-03-16-07:00 3/23/2012 7:00:00 AM
Abrufen des Datums zehn Tage vor dem Einstellungsdatum "d" -10 2012-03-16-07:00 3/6/2012 7:00:00 AM
Hinzufügen von zwei Wochen zum Einstellungsdatum "ww" 2 2012-03-16-07:00 3/30/2012 7:00:00 AM
Hinzufügen von zehn Monaten zum Einstellungsdatum "m" 10 2012-03-16-07:00 1/16/2013 7:00:00 AM
Hinzufügen von zwei Jahren zum Einstellungsdatum "yyyy" 2 2012-03-16-07:00 3/16/2014 7:00:00 AM

DateDiff

Funktion:
DateDiff(interval, date1, date2)

Beschreibung:
Diese Funktion verwendet den interval-Parameter, um eine Zahl zurückzugeben, die den Unterschied zwischen den beiden Eingabedaten angibt. Er gibt zurück.

  • eine positive Zahl, wenn date2 > date1,
  • eine negative Zahl, wenn date2 < date1,
  • 0, wenn date2 == date1

Parameter:

Name Erforderlich/Optional type Notizen
interval Erforderlich String Zeitintervall, das zum Berechnen der Differenz verwendet werden soll
date1 Erforderlich Datetime DateTime, das ein gültiges Datum darstellt
date2 Erforderlich Datetime DateTime, das ein gültiges Datum darstellt

Verwenden Sie bei Übergabe einer Datumszeichenfolge als Eingabe die CDate-Funktion zum Umschließen der DateTime-Zeichenfolge. Verwenden Sie die Now-Funktion zum Abrufen der Systemzeit in UTC.

Die interval-Zeichenfolge muss einem der folgenden Werte entsprechen:

  • yyyy: Jahr
  • m: Monat
  • d: Tag
  • ww: Woche
  • h: Stunde
  • n: Minute
  • s: Sekunde

Beispiel 1: Vergleichen des aktuellen Datums mit dem Einstellungsdatum von Workday mit unterschiedlichen Intervallen
DateDiff("d", Now(), CDate([StatusHireDate]))

Beispiel interval date1 date2 output
Positive Differenz in Tagen zwischen zwei Datumsangaben d 2021-08-18+08:00 2021-08-31+08:00 13
Negative Differenz in Tagen zwischen zwei Datumsangaben T 8/25/2021 5:41:18 PM 2012-03-16-07:00 -3449
Differenz in Wochen zwischen zwei Datumsangaben ww 8/25/2021 5:41:18 PM 2012-03-16-07:00 -493
Differenz in Monaten zwischen zwei Datumsangaben m 8/25/2021 5:41:18 PM 2012-03-16-07:00 -113
Differenz in Jahren zwischen zwei Datumsangaben yyyy 8/25/2021 5:41:18 PM 2012-03-16-07:00 –9
Differenz, wenn beide Datumsangaben identisch sind T 2021-08-31+08:00 2021-08-31+08:00 0
Differenz in Stunden zwischen zwei Datumsangaben h 2021-08-24 2021-08-25 24
Differenz in Minuten zwischen zwei Datumsangaben n 2021-08-24 2021-08-25 1440
Differenz in Sekunden zwischen zwei Datumsangaben s 2021-08-24 2021-08-25 86.400

Beispiel 2: Kombinieren von DateDiff mit der IIF-Funktion zum Festlegen des Attributwerts
Wenn ein Konto in Workday aktiv ist, legen Sie das Attribut des Nutzers accountEnabled (Konto aktiviert) nur dann auf Wahr (True) fest, wenn das Einstellungsdatum innerhalb der nächsten fünf Tage liegt.

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

DateFromNum

Funktion: DateFromNum(value)

Beschreibung: Die DateFromNum-Funktion konvertiert einen Wert im AD-Datumsformat in einen DateTime-Typ.

Parameter:

Name Erforderlich/wiederholt type Notizen
value Erforderlich Date AD-Datum, das in den DateTime-Typ konvertiert werden soll

Beispiel:DateFromNum([lastLogonTimestamp])

DateFromNum(129699324000000000)

Gibt einen DateTime-Wert zurück, der für den 1. Januar 2012 um 23:00 Uhr steht.


FormatDatumZeit

Funktion: FormatDateTime(source, dateTimeStyles, inputFormat, outputFormat)

Beschreibung: Konvertiert eine Datumszeichenfolge aus einem Format in ein anderes Format.

Parameter:

Name Erforderlich/wiederholt type Notizen
Quelle Erforderlich String Normalerweise der Name des Attributs aus dem Quellobjekt
dateTimeStyles Optional String Verwenden Sie diesen Parameter, um die Formatierungsoptionen anzugeben, mit denen die Art der Analyse einer Zeichenfolge für eine Reihe von Datums- und Uhrzeitanalysemethoden angepasst wird. Unterstützte Werte finden Sie in der Dokumentation zu DateTimeStyles. Wird das Feld leer gelassen, wird als Standardwert „DateTimeStyles.RoundtripKind, DateTimeStyles.AllowLeadingWhite, DateTimeStyles.AllowTrailingWhite“ verwendet.
Eingabeformat Erforderlich String Erwartetes Format des Quellwerts. Informationen zu unterstützten Formaten finden Sie unter .NET: Benutzerdefinierte Formatzeichenfolgen für Datum und Uhrzeit.
Ausgabeformat Erforderlich String Format des Ausgabedatums.

Ausgabedatum eines Datums als Zeichenfolge in einem bestimmten Format

Beispiel: Sie möchten Datumsangaben in einem bestimmten Format an eine SaaS-Anwendung wie ServiceNow senden. Sie können ggf. den folgenden Ausdruck verwenden:

Ausdruck:

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

Beispieleingabe/-ausgabe:

  • EINGABE (extensionAttribute1): 20150123105347.1Z
  • AUSGABE: "2015-01-23"

Guid

Funktion: Guid()

Beschreibung: Die Guid-Funktion generiert eine neue GUID nach dem Zufallsprinzip.

Beispiel:
Guid()
Beispielausgabe: "1088051a-cd4b-4288-84f8-e02042ca72bc"


IgnoreFlowIfNullOrEmpty

Funktion: IgnoreFlowIfNullOrEmpty(expression)

Beschreibung: Die IgnoreFlowIfNullOrEmpty-Funktion weist den Bereitstellungsdienst an, das Attribut zu ignorieren und aus dem Flow zu löschen, wenn die eingeschlossene Funktion oder das eingeschlossene Attribut NULL oder leer ist.

Parameter:

Name Erforderlich/wiederholt type Notizen
Ausdruck Erforderlich Ausdruck Der auszuwertende Ausdruck

Beispiel 1: Entfernen eines Attributs aus dem Flow, wenn es NULL ist
IgnoreFlowIfNullOrEmpty([department])
Mit dem obigen Ausdruck wird das Attribut „department“ aus dem Bereitstellungsflow entfernt, wenn es NULL oder leer ist.

Beispiel 2: Entfernen eines Attributs aus dem Flow, wenn der Ausdruck als eine leere Zeichenfolge oder NULL ausgewertet wird
Angenommen, das prefix des Attributs „SuccessFactors“ wird mithilfe der folgenden Ausdruckszuordnung dem lokalen Active Directory-Attribut personalTitle zugeordnet:
IgnoreFlowIfNullOrEmpty(Switch([prefix], "", "3443", "Dr.", "3444", "Prof.", "3445", "Prof. Dr."))
Der obige Ausdruck wertet zuerst die Switch-Funktion aus. Wenn das prefix-Attribut keinen der in der Switch-Funktion aufgeführten Werte auflistet, gibt Switch eine leere Zeichenfolge zurück, und das Attribut personalTitle wird nicht in den Bereitstellungsflow für die lokale Active Directory-Instanz eingeschlossen.


IIF

Funktion: IIF(condition,valueIfTrue,valueIfFalse)

Beschreibung: Die IIF-Funktion gibt basierend auf einer angegebenen Bedingung einen Wert aus einem Satz möglicher Werte zurück.

Parameter:

Name Erforderlich/wiederholt type Notizen
condition Erforderlich Variable oder Ausdruck Ein Wert oder Ausdruck, der als TRUE oder FALSE ausgewertet werden kann.
valueIfTrue Erforderlich Variable oder Zeichenfolge Der zurückgegebene Wert, wenn die Bedingung als „True“ ausgewertet wird.
valueIfFalse Erforderlich Variable oder Zeichenfolge Der zurückgegebene Wert, wenn die Bedingung als „False“ ausgewertet wird.

Die folgenden Vergleichsoperatoren können in der Bedingung verwendet werden:

  • Gleich (=) und ungleich (<>)
  • Größer als (>) und größer als oder gleich (>=)
  • Kleiner als (<) und kleiner als oder gleich (<=)

Beispiel: Der Wert des Zielattributs wird auf das Quellattribut für das Land festgelegt, wenn country="USA" lautet, andernfalls wird der Wert des Zielattributs auf das Quellattribut für die Abteilung festgelegt. IIF([country]="USA",[country],[department])

Bekannte Einschränkungen

Dieser Abschnitt enthält Einschränkungen und Problemumgehungen für die IIF-Funktion. Informationen zur Problembehandlung bei der Benutzererstellung finden Sie unter Erstellung schlägt aufgrund von NULL/leeren Werten fehl.

  • Die IIF-Funktion bietet derzeit keine Unterstützung für die logischen Operatoren AND und OR.
  • Verwenden Sie zur Implementierung der AND-Logik geschachtelte IIF-Anweisungen, die entlang des trueValue-Pfads verkettet sind. Beispiel: Wenn country="USA" und state="CA" lauten, soll der Wert TRUE zurückgegeben werden. In allen anderen Fällen lautet der Rückgabewert FALSE. IIF([country]="USA",IIF([state]="CA","True","False"),"False")
  • Um die OR-Logik zu implementieren, verwenden Sie geschachtelte IIF-Anweisungen, die entlang des falseValue-Pfads verkettet sind. Beispiel: Wenn country="USA" oder state="CA" lauten, soll der Wert TRUE zurückgegeben werden. In allen anderen Fällen lautet der Rückgabewert FALSE. IIF([country]="USA","True",IIF([state]="CA","True","False"))
  • Wenn das in der IIF Funktion verwendete Quellattribut leer oder NULL ist, schlägt die Bedingungsprüfung fehl.
    • Beispiele für nicht unterstützte IIF-Ausdrücke:
      • IIF([country]="","Other",[country])
      • IIF(IsNullOrEmpty([country]),"Other",[country])
      • IIF(IsPresent([country]),[country],"Other")
    • Empfohlene Problemumgehung: Verwenden Sie Switch-Funktion, um auf leere Werte bzw. NULL-Werte zu überprüfen. Beispiel: Wenn das country-Attribut leer ist, soll der Wert „Sonstige“ festgelegt werden. Ist ein Wert vorhanden, soll der Wert des country-Attributs an das Zielattribut übergeben werden.
      • Switch([country],[country],"","Other")

InStr

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

Beschreibung: Die InStr-Funktion sucht nach dem ersten Vorkommen einer Teilzeichenfolge in einer Zeichenfolge.

Parameter:

Name Erforderlich/wiederholt type Notizen
value1 Erforderlich String Zu durchsuchende Zeichenfolge
value2 Erforderlich String Zu suchende Zeichenfolge
start Optional Integer Startposition für die Suche nach der Teilzeichenfolge
compareType Optional Enum Kann „vbTextCompare“ oder „vbBinaryCompare“ sein

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

Wird als 5 ausgewertet

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

Wird als 7 ausgewertet.


IsNull

Funktion: IsNull(Expression)

Beschreibung: Die IsNull-Funktion gibt „True“ zurück, wenn die Auswertung des Ausdrucks einen Nullwert ergibt. Für ein Attribut wird ein Nullwert durch die Abwesenheit des Attributs ausgedrückt.

Parameter:

Name Erforderlich/wiederholt type Notizen
Ausdruck Erforderlich Ausdruck Der auszuwertende Ausdruck

Beispiel:IsNull([displayName])

Gibt „True“ zurück, wenn das Attribut nicht vorhanden ist.


IsNullorEmpty

Funktion: IsNullOrEmpty(Expression)

Beschreibung: Die IsNullOrEmpty-Funktion gibt „True“ zurück, wenn der Ausdruck einem Nullwert oder einer leeren Zeichenfolge entspricht. Wird für ein Attribut als „True“ ausgewertet, wenn das Attribut nicht vorhanden oder zwar vorhanden, aber eine leere Zeichenfolge ist. Die Umkehrung dieser Funktion heißt "IsPresent".

Parameter:

Name Erforderlich/wiederholt type Notizen
Ausdruck Erforderlich Ausdruck Der auszuwertende Ausdruck

Beispiel:IsNullOrEmpty([displayName])

Gibt „True“ zurück, wenn das Attribut nicht vorhanden ist oder eine leere Zeichenfolge darstellt.


IsPresent

Funktion: IsPresent (Ausdruck)

Beschreibung: Die IsPresent-Funktion gibt „True“ zurück, wenn der Ausdruck zu einer Zeichenfolge ausgewertet wird, die kein Nullwert und nicht leer ist. Die umgekehrte Funktion heißt „IsNullOrEmpty“.

Parameter:

Name Erforderlich/wiederholt type Notizen
Ausdruck Erforderlich Ausdruck Der auszuwertende Ausdruck

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


IsString

Funktion: IsString(Expression)

Beschreibung: Die IsString-Funktion wird als „True“ ausgewertet, wenn der Ausdruck als Zeichenfolgentyp ausgewertet werden kann.

Parameter:

Name Erforderlich/wiederholt type Notizen
Ausdruck Erforderlich Ausdruck Der auszuwertende Ausdruck

Element

Funktion: Item(attribute, index)

Beschreibung: Die Item-Funktion gibt ein Element aus einer mehrwertigen Zeichenfolge oder einem mehrwertigen Attribut zurück.

Parameter:

Name Erforderlich/wiederholt type Notizen
attribute Erforderlich attribute Das zu durchsuchende mehrwertige Attribut
Index Erforderlich Integer Index für ein Element in der mehrwertigen Zeichenfolge

Beispiel:Item([proxyAddresses], 1) gibt das erste Element im mehrwertigen Attribut zurück. Index 0 sollte nicht verwendet werden.


Join

Funktion: Join(Trennzeichen, Quelle1, Quelle2, …)

Beschreibung: „Join()“ ist vergleichbar mit „Append()“, kann jedoch mehrere Quellzeichenfolgenwerte in einer einzelnen Zeichenfolge kombinieren, wobei die Werte jeweils durch eine Trennzeichenfolge getrennt werden.

Wenn einer der Quellwerte ein mehrwertiges Attribut ist, werden die einzelnen Werte in diesem Attribut miteinander verknüpft und dabei durch den Trennzeichenwert getrennt.

Parameter:

Name Erforderlich/wiederholt type Notizen
Trennzeichen Erforderlich String Zeichenfolge, die zur Trennung von Quellwerten verwendet wird, wenn diese zu einer einzelnen Zeichenfolge zusammengesetzt werden. Kann "" sein, wenn kein Trennzeichen erforderlich ist.
Quelle1 … QuelleN Erforderlich, unterschiedlich oft String Zeichenfolgenwerte, die zusammengesetzt werden sollen.

Left

Funktion: Left(String,NumChars)

Beschreibung: Die Left-Funktion gibt eine angegebene Anzahl von Zeichen von der linken Seite einer Zeichenfolge zurück. Wenn "numChars" = 0, wird eine leere Zeichenfolge zurückgegeben. Wenn "numChars" < 0, wird die Eingabezeichenfolge zurückgegeben. Wenn die Zeichenfolge einen Nullwert aufweist, wird eine leere Zeichenfolge zurückgegeben. Wenn die Zeichenfolge weniger Zeichen enthält als in „numChars“ angegeben, wird eine identische Zeichenfolge (also eine Zeichenfolge, die alle in Parameter 1 enthaltenen Zeichen enthält) zurückgegeben.

Parameter:

Name Erforderlich/wiederholt type Notizen
String Erforderlich attribute Die Zeichenfolge, aus der Zeichen zurückgegeben werden sollen
NumChars Erforderlich Integer Eine Zahl, die die Anzahl von Zeichen angibt, die ab dem Anfang der Zeichenfolge (links) zurückgegeben werden sollen

Beispiel:Left("John Doe", 3)

Gibt „Joh“ zurück.


Mid

Funktion: Mid(Quelle, Start, Länge)

Beschreibung: Gibt eine Teilzeichenfolge des Quellwerts zurück. Eine Teilzeichenfolge ist eine Zeichenfolge, die nur einige der Zeichen aus der Quellzeichenfolge enthält.

Parameter:

Name Erforderlich/wiederholt type Notizen
Quelle Erforderlich String Normalerweise der Name des Attributs.
start Erforderlich Integer Index in der Quellzeichenfolge , an dem die Teilzeichenfolge beginnen soll. Das erstes Zeichen in der Zeichenfolge hat den Index 1, das zweite Zeichen hat den Index 2 usw.
length Erforderlich Integer Die Länge der Teilzeichenfolge. Wenn die Länge außerhalb der Quell-Zeichenfolge endet, gibt die Funktion die Teilzeichenfolge zwischen dem Start-Index und dem Ende der Quell-Zeichenfolge zurück.

NormalizeDiacritics

Funktion: NormalizeDiacritics(Quelle)

Beschreibung: Erfordert ein einzelnes Zeichenfolgenargument. Gibt die Zeichenfolge zurück und ersetzt sämtliche diakritische Zeichen durch entsprechende nicht diakritische Zeichen. Dient in der Regel dazu, Vor- und Nachnamen mit diakritischen Zeichen (Akzenten) in zulässige Werte zu konvertieren, die in verschiedenen Benutzer-IDs verwendet werden können (etwa in Benutzerprinzipalnamen, SAM-Kontonamen und E-Mail-Adressen).

Parameter:

Name Erforderlich/wiederholt type Notizen
Quelle Erforderlich String In der Regel ein Attribut für einen Vor- oder Nachnamen.
Zeichen mit diakritischem Zeichen Normalisiertes Zeichen Zeichen mit diakritischem Zeichen Normalisiertes Zeichen
ä, à, â, ã, å, á, ą, ă, ā, ā́, ā̀, ā̂, ā̃, ǟ, ā̈, ǡ, a̱, å̄ a Ä, À, Â, Ã, Å, Á, Ą, Ă, Ā, Ā́, Ā̀, Ā̂, Ā̃, Ǟ, Ā̈, Ǡ, A̱, Å̄ Ein
æ, ǣ ae Æ, Ǣ AE
ç, č, ć, c̄, c̱ c Ç, Č, Ć, C̄, C̱ C
ď, d̄, ḏ T Ď, 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
ø, ø̄, œ̄ oe Ø, Ø̄, Œ̄ OE
ř, r̄, ṟ, ṝ r Ř, R̄, Ṟ, Ṝ R
ß ss
š, ś, ș, ş, s̄, s̱ s Š, Ś, Ș, Ş, S̄, S̱ S
ť, ț, t̄, ṯ t Ť, Ț, T̄, Ṯ T
ü, ù, û, ú, ů, ű, ū, ū́, ū̀, ū̂, ū̃, u̇̄, ǖ, ṻ, ṳ̄, u̱ u Ü, Ù, Û, Ú, Ů, Ű, Ū, Ū́, Ū̀, Ū̂, Ū̃, U̇̄, Ǖ, Ṻ, Ṳ̄, U̱ U
ÿ, ý, ȳ, ȳ́, ȳ̀, ȳ̃, y̱ j Ÿ, Ý, Ȳ, Ȳ́, Ȳ̀, Ȳ̃, Y̱ J
ź, ž, ż, z̄, ẕ z Ź, Ž, Ż, Z̄, Ẕ Z

Entfernen diakritischer Zeichen aus einer Zeichenfolge

Beispiel: Ersetzen Sie Zeichen, die Akzente enthalten, durch entsprechende Zeichen, die keine Akzente enthalten.

Ausdruck: NormalizeDiacritics([givenName])

Beispieleingabe/-ausgabe:

  • EINGABE (givenName): „Zoë“
  • AUSGABE: "Zoe"

Not

Funktion: Not(Quelle)

Beschreibung: Kehrt den booleschen Wert der Quelle um. Lautet der Quellwert also „True“, gibt die Funktion „False“ zurück. Andernfalls gibt sie „True“ zurück.

Parameter:

Name Erforderlich/wiederholt type Notizen
Quelle Erforderlich Boolesche Zeichenfolge Die erwarteten Quellwerte sind TRUE oder FALSE.

jetzt

Funktion: Now()

Beschreibung:
Die Now-Funktion gibt eine Zeichenfolge zurück, die die aktuelle UTC-DateTime im Format M/d/yyyy h:mm:ss tt darstellt.

Beispiel:Now()
Zurückgegebener Beispielwert: 7/2/2021 3:33:38 PM


NumFromDate

Funktion: NumFromDate (Wert)

Beschreibung: Die NumFromDate-Funktion konvertiert einen „DateTime“-Wert in das Active Directory-Format, das zum Festlegen von Attributen wie accountExpires erforderlich ist. Verwenden Sie diese Funktion zum Konvertieren von „DateTime“-Werten, die von HR-Cloud-Apps wie Workday und SuccessFactors empfangen werden, in die entsprechende Azure AD-Darstellung.

Parameter:

Name Erforderlich/wiederholt type Notizen
value Erforderlich String Datum/Zeit-Zeichenfolge im ISO 8601-Format. Wenn die Datumsvariable in einem anderen Format vorliegt, verwenden Sie die FormatDateTime-Funktion, um das Datum in das ISO 8601-Format zu konvertieren.

Beispiel:

  • Beispiel für Workday: Wenn Sie das Attribut ContractEndDate von Workday im Format 2020-12-31-08:00 dem Feld accountExpires in AD zuordnen möchten, erfahren Sie hier, wie Sie diese Funktion verwenden und den Zeitzonenoffset so ändern, dass er Ihrem Gebietsschema entspricht. NumFromDate(Join("", FormatDateTime([ContractEndDate], ,"yyyy-MM-ddzzz", "yyyy-MM-dd"), " 23:59:59-08:00"))

  • Beispiel für SuccessFactors: Wenn Sie das Attribut endDate von SuccessFactors im Format M/d/yyyy hh:mm:ss tt dem Feld accountExpires in AD zuordnen möchten, erfahren Sie hier, wie Sie diese Funktion verwenden und den Zeitzonenoffset so ändern, dass er Ihrem Gebietsschema entspricht. NumFromDate(Join("",FormatDateTime([endDate], ,"M/d/yyyy hh:mm:ss tt","yyyy-MM-dd")," 23:59:59-08:00"))


PCase

Funktion: PCase(Quelle, wordSeparators)

Beschreibung: Die PCase-Funktion konvertiert das erste Zeichen jedes Worts in einer Zeichenfolge in einen Großbuchstaben und alle anderen Zeichen in Kleinbuchstaben.

Parameter:

Name Erforderlich/Optional type Notizen
Quelle Erforderlich String Quell-Wert zum Konvertieren in gemischte Groß-/Kleinschreibung.
wordSeparators Optional String Angeben eines Satzes an Zeichen, die als Worttrennzeichen verwendet werden (Beispiel: " ,-'")

Hinweise:

  • Wenn der Parameter wordSeparators nicht angegeben wird, ruft PCase intern die .NET-Funktion ToTitleCase auf, um die Quell-Zeichenfolge in die richtige Groß-/Kleinschreibung zu konvertieren. Die .NET-Funktion ToTitleCase unterstützt einen umfassenden Satz an Unicode-Zeichenkategorien als Worttrennzeichen.
    • Leerzeichen
    • Neue-Zeile-Zeichen
    • Steuerzeichen wie Strg
    • Steuerzeichen für die Formatierung
    • Verbindungszeichen wie Unterstrich
    • Bindestrichzeichen wie Gedankenstrich und Bindestrich (einschließlich Zeichen wie Halbgeviertstrich, Geviertstrich, Doppelbindestrich usw.)
    • Öffnende Satzzeichen und Schließende Satzzeichen, die in Paaren wie Klammern, geschweiften Klammern, spitzen Klammern usw. vorkommen.
    • Öffnende Anführungszeichen und Schließende Anführungszeichen wie einfache Anführungszeichen, doppelte Anführungszeichen und eckige Anführungszeichen.
    • Andere Satzzeichen wie Ausrufezeichen, Nummernzeichen, Prozentzeichen, Kaufmännisches Und-Zeichen, Sternchen, Komma, Punkt, Doppelpunkt, Semikolon usw.
    • Mathematische Zeichen wie Pluszeichen, Kleiner als-Zeichen und Größer als-Zeichen, vertikale Linie, Tilde, Gleichheitszeichen usw.
    • Währungssymbole wie Dollarzeichen, Centzeichen, Pfundzeichen, Eurozeichen usw.
    • Modifikationszeichen wie Makron, Akzente, Maßpfeile usw.
    • Sonstige Symbolzeichen wie Copyrightzeichen, Gradzeichen, Zeichen für registriertes Warenzeichen usw.
  • Wenn der Parameter wordSeparators angegeben wird, verwendet PCase nur die als Worttrennzeichen angegebenen Zeichen.

Beispiel:

Angenommen, Sie beziehen die Attribute firstName und lastName von SAP SuccessFactors, und in der Personalverwaltung stehen beide Attribute in Großbuchstaben. Mithilfe der PCase-Funktion können Sie den Namen wie unten gezeigt in die richtige Groß-/Kleinschreibung konvertieren.

Ausdruck Eingabe Ausgabe Hinweise
PCase([firstName]) firstName = "PABLO GONSALVES (SECOND)" "Pablo Gonsalves (Second)" Da der Parameter wordSeparators nicht angegeben wird, verwendet die Funktion PCase den Standardzeichensatz als Worttrennzeichen.
PCase([lastName]," '-") lastName = "PINTO-DE'SILVA" "Pinto-De'Silva" Die Funktion PCase verwendet Zeichen im Parameter wordSeparators, um Wörter zu erkennen und sie in die richtige Groß-/Kleinschreibung zu transformieren.
PCase(Join(" ",[firstName],[lastName])) firstName = GREGORY, lastName = "JAMES" "Gregory James" Sie können die Join-Funktion in PCase schachteln. Da der Parameter wordSeparators nicht angegeben wird, verwendet die Funktion PCase den Standardzeichensatz als Worttrennzeichen.

Zufällige Zeichenfolge (RandomString)

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

Beschreibung: Die RandomString-Funktion generiert eine zufällige Zeichenfolge basierend auf den angegebenen Bedingungen. Die zulässigen Zeichen können hier ausfindig gemacht werden.

Parameter:

Name Erforderlich/wiederholt type Notizen
Länge Erforderlich Number Gesamtlänge der zufälligen Zeichenfolge. Dieser sollte größer oder gleich der Summe aus der Mindestanzahl an Nummern (MinimumNumbers), Mindestanzahl an Sonderzeichen (MinimumSpecialCharacters) und der Mindestanzahl an Großbuchstaben (MinimumCapital) sein. Maximal 256 Zeichen.
Mindestanzahl an Nummern (MinimumNumbers) Erforderlich Number Die Mindestanzahl an Nummern in der zufälligen Zeichenfolge.
Mindestanzahl an Sonderzeichen (MinimumSpecialCharacters) Erforderlich Number Mindestanzahl an Sonderzeichen.
Mindestanzahl an Großbuchstaben (MinimumCapital) Erforderlich Number Mindestanzahl an Großbuchstaben in der zufälligen Zeichenfolge.
Mindestanzahl an Kleinbuchstaben (MinimumLowerCase) Erforderlich Number Mindestanzahl an Kleinbuchstaben in der zufälligen Zeichenfolge.
Unzulässige Zeichen (CharactersToAvoid) Optional String Zeichen, die beim Generieren der zufälligen Zeichenfolge ausgeschlossen werden sollen.

Beispiel 1: – Generieren einer zufälligen Zeichenfolge ohne Sonderzeicheneinschränkungen: RandomString(6,3,0,0,3) Generiert eine zufällige Zeichenfolge mit 6 Zeichen. Die Zeichenfolge enthält 3 Zahlen und 3 Kleinbuchstaben (1a73qt).

Beispiel 2: – Generieren einer zufälligen Zeichenfolge mit Sonderzeicheneinschränkungen: RandomString(10,2,2,2,1,"?,") Generiert eine zufällige Zeichenfolge mit 10 Zeichen. Die Zeichenfolge enthält mindestens 2 Zahlen, 2 Sonderzeichen, 2 Großbuchstaben, einen Kleinbuchstaben und schließt die Zeichen "?" und "," (1@!2BaRg53) aus.


Redact

Funktion: Redact()

Beschreibung: Die Redact-Funktion ersetzt den Attributwert durch das Zeichenfolgenliteral "[Redact]" in den Bereitstellungsprotokollen.

Parameter:

Name Erforderlich/wiederholt type Notizen
attribute/value Erforderlich String Geben Sie das Attribut oder die Konstante/Zeichenfolge an, das bzw. die in den Protokollen redigiert werden soll.

Beispiel 1: Redigieren eines Attributs: Redact([userPrincipalName]) Entfernt „userPrincipalName“ aus den Bereitstellungsprotokollen.

Beispiel 2: Redigieren einer Zeichenfolge: Redact("StringToBeRedacted") Entfernt eine konstante Zeichenfolge aus den Bereitstellungsprotokollen.

Beispiel 3: Redigieren einer wahlfreien Zeichenfolge: Redact(RandomString(6,3,0,0,3)) Entfernt die wahlfreie Zeichenfolge aus den Bereitstellungsprotokollen.


RemoveDuplicates

Funktion: RemoveDuplicates(attribute)

Beschreibung: Die RemoveDuplicates-Funktion stellt sicher, dass in einer übergebenen mehrwertigen Zeichenfolge jeder Wert eindeutig ist.

Parameter:

Name Erforderlich/wiederholt type Notizen
attribute Erforderlich Mehrwertiges Attribut Mehrwertiges Attribut, aus dem Duplikate entfernt werden

Beispiel:RemoveDuplicates([proxyAddresses])Gibt ein bereinigtes proxyAddress-Attribut zurück, aus dem alle doppelten Werte entfernt wurden.


Ersetzen von

Funktion: Replace(Quelle, AlterWert, RegexMuster, RegexGruppenname, Ersatzwert, Ersatzattributname, Vorlage)

Beschreibung: Hiermit werden Werte in einer Zeichenfolge unter Beachtung der Groß-/Kleinschreibung ersetzt. Die Funktion weist ein anderes Verhalten auf, je nachdem, welche Parameter angegeben werden:

  • Bei Angabe von AlterWert und Ersatzwert:

    • Ersetzt alle Vorkommen von AlterWert in der Quelle durch Ersatzwert.
  • Bei Angabe von AlterWert und Vorlage:

    • Ersetzt alle Vorkommen von AlterWert in Vorlage durch den Quellwert).
  • Bei Angabe von RegexMuster und Ersatzwert:

    • Die Funktion wendet das RegexMuster auf die Zeichenfolge in Quelle an, und Sie können die RegexGruppennamen zum Erstellen der Zeichenfolgen für Ersatzwert verwenden.

Hinweis

Weitere Informationen zu RegEx-Gruppierungskonstrukten und benannten Unterausdrücken finden Sie unter Gruppierungskonstrukte in regulären Ausdrücken.

  • Bei Angabe von RegexMuster, RegexGruppenname und Ersatzwert:

    • Die Funktion wendet das RegexMuster auf die Quellzeichenfolge an und ersetzt alle mit RegexGruppenname übereinstimmenden Werte durch Ersatzwert.
  • Bei Angabe von RegexMuster, RegexGruppenname und Ersatzattributname:

    • Falls ein Wert für source vorhanden ist, wird source zurückgegeben.
    • Falls für source kein Wert vorhanden ist, wendet die Funktion regexPattern auf replacementAttributeName an und gibt den Wert zurück, der regexGroupName entspricht.

Parameter:

Name Erforderlich/wiederholt type Notizen
Quelle Erforderlich String Normalerweise der Name des Attributs aus dem Objekt Quelle.
AlterWert Optional String Wert, der in Quelle oder Vorlage ersetzt werden soll.
RegexMuster Optional String Regex-Muster für den Wert, der in der Quelleersetzt wird. Bei Verwendung von replacementAttributeName wird regexPattern angewendet, um einen Wert aus replacementAttributeName zu extrahieren.
RegexGruppenname Optional String Name der Gruppe im RegexMuster. Bei Verwendung von replacementAttributeName (benannt) wird der Wert der benannten RegEx-Gruppe aus replacementAttributeName extrahiert und als Ersetzungswert zurückgegeben.
Ersatzwert Optional String Neuer Wert, durch den der alte Wert ersetzt wird.
Ersatzattributname Optional String Name des Attributs, das als Ersatzwert verwendet werden soll.
Vorlage Optional String Bei Angabe des Werts Vorlage wird AlterWert in der Vorlage gesucht und durch den Wert von Quelle ersetzt.

Ersetzen von Zeichen mit einem regulären Ausdruck

Beispiel 1: Verwendung von oldValue und replacementValue, um die gesamte Quellzeichenfolge durch eine andere Zeichenfolge zu ersetzen

Angenommen, Ihr Personalsystem verfügt über das Attribut BusinessTitle (Position). Im Rahmen kürzlich vorgenommener Positionsänderungen soll die Position „Product Developer“ für alle Mitarbeiter mit dieser Position in „Software Engineer“ geändert werden. In diesem Fall können Sie den folgenden Ausdruck in Ihrer Attributzuordnung verwenden:

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

  • source: [BusinessTitle]
  • oldValue: "Product Developer"
  • replacementValue: "Software Engineer"
  • Ausdrucksausgabe: Software Engineer

Beispiel 2: Verwendung von oldValue und template, um die Quellzeichenfolge in eine andere vorlagenbasierte Zeichenfolge einzufügen

Der Parameter oldValue ist in diesem Szenario irreführend. Er entspricht eigentlich dem zu ersetzenden Wert.
Angenommen, die Anmelde-ID soll immer im Format <username>@contoso.com generiert werden. Es gibt ein Quellattribut namens UserID, und Sie möchten, dass dieser Wert für den <username>-Teil der Anmelde-ID verwendet wird. In diesem Fall können Sie den folgenden Ausdruck in Ihrer Attributzuordnung verwenden:

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

  • source:[UserID] = "jsmith"
  • oldValue: "<username>"
  • template: "<username>@contoso.com"
  • Ausdrucksausgabe: "jsmith@contoso.com"

Beispiel 3: Verwendung von regexPattern und replacementValue, um einen Teil der Quellzeichenfolge zu extrahieren und durch eine leere Zeichenfolge oder einen benutzerdefinierten Wert zu ersetzen, der mithilfe von RegEx-Mustern oder RegEx-Gruppennamen erstellt wurde

Angenommen, Sie verfügen über das Quellattribut telephoneNumber, das die durch ein Leerzeichen getrennten Komponenten country code und phone number enthält. Beispiel: +91 9998887777. In diesem Fall können Sie den folgenden Ausdruck in Ihrer Attributzuordnung verwenden, um die zehnstellige Telefonnummer zu extrahieren.

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

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

Dieses Muster kann auch verwendet werden, um Zeichen zu entfernen und eine Zeichenfolge zu reduzieren. Der folgende Ausdruck entfernt z. B. Klammern, Bindestriche und Leerzeichen aus der Mobiltelefonnummer und gibt nur Ziffern zurück:

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

  • source:[mobile] = "+1 (999) 888-7777"
  • regexPattern: "[()\\s-]+"
  • replacementValue: "" (leere Zeichenfolge)
  • Ausdrucksausgabe: 19998887777

Beispiel 4:regexPattern, regexGroupName und replacementValue, um einen Teil der Quellzeichenfolge zu extrahieren und durch einen anderen Literalwert oder eine leere Zeichenfolge zu ersetzen

Angenommen, Ihr Quellsystem verfügt über das Attribut „AddressLineData“ mit zwei Komponenten: Hausnummer und Straßenname. Aufgrund eines Umzugs hat sich die Hausnummer der Adresse geändert, und Sie möchten nur die Hausnummernkomponente der Adresszeile aktualisieren. In diesem Fall können Sie den folgenden Ausdruck in Ihrer Attributzuordnung verwenden, um die Hausnummer zu extrahieren:

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

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

Hier sehen Sie ein weiteres Beispiel, in dem das Domänensuffix aus einem UPN durch eine leere Zeichenfolge ersetzt wird, um die Anmelde-ID ohne Domänensuffix zu generieren.

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

  • source:[userPrincipalName] = "jsmith@contoso.com"
  • regexPattern: "(?<Suffix>@(.)*)"
  • regexGroupName: "Suffix"
  • replacementValue: "" (leere Zeichenfolge)
  • Ausdrucksausgabe: jsmith

Beispiel 5: Verwendung von regexPattern, regexGroupName und replacementAttributeName für Szenarien, in denen das Quellattribut leer ist oder keinen Wert besitzt

Angenommen, Ihr Quellsystem verfügt über das Attribut „telephoneNumber“. Wenn „telephoneNumber“ leer ist, sollen die zehn Ziffern des Attributs für die Mobiltelefonnummer extrahiert werden. In diesem Fall können Sie den folgenden Ausdruck in Ihrer Attributzuordnung verwenden:

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

  • source:[telephoneNumber] = "" (leere Zeichenfolge)
  • regexPattern: "\\+(?<isdCode>\\d* )(?<phoneNumber>\\d{10})"
  • regexGroupName: "phoneNumber"
  • replacementAttributeName:[mobile] = "+91 8887779999"
  • Ausdrucksausgabe: 8887779999

Beispiel 6: Sie möchten nach Zeichen suchen, die dem Wert eines regulären Ausdrucks entsprechen, und sie entfernen

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

  • source: [mailNickname]
  • oldValue: "john_doe72"
  • replaceValue: ""
  • Ausdrucksausgabe: 72

SelectUniqueValue

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

Beschreibung: Es sind mindestens zwei Argumente erforderlich, bei denen es sich um eindeutige Regeln für die Generierung von Werten handelt, die mit Ausdrücken definiert werden. Mit der Funktion wird jede Regel ausgewertet. Anschließend wird der Wert überprüft, der generiert wurde, um die Eindeutigkeit in der Ziel-App bzw. im Zielverzeichnis sicherzustellen. Der erste eindeutige Wert, der gefunden wird, wird zurückgegeben. Wenn alle Werte am Ziel bereits vorhanden sind, wird der Eintrag hinterlegt, und die Ursache wird in den Überwachungsprotokollen protokolliert. Für die Anzahl von Argumenten, die bereitgestellt werden können, gilt keine Obergrenze.

  • Diese Funktion muss sich auf der obersten Ebene befinden und kann nicht geschachtelt werden.
  • Diese Funktion kann nicht auf Attribute angewandt werden, die über eine Rangfolge für den Abgleich verfügen.
  • Diese Funktion darf nur für die Erstellung von Einträgen verwendet werden. Legen Sie die Eigenschaft Zuordnung anwenden auf Nur beim Erstellen von Objekten fest.
  • Diese Funktion wird derzeit nur für die Benutzerbereitstellung von Workday in Active Directory und für die Benutzerbereitstellung von SuccessFactors in Active Directory unterstützt. Sie kann nicht für andere Bereitstellungsanwendungen verwendet werden.
  • Die LDAP-Suche, die die Funktion SelectUniqueValue im lokalen Active Directory ausführt, behandelt Sonderzeichen wie diakritische Zeichen nicht als Escape-Zeichen. Wenn Sie eine Zeichenfolge wie "Jéssica Smith" übergeben, die ein Sonderzeichen enthält, treten Verarbeitungsfehler auf. Schachteln Sie die Funktion NormalizeDiacritics wie im Beispiel unten gezeigt, um die Sonderzeichen zu normalisieren.

Parameter:

Name Erforderlich/wiederholt type Notizen
uniqueValueRule1 … uniqueValueRuleN Mindestens zwei erforderlich, keine Obergrenze String Liste mit auszuwertenden Regeln für die Generierung eindeutiger Werte

Generieren eines eindeutigen Werts für das Attribut userPrincipalName (UPN)

Beispiel: Basierend auf dem Vornamen, zweiten Vornamen und Nachnamen müssen Sie einen Wert für das UPN-Attribut generieren und die Eindeutigkeit im AD-Zielverzeichnis überprüfen, bevor Sie den Wert dem UPN-Attribut zuweisen.

Ausdruck:

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

Beispieleingabe/-ausgabe:

  • EINGABE (PreferredFirstName): „John“
  • EINGABE (PreferredLastName): „Smith“
  • OUTPUT: "John.Smith@contoso.com", wenn der UPN-Wert John.Smith@contoso.com nicht bereits im Verzeichnis vorhanden ist
  • OUTPUT: "J.Smith@contoso.com", wenn der UPN-Wert John.Smith@contoso.com bereits im Verzeichnis vorhanden ist
  • OUTPUT: "Jo.Smith@contoso.com", wenn die beiden obigen UPN-Werte bereits im Verzeichnis enthalten sind

SingleAppRoleAssignment

Funktion: SingleAppRoleAssignment([appRoleAssignments])

Beschreibung: Gibt eine einzelne appRoleAssignment aus der Liste aller appRoleAssignments zurück, die einem Benutzer für eine bestimmte Anwendung zugewiesen sind. Diese Funktion ist erforderlich, um das appRoleAssignments-Objekt in eine einzelne Namenszeichenfolge für eine Rolle zu konvertieren. Die bewährteste Methode ist sicherzustellen, dass einem Benutzer jeweils nur eine appRoleAssignment zugewiesen ist. Diese Funktion wird nicht in Szenarien unterstützt, in denen Benutzer mehrere App-Rollenzuweisungen haben.

Parameter:

Name Erforderlich/wiederholt type Notizen
[appRoleAssignments] Erforderlich String [appRoleAssignments] -Objekt

Split

Funktion: Split(Quelle, Trennzeichen)

Beschreibung: Unterteilt eine Zeichenfolge mithilfe des angegebenen Trennzeichens in ein mehrwertiges Array.

Parameter:

Name Erforderlich/wiederholt type Notizen
Quelle Erforderlich String Quelle , der aktualisiert werden soll.
Trennzeichen Erforderlich String Gibt das Zeichen zum Aufteilen der Zeichenfolge an (Beispiel: „,“).

Unterteilen einer Zeichenfolge in ein mehrwertiges Array

Beispiel: Sie müssen eine durch Trennzeichen getrennte Liste von Zeichenfolgen in ein Array unterteilen, das in ein mehrwertiges Attribut wie das PermissionSets-Attribut von Salesforce eingegeben werden kann. In diesem Beispiel wurde eine Liste von Berechtigungssätzen in extensionAttribute5 in Microsoft Entra ID aufgefüllt.

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

Beispieleingabe/-ausgabe:

  • EINGABE: (extensionAttribute5): "PermissionSetOne, PermissionSetTwo"
  • AUSGABE: ["PermissionSetOne", "PermissionSetTwo"]

StripSpaces

Funktion: StripSpaces(Quelle)

Beschreibung: Entfernt alle Leerzeichen (" ") aus der Quellzeichenfolge.

Parameter:

Name Erforderlich/wiederholt type Notizen
Quelle Erforderlich String Quelle , der aktualisiert werden soll.

Schalter

Funktion: Switch(Quelle, Standardwert, Schlüssel1, Wert1, Schlüssel2, Wert2, …)

Beschreibung: Wenn der Quellwert einem Schlüssel entspricht, wird der Wert für diesen Schlüssel zurückgegeben. Wenn der Quellwert keinem Schlüssel entspricht, wird der Standardwert zurückgegeben. Schlüssel- und Wertparameter müssen immer paarweise angegeben werden. Die Funktion erwartet immer eine gerade Anzahl von Parametern. Die Funktion sollte nicht für referenzielle Attribute wie etwa „manager“ verwendet werden.

Hinweis

Die Switch-Funktion führt für die Werte source und key einen Zeichenfolgenvergleich unter Berücksichtigung der Groß-/Kleinschreibung durch. Wenn Sie einen Vergleich ohne Berücksichtigung der Groß-/Kleinschreibung durchführen möchten, normalisieren Sie die Quellzeichenfolge (source) vor dem Vergleich mithilfe einer geschachtelten ToLower-Funktion, und stellen Sie sicher, dass alle Schlüsselzeichenfolgen (key) in Kleinbuchstaben vorliegen. Beispiel: Switch(ToLower([statusFlag]), "0", "true", "1", "false", "0"). In diesem Beispiel verfügt das Quellattribut (source) namens statusFlag ggf. über Werte („True“, „true“ oder „TRUE“). Die Switch-Funktion konvertiert sie jedoch vor dem Vergleich mit Schlüsselparametern (key) immer in eine klein geschriebene Zeichenfolge (also in „true“).

Achtung

Verwenden Sie für den Parameter source nicht die geschachtelten Funktionen IsPresent, IsNull oder IsNullOrEmpty. Verwenden Sie stattdessen eine literale leere Zeichenfolge als einen der Schlüsselwerte.
Beispiel: Switch([statusFlag], "Default Value", "true", "1", "", "0"). In diesem Beispiel gibt die Switch-Funktion den Wert 0 zurück, wenn das source-Attribut statusFlag leer ist.

Parameter:

Name Erforderlich/wiederholt type Notizen
Quelle Erforderlich String Source , der aktualisiert werden soll.
defaultValue Optional String Der Standardwert, der verwendet werden soll, wenn die Quelle mit keinem Schlüssel übereinstimmt. Kann eine leere Zeichenfolge ("") sein.
key Erforderlich String Schlüssel, der mit dem Quellwert verglichen werden soll.
value Erforderlich String Der Ersatzwert für die Quelle , die mit dem Schlüssel übereinstimmt.

Ersetzen eines Werts anhand eines vordefinierten Satzes von Optionen

Beispiel: Definieren Sie die Zeitzone von Benutzer*innen anhand des Bundesstaatscodes, der in Microsoft Entra ID gespeichert ist. Wenn der Bundesstaatscode keiner der vordefinierten Optionen entspricht, soll der Standardwert "Australien/Sydney" verwendet werden.

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

Beispieleingabe/-ausgabe:

  • EINGABE (state): „QLD“
  • AUSGABE: „Australien/Brisbane“

ToLower

Funktion: ToLower(source, culture)

Beschreibung: Konvertiert einen source-Zeichenfolgenwert mithilfe der angegebenen Kulturregeln in Kleinbuchstaben. Ohne Angabe der culture-Information wird die invariante Kultur verwendet.

Wenn Sie für vorhandene Werte im Zielsystem die Kleinschreibung festlegen möchten, aktualisieren Sie das Schema für Ihre Zielanwendung, und legen Sie die Eigenschaft „caseExact“ für das gewünschte Attribut auf TRUE fest.

Parameter:

Name Erforderlich/wiederholt type Notizen
Quelle Erforderlich String Normalerweise der Name des Attributs aus dem Quellobjekt
culture Optional String Das Format für den Kulturnamen lautet basierend auf dem Standard RFC 4646 languagecode2-country/regioncode2, wobei languagecode2 der aus zwei Buchstaben bestehende Sprachcode und country/regioncode2 der aus zwei Buchstaben bestehende Subkulturcode ist. Beispiele sind „ja-JP“ für Japanisch (Japan) und „en-US“ für Englisch (USA). In Fällen, in denen kein aus zwei Buchstaben bestehender Sprachcode verfügbar ist, wird ein aus drei Buchstaben bestehender, von ISO 639-2 abgeleiteter Code verwendet.

Konvertieren des generierten userPrincipalName-Werts (UPN) in Kleinbuchstaben

Beispiel: Sie möchten den UPN-Wert generieren, indem Sie die Quellfelder „PreferredFirstName“ und „PreferredLastName“ verketten und alle Zeichen in Kleinbuchstaben konvertieren.

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

Beispieleingabe/-ausgabe:

  • EINGABE (PreferredFirstName): „John“
  • EINGABE (PreferredLastName): „Smith“
  • AUSGABE: „john.smith@contoso.com“

ToUpper

Funktion: ToUpper(source, culture)

Beschreibung: Konvertiert einen source-Zeichenfolgenwert mithilfe der angegebenen Kulturregeln in Großbuchstaben. Ohne Angabe der culture-Information wird die invariante Kultur verwendet.

Wenn Sie für vorhandene Werte im Zielsystem die Großschreibung festlegen möchten, aktualisieren Sie das Schema für Ihre Zielanwendung, und setzen Sie die Eigenschaft „caseExact“ für das gewünschte Attribut auf „wahr“ („true“).

Parameter:

Name Erforderlich/wiederholt type Notizen
Quelle Erforderlich String Normalerweise der Name des Attributs aus dem Quellobjekt
culture Optional String Das Format für den Kulturnamen lautet basierend auf dem Standard RFC 4646 languagecode2-country/regioncode2, wobei languagecode2 der aus zwei Buchstaben bestehende Sprachcode und country/regioncode2 der aus zwei Buchstaben bestehende Subkulturcode ist. Beispiele sind „ja-JP“ für Japanisch (Japan) und „en-US“ für Englisch (USA). In Fällen, in denen kein aus zwei Buchstaben bestehender Sprachcode verfügbar ist, wird ein aus drei Buchstaben bestehender, von ISO 639-2 abgeleiteter Code verwendet.

Wort

Funktion: Word(String,WordNumber,Delimiters)

Beschreibung: Die Word-Funktion gibt ein in einer Zeichenfolge enthaltenes Wort auf der Grundlage von Parametern zurück, die die zu verwendenden Trennzeichen und die Nummer des zurückzugebenden Worts beschreiben. Alle Folgen von Zeichen in einer Zeichenfolge, die durch eines der in „delimiters“ enthaltenen Zeichen getrennt werden, werden als Wörter behandelt:

Wenn die Zahl < 1 ist, wird eine leere Zeichenfolge zurückgegeben. Wenn "string" einen Nullwert hat, wird eine leere Zeichenfolge zurückgegeben Falls „string“ weniger Wörter enthält als für „WordNumber“ angegeben, wird eine leere Zeichenfolge zurückgegeben. Dies gilt auch, wenn „string“ keine durch Trennzeichen identifizierten Wörter enthält.

Parameter:

Name Erforderlich/wiederholt type Notizen
String Erforderlich Mehrwertiges Attribut Eine Zeichenfolge, aus der ein Wort zurückgegeben werden soll.
WordNumber Erforderlich Integer Eine Zahl, die angibt, welche Wortnummer zurückgegeben werden soll
delimiters Erforderlich String Eine Zeichenfolge, die das/die Trennzeichen darstellt, das/die zum Identifizieren von Wörtern verwendet werden soll(en)

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

Gibt „brown“ zurück

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

Gibt „has“ zurück


Beispiele

Dieser Abschnitt enthält weitere Beispiele für die Verwendung von Ausdrucksfunktionen.

Entfernen eines bekannten Domänennamens

Sie müssen einen bekannten Domänennamen aus der E-Mail-Adresse eines Benutzers entfernen, um einen Benutzernamen zu erhalten. Wenn die Domäne beispielsweise "contoso.com" lautet, können Sie den folgenden Ausdruck verwenden:

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

Beispieleingabe/-ausgabe:

  • EINGABE (mail): "john.doe@contoso.com"
  • AUSGABE: "john.doe"

Generieren eines Benutzeralias durch Verketten von Teilen des Vor- und Nachnamens

Sie müssen einen Benutzeraliasnamen generieren, indem Sie die ersten drei Buchstaben des Vornamens und die ersten fünf Buchstaben des Nachnamens des Benutzers verwenden.

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

Beispieleingabe/-ausgabe:

  • EINGABE (givenName): „John“
  • EINGABE (surname): „Doe“
  • AUSGABE: "JohDoe"

Fügen Sie ein Komma zwischen Nachname und Vorname hinzu.

Fügen Sie ein Komma zwischen Nachname und Vorname hinzu.

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

Beispieleingabe/-ausgabe:

  • EINGABE (givenName): „John“
  • EINGABE (surname): „Doe“
  • AUSGABE: „Doe, John“

Generieren Sie eine ID für einen Benutzer basierend auf dessen Objekt-ID für Microsoft Entra ID. Entfernen Sie alle Buchstaben aus der ID, und fügen Sie am Anfang 1000 hinzu.

Mit diesem Ausdruck können Sie eine ID für einen Benutzer generieren, die mit 1000 beginnt und wahrscheinlich eindeutig ist.

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

Beispieleingabe/-ausgabe:

  • EINGABE: "d05e47b1-3909-445a-ba5e-ca60cbc0e4b4"
  • AUSGABE: "100064303565343762312333930392343435612626135652636136306362633065346234"