Microsoft Entra Id'de öznitelik eşlemeleri için ifade yazma başvurusu

SaaS uygulamasına sağlamayı yapılandırırken, belirtebileceğiniz öznitelik eşlemesi türlerinden biri ifade eşlemesidir. Bu eşlemeler için, kullanıcılarınızın verilerini SaaS uygulaması için daha kabul edilebilir biçimlere dönüştürmenizi sağlayan betik benzeri bir ifade yazmanız gerekir.

Söz dizimine genel bakış

Öznitelik Eşlemeleri İfadeleri söz dizimi Visual Basic for Applications (VBA) işlevlerini anımsatır.

  • İfadenin tamamı işlev açısından tanımlanmalıdır. Bu, parantez içindeki bağımsız değişkenlerin ardından bir addan oluşmalıdır: İşlevAdı(<<argument 1>>,<<argument N>>)

  • İşlevleri birbirine iç içe yerleştirebilirsiniz. Örneğin: FunctionOne(FunctionTwo(<<argument1>>))

  • İşlevlere üç farklı türde bağımsız değişken geçirebilirsiniz:

    1. Köşeli ayraç içine alınması gereken öznitelikler. Örneğin: [attributeName]
    2. Çift tırnak içine alınması gereken dize sabitleri. Örneğin: "Birleşik Devletler"
    3. Diğer İşlevler. Örneğin: FunctionOne(<<argument1>>, FunctionTwo(<<argument2>>))
  • Dize sabitleri için, dizede ters eğik çizgi ( \ ) veya tırnak işaretine ( " ) ihtiyacınız varsa, ters eğik çizgi ( \ ) simgesiyle kaçış karakteri kullanılmalıdır. Örneğin: "Şirket adı: \"Contoso\""

  • Söz dizimi büyük/küçük harfe duyarlıdır ve bunları bir işlevde dize olarak yazarken ve doğrudan buradan yapıştırırken dikkate alınması gerekir.

İşlev listesi

EklemeAppRoleAssignmentsComplexBitAndCBoolCDateCoalesceConvertToBase64ConvertToUTF8HexCountCStrDateAddDateDiffDateFromNumFormatDateTimeGuidIgnoreFlowIfNullOrEmptyIIFInStrIsNull IsNullOrEmptyIsPresentIsStringÖğeBirleştirmeSolOrtaNormalizeDiacriticsŞimdiDeğilNumFromDatePCaseRandomStringRedactRemoveDuplicatesReplaceSelectUniqueValueSingleAppRoleAssignmentSplitStripSpacesSwitchToLowerToUpperWord


Arkasına Ekle

İşlev: Ekleme(kaynak, sonek)

Açıklama: Bir kaynak dize değeri alır ve soneki sonuna ekler.

Parametreler:

Veri Akışı Adı Gerekli/Yineleniyor Tür Notlar
source Zorunlu String Genellikle kaynak nesneden özniteliğin adı.
Soneki Zorunlu String Kaynak değerin sonuna eklemek istediğiniz dize.

Kullanıcı adına sabit sonek ekleme

Örnek: Salesforce Korumalı Alanı kullanıyorsanız, eşitlemeden önce tüm kullanıcı adlarınıza başka bir sonek eklemeniz gerekebilir.

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

Örnek giriş/çıkış:

  • INPUT: (userPrincipalName): "John.Doe@contoso.com"
  • ÇıKıŞ: "John.Doe@contoso.com.test"

AppRoleAssignmentsComplex

İşlev: AppRoleAssignmentsComplex([appRoleAssignments])

Açıklama: Bir kullanıcı için birden çok rol yapılandırmak için kullanılır. Ayrıntılı kullanım için bkz . Öğretici - Microsoft Entra Id'de SaaS uygulamaları için kullanıcı sağlama öznitelik eşlemelerini özelleştirme.

Parametreler:

Veri Akışı Adı Gerekli/Yineleniyor Tür Notlar
[appRoleAssignments] Zorunlu String [appRoleAssignments] Nesne.

BitAnd

İşlev: BitAnd(değer1, değer2)

Açıklama: Bu işlev her iki parametreyi de ikili gösterime dönüştürür ve bir bit ayarlar:

  • 0 - değer1 ve değer2'deki ilgili bitlerden biri veya her ikisi de 0 ise
  • 1 - karşılık gelen bitlerin her ikisi de 1 ise.

Başka bir deyişle, her iki parametrenin karşılık gelen bitlerinin 1 olması dışında her durumda 0 döndürür.

Parametreler:

Veri Akışı Adı Gerekli/Yineleniyor Tür Notlar
değer1 Zorunlu No VE değeri2 ile birlikte olması gereken sayısal değer
değer2 Zorunlu No AND değeri 1 ile birlikte olması gereken sayısal değer

Örnek:BitAnd(&HF, &HF7)

11110111 AND 00000111 = 00000111, 00000111 BitAnd ikili değeri olan 7 değerini döndürür.


Cbool

Işlev:CBool(Expression)

Açıklama:CBool değerlendirilen ifadeyi temel alan bir boole döndürür. İfade sıfır olmayan bir değere değerlendirilirse, CBool True döndürür, aksi takdirde False döndürür.

Parametreler:

Veri Akışı Adı Gerekli/Yineleniyor Tür Notlar
Expression Zorunlu ifade Herhangi bir geçerli ifade

Örnek:CBool([attribute1] = [attribute2])
Her iki öznitelik de aynı değere sahipse True döndürür.


Cdate

Işlev:
CDate(expression)

Açıklama:
CDate işlevi bir dizeden UTC DateTime döndürür. DateTime yerel bir öznitelik türü değildir, ancak FormatDateTime ve DateAdd gibi tarih işlevleri içinde kullanılabilir.

Parametreler:

Veri Akışı Adı Gerekli/Yineleniyor Tür Notlar
Expression Zorunlu Expression Tarih/saati temsil eden geçerli herhangi bir dize. Desteklenen biçimler için .NET özel tarih ve saat biçimi dizelerine bakın.

Açıklamalar:
Döndürülen dize her zaman UTC cinsindendir ve M/d/yy h:mm:ss tt biçimini izler.

Örnek 1:
CDate([StatusHireDate])
Örnek giriş/çıkış:

  • INPUT (StatusHireDate): "2020-03-16-07:00"
  • ÇıKıŞ: "16.03.2020 07:00:00" <-- Yukarıdaki DateTime değerinin UTC eşdeğerinin döndürülür olduğuna dikkat edin

Örnek 2:
CDate("2021-06-30+08:00")
Örnek giriş/çıkış:

  • GİrDİ: "2021-06-30+08:00"
  • ÇıKıŞ: "29.06.2021 16:00:00" <-- Yukarıdaki DateTime değerinin UTC eşdeğerinin döndürülür olduğuna dikkat edin

Örnek 3:
CDate("2009-06-15T01:45:30-07:00")
Örnek giriş/çıkış:

  • GIRIŞ: "2009-06-15T01:45:30-07:00"
  • ÇıKıŞ: "15.06.2009 08:45:30" <-- Yukarıdaki DateTime değerinin UTC eşdeğerinin döndürülür olduğuna dikkat edin

Coalesce

İşlev: Coalesce(source1, source2, ..., defaultValue)

Açıklama: NULL olmayan ilk kaynak değeri döndürür. Tüm bağımsız değişkenler NULL ise ve defaultValue mevcutsa defaultValue döndürülür. Tüm bağımsız değişkenler NULL ise ve defaultValue yoksa, Coalesce NULL döndürür.

Parametreler:

Veri Akışı Adı Gerekli/Yineleniyor Tür Notlar
kaynak1 ... sourceN Zorunlu String Gerekli, değişken sayısı. Genellikle kaynak nesneden özniteliğin adı.
defaultValue İsteğe bağlı String Tüm kaynak değerler NULL olduğunda kullanılacak varsayılan değer. Boş dize ("") olabilir.

NULL değilse akış posta değeri, aksi takdirde userPrincipalName akışı

Örnek: Posta özniteliği varsa akışı yapmak istiyorsunuz. Değilse, bunun yerine userPrincipalName değerini akışa almak istiyorsunuz.

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

Örnek giriş/çıkış:

  • INPUT (posta): NULL
  • INPUT (userPrincipalName): "John.Doe@contoso.com"
  • ÇıKıŞ: "John.Doe@contoso.com"

ConvertToBase64

İşlev: ConvertToBase64(kaynak)

Açıklama: ConvertToBase64 işlevi bir dizeyi Unicode base64 dizesine dönüştürür.

Parametreler:

Veri Akışı Adı Gerekli/Yineleniyor Tür Notlar
source Zorunlu String Temel 64'e dönüştürülecek dize

Örnek:ConvertToBase64("Hello world!")

"SABlAGwAbABvACAAdwBvAHIAbABkACEA" döndürür


ConvertToUTF8Hex

İşlev: ConvertToUTF8Hex(kaynak)

Açıklama: ConvertToUTF8Hex işlevi bir dizeyi UTF8 Onaltılık kodlanmış bir değere dönüştürür.

Parametreler:

Veri Akışı Adı Gerekli/Yineleniyor Tür Notlar
source Zorunlu String UTF8 Onaltılık değere dönüştürülecek dize

Örnek:ConvertToUTF8Hex("Hello world!")

48656C6C6F20776F726C6421 döndürür


Sayı

İşlev: Count(öznitelik)

Açıklama: Count işlevi, çok değerli bir öznitelikteki öğe sayısını döndürür

Parametreler:

Veri Akışı Adı Gerekli/Yineleniyor Tür Notlar
attribute Zorunlu öznitelik Öğelerin sayılacağı çok değerli öznitelik

Cstr

İşlev: CStr(değer)

Açıklama: CStr işlevi bir değeri dize veri türüne dönüştürür.

Parametreler:

Veri Akışı Adı Gerekli/Yineleniyor Tür Notlar
value Zorunlu sayısal, başvuru veya boole Sayısal bir değer, başvuru özniteliği veya Boole olabilir.

Örnek:CStr([dn])

"cn=Joe,dc=contoso,dc=com" döndürür


DateAdd

Işlev:
DateAdd(interval, value, dateTime)

Açıklama:
Belirtilen zaman aralığının eklendiği tarihi temsil eden bir tarih/saat dizesi döndürür. Döndürülen tarih şu biçimdedir: M/d/yyyy h:mm:ss tt.

Parametreler:

Veri Akışı Adı Gerekli/Yineleniyor Tür Notlar
interval Zorunlu String Eklemek istediğiniz zaman aralığı. Bu tablonun altındaki kabul edilen değerlere bakın.
value Zorunlu Sayı Eklemek istediğiniz birim sayısı. Pozitif (gelecekteki tarihleri almak için) veya negatif (geçmişteki tarihleri almak için) olabilir.
Datetime Zorunlu DateTime Aralığın eklendiği tarihi temsil eden DateTime.

Bir tarih dizesini giriş olarak geçirirken, tarih saat dizesini sarmak için CDate işlevini kullanın. UTC'de sistem saatini almak için Now işlevini kullanın.

Aralık dizesi aşağıdaki değerlerden birine sahip olmalıdır:

  • yyyy Yılı
  • m Ay
  • d Gün
  • ww Haftası
  • s Saat
  • n Dakika
  • s Saniye

Örnek 1: Workday'den gelen StatusHireDate değerini temel alan bir tarih değeri oluşturma
DateAdd("d", 7, CDate([StatusHireDate]))

Örnek interval değer dateTime (StatusHireDate değişkeninin değeri) çıkış
İşe alma tarihine 7 gün ekle "d" 7 2012-03-16-07:00 23.03.2012 07:00:00
İşe alım tarihinden on gün önce bir tarih alma "d" -10 2012-03-16-07:00 06.03.2012 07:00:00
İşe alma tarihine iki hafta ekleme "ww" 2 2012-03-16-07:00 30.03.2012 07:00:00
İşe alma tarihine on ay ekleme "m" 10 2012-03-16-07:00 16.01.2013 07:00:00
İşe alma tarihine iki yıl ekleme "yyyy" 2 2012-03-16-07:00 16.03.2014 07:00:00

DateDiff

Işlev:
DateDiff(interval, date1, date2)

Açıklama:
Bu işlev, iki giriş tarihi arasındaki farkı gösteren bir sayı döndürmek için interval parametresini kullanır. Döndürüyor

  • tarih2 > tarih1 ise pozitif bir sayı,
  • tarih2 < tarih1 ise negatif bir sayı,
  • 0 if date2 == date1

Parametreler:

Veri Akışı Adı Gerekli/isteğe bağlı Tür Notlar
interval Zorunlu String Farkı hesaplamak için kullanılacak zaman aralığı.
tarih1 Zorunlu DateTime Geçerli bir tarihi temsil eden DateTime.
tarih2 Zorunlu DateTime Geçerli bir tarihi temsil eden DateTime.

Bir tarih dizesini giriş olarak geçirirken, tarih saat dizesini sarmak için CDate işlevini kullanın. UTC'de sistem saatini almak için Now işlevini kullanın.

Aralık dizesi aşağıdaki değerlerden birine sahip olmalıdır:

  • yyyy Yılı
  • m Ay
  • d Gün
  • ww Haftası
  • s Saat
  • n Dakika
  • s Saniye

Örnek 1: Geçerli tarihi Workday'den işe alma tarihiyle farklı aralıklarla karşılaştırma
DateDiff("d", Now(), CDate([StatusHireDate]))

Örnek interval date1 date2 çıkış
İki tarih arasındaki gün cinsinden pozitif fark d 2021-08-18+08:00 2021-08-31+08:00 13
İki tarih arasındaki gün cinsinden negatif fark d 25.08.2021 17:41:18 2012-03-16-07:00 -3449
İki tarih arasındaki hafta farkı ww 25.08.2021 17:41:18 2012-03-16-07:00 -493
İki tarih arasındaki ay farkı m 25.08.2021 17:41:18 2012-03-16-07:00 -113
İki tarih arasındaki yıl farkı yyyy 25.08.2021 17:41:18 2012-03-16-07:00 -9
Her iki tarihin de aynı olduğu fark d 2021-08-31+08:00 2021-08-31+08:00 0
İki tarih arasındaki saat farkı h 2021-08-24 2021-08-25 24
İki tarih arasındaki dakika farkı n 2021-08-24 2021-08-25 1440
İki tarih arasındaki saniye farkı s 2021-08-24 2021-08-25 86400

Örnek 2: Öznitelik değerini ayarlamak için DateDiff işlevini IIF işleviyle birleştirme
Workday'de bir hesap Etkinse, kullanıcının accountEnabled özniteliğini True olarak ayarlayın, ancak işe alma tarihi sonraki beş gün içindeyse.

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

DateFromNum

İşlev: DateFromNum(değer)

Açıklama: DateFromNum işlevi AD'nin tarih biçimindeki bir değeri DateTime türüne dönüştürür.

Parametreler:

Veri Akışı Adı Gerekli/Yineleniyor Tür Notlar
value Zorunlu Tarih DateTime türüne dönüştürülecek AD Tarihi

Örnek:DateFromNum([lastLogonTimestamp])

DateFromNum(129699324000000000)

1 Ocak 2012 saat 23:00'ı temsil eden bir DateTime döndürür.


FormatDateTime

İşlev: FormatDateTime(source, dateTimeStyles, inputFormat, outputFormat)

Açıklama: Bir biçimden bir tarih dizesi alır ve bunu farklı bir biçime dönüştürür.

Parametreler:

Veri Akışı Adı Gerekli/Yineleniyor Tür Notlar
source Zorunlu String Genellikle kaynak nesneden özniteliğin adı.
Datetimestyles İsteğe bağlı String Bazı tarih ve saat ayrıştırma yöntemleri için dize ayrıştırma özelliğini özelleştiren biçimlendirme seçeneklerini belirtmek için bu parametreyi kullanın. Desteklenen değerler için bkz . DateTimeStyles belgesi. Boş bırakılırsa, kullanılan varsayılan değer DateTimeStyles.RoundtripKind, DateTimeStyles.AllowLeadingWhite, DateTimeStyles.AllowTrailingWhite değeridir
inputFormat Zorunlu String Kaynak değerin beklenen biçimi. Desteklenen biçimler için bkz . .NET özel tarih ve saat biçimi dizeleri.
outputFormat Zorunlu String Çıkış tarihinin biçimi.

Belirli bir biçimde bir dize olarak çıkış tarihi

Örnek: ServiceNow gibi bir SaaS uygulamasına belirli bir biçimde tarih göndermek istiyorsunuz. Aşağıdaki ifadeyi kullanmayı düşünebilirsiniz.

Expression:

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

Örnek giriş/çıkış:

  • INPUT (extensionAttribute1): "20150123105347.1Z"
  • ÇıKıŞ: "2015-01-23"

GUID

İşlev: Guid()

Açıklama: İşlev Guid'i yeni bir rastgele GUID oluşturur

Örnek:
Guid()
Örnek çıkış: "1088051a-cd4b-4288-84f8-e02042ca72bc"


IgnoreFlowIfNullOrEmpty

İşlev: IgnoreFlowIfNullOrEmpty(ifade)

Açıklama: IgnoreFlowIfNullOrEmpty işlevi, sağlama hizmetine özniteliği yoksaymasını ve kapalı işlev veya öznitelik NULL veya boşsa akışı bırakmasını bildirir.

Parametreler:

Veri Akışı Adı Gerekli/Yineleniyor Tür Notlar
Expression Zorunlu Expression Değerlendirilecek ifade

Örnek 1: Null ise öznitelik akışı yapmayın
IgnoreFlowIfNullOrEmpty([department])
Yukarıdaki ifade, null veya boşsa sağlama akışından department özniteliğini bırakır.

Örnek 2: İfade eşlemesi boş dize veya null olarak değerlendirilirse öznitelik akışı yapmayın
SuccessFactors öznitelik ön ekinin aşağıdaki ifade eşlemesi kullanılarak personalTitle şirket içi Active Directory özniteliğine eşlendiği düşünelim:
IgnoreFlowIfNullOrEmpty(Switch([prefix], "", "3443", "Dr.", "3444", "Prof.", "3445", "Prof. Dr."))
Yukarıdaki ifade önce Switch işlevini değerlendirir. Önek özniteliği switch işlevindelistelenen değerlerden herhangi birine sahip değilse Switchboş bir dize döndürür ve personalTitle özniteliği şirket içi Active Directory sağlama akışına dahil edilmeyecektir.


IIF

İşlev: IIF(koşul,valueIfTrue,valueIfFalse)

Açıklama: IIF işlevi, belirtilen koşula göre bir dizi olası değerden birini döndürür.

Parametreler:

Veri Akışı Adı Gerekli/Yineleniyor Tür Notlar
Durum Zorunlu Değişken veya İfade True veya false olarak değerlendirilebilecek herhangi bir değer veya ifade.
valueIfTrue Zorunlu Değişken veya Dize Koşul true olarak değerlendirilirse, döndürülen değer.
valueIfFalse Zorunlu Değişken veya Dize Koşul false olarak değerlendirilirse, döndürülen değer.

Koşulda aşağıdaki karşılaştırma işleçleri kullanılabilir:

  • Eşittir (=) ve eşit değil (<>)
  • Büyüktür (>) ve eşittir (>=)
  • Küçüktür (<) ve küçüktür eşittir (<=)

Örnek: hedef öznitelik değerini country="USA" ise kaynak ülke özniteliğine ayarlayın, aksi takdirde hedef öznitelik değerini kaynak departman özniteliğine ayarlayın. IIF([country]="USA",[country],[department])

Bilinen sınırlamalar

Bu bölüm, IIF işlevine yönelik sınırlamaları ve geçici çözümleri içerir. Kullanıcı oluşturma sorunlarını giderme hakkında bilgi için bkz . Null /boş değerler nedeniyle oluşturma başarısız oluyor.

  • IIF işlevi şu anda AND ve OR mantıksal işleçlerini desteklemez.
  • AND mantığını uygulamak için trueValue yolu boyunca zincirlenmiş iç içe IIF deyimini kullanın. Örnek: Country="USA" ve state="CA" ise, "True" değerini döndürür, aksi takdirde "False" döndürür. IIF([country]="USA",IIF([state]="CA","True","False"),"False")
  • OR mantığını uygulamak için falseValue yolu boyunca zincirlenmiş iç içe IIF deyimini kullanın. Örnek: Country="USA" veya state="CA" ise, "True" değerini döndürür, aksi takdirde "False" döndürür. IIF([country]="USA","True",IIF([state]="CA","True","False"))
  • IIF işlevinde kullanılan kaynak özniteliği boş veya null ise, koşul denetimi başarısız olur.
    • Desteklenmeyen IIF ifade örnekleri:
      • IIF([country]="","Other",[country])
      • IIF(IsNullOrEmpty([country]),"Other",[country])
      • IIF(IsPresent([country]),[country],"Other")
    • Önerilen geçici çözüm: Switch işlevini kullanarak boş/null değerleri denetleyin. Örnek: Ülke özniteliği boşsa"Diğer" değerini ayarlayın. Varsa, ülke özniteliği değerini hedef özniteliğe geçirin.
      • Switch([country],[country],"","Other")

Instr

İşlev: InStr(değer1, değer2, başlangıç, compareType)

Açıklama: InStr işlevi, dizedeki bir alt dizenin ilk oluşumunu bulur

Parametreler:

Veri Akışı Adı Gerekli/Yineleniyor Tür Notlar
değer1 Zorunlu String Aranacak dize
değer2 Zorunlu String Bulunabilecek dize
start İsteğe bağlı Tam sayı Alt dizeyi bulmak için başlangıç konumu
compareType İsteğe bağlı Numaralandırma vbTextCompare veya vbBinaryCompare olabilir

Örnek:InStr("The quick brown fox","quick")

5 olarak değerlendirilir

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

7 olarak değerlendirilir


Isnull

İşlev: IsNull(İfade)

Açıklama: İfade Null olarak değerlendirilirse, IsNull işlevi true değerini döndürür. Bir öznitelik için Null, özniteliğin olmamasıyla ifade edilir.

Parametreler:

Veri Akışı Adı Gerekli/Yineleniyor Tür Notlar
Expression Zorunlu Expression Değerlendirilecek ifade

Örnek:IsNull([displayName])

Öznitelik yoksa True döndürür.


Isnullorempty

İşlev: IsNullOrEmpty(İfade)

Açıklama: İfade null veya boş bir dizeyse, IsNullOrEmpty işlevi true döndürür. Bir öznitelik için, öznitelik yoksa veya mevcutsa ancak boş bir dizeyse, bu True olarak değerlendirilir. Bu işlevin tersi IsPresent olarak adlandırılır.

Parametreler:

Veri Akışı Adı Gerekli/Yineleniyor Tür Notlar
Expression Zorunlu Expression Değerlendirilecek ifade

Örnek:IsNullOrEmpty([displayName])

Öznitelik yoksa veya boş bir dizeyse True döndürür.


Ispresent

İşlev: IsPresent(İfade)

Açıklama: İfade Null olmayan ve boş olmayan bir dize olarak değerlendirilirse IsPresent işlevi true değerini döndürür. Bu işlevin tersi IsNullOrEmpty olarak adlandırılır.

Parametreler:

Veri Akışı Adı Gerekli/Yineleniyor Tür Notlar
Expression Zorunlu Expression Değerlendirilecek ifade

Örnek:Switch(IsPresent([directManager]),[directManager], IsPresent([skiplevelManager]),[skiplevelManager], IsPresent([director]),[director])


IsString

İşlev: IsString(İfade)

Açıklama: İfade bir dize türüne değerlendirilebilirse, IsString işlevi True olarak değerlendirilir.

Parametreler:

Veri Akışı Adı Gerekli/Yineleniyor Tür Notlar
Expression Zorunlu Expression Değerlendirilecek ifade

Kalem

İşlev: Öğe(öznitelik, dizin)

Açıklama: Item işlevi, çok değerli bir dizeden/öznitelikten bir öğe döndürür.

Parametreler:

Veri Akışı Adı Gerekli/Yineleniyor Tür Notlar
attribute Zorunlu Öznitelik Aranacak çok değerli öznitelik
Dizin Zorunlu Tam sayı Çok değerli dizedeki bir öğeye dizin oluşturma

Örnek:Item([proxyAddresses], 1) çok değerli özniteliğindeki ilk öğeyi döndürür. Dizin 0 kullanılmamalıdır.


Katılın

İşlev: Birleştirme(ayırıcı, kaynak1, kaynak2, ...)

Açıklama: Join(), Birden çok kaynak dize değerini tek bir dizede birleştirebildiği ve her değerin bir ayırıcı dizeyle ayrılacağı dışında Ekleme() ile benzerdir.

Kaynak değerlerden biri çok değerli bir öznitelikse, bu öznitelikteki her değer ayırıcı değerle ayrılmış olarak birleştirilir.

Parametreler:

Veri Akışı Adı Gerekli/Yineleniyor Tür Notlar
Ayırıcı Zorunlu String Kaynak değerleri tek bir dizede birleştirildiğinde ayırmak için kullanılan dize. Ayırıcı gerekli değilse "" olabilir.
kaynak1 ... sourceN Gerekli, değişken sayısı String Birleştirilecek dize değerleri.

Left

İşlev: Left(String, NumChars)

Açıklama: Left işlevi, bir dizenin solundan belirtilen sayıda karakter döndürür. numChars = 0 ise boş dize döndürün. numChars < 0 ise giriş dizesini döndürün. Dize null ise boş dize döndür. Dize, numChars içinde belirtilen sayıdan daha az karakter içeriyorsa, dizeyle aynı bir dize (yani, parametre 1'deki tüm karakterleri içeren) döndürülür.

Parametreler:

Veri Akışı Adı Gerekli/Yineleniyor Tür Notlar
Dize Zorunlu Öznitelik Karakterlerin döndürüleceği dize
NumChars Zorunlu Tam sayı Dizenin başından (soldan) döndürülecek karakter sayısını tanımlayan sayı

Örnek:Left("John Doe", 3)

"Joh" değerini döndürür.


Mid

İşlev: Orta(kaynak, başlangıç, uzunluk)

Açıklama: Kaynak değerin alt dizesini döndürür. Alt dize, kaynak dizedeki karakterlerden yalnızca bazılarını içeren bir dizedir.

Parametreler:

Veri Akışı Adı Gerekli/Yineleniyor Tür Notlar
source Zorunlu String Genellikle özniteliğin adı.
start Zorunlu Tam sayı Alt dizenin başlaması gereken kaynak dizedeki dizin. Dizedeki ilk karakterin dizini 1, ikinci karakterin dizini 2,vb. olur.
length Zorunlu Tam sayı Alt dizenin uzunluğu. Uzunluk kaynak dizenin dışında bitiyorsa, işlev başlangıç dizininden kaynak dizenin sonuna kadar alt dize döndürür.

NormalizeDiacritics

İşlev: NormalizeDiacritics(kaynak)

Açıklama: Bir dize bağımsız değişkeni gerektirir. Dizeyi döndürür, ancak tüm aksan karakterleri eşdeğer bitişik olmayan karakterlerle değiştirilir. Genellikle, aksan karakterleri (vurgu işaretleri) içeren ad ve soyadlarını, kullanıcı asıl adları, SAM hesabı adları ve e-posta adresleri gibi çeşitli kullanıcı tanımlayıcılarında kullanılabilecek yasal değerlere dönüştürmek için kullanılır.

Parametreler:

Veri Akışı Adı Gerekli/Yineleniyor Tür Notlar
source Zorunlu String Genellikle bir ad veya soyadı özniteliği.
Aksanlı Karakter Normalleştirilmiş karakter Aksanlı Karakter Normalleştirilmiş karakter
ä, à, â, ã, å, á, ą, ă, ā, ā́, ā̀, ā̂, ā̃, ǟ, ā̈, ǡ, a̱, å̄ a Ä, À, Â, Ã, Å, Á, Ą, Ă, Ā, Ā́, Ā̀, Ā̂, Ā̃, Ǟ, Ā̈, Ǡ, A̱, Å̄ A
æ, ǣ Ae Æ, Ǣ AE
ç, č, ć, c̄, c̱ c Ç, Č, Ć, C̄, C̱ C
ď, d̄, ḏ d Ď, D̄, Ḏ D
ë, è, é, ê, ę, ě, ė, ē, ḗ, ḕ, ē̂, ē̃, ê̄, e̱, ë̄, e̊̄ e Ë, È, É, Ê, Ę, Ě, Ė, Ē, Ḗ, Ḕ, Ē̂, Ē̃, Ê̄, E̱, Ë̄, E̊̄ E
ğ, ḡ, g̱ g Ğ, Ḡ, G̱ G
ï, î, ì, í, ı, ī, ī, ī̀, ī̂, ī̃, i̱ ı Ï, Î, Ì, Í, İ, Ī, Ī́, Ī̀, Ī̂, Ī̃, I̱ I
ľ, ł, l̄, ḹ, ḻ l Ł, Ľ, L̄, Ḹ, Ḻ L
ñ, ń, ň, n̄, ṉ n Ñ, Ń, Ň, N̄, Ṉ N
ö, ò, ő, õ, ô, ó, ō, ṓ, ṑ, ō̂, ō̃, ȫ, ō̈, ǭ, ȭ, ȱ, o̱ o Ö, Ò, Ő, Õ, Ô, Ó, Ó, Ṓ, Ṑ, Ō̂, Ō̃, Ȫ, Ó̈, Ǭ, Ȭ, Ȱ, O̱ O
ø, ø̄, œ̄ Oe Ø, Ø̄, Œ̄ OE
ř, r̄, ṟ, ṝ r Ř, R̄, Ṟ, Ṝ R
Β ss
š, ś, ș, ş, s̄, s̱ s Š, Ś, Ș, Ş, S̄, S̱ S
ť, ț, t̄, ṯ t Ť, Ț, T̄, Ṯ T
ü, ù, û, ú, ů, ű, ū, ū́, ū̀, ū̂, ū̃, u̇̄, ǖ, ṻ, ṳ̄, u̱ u Ü, Ù, Û, Ú, Ů, Ű, Ū, Ū́, Ū̀, Ū̂, Ū̃, U̇̄, Ǖ, Ṻ, Ṳ̄, U̱ U
ÿ, ý, ȳ, ȳ́, ȳ̀, ȳ̃, y̱ y Ÿ, Ý, Ȳ, Ȳ́, Ȳ̀, Ȳ̃, Y̱ Y
ź, ž, ż, z̄, ẕ z Ź, Ž, Ż, Z̄, Ẕ Z

Dizeden aksanları kaldırma

Örnek: Vurgu işaretleri içeren karakterleri, vurgu işareti içermeyen eşdeğer karakterlerle değiştirin.

İfade: NormalizeDiacritics([givenName])

Örnek giriş/çıkış:

  • INPUT (givenName): "Zoë"
  • ÇıKıŞ: "Zoe"

Not

İşlev: Not(kaynak)

Açıklama: Kaynağın boole değerini çevirir. Kaynak değer True ise False döndürür. Aksi takdirde True değerini döndürür.

Parametreler:

Veri Akışı Adı Gerekli/Yineleniyor Tür Notlar
source Zorunlu Boole Dizesi Beklenen kaynak değerleri "True" veya "False" olur.

Şimdi

İşlev: Now()

Açıklama:
Now işlevi, geçerli UTC DateTime değerini M/d/y h:mm:ss tt biçiminde temsil eden bir dize döndürür.

Örnek:Now()
2/7/2021 15:33:38 döndürülen örnek değer


NumFromDate

İşlev: NumFromDate(değer)

Açıklama: NumFromDate işlevi bir DateTime değerini accountExpires gibi öznitelikleri ayarlamak için gereken Active Directory biçimine dönüştürür. Workday ve SuccessFactors gibi bulut İk uygulamalarından alınan DateTime değerlerini eşdeğer AD temsillerine dönüştürmek için bu işlevi kullanın.

Parametreler:

Veri Akışı Adı Gerekli/Yineleniyor Tür Notlar
value Zorunlu String ISO 8601 biçiminde tarih saat dizesi. Tarih değişkeni farklı bir biçimdeyse, tarihi ISO 8601 biçimine dönüştürmek için FormatDateTime işlevini kullanın.

Örnek:

  • İş günü örneği 2020-12-31-08:00 biçimindeki Workday'den ContractEndDate özniteliğini AD'deki accountExpires alanına eşlemek istediğinizi varsayarsak, bu işlevi şu şekilde kullanabilir ve saat dilimi uzaklığını yerel ayarınızla eşleşecek şekilde değiştirebilirsiniz. NumFromDate(Join("", FormatDateTime([ContractEndDate], ,"yyyy-MM-ddzzz", "yyyy-MM-dd"), " 23:59:59-08:00"))

  • SuccessFactors örneği AD'deki accountExpires alanıyla M/d/yy hh:mm:ss tt biçimindeki SuccessFactors'tan endDate özniteliğini eşlemek istediğinizi varsayarsak, bu işlevi şu şekilde kullanabilir ve saat dilimi uzaklığını yerel ayarınızla eşleşecek şekilde değiştirebilirsiniz. NumFromDate(Join("",FormatDateTime([endDate], ,"M/d/yyyy hh:mm:ss tt","yyyy-MM-dd")," 23:59:59-08:00"))


PCase

İşlev: PCase(kaynak, wordSeparators)

Açıklama: PCase işlevi bir dizedeki her sözcüğün ilk karakterini büyük harfe dönüştürür ve diğer tüm karakterler küçük harfe dönüştürülür.

Parametreler:

Veri Akışı Adı Gerekli/isteğe bağlı Tür Notlar
source Zorunlu String uygun büyük/küçük harfe dönüştürülecek kaynak değeri.
wordSeparators İsteğe bağlı String Sözcük ayırıcısı olarak kullanılan bir karakter kümesi belirtin (örnek: " ,-'")

Açıklamalar:

  • wordSeparators parametresi belirtilmezse PCase, kaynak dizeyi uygun büyük/küçük harfe dönüştürmek için .NET işlevini ToTitleCase dahili olarak çağırır. .NET işlevi ToTitleCase, sözcük ayırıcıları olarak Unicode karakter kategorilerinin kapsamlı bir kümesini destekler.
    • Boşluk karakteri
    • Yeni satır karakteri
    • CRLF gibi karakterleri denetleme
    • Denetim karakterlerini biçimlendirme
    • alt çizgi gibi Bağlan orPunctuation karakterleri
    • Tire ve kısa çizgi gibi DashPunctuation karakterleri (En Dash, Em Dash, çift kısa çizgi vb.)
    • Parantez, küme ayracı, açılı ayraç vb. çiftler halinde oluşan OpenPunctuation ve ClosePunctuation karakterleri.
    • Tek tırnak, çift tırnak ve açısal tırnak gibi InitialQuotePunctuation ve FinalQuotePunctuation karakterleri.
    • Ünlem işareti, sayı işareti, yüzde işareti, ve işareti, yıldız işareti, virgül, tam durak, iki nokta üst üste, noktalı virgül vb. gibi diğer Noktalama karakterleri.
    • Artı işareti, küçüktür ve büyüktür işareti, dikey çizgi, tilde, eşittir işareti vb. gibi MathSymbol karakterleri.
    • CurrencySymbol karakterleri dolar işareti, cent işareti, pound işareti, euro işareti vb.
    • ModifierSymbol karakterleri makron, vurgu, ok başları vb.
    • Telif hakkı işareti, derece işareti, kayıtlı işaret vb. gibi OtherSymbol karakterleri.
  • wordSeparators parametresi belirtilirse, PCase yalnızca sözcük ayırıcısı olarak belirtilen karakterleri kullanır.

Örnek:

SAP SuccessFactors'tan ve İk'dan firstName ve lastName özniteliklerini kaynak olarak kullandığınızı varsayalım. Bu öznitelikler büyük harfle gösterilir. PCase işlevini kullanarak, aşağıda gösterildiği gibi adı uygun büyük/küçük harfe dönüştürebilirsiniz.

Expression Girdi Çıktı Notlar
PCase([firstName]) firstName = "PABLO GONSALVES (SECOND)" "Pablo Gonsalves (İkinci)" wordSeparators parametresi belirtilmediğinden, PCase işlevi varsayılan sözcük ayırıcıları karakter kümesini kullanır.
PCase([lastName]," '-") lastName = "PINTO-DE'SILVA" "Pinto-De'Silva" PCase işlevi, sözcükleri tanımlamak ve uygun büyük/küçük harfe dönüştürmek için wordSeparators parametresindeki karakterleri kullanır.
PCase(Join(" ",[firstName],[lastName])) firstName = GREGORY, lastName = "JAMES" "Gregory James" Join işlevini PCase içinde iç içe yerleştirebilirsiniz. wordSeparators parametresi belirtilmediğinden, PCase işlevi varsayılan sözcük ayırıcıları karakter kümesini kullanır.

RandomString

İşlev: RandomString(Length, MinimumNumbers, MinimumSpecialCharacters, MinimumCapital, MinimumLowerCase, CharactersToAvoid)

Açıklama: RandomString işlevi, belirtilen koşullara göre rastgele bir dize oluşturur. İzin verilen karakterler burada tanımlanabilir.

Parametreler:

Veri Akışı Adı Gerekli/Yineleniyor Tür Notlar
Uzunluk Zorunlu Sayı Rastgele dizenin toplam uzunluğu. Bu, MinimumNumbers, MinimumSpecialCharacters ve MinimumCapital toplamından büyük veya buna eşit olmalıdır. En fazla 256 karakter.
MinimumSayılar Zorunlu Sayı Rastgele dizedeki en küçük sayılar.
MinimumSpecialCharacters Zorunlu Sayı En az özel karakter sayısı.
MinimumKapital Zorunlu Sayı Rastgele dizedeki en az büyük harf sayısı.
MinimumLowerCase Zorunlu Sayı Rastgele dizedeki en az küçük harf sayısı.
CharactersToAvoid İsteğe bağlı String Rastgele dize oluşturulurken dışlanacak karakterler.

Örnek 1: - Özel karakter kısıtlamaları olmadan rastgele bir dize oluşturun: RandomString(6,3,0,0,3) 6 karakterli rastgele bir dize oluşturur. Dize 3 sayı ve 3 küçük harf karakteri (1a73qt) içerir.

Örnek 2: - Özel karakter kısıtlamalarıyla rastgele bir dize oluşturun: RandomString(10,2,2,2,1,"?,") 10 karakterli rastgele bir dize oluşturur. Dize en az 2 sayı, 2 özel karakter, 2 büyük harf, 1 küçük harf içerir ve "?" ve "", (1@!2BaRg53) karakterlerini dışlar.


Yeniden işlem

İşlev: Redact()

Açıklama: Redact işlevi, öznitelik değerini sağlama günlüklerindeki "[Redact]" dize sabit değeriyle değiştirir.

Parametreler:

Veri Akışı Adı Gerekli/Yineleniyor Tür Notlar
öznitelik/değer Zorunlu String Günlüklerden yeniden işlem yapmak için özniteliğini veya sabit /dizeyi belirtin.

Örnek 1: Özniteliği yeniden düzenleme: Redact([userPrincipalName]) userPrincipalName öğesini sağlama günlüklerinden kaldırır.

Örnek 2: Dizeyi yeniden oluşturma: Redact("StringToBeRedacted") Sağlama günlüklerinden sabit bir dize kaldırır.

Örnek 3: Rastgele bir dizeyi yeniden oluşturma: Redact(RandomString(6,3,0,0,3)) Rastgele dizeyi sağlama günlüklerinden kaldırır.


Removeduplicates

İşlev: RemoveDuplicates(öznitelik)

Açıklama: RemoveDuplicates işlevi çok değerli bir dize alır ve her değerin benzersiz olduğundan emin olun.

Parametreler:

Veri Akışı Adı Gerekli/Yineleniyor Tür Notlar
attribute Zorunlu Çok değerli Öznitelik Yinelenenlerin kaldırıldığı çok değerli öznitelik

Örnek:RemoveDuplicates([proxyAddresses]) Tüm yinelenen değerlerin kaldırıldığı temizlenmiş bir proxyAddress özniteliği döndürür.


Replace

İşlev: Replace(source, oldValue, regexPattern, regexGroupName, replacementValue, replacementAttributeName, template)

Açıklama: Dize içindeki değerleri büyük/küçük harfe duyarlı bir şekilde değiştirir. İşlev, sağlanan parametrelere bağlı olarak farklı davranır:

  • oldValue ve replacementValue sağlandığında:

    • Kaynaktaki tüm oldValue oluşumlarını replaceValue ile değiştirir
  • oldValue ve şablon sağlandığında:

    • Şablondaki oldValue değerinin tüm oluşumlarını kaynak değerle değiştirir
  • regexPattern ve replacementValue sağlandığında:

    • İşlev, kaynak dizeye regexPattern uygular ve regex grup adlarını kullanarak replacementValue dizesini oluşturabilirsiniz

Not

Regex gruplandırma yapıları ve adlandırılmış alt ifadeler hakkında daha fazla bilgi edinmek için bkz . Normal İfadelerde Yapıları Gruplandırma.

  • regexPattern, regexGroupName, replacementValue sağlandığında:

    • işlevi, regexPattern dosyasını kaynak dizeye uygular ve regexGroupName ile eşleşen tüm değerleri replaceValue ile değiştirir
  • regexPattern, regexGroupName, replacementAttributeName sağlandığında:

    • Kaynağın değeri varsa, kaynak döndürülür
    • Kaynağın değeri yoksa işlev regexPatterndeğerini replacementAttributeName değerine uygular ve regexGroupName ile eşleşen değeri döndürür

Parametreler:

Veri Akışı Adı Gerekli/Yineleniyor Tür Notlar
source Zorunlu String Genellikle kaynak nesneden özniteliğin adı.
Oldvalue İsteğe bağlı String Kaynak veya şablonda değiştirilecek değer.
regexPattern İsteğe bağlı String Kaynakta değiştirilecek değer için regex deseni. replacementAttributeName kullanıldığında, replacementAttributeName değerinden bir değer ayıklamak için regexPattern uygulanır.
regexGroupName İsteğe bağlı String regexPattern içindeki grubun adı. named replacementAttributeName kullanıldığında, replacementAttributeName adlı regex grubunun değerini ayıklayıp değiştirme değeri olarak döndüreceğiz.
replacementValue İsteğe bağlı String Eski değerle değiştirilecek yeni değer.
replacementAttributeName İsteğe bağlı String Değiştirme değeri için kullanılacak özniteliğin adı
şablonu İsteğe bağlı String Şablon değeri sağlandığında, şablonun içinde oldValue değerini arar ve kaynak değerle değiştiririz.

Normal ifade kullanarak karakterleri değiştirme

Örnek 1: Kaynak dizenin tamamını başka bir dizeyle değiştirmek için oldValue ve replacementValue kullanma.

İk sisteminizin bir özniteliği BusinessTitleolduğunu varsayalım. Son iş unvanı değişikliklerinin bir parçası olarak, şirketiniz "Ürün Geliştiricisi" iş unvanına sahip herkesi "Yazılım Mühendisi" olarak güncelleştirmek istiyor. Bu durumda, öznitelik eşlemenizde aşağıdaki ifadeyi kullanabilirsiniz.

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

  • kaynak: [BusinessTitle]
  • oldValue: "Ürün Geliştirici"
  • replacementValue: "Yazılım Mühendisi"
  • İfade çıkışı: Yazılım Mühendisi

Örnek 2: Kaynak dizeyi başka bir şablonlaştırılmış dizeye eklemek için oldValue ve şablon kullanma.

oldValue parametresi bu senaryoda yanlış bir ifadedir. Aslında değiştirilen değerdir.
Her zaman biçiminde <username>@contoso.comoturum açma kimliği oluşturmak istediğinizi varsayalım. UserID adlı bir kaynak özniteliği var ve bu değerin oturum açma kimliğinin <username> bir bölümü için kullanılmasını istiyorsunuz. Bu durumda, öznitelik eşlemenizde aşağıdaki ifadeyi kullanabilirsiniz.

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

  • kaynak:[UserID] = "jsmith"
  • oldValue: "<username>"
  • şablon: "<username>@contoso.com"
  • İfade çıkışı: "jsmith@contoso.com"

Örnek 3:Kaynak dizenin bir bölümünü ayıklamak için regexPattern ve replacementValue kullanma ve bunu boş bir dizeyle veya regex desenleri veya regex grup adları kullanılarak oluşturulmuş özel bir değerle değiştirme.

Bileşenleri country code olan ve phone number boşluk karakteriyle ayrılmış bir kaynak özniteliğiniz telephoneNumber olduğunu varsayalım. Örneğin, +91 9998887777 Bu durumda öznitelik eşlemenizde aşağıdaki ifadeyi kullanarak 10 basamaklı telefon numarasını ayıklayabilirsiniz.

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

  • kaynak:[telephoneNumber] = "+91 9998887777"
  • regexPattern: "\\+(?<isdCode>\\d* )(?<phoneNumber>\\d{10})"
  • replacementValue: "${phoneNumber}"
  • İfade çıkışı: 9998887777

Bu deseni, karakterleri kaldırmak ve bir dizeyi daraltmak için de kullanabilirsiniz. Örneğin, aşağıdaki ifade mobil sayı dizesindeki parantez, tire ve boşluk karakterlerini kaldırır ve yalnızca basamakları döndürür.

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

  • Kaynak:[mobile] = "+1 (999) 888-7777"
  • regexPattern: "[()\\s-]+"
  • replacementValue: "" (boş dize)
  • İfade çıkışı: 19998887777

Örnek 4: Kaynak dizenin bir bölümünü ayıklamak ve başka bir değişmez değer veya boş dizeyle değiştirmek için regexPattern, regexGroupName ve replacementValue kullanma.

Kaynak sisteminizin iki bileşenli sokak numarası ve sokak adı ile AddressLineData özniteliği olduğunu varsayalım. Yakın zamanda yapılan bir taşımanın bir parçası olarak, adresin sokak numarasının değiştiğini ve adres satırının yalnızca sokak numarası bölümünü güncelleştirmek istediğinizi varsayalım. Daha sonra bu durumda, sokak numarasını ayıklamak için öznitelik eşlemenizde aşağıdaki ifadeyi kullanabilirsiniz.

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

  • kaynak:[AddressLineData] = "545 Tremont Caddesi"
  • regexPattern: "(?<streetNumber>^\\d*)"
  • regexGroupName: "streetNumber"
  • replacementValue: "888"
  • İfade çıkışı: 888 Tremont Caddesi

Aşağıda, bir UPN'den gelen etki alanı son ekinin, etki alanı soneki olmadan oturum açma kimliği oluşturmak için boş bir dizeyle değiştirildiği başka bir örnek verilmiştir.

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

  • kaynak:[userPrincipalName] = "jsmith@contoso.com"
  • regexPattern: "(?<Suffix>@(.)*)"
  • regexGroupName: "Sonek"
  • replacementValue: "" (boş dize)
  • İfade çıkışı: jsmith

Örnek 5:Kaynak özniteliğin boş olduğu veya bir değeri olmadığı senaryoları işlemek için regexPattern, regexGroupName ve replacementAttributeName kullanma.

Kaynak sisteminizin telephoneNumber özniteliği olduğunu varsayalım. telephoneNumber boşsa, cep telefonu numarası özniteliğinin 10 basamaklarını ayıklamak istiyorsunuz. Bu durumda, öznitelik eşlemenizde aşağıdaki ifadeyi kullanabilirsiniz.

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

  • kaynak:[telephoneNumber] = "" (boş dize)
  • regexPattern: "\\+(?<isdCode>\\d* )(?<phoneNumber>\\d{10})"
  • regexGroupName: "phoneNumber"
  • replacementAttributeName:[mobile] = "+91 8887779999"
  • İfade çıkışı: 8887779999

Örnek 6: Normal ifade değeriyle eşleşen karakterleri bulmanız ve kaldırmanız gerekir.

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

  • source [mailNickname]
  • oldValue: "john_doe72"
  • replaceValue: ""
  • İfade çıkışı: 72

SelectUniqueValue

İşlev: SelectUniqueValue(uniqueValueRule1, uniqueValueRule2, uniqueValueRule3, ...)

Açıklama: İfadeler kullanılarak tanımlanan benzersiz değer oluşturma kuralları olan en az iki bağımsız değişken gerektirir. İşlev her kuralı değerlendirir ve ardından hedef uygulamada/dizinde benzersizlik için oluşturulan değeri denetler. Bulunan ilk benzersiz değer, döndürülen değer olacaktır. Tüm değerler hedefte zaten varsa, girişe emanet edilir ve bunun nedeni denetim günlüklerine kaydedilir. Sağlanabilir bağımsız değişken sayısı için üst sınır yoktur.

  • Bu işlev en üst düzeyde olmalıdır ve iç içe yerleştirilemez.
  • Bu işlev, eşleşen önceliğe sahip özniteliklere uygulanamaz.
  • Bu işlevin yalnızca giriş oluşturma işlemleri için kullanılması amaçlanır. Bunu bir öznitelikle kullanırken EşlemeYi Uygula özelliğini Yalnızca nesne oluşturma sırasında olarak ayarlayın.
  • Bu işlev şu anda yalnızca "Workday to Active Directory User Provisioning" ve "SuccessFactors to Active Directory User Provisioning" için desteklenmektedir. Diğer sağlama uygulamalarıyla kullanılamaz.
  • SelectUniqueValue işlevinin şirket içi Active Directory içinde gerçekleştirdiği LDAP araması aksan gibi özel karakterlerden kaçmaz. Özel karakter içeren "Jéssica Smith" gibi bir dize geçirirseniz işleme hatalarıyla karşılaşırsınız. Özel karakterleri normalleştirmek için aşağıdaki örnekte gösterildiği gibi NormalizeDiacritics işlevini iç içe geçirin.

Parametreler:

Veri Akışı Adı Gerekli/Yineleniyor Tür Notlar
uniqueValueRule1 ... uniqueValueRuleN En az 2 gereklidir, üst sınır yoktur String Değerlendirilecek benzersiz değer oluşturma kurallarının listesi.

userPrincipalName (UPN) özniteliği için benzersiz değer oluşturma

Örnek: Kullanıcının adını, ikinci adını ve soyadını temel alarak UPN özniteliği için bir değer oluşturmanız ve değeri UPN özniteliğine atamadan önce hedef AD dizininde benzersiz olup olmadığını denetlemeniz gerekir.

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

Örnek giriş/çıkış:

  • INPUT (PreferredFirstName): "John"
  • INPUT (PreferredLastName): "Smith"
  • OUTPUT: UPN değeri John.Smith@contoso.com dizininde zaten yoksa "John.Smith@contoso.com"
  • OUTPUT: UPN değeri John.Smith@contoso.com dizinde zaten varsa "J.Smith@contoso.com"
  • OUTPUT: Yukarıdaki iki UPN değeri dizinde zaten varsa "Jo.Smith@contoso.com"

SingleAppRoleAssignment

İşlev: SingleAppRoleAssignment([appRoleAssignments])

Açıklama: Belirli bir uygulama için kullanıcıya atanan tüm appRoleAssignments listesinden tek bir appRoleAssignment döndürür. AppRoleAssignments nesnesini tek bir rol adı dizesine dönüştürmek için bu işlev gereklidir. En iyi yöntem, aynı anda tek bir kullanıcıya yalnızca bir appRoleAssignment atandığından emin olmaktır. Bu işlev, kullanıcıların birden çok uygulama rolü ataması olduğu senaryolarda desteklenmez.

Parametreler:

Veri Akışı Adı Gerekli/Yineleniyor Tür Notlar
[appRoleAssignments] Zorunlu String [appRoleAssignments] Nesne.

Bölünme

İşlev: Split(kaynak, sınırlayıcı)

Açıklama: Belirtilen sınırlayıcı karakterini kullanarak bir dizeyi çok değerli bir diziye böler.

Parametreler:

Veri Akışı Adı Gerekli/Yineleniyor Tür Notlar
source Zorunlu String kaynak değerini güncelleştirin.
Sınırlayıcı Zorunlu String Dizeyi bölmek için kullanılacak karakteri belirtir (örnek: ",")

Dizeyi çok değerli bir diziye bölme

Örnek: Virgülle ayrılmış bir dize listesi almanız ve bunları Salesforce'un PermissionSets özniteliği gibi çok değerli bir özniteliğe takılabilen bir diziye bölmeniz gerekir. Bu örnekte, Microsoft Entra Id'de extensionAttribute5'te izin kümelerinin listesi dolduruldu.

İfade: Split([extensionAttribute5], ",")

Örnek giriş/çıkış:

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

StripSpaces

İşlev: StripSpaces(kaynak)

Açıklama: Kaynak dizeden tüm boşluk (" ") karakterlerini kaldırır.

Parametreler:

Veri Akışı Adı Gerekli/Yineleniyor Tür Notlar
source Zorunlu String kaynak değerini güncelleştirin.

Switch

İşlev: Switch(kaynak, defaultValue, anahtar1, değer1, anahtar2, değer2, ...)

Açıklama: Kaynak değer bir anahtarla eşleştiğinde, bu anahtar için değer döndürür. Kaynak değer hiçbir anahtarla eşleşmiyorsa defaultValue değerini döndürür. Anahtar ve değer parametreleri her zaman çift olarak gelmelidir. işlevi her zaman çift sayıda parametre bekler. İşlev, yönetici gibi bilgi öznitelikleri için kullanılmamalıdır.

Not

Switch işlevi, kaynak ve anahtar değerlerinin büyük/küçük harfe duyarlı dize karşılaştırmasını gerçekleştirir. Büyük/küçük harfe duyarlı olmayan bir karşılaştırma yapmak isterseniz, iç içe tolower işlevini kullanarak karşılaştırmadan önce kaynak dizeyi normalleştirin ve tüm anahtar dizelerinin küçük harf kullandığından emin olun. Örnek: Switch(ToLower([statusFlag]), "0", "true", "1", "false", "0"). Bu örnekte kaynak özniteliğin statusFlag değerleri ("True" / "true" / "TRUE") olabilir. Ancak Switch işlevi anahtar parametreleriyle karşılaştırmadan önce her zaman "true" küçük harfli dizeye dönüştürür.

Dikkat

Kaynak parametresi için IsPresent, IsNull veya IsNullOrEmpty iç içe işlevlerini kullanmayın. Bunun yerine, anahtar değerlerinden biri olarak sabit boş bir dize kullanın.
Örnek: Switch([statusFlag], "Default Value", "true", "1", "", "0"). Bu örnekte kaynak öznitelik statusFlag boşsa Switch işlevi 0 değerini döndürür.

Parametreler:

Veri Akışı Adı Gerekli/Yineleniyor Tür Notlar
source Zorunlu String Güncelleştirilecek kaynak değer.
defaultValue İsteğe bağlı String Kaynak hiçbir anahtarla eşleşmediğinde kullanılacak varsayılan değer. Boş dize ("") olabilir.
key Zorunlu String Kaynak değeri ile karşılaştıracak anahtar.
value Zorunlu String Anahtarla eşleşen kaynağın değiştirme değeri.

Önceden tanımlanmış seçenek kümesine göre bir değeri değiştirme

Örnek: Kullanıcının saat dilimini, Microsoft Entra Id'de depolanan durum koduna göre tanımlayın. Eyalet kodu önceden tanımlanmış seçeneklerden herhangi biriyle eşleşmiyorsa varsayılan "Avustralya/Sidney" değerini kullanın.

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

Örnek giriş/çıkış:

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

ToLower

İşlev: ToLower(kaynak, kültür)

Açıklama: Bir kaynak dize değeri alır ve belirtilen kültür kurallarını kullanarak bunu küçük harfe dönüştürür. Herhangi bir kültür bilgisi belirtilmemişse Sabit kültür kullanır.

Hedef sistemdeki mevcut değerleri küçük harfe ayarlamak isterseniz, hedef uygulamanızın şemasını güncelleştirin ve ilgilendiğiniz öznitelik için caseExact özelliğini 'true' olarak ayarlayın.

Parametreler:

Veri Akışı Adı Gerekli/Yineleniyor Tür Notlar
source Zorunlu String Genellikle kaynak nesneden özniteliğin adı
Kültür İsteğe bağlı String RFC 4646'yı temel alan kültür adının biçimi languagecode2-country/regioncode2'dir; burada languagecode2 iki harfli dil kodudur ve country/regioncode2 iki harfli alt kültür kodudur. Örnek olarak Japonca (Japonya) için ja-JP ve İngilizce (Birleşik Devletler) için en-US verilebilir. İki harfli dil kodunun kullanılamadığı durumlarda ISO 639-2'den türetilmiş üç harfli bir kod kullanılır.

Oluşturulan userPrincipalName (UPN) değerini küçük harfe dönüştürme

Örnek: PreferredFirstName ve PreferredLastName kaynak alanlarını birleştirir ve tüm karakterleri küçük harfe dönüştürerek UPN değerini oluşturmak istersiniz.

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

Örnek giriş/çıkış:

  • INPUT (PreferredFirstName): "John"
  • INPUT (PreferredLastName): "Smith"
  • ÇıKıŞ: "john.smith@contoso.com"

ToUpper

İşlev: ToUpper(kaynak, kültür)

Açıklama: Kaynak dize değerini alır ve belirtilen kültür kurallarını kullanarak büyük harfe dönüştürür. Herhangi bir kültür bilgisi belirtilmemişse Sabit kültür kullanır.

Hedef sistemdeki mevcut değerleri büyük harfe ayarlamak isterseniz, hedef uygulamanızın şemasını güncelleştirin ve ilgilendiğiniz öznitelik için caseExact özelliğini 'true' olarak ayarlayın.

Parametreler:

Veri Akışı Adı Gerekli/Yineleniyor Tür Notlar
source Zorunlu String Genellikle kaynak nesneden özniteliğin adı.
Kültür İsteğe bağlı String RFC 4646'yı temel alan kültür adının biçimi languagecode2-country/regioncode2'dir; burada languagecode2 iki harfli dil kodudur ve country/regioncode2 iki harfli alt kültür kodudur. Örnek olarak Japonca (Japonya) için ja-JP ve İngilizce (Birleşik Devletler) için en-US verilebilir. İki harfli dil kodunun kullanılamadığı durumlarda ISO 639-2'den türetilmiş üç harfli bir kod kullanılır.

Word

İşlev: Word(Dize,WordNumber,Sınırlayıcılar)

Açıklama: Word işlevi, kullanılacak sınırlayıcıları ve döndürülecek sözcük numarasını açıklayan parametrelere göre dizenin içinde yer alan bir sözcüğü döndürür. Sınırlayıcılardaki karakterlerden biriyle ayrılmış dizedeki her karakter dizesi, sözcükler olarak tanımlanır:

< Sayı 1 ise, boş dize döndürür. Dize null ise boş dize döndürür. Dize, sayı sözcüklerinden küçükse veya dize sınırlayıcılar tarafından tanımlanan herhangi bir sözcük içermiyorsa, boş bir dize döndürülür.

Parametreler:

Veri Akışı Adı Gerekli/Yineleniyor Tür Notlar
Dize Zorunlu Çok değerli Öznitelik Bir sözcüğün döndürüleceği dize.
WordNumber Zorunlu Tam sayı Hangi sözcük numarasının döndürülmesi gerektiğini tanımlayan sayı
Sınırlayıcı Zorunlu String Sözcükleri tanımlamak için kullanılması gereken sınırlayıcıları temsil eden bir dize

Örnek:Word("The quick brown fox",3," ")

"Kahverengi" değerini döndürür.

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

"has" döndürür.


Örnekler

Bu bölümde daha fazla ifade işlevi kullanım örneği sağlanır.

Bilinen etki alanı adını şeritle

Kullanıcı adı almak için kullanıcının e-postasından bilinen bir etki alanı adını çıkarın. Örneğin, etki alanı "contoso.com" ise aşağıdaki ifadeyi kullanabilirsiniz:

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

Örnek giriş/çıkış:

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

Ad ve soyadı bölümlerini birleştirirken kullanıcı diğer adı oluşturma

Kullanıcının adının ilk üç harfini ve soyadının ilk beş harfini alarak bir kullanıcı diğer adı oluşturun.

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

Örnek giriş/çıkış:

  • INPUT (givenName): "John"
  • INPUT (soyadı): "Doe"
  • ÇıKıŞ: "JohDoe"

Soyadı ile ad arasına virgül ekleyin.

Soyadı ile ad arasına virgül ekleyin.

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

Örnek giriş/çıkış:

  • INPUT (givenName): "John"
  • INPUT (soyadı): "Doe"
  • ÇıKıŞ: "Doe, John"

Bir kullanıcı için Microsoft Entra Id nesne kimliğini temel alan bir kimlik oluşturun. Kimlikten tüm harfleri kaldırın ve en başa 1000 ekleyin.

Bu ifade, kullanıcı için 1000 ile başlayan ve büyük olasılıkla benzersiz olabilecek bir tanımlayıcı oluşturmanıza olanak tanır.

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

Örnek giriş/çıkış:

  • INPUT: "d05e47b1-3909-445a-ba5e-ca60cbc0e4b4"
  • ÇıKıŞ: "100064303565343762312333930392343435612626135652636136306362633065346234"