Microsoft Entra Połączenie Sync: Dokumentacja funkcji

W usłudze Microsoft Entra Połączenie funkcje są używane do manipulowania wartością atrybutu podczas synchronizacji.
Składnia funkcji jest wyrażana przy użyciu następującego formatu:
<output type> FunctionName(<input type> <position name>, ..)

Jeśli funkcja jest przeciążona i akceptuje wiele składni, zostaną wyświetlone wszystkie prawidłowe składnie.
Funkcje są silnie typizowane i sprawdzają, czy typ przekazany w jest zgodny z udokumentowanym typem.
Jeśli typ nie jest zgodny, zostanie zgłoszony błąd.

Typy są wyrażane przy użyciu następującej składni:

  • bin — binarne
  • bool — wartość logiczna
  • dt — data/godzina UTC
  • wyliczenie — wyliczenie znanych stałych
  • exp — wyrażenie, które ma zostać obliczone na wartość logiczną
  • mvbin — wielowarty plik binarny
  • mvstr — ciąg wielowarty
  • mvref — odwołanie wielowarte
  • num — numeryczne
  • ref — odwołanie
  • str — ciąg
  • var — wariant (prawie) dowolnego innego typu
  • void — nie zwraca wartości

Funkcje z typami mvbin, mvstr i mvref mogą działać tylko na atrybutach wielowartych. Funkcje z atrybutami bin, str i ref działają zarówno na atrybutach jednowartych, jak i wielowartych.

Informacje ogólne o funkcjach


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ść .


BitOr

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

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

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

Uwagi:
Ta funkcja konwertuje oba parametry na reprezentację binarną i ustawia bit na 1, jeśli jeden lub oba odpowiadające bity w maski i flagi mają wartość 1, a wartość 0, jeśli oba odpowiadające bity mają wartość 0. Innymi słowy, zwraca wartość 1 we wszystkich przypadkach, z wyjątkiem sytuacji, gdy odpowiadające im bity obu parametrów to 0.


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ść.


Cdate

Opis rozwiązania:
Funkcja CDate zwraca czas UTC DateTime z ciągu. DateTime nie jest natywnym typem atrybutu w synchronizacji, ale jest używany przez niektóre funkcje.

Składnia:
dt CDate(str value)

  • Wartość: ciąg z datą, godziną i opcjonalnie strefą czasową

Uwagi:
Zwracany ciąg jest zawsze w formacie UTC.

Przykład:
CDate([employeeStartTime])
Zwraca wartość typu Data/godzina na podstawie godziny rozpoczęcia pracownika

CDate("2013-01-10 4:00 PM -8")
Zwraca wartość typu DateTime reprezentującą wartość "2013-01-11 12:00 AM"


CertExtensionOids

Opis rozwiązania:
Zwraca wartości Oid wszystkich krytycznych rozszerzeń obiektu certyfikatu.

Składnia:
mvstr CertExtensionOids(binary certificateRawData)

  • certificateRawData: reprezentacja tablicy bajtów certyfikatu X.509. Tablica bajtów może być zakodowana binarnie (DER) lub dane X.509 zakodowane w formacie Base64.

CertFormat

Opis rozwiązania:
Zwraca nazwę formatu tego certyfikatu X.509v3.

Składnia:
str CertFormat(binary certificateRawData)

  • certificateRawData: reprezentacja tablicy bajtów certyfikatu X.509. Tablica bajtów może być zakodowana binarnie (DER) lub dane X.509 zakodowane w formacie Base64.

CertFriendlyName

Opis rozwiązania:
Zwraca skojarzony alias certyfikatu.

Składnia:
str CertFriendlyName(binary certificateRawData)

  • certificateRawData: reprezentacja tablicy bajtów certyfikatu X.509. Tablica bajtów może być zakodowana binarnie (DER) lub dane X.509 zakodowane w formacie Base64.

CertHashString

Opis rozwiązania:
Zwraca wartość skrótu SHA1 dla certyfikatu X.509v3 jako ciąg szesnastkowy.

Składnia:
str CertHashString(binary certificateRawData)

  • certificateRawData: reprezentacja tablicy bajtów certyfikatu X.509. Tablica bajtów może być zakodowana binarnie (DER) lub dane X.509 zakodowane w formacie Base64.

CertIssuer

Opis rozwiązania:
Zwraca nazwę urzędu certyfikacji, który wystawił certyfikat X.509v3.

Składnia:
str CertIssuer(binary certificateRawData)

  • certificateRawData: reprezentacja tablicy bajtów certyfikatu X.509. Tablica bajtów może być zakodowana binarnie (DER) lub dane X.509 zakodowane w formacie Base64.

CertIssuerDN

Opis rozwiązania:
Zwraca nazwę wyróżniającą wystawcy certyfikatu.

Składnia:
str CertIssuerDN(binary certificateRawData)

  • certificateRawData: reprezentacja tablicy bajtów certyfikatu X.509. Tablica bajtów może być zakodowana binarnie (DER) lub dane X.509 zakodowane w formacie Base64.

CertIssuerOid

Opis rozwiązania:
Zwraca identyfikator Oid wystawcy certyfikatu.

Składnia:
str CertIssuerOid(binary certificateRawData)

  • certificateRawData: reprezentacja tablicy bajtów certyfikatu X.509. Tablica bajtów może być zakodowana binarnie (DER) lub dane X.509 zakodowane w formacie Base64.

CertKeyAlgorithm

Opis rozwiązania:
Zwraca informacje o algorytmie klucza dla tego certyfikatu X.509v3 jako ciąg.

Składnia:
str CertKeyAlgorithm(binary certificateRawData)

  • certificateRawData: reprezentacja tablicy bajtów certyfikatu X.509. Tablica bajtów może być zakodowana binarnie (DER) lub dane X.509 zakodowane w formacie Base64.

CertKeyAlgorithmParams

Opis rozwiązania:
Zwraca parametry algorytmu klucza dla certyfikatu X.509v3 jako ciąg szesnastkowy.

Składnia:
str CertKeyAlgorithm(binary certificateRawData)

  • certificateRawData: reprezentacja tablicy bajtów certyfikatu X.509. Tablica bajtów może być zakodowana binarnie (DER) lub dane X.509 zakodowane w formacie Base64.

CertNameInfo

Opis rozwiązania:
Zwraca nazwy podmiotu i wystawcy z certyfikatu.

Składnia:
str CertNameInfo(binary certificateRawData, str x509NameType, bool includesIssuerName)

  • certificateRawData: reprezentacja tablicy bajtów certyfikatu X.509. Tablica bajtów może być zakodowana binarnie (DER) lub dane X.509 zakodowane w formacie Base64.
  • X509NameType: wartość X509NameType dla tematu.
  • includeIssuerName: wartość true w celu uwzględnienia nazwy wystawcy; w przeciwnym razie, fałsz.

CertNotAfter

Opis rozwiązania:
Zwraca datę w czasie lokalnym, po której certyfikat nie jest już ważny.

Składnia:
dt CertNotAfter(binary certificateRawData)

  • certificateRawData: reprezentacja tablicy bajtów certyfikatu X.509. Tablica bajtów może być zakodowana binarnie (DER) lub dane X.509 zakodowane w formacie Base64.

CertNotBefore

Opis rozwiązania:
Zwraca datę w czasie lokalnym, w której certyfikat staje się ważny.

Składnia:
dt CertNotBefore(binary certificateRawData)

  • certificateRawData: reprezentacja tablicy bajtów certyfikatu X.509. Tablica bajtów może być zakodowana binarnie (DER) lub dane X.509 zakodowane w formacie Base64.

CertPublicKeyOid

Opis rozwiązania:
Zwraca identyfikator Oid klucza publicznego dla certyfikatu X.509v3.

Składnia:
str CertKeyAlgorithm(binary certificateRawData)

  • certificateRawData: reprezentacja tablicy bajtów certyfikatu X.509. Tablica bajtów może być zakodowana binarnie (DER) lub dane X.509 zakodowane w formacie Base64.

CertPublicKeyParametersOid

Opis rozwiązania:
Zwraca identyfikator Oid parametrów klucza publicznego dla certyfikatu X.509v3.

Składnia:
str CertPublicKeyParametersOid(binary certificateRawData)

  • certificateRawData: reprezentacja tablicy bajtów certyfikatu X.509. Tablica bajtów może być zakodowana binarnie (DER) lub dane X.509 zakodowane w formacie Base64.

CertSerialNumber

Opis rozwiązania:
Zwraca numer seryjny certyfikatu X.509v3.

Składnia:
str CertSerialNumber(binary certificateRawData)

  • certificateRawData: reprezentacja tablicy bajtów certyfikatu X.509. Tablica bajtów może być zakodowana binarnie (DER) lub dane X.509 zakodowane w formacie Base64.

CertSignatureAlgorithmOid

Opis rozwiązania:
Zwraca identyfikator Oid algorytmu użytego do utworzenia podpisu certyfikatu.

Składnia:
str CertSignatureAlgorithmOid(binary certificateRawData)

  • certificateRawData: reprezentacja tablicy bajtów certyfikatu X.509. Tablica bajtów może być zakodowana binarnie (DER) lub dane X.509 zakodowane w formacie Base64.

CertSubject

Opis rozwiązania:
Pobiera nazwę wyróżniającą podmiotu z certyfikatu.

Składnia:
str CertSubject(binary certificateRawData)

  • certificateRawData: reprezentacja tablicy bajtów certyfikatu X.509. Tablica bajtów może być zakodowana binarnie (DER) lub dane X.509 zakodowane w formacie Base64.

CertSubjectNameDN

Opis rozwiązania:
Zwraca nazwę wyróżniającą podmiotu z certyfikatu.

Składnia:
str CertSubjectNameDN(binary certificateRawData)

  • certificateRawData: reprezentacja tablicy bajtów certyfikatu X.509. Tablica bajtów może być zakodowana binarnie (DER) lub dane X.509 zakodowane w formacie Base64.

CertSubjectNameOid

Opis rozwiązania:
Zwraca identyfikator Oid nazwy podmiotu z certyfikatu.

Składnia:
str CertSubjectNameOid(binary certificateRawData)

  • certificateRawData: reprezentacja tablicy bajtów certyfikatu X.509. Tablica bajtów może być zakodowana binarnie (DER) lub dane X.509 zakodowane w formacie Base64.

CertThumbprint

Opis rozwiązania:
Zwraca odcisk palca certyfikatu.

Składnia:
str CertThumbprint(binary certificateRawData)

  • certificateRawData: reprezentacja tablicy bajtów certyfikatu X.509. Tablica bajtów może być zakodowana binarnie (DER) lub dane X.509 zakodowane w formacie Base64.

CertVersion

Opis rozwiązania:
Zwraca wersję formatu X.509 certyfikatu.

Składnia:
str CertThumbprint(binary certificateRawData)

  • certificateRawData: reprezentacja tablicy bajtów certyfikatu X.509. Tablica bajtów może być zakodowana binarnie (DER) lub dane X.509 zakodowane w formacie Base64.

CGuid

Opis rozwiązania:
Funkcja CGuid konwertuje ciąg reprezentujący identyfikator GUID na jego reprezentację binarną.

Składnia:
bin CGuid(str GUID)

  • Ciąg sformatowany w tym wzorcu: xxxxxxxx-xxxx-xxxx-xxxx-xxxx-xxxxxx lub {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxx}

Contains

Opis rozwiązania:
Funkcja Contains znajduje ciąg wewnątrz atrybutu wielowartego

Składnia:
num Contains (mvstring attribute, str search) -Rozróżniana wielkość liter
num Contains (mvstring attribute, str search, enum Casetype)
num Contains (mvref attribute, str search) -Rozróżniana wielkość liter

  • atrybut: atrybut wielowarty do wyszukiwania.
  • search: ciąg do znalezienia w atrybucie .
  • Casetype: CaseInsensitive lub CaseSensitive.

Zwraca indeks w atrybucie wielowartym, w którym znaleziono ciąg. Wartość 0 jest zwracana, jeśli ciąg nie zostanie znaleziony.

Uwagi:
W przypadku atrybutów ciągów wielowartych wyszukiwanie znajduje podciągów w wartościach.
W przypadku atrybutów referencyjnych wyszukiwany ciąg musi dokładnie odpowiadać wartości, która ma być traktowana jako dopasowanie.

Przykład:
IIF(Contains([proxyAddresses],"SMTP:")>0,[proxyAddresses],Error("No primary SMTP address found."))
Jeśli atrybut proxyAddresses ma podstawowy adres e-mail (wskazywany przez wielkie litery "SMTP:"), zwraca atrybut proxyAddress, a następnie zwraca błąd.


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!".


KonwertujFromUTF8Hex

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

Składnia:
str ConvertFromUTF8Hex(str source)

  • źródło: sting zakodowany w formacie UTF8 2-bajtowy

Uwagi:
Różnica między tą funkcją a parametrem ConvertFromBase64([], UTF8) w tym, że wynik jest przyjazny dla atrybutu DN.
Ten format jest używany przez firmę Microsoft Entra ID jako dn.

Przykład:
ConvertFromUTF8Hex("48656C6C6F20776F726C6421")
Zwraca 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)


CNum

Opis rozwiązania:
Funkcja CNum przyjmuje ciąg i zwraca typ danych liczbowych.

Składnia:
num CNum(str value)


Cref

Opis rozwiązania:
Konwertuje ciąg na atrybut odwołania

Składnia:
ref CRef(str value)

Przykład:
CRef("CN=LC Services,CN=Microsoft,CN=lcspool01,CN=Pools,CN=RTC Service," & %Forest.LDAP%)


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"


DateAdd

Opis rozwiązania:
Zwraca datę zawierającą datę, do której dodano określony interwał czasu.

Składnia:
dt DateAdd(str interval, num value, dt date)

  • interval: wyrażenie ciągu, które jest interwałem czasu, który chcesz dodać. Ciąg musi mieć jedną z następujących wartości:
    • Rok yyyy
    • q Quarter
    • m Miesiąc
    • y Dzień Roku
    • d Dzień
    • w dzień powszedni
    • ww Week
    • h Godzina
    • n Minuta
    • s Sekunda
  • value: liczba jednostek, które chcesz dodać. Może to być pozytywne (aby uzyskać daty w przyszłości) lub ujemne (aby uzyskać daty w przeszłości).
  • date: Data/godzina reprezentująca datę, do której jest dodawany interwał.

Przykład:
DateAdd("m", 3, CDate("2001-01-01"))
Dodaje 3 miesiące i zwraca wartość DateTime reprezentującą wartość "2001-04-01".


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


DNComponentRev

Opis rozwiązania:
Funkcja DNComponentRev zwraca wartość określonego składnika DN przechodzącą od prawej (końca).

Składnia:
str DNComponentRev(ref dn, num ComponentNumber)
str DNComponentRev(ref dn, num ComponentNumber, enum Options)

  • dn: atrybut odwołania do interpretacji
  • ComponentNumber — składnik w dn do zwrócenia
  • Opcje: DC — ignoruj wszystkie składniki z "dc="

Przykład:
Jeśli dn ma wartość "cn=Joe,ou=Atlanta,ou=GA,ou=US, dc=contoso,dc=com", a następnie
DNComponentRev(CRef([dn]),3)
DNComponentRev(CRef([dn]),1,"DC")
Oba zwracają stany USA.


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.


EscapeDNComponent

Opis rozwiązania:
Funkcja EscapeDNComponent przyjmuje jeden składnik dn i unika go, aby można było go przedstawić w protokole LDAP.

Składnia:
str EscapeDNComponent(str value)

Przykład:
EscapeDNComponent("cn=" & [displayName]) & "," & %ForestLDAP%)
Upewnij się, że obiekt można utworzyć w katalogu LDAP, nawet jeśli atrybut displayName zawiera znaki, które muszą zostać uniknięte w protokole LDAP.


Formatdatetime

Opis rozwiązania:
Funkcja FormatDateTime służy do formatowania daty/godziny na ciąg o określonym formacie

Składnia:
str FormatDateTime(dt value, str format)

  • value: wartość w formacie DateTime
  • format: ciąg reprezentujący format, na który ma być konwertowany.

Uwagi:
Możliwe wartości dla formatu można znaleźć tutaj: Niestandardowe formaty daty i godziny dla funkcji FORMAT.

Przykład:

FormatDateTime(CDate("12/25/2007"),"yyyy-MM-dd")
Wyniki w ciągu "2007-12-25".

FormatDateTime(DateFromNum([pwdLastSet]),"yyyyMMddHHmmss.0Z")
Może spowodować "20140905081453.0Z"


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")
Ocenia wartość 5

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


InStrRev

Opis rozwiązania:
Funkcja InStrRev znajduje ostatnie wystąpienie podciągu w ciągu

Składnia:
num InstrRev(str stringcheck, str stringmatch)
num InstrRev(str stringcheck, str stringmatch, num start)
num InstrRev(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:
InStrRev("abbcdbbbef","bb")
Zwraca wartość 7


IsBitSet

Opis rozwiązania:
Funkcja IsBitSet sprawdza, czy bit jest ustawiony, czy nie

Składnia:
bool IsBitSet(num value, num flag)

  • value: wartość liczbowa, która jest obliczana.flaga: wartość liczbowa, która ma bit do obliczenia

Przykład:
IsBitSet(&HF,4)
Zwraca wartość True, ponieważ bit "4" jest ustawiony w wartości szesnastkowej "F"


Isdate

Opis rozwiązania:
Jeśli wyrażenie może być obliczane jako typ DateTime, funkcja IsDate zwraca wartość True.

Składnia:
bool IsDate(var Expression)

Uwagi:
Służy do określania, czy narzędzie CDate() może zakończyć się pomyślnie.


IsCert

Opis rozwiązania:
Zwraca wartość true, jeśli nieprzetworzone dane można serializować do obiektu certyfikatu .NET X509Certificate2.

Składnia:
bool CertThumbprint(binary certificateRawData)

  • certificateRawData: reprezentacja tablicy bajtów certyfikatu X.509. Tablica bajtów może być zakodowana binarnie (DER) lub dane X.509 zakodowane w formacie Base64.

IsEmpty

Opis rozwiązania:
Jeśli atrybut znajduje się w pliku CS lub MV, ale zwraca wartość pustego ciągu, funkcja IsEmpty zwraca wartość True.

Składnia:
bool IsEmpty(var Expression)


IsGuid

Opis rozwiązania:
Jeśli ciąg może zostać przekonwertowany na identyfikator GUID, funkcja IsGuid zostanie obliczona na wartość true.

Składnia:
bool IsGuid(str GUID)

Uwagi:
Identyfikator GUID jest definiowany jako ciąg następujący: xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxx lub {xxxxxxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxxxxxx}

Służy do określania, czy funkcja CGuid() może zakończyć się pomyślnie.

Przykład:
IIF(IsGuid([strAttribute]),CGuid([strAttribute]),NULL)
Jeśli atrybut StrAttribute ma format GUID, zwróć reprezentację binarną, w przeciwnym razie zwróć wartość Null.


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.


IsNumeric

Opis rozwiązania:
Funkcja IsNumeric zwraca wartość logiczną wskazującą, czy wyrażenie może być oceniane jako typ liczbowy.

Składnia:
bool IsNumeric(var Expression)

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


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.


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.


ItemOrNull

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

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

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

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

Jeśli indeks jest poza granicami, zwraca wartość null.


Dołączanie

Opis rozwiązania:
Funkcja Join przyjmuje ciąg wielowarty i zwraca jednowarty ciąg z określonym separatorem wstawionym między poszczególnymi elementami.

Składnia:
str Join(mvstr attribute)
str Join(mvstr attribute, str Delimiter)

  • atrybut: atrybut wielowarty zawierający ciągi do sprzężenia.
  • ogranicznik: dowolny ciąg używany do oddzielania podciągów w zwracanym ciągu. W przypadku pominięcia jest używany znak spacji (" ") . Jeśli ogranicznik jest ciągiem o zerowej długości ("") lub Nic, wszystkie elementy na liście są łączone bez ograniczników.

Uwagi
Istnieje parzystość między funkcjami Join i Split. Funkcja Join przyjmuje tablicę ciągów i łączy je przy użyciu ciągu ogranicznika w celu zwrócenia pojedynczego ciągu. Funkcja Split przyjmuje ciąg i oddziela go od ogranicznika, aby zwrócić tablicę ciągów. Jednak kluczową różnicą jest to, że funkcja Join może łączyć ciągi z dowolnym ciągiem ogranicznika. Funkcja Split może rozdzielać tylko ciągi przy użyciu ogranicznika pojedynczego znaku.

Przykład:
Join([proxyAddresses],",")
Może zostać zwrócony: "SMTP:john.doe@contoso.com,smtp:jd@contoso.com"


Lcase

Opis rozwiązania:
Funkcja LCase konwertuje wszystkie znaki w ciągu na małe litery.

Składnia:
str LCase(str value)

Przykład:
LCase("TeSt")
Zwraca wartość "test".


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


Len

Opis rozwiązania:
Funkcja Len zwraca liczbę znaków w ciągu.

Składnia:
num Len(str value)

Przykład:
Len("John Doe")
Zwraca wartość 8


Ltrim

Opis rozwiązania:
Funkcja LTrim usuwa wiodące białe spacje z ciągu.

Składnia:
str LTrim(str value)

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


Mid

Opis rozwiązania:
Funkcja Mid zwraca określoną liczbę znaków z określonej pozycji w ciągu.

Składnia:
str Mid(str string, num start, num NumChars)

  • string: ciąg, z których mają być zwracane znaki
  • start: liczba identyfikująca pozycję początkową w ciągu, z których mają być zwracane znaki
  • NumChars: liczba identyfikująca liczbę znaków, które mają być zwracane z pozycji w ciągu

Uwagi:
Zwracanie znaków numChars rozpoczynających się od pozycji początkowej w ciągu.
Ciąg zawierający znaki numChars z pozycji zaczyna się w ciągu:

  • Jeśli argument numChars = 0, zwraca pusty ciąg.
  • Jeśli wartość numChars < 0, zwraca ciąg wejściowy.
  • Jeśli rozpoczniesz > długość ciągu, zwróć ciąg wejściowy.
  • Jeśli wartość startowa <= 0, zwracany jest ciąg wejściowy.
  • Jeśli ciąg ma wartość null, zwróć pusty ciąg.

Jeśli nie ma znaków numChar pozostałych w ciągu od początku pozycji, zwracanych jest jak najwięcej znaków.

Przykład:
Mid("John Doe", 3, 5)
Zwraca wartość "hn Do".

Mid("John Doe", 6, 999)
Zwraca wartość "Doe"


Teraz

Opis rozwiązania:
Funkcja Now zwraca wartość DateTime określającą bieżącą datę i godzinę zgodnie z datą i godziną systemu komputera.

Składnia:
dt Now()


NumFromDate

Opis rozwiązania:
Funkcja NumFromDate zwraca datę w formacie daty usługi AD.

Składnia:
num NumFromDate(dt value)

Przykład:
NumFromDate(CDate("2012-01-01 23:00:00"))
Zwraca 129699324000000000


PadLeft

Opis rozwiązania:
Funkcja PadLeft po lewej stronie podpełnia ciąg do określonej długości przy użyciu podanego znaku wypełnienia.

Składnia:
str PadLeft(str string, num length, str padCharacter)

  • string: ciąg do wypełnienia.
  • length: liczba całkowita reprezentująca żądaną długość ciągu.
  • padCharacter: ciąg składający się z pojedynczego znaku do użycia jako znak pad

Uwagi:

  • Jeśli długość ciągu jest mniejsza niż długość, padCharacter jest wielokrotnie dołączany do początku (po lewej) ciągu, dopóki nie ma długości równej długości.
  • PadCharacter może być znakiem spacji, ale nie może być wartością null.
  • Jeśli długość ciągu jest równa lub większa niż długość, ciąg jest zwracany bez zmian.
  • Jeśli ciąg ma długość większą lub równą długości, zwracany jest ciąg identyczny z ciągiem.
  • Jeśli długość ciągu jest mniejsza niż długość, zwracany jest nowy ciąg żądanej długości zawierający ciąg wypełniony padCharacter.
  • Jeśli ciąg ma wartość null, funkcja zwraca pusty ciąg.

Przykład:
PadLeft("User", 10, "0")
Zwraca wartość "000000User".


Padright

Opis rozwiązania:
Funkcja PadRight podpełnia ciąg do określonej długości przy użyciu podanego znaku wypełnienia.

Składnia:
str PadRight(str string, num length, str padCharacter)

  • string: ciąg do wypełnienia.
  • length: liczba całkowita reprezentująca żądaną długość ciągu.
  • padCharacter: ciąg składający się z pojedynczego znaku do użycia jako znak pad

Uwagi:

  • Jeśli długość ciągu jest mniejsza niż długość, padCharacter jest wielokrotnie dołączany do końca (po prawej) ciągu, dopóki nie ma długości równej długości.
  • padCharacter może być znakiem spacji, ale nie może być wartością null.
  • Jeśli długość ciągu jest równa lub większa niż długość, ciąg jest zwracany bez zmian.
  • Jeśli ciąg ma długość większą lub równą długości, zwracany jest ciąg identyczny z ciągiem.
  • Jeśli długość ciągu jest mniejsza niż długość, zwracany jest nowy ciąg żądanej długości zawierający ciąg wypełniony padCharacter.
  • Jeśli ciąg ma wartość null, funkcja zwraca pusty ciąg.

Przykład:
PadRight("User", 10, "0")
Zwraca wartość "User000000".


PCase

Opis rozwiązania:
Funkcja PCase konwertuje pierwszy znak każdego spacji rozdzielanego wyrazem w ciągu na wielkie litery, a wszystkie inne znaki są konwertowane na małe litery.

Składnia:
String PCase(string)

Uwagi:

  • Ta funkcja nie zapewnia obecnie prawidłowej wielkości liter w celu przekonwertowania wyrazu, który jest całkowicie wielkimi literami, na przykład akronimem.

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

PCase(LCase("TEST"))
Zwraca wartość "Test"


Liczba losowa

Opis rozwiązania:
Funkcja RandomNum zwraca liczbę losową między określonym interwałem.

Składnia:
num RandomNum(num start, num end)

  • start: liczba identyfikująca niższy limit wartości losowej do wygenerowania
  • end: liczba identyfikująca górny limit wartości losowej do wygenerowania

Przykład:
Random(100,999)
Może zwrócić 734.


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

Opis rozwiązania:
Funkcja Replace zastępuje wszystkie wystąpienia ciągu do innego ciągu.

Składnia:
str Replace(str string, str OldValue, str NewValue)

  • string: ciąg, w który mają być zamieniane wartości.
  • OldValue: ciąg do wyszukania i zastąpienia.
  • NewValue: ciąg do zastąpienia.

Uwagi:
Funkcja rozpoznaje następujące specjalne elementy monikers:

  • \n — nowy wiersz
  • \r — powrót karetki
  • \t — karta

Przykład:
Replace([address],"\r\n",", ")
Zastępuje CRLF przecinkiem i spacją i może prowadzić do "One Microsoft Way, Redmond, WA, USA"


ReplaceChars

Opis rozwiązania:
Funkcja ReplaceChars zastępuje wszystkie wystąpienia znaków znalezionych w ciągu ReplacePattern.

Składnia:
str ReplaceChars(str string, str ReplacePattern)

  • ciąg: ciąg, w który mają być zamieniane znaki.
  • ReplacePattern: ciąg zawierający słownik z znakami do zastąpienia.

Format to {source1}:{target1},{source2}:{target2},{sourceN},{targetN},{targetN}, gdzie źródłem jest znak do znalezienia i skierowania ciągu do zastąpienia.

Uwagi:

  • Funkcja przyjmuje każde wystąpienie zdefiniowanych źródeł i zastępuje je obiektami docelowymi.
  • Źródło musi być dokładnie jednym znakiem (Unicode).
  • Źródło nie może być puste lub dłuższe niż jeden znak (błąd analizowania).
  • Obiekt docelowy może zawierać wiele znaków, na przykład ö:oe, β:ss.
  • Element docelowy może być pusty wskazujący, że znak powinien zostać usunięty.
  • W źródle uwzględniana jest wielkość liter i musi być dokładnie zgodna.
  • Znaki , (przecinek) i : (dwukropek) są znakami zarezerwowanymi i nie można ich zamienić przy użyciu tej funkcji.
  • Spacje i inne białe znaki w ciągu ReplacePattern są ignorowane.

Przykład:
%ReplaceString% = ’:,Å:A,Ä:A,Ö:O,å:a,ä:a,ö,o

ReplaceChars("Räksmörgås",%ReplaceString%)
Zwraca raksmorgas

ReplaceChars("O’Neil",%ReplaceString%)
Zwraca wartość "ONeil", aby usunąć pojedynczy znacznik.


Opis rozwiązania:
Funkcja Right zwraca określoną liczbę znaków z prawej (końca) ciągu.

Składnia:
str Right(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 z końca (po prawej) ciągu

Uwagi:
Znaki NumChars są zwracane z ostatniego położenia ciągu.

Ciąg zawierający ostatnie 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.

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


Rtrim

Opis rozwiązania:
Funkcja RTrim usuwa końcowe białe spacje z ciągu.

Składnia:
str RTrim(str value)

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


Wybierz pozycję

Opis rozwiązania:
Przetwarzaj wszystkie wartości w atrybucie wielowartościowym (lub danych wyjściowych wyrażenia) na podstawie określonej funkcji.

Składnia:
mvattr Select(variable item, mvattr attribute, func function)
mvattr Select(variable item, exp expression, func function)

  • element: reprezentuje element w atrybucie wielowartym
  • atrybut: atrybut wielowartszy
  • wyrażenie: wyrażenie zwracające kolekcję wartości
  • warunek: dowolna funkcja, która może przetworzyć element w atrybucie

Przykłady:
Select($item,[otherPhone],Replace($item,"-",""))
Zwróć wszystkie wartości w atrybucie wielowartym inne Telefon po usunięciu łączników (-).


Podział

Opis rozwiązania:
Funkcja Split przyjmuje ciąg oddzielony ogranicznikiem i sprawia, że jest to ciąg wielowarty.

Składnia:
mvstr Split(str value, str delimiter)
mvstr Split(str value, str delimiter, num limit)

  • value: ciąg z znakiem ogranicznika do oddzielenia.
  • Ogranicznik: pojedynczy znak do użycia jako ogranicznik.
  • limit: maksymalna liczba wartości, które mogą zwracać.

Przykład:
Split("SMTP:john.doe@contoso.com,smtp:jd@contoso.com",",")
Zwraca ciąg wielowarty z 2 elementami przydatnymi dla atrybutu proxyAddress.


StringFromGuid

Opis rozwiązania:
Funkcja StringFromGuid przyjmuje binarny identyfikator GUID i konwertuje go na ciąg

Składnia:
str StringFromGuid(bin GUID)


StringFromSid

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

Składnia:
str StringFromSid(bin ObjectSID)


Switch

Opis rozwiązania:
Funkcja Switch służy do zwracania pojedynczej wartości na podstawie obliczonych warunków.

Składnia:
var Switch(exp expr1, var value1[, exp expr2, var value … [, exp expr, var valueN]])

  • wyrażenie: wyrażenie wariantu, które chcesz ocenić.
  • value: wartość, która ma zostać zwrócona, jeśli odpowiednie wyrażenie ma wartość True.

Uwagi:
Lista argumentów funkcji Switch składa się z par wyrażeń i wartości. Wyrażenia są obliczane od lewej do prawej, a zwracana jest wartość skojarzona z pierwszym wyrażeniem do obliczenia wartości True. Jeśli części nie są prawidłowo sparowane, wystąpi błąd czasu wykonywania.

Jeśli na przykład wyrażenie expr1 ma wartość True, funkcja Switch zwraca wartość1. Jeśli wyrażenie-1 ma wartość False, ale wyrażenie-2 ma wartość True, przełącznik zwraca wartość-2 itd.

Przełącznik zwraca wartość niczego, jeśli:

  • Żadne z wyrażeń nie ma wartości True.
  • Pierwsze wyrażenie True ma odpowiadającą wartość Null.

Przełącznik oblicza wszystkie wyrażenia, mimo że zwraca tylko jeden z nich. Z tego powodu należy obserwować niepożądane skutki uboczne. Jeśli na przykład ocena dowolnego wyrażenia spowoduje podzielenie przez zero błędu, wystąpi błąd.

Wartość może być również funkcją Error, która zwróci ciąg niestandardowy.

Przykład:
Switch([city] = "London", "English", [city] = "Rome", "Italian", [city] = "Paris", "French", True, Error("Unknown city"))
Zwraca język używany w niektórych dużych miastach, w przeciwnym razie zwraca błąd.


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.


UCase

Opis rozwiązania:
Funkcja UCase konwertuje wszystkie znaki w ciągu na wielkie litery.

Składnia:
str UCase(str string)

Przykład:
UCase("TeSt")
Zwraca wartość "TEST".


Gdzie

Opis rozwiązania:
Zwraca podzbiór wartości z atrybutu wielowartościowego (lub danych wyjściowych wyrażenia) na podstawie określonego warunku.

Składnia:
mvattr Where(variable item, mvattr attribute, exp condition)
mvattr Where(variable item, exp expression, exp condition)

  • element: reprezentuje element w atrybucie wielowartym
  • atrybut: atrybut wielowartszy
  • warunek: dowolne wyrażenie, które można ocenić na wartość true lub false
  • wyrażenie: wyrażenie zwracające kolekcję wartości

Przykład:
Where($item,[userCertificate],CertNotAfter($item)>Now())
Zwróć wartości certyfikatu w wielowartościowym atrybucie userCertificate, które nie wygasły.


With

Opis rozwiązania:
Funkcja With umożliwia uproszczenie złożonego wyrażenia przy użyciu zmiennej reprezentującej podwyrażanie, które pojawia się co najmniej raz w wyrażeniu złożonym.

Składnia:With(var variable, exp subExpression, exp complexExpression)

  • zmienna: reprezentuje podexpression.
  • subExpression: podexpression reprezentowany przez zmienną.
  • complexExpression: wyrażenie złożone.

Przykład:
With($unExpiredCerts,Where($item,[userCertificate],CertNotAfter($item)>Now()),IIF(Count($unExpiredCerts)>0,$unExpiredCerts,NULL))
Jest funkcjonalnie równoważny z:
IIF (Count(Where($item,[userCertificate],CertNotAfter($item)>Now()))>0, Where($item,[userCertificate],CertNotAfter($item)>Now()),NULL)
Zwracane są tylko niewyświetłe wartości certyfikatów w atrybucie userCertificate.


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"

Dodatkowe zasoby