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:
- Köşeli ayraç içine alınması gereken öznitelikler. Örneğin: [attributeName]
- Çift tırnak içine alınması gereken dize sabitleri. Örneğin: "Birleşik Devletler"
- 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ı. |
sonek | 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
Fonksiyon: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
Fonksiyon:
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 | Öğeleri sayılan ç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
Fonksiyon:
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 tablodan sonra 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
Fonksiyon:
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ış: "00aa00aa-bb11-cc22-dd33-44ee44ee44ee"
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 olduğunda ö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şlevinde listelenen değerlerden herhangi birine sahip değilse** boş bir dize döndürür ve personalTitle özniteliği şirket içi Active Directory sağlama akışına dahil değildir.
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 |
---|---|---|---|
koşul | 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 öznitelik değerini hedef özniteliğe geçirin.
Switch([country],[country],"","Other")
- Desteklenmeyen IIF ifade örnekleri:
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ı | Tamsayı | Alt dizeyi bulmak için başlangıç konumu |
compareType | İsteğe bağlı | Sabit listesi | 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. Bu, öznitelik yoksa veya varsa ancak boş bir dizeyse 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 | Tamsayı | Ç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ılmış olması 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 | Tamsayı | 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 | Tamsayı | Alt dizenin başlaması gereken kaynak dizedeki dizin. Dizedeki ilk karakterin dizini 1, ikinci karakterin dizini 2,vb. olur. |
length | Zorunlu | Tamsayı | 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 |
ø, ø̄, œ̄ | Œ | Ø, Ø̄, Œ̄ | Œ |
ř, 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:
Workday örneği: Workday'den 2020-12-31-08:00 biçimindeki 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/y ss: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 ConnectorPunctuation karakterleri
- Tire ve kısa çizgi gibi DashPunctuation karakterleri (En Dash, Em Dash, çift kısa çizgi vb. karakterler dahil)
- Parantez, küme ayracı, açılı ayraç gibi ç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üçük ve büyüktür işareti, dikey çizgi, tilde, eşittir işareti gibi MathSymbol karakterleri.
- CurrencySymbol karakterleri dolar işareti, cent işareti, pound işareti, euro işareti vb.
- Makro, vurgu, ok başı gibi ModifierSymbol karakterleri.
- 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, burada 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 regexPattern değ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ı. replacementAttributeName adlı kullanıldığında, replacementAttributeName değerinden adlandırılmış regex grubunun değerini ayıklar ve değiştirme değeri olarak döndürüriz. |
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 BusinessTitle
olduğ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.com
oturum 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, etki alanı soneki olmadan oturum açma kimliği oluşturmak için UPN'den gelen etki alanı soneki 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ğerdir. Tüm değerler hedefte zaten varsa, giriş emanet edilir ve neden denetim günlüklerinde günlüğe kaydedilir. Sağlanacak bağımsız değişken sayısının üst sınırı yoktur.
Bu işlev en üst düzeyde olmalı ve iç içe yerleştirilemiyor olmalıdır.
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 şu uygulamalarla kullanılmak üzere desteklenmektedir:
- Active Directory Kullanıcı Sağlama için Workday
- Active Directory Kullanıcı Sağlama için SuccessFactors
- şirket içi Active Directory API temelli sağlama
SelectUniqueValue, diğer sağlama uygulamalarıyla kullanılmak üzere desteklenmez.
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 bu örnekte gösterildiği gibi NormalizeDiacritics işlevini iç içe yerleştirme.
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ılan 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 doldurulur.
İ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.
Dikkat
Sorun: Sağlama hizmeti, switch deyimi kullanılırken hedef sistemde yanlış bir öznitelik değerini null olarak ayarladı.
Çözüm: Beklenmeyen null değerleri önlemek için switch deyimi yerine IIF deyimi kullanın veya switch deyimiyle IgnoreFlowIfNullOrEmpty işlevini kullanın. Örneğin switch([companyName], "External", "Company A", "A", "Company B", "B") IIF([companyName] = "Company A", "A", IIF([companyName] = "Company B", "B", "External") olarak temsil edilmelidir. Varsayılan değerin bir öznitelik olduğu durumlarda IgnoreFlowIfNullOrEmpty(switch([companyName], [companyName], "Company A", "A", "Company B", "B") gibi bir ifade kullanın.
Kök neden: Bu sorun, Microsoft Entra ID'nin kaynak sistem olduğu ve switch deyiminin varsayılan bir değer içerdiği senaryolara özgüdü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 istiyorsanız, 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 | Tamsayı | 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 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: "00aa00aa-bb11-cc22-dd33-44ee44ee44ee"
- ÇıKıŞ: "100064303565343762312333930392343435612626135652636136306362633065346234"
İlgili Makaleler
- SaaS Uygulamalarına Kullanıcı Sağlamayı/Sağlamayı Kaldırmayı Otomatikleştirme
- Kullanıcı Sağlama için Öznitelik Eşlemelerini Özelleştirme
- Kullanıcı Sağlama için Kapsam Belirleme Filtreleri
- Kullanıcıların ve grupların Microsoft Entra Id'den uygulamalara otomatik olarak sağlanmasını etkinleştirmek için SCIM kullanma
- Hesap Sağlama Bildirimleri
- SaaS Uygulamalarını Tümleştirme Öğreticileri Listesi