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:

    1. Atribut, yang harus diapit dalam kurung siku. Misalnya: [attributeName]
    2. Konstanta string, yang harus diapit dalam tanda kutip ganda. Misalnya: "Amerika Serikat"
    3. 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 Expression 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 menampilkan jumlah elemen dalam atribut multinilai

Parameter:

Nama Diperlukan/Berulang Jenis Catatan
atribut Wajib atribut Atribut multinilai yang akan menghitung elemen

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 untai (karakter) tanggal/waktu yang mewakili tanggal di mana interval waktu tertentu telah 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 di bawah tabel ini.
value Wajib Angka 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 Date 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: "1088051a-cd4b-4288-84f8-e02042ca72bc"


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 Expression Ekspresi yang akan dievaluasi

Contoh 1: Jangan mengalirkan atribut jika itu null
IgnoreFlowIfNullOrEmpty([department])
Ekspresi di atas akan menghapus atribut departemen dari aliran 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 Switch akan mengembalikan string kosong dan atribut personalTitle tidak akan 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])

Batasan umum

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, teruskan nilai atribut negara untuk atribut target.
      • Switch([country],[country],"","Other")

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 Expression 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. Untuk atribut, ini akan mengevaluasi ke nilai 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 Expression 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 Expression 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 Expression 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 akan dipisahkan oleh string pemisah.

Jika salah satu nilai sumber merupakan atribut multinilai, maka setiap nilai dalam atribut tersebut akan digabungkan, dipisahkan oleh nilai pemisah.

Parameter:

Nama Diperlukan/Berulang Jenis Catatan
pemisah Wajib String String yang digunakan untuk memisahkan nilai sumber saat disusun 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 garis putus dan tanda hubung (termasuk karakter seperti Garis putus En, Garis putus Em, tanda hubung ganda, dll.)
    • Karakter OpenPunctuation dan ClosePunctuation yang terjadi berpasangan seperti kurung, braket keriting, braket sudut, dll.
    • Karakter InitialQuotePunctuation dan FinalQuotePunctuation seperti kutipan tunggal, kutipan ganda, dan kutipan sudut.
    • Karakter Punctuation lainnya seperti tanda seru, tanda angka, tanda persen, ampersan, tanda bintang, koma, berhenti penuh, titik dua, semi-titik dua, dll.
    • Karakter MathSymbol seperti tanda plus, kurang dari dan lebih besar dari tanda, garis vertikal, tilde, sama dengan tanda, dll.
    • Karakter CurrencySymbol seperti tanda dolar, tanda sen, tanda pound, tanda euro, dll.
    • Karakter ModifierSymbol seperti makron, aksen, kepala panah, dll.
    • Karakter Symbol lainnya seperti tanda hak cipta, tanda gelar, tanda terdaftar, dll.
  • 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 bawah ini.

Expression Input Hasil 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 Angka Panjang total string acak. Panjang total harus lebih besar dari atau sama dengan jumlah MinimumNumbers, MinimumSpecialCharacters, dan MinimumCapital. 256 karakter maks.
MinimumNumbers Wajib Angka Angka minimum dalam string acak.
MinimumSpecialCharacters Wajib Angka Jumlah minimum karakter khusus.
MinimumCapital Wajib Angka Jumlah minimum huruf kapital dalam string acak.
MinimumLowerCase Wajib Angka 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, kita akan 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 Saat nilai templat disediakan, kita akan 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")

  • sumber:[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}", , )

  • sumber:[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 di bawah ini menghapus tanda kurung, tanda hubung, dan karakter spasi dalam untai (karakter) angka seluler 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", , )

  • sumber:[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", "", , )

  • sumber:[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], )

  • sumber:[telephoneNumber] = "" (untai (karakter) 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 yang akan ditampilkan. Jika semua nilai sudah ada di target, entri akan diekskrow, dan alasannya dicatat dalam log audit. Tidak ada batas atas untuk jumlah argumen yang dapat disediakan.

  • Fungsi ini harus berada di level teratas dan tidak dapat disarangkan.
  • Fungsi ini tidak dapat diterapkan pada 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 hanya didukung untuk "Provisi Pengguna Workday ke Direktori Aktif" dan "Provisi Pengguna SuccessFactors ke Direktori Aktif". Tidak dapat 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 pada contoh di bawah 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 akan 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 telah diisi di 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.

Mengalihkan

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, atributstatusFlagsumber mungkin memiliki nilai ("Benar" / "benar" / "BENAR"). Namun, fungsi Pengalihan akan selalu mengubahnya menjadi untai (karakter) huruf kecil "benar" sebelum dibandingkan 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 akan mengembalikan nilai 0.

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 akan menggunakan budaya Invariant.

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 akan menggunakan budaya Invariant.

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.

Kata

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 ID 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: "d05e47b1-3909-445a-ba5e-ca60cbc0e4b4"
  • OUTPUT: "100064303565343762312333930392343435612626135652636136306362633065346234"