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:
- Attribute, die in eckige Klammern eingeschlossen werden müssen. Beispiel: [Attributname]
- Zeichenfolgenkonstanten, die in doppelte Anführungszeichen eingeschlossen werden müssen. Beispiel: „USA“
- 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 CBool
True 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 eines Datums von zehn Tagen 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: "00aa00aa-bb11-cc22-dd33-44ee44ee44ee"
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 Attribut Prefix keinen der in der Funktion Switch aufgeführten Werte hat, gibt ** eine leere Zeichenfolge zurück und das Attribut personalTitle wird nicht in den Bereitstellungsfluss für das lokale Active Directory aufgenommen.
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")
- Beispiele für nicht unterstützte IIF-Ausdrücke:
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. Dies wird als „True“ ausgewertet, wenn das Attribut nicht vorhanden ist 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()“ ähnelt „Append()“, mit der Ausnahme, dass mehrere Quell- Zeichenfolgenwerte in einer einzelnen Zeichenfolge kombiniert werden können, und jeder Wert wird durch ein Trennzeichenfolge getrennt.
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
- InitialQuotePunctuation und FinalQuotePunctuation 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 hier 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 template wird oldValue in der Vorlage gesucht und durch den Wert von source 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 wurde, ist der zurückgegebene Wert. 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 für die Verwendung mit diesen Anwendungen unterstützt:
- Benutzerbereitstellung von Workday in Active Directory
- Benutzerbereitstellung von SuccessFactors in Active Directory
- API-gesteuerte Bereitstellung in lokalem Active Directory
SelectUniqueValue wird für die Verwendung mit anderen Bereitstellungsanwendungen nicht unterstützt.
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 in diesem Beispiel 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.
Achtung
Problem: Der Bereitstellungsdienst hat bei Verwendung einer Switch-Anweisung einen Attributwert im Zielsystem fälschlicherweise auf Null gesetzt.
Lösung: Verwenden Sie eine IIF-Anweisung anstelle einer Switch-Anweisung, um unerwartete Nullwerte zu verhindern, oder verwenden Sie die Funktion IgnoreFlowIfNullOrEmpty mit der Switch-Anweisung. Zum Beispiel sollte, switch([companyName], „External“, „Company A“, „A“, „Company B“, „B“) dargestellt werden als IIF([companyName] = „Company A“, „A“, IIF([companyName] = „Company B“, „B“, „External“)). In Fällen, in denen der Standardwert ein Attribut ist, verwenden Sie einen Ausdruck wie IgnoreFlowIfNullOrEmpty(switch([companyName], [companyName], „Company A“, „A“, "Company B“, „B“)).
Grundursache: Dieses Problem ist spezifisch für Szenarien, in denen Microsoft Entra ID das Quellsystem ist und die switch-Anweisung einen Standardwert enthält.
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 ihrer Microsoft Entra-Objekt-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:
- INPUT: "00aa00aa-bb11-cc22-dd33-44ee44ee44ee"
- AUSGABE: "100064303565343762312333930392343435612626135652636136306362633065346234"
Verwandte Artikel
- Automatisieren der Bereitstellung/Bereitstellungsaufhebung von Benutzern für SaaS-Apps
- Anpassen von Attributzuordnungen für die Benutzerbereitstellung
- Bereichsfilter für die Benutzerbereitstellung
- Verwenden von SCIM für die automatische Bereitstellung von Benutzer*innen und Gruppen aus Microsoft Entra ID für Anwendungen
- Kontobereitstellungsbenachrichtigungen
- Liste der Tutorials zur Integration von SaaS-Apps