Referensi untuk menulis ekspresi untuk pemetaan atribut di ID Microsoft Entra
Saat Anda mengonfigurasi provisi ke aplikasi SaaS, salah satu jenis pemetaan atribut yang dapat Anda tentukan adalah pemetaan ekspresi. Untuk pemetaan ini, Anda harus menulis ekspresi seperti skrip yang memungkinkan Anda mengubah data pengguna ke dalam format yang lebih dapat diterima untuk aplikasi SaaS.
Gambaran umum sintaksis
Sintaksis untuk Ekspresi untuk Pemetaan Atribut mengingatkan pada fungsi Visual Basic for Applications (VBA).
Seluruh ekspresi harus ditentukan dalam hal fungsi, yang terdiri dari nama yang diikuti oleh argumen dalam tanda kurung: FunctionName(
<<argument 1>>
,<<argument N>>
)Anda dapat menumpuk fungsi satu sama lain. Misalnya: FunctionOne(FunctionTwo(
<<argument1>>
))Anda dapat meneruskan tiga jenis argumen ke dalam fungsi:
- Atribut, yang harus diapit dalam kurung siku. Misalnya: [attributeName]
- Konstanta string, yang harus diapit dalam tanda kutip ganda. Misalnya: "Amerika Serikat"
- Fungsi Lainnya. Misalnya: FunctionOne(
<<argument1>>
, FunctionTwo(<<argument2>>
))
Untuk konstanta string, jika Anda membutuhkan backslash ( \ ) atau tanda kutip ( " ) dalam string, harus di-escape dengan simbol backslash ( \ ). Misalnya: "Nama perusahaan: \"Contoso\""
Sintaksisnya peka huruf besar/kecil, yang harus dipertimbangkan saat mengetiknya sebagai string dalam fungsi vs menyalin dan menempelkannya langsung dari sini.
Daftar Fungsi
AppendAppRoleAssignmentsComplexBitAndCBoolCDateCoalesceConvertToBase64ConvertToUTF8HexCountCStrDateAddDateDiffDateFromNumFormatDateTimeGuidIgnoreFlowIfNullOrEmptyIIFInStrIsNullIsNullOrEmptyIsPresentIsStringItemJoinLeftMidNormalizeDiacriticsNotNowNumFromDatePCaseRandomStringRedactRemoveDuplicatesReplaceSelectUniqueValueSingleAppRoleAssignmentSplitStripSpacesSwitchToLowerToUpperWord
Lampirkan
Fungsi: Append(source, suffix)
Deskripsi: Mengambil nilai string sumber dan menambahkan akhiran ke akhir.
Parameter:
Nama | Diperlukan/Berulang | Jenis | Catatan |
---|---|---|---|
sumber | Wajib | String | Biasanya nama atribut dari objek sumber. |
akhiran | Wajib | String | String yang ingin Anda tambahkan ke akhir nilai sumber. |
Menambahkan akhiran konstanta ke nama pengguna
Contoh: Jika Anda menggunakan Salesforce Sandbox, Anda mungkin perlu menambahkan akhiran lain ke semua nama pengguna Anda sebelum menyinkronkannya.
Ekspresi:Append([userPrincipalName], ".test")
Sampel input/output:
- INPUT: (userPrincipalName): "John.Doe@contoso.com"
- OUTPUT: "John.Doe@contoso.com.test"
AppRoleAssignmentsComplex
Fungsi: AppRoleAssignmentsComplex([appRoleAssignments])
Deskripsi: Digunakan untuk mengonfigurasi beberapa peran untuk pengguna. Untuk penggunaan terperinci, lihat Tutorial - Menyesuaikan pemetaan atribut provisi pengguna untuk aplikasi SaaS di ID Microsoft Entra.
Parameter:
Nama | Diperlukan/Berulang | Jenis | Catatan |
---|---|---|---|
[appRoleAssignments] | Wajib | String | Objek [appRoleAssignments]. |
BitAnd
Fungsi: BitAnd(value1, value2)
Deskripsi: Fungsi ini mengonversi kedua parameter ke representasi biner dan menetapkan bit ke:
- 0 - jika salah satu atau kedua bit terkait dalam value1 dan value2 adalah 0
- 1 - jika kedua bit terkait adalah 1.
Dengan kata lain, Dengan kata lain, 0 ditampilkan dalam semua kasus kecuali saat bit yang sesuai dari kedua parameter adalah 1.
Parameter:
Nama | Diperlukan/Berulang | Jenis | Catatan |
---|---|---|---|
value1 | Wajib | Nomor | Nilai numerik yang seharusnya diberi AND dengan value2 |
value2 | Wajib | Nomor | Nilai numerik yang seharusnya diberi AND dengan value1 |
Contoh:BitAnd(&HF, &HF7)
11110111 AND 00000111 = 00000111 sehingga BitAnd
menampilkan 7, nilai biner 00000111.
CBool
Fungsi:CBool(Expression)
Deskripsi:CBool
menampilkan boolean berdasarkan ekspresi yang dievaluasi. Jika ekspresi mengevaluasi ke nilai bukan nol, CBool
menampilkan True, jika tidak, menampilkan False.
Parameter:
Nama | Diperlukan/Berulang | Jenis | Catatan |
---|---|---|---|
Expression | Wajib | expression | Ekspresi valid apa pun |
Contoh:CBool([attribute1] = [attribute2])
Menampilkan nilai True jika kedua atribut memiliki nilai yang sama.
CDate
Fungsi:
CDate(expression)
Deskripsi:
Fungsi CDate mengembalikan DateTime UTC dari string. DateTime bukan jenis atribut asli tetapi dapat digunakan dalam fungsi tanggal seperti FormatDateTime dan DateAdd.
Parameter:
Nama | Diperlukan/Berulang | Jenis | Catatan |
---|---|---|---|
Expression | Wajib | Ekspresi | Setiap untai (karakter) yang valid mewakili tanggal/waktu. Untuk format yang didukung, lihat .NET untai (karakter) format tanggal dan waktu kustom. |
Keterangan:
String yang dikembalikan selalu dalam waktu UTC dan mengikuti format M/d/yyyy h:mm:ss tt.
Contoh 1:
CDate([StatusHireDate])
Sampel input/output:
- INPUT (StatusHireDate): "2020-03-16-07:00"
- OUTPUT: "16/3/2020 7:00:00 AM" <-- Perhatikan UTC yang setara dengan DateTime di atas dikembalikan
Contoh 2:
CDate("2021-06-30+08:00")
Sampel input/output:
- INPUT: "2021-06-30+08:00"
- OUTPUT: "29/6/2021 4:00:00 PM" <-- Perhatikan UTC yang setara dengan DateTime di atas dikembalikan
Contoh 3:
CDate("2009-06-15T01:45:30-07:00")
Sampel input/output:
- INPUT: "2009-06-15T01:45:30-07:00"
- OUTPUT: "15/6/2009 8:45:30 AM" <-- Perhatikan UTC yang setara dengan DateTime di atas dikembalikan
Coalesce
Fungsi: Coalesce(source1, source2, ..., defaultValue)
Deskripsi: Mengembalikan nilai sumber pertama yang bukan NULL. Jika semua argumen null dan defaultValue ada, defaultValue dikembalikan. Jika semua argumen NULL dan defaultValue tidak ada, Coalesce mengembalikan NULL.
Parameter:
Nama | Diperlukan/Berulang | Jenis | Catatan |
---|---|---|---|
source1 … sourceN | Wajib | String | Diperlukan, frekuensi variabel. Biasanya nama atribut dari objek sumber. |
defaultValue | Opsional | String | Nilai default yang akan digunakan saat semua nilai sumber adalah NULL. Bisa berupa string kosong (""). |
Mengalirkan nilai email jika bukan NULL, jika tidak, mengalirkan userPrincipalName
Contoh: Anda ingin mengalirkan atribut email jika ada. Jika tidak, Anda ingin mengalirkan nilai userPrincipalName sebagai gantinya.
Ekspresi:Coalesce([mail],[userPrincipalName])
Sampel input/output:
- INPUT (mail): NULL
- INPUT (userPrincipalName): "John.Doe@contoso.com"
- OUTPUT: "John.Doe@contoso.com"
ConvertToBase64
Fungsi: ConvertToBase64(source)
Deskripsi: Fungsi ConvertToBase64 mengonversi string menjadi string Unicode base64.
Parameter:
Nama | Diperlukan/Berulang | Jenis | Catatan |
---|---|---|---|
sumber | Wajib | String | String yang akan dikonversi ke base 64 |
Contoh:ConvertToBase64("Hello world!")
Mengembalikan "SABlAGwAbABvACAAdwBvAHIAbABkACEA"
ConvertToUTF8Hex
Fungsi: ConvertToUTF8Hex(source)
Deskripsi: Fungsi ConvertToUTF8Hex mengonversi string menjadi nilai yang dikodekan UTF8 Hex.
Parameter:
Nama | Diperlukan/Berulang | Jenis | Catatan |
---|---|---|---|
sumber | Wajib | String | String yang akan dikonversi ke UTF8 Hex |
Contoh:ConvertToUTF8Hex("Hello world!")
Mengembalikan 48656C6C6F20776F726C6421
Hitung
Fungsi: Count(attribute)
Deskripsi: Fungsi Count mengembalikan jumlah elemen dalam atribut multinilai.
Parameter:
Nama | Diperlukan/Berulang | Jenis | Catatan |
---|---|---|---|
atribut | Wajib | atribut | Atribut multinilai yang memiliki elemen dihitung |
Cstr
Fungsi: CStr(value)
Deskripsi: Fungsi CStr mengonversi nilai menjadi jenis data string.
Parameter:
Nama | Diperlukan/Berulang | Jenis | Catatan |
---|---|---|---|
value | Wajib | numerik, referensi, atau boolean | Bisa berupa nilai numerik, atribut referensi, atau Boolean. |
Contoh:CStr([dn])
Menampilkan "cn=Joe,dc=contoso,dc=com"
DateAdd
Fungsi:
DateAdd(interval, value, dateTime)
Deskripsi:
Mengembalikan string tanggal/waktu yang menunjukkan tanggal saat interval waktu tertentu ditambahkan. Tanggal yang dikembalikan adalah dalam format: M/h/yyyy h:mm:ss tt.
Parameter:
Nama | Diperlukan/Berulang | Jenis | Catatan |
---|---|---|---|
interval | Wajib | String | Interval waktu yang ingin Anda tambahkan. Lihat nilai yang diterima setelah tabel ini. |
value | Wajib | Number | Jumlah unit yang ingin Anda tambahkan. Bisa positif (mendapatkan tanggal di masa mendatang) atau negatif (mendapatkan tanggal di masa lalu). |
tanggalWaktu | Wajib | DateTime | DateTime mewakili tanggal di mana interval ditambahkan. |
Saat meneruskan string tanggal sebagai input, gunakan fungsi CDate untuk membungkus string tanggalwaktu. Untuk mendapatkan waktu sistem di UTC, gunakan fungsi Now .
Untai (karakter) interval harus memiliki salah satu nilai berikut:
- Tahun yyyy
- m Bulan
- d Hari
- ww Minggu
- h Jam
- n Menit
- s Detik
Contoh 1: Hasilkan nilai tanggal berdasarkan StatusHireDate yang masuk dari Workday
DateAdd("d", 7, CDate([StatusHireDate]))
Contoh | interval | value | dateTime (nilai variabel StatusHireDate) | output |
---|---|---|---|---|
Tambahkan 7 hari untuk tanggal sewa | "h" | 7 | 16-03-2012-07:00 | 23/3/2012 PUKUL 7:00:00 |
Dapatkan tanggal sepuluh hari sebelum tanggal sewa | "h" | 10- | 16-03-2012-07:00 | 6/3/2012 PUKUL 7:00:00 |
Tambahkan dua minggu untuk tanggal sewa | "mm" | 2 | 16-03-2012-07:00 | 30/3/2012 PUKUL 7:00:00 |
Tambahkan sepuluh bulan untuk tanggal sewa | "b" | 10 | 16-03-2012-07:00 | 16/1/2013 PUKUL 7:00:00 |
Tambahkan dua tahun untuk tanggal sewa | "tttt" | 2 | 16-03-2012-07:00 | 16/3/2014 PUKUL 7:00:00 |
DateDiff
Fungsi:
DateDiff(interval, date1, date2)
Deskripsi:
Fungsi ini menggunakan parameter interval untuk mengembalikan angka yang menunjukkan perbedaan antara dua tanggal input. Fungsi ini mengembalikan
- angka positif jika date2 > date1,
- angka negatif jika date2 < date1,
- 0 jika tanggal2 == tanggal1
Parameter:
Nama | Diperlukan/Opsional | Jenis | Catatan |
---|---|---|---|
interval | Wajib | String | Interval waktu yang digunakan untuk menghitung perbedaan. |
tanggal1 | Wajib | DateTime | DateTime mewakili tanggal yang valid. |
tanggal2 | Wajib | DateTime | DateTime mewakili tanggal yang valid. |
Saat meneruskan string tanggal sebagai input, gunakan fungsi CDate untuk membungkus string tanggalwaktu. Untuk mendapatkan waktu sistem di UTC, gunakan fungsi Now .
Untai (karakter) interval harus memiliki salah satu nilai berikut:
- Tahun yyyy
- m Bulan
- d Hari
- ww Minggu
- h Jam
- n Menit
- s Detik
Contoh 1: Bandingkan tanggal saat ini dengan tanggal sewa dari Workday dengan interval yang berbeda
DateDiff("d", Now(), CDate([StatusHireDate]))
Contoh | interval | tanggal1 | tanggal2 | output |
---|---|---|---|---|
Perbedaan positif dalam hari antara dua tanggal | d | 18-08-2021+08:00 | 31-08-2021+08:00 | 13 |
Perbedaan negatif dalam hari antara dua tanggal | d | 25/8/2021 17.41.18 | 16-03-2012-07:00 | -3449 |
Perbedaan dalam minggu antara dua tanggal | ww | 25/8/2021 17.41.18 | 16-03-2012-07:00 | -493 |
Perbedaan dalam bulan antara dua tanggal | m | 25/8/2021 17.41.18 | 16-03-2012-07:00 | -113 |
Perbedaan dalam tahun antara dua tanggal | yyyy | 25/8/2021 17.41.18 | 16-03-2012-07:00 | -9 |
Perbedaan saat kedua tanggal tersebut sama | d | 31-08-2021+08:00 | 31-08-2021+08:00 | 0 |
Perbedaan dalam jam antara dua tanggal | h | 24-08-2021 | 25-08-2021 | 24 |
Perbedaan dalam menit antara dua tanggal | n | 24-08-2021 | 25-08-2021 | 1440 |
Perbedaan dalam hitungan detik antara dua tanggal | s | 24-08-2021 | 25-08-2021 | 86400 |
Contoh 2: Gabungkan DateDiff dengan fungsi IIF untuk mengatur nilai atribut
Jika akun Aktif di Workday, atur atribut accountEnabled pengguna ke Benar hanya jika tanggal kontrak dalam lima hari ke depan.
Switch([Active], ,
"1", IIF(DateDiff("d", Now(), CDate([StatusHireDate])) > 5, "False", "True"),
"0", "False")
DateFromNum
Fungsi: DateFromNum(value)
Deskripsi: Fungsi DateFromNum mengonversi nilai dalam format tanggal AD menjadi jenis DateTime.
Parameter:
Nama | Diperlukan/Berulang | Jenis | Catatan |
---|---|---|---|
value | Wajib | Tanggal | AD Date yang akan dikonversi menjadi jenis DateTime |
Contoh:DateFromNum([lastLogonTimestamp])
DateFromNum(129699324000000000)
Menampilkan DateTime yang mewakili 1 Januari 2012 pukul 23.00.
FormatDateTime
Fungsi: FormatDateTime(source, dateTimeStyles, inputFormat, outputFormat)
Deskripsi: Mengambil string tanggal dari satu format dan mengonversinya menjadi format yang berbeda.
Parameter:
Nama | Diperlukan/Berulang | Jenis | Catatan |
---|---|---|---|
sumber | Wajib | String | Biasanya nama atribut dari objek sumber. |
dateTimeStyles | Opsional | String | Gunakan parameter ini untuk menentukan opsi pemformatan yang menyesuaikan penguraian string untuk beberapa metode penguraian tanggal dan waktu. Untuk nilai yang didukung, lihat dokumen DateTimeStyles. Jika dibiarkan kosong, nilai default yang digunakan adalah DateTimeStyles.RoundtripKind, DateTimeStyles.AllowLeadingWhite, DateTimeStyles.AllowTrailingWhite |
inputFormat | Wajib | String | Format yang diharapkan dari nilai sumber. Untuk format yang didukung, lihat .NET string format tanggal dan waktu kustom. |
outputFormat | Wajib | String | Format tanggal keluaran. |
Tanggal keluaran sebagai string dalam format tertentu
Contoh: Anda ingin mengirim tanggal ke aplikasi SaaS seperti ServiceNow dalam format tertentu. Anda dapat mempertimbangkan untuk menggunakan ekspresi berikut.
Ekspresi:
FormatDateTime([extensionAttribute1], , "yyyyMMddHHmmss.fZ", "yyyy-MM-dd")
Sampel input/output:
- INPUT (extensionAttribute1): "20150123105347.1Z"
- OUTPUT: "2015-01-23"
Guid
Fungsi: Guid()
Deskripsi: Fungsi Guid menghasilkan GUID acak baru
Contoh:
Guid()
Sampel output: "00aa00aa-bb11-cc22-dd33-44ee44ee44ee"
IgnoreFlowIfNullOrEmpty
Fungsi: IgnoreFlowIfNullOrEmpty(expression)
Deskripsi: Fungsi IgnoreFlowIfNullOrEmpty menginstruksikan layanan provisi untuk mengabaikan atribut dan menghilangkannya dari aliran jika fungsi atau atribut terlampir adalah NULL atau kosong.
Parameter:
Nama | Diperlukan/Berulang | Jenis | Catatan |
---|---|---|---|
Expression | Wajib | Ekspresi | Ekspresi yang akan dievaluasi |
Contoh 1: Jangan mengalirkan atribut jika null
IgnoreFlowIfNullOrEmpty([department])
Ekspresi di atas menghilangkan atribut departemen dari alur provisi jika null atau kosong.
Contoh 2: Jangan mengalirkan atribut jika pemetaan ekspresi bernilai untai (karakter) kosong atau null
Katakanlah awalan atribut SuccessFactors dipetakan ke atribut Active Directory lokal personalTitle menggunakan pemetaan ekspresi berikut:
IgnoreFlowIfNullOrEmpty(Switch([prefix], "", "3443", "Dr.", "3444", "Prof.", "3445", "Prof. Dr."))
Ekspresi di atas pertama-tama mengevaluasi fungsi Switch. Jika atribut awalan tidak memiliki nilai apa pun yang tercantum dalam fungsi Switch, maka ** mengembalikan string kosong dan atribut personalTitle tidak disertakan dalam alur provisi ke Active Directory lokal.
IIF
Fungsi: IIF(condition,valueIfTrue,valueIfFalse)
Deskripsi: Fungsi IIF menampilkan salah satu dari sekumpulan nilai yang mungkin berdasarkan kondisi tertentu.
Parameter:
Nama | Diperlukan/Berulang | Jenis | Catatan |
---|---|---|---|
kondisi | Wajib | Variabel atau Ekspresi | Nilai atau ekspresi apa pun yang dapat dievaluasi ke true atau false. |
valueIfTrue | Wajib | Variabel atau String | Jika kondisi mengevaluasi ke true, nilai yang dikembalikan. |
valueIfFalse | Wajib | Variabel atau String | Jika kondisi mengevaluasi ke false, nilai yang dikembalikan. |
Operator perbandingan berikut dapat digunakan dalam kondisi:
- Sama dengan (=) dan tidak sama dengan (<>)
- Lebih besar dari (>) dan lebih besar dari sama dengan (>=)
- Kurang dari (<) dan kurang dari sama dengan (<=)
Contoh: Tetapkan nilai atribut target ke atribut negara sumber jika negara="AS", yang lain tetapkan nilai atribut target ke atribut departemen sumber.
IIF([country]="USA",[country],[department])
Pembatasan yang diketahui
Bagian ini mencakup batasan dan solusi untuk fungsi IIF. Untuk informasi tentang pemecahan masalah pembuatan pengguna, lihat Pembuatan gagal karena nilai null/kosong.
- Fungsi IIF saat ini tidak mendukung operator logis AND dan OR.
- Untuk menerapkan logika AND, gunakan pernyataan IIF bersarang yang dirantai di sepanjang jalur trueValue.
Contoh: Jika negara="AS" dan negara bagian="CA", nilai pengembalian "True", yang lain kembali "False".
IIF([country]="USA",IIF([state]="CA","True","False"),"False")
- Untuk menerapkan logika OR, gunakan pernyataan IIF bersarang yang dirantai di sepanjang jalur falseValue.
Contoh: Jika negara="AS" dan negara bagian="CA", nilai pengembalian "True", yang lain kembali "False".
IIF([country]="USA","True",IIF([state]="CA","True","False"))
- Jika atribut sumber yang digunakan dalam fungsi IIF kosong atau null, pemeriksaan kondisi gagal.
- Contoh ekspresi IIF yang tidak didukung:
IIF([country]="","Other",[country])
IIF(IsNullOrEmpty([country]),"Other",[country])
IIF(IsPresent([country]),[country],"Other")
- Solusi yang disarankan: Gunakan fungsi Alihkan untuk memeriksa nilai kosong/null. Contoh: Jika atribut negara kosong, set nilai "Lainnya". Jika ada, berikan nilai atribut negara ke atribut target.
Switch([country],[country],"","Other")
- Contoh ekspresi IIF yang tidak didukung:
InStr
Fungsi: InStr(value1, value2, start, compareType)
Deskripsi: Fungsi InStr menemukan kemunculan pertama substring dalam string.
Parameter:
Nama | Diperlukan/Berulang | Jenis | Catatan |
---|---|---|---|
value1 | Wajib | String | String yang akan dicari |
value2 | Wajib | String | String yang akan ditemukan |
mulai | Opsional | Bilangan bulat | Posisi awal untuk menemukan substring |
compareType | Opsional | Enum | Dapat berupa vbTextCompare atau vbBinaryCompare |
Contoh:InStr("The quick brown fox","quick")
Mengevaluasi ke 5
InStr("repEated","e",3,vbBinaryCompare)
Mengevaluasi ke 7
IsNull
Fungsi: IsNull(Expression)
Deskripsi: Jika ekspresi mengevaluasi ke Null, fungsi IsNull menampilkan true. Untuk atribut, Null dinyatakan oleh tidak adanya atribut.
Parameter:
Nama | Diperlukan/Berulang | Jenis | Catatan |
---|---|---|---|
Expression | Wajib | Ekspresi | Ekspresi yang akan dievaluasi |
Contoh:IsNull([displayName])
Mengembalikan True jika atribut tidak ada.
IsNullorEmpty
Fungsi: IsNullOrEmpty(Expression)
Deskripsi: Jika ekspresi null atau string kosong, fungsi IsNullOrEmpty menampilkan true. Ini mengevaluasi ke True jika atribut tidak ada atau ada tetapi merupakan string kosong. Inversi dari fungsi ini bernama IsPresent.
Parameter:
Nama | Diperlukan/Berulang | Jenis | Catatan |
---|---|---|---|
Expression | Wajib | Ekspresi | Ekspresi yang akan dievaluasi |
Contoh:IsNullOrEmpty([displayName])
Mengembalikan True jika atribut tidak ada atau merupakan string kosong.
IsPresent
Fungsi: IsPresent(Expression)
Deskripsi: Jika ekspresi mengevaluasi ke string yang bukan Null dan tidak kosong, maka fungsi IsPresent mengembalikan true. Inversi dari fungsi ini bernama IsNullOrEmpty.
Parameter:
Nama | Diperlukan/Berulang | Jenis | Catatan |
---|---|---|---|
Expression | Wajib | Ekspresi | Ekspresi yang akan dievaluasi |
Contoh:Switch(IsPresent([directManager]),[directManager], IsPresent([skiplevelManager]),[skiplevelManager], IsPresent([director]),[director])
IsString
Fungsi: IsString(Expression)
Deskripsi: Jika ekspresi dapat dievaluasi ke jenis string, fungsi IsString mengevaluasi ke True.
Parameter:
Nama | Diperlukan/Berulang | Jenis | Catatan |
---|---|---|---|
Expression | Wajib | Ekspresi | Ekspresi yang akan dievaluasi |
Item
Fungsi: Item(attribute, index)
Deskripsi: Fungsi Item menampilkan satu item dari string/atribut multinilai.
Parameter:
Nama | Diperlukan/Berulang | Jenis | Catatan |
---|---|---|---|
atribut | Wajib | Atribut | Atribut multinilai yang akan dicari |
index | Wajib | Bilangan bulat | Indeks ke item dalam string multinilai |
Contoh:Item([proxyAddresses], 1)
menampilkan item pertama dalam atribut multi-nilai. Indeks 0 tidak boleh digunakan.
Bergabung
Fungsi: Join(separator, source1, source2, …)
Deskripsi: Join() mirip dengan Append(), kecuali dapat menggabungkan beberapa nilai string sumber ke dalam satu string, dan setiap nilai dipisahkan oleh string pemisah .
Jika salah satu nilai sumber adalah atribut multinilai, maka setiap nilai dalam atribut tersebut digabungkan, dipisahkan oleh nilai pemisah.
Parameter:
Nama | Diperlukan/Berulang | Jenis | Catatan |
---|---|---|---|
pemisah | Wajib | String | String yang digunakan untuk memisahkan nilai sumber saat digabungkan menjadi satu string. Bisa berupa "" jika tidak diperlukan pemisah. |
source1 … sourceN | Diperlukan, frekuensi variabel | String | Nilai string yang akan digabungkan. |
Left
Fungsi: Kiri(String, NumChars)
Deskripsi: Fungsi Left menampilkan sejumlah karakter tertentu dari sebelah kiri string. Jika numChars = 0, mengembalikan string kosong. Jika numChars < 0, kembalikan string input. Jika string null, mengembalikan string kosong. Jika string berisi lebih sedikit karakter daripada jumlah yang ditentukan dalam numChars, string yang identik dengan string (yaitu, berisi semua karakter dalam parameter 1) ditampilkan.
Parameter:
Nama | Diperlukan/Berulang | Jenis | Catatan |
---|---|---|---|
String | Wajib | Atribut | String untuk menampilkan karakter dari |
NumChars | Wajib | Bilangan bulat | Angka yang mengidentifikasi jumlah karakter yang akan ditampilkan dari awal (kiri) string |
Contoh:Left("John Doe", 3)
Menampilkan "Joh".
Mid
Fungsi: Mid(source, start, length)
Deskripsi: Menampilkan substring dari nilai sumber. Substring adalah string yang hanya berisi beberapa karakter dari string sumber.
Parameter:
Nama | Diperlukan/Berulang | Jenis | Catatan |
---|---|---|---|
sumber | Wajib | String | Biasanya nama atribut. |
mulai | Wajib | Bilangan bulat | Indeks dalam string sumber tempat substring harus dimulai. Karakter pertama dalam string memiliki indeks 1, karakter kedua memiliki indeks 2, dan sebagainya. |
length | Wajib | Bilangan bulat | Panjang substring. Jika panjang berakhir di luar string sumber , fungsi mengembalikan substring dari indeks awal hingga akhir string sumber . |
NormalizeDiacritics
Fungsi: NormalizeDiacritics(source)
Deskripsi: Memerlukan satu argumen string. Mengembalikan string, tetapi dengan karakter diakritik apa pun yang diganti dengan karakter nondiacritical yang setara. Biasanya digunakan untuk mengonversi nama depan dan nama belakang yang berisi karakter diakritik (tanda aksen) menjadi nilai hukum yang dapat digunakan dalam berbagai pengidentifikasi pengguna seperti nama prinsipal pengguna, nama akun SAM, dan alamat email.
Parameter:
Nama | Diperlukan/Berulang | Jenis | Catatan |
---|---|---|---|
sumber | Wajib | String | Biasanya atribut nama depan atau nama belakang. |
Karakter dengan Diakritik | Karakter yang dinormalisasi | Karakter dengan Diakritik | Karakter yang dinormalisasi |
---|---|---|---|
ä, à, â, ã, å, á, ą, ă, ā, ā́, ā̀, ā̂, ā̃, ǟ, ā̈, ǡ, 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̱ | 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 |
Menghapus diakritik dari string
Contoh: Ganti karakter yang mengandung tanda aksen dengan karakter setara yang tidak mengandung tanda aksen.
Ekspresi: NormalisasiDiacritics([givenName])
Sampel input/output:
- INPUT (givenName): "Zoë"
- OUTPUT: "Zoe"
Not
Fungsi: Not(source)
Deskripsi: Membalik nilai boolean dari sumber. Jika nilai sumber adalah True, menampilkan False. Jika tidak, menampilkan True.
Parameter:
Nama | Diperlukan/Berulang | Jenis | Catatan |
---|---|---|---|
sumber | Wajib | String Boolean | Nilai sumber yang diharapkan adalah "True" atau "False". |
Now
Fungsi: Sekarang()
Deskripsi:
Fungsi Now mengembalikan string yang mewakili DateTime UTC saat ini dalam format M/d/yyyy h:mm:ss tt.
Contoh:Now()
Contoh nilai yang dikembalikan 2/7/2021 3:33:38 PM
NumFromDate
Fungsi: NumFromDate(value)
Deskripsi: Fungsi NumFromDate mengonversi nilai DateTime ke format Direktori Aktif yang diperlukan untuk mengatur atribut seperti accountExpires. Gunakan fungsi ini untuk mengonversi nilai DateTime yang diterima dari aplikasi HR cloud seperti Workday dan SuccessFactors ke representasi AD yang setara.
Parameter:
Nama | Diperlukan/Berulang | Jenis | Catatan |
---|---|---|---|
value | Wajib | String | String waktu tanggal dalam format ISO 8601 . Jika variabel tanggal dalam format yang berbeda, gunakan fungsi FormatDateTime untuk mengonversi tanggal ke format ISO 8601. |
Contoh:
Contoh Workday: Dengan asumsi Anda ingin memetakan atribut ContractEndDate dari Workday, yang dalam format 2020-12-31-08:00 ke bidang accountExpires di AD, berikut cara Anda dapat menggunakan fungsi ini dan mengubah offset zona waktu agar sesuai dengan lokal Anda.
NumFromDate(Join("", FormatDateTime([ContractEndDate], ,"yyyy-MM-ddzzz", "yyyy-MM-dd"), " 23:59:59-08:00"))
Contoh SuccessFactors: Dengan asumsi Anda ingin memetakan atribut endDate dari SuccessFactors, yang dalam format M/d/yyyy hh:mm:ss tt ke bidang accountExpires di AD, berikut cara Anda dapat menggunakan fungsi ini dan mengubah offset zona waktu agar sesuai dengan lokal Anda.
NumFromDate(Join("",FormatDateTime([endDate], ,"M/d/yyyy hh:mm:ss tt","yyyy-MM-dd")," 23:59:59-08:00"))
PCase
Fungsi: PCase(sumber, Pemisah kata)
Keterangan: Fungsi PCase mengubah karakter pertama dari setiap kata yang dipisahkan spasi dalam string menjadi huruf besar, dan semua karakter lainnya diubah menjadi huruf kecil.
Parameter:
Nama | Diperlukan/Opsional | Jenis | Catatan |
---|---|---|---|
sumber | Wajib | String | nilai sumber untuk dikonversi ke huruf yang tepat. |
Pemisah kata | Opsional | String | Tentukan sekumpulan karakter yang digunakan sebagai pemisah kata (misalnya: " ,-'") |
Keterangan:
- Jika parameter wordSeparators tidak ditentukan, maka PCase secara internal memanggil fungsi .NET ToTitleCase untuk mengonversi string sumber ke huruf yang tepat. Fungsi .NET ToTitleCase mendukung satu set lengkap kategori karakter Unicode sebagai pemisah kata.
- Karakter spasi
- Karakter baris baru
- Karakter kontrol seperti CRLF
- Format karakter kontrol
- Karakter ConnectorPunctuation seperti garis bawah
- Karakter DashPunctuation seperti tanda hubung dan tanda hubung (termasuk karakter seperti Garis Putus, Garis Putus Em, tanda hubung ganda, dan sebagainya)
- Karakter OpenPunctuation dan ClosePunctuation yang terjadi berpasangan seperti tanda kurung, kurung kurawal, kurung sudut, dan sebagainya.
- Karakter InitialQuotePunctuation dan FinalQuotePunctuation seperti tanda kutip tunggal, tanda kutip ganda, dan kutipan sudut.
- Karakter OtherPunctuation seperti tanda seru, tanda angka, tanda persen, ampersand, tanda bintang, koma, titik dua, titik dua, dan sebagainya.
- Karakter MathSymbol seperti tanda plus, tanda kurang dari dan lebih besar, garis vertikal, tilde, tanda sama dengan, dan sebagainya.
- Karakter CurrencySymbol seperti tanda dolar, tanda sen, tanda pound, tanda euro, dan sebagainya.
- ModifierSymbol karakter seperti macron, aksen, kepala panah, dan sebagainya.
- Karakter OtherSymbol seperti tanda hak cipta, tanda derajat, tanda terdaftar, dan sebagainya.
- Jika parameter Pemisah kata ditentukan, maka PCase hanya menggunakan karakter yang ditentukan sebagai pemisah kata.
Contoh:
Katakanlah Anda mencari atribut firstName dan lastName dari SAP SuccessFactors dan di HR kedua atribut ini dalam huruf besar. Dengan menggunakan fungsi PCase, Anda dapat mengonversi nama ke huruf yang tepat seperti yang ditunjukkan di sini.
Ekspresi | Input | Output | Catatan |
---|---|---|---|
PCase([firstName]) |
firstName = "PABLO GONSALVES (SECOND)" | "Pablo Gonsalves (Kedua)" | Karena parameter wordSeparators tidak ditentukan, fungsi PCase menggunakan kumpulan karakter pemisah kata default. |
PCase([lastName]," '-") |
lastName = "PINTO-DE'SILVA" | "Pinto-De'Silva" | Fungsi PCase menggunakan karakter dalam parameter Pemisah kata untuk mengidentifikasi kata-kata dan mengubahnya menjadi huruf yang tepat. |
PCase(Join(" ",[firstName],[lastName])) |
firstName = GREGORY, lastName = "JAMES" | "Gregory James" | Anda dapat membuat sarang fungsi Gabung di dalam PCase. Karena parameter wordSeparators tidak ditentukan, fungsi PCase menggunakan kumpulan karakter pemisah kata default. |
RandomString
Fungsi: RandomString(Length, MinimumNumbers, MinimumSpecialCharacters, MinimumCapital, MinimumLowerCase, CharactersToAvoid)
Deskripsi: Fungsi RandomString menghasilkan string acak berdasarkan kondisi yang ditentukan. Karakter yang diizinkan dapat diidentifikasi di sini.
Parameter:
Nama | Diperlukan/Berulang | Jenis | Catatan |
---|---|---|---|
Panjang | Wajib | Number | Panjang total string acak. Panjang total harus lebih besar dari atau sama dengan jumlah MinimumNumbers, MinimumSpecialCharacters, dan MinimumCapital. 256 karakter maks. |
MinimumNumbers | Wajib | Number | Angka minimum dalam string acak. |
MinimumSpecialCharacters | Wajib | Number | Jumlah minimum karakter khusus. |
MinimumCapital | Wajib | Number | Jumlah minimum huruf kapital dalam string acak. |
MinimumLowerCase | Wajib | Number | Jumlah minimum huruf kecil dalam string acak. |
CharactersToAvoid | Opsional | String | Karakter yang akan dikecualikan saat membuat string acak. |
Contoh 1: - Hasilkan string acak tanpa batasan karakter khusus: RandomString(6,3,0,0,3)
Membuat string acak dengan 6 karakter. String berisi 3 angka dan 3 karakter huruf kecil (1a73qt).
Contoh 2: - Hasilkan string acak dengan pembatasan karakter khusus: RandomString(10,2,2,2,1,"?,")
Membuat string acak dengan 10 karakter. String berisi minimum 2 angka, 2 karakter khusus, 2 huruf besar, 1 huruf kecil dan tidak termasuk karakter "?" dan "," (1@!2BaRg53).
Redact
Fungsi: Redact()
Deskripsi: Fungsi Redact menggantikan nilai atribut dengan "[Redact]" harfiah string di log provisi.
Parameter:
Nama | Diperlukan/Berulang | Jenis | Catatan |
---|---|---|---|
atribut/nilai | Wajib | String | Tentukan atribut atau konstanta/string yang akan di-redact dari log. |
Contoh 1: Redaksi atribut: Redact([userPrincipalName])
Menghapus userPrincipalName dari log provisi.
Contoh 2: Redaksi string: Redact("StringToBeRedacted")
Menghapus string konstanta dari log provisi.
Contoh 3: Redaksi string acak: Redact(RandomString(6,3,0,0,3))
Menghapus string acak dari log provisi.
RemoveDuplicates
Fungsi: RemoveDuplicates(attribute)
Deskripsi: Fungsi RemoveDuplicates mengambil string multinilai dan memastikan setiap nilai unik.
Parameter:
Nama | Diperlukan/Berulang | Jenis | Catatan |
---|---|---|---|
atribut | Wajib | Atribut Multinilai | Atribut multinilai yang memiliki duplikat dihapus |
Contoh:RemoveDuplicates([proxyAddresses])
Mengembalikan atribut proxyAddress yang dibersihkan di mana semua nilai duplikat dihapus.
Menggantikan
Fungsi: Replace(source, oldValue, regexPattern, regexGroupName, replacementValue, replacementAttributeName, template)
Deskripsi: Mengganti nilai dalam string dengan cara yang peka huruf besar/kecil. Fungsi ini berperilaku berbeda tergantung pada parameter yang disediakan:
Saat oldValue dan replacementValue disediakan:
- Mengganti semua kemunculan oldValue di sumber dengan replacementValue
Saat oldValue dan template disediakan:
- Mengganti semua kemunculan OldValue dalam templat dengan nilai sumber
Saat regexPattern dan replacementValue disediakan:
- Fungsi ini menerapkan regexPattern ke string sumber dan Anda dapat menggunakan nama grup regex untuk membuat string untuk replacementValue
Catatan
Untuk mempelajari selengkapnya tentang pengelompokan gagasan regex dan sub-ekspresi bernama, buka Pengelompokan Gagasan dalam Ekspresi Reguler.
Saat regexPattern, regexGroupName, replacementValue disediakan:
- Fungsi ini menerapkan regexPattern ke string sumber dan mengganti semua nilai yang cocok dengan regexGroupName dengan replacementValue
Saat regexPattern, regexGroupName, replacementAttributeName disediakan:
- Jika sumber memiliki nilai, sumber akan dikembalikan
- Jika sumber tidak memiliki nilai, fungsi menerapkan regexPattern ke replacementAttributeName dan mengembalikan nilai yang cocok dengan regexGroupName
Parameter:
Nama | Diperlukan/Berulang | Jenis | Catatan |
---|---|---|---|
sumber | Wajib | String | Biasanya nama atribut dari objek sumber. |
oldValue | Opsional | String | Nilai yang akan digantikan di sumber atau templat. |
regexPattern | Opsional | String | Pola regex untuk nilai yang akan digantikan di sumber. Jika replacementAttributeName digunakan, regexPattern diterapkan untuk mengekstrak nilai dari replacementAttributeName. |
regexGroupName | Opsional | String | Nama grup di dalam regexPattern. Saat bernama replacementAttributeName digunakan, kami mengekstrak nilai grup regex bernama dari replacementAttributeName dan mengembalikannya sebagai nilai pengganti. |
replacementValue | Opsional | String | Nilai baru untuk mengganti nilai lama. |
replacementAttributeName | Opsional | String | Nama atribut yang akan digunakan untuk nilai pengganti |
templat | Opsional | String | Ketika nilai templat disediakan, kami mencari oldValue di dalam templat dan menggantinya dengan nilai sumber . |
Mengganti karakter menggunakan ekspresi reguler
Contoh 1: Menggunakan oldValue dan replacementValue untuk mengganti seluruh untai (karakter) sumber dengan untai (karakter) lain.
Sebagai contoh sistem HR Anda memiliki atribut BusinessTitle
. Sebagai bagian dari perubahan nama jabatan baru-baru ini, perusahaan Anda ingin memperbarui siapa pun dengan nama jabatan "Pengembang Produk" menjadi "Teknisi Perangkat Lunak".
Kemudian dalam kasus ini, Anda dapat menggunakan ekspresi berikut dalam pemetaan atribut Anda.
Replace([BusinessTitle],"Product Developer", , , "Software Engineer", , )
- sumber:
[BusinessTitle]
- oldValue: "Pengembang Produk"
- replacementValue: "Teknisi Perangkat Lunak"
- Output ekspresi: Teknisi Perangkat Lunak
Contoh 2: Menggunakan oldValue dan templat untuk memasukkan untai (karakter) sumber ke untai (karakter) templatized lain.
Parameter oldValue tidak tepat dalam skenario ini. Ini sebenarnya adalah nilai yang diganti.
Katakanlah Anda ingin selalu menghasilkan ID masuk dalam format <username>@contoso.com
. Ada atribut sumber yang disebut UserID dan Anda ingin nilai tersebut <username>
digunakan untuk bagian ID masuk.
Kemudian dalam kasus ini, Anda dapat menggunakan ekspresi berikut dalam pemetaan atribut Anda.
Replace([UserID],"<username>", , , , , "<username>@contoso.com")
- source:
[UserID]
= "jsmith" - oldValue: "
<username>
" - templat: "
<username>@contoso.com
" - Ekspresi output: "jsmith@contoso.com"
Contoh 3: Menggunakan regexPattern dan replacementValue untuk mengekstrak sebagian dari untai (karakter) sumber dan menggantinya dengan untai (karakter) kosong atau nilai kustom yang dibuat menggunakan pola regex atau nama grup regex.
Sebagai contoh Anda memiliki atribut sumber telephoneNumber
yang memiliki komponen country code
dan phone number
dipisahkan oleh karakter spasi. Misalnya, +91 9998887777
Kemudian dalam hal ini, Anda dapat menggunakan ekspresi berikut dalam pemetaan atribut Anda untuk mengekstrak nomor telepon 10 digit.
Replace([telephoneNumber], , "\\+(?<isdCode>\\d* )(?<phoneNumber>\\d{10})", , "${phoneNumber}", , )
- source:
[telephoneNumber]
= "+91 9998887777" - regexPattern: "
\\+(?<isdCode>\\d* )(?<phoneNumber>\\d{10})
" - replacementValue: "
${phoneNumber}
" - Output Ekspresi: 9998887777
Anda juga dapat menggunakan pola ini untuk menghapus karakter dan menciutkan untai (karakter). Misalnya, ekspresi berikut menghapus tanda kurung, tanda hubung, dan karakter spasi dalam string nomor ponsel dan hanya mengembalikan digit.
Replace([mobile], , "[()\\s-]+", , "", , )
- sumber:
[mobile] = "+1 (999) 888-7777"
- regexPattern: "
[()\\s-]+
" - replacementValue: "" (untai (karakter) kosong)
- Output Ekspresi: 19998887777
Contoh 4: Menggunakan regexPattern, regexGroupName dan replacementValue untuk mengekstrak sebagian dari untai (karakter) sumber dan menggantinya dengan nilai harfiah lain atau untai (karakter) kosong.
Sebagai contoh sistem sumber Anda memiliki atribut AddressLineData dengan dua komponen nomor jalan dan nama jalan. Sebagai bagian dari pemindahan baru-baru ini, katakanlah nomor jalan alamat berubah, dan Anda hanya ingin memperbarui bagian nomor jalan dari baris alamat. Kemudian dalam kasus ini, Anda dapat menggunakan ekspresi berikut dalam pemetaan atribut Anda untuk mengekstrak nomor jalan.
Replace([AddressLineData], ,"(?<streetNumber>^\\d*)","streetNumber", "888", , )
- source:
[AddressLineData]
= "545 Tremont Street" - regexPattern: "
(?<streetNumber>^\\d*)
" - regexGroupName: "streetNumber"
- replacementValue: "888"
- Output Ekspresi: 888 Tremont Street
Berikut adalah contoh lain di mana akhiran domain dari UPN diganti dengan string kosong untuk menghasilkan ID masuk tanpa akhiran domain.
Replace([userPrincipalName], , "(?<Suffix>@(.)*)", "Suffix", "", , )
- source:
[userPrincipalName]
= "jsmith@contoso.com" - regexPattern: "
(?<Suffix>@(.)*)
" - regexGroupName: "Akhiran"
- replacementValue: "" (untai (karakter) kosong)
- Output Ekspresi: jsmith
Contoh 5: Menggunakan regexPattern, regexGroupName dan replacementAttributeName untuk menangani skenario jika atribut sumber kosong atau tidak memiliki nilai.
Sebagai contoh sistem sumber Anda memiliki atribut telephoneNumber. Jika telephoneNumber kosong, Anda ingin mengekstrak 10 digit dari atribut nomor ponsel. Kemudian dalam kasus ini, Anda dapat menggunakan ekspresi berikut dalam pemetaan atribut Anda.
Replace([telephoneNumber], , "\\+(?<isdCode>\\d* )(?<phoneNumber>\\d{10})", "phoneNumber" , , [mobile], )
- source:
[telephoneNumber]
= "" (string kosong) - regexPattern: "
\\+(?<isdCode>\\d* )(?<phoneNumber>\\d{10})
" - regexGroupName: "phoneNumber"
- replacementAttributeName:
[mobile]
= "+91 8887779999" - Output Ekspresi: 8887779999
Contoh 6: Anda perlu menemukan karakter yang cocok dengan nilai ekspresi reguler dan menghapusnya.
Replace([mailNickname], , "[a-zA-Z_]*", , "", , )
- sumber [mailNickname]
- oldValue: "john_doe72"
- replaceValue: ""
- Output EKspresi: 72
SelectUniqueValue
Fungsi: SelectUniqueValue(uniqueValueRule1, uniqueValueRule2, uniqueValueRule3, …)
Deskripsi: Memerlukan minimal dua argumen, yang merupakan aturan pembuatan nilai unik yang ditentukan menggunakan ekspresi. Fungsi ini mengevaluasi setiap aturan lalu memeriksa nilai yang dihasilkan untuk keunikan di aplikasi/direktori target. Nilai unik pertama yang ditemukan adalah nilai yang dikembalikan. Jika semua nilai sudah ada di target, entri diekskrow, dan alasannya dicatat dalam log audit. Tidak ada batas atas jumlah argumen yang dapat disediakan.
Fungsi ini harus berada di tingkat atas dan tidak dapat ditumpuk.
Fungsi ini tidak dapat diterapkan ke atribut yang memiliki prioritas yang cocok.
Fungsi ini hanya dimaksudkan untuk digunakan dalam pembuatan entri. Saat menggunakannya dengan atribut, atur properti Terapkan Pemetaan ke Hanya selama pembuatan objek.
Fungsi ini saat ini didukung untuk digunakan dengan aplikasi ini:
- Workday untuk Provisi Pengguna Active Directory
- SuccessFactors untuk Provisi Pengguna Azure Active Directory
- Provisi berbasis API ke Active Directory lokal
SelectUniqueValue tidak didukung untuk digunakan dengan aplikasi provisi lainnya.
Pencarian LDAP yang dilakukan fungsi SelectUniqueValue dalam Active Directory lokal tidak lolos dari karakter khusus seperti diakritik. Jika Anda meneruskan string seperti "Jéssica Smith" yang berisi karakter khusus, Anda akan mengalami kesalahan pemrosesan. Menumpuk fungsi NormalizeDiacritics seperti yang ditunjukkan dalam contoh ini untuk menormalkan karakter khusus.
Parameter:
Nama | Diperlukan/Berulang | Jenis | Catatan |
---|---|---|---|
uniqueValueRule1 … uniqueValueRuleN | Setidaknya 2 diperlukan, tidak ada batas atas | String | Daftar aturan pembuatan nilai unik untuk dievaluasi. |
Menghasilkan nilai unik untuk atribut userPrincipalName (UPN)
Contoh: Berdasarkan nama depan, nama tengah, dan nama belakang pengguna, Anda perlu menghasilkan nilai untuk atribut UPN dan memeriksa keunikannya di direktori AD target sebelum menetapkan nilai ke atribut UPN.
Ekspresi:
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")
)
Sampel input/output:
- INPUT (PreferredFirstName): "John"
- INPUT (PreferredLastName): "Smith"
- OUTPUT: "John.Smith@contoso.com" jika nilai UPN John.Smith@contoso.com belum ada di direktori
- OUTPUT: "J.Smith@contoso.com" jika nilai UPN John.Smith@contoso.com sudah ada di direktori
- OUTPUT: "Jo.Smith@contoso.com" jika dua nilai UPN di atas sudah ada di direktori
SingleAppRoleAssignment
Fungsi: SingleAppRoleAssignment([appRoleAssignments])
Deskripsi: Menampilkan satu appRoleAssignment dari daftar semua appRoleAssignments yang ditetapkan kepada pengguna untuk aplikasi tertentu. Fungsi ini diperlukan untuk mengonversi objek appRoleAssignments menjadi string nama peran tunggal. Praktik terbaiknya adalah memastikan bahwa hanya satu appRoleAssignment yang ditetapkan ke satu pengguna pada satu waktu. Fungsi ini tidak didukung dalam skenario di mana pengguna memiliki beberapa penetapan peran aplikasi.
Parameter:
Nama | Diperlukan/Berulang | Jenis | Catatan |
---|---|---|---|
[appRoleAssignments] | Wajib | String | Objek [appRoleAssignments]. |
Split
Fungsi: Split(source, delimiter)
Deskripsi: Memisahkan string menjadi array multinilai, menggunakan karakter pemisah yang ditentukan.
Parameter:
Nama | Diperlukan/Berulang | Jenis | Catatan |
---|---|---|---|
sumber | Wajib | String | Nilai sumber yang akan diperbarui. |
delimiter | Wajib | String | Menentukan karakter yang digunakan untuk memisahkan string (misalnya: ",") |
Memisahkan string menjadi array multinilai
Contoh: Anda perlu mengambil daftar string yang dipisahkan koma, dan membaginya menjadi array yang dapat dicolokkan ke atribut multinilai seperti atribut PermissionSets Salesforce. Dalam contoh ini, daftar set izin diisi dalam extensionAttribute5 di ID Microsoft Entra.
Ekspresi: Split([extensionAttribute5], ",")
Sampel input/output:
- INPUT (extensionAttribute5): "PermissionSetOne, PermissionSetTwo"
- OUTPUT: ["PermissionSetOne", "PermissionSetTwo"]
StripSpaces
Fungsi: StripSpaces(source)
Deskripsi: Menghapus semua karakter spasi (" ") dari string sumber.
Parameter:
Nama | Diperlukan/Berulang | Jenis | Catatan |
---|---|---|---|
sumber | Wajib | String | Nilai sumber yang akan diperbarui. |
Sakelar
Fungsi: Switch(source, defaultValue, key1, value1, key2, value2, …)
Deskripsi: Saat nilai sumber cocok dengan kunci, menampilkan nilai untuk kunci tersebut. Jika nilai sumber tidak cocok dengan kunci apa pun, menampilkan defaultValue. Parameter kunci dan nilai harus selalu berpasangan. Fungsi ini selalu mengharapkan jumlah parameter yang genap. Fungsi tidak boleh digunakan untuk atribut referensial seperti manajer.
Catatan
Fungsi pengalihan melakukan perbandingan untai (karakter) sensitif huruf besar/kecil dari sumber dan nilai kunci . Jika Anda ingin melakukan perbandingan kasus tidak sensitif huruf besar/kecil, normalkan untai (karakter) sumber sebelum melakukan perbandingan menggunakan fungsi ToLower berlapis dan pastikan bahwa semua untai (karakter) kunci menggunakan huruf kecil.
Contoh: Switch(ToLower([statusFlag]), "0", "true", "1", "false", "0")
. Dalam contoh ini, atributstatusFlag
sumber mungkin memiliki nilai ("Benar" / "benar" / "BENAR"). Namun, fungsi Switch selalu mengonversinya menjadi string huruf kecil "true" sebelum perbandingan dengan parameter kunci .
Perhatian
Untuk parameter sumber, jangan gunakan fungsi berlapis IsPresent, IsNull atau IsNullOrEmpty. Sebagai gantinya, gunakan string kosong harfiah sebagai salah satu nilai kunci.
Contoh: Switch([statusFlag], "Default Value", "true", "1", "", "0")
. Dalam contoh ini, jika atribut statusFlag
sumber kosong, fungsi Switch mengembalikan nilai 0.
Perhatian
Masalah: Layanan provisi salah menetapkan nilai atribut ke null dalam sistem target saat menggunakan pernyataan pengalihan.
Resolusi: Gunakan pernyataan IIF alih-alih pernyataan pengalihan untuk mencegah nilai null yang tidak terduga atau gunakan fungsi IgnoreFlowIfNullOrEmpty dengan pernyataan pengalihan. Misalnya, switch([companyName], "External", "Company A", "A", "Company B", "B") harus diwakili sebagai IIF([companyName] = "Company A", "A", IIF([companyName] = "Company B", "B", "External")). Dalam kasus di mana nilai default adalah atribut, gunakan ekspresi seperti IgnoreFlowIfNullOrEmpty(switch([companyName], [companyName], "Company A", "A", "Company B", "B")).
Akar penyebab: Masalah ini khusus untuk skenario di mana ID Microsoft Entra adalah sistem sumber dan pernyataan pengalihan berisi nilai default.
Parameter:
Nama | Diperlukan/Berulang | Jenis | Catatan |
---|---|---|---|
sumber | Wajib | String | Nilai sumber yang akan diperbarui. |
defaultValue | Opsional | String | Nilai default yang akan digunakan saat sumber tidak cocok dengan kunci apa pun. Bisa berupa string kosong (""). |
kunci | Wajib | String | Kunci untuk dibandingkan dengan nilai sumber. |
value | Wajib | String | Nilai pengganti untuk sumber yang cocok dengan kunci. |
Mengganti nilai berdasarkan kumpulan opsi yang sudah ditentukan sebelumnya
Contoh: Tentukan zona waktu pengguna berdasarkan kode status yang disimpan di ID Microsoft Entra. Jika kode status tidak cocok dengan salah satu opsi yang telah ditentukan sebelumnya, gunakan nilai default "Australia/Sydney".
Ekspresi:Switch([state], "Australia/Sydney", "NSW", "Australia/Sydney","QLD", "Australia/Brisbane", "SA", "Australia/Adelaide")
Sampel input/output:
- INPUT (state): "QLD"
- OUTPUT: "Australia/Brisbane"
ToLower
Fungsi: ToLower(source, culture)
Deskripsi: Mengambil nilai string sumber dan mengonversinya ke huruf kecil menggunakan aturan budaya yang ditentukan. Jika tidak ada info budaya yang ditentukan, maka ia menggunakan budaya Invarian.
Jika Anda ingin menetapkan nilai yang ada dalam sistem target ke huruf kecil, perbarui skema untuk aplikasi target Anda dan atur caseExact properti ke 'true' untuk atribut yang Anda minati.
Parameter:
Nama | Diperlukan/Berulang | Jenis | Catatan |
---|---|---|---|
sumber | Wajib | String | Biasanya nama atribut dari objek sumber |
budaya | Opsional | String | Format untuk nama budaya berdasarkan RFC 4646 adalah languagecode2-country/regioncode2, yang mana languagecode2 adalah kode bahasa dua huruf dan country/regioncode2 adalah kode subkultur dua huruf. Contohnya mencakup ja-JP untuk bahasa Jepang (Jepang) dan en-US untuk bahasa Inggris (Amerika Serikat). Dalam kasus di mana kode bahasa dua huruf tidak tersedia, kode tiga huruf yang berasal dari ISO 639-2 digunakan. |
Mengonversi nilai userPrincipalName (UPN) yang dihasilkan menjadi huruf kecil
Contoh: Anda ingin menghasilkan nilai UPN dengan menggabungkan bidang sumber PreferredFirstName dan PreferredLastName dan mengonversi semua karakter menjadi huruf kecil.
ToLower(Join("@", NormalizeDiacritics(StripSpaces(Join(".", [PreferredFirstName], [PreferredLastName]))), "contoso.com"))
Sampel input/output:
- INPUT (PreferredFirstName): "John"
- INPUT (PreferredLastName): "Smith"
- OUTPUT: "john.smith@contoso.com"
ToUpper
Fungsi: ToUpper(source, culture)
Deskripsi: Mengambil nilai string sumber dan mengonversinya ke huruf besar menggunakan aturan budaya yang ditentukan. Jika tidak ada info budaya yang ditentukan, maka ia menggunakan budaya Invarian.
Jika Anda ingin mengatur nilai yang ada dalam sistem target ke huruf besar, perbarui skema untuk aplikasi target Anda dan atur caseExact properti ke 'true' untuk atribut yang Anda minati.
Parameter:
Nama | Diperlukan/Berulang | Jenis | Catatan |
---|---|---|---|
sumber | Wajib | String | Biasanya nama atribut dari objek sumber. |
budaya | Opsional | String | Format untuk nama budaya berdasarkan RFC 4646 adalah languagecode2-country/regioncode2, yang mana languagecode2 adalah kode bahasa dua huruf dan country/regioncode2 adalah kode subkultur dua huruf. Contohnya mencakup ja-JP untuk bahasa Jepang (Jepang) dan en-US untuk bahasa Inggris (Amerika Serikat). Dalam kasus di mana kode bahasa dua huruf tidak tersedia, kode tiga huruf yang berasal dari ISO 639-2 digunakan. |
Word
Fungsi: Word(String,WordNumber,Delimiters)
Deskripsi: Fungsi Word menampilkan kata yang ada dalam string, berdasarkan parameter yang menjelaskan pemisah yang akan digunakan dan nomor kata yang akan ditampilkan. Setiap string karakter dalam string yang dipisahkan oleh salah satu karakter dalam pemisah diidentifikasi sebagai kata:
Jika jumlah < 1, menampilkan string kosong. Jika string null, menampilkan string kosong. Jika string berisi kurang dari kata angka, atau string tidak berisi kata apa pun yang diidentifikasi oleh pemisah, string kosong akan dikembalikan.
Parameter:
Nama | Diperlukan/Berulang | Jenis | Catatan |
---|---|---|---|
String | Wajib | Atribut Multinilai | String untuk menampilkan kata. |
WordNumber | Wajib | Bilangan bulat | Angka yang mengidentifikasi angka kata mana yang harus ditampilkan |
pemisah | Wajib | String | String yang mewakili pemisah yang harus digunakan untuk mengidentifikasi kata |
Contoh:Word("The quick brown fox",3," ")
Menampilkan "brown".
Word("This,string!has&many separators",3,",!&#")
Menampilkan "has".
Contoh
Bagian ini menyediakan lebih banyak contoh penggunaan fungsi ekspresi.
Mengosongkan nama domain yang diketahui
Hapus nama domain yang dikenal dari email pengguna untuk mendapatkan nama pengguna. Misalnya, jika domain adalah "contoso.com", Anda dapat menggunakan ekspresi berikut:
Ekspresi:Replace([mail], "@contoso.com", , ,"", ,)
Sampel input / output:
- INPUT (mail): "john.doe@contoso.com"
- OUTPUT: "john.doe"
Menghasilkan alias pengguna dengan menggabungkan bagian dari nama depan dan belakang
Buat alias pengguna dengan mengambil tiga huruf pertama dari nama depan pengguna dan lima huruf pertama dari nama belakang pengguna.
Ekspresi:Append(Mid([givenName], 1, 3), Mid([surname], 1, 5))
Sampel input/output:
- INPUT (givenName): "John"
- INPUT (surname): "Doe"
- OUTPUT: "JohDoe"
Tambahkan koma antara nama belakang dan nama depan.
Tambahkan koma antara nama belakang dan nama depan.
Ekspresi:Join(", ", "", [surname], [givenName])
Sampel input/output:
- INPUT (givenName): "John"
- INPUT (surname): "Doe"
- OUTPUT: "Doe, John"
Buat ID untuk pengguna berdasarkan ID objek Microsoft Entra mereka. Hapus huruf apa pun dari ID dan tambahkan 1000 di awal.
Ekspresi ini memungkinkan Anda menghasilkan pengidentifikasi untuk pengguna yang dimulai dengan 1000 dan kemungkinan unik.
Ekspresi: Join("", 1000, Replace(ConvertToUTF8Hex([objectId]), , "[a-zA-Z_]*", , "", , ))
Sampel input/output:
- INPUT: "00aa00aa-bb11-cc22-dd33-44ee44ee44ee"
- OUTPUT: "100064303565343762312333930392343435612626135652636136306362633065346234"
Artikel Terkait
- Mengotomatiskan Provisi/Pembatalan Provisi Pengguna ke Aplikasi SaaS
- Menyesuaikan Pemetaan Atribut untuk Provisi Pengguna
- Filter Cakupan untuk Provisi Pengguna
- Menggunakan SCIM untuk mengaktifkan provisi otomatis pengguna dan grup dari ID Microsoft Entra ke aplikasi
- Pemberitahuan Provisi Akun
- Daftar Tutorial Cara Mengintegrasikan Aplikasi SaaS