Udostępnij za pośrednictwem


Pisanie wyrażeń dla mapowań atrybutów w identyfikatorze Entra firmy Microsoft

Podczas konfigurowania synchronizacji w chmurze jednym z typów mapowań atrybutów, które można określić, jest mapowanie wyrażeń.

Mapowanie wyrażeń umożliwia dostosowanie atrybutów przy użyciu wyrażenia przypominającego skrypt. Dzięki temu można przekształcić dane lokalne w nową lub inną wartość. Na przykład możesz połączyć dwa atrybuty w jeden atrybut, ponieważ ten pojedynczy atrybut jest używany przez jedną z aplikacji w chmurze.

Poniższy dokument zawiera wyrażenia podobne do skryptów, które są używane do przekształcania danych. Jest to tylko część procesu. Następnie należy użyć tego wyrażenia i umieścić je w żądaniu internetowym do dzierżawy. Aby uzyskać więcej informacji na temat tego, zobacz Przekształcenia

Omówienie składni

Składnia wyrażeń mapowań atrybutów przypomina funkcje Języka Visual Basic for Applications (VBA).

  • Całe wyrażenie musi być zdefiniowane w kategoriach funkcji, które składają się z nazwy, po której następują argumenty w nawiasach:
    FunctionName(<<argument 1>>,<<argument N>>)

  • Funkcje można zagnieżdżać w sobie. Na przykład: .
    FunctionOne(FunctionTwo(<<argument1>>))

  • Do funkcji można przekazać trzy różne typy argumentów:

    1. Atrybuty, które muszą być ujęte w nawiasy kwadratowe. Na przykład: [attributeName]
    2. Stałe ciągów, które muszą być ujęte w cudzysłowy. Na przykład: "Stany Zjednoczone"
    3. Inne funkcje. Na przykład: FunctionOne(<<argument1>>, FunctionTwo(<<argument2>>))
  • W przypadku stałych ciągów, jeśli potrzebujesz ukośnika odwrotnego ( \ ) lub cudzysłowu ( " ) w ciągu, musi on zostać usunięty z symbolem ukośnika odwrotnego ( \ ). Na przykład: "Nazwa firmy: \"Contoso\""

Lista funkcji

Lista funkcji opis
Dołączanie Pobiera wartość ciągu źródłowego i dołącza sufiks na końcu.
BitAnd Funkcja BitAnd ustawia określone bity na wartości.
Cbool Funkcja CBool zwraca wartość logiczną na podstawie obliczonego wyrażenia
KonwertujFromBase64 Funkcja ConvertFromBase64 konwertuje określoną wartość zakodowaną w formacie base64 na zwykły ciąg.
ConvertToBase64 Funkcja ConvertToBase64 konwertuje ciąg na ciąg Base64 Unicode.
ConvertToUTF8Hex Funkcja ConvertToUTF8Hex konwertuje ciąg na wartość zakodowaną algorytmem szesnastkowym UTF8.
Licznik Funkcja Count zwraca liczbę elementów w atrybucie wielowartościowym
Cstr Funkcja CStr konwertuje na typ danych ciągu.
DateFromNum Funkcja DateFromNum konwertuje wartość w formacie daty usługi AD na typ DateTime.
DnComponent Funkcja DNComponent zwraca wartość określonego składnika DN przechodzącego od lewej.
Błąd Funkcja Error służy do zwracania niestandardowego błędu.
Formatdatetime Pobiera ciąg daty z jednego formatu i konwertuje go na inny format.
Identyfikator GUID Identyfikator GUID funkcji generuje nowy losowy identyfikator GUID.
IIF Funkcja IIF zwraca jeden z zestawów możliwych wartości na podstawie określonego warunku.
Instr Funkcja InStr znajduje pierwsze wystąpienie podciągów w ciągu.
Isnull Jeśli wyrażenie zwróci wartość Null, funkcja IsNull zwraca wartość true.
IsNullOrEmpty Jeśli wyrażenie ma wartość null lub pusty ciąg, funkcja IsNullOrEmpty zwraca wartość true.
Ispresent Jeśli wyrażenie oblicza ciąg, który nie ma wartości Null i nie jest pusty, funkcja IsPresent zwraca wartość true.
IsString Jeśli wyrażenie można ocenić na typ ciągu, funkcja IsString zwraca wartość True.
Produkt Funkcja Item zwraca jeden element z wielowartego ciągu/atrybutu.
Dołącz Funkcja Join() jest podobna do Append(), z tą różnicą, że może łączyć wiele wartości ciągów źródłowych w jeden ciąg, a każda wartość zostanie oddzielona ciągiem separatora.
Left Funkcja Left zwraca określoną liczbę znaków z lewej strony ciągu.
Mid Zwraca podciąg wartości źródłowej. Podciąg to ciąg zawierający tylko niektóre znaki z ciągu źródłowego.
NormalizeDiacritics Wymaga jednego argumentu ciągu. Zwraca ciąg, ale z dowolnymi znakami diakrytycznymi zastąpionymi równoważnymi znakami niekrytycznymi.
Not Przerzuca wartość logiczną źródła. Jeśli wartość źródłowa to "True", zwraca wartość "False". W przeciwnym razie zwraca wartość "True".
RemoveDuplicates Funkcja RemoveDuplicates przyjmuje ciąg wielowartościowy i upewnij się, że każda wartość jest unikatowa.
Replace Zamienia wartości w ciągu.
Wybierz pozycjęUniqueValue Wymaga co najmniej dwóch argumentów, które są unikatowymi regułami generowania wartości zdefiniowanymi przy użyciu wyrażeń. Funkcja ocenia każdą regułę, a następnie sprawdza wartość wygenerowaną pod kątem unikatowości w docelowej aplikacji/katalogu.
SingleAppRoleAssignment Zwraca pojedynczy element appRoleAssignment z listy wszystkich elementów appRoleAssignments przypisanych do użytkownika dla danej aplikacji.
Podział Dzieli ciąg na tablicę wielowartościową przy użyciu określonego znaku ogranicznika.
StringFromSID Funkcja StringFromSid konwertuje tablicę bajtów zawierającą identyfikator zabezpieczeń na ciąg.
Przestrzenie paskowe Usuwa wszystkie znaki spacji (" ") z ciągu źródłowego.
Switch Gdy wartość źródłowa jest zgodna z kluczem, zwraca wartość dla tego klucza.
Tolower Pobiera wartość ciągu źródłowego i konwertuje ją na małe litery przy użyciu określonych reguł kultury.
Toupper Pobiera wartość ciągu źródłowego i konwertuje ją na wielkie litery przy użyciu określonych reguł kultury.
Trim Funkcja Trim usuwa wiodące i końcowe białe spacje z ciągu.
Word Funkcja programu Word zwraca wyraz zawarty w ciągu na podstawie parametrów opisujących ograniczniki do użycia i liczbę wyrazów do zwrócenia.

Dołączanie

Funkcja:
Append(źródło, sufiks)

Opis rozwiązania:
Pobiera wartość ciągu źródłowego i dołącza sufiks na końcu.

Parametry:

Nazwisko Wymagane/powtarzane Type Uwagi
source Wymagania String Zazwyczaj nazwa atrybutu z obiektu źródłowego.
Sufiks Wymagania String Ciąg, który chcesz dołączyć na końcu wartości źródłowej.

BitAnd

Opis rozwiązania:
Funkcja BitAnd ustawia określone bity na wartości.

Składnia:
num BitAnd(num value1, num value2)

  • value1, value2: wartości liczbowe, które powinny mieć wartość AND'ed razem

Uwagi:
Ta funkcja konwertuje oba parametry na reprezentację binarną i ustawia bit na:

  • 0 — jeśli jeden lub oba odpowiadające bity w wartości1 i wartość2 mają wartość 0
  • 1 — jeśli oba odpowiednie bity mają wartość 1.

Innymi słowy, zwraca wartość 0 we wszystkich przypadkach, z wyjątkiem sytuacji, gdy odpowiadające im bity obu parametrów to 1.

Przykład:

BitAnd(&HF, &HF7)
Zwraca wartość 7, ponieważ wartość szesnastkowa "F" i "F7" daje wartość .


Cbool

Opis rozwiązania:
Funkcja CBool zwraca wartość logiczną na podstawie obliczonego wyrażenia

Składnia:
bool CBool(exp Expression)

Uwagi:
Jeśli wyrażenie zwróci wartość inną niż zero, funkcja CBool zwraca wartość True, a następnie zwraca wartość False.

Przykład:
CBool([attrib1] = [attrib2])

Zwraca wartość True, jeśli oba atrybuty mają tę samą wartość.


KonwertujFromBase64

Opis rozwiązania:
Funkcja ConvertFromBase64 konwertuje określoną wartość zakodowaną w formacie base64 na zwykły ciąg.

Składnia:
str ConvertFromBase64(str source) - zakłada Unicode do kodowania
str ConvertFromBase64(str source, enum Encoding)

  • źródło: Ciąg zakodowany w formacie Base64
  • Kodowanie: Unicode, ASCII, UTF8

Przykład
ConvertFromBase64("SABlAGwAbABvACAAdwBvAHIAbABkACEA")
ConvertFromBase64("SGVsbG8gd29ybGQh", UTF8)

Oba przykłady zwracają wartość "Hello world!".


ConvertToBase64

Opis rozwiązania:
Funkcja ConvertToBase64 konwertuje ciąg na ciąg Base64 Unicode.
Konwertuje wartość tablicy liczb całkowitych na równoważną reprezentację ciągu zakodowaną przy użyciu cyfr base-64.

Składnia:
str ConvertToBase64(str source)

Przykład:
ConvertToBase64("Hello world!")
Zwraca wartość "SABlAGwAbABvACAAdwBvAHIAbABkACEA"


ConvertToUTF8Hex

Opis rozwiązania:
Funkcja ConvertToUTF8Hex konwertuje ciąg na wartość zakodowaną algorytmem szesnastkowym UTF8.

Składnia:
str ConvertToUTF8Hex(str source)

Uwagi:
Format wyjściowy tej funkcji jest używany przez firmę Microsoft Entra ID jako format atrybutu DN.

Przykład:
ConvertToUTF8Hex("Hello world!")
Zwraca wartość 48656C6C6F20776F726C6421


Count

Opis rozwiązania:
Funkcja Count zwraca liczbę elementów w atrybucie wielowartościowym

Składnia:
num Count(mvstr attribute)


Cstr

Opis rozwiązania:
Funkcja CStr konwertuje na typ danych ciągu.

Składnia:
str CStr(num value)
str CStr(ref value)
str CStr(bool value)

  • wartość: może być wartością liczbową, atrybutem odwołania lub wartością logiczną.

Przykład:
CStr([dn])
Może zwrócić wartość "cn=Joe,dc=contoso,dc=com"


DateFromNum

Opis rozwiązania:
Funkcja DateFromNum konwertuje wartość w formacie daty usługi AD na typ DateTime.

Składnia:
dt DateFromNum(num value)

Przykład:
DateFromNum([lastLogonTimestamp])
DateFromNum(129699324000000000)
Zwraca wartość typu DateTime reprezentującą 2012-01-01 23:00:00


DnComponent

Opis rozwiązania:
Funkcja DNComponent zwraca wartość określonego składnika DN przechodzącego od lewej.

Składnia:
str DNComponent(ref dn, num ComponentNumber)

  • dn: atrybut odwołania do interpretacji
  • ComponentNumber: składnik w dn, aby zwrócić

Przykład:
DNComponent(CRef([dn]),1)
Jeśli dn ma wartość "cn=Joe,ou=...", zwraca wartość Joe


Błąd

Opis rozwiązania:
Funkcja Error służy do zwracania niestandardowego błędu.

Składnia:
void Error(str ErrorMessage)

Przykład:
IIF(IsPresent([accountName]),[accountName],Error("AccountName is required"))
Jeśli atrybut accountName nie jest obecny, wyrzuć błąd na obiekcie.


Formatdatetime

Funkcja:
FormatDateTime(source, inputFormat, outputFormat)

Opis rozwiązania:
Pobiera ciąg daty z jednego formatu i konwertuje go na inny format.

Parametry:

Nazwisko Wymagane/powtarzane Type Uwagi
source Wymagania String Zazwyczaj nazwa atrybutu z obiektu źródłowego.
inputFormat Wymagania String Oczekiwany format wartości źródłowej. Aby uzyskać obsługiwane formaty, zobacz /dotnet/standard/base-types/custom-date-and-time-format-strings.
outputFormat Wymagania String Format daty wyjściowej.

Identyfikator GUID

Opis rozwiązania:
Identyfikator GUID funkcji generuje nowy losowy identyfikator GUID

Składnia:
str Guid()


IIF

Opis rozwiązania:
Funkcja IIF zwraca jeden z zestawów możliwych wartości na podstawie określonego warunku.

Składnia:
var IIF(exp condition, var valueIfTrue, var valueIfFalse)

  • warunek: dowolna wartość lub wyrażenie, które można ocenić na wartość true lub false.
  • valueIfTrue: jeśli warunek ma wartość true, zwracana wartość.
  • valueIfFalse: jeśli warunek ma wartość false, zwracana wartość.

Przykład:
IIF([employeeType]="Intern","t-" & [alias],[alias])
Jeśli użytkownik jest stażystkownikiem, zwraca alias użytkownika z ciągiem "t-" dodanym na początku, inne zwraca alias użytkownika w taki sposób, jak to jest.


Instr

Opis rozwiązania:
Funkcja InStr znajduje pierwsze wystąpienie podciągów w ciągu

Składnia:

num InStr(str stringcheck, str stringmatch)
num InStr(str stringcheck, str stringmatch, num start)
num InStr(str stringcheck, str stringmatch, num start, enum compare)

  • stringcheck: ciąg do przeszukania
  • stringmatch: ciąg do znalezienia
  • start: pozycja początkowa, aby znaleźć podciąg
  • compare: vbTextCompare lub vbBinaryCompare

Uwagi:
Zwraca pozycję, w której znaleziono podciąg lub 0, jeśli nie zostanie znaleziony.

Przykład:
InStr("The quick brown fox","quick")
Wartości ewartości do 5

InStr("repEated","e",3,vbBinaryCompare)
Ocenia wartość 7


Isnull

Opis rozwiązania:
Jeśli wyrażenie zwróci wartość Null, funkcja IsNull zwraca wartość true.

Składnia:
bool IsNull(var Expression)

Uwagi:
W przypadku atrybutu wartość Null jest wyrażona przez brak atrybutu.

Przykład:
IsNull([displayName])
Zwraca wartość True, jeśli atrybut nie jest obecny w cs lub MV.


IsNullOrEmpty

Opis rozwiązania:
Jeśli wyrażenie ma wartość null lub pusty ciąg, funkcja IsNullOrEmpty zwraca wartość true.

Składnia:
bool IsNullOrEmpty(var Expression)

Uwagi:
W przypadku atrybutu ta wartość ma wartość True, jeśli atrybut jest nieobecny lub jest obecny, ale jest pustym ciągiem.
Odwrotność tej funkcji nosi nazwę IsPresent.

Przykład:
IsNullOrEmpty([displayName])
Zwraca wartość True, jeśli atrybut nie jest obecny lub jest pustym ciągiem w cs lub MV.


Ispresent

Opis rozwiązania:
Jeśli wyrażenie oblicza ciąg, który nie ma wartości Null i nie jest pusty, funkcja IsPresent zwraca wartość true.

Składnia:
bool IsPresent(var expression)

Uwagi:
Odwrotność tej funkcji nosi nazwę IsNullOrEmpty.

Przykład:
Switch(IsPresent([directManager]),[directManager], IsPresent([skiplevelManager]),[skiplevelManager], IsPresent([director]),[director])


Produkt

Opis rozwiązania:
Funkcja Item zwraca jeden element z wielowartego ciągu/atrybutu.

Składnia:
var Item(mvstr attribute, num index)

  • atrybut: atrybut wielowarty
  • index: indeks do elementu w ciągu wielowartym.

Uwagi:
Funkcja Item jest przydatna wraz z funkcją Contains, ponieważ ta ostatnia funkcja zwraca indeks do elementu w atrybucie wielowartym.

Zgłasza błąd, jeśli indeks jest poza granicami.

Przykład:
Mid(Item([proxyAddresses],Contains([proxyAddresses], "SMTP:")),6)
Zwraca podstawowy adres e-mail.


IsString

Opis rozwiązania:
Jeśli wyrażenie można ocenić na typ ciągu, funkcja IsString zwraca wartość True.

Składnia:
bool IsString(var expression)

Uwagi:
Służy do określania, czy wyrażenie CStr() może zakończyć się powodzeniem.


Dołączanie

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

Opis rozwiązania:
Funkcja Join() jest podobna do Append(), z tą różnicą, że może łączyć wiele wartości ciągów źródłowych w jeden ciąg, a każda wartość zostanie oddzielona ciągiem separatora.

Jeśli jedna z wartości źródłowych jest atrybutem wielowartościowym, każda wartość w tym atrybucie zostanie połączona, oddzielona wartością separatora.

Parametry:

Nazwisko Wymagane/powtarzane Type Uwagi
Separator Wymagania String Ciąg używany do oddzielania wartości źródłowych, gdy są one łączone w jeden ciąg. Może być "", jeśli separator nie jest wymagany.
źródło1 ... sourceN Wymagana, zmienna liczba razy String Wartości ciągów, które mają być połączone ze sobą.

Left

Opis rozwiązania:
Funkcja Left zwraca określoną liczbę znaków z lewej strony ciągu.

Składnia:
str Left(str string, num NumChars)

  • string: ciąg, z których mają być zwracane znaki
  • NumChars: liczba identyfikująca liczbę znaków, które mają być zwracane od początku (po lewej) ciągu

Uwagi:
Ciąg zawierający pierwsze znaki numChars w ciągu:

  • Jeśli argument numChars = 0, zwraca pusty ciąg.
  • Jeśli wartość numChars < 0, zwraca ciąg wejściowy.
  • Jeśli ciąg ma wartość null, zwróć pusty ciąg.

Jeśli ciąg zawiera mniej znaków niż liczba określona w numChars, zwracany jest ciąg identyczny z ciągiem (czyli zawierającym wszystkie znaki w parametrze 1).

Przykład:
Left("John Doe", 3)
Zwraca wartość Joh.


Mid

Funkcja:
Mid(źródło, początek, długość)

Opis rozwiązania:
Zwraca podciąg wartości źródłowej. Podciąg to ciąg zawierający tylko niektóre znaki z ciągu źródłowego.

Parametry:

Nazwisko Wymagane/powtarzane Type Uwagi
source Wymagania String Zazwyczaj nazwa atrybutu.
start Wymagania integer Indeks w ciągu źródłowym, w którym należy uruchomić podciąg. Pierwszy znak w ciągu będzie miał indeks 1, drugi znak będzie miał indeks 2 itd.
length Wymagania integer Długość podciągów. Jeśli długość kończy się poza ciągiem źródłowym, funkcja zwróci podciąg od indeksu początkowego do końca ciągu źródłowego.

NormalizeDiacritics

Funkcja:
NormalizeDiacritics (źródło)

Opis rozwiązania:
Wymaga jednego argumentu ciągu. Zwraca ciąg, ale z dowolnymi znakami diakrytycznymi zastąpionymi równoważnymi znakami niekrytycznymi. Zazwyczaj służy do konwertowania nazwisk i nazwisk zawierających znaki diakrytyczne (znaki wyróżniające) na wartości prawne, które mogą być używane w różnych identyfikatorach użytkowników, takich jak nazwy główne użytkowników, nazwy kont SAM i adresy e-mail.

Parametry:

Nazwisko Wymagane/powtarzane Type Uwagi
source Wymagania String Zazwyczaj imię lub nazwisko atrybutu.

Not

Funkcja:
Not(source)

Opis rozwiązania:
Przerzuca wartość logiczną źródła. Jeśli wartość źródłowa to "True", zwraca wartość "False". W przeciwnym razie zwraca wartość "True".

Parametry:

Nazwisko Wymagane/powtarzane Type Uwagi
source Wymagania Ciąg logiczny Oczekiwane wartości źródłowe to "True" lub "False".

RemoveDuplicates

Opis rozwiązania:
Funkcja RemoveDuplicates przyjmuje ciąg wielowartościowy i upewnij się, że każda wartość jest unikatowa.

Składnia:
mvstr RemoveDuplicates(mvstr attribute)

Przykład:
RemoveDuplicates([proxyAddresses])
Zwraca atrybut sanitized proxyAddress, w którym wszystkie zduplikowane wartości zostały usunięte.


Replace

Funkcja:
Replace(source, oldValue, regexPattern, regexGroupName, replaceValue, replaceAttributeName, template)

Opis rozwiązania:
Zamienia wartości w ciągu. Działa inaczej w zależności od podanych parametrów:

  • Gdy są podane wartości oldValue i replacementValue:

    • Zastępuje wszystkie wystąpienia oldValue w źródle wartością replaceValue
  • Po podaniu wartości oldValue i szablonu :

    • Zastępuje wszystkie wystąpienia oldValue w szabloniewartością źródłową
  • Po podaniu wartości regexPattern i replacementValue :

    • Funkcja stosuje wyrażenie regexPattern do ciągu źródłowegoi można użyć nazw grup wyrażeń regularnych, aby skonstruować ciąg dla elementu replacementValue
  • Gdy regexPattern, regexGroupName, element replacementValue są udostępniane:

    • Funkcja stosuje regexPattern do ciągu źródłowego i zastępuje wszystkie wartości pasujące do regexGroupName wartością replaceValue
  • Gdy element regexPattern, regexGroupName, podano wartość replacementAttributeName :

    • Jeśli źródło nie ma wartości, źródło jest zwracane
    • Jeśli źródło ma wartość, funkcja stosuje regexPattern do ciągu źródłowego i zastępuje wszystkie wartości pasujące do regexGroupName wartością skojarzona z replaceAttributeName

Parametry:

Nazwisko Wymagane/powtarzane Type Uwagi
source Wymagania String Zazwyczaj nazwa atrybutu z obiektu źródłowego.
Oldvalue Opcjonalnie String Wartość do zastąpienia w źródle lub szablonie.
regexPattern Opcjonalnie String Wzorzec wyrażeń regularnych dla wartości, która ma zostać zastąpiona w źródle. Lub, gdy jest używana funkcja replacementPropertyName , wzorzec wyodrębnia wartość z elementu replacementPropertyName.
regexGroupName Opcjonalnie String Nazwa grupy wewnątrz regexPattern. Tylko wtedy, gdy jest używana wartość replacementPropertyName , wyodrębnimy wartość tej grupy jako wartość replacementValue z replacementPropertyName.
replacementValue Opcjonalnie String Nowa wartość, która ma zastąpić stary element.
replacementAttributeName Opcjonalnie String Nazwa atrybutu, który ma być używany dla wartości zastępczej
sieci Web Opcjonalnie String Po podaniu wartości szablonu wyszukamy element oldValue wewnątrz szablonu i zastąpimy ją wartością źródłową.

Wybierz pozycjęUniqueValue

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

Opis rozwiązania:
Wymaga co najmniej dwóch argumentów, które są unikatowymi regułami generowania wartości zdefiniowanymi przy użyciu wyrażeń. Funkcja ocenia każdą regułę, a następnie sprawdza wartość wygenerowaną pod kątem unikatowości w docelowej aplikacji/katalogu. Pierwsza znaleziona unikatowa wartość będzie zwracana. Jeśli wszystkie wartości już istnieją w obiekcie docelowym, wpis zostanie przekazany, a przyczyna zostanie zarejestrowana w dziennikach inspekcji. Nie ma górnej granicy z liczbą argumentów, które można podać.

Uwaga

  • Jest to funkcja najwyższego poziomu, której nie można zagnieżdżać.
  • Tej funkcji nie można zastosować do atrybutów, które mają pasujący pierwszeństwo.
  • Ta funkcja jest przeznaczona tylko do tworzenia pozycji. W przypadku używania go z atrybutem ustaw właściwość Zastosuj mapowanie na wartość Tylko podczas tworzenia obiektu.
  • Ta funkcja jest obecnie obsługiwana tylko w przypadku "Workday i SuccessFactors do aprowizacji użytkowników usługi Active Directory". Nie można jej używać z innymi aplikacjami aprowizacji.

Parametry:

Nazwisko Wymagane/powtarzane Type Uwagi
uniqueValueRule1 ... uniqueValueRuleN Co najmniej 2 są wymagane, bez górnej granicy String Lista reguł generowania unikatowych wartości do oceny.

SingleAppRoleAssignment

Funkcja:
SingleAppRoleAssignment([appRoleAssignments])

Opis rozwiązania:
Zwraca pojedynczy element appRoleAssignment z listy wszystkich elementów appRoleAssignments przypisanych do użytkownika dla danej aplikacji. Ta funkcja jest wymagana do przekonwertowania obiektu appRoleAssignments na pojedynczy ciąg nazwy roli. Należy pamiętać, że najlepszym rozwiązaniem jest zapewnienie, że tylko jeden element appRoleAssignment jest przypisany do jednego użytkownika jednocześnie, a jeśli do zwracanego ciągu roli przypisano wiele ról, może nie być przewidywalne.

Parametry:

Nazwisko Wymagane/powtarzane Type Uwagi
[appRoleAssignments] Wymagania String [appRoleAssignments] Obiektu.

Podział

Funkcja:
Split(source, ogranicznik)

Opis rozwiązania:
Dzieli ciąg na tablicę wielowartościową przy użyciu określonego znaku ogranicznika.

Parametry:

Nazwisko Wymagane/powtarzane Type Uwagi
source Wymagania String wartość źródłowa do zaktualizowania.
Ogranicznik Wymagania String Określa znak, który będzie używany do dzielenia ciągu (na przykład: ",")

StringFromSid

Opis rozwiązania:
Funkcja StringFromSid konwertuje tablicę bajtów zawierającą identyfikator zabezpieczeń na ciąg.

Składnia:
str StringFromSid(bin ObjectSID)


Przestrzenie paskowe

Funkcja:
StripSpaces(źródło)

Opis rozwiązania:
Usuwa wszystkie znaki spacji (" ") z ciągu źródłowego.

Parametry:

Nazwisko Wymagane/powtarzane Type Uwagi
source Wymagania String wartość źródłowa do zaktualizowania.

Switch

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

Opis rozwiązania:
Gdy wartość źródłowa jest zgodna z kluczem, zwraca wartość dla tego klucza. Jeśli wartość źródłowa nie jest zgodna z żadnymi kluczami, zwraca wartość defaultValue. Parametry klucza i wartości muszą zawsze znajdować się w parach. Funkcja zawsze oczekuje parzystej liczby parametrów.

Parametry:

Nazwisko Wymagane/powtarzane Type Uwagi
source Wymagania String Wartość źródłowa do sprawdzenia.
Defaultvalue Opcjonalnie String Wartość domyślna, która ma być używana, gdy źródło nie jest zgodne z żadnymi kluczami. Może być pusty ciąg ("").
key Wymagania String Klucz do porównania wartości źródłowej z.
wartość Wymagania String Wartość zastępcza źródła pasującego do klucza.

ToLower

Funkcja:
ToLower(źródło, kultura)

Opis rozwiązania:
Pobiera wartość ciągu źródłowego i konwertuje ją na małe litery przy użyciu określonych reguł kultury. Jeśli nie określono informacji o kulturze , będzie ona używać niezmiennej kultury.

Parametry:

Nazwisko Wymagane/powtarzane Type Uwagi
source Wymagania String Zazwyczaj nazwa atrybutu z obiektu źródłowego
Kultury Opcjonalnie String Format nazwy kultury opartej na specyfikacji RFC 4646 to languagecode2-country/regioncode2, gdzie languagecode2 to dwuliterowy kod języka, a kod kraju/regionu2 to dwuliterowy kod subkultury. Przykłady obejmują ja-JP dla języka japońskiego (Japonia) i en-US dla języka angielskiego (Stany Zjednoczone). W przypadkach, gdy kod języka dwuliterowego jest niedostępny, jest używany trzyliterowy kod pochodzący z iso 639-2.

ToUpper

Funkcja:
ToUpper(źródło, kultura)

Opis rozwiązania:
Pobiera wartość ciągu źródłowego i konwertuje ją na wielkie litery przy użyciu określonych reguł kultury. Jeśli nie określono informacji o kulturze , będzie ona używać niezmiennej kultury.

Parametry:

Nazwisko Wymagane/powtarzane Type Uwagi
source Wymagania String Zazwyczaj nazwa atrybutu z obiektu źródłowego.
Kultury Opcjonalnie String Format nazwy kultury opartej na specyfikacji RFC 4646 to languagecode2-country/regioncode2, gdzie languagecode2 to dwuliterowy kod języka, a kod kraju/regionu2 to dwuliterowy kod subkultury. Przykłady obejmują ja-JP dla języka japońskiego (Japonia) i en-US dla języka angielskiego (Stany Zjednoczone). W przypadkach, gdy kod języka dwuliterowego jest niedostępny, jest używany trzyliterowy kod pochodzący z iso 639-2.

Trim

Opis rozwiązania:
Funkcja Trim usuwa wiodące i końcowe białe spacje z ciągu.

Składnia:
str Trim(str value)

Przykład:
Trim(" Test ")
Zwraca wartość "Test".

Trim([proxyAddresses])
Usuwa spacje wiodące i końcowe dla każdej wartości w atrybucie proxyAddress.


Word

Opis rozwiązania:
Funkcja programu Word zwraca wyraz zawarty w ciągu na podstawie parametrów opisujących ograniczniki do użycia i liczbę wyrazów do zwrócenia.

Składnia:
str Word(str string, num WordNumber, str delimiters)

  • string: ciąg, z który ma zwrócić słowo.
  • WordNumber: liczba identyfikująca, która liczba wyrazów powinna zwracać.
  • ograniczniki: ciąg reprezentujący ograniczniki, które powinny być używane do identyfikowania wyrazów

Uwagi:
Każdy ciąg znaków w ciągu rozdzielanym jedną z znaków ograniczników jest identyfikowany jako wyrazy:

  • Jeśli liczba < 1, zwraca pusty ciąg.
  • Jeśli ciąg ma wartość null, zwraca pusty ciąg.

Jeśli ciąg zawiera wyrazy mniejsze niż liczba lub ciąg nie zawiera żadnych wyrazów zidentyfikowanych przez ograniczniki, zwracany jest pusty ciąg.

Przykład:
Word("The quick brown fox",3," ")
Zwraca wartość "brown"

Word("This,string!has&many separators",3,",!&#")
Zwraca wartość "has"

Przykłady

Usuwanie znanej nazwy domeny

Aby uzyskać nazwę użytkownika, musisz usunąć znaną nazwę domeny z adresu e-mail użytkownika.
Jeśli na przykład domena ma wartość "contoso.com", możesz użyć następującego wyrażenia:

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

Przykładowe dane wejściowe/wyjściowe:

  • INPUT (poczta): "john.doe@contoso.com"
  • DANE WYJŚCIOWE: "john.doe"

Dołączanie sufiksu stałej do nazwy użytkownika

Jeśli używasz piaskownicy usługi Salesforce, może być konieczne dołączenie dodatkowego sufiksu do wszystkich nazw użytkowników przed ich zsynchronizowaniem.

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

Przykładowe dane wejściowe/wyjściowe:

  • INPUT: (userPrincipalName): "John.Doe@contoso.com"
  • DANE WYJŚCIOWE: "John.Doe@contoso.com.test"

Generowanie aliasu użytkownika przez łączenie części pierwszego i nazwiska

Należy wygenerować alias użytkownika, przyjmując pierwsze 3 litery pierwszego imienia użytkownika i 5 pierwszych liter nazwiska użytkownika.

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

Przykładowe dane wejściowe/wyjściowe:

  • INPUT (givenName): "John"
  • INPUT (nazwisko): "Doe"
  • DANE WYJŚCIOWE: "JohDoe"

Usuwanie znaków diakrytycznych z ciągu

Należy zastąpić znaki zawierające znaczniki wyróżniające równoważnymi znakami, które nie zawierają znaków wyróżniających.

Expression:
NormalizeDiacritics([givenName])

Przykładowe dane wejściowe/wyjściowe:

  • INPUT (givenName): "Zoë"
  • DANE WYJŚCIOWE: "Zoe"

Dzielenie ciągu na tablicę wielowartej

Musisz pobrać rozdzielaną przecinkami listę ciągów i podzielić je na tablicę, która może zostać podłączona do atrybutu wielowartościowego, takiego jak atrybut PermissionSets usługi Salesforce. W tym przykładzie lista zestawów uprawnień została wypełniona w rozszerzeniuAttribute5 w identyfikatorze Entra firmy Microsoft.

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

Przykładowe dane wejściowe/wyjściowe:

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

Data wyjściowa jako ciąg w określonym formacie

Chcesz wysłać daty do aplikacji SaaS w określonym formacie.
Na przykład chcesz sformatować daty dla usługi ServiceNow.

Expression:

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

Przykładowe dane wejściowe/wyjściowe:

  • INPUT (extensionAttribute1): "20150123105347.1Z"
  • DANE WYJŚCIOWE: "2015-01-23"

Zamień wartość na podstawie wstępnie zdefiniowanego zestawu opcji

Musisz zdefiniować strefę czasową użytkownika na podstawie kodu stanu przechowywanego w identyfikatorze Entra firmy Microsoft.
Jeśli kod stanu nie jest zgodny z żadną ze wstępnie zdefiniowanych opcji, użyj wartości domyślnej "Australia/Sydney".

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

Przykładowe dane wejściowe/wyjściowe:

  • INPUT (stan): "QLD"
  • DANE WYJŚCIOWE: "Australia/Brisbane"

Zastępowanie znaków przy użyciu wyrażenia regularnego

Musisz znaleźć znaki pasujące do wartości wyrażenia regularnego i usunąć je.

Expression:

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

Przykładowe dane wejściowe/wyjściowe:

  • INPUT (mailNickname: "john_doe72"
  • DANE WYJŚCIOWE: "72"

Konwertowanie wygenerowanej wartości userPrincipalName (UPN) na małe litery

W poniższym przykładzie wartość nazwy UPN jest generowana przez łączenie pól źródłowych PreferredFirstName i PreferredLastName, a funkcja ToLower działa na wygenerowany ciąg, aby przekonwertować wszystkie znaki na małe litery.

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

Przykładowe dane wejściowe/wyjściowe:

  • INPUT (PreferredFirstName): "John"
  • INPUT (PreferredLastName): "Smith"
  • DANE WYJŚCIOWE: "john.smith@contoso.com"

Generowanie unikatowej wartości atrybutu userPrincipalName (UPN)

Na podstawie nazwy i nazwiska użytkownika należy wygenerować wartość atrybutu NAZWY UPN i sprawdzić jego unikatowość w docelowym katalogu usługi AD przed przypisaniem wartości do atrybutu NAZWY 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")
    )

Przykładowe dane wejściowe/wyjściowe:

  • INPUT (PreferredFirstName): "John"
  • INPUT (PreferredLastName): "Smith"
  • OUTPUT: "John.Smith@contoso.com", jeśli wartość John.Smith@contoso.com nazwy UPN nie istnieje jeszcze w katalogu
  • OUTPUT: "J.Smith@contoso.com", jeśli wartość John.Smith@contoso.com nazwy UPN już istnieje w katalogu
  • DANE WYJŚCIOWE: "Jo.Smith@contoso.com", jeśli powyższe dwie wartości nazwy UPN już istnieją w katalogu

Następne kroki