Condividi tramite


Informazioni di riferimento per la scrittura di espressioni per i mapping degli attributi in Microsoft Entra ID

Quando configuri il provisioning in un'applicazione SaaS, come mapping degli attributi puoi specificare il mapping di espressioni. Per questi mapping, è necessario scrivere un'espressione simile a uno script che consente di trasformare i dati degli utenti in formati più accettabili per l'applicazione SaaS.

Panoramica della sintassi

La sintassi per le espressioni per i mapping degli attributi è simile a quella delle funzioni di Visual Basic for Applications (VBA).

  • L'intera espressione deve essere definita in termini di funzioni, costituite da un nome seguito da argomenti tra parentesi: FunctionName(<<argument 1>>,<<argument N>>)

  • È possibile annidare le funzioni l'una all'altra. Ad esempio: FunctionOne(FunctionTwo(<<argument1>>))

  • È possibile passare tre tipi diversi di argomenti nelle funzioni:

    1. Attributi, che devono essere racchiusi tra parentesi quadre. Ad esempio: [NomeAttributo]
    2. Costanti di stringa, che devono essere racchiuse tra virgolette doppie. Ad esempio: "Stati Uniti"
    3. Altre funzioni. Ad esempio: FunzioneUno(<<argument1>>, FunzioneDue(<<argument2>>))
  • Eventuali barre rovesciate ( \ ) o virgolette ( " ) da inserire nella costante di stringa dovranno essere precedute dal simbolo di barra rovesciata ( \ ) come carattere di escape. Ad esempio: "Nome società: \"Contoso\""

  • La sintassi fa distinzione tra maiuscole e minuscole, che deve essere considerata durante la digitazione come stringhe in una funzione e copia le incolla direttamente da qui.

Elenco di funzioni

AppendAppRoleAssignmentsComplexBitAndCBoolCDateCoalesceConvertToBase64ConvertToUTF8HexCountCStrDateAddDateDiffDateFromNumFormatDateTimeGuidIgnoreFlowIfNullOrEmptyIIFInStrIsNull IsNullOrEmptyIsPresentIsStringJoin elementoa sinistraMidNormalizeDiacriticsNotnowNumFromDatePCaseRandomStringRedactRemoveDuplicatesReplaceSelectUniqueValueSingleAppRoleAssignmentSplitStripSpacesSwitchToLowerToUpper Word


Aggiunta

Funzione: Append(source, suffix)

Descrizione: accetta un valore stringa di origine e aggiunge il suffisso alla fine di esso.

Parametri:

Nome Obbligatorio/Ripetuto Type Note
source Richiesto String In genere è il nome dell'attributo dell'oggetto source.
suffix Richiesto String Stringa da aggiungere alla fine del valore di origine.

Aggiungere un suffisso costante al nome utente

Esempio: se si usa una sandbox salesforce, potrebbe essere necessario aggiungere un altro suffisso a tutti i nomi utente prima di sincronizzarli.

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

Input/output di esempio:

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

AppRoleAssignmentsComplex

Funzione: AppRoleAssignmentsComplex([appRoleAssignments])

Descrizione: usato per configurare più ruoli per un utente. Per informazioni dettagliate sull'utilizzo, vedere Esercitazione - Personalizzare i mapping degli attributi di provisioning degli utenti per le applicazioni SaaS in Microsoft Entra ID.

Parametri:

Nome Obbligatorio/Ripetuto Type Note
[appRoleAssignments] Richiesto String Oggetto [appRoleAssignments].

BitAnd

Funzione: BitAnd(value1, value2)

Descrizione: questa funzione converte entrambi i parametri nella rappresentazione binaria e imposta un bit su:

  • 0: se il valore di uno o entrambi i bit corrispondenti in value1 e value2 è 0
  • 1: se entrambi i bit corrispondenti sono pari a 1.

In altre parole, restituisce 0 in tutti i casi tranne quando i bit corrispondenti di entrambi i parametri sono pari a 1.

Parametri:

Nome Obbligatorio/Ripetuto Type Note
value1 Richiesto Num Valore numerico che deve essere AND'ed con value2
value2 Richiesto Num Valore numerico che deve essere AND'ed con value1

Esempio:BitAnd(&HF, &HF7)

11110111 AND 00000111 = 00000111 restituisce quindi BitAnd 7, il valore binario di 00000111.


CBool

FunzioneCBool(Expression):

Descrizione:CBool restituisce un valore booleano basato sull'espressione valutata. Se l'espressione restituisce un valore diverso da zero, CBool restituisce True, altrimenti restituisce False.

Parametri:

Nome Obbligatorio/Ripetuto Type Note
Expression Richiesto expression Qualsiasi espressione valida

Esempio:CBool([attribute1] = [attribute2])
Restituisce True se entrambi gli attributi hanno lo stesso valore.


CDate

Funzione:
CDate(expression)

Descrizione:
La funzione CDate restituisce un valore di data/ora UTC da una stringa. DateTime non è un tipo di attributo nativo, ma può essere usato all'interno di funzioni date, ad esempio FormatDateTime e DateAdd.

Parametri:

Nome Obbligatorio/Ripetuto Type Note
Expression Richiesto Espressione Qualsiasi stringa valida che rappresenta una data/ora. Per i formati supportati, vedere Stringhe di formato di data e ora personalizzate .NET.

Note:
La stringa restituita è sempre in formato UTC e segue il formato M/d/aaaa h:mm:ss tt.

Esempio 1:
CDate([StatusHireDate])
Input/output di esempio:

  • INPUT (StatusHireDate): "2020-03-16-07:00"
  • OUTPUT: "16/3/2020 7:00:00 AM" <-- Si noti che viene restituito l'equivalente UTC di DateTime precedente

Esempio 2:
CDate("2021-06-30+08:00")
Input/output di esempio:

  • INPUT: "2021-06-30+08:00"
  • OUTPUT: "29/6/2021 4:00:00 PM" <-- Si noti che viene restituito l'equivalente UTC del valore DateTime precedente

Esempio 3:
CDate("2009-06-15T01:45:30-07:00")
Input/output di esempio:

  • INPUT: "2009-06-15T01:45:30-07:00"
  • OUTPUT: "15/6/2009 8:45:30 AM" <-- Si noti che viene restituito l'equivalente UTC del valore DateTime precedente

Coalesce

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

Descrizione: restituisce il primo valore di origine che non è NULL. Se tutti gli argomenti sono NULL e defaultValue è presente, viene restituito defaultValue. Se tutti gli argomenti sono NULL e defaultValue non è presente, Coalesce restituisce NULL.

Parametri:

Nome Obbligatorio/Ripetuto Type Note
source1 sourceN Richiesto String Obbligatorio, numero variabile di volte. In genere è il nome dell'attributo dell'oggetto source.
defaultValue Facoltativo String Valore predefinito da utilizzare quando tutti i valori di origine sono NULL. Può essere una stringa vuota ("").

Valore di posta del flusso se non NULL; in caso contrario, flow userPrincipalName

Esempio: si vuole scorrere l'attributo di posta elettronica, se presente. In caso contrario, si vuole scorrere il valore di userPrincipalName.

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

Input/output di esempio:

  • INPUT (mail): NULL
  • INPUT (userPrincipalName): "John.Doe@contoso.com"
  • OUTPUT: "John.Doe@contoso.com"

ConvertToBase64

Funzione: ConvertToBase64(source)

Descrizione: la funzione ConvertToBase64 converte una stringa in una stringa Base64 Unicode.

Parametri:

Nome Obbligatorio/Ripetuto Type Note
source Richiesto String Stringa da convertire in base 64

Esempio:ConvertToBase64("Hello world!")

Restituisce "SABlAGwAbABvACAAdwBvAHIAbABkACEA"


ConvertToUTF8Hex

Funzione: ConvertToUTF8Hex(source)

Descrizione: la funzione ConvertToUTF8Hex converte una stringa in un valore con codifica hex UTF8.

Parametri:

Nome Obbligatorio/Ripetuto Type Note
source Richiesto String Stringa da convertire in hex UTF8

Esempio:ConvertToUTF8Hex("Hello world!")

Restituisce 48656C6C6F20776F726C6421


Count

Funzione: Count(attribute)

Descrizione: la funzione Count restituisce il numero di elementi in un attributo multivalore.

Parametri:

Nome Obbligatorio/Ripetuto Type Note
attribute Richiesto Attributo Attributo multivalore con elementi conteggiati

CStr

Funzione: CStr(value)

Descrizione: la funzione CStr converte un valore in un tipo di dati stringa.

Parametri:

Nome Obbligatorio/Ripetuto Type Note
value Richiesto numeric, reference o boolean può essere un valore numerico, un attributo di riferimento o un valore booleano.

Esempio:CStr([dn])

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


DateAdd

Funzione:
DateAdd(interval, value, dateTime)

Descrizione:
Restituisce una stringa di data/ora che rappresenta una data a cui viene aggiunto un intervallo di tempo specificato. La data restituita è nel formato M /d/aaaa h:mm:ss tt.

Parametri:

Nome Obbligatorio/Ripetuto Type Note
interval Richiesto String Intervallo di tempo da aggiungere. Vedere i valori accettati dopo questa tabella.
value Richiesto Numero numero di unità da aggiungere. Può essere positivo (per ottenere date nel futuro) o negativo (per ottenere date nel passato).
dateTime Richiesto Data/Ora valore DateTime che rappresenta la data alla quale viene aggiunto l'intervallo.

Quando si passa una stringa di data come input, usare la funzione CDate per eseguire il wrapping della stringa datetime. Per ottenere l'ora di sistema in formato UTC, usare la funzione Now .

La stringa interval deve avere uno dei valori seguenti:

  • yyyy Year
  • m Month
  • d Day
  • ww Week
  • h Hour
  • n Minute
  • s Second

Esempio 1: Generare un valore di data basato su StatusHireDate in ingresso da Workday
DateAdd("d", 7, CDate([StatusHireDate]))

Esempio interval value dateTime (valore della variabile StatusHireDate) output
Aggiungere 7 giorni alla data di assunzione "d" 7 2012-03-16-07:00 23/3/2012 7:00:00
Ottenere una data dieci giorni prima di assumere la data "d" -10 2012-03-16-07:00 3/6/2012 7:00:00
Aggiungere due settimane alla data di assunzione "ww" 2 2012-03-16-07:00 3/30/2012 7:00:00
Aggiungere dieci mesi alla data di assunzione "m" 10 2012-03-16-07:00 16/16/2013 7:00:00
Aggiungere due anni alla data di assunzione "yyyy" 2 2012-03-16-07:00 16/3/2014 7:00:00

DateDiff

Funzione:
DateDiff(interval, date1, date2)

Descrizione:
Questa funzione usa il parametro interval per restituire un numero che indica la differenza tra le due date di input. Restituisce

  • un numero positivo se date2 > date1,
  • un numero negativo se date2 < date1,
  • 0 se date2 == date1

Parametri:

Nome Obbligatoria/Facoltativa Type Note
interval Richiesto String Intervallo di tempo da usare per calcolare la differenza.
date1 Richiesto Data/Ora DateTime che rappresenta una data valida.
date2 Richiesto Data/Ora DateTime che rappresenta una data valida.

Quando si passa una stringa di data come input, usare la funzione CDate per eseguire il wrapping della stringa datetime. Per ottenere l'ora di sistema in formato UTC, usare la funzione Now .

La stringa interval deve avere uno dei valori seguenti:

  • yyyy Year
  • m Month
  • d Day
  • ww Week
  • h Hour
  • n Minute
  • s Second

Esempio 1: Confrontare la data corrente con la data di assunzione di Workday con intervalli diversi
DateDiff("d", Now(), CDate([StatusHireDate]))

Esempio interval date1 date2 output
Differenza positiva nei giorni tra due date d 2021-08-18+08:00 2021-08-31+08:00 13
Differenza negativa nei giorni tra due date d 25/8/2021 5:41:18 PM 2012-03-16-07:00 -3449
Differenza nelle settimane tra due date ww 25/8/2021 5:41:18 PM 2012-03-16-07:00 -493
Differenza nei mesi tra due date m 25/8/2021 5:41:18 PM 2012-03-16-07:00 -113
Differenza negli anni tra due date yyyy 25/8/2021 5:41:18 PM 2012-03-16-07:00 -9
Differenza quando entrambe le date sono uguali d 2021-08-31+08:00 2021-08-31+08:00 0
Differenza nelle ore tra due date h 2021-08-24 2021-08-25 24
Differenza in minuti tra due date n 2021-08-24 2021-08-25 1440
Differenza in secondi tra due date s 2021-08-24 2021-08-25 86400

Esempio 2: Combinare DateDiff con la funzione IIF per impostare il valore dell'attributo
Se un account è Attivo in Workday, impostare l'attributo accountEnabled dell'utente su True solo se la data di assunzione rientra nei cinque giorni successivi.

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

DateFromNum

Funzione: DateFromNum(value)

Descrizione: la funzione DateFromNum converte un valore nel formato data di AD in un tipo DateTime.

Parametri:

Nome Obbligatorio/Ripetuto Type Note
value Richiesto Data Data di Active Directory da convertire in tipo DateTime

Esempio:DateFromNum([lastLogonTimestamp])

DateFromNum(129699324000000000)

Restituisce un valore DateTime che rappresenta il 1° gennaio 2012 alle 11:00.


FormatDateTime

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

Descrizione: accetta una stringa di data da un formato e la converte in un formato diverso.

Parametri:

Nome Obbligatorio/Ripetuto Type Note
source Richiesto String In genere è il nome dell'attributo dell'oggetto source.
dateTimeStyles Facoltativo String Usare questo parametro per specificare le opzioni di formattazione che consentono di personalizzare l'analisi delle stringhe per alcuni metodi di analisi di data e ora. Per i valori supportati, vedere la documentazione dateTimeStyles. Se lasciato vuoto, il valore predefinito usato è DateTimeStyles.RoundKind, DateTimeStyles.AllowLeadingWhite, DateTimeStyles.AllowTrailingWhite
inputFormat Richiesto String Formato previsto del valore source. Per i formati supportati, vedere Stringhe di formato di data e ora personalizzate .NET.
outputFormat Richiesto String Formato della data di output.

Eseguire l'output della data come stringa in un formato specifico

Esempio: si vogliono inviare date a un'applicazione SaaS come ServiceNow in un determinato formato. È possibile prendere in considerazione l'uso dell'espressione seguente.

Expression:

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

Input/output di esempio:

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

GUID

Funzione: Guid()

Descrizione: il GUID della funzione genera un nuovo GUID casuale

Esempio:
Guid()
Output di esempio: "00aa00a-bb11-cc22-dd33-44ee44ee4ee"


IgnoreFlowIfNullOrEmpty

Funzione: IgnoreFlowIfNullOrEmpty(expression)

Descrizione: la funzione IgnoreFlowIfNullOrEmpty indica al servizio di provisioning di ignorare l'attributo e rilasciarlo dal flusso se la funzione o l'attributo racchiuso è NULL o vuoto.

Parametri:

Nome Obbligatorio/Ripetuto Type Note
Expression Richiesto Espressione Espressione da valutare

Esempio 1: Non eseguire il flusso di un attributo se è Null
IgnoreFlowIfNullOrEmpty([department])
L'espressione precedente elimina l'attributo department dal flusso di provisioning se è null o vuoto.

Esempio 2: Non eseguire il flusso di un attributo se il mapping dell'espressione restituisce una stringa vuota o null
Si supponga che il prefisso dell'attributo SuccessFactors sia mappato all'attributo Active Directory locale personalTitle usando il mapping di espressioni seguente:
IgnoreFlowIfNullOrEmpty(Switch([prefix], "", "3443", "Dr.", "3444", "Prof.", "3445", "Prof. Dr."))
L'espressione precedente valuta innanzitutto la funzione Switch . Se l'attributo prefisso non ha alcun valore elencato all'interno della funzione Switch, ** restituisce una stringa vuota e l'attributo personalTitle non è incluso nel flusso di provisioning a Active Directory locale.


IIF

Funzione: IIF(condition,valueIfTrue,valueIfFalse)

Descrizione: la funzione IIF restituisce un set di valori possibili in base a una condizione specificata.

Parametri:

Nome Obbligatorio/Ripetuto Type Note
condition Richiesto Variabile o espressione Qualsiasi valore o espressione che può essere valutata su true o false.
valueIfTrue Richiesto Variabile o stringa se la condizione restituisce true, il valore restituito.
valueIfFalse Richiesto Variabile o stringa se la condizione restituisce false, il valore restituito.

Nella condizione possono essere usati gli operatori di confronto seguenti:

  • Uguale a (=) e non uguale a (<>)
  • Maggiore di (>) e maggiore di (>=)
  • Minore di (<) e minore di (<=)

Esempio: impostare il valore dell'attributo di destinazione sull'attributo paese di origine se country="USA", altrimenti impostare il valore dell'attributo di destinazione sull'attributo del reparto di origine. IIF([country]="USA",[country],[department])

Limitazioni note

Questa sezione include limitazioni e soluzioni alternative per la funzione IIF. Per informazioni sulla risoluzione dei problemi di creazione dell'utente, vedere Creazione non riuscita a causa di valori null/vuoti.

  • La funzione IIF attualmente non supporta gli operatori logici AND e OR.
  • Per implementare la logica AND, usare l'istruzione IIF annidata concatenato lungo il percorso trueValue . Esempio: se country="USA" e state="CA", il valore restituito "True", altrimenti restituisce "False". IIF([country]="USA",IIF([state]="CA","True","False"),"False")
  • Per implementare la logica OR, usare l'istruzione IIF annidata concatenato lungo il percorso falseValue . Esempio: se country="USA" o state="CA", il valore restituito "True", altrimenti restituisce "False". IIF([country]="USA","True",IIF([state]="CA","True","False"))
  • Se l'attributo di origine usato all'interno della funzione IIF è vuoto o Null, il controllo della condizione ha esito negativo.
    • Esempi di espressioni IIF non supportate:
      • IIF([country]="","Other",[country])
      • IIF(IsNullOrEmpty([country]),"Other",[country])
      • IIF(IsPresent([country]),[country],"Other")
    • Soluzione alternativa consigliata: usare la funzione Switch per verificare la presenza di valori vuoti/null. Esempio: se l'attributo country è vuoto, impostare il valore "Other". Se presente, passare il valore dell'attributo country all'attributo di destinazione.
      • Switch([country],[country],"","Other")

InStr

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

Descrizione: la funzione InStr trova la prima occorrenza di una sottostringa in una stringa.

Parametri:

Nome Obbligatorio/Ripetuto Type Note
value1 Richiesto String Stringa da cercare
value2 Richiesto String Stringa da trovare
start Facoltativo Intero Posizione iniziale per trovare la sottostringa
compareType Facoltativo Enum Può essere vbTextCompare o vbBinaryCompare

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

Restituisce 5

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

Restituisce 7


IsNull

Funzione: IsNull(Expression)

Descrizione: se l'espressione restituisce Null, la funzione IsNull restituisce true. Per un attributo, Null è espresso dall'assenza dell'attributo.

Parametri:

Nome Obbligatorio/Ripetuto Type Note
Expression Richiesto Espressione Espressione da valutare

Esempio:IsNull([displayName])

Restituisce True se l'attributo non è presente.


IsNullorEmpty

Funzione: IsNullOrEmpty(Expression)

Descrizione: se l'espressione è null o una stringa vuota, la funzione IsNullOrEmpty restituisce true. Restituisce True se l'attributo è assente o è presente ma è una stringa vuota. La funzione inversa di questa funzione è denominata IsPresent.

Parametri:

Nome Obbligatorio/Ripetuto Type Note
Expression Richiesto Espressione Espressione da valutare

Esempio:IsNullOrEmpty([displayName])

Restituisce True se l'attributo non è presente o è una stringa vuota.


IsPresent

Funzione: IsPresent(Expression)

Descrizione: se l'espressione restituisce una stringa che non è Null e non è vuota, la funzione IsPresent restituisce true. La funzione inversa di questa funzione è denominata IsNullOrEmpty.

Parametri:

Nome Obbligatorio/Ripetuto Type Note
Expression Richiesto Espressione Espressione da valutare

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


IsString

Funzione: IsString(Expression)

Descrizione: se l'espressione può essere valutata in un tipo stringa, la funzione IsString restituisce True.

Parametri:

Nome Obbligatorio/Ripetuto Type Note
Expression Richiesto Espressione Espressione da valutare

Articolo

Funzione: Item(attribute, index)

Descrizione: la funzione Item restituisce un elemento da una stringa/attributo multivalore.

Parametri:

Nome Obbligatorio/Ripetuto Type Note
attribute Richiesto Attributo Attributo multivalore da cercare
index Richiesto Intero Indicizzare un elemento nella stringa multivalore

Esempio:Item([proxyAddresses], 1) restituisce il primo elemento nell'attributo multivalore. L'indice 0 non deve essere usato.


Join.

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

Descrizione: Join() è simile a Append(), ad eccezione del fatto che può combinare più valori di stringa di origine in una singola stringa e ogni valore è separato da una stringa separatore .

Se uno dei valori di origine è un attributo multivalore, ogni valore di tale attributo viene unito, separato dal valore separatore.

Parametri:

Nome Obbligatorio/Ripetuto Type Note
separator Richiesto String Stringa usata per separare i valori di origine quando vengono concatenati in una sola stringa. Può essere "" se non sono necessari separatori.
source1 sourceN Obbligatorio per un numero variabile di volte String Valori stringa da unire.

Sinistra

Funzione: Left(String, NumChars)

Descrizione: la funzione Left restituisce un numero specificato di caratteri a sinistra di una stringa. Se numChars = 0, restituisce una stringa vuota. Se numChars < 0, restituisce una stringa di input. Se string è Null, restituisce una stringa vuota. Se string contiene un numero di caratteri inferiore al numero specificato in numChars, viene restituita una stringa identica a string (ovvero contenente tutti i caratteri nel parametro 1).

Parametri:

Nome Obbligatorio/Ripetuto Type Note
Stringa Richiesto Attributo Stringa da cui restituire caratteri
NumChars Richiesto Intero Numero che identifica il numero di caratteri da restituire dall'inizio (a sinistra) della stringa

Esempio:Left("John Doe", 3)

Restituisce "Joh".


Mid

Funzione: Mid(source, start, length)

Descrizione: restituisce una sottostringa del valore di origine. Una sottostringa è una stringa che contiene solo alcuni caratteri della stringa di origine.

Parametri:

Nome Obbligatorio/Ripetuto Type Note
source Richiesto String Corrisponde in genere al nome dell'attributo.
start Richiesto Intero Indice nella stringa source che indica il punto di inizio della sottostringa. Il primo carattere nella stringa ha un indice pari a 1, il secondo carattere ha un indice 2 e così via.
length Richiesto Intero Lunghezza della sottostringa. Se la lunghezza termina all'esterno della stringa di origine , la funzione restituisce la sottostringa dall'indice iniziale fino alla fine della stringa di origine .

NormalizeDiacritics

Funzione: NormalizeDiacritics(source)

Descrizione: richiede un argomento stringa. Restituisce la stringa, ma con qualsiasi carattere diacritico sostituito con caratteri nondiacritici equivalenti. Viene in genere usata per convertire i nomi e i cognomi contenenti caratteri diacritici (accenti) in valori validi che possono essere usati in vari ID utente, ad esempio nomi dell'entità utente, nomi di account SAM e indirizzi di posta elettronica.

Parametri:

Nome Obbligatorio/Ripetuto Type Note
source Richiesto String In genere un attributo nome o cognome.
Carattere con diacritico Carattere normalizzato Carattere con diacritico Carattere normalizzato
ä, à, â, ã, å, á, ą, ă, ā, ā́, ā̂, ā̃, ǟ, ā, a̱, å̄ a Ä, À, Â, Ã, Å, Á, Ą, Ă, Ā, Ā́, Ā̀, Ā̂, Ā̃, Ǟ, Ā̈, Ǡ, A̱, Å̄ Un
æ, ǣ ae Æ, Ǣ AE
ç, č, ć, c̄, c̱ c Ç, Č, Ć, C̄, C̱ A
ď, d̄, ḏ d Ď, D̄, Ḏ D
ë, è, é, ê, ę, ė, ė, ē, ḗ, ḕ, ē̂, ē̃, ê̄, e̱, ë̄, e̊̄ e Ë, È, É, Ê, Ę, Ě, Ė, Ē, Ḗ, Ḕ, Ē̂, Ē̃, Ê̄, E̱, Ë̄, E̊̄ E
ğ, ḡ, g̱ g Ğ, Ḡ, G̱ G
ï, î, ì, í, ı, ī, ī́, ī̂, ī̃, i̱ i Ï, Î, Ì, Í, İ, Ī, Ī́, Ī̀, Ī̂, Ī̃, I̱ I
ł, ł, l̄, ḹ, ḻ l Ł, Ľ, L̄, Ḹ, Ḻ L
ñ, ̄, ṉ 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
ý, ý, ȳ, ȳ' , ȳ scalabilità, ȳ̃, y̱ y Ȳ, Ȳ, Ȳ' , Ȳ̃, Y̱ Y
̄, ž, ž, z̄, ẕ z ̄, Ž, Ž, Z̄, Ẕ Z

Rimuovere i segni diacritici da una stringa

Esempio: sostituire caratteri contenenti segni accenti con caratteri equivalenti che non contengono segni accenti.

Espressione: NormalizeDiacritics([givenName])

Input/output di esempio:

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

Not

Funzione: Not(source)

Descrizione: capovolge il valore booleano dell'origine. Se il valore di origine è True, restituisce False. In caso contrario, restituisce True.

Parametri:

Nome Obbligatorio/Ripetuto Type Note
source Richiesto Stringa booleana I valori previsti per source sono "True" o "False".

Ora

Funzione: Now()

Descrizione:
La funzione Now restituisce una stringa che rappresenta l'ora UTC corrente nel formato M/d/aaaa h:mm:ss tt.

Esempio:Now()
Valore di esempio restituito 2/7/2021 3:33:38 PM


NumFromDate

Funzione: NumFromDate(value)

Descrizione: la funzione NumFromDate converte un valore DateTime in formato Active Directory necessario per impostare attributi come accountExpires. Usare questa funzione per convertire i valori DateTime ricevuti da app hr cloud come Workday e SuccessFactors nella rappresentazione ad ad equivalente.

Parametri:

Nome Obbligatorio/Ripetuto Type Note
value Richiesto String Stringa di data e ora nel formato ISO 8601 . Se la variabile di data è in un formato diverso, usare la funzione FormatDateTime per convertire la data in formato ISO 8601.

Esempio:

  • Esempio di Workday: supponendo di voler eseguire il mapping dell'attributo ContractEndDate da Workday, che è nel formato 2020-12-31-08:00 al campo accountExpires in AD, ecco come è possibile usare questa funzione e modificare l'offset del fuso orario in modo che corrisponda alle impostazioni locali. NumFromDate(Join("", FormatDateTime([ContractEndDate], ,"yyyy-MM-ddzzz", "yyyy-MM-dd"), " 23:59:59-08:00"))

  • Esempio di SuccessFactors: supponendo di voler eseguire il mapping dell'attributo endDate da SuccessFactors, che è nel formato M/d/aaaaa hh:mm:ss tt al campo accountExpires in AD, ecco come usare questa funzione e modificare l'offset del fuso orario in modo che corrisponda alle impostazioni locali. NumFromDate(Join("",FormatDateTime([endDate], ,"M/d/yyyy hh:mm:ss tt","yyyy-MM-dd")," 23:59:59-08:00"))


PCase

Funzione: PCase(source, wordSeparators)

Descrizione: la funzione PCase converte il primo carattere di ogni parola in una stringa in lettere maiuscole e tutti gli altri caratteri vengono convertiti in lettere minuscole.

Parametri:

Nome Obbligatoria/Facoltativa Type Note
source Richiesto String valore di origine da convertire in lettere maiuscole/minuscole appropriate.
wordSeparators Facoltativo String Specificare un set di caratteri che viene usato come separatori di parole (ad esempio: " ,-'")

Note:

  • Se il parametro wordSeparators non viene specificato, PCase richiama internamente la funzione .NET ToTitleCase per convertire la stringa di origine nel caso corretto. La funzione .NET ToTitleCase supporta un set completo di categorie di caratteri Unicode come separatori di parole.
    • Spazio
    • Nuovo carattere riga
    • Caratteri di controllo come CRLF
    • Formattare i caratteri di controllo
    • Caratteri connectorPunctuation come carattere di sottolineatura
    • Caratteri DashPunctuation come trattino e trattino (inclusi caratteri come En Dash, Em Dash, trattino doppio e così via)
    • Caratteri OpenPunctuation e ClosePunctuation che si verificano in coppie come parentesi graffe, parentesi graffe, parentesi angolare e così via.
    • Caratteri InitialQuotePunctuation e FinalQuotePunctuation come virgolette singole, virgolette doppie e virgolette angolari.
    • Altri caratteri di punteggiatura , ad esempio punto esclamativo, segno di numero, segno percentuale, e commerciale, asterisco, virgola, virgola, punti, punti e così via.
    • Caratteri MathSymbol come segno più, segno minore e maggiore di, linea verticale, tilde, segno di uguale e così via.
    • CurrencySymbol personaggi come segno di dollaro, segno di centesimo, segno di sterlina, segno di euro e così via.
    • ModifierSymbol caratteri come i tasti di colore, le punte di freccia e così via.
    • Altri caratteri diSymbol come il segno di copyright, il segno di laurea, il segno registrato e così via.
  • Se viene specificato il parametro wordSeparators , PCase usa solo i caratteri specificati come separatori di parole.

Esempio:

Si supponga di eseguire l'origine degli attributi firstName e lastName di SAP SuccessFactors e in HR entrambi questi attributi si trovano in lettere maiuscole. Usando la funzione PCase, è possibile convertire il nome in maiuscolo appropriato, come illustrato di seguito.

Espressione Input Output Note
PCase([firstName]) firstName = "PABLO GONSALVES (SECOND)" "Pablo Gonsalves (Secondo)" Poiché il parametro wordSeparators non viene specificato, la funzione PCase usa il set di caratteri separatori di parole predefinito.
PCase([lastName]," '-") lastName = "PINTO-DE'SILVA" "Pinto-De'Silva" La funzione PCase usa caratteri nel parametro wordSeparators per identificare le parole e trasformarle in maiuscole e minuscole appropriate.
PCase(Join(" ",[firstName],[lastName])) firstName = GREGORY, lastName = "JAMES" "Gregory James" È possibile annidare la funzione Join all'interno di PCase. Poiché il parametro wordSeparators non viene specificato, la funzione PCase usa il set di caratteri separatori di parole predefinito.

RandomString

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

Descrizione: la funzione RandomString genera una stringa casuale in base alle condizioni specificate. I caratteri consentiti possono essere identificati qui.

Parametri:

Nome Obbligatorio/Ripetuto Type Note
Lunghezza Richiesto Numero Lunghezza totale della stringa casuale. Deve essere maggiore o uguale alla somma di MinimumNumbers, MinimumSpecialCharacters e MinimumCapital. Massimo 256 caratteri.
MinimumNumbers Richiesto Numero Numeri minimi nella stringa casuale.
MinimumSpecialCharacters Richiesto Numero Numero minimo di caratteri speciali.
MinimumCapital Richiesto Numero Numero minimo di lettere maiuscole nella stringa casuale.
MinimumLowerCase Richiesto Numero Numero minimo di lettere minuscole nella stringa casuale.
CharactersToAvoid Facoltativo String Caratteri da escludere durante la generazione della stringa casuale.

Esempio 1: - Generare una stringa casuale senza restrizioni di caratteri speciali: RandomString(6,3,0,0,3) Genera una stringa casuale con 6 caratteri. La stringa contiene 3 numeri e 3 caratteri minuscoli (1a73qt).

Esempio 2: - Generare una stringa casuale con restrizioni di caratteri speciali: RandomString(10,2,2,2,1,"?,") Genera una stringa casuale con 10 caratteri. La stringa contiene almeno 2 numeri, 2 caratteri speciali, 2 lettere maiuscole, 1 lettera minuscola ed esclude i caratteri "?" e "," (1@!2BaRg53).


Redigere

Funzione: Redact()

Descrizione: la funzione Redact sostituisce il valore dell'attributo con il valore letterale stringa "[Redact]" nei log di provisioning.

Parametri:

Nome Obbligatorio/Ripetuto Type Note
attributo/valore Richiesto String Specificare l'attributo o la costante/stringa da ripetere dai log.

Esempio 1: Redact an attribute :Example 1: Redact an attribute: Redact([userPrincipalName]) Rimuove userPrincipalName dai log di provisioning.

Esempio 2: Redact a string:Example 2: Redact a string: Redact("StringToBeRedacted") Rimuove una stringa costante dai log di provisioning.

Esempio 3: Redact a random string:Example 3: Redact a random string: Redact(RandomString(6,3,0,0,3)) Rimuove la stringa casuale dai log di provisioning.


RemoveDuplicates

Funzione: RemoveDuplicates(attribute)

Descrizione: la funzione RemoveDuplicates accetta una stringa multivalore e assicurarsi che ogni valore sia univoco.

Parametri:

Nome Obbligatorio/Ripetuto Type Note
attribute Richiesto Attributo multivalore Attributo multivalore con duplicati rimossi

Esempio:RemoveDuplicates([proxyAddresses]) restituisce un attributo proxyAddress sanificato in cui vengono rimossi tutti i valori duplicati.


Sostituzione

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

Descrizione: sostituisce i valori all'interno di una stringa in modo con distinzione tra maiuscole e minuscole. La funzione si comporta in modo diverso a seconda dei parametri forniti:

  • Se vengono forniti oldValue e replacementValue:

    • Sostituisce tutte le occorrenze di oldValue in source con replacementValue
  • Se vengono forniti oldValue e template:

    • Sostituisce tutte le occorrenze di oldValue in template con il valore source
  • Se vengono forniti regexPattern e replacementValue:

    • La funzione applica regexPattern alla stringa source ed è possibile usare i nomi del gruppo di regex per creare la stringa per replacementValue

Nota

Per altre informazioni sui costrutti di raggruppamento regex e sulle sottoespressione denominate, vedere Costrutti di raggruppamento nelle espressioni regolari.

  • Se vengono forniti regexPattern, regexGroupName e replacementValue:

    • La funzione applica regexPattern alla stringa source e sostituisce tutti i valori che corrispondono a regexGroupName con replacementValue
  • Se vengono forniti regexPattern, regexGroupName e replacementAttributeName:

    • Se l'origine ha un valore, viene restituita l'origine
    • Se source non ha alcun valore, la funzione applica regexPattern a replacementAttributeName e restituisce il valore corrispondente a regexGroupName

Parametri:

Nome Obbligatorio/Ripetuto Type Note
source Richiesto String In genere è il nome dell'attributo dell'oggetto source.
oldValue Facoltativo String Valore da sostituire in source o template.
regexPattern Facoltativo String Criterio di espressione regolare per il valore da sostituire in source. Quando si usa replacementAttributeName , il regexPattern viene applicato per estrarre un valore da replacementAttributeName.
regexGroupName Facoltativo String Nome del gruppo in regexPattern. Quando si usa replacementAttributeName denominato, si estrae il valore del gruppo regex denominato da replacementAttributeName e lo si restituisce come valore di sostituzione.
replacementValue Facoltativo String Nuovo valore con cui sostituire il precedente.
replacementAttributeName Facoltativo String Nome dell'attributo da usare per il valore di sostituzione
annidato Facoltativo String Quando viene specificato il valore del modello , cercare oldValue all'interno del modello e sostituirlo con il valore di origine .

Sostituire caratteri usando un'espressione regolare

Esempio 1: uso di oldValue e replacementValue per sostituire l'intera stringa di origine con un'altra stringa.

Si supponga che il sistema HR abbia un attributo BusinessTitle. Nell'ambito delle recenti modifiche al titolo di lavoro, l'azienda vuole aggiornare chiunque abbia il titolo aziendale "Product Developer" a "Software Engineer". In questo caso, è quindi possibile usare l'espressione seguente nel mapping degli attributi.

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

  • origine: [BusinessTitle]
  • oldValue: "Product Developer"
  • replacementValue: "Software Engineer"
  • Output dell'espressione: Software Engineer

Esempio 2: Uso di oldValue e modello per inserire la stringa di origine in un'altra stringa templatizzata .

Il parametro oldValue è un errore in questo scenario. In realtà è il valore che viene sostituito.
Si supponga di voler generare sempre l'ID di accesso nel formato <username>@contoso.com. È presente un attributo di origine denominato UserID e si vuole usare tale valore per la <username> parte dell'ID di accesso. In questo caso, è quindi possibile usare l'espressione seguente nel mapping degli attributi.

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

  • source: [UserID] = "jsmith"
  • oldValue: "<username>"
  • modello: "<username>@contoso.com"
  • Output dell'espressione: "jsmith@contoso.com"

Esempio 3: Uso di regexPattern e replacementValue per estrarre una parte della stringa di origine e sostituirla con una stringa vuota o un valore personalizzato compilato usando modelli regex o nomi di gruppi regex.

Si supponga di avere un attributo telephoneNumber di origine con componenti country code e phone number separati da uno spazio. Ad esempio, +91 9998887777 in questo caso, è possibile usare l'espressione seguente nel mapping degli attributi per estrarre il numero di telefono a 10 cifre.

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

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

È anche possibile usare questo modello per rimuovere i caratteri e comprimere una stringa. Ad esempio, l'espressione seguente rimuove le parentesi, i trattini e gli spazi nella stringa del numero di cellulare e restituisce solo cifre.

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

  • fonte: [mobile] = "+1 (999) 888-7777"
  • regexPattern: "[()\\s-]+"
  • replacementValue: "" (stringa vuota)
  • Output dell'espressione: 19998887777

Esempio 4: uso di regexPattern, regexGroupName e replacementValue per estrarre una parte della stringa di origine e sostituirla con un altro valore letterale o stringa vuota.

Si supponga che il sistema di origine abbia un attributo AddressLineData con due componenti numero di strada e nome della strada. Come parte di uno spostamento recente, si supponga che il numero di strada dell'indirizzo sia cambiato e si voglia aggiornare solo la parte del numero di strada della riga dell'indirizzo. In questo caso, è quindi possibile usare l'espressione seguente nel mapping degli attributi per estrarre il numero di strada.

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

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

Ecco un altro esempio in cui il suffisso del dominio da un UPN viene sostituito con una stringa vuota per generare l'ID di accesso senza suffisso di dominio.

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

  • source: [userPrincipalName] = "jsmith@contoso.com"
  • regexPattern: "(?<Suffix>@(.)*)"
  • regexGroupName: "Suffix"
  • replacementValue: "" (stringa vuota)
  • Output dell'espressione: jsmith

Esempio 5: uso di regexPattern, regexGroupName e replacementAttributeName per gestire gli scenari quando l'attributo di origine è vuoto o non ha un valore.

Si supponga che il sistema di origine abbia un attributo telephoneNumber. Se telephoneNumber è vuoto, si desidera estrarre le 10 cifre dell'attributo numero di cellulare. In questo caso, è quindi possibile usare l'espressione seguente nel mapping degli attributi.

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

  • source: [telephoneNumber] = "" (stringa vuota)
  • regexPattern: "\\+(?<isdCode>\\d* )(?<phoneNumber>\\d{10})"
  • regexGroupName: "phoneNumber"
  • replacementAttributeName: [mobile] = "+91 8887779999"
  • Output dell'espressione: 8887779999

Esempio 6: è necessario trovare caratteri che corrispondono a un valore di espressione regolare e rimuoverli.

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

  • source [mailNickname]
  • oldValue: "john_doe72"
  • replaceValue: ""
  • Output dell'espressione: 72

SelectUniqueValue

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

Descrizione: richiede almeno due argomenti, ovvero regole di generazione di valori univoche definite tramite espressioni. La funzione valuta ogni regola e controlla quindi il valore generato per verificarne l'univocità nella directory/app di destinazione. Il primo valore univoco trovato è quello restituito. Se tutti i valori sono già presenti nella destinazione, la voce viene depositata e il motivo viene registrato nei log di controllo. Non esiste alcun limite superiore al numero di argomenti che è possibile specificare.

  • Questa funzione deve essere al livello superiore e non può essere annidata.

  • Questa funzione non può essere applicata agli attributi con precedenza corrispondente.

  • Questa funzione è destinata a essere usata solo per la creazione di voci. Se viene usata con un attributo, impostare la proprietà Applica questo mapping su Solo durante la creazione dell'oggetto.

  • Questa funzione è attualmente supportata per l'uso con queste applicazioni:

    • Provisioning utenti da Workday ad Active Directory
    • Provisioning utenti da SuccessFactors ad Active Directory
    • Provisioning basato su API per Active Directory locale

    SelectUniqueValue non è supportato per l'uso con altre applicazioni di provisioning.

  • La ricerca LDAP eseguita dalla funzione SelectUniqueValue in Active Directory locale non esegue l'escape di caratteri speciali come diacritici. Se si passa una stringa come "Jéssica Smith" che contiene un carattere speciale, si verificano errori di elaborazione. Annidare la funzione NormalizeDiacritics come illustrato in questo esempio per normalizzare i caratteri speciali.

Parametri:

Nome Obbligatorio/Ripetuto Type Note
uniqueValueRule1 … uniqueValueRuleN Sono necessari almeno 2 argomenti, nessun limite superiore String Elenco delle regole di generazione di valori univoci da valutare.

Generare un valore univoco per l'attributo userPrincipalName (UPN)

Esempio: in base al nome dell'utente, al secondo nome e al cognome dell'utente, è necessario generare un valore per l'attributo UPN e verificarne l'univocità nella directory di AD di destinazione prima di assegnare il valore all'attributo UPN.

Expression:

    SelectUniqueValue( 
        Join("@", NormalizeDiacritics(StripSpaces(Join(".",  [PreferredFirstName], [PreferredLastName]))), "contoso.com"), 
        Join("@", NormalizeDiacritics(StripSpaces(Join(".",  Mid([PreferredFirstName], 1, 1), [PreferredLastName]))), "contoso.com"),
        Join("@", NormalizeDiacritics(StripSpaces(Join(".",  Mid([PreferredFirstName], 1, 2), [PreferredLastName]))), "contoso.com")
    )

Input/output di esempio:

  • INPUT (PreferredFirstName): "John"
  • INPUT (PreferredLastName): "Smith"
  • OUTPUT: "John.Smith@contoso.com" se il valore UPN di John.Smith@contoso.com non esiste già nella directory
  • OUTPUT: "J.Smith@contoso.com" se il valore UPN di John.Smith@contoso.com esiste già nella directory
  • OUTPUT: "Jo.Smith@contoso.com" se i due valori UPN precedenti esistono già nella directory

SingleAppRoleAssignment

Funzione: SingleAppRoleAssignment([appRoleAssignments])

Descrizione: restituisce un'unica appRoleAssignment dall'elenco di tutte le appRoleAssignments assegnate a un utente per una determinata applicazione. Questa funzione è necessaria per convertire l'oggetto appRoleAssignments in una singola stringa relativa al nome di un ruolo. La procedura consigliata consiste nel garantire che venga assegnato un solo appRoleAssignment a un utente alla volta. Questa funzione non è supportata negli scenari in cui gli utenti hanno più assegnazioni di ruolo dell'app.

Parametri:

Nome Obbligatorio/Ripetuto Type Note
[appRoleAssignments] Richiesto String Oggetto [appRoleAssignments].

Divisa

Funzione: Split(source, delimiter)

Descrizione: suddivide una stringa in una matrice multivalore, usando il carattere delimitatore specificato.

Parametri:

Nome Obbligatorio/Ripetuto Type Note
source Richiesto String source da aggiornare.
delimiter Richiesto String Specifica il carattere utilizzato per suddividere la stringa (esempio: ",")

Dividere una stringa in una matrice multivalore

Esempio: è necessario prendere un elenco delimitato da virgole di stringhe e suddividerli in una matrice che può essere collegata a un attributo multivalore come l'attributo PermissionSets di Salesforce. In questo esempio, un elenco di set di autorizzazioni viene popolato in extensionAttribute5 in Microsoft Entra ID.

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

Input/output di esempio:

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

StripSpaces

Funzione: StripSpaces(source)

Descrizione: rimuove tutti gli spazi (" ") dalla stringa di origine.

Parametri:

Nome Obbligatorio/Ripetuto Type Note
source Richiesto String source da aggiornare.

Switch

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

Descrizione: quando il valore di origine corrisponde a una chiave, restituisce il valore per tale chiave. Se il valore del parametro source non corrisponde ad alcuna chiave, verrà restituito defaultValue. I parametri key e value devono essere sempre accoppiati. Le funzioni prevedono sempre un numero pari di parametri. La funzione non deve essere usata per gli attributi referenziale, ad esempio manager.

Nota

La funzione Switch esegue un confronto tra stringhe con distinzione tra maiuscole e minuscole dei valori di origine e chiave . Se si vuole eseguire un confronto senza distinzione tra maiuscole e minuscole, normalizzare la stringa di origine prima del confronto usando una funzione ToLower annidata e assicurarsi che tutte le stringhe chiave usino lettere minuscole. Esempio: Switch(ToLower([statusFlag]), "0", "true", "1", "false", "0"). In questo esempio, l'attributo statusFlag di origine può avere valori ("True" / "true" / "TRUE"). Tuttavia, la funzione Switch lo converte sempre in stringa minuscola "true" prima del confronto con i parametri chiave .

Attenzione

Per il parametro di origine , non usare le funzioni annidate IsPresent, IsNull o IsNullOrEmpty. Usare invece una stringa vuota letterale come uno dei valori chiave.
Esempio: Switch([statusFlag], "Default Value", "true", "1", "", "0"). In questo esempio, se l'attributo statusFlag di origine è vuoto, la funzione Switch restituisce il valore 0.

Attenzione

Problema: il servizio di provisioning imposta erroneamente un valore di attributo su Null nel sistema di destinazione quando si usa un'istruzione switch.
Soluzione: usare un'istruzione IIF anziché un'istruzione switch per evitare valori Null imprevisti o usare la funzione IgnoreFlowIfNullOrEmpty con l'istruzione switch. Ad esempio, switch([companyName], "External", "Company A", "A", "Company B", "B") deve essere rappresentato come IIF([companyName] = "Company A", "A", IIF([companyName] = "Company B", "B", "External")). Nei casi in cui il valore predefinito è un attributo, usare un'espressione come IgnoreFlowIfNullOrEmpty(switch([companyName], [companyName], "Company A", "A", "Company B", "B")).
Causa radice: questo problema è specifico per gli scenari in cui Microsoft Entra ID è il sistema di origine e l'istruzione switch contiene un valore predefinito.

Parametri:

Nome Obbligatorio/Ripetuto Type Note
source Richiesto String Source da aggiornare.
defaultValue Facoltativo String Valore predefinito da usare se l'origine non corrisponde ad alcuna chiave. Può essere una stringa vuota ("").
key Richiesto String Parametro key con cui confrontare il valore di source.
value Richiesto String Valore di sostituzione per il valore source corrispondente al parametro key.

Sostituire un valore in base a un set di opzioni predefinito

Esempio: definire il fuso orario dell'utente in base al codice di stato archiviato in Microsoft Entra ID. Se il codice di stato non corrisponde ad alcuna opzione predefinita, usare il valore predefinito "Australia/Sydney".

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

Input/output di esempio:

  • INPUT (state): "QLD"
  • OUTPUT: "Australia/Brisbane"

ToLower

Funzione: ToLower(source, culture)

Descrizione: accetta un valore stringa di origine e lo converte in lettere minuscole usando le regole delle impostazioni cultura specificate. Se non sono specificate informazioni sulle impostazioni cultura , usa le impostazioni cultura invarianti.

Se si desidera impostare valori esistenti nel sistema di destinazione in lettere minuscole, aggiornare lo schema per l'applicazione di destinazione e impostare la proprietà caseExact su "true" per l'attributo a cui si è interessati.

Parametri:

Nome Obbligatorio/Ripetuto Type Note
source Richiesto String In genere è il nome dell'attributo dell'oggetto di origine.
Impostazioni cultura Facoltativo String Il formato per il nome delle impostazioni cultura basato su RFC 4646 è languagecode2-country/regioncode2, in cui languagecode2 è il codice lingua a due lettere e country/regioncode2 è il codice di impostazioni cultura secondarie a due lettere. Gli esempi includono ja-JP per il giapponese (Giappone) e en-US per l'inglese (Stati Uniti). Nei casi in cui non è disponibile un codice linguistico a due lettere, viene usato un codice di tre lettere derivato da ISO 639-2.

Converte il valore userPrincipalName (UPN) generato in caratteri minuscoli

Esempio: si vuole generare il valore UPN concatenando i campi di origine PreferredFirstName e PreferredLastName e convertendo tutti i caratteri in lettere minuscole.

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

Input/output di esempio:

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

ToUpper

Funzione: ToUpper(source, culture)

Descrizione: accetta un valore stringa di origine e lo converte in lettere maiuscole usando le regole delle impostazioni cultura specificate. Se non sono specificate informazioni sulle impostazioni cultura , usa le impostazioni cultura invarianti.

Se si desidera impostare i valori esistenti nel sistema di destinazione in lettere maiuscole, aggiornare lo schema per l'applicazione di destinazione e impostare la proprietà caseExact su "true" per l'attributo a cui si è interessati.

Parametri:

Nome Obbligatorio/Ripetuto Type Note
source Richiesto String In genere è il nome dell'attributo dell'oggetto source.
Impostazioni cultura Facoltativo String Il formato per il nome delle impostazioni cultura basato su RFC 4646 è languagecode2-country/regioncode2, in cui languagecode2 è il codice lingua a due lettere e country/regioncode2 è il codice di impostazioni cultura secondarie a due lettere. Gli esempi includono ja-JP per il giapponese (Giappone) e en-US per l'inglese (Stati Uniti). Nei casi in cui non è disponibile un codice linguistico a due lettere, viene usato un codice di tre lettere derivato da ISO 639-2.

Word

Funzione: Word(String,WordNumber,Delimiters)

Descrizione: la funzione word restituisce una parola contenuta all'interno di una stringa, in base ai parametri che descrivono i delimitatori da utilizzare e il numero di parola da restituire. Ogni stringa di caratteri contenuta nella stringa con valori separati da uno dei caratteri specificati nei delimitatori viene identificata come una parola:

Se number è < 1, restituisce una stringa vuota. Se string è Null, restituisce una stringa vuota. Se la stringa contiene meno di parole numeri o la stringa non contiene parole identificate dai delimitatori, viene restituita una stringa vuota.

Parametri:

Nome Obbligatorio/Ripetuto Type Note
Stringa Richiesto Attributo multivalore Stringa da cui restituire una parola.
WordNumber Richiesto Intero Numero che identifica il numero di parola da restituire
Delimitatori Richiesto String Stringa che rappresenta i delimitatori da utilizzare per identificare le parole

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

Restituisce "marrone".

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

Restituisce "has".


Esempi

In questa sezione vengono forniti altri esempi di utilizzo delle funzioni di espressione.

Rimuovere un nome di dominio noto

Rimuovere un nome di dominio noto dal messaggio di posta elettronica di un utente per ottenere un nome utente. Ad esempio, se il dominio è "contoso.com", è possibile usare l'espressione seguente:

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

Input/output di esempio:

  • INPUT (mail): "john.doe@contoso.com"
  • OUTPUT: "john.doe"

Generare un alias utente concatenando parti del nome e del cognome

Generare un alias utente prendendo le prime tre lettere del nome dell'utente e le prime cinque lettere del cognome dell'utente.

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

Input/output di esempio:

  • INPUT (givenName): "John"
  • INPUT (surname): "Doe"
  • OUTPUT: "JohDoe"

Aggiungere una virgola tra il cognome e il nome.

Aggiungere una virgola tra il cognome e il nome.

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

Input/output di esempio:

  • INPUT (givenName): "John"
  • INPUT (surname): "Doe"
  • OUTPUT: "Doe, John"

Generare un ID per un utente in base all'ID oggetto Microsoft Entra. Rimuovere tutte le lettere dall'ID e aggiungere 1000 all'inizio.

Questa espressione consente di generare un identificatore per un utente che inizia con 1000 ed è probabilmente univoco.

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

Input/output di esempio:

  • INPUT: "00aa00a-bb11-cc22-dd33-44ee44ee4ee"
  • OUTPUT: "100064303565343762312333930392343435612626135652636136306362633065346234"