Bagikan melalui


Referensi untuk menulis ekspresi untuk pemetaan atribut di Microsoft Entra ID

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

Sintaks untuk Ekspresi untuk Pemetaan Atribut diingat 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

AppendAppRoleAssignmentsComplexBitAndCBoolCDateCoalesceConvertToBase64ConvertToUTF8HexCountCStrDateAddDateDiffDateFromNumDefaultDomainFormatDateTimeGuidIgnoreFlowIfNullOrEmptyIIFInStrIsNullIsNullOrEmpty IsPresentIsStringItemJoinLeftLenMidNormalizeDiacriticsNotNowNumFromDate< c32>PCaseRandomStringRedactRedactRemoveDuplicatesReplaceSelectUniqueValueSingleAppRoleAssignmentSplitStripSpacesSwitchToLowerToUpperWord


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 Microsoft Entra ID.

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
Ekspresi Wajib ekspresi 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
Ekspresi Wajib Ekspresi Setiap untai (karakter) yang valid mewakili tanggal/waktu. Untuk format yang didukung, lihat .NET string 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 (email): 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"


KonversiToUTF8Hex

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
nilai Wajib numerik, referensi, atau boolean Bisa berupa nilai numerik, atribut referensi, atau Boolean.

Contoh:CStr([dn])

Menampilkan "cn=Joe,dc=contoso,dc=com"


TambahTanggal

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.
nilai Wajib Angka Jumlah unit yang ingin Anda tambahkan. Bisa positif (mendapatkan tanggal di masa mendatang) atau negatif (mendapatkan tanggal di masa lalu).
tanggalWaktu Wajib Tanggal dan Waktu 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 nilai dateTime (nilai variabel StatusHireDate) keluaran
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 Tanggal dan Waktu DateTime mewakili tanggal yang valid.
tanggal2 Wajib Tanggal dan Waktu 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 keluaran
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
nilai 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.


DefaultDomain

Fungsi: DefaultDomain()

Description: Mengembalikan nama domain terverifikasi default untuk penyewa Microsoft Entra saat ini. Domain terverifikasi default adalah domain dalam daftar domain terverifikasi penyewa yang ditandai sebagai default. Jika tidak ada domain terverifikasi default yang ditemukan, fungsi mengembalikan kesalahan.

Fungsi ini tidak mengambil parameter input.

Parameter:

Nama Diperlukan/Berulang Jenis Catatan
Tidak Fungsi ini tidak menerima parameter apa pun.

Contoh:

Untuk menghasilkan nama prinsipal pengguna menggunakan domain default penyewa:

Join("@", [mailNickname], DefaultDomain())


FormatTanggalWaktu

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"

Panduan

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
Ekspresi 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 atribut SuccessFactors prefix 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 prefix tidak memiliki salah satu nilai yang tercantum dalam fungsi Switch, kemudian ** mengembalikan string kosong dan atribut personalTitle tidak termasuk dalam alur provisi ke Active Directory lokal.

Penting

Jangan gunakan IgnoreFlowIfNullOrEmpty sebagai argumen kondisi ke IIF. Ini adalah pembungkus kontrol aliran, bukan kondisi boolean. Jika Anda memerlukan kedua perilaku, bungkus ekspresi IIF lengkap dengan IgnoreFlowIfNullOrEmpty: IgnoreFlowIfNullOrEmpty(IIF(...)).


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")
  • Jangan gunakan IgnoreFlowIfNullOrEmpty sebagai argumen kondisi ke IIF. IgnoreFlowIfNullOrEmpty adalah pembungkus kontrol alur, bukan kondisi boolean, dan tidak menghasilkan nilai yang dapat dibandingkan dengan IIF. Jika Anda memerlukan kedua perilaku, bungkus ekspresi IIF lengkap dengan IgnoreFlowIfNullOrEmpty.
    • Tidak didukung: IIF(IgnoreFlowIfNullOrEmpty([country]),[country],"Other")
    • Didukung: IgnoreFlowIfNullOrEmpty(IIF([country]="USA",[region],""))

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

Contoh:

IsPresent([directManager])

Mengembalikan True jika atribut directManager tidak null atau kosong.

Perhatian

Jangan gunakan IsPresent, IsNull, atau IsNullOrEmpty sebagai parameter sumber fungsi Switch . Fungsi Switch melakukan perbandingan string peka huruf besar/kecil dan fungsi-fungsi ini mengembalikan nilai boolean, yang mengarah ke perilaku pencocokan yang tidak terduga.

Catatan

Untuk memeriksa apakah atribut memiliki nilai dan menerapkan fallback, gunakan fungsi Switch dengan atribut sebagai sumber dan string kosong sebagai kunci. Contoh: Switch([country], [country], "", "Other") Ekspresi ini mengembalikan nilai negara jika ada, atau "Lainnya" jika atribut null atau kosong.


IsString

Fungsi: IsString(Expression)

Deskripsi: Jika ekspresi dapat dievaluasi ke jenis string, fungsi IsString mengevaluasi ke True.

Parameter:

Nama Diperlukan/Berulang Jenis Catatan
Ekspresi Wajib Ekspresi Ekspresi yang akan dievaluasi

Barang

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

Kiri

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


Len

Fungsi: Len(String)

Deskripsi: Fungsi Len mengembalikan panjang string input. Jika string null atau kosong, maka string akan mengembalikan 0.

Parameter:

Nama Diperlukan/Berulang Jenis Catatan
Tali Wajib String atau Bilangan Bulat Anda dapat meneruskan string atau nilai numerik sebagai input.

Contoh 1

Len("John Doe"), mengembalikan 8
Len(42568), mengembalikan 5
Len(42568.75), mengembalikan 8

Contoh 2
Katakanlah Anda memiliki persyaratan untuk menghasilkan alias akun menggunakan aturan berikut.

  • Alias yang dihasilkan tidak boleh lebih dari 10 karakter.
  • Jika panjang nama belakang kurang dari atau sama dengan 5, maka gunakan nama belakang dan isi karakter yang tersisa dengan nama depan.
  • Jika tidak, jika panjang nama belakang lebih besar dari 5, maka gunakan 9 karakter pertama dari nama belakang dan karakter pertama nama depan.

Dengan fungsi Len, Anda dapat membuat pemetaan ekspresi seperti yang ditunjukkan di bawah ini.

IIF(Len([LastName]) <= 5,  

  Left(Join ("",[LastName],[FirstName]),10),  
  Join("", Mid([LastName],1,9), Mid([FirstName],1,1)) 

)

Sampel input/output

  • INPUT (FirstName): "John", (LastName): "Smith", lalu OUTPUT = "SmithJohn"
  • INPUT (FirstName): "John", (LastName): "Parker", lalu OUTPUT = "ParkerJ"

Pertengahan

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.
panjangnya 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̱, å̄ sebuah Ä, À, Â, Ã, Å, Á, Ą, Ă, Ā, Ā́, Ā̀, Ā̂, Ā̃, Ǟ, Ā̈, Ǡ, A̱, Å̄ Sebuah
æ, ǣ Æ Æ, Ǣ Æ
ç, č, ć, c̄, c̱ c Ç, Č, Ć, C̄, C̱ C
ď, d̄, ḏ d Ď, D̄, Ḏ D
ë, è, é, ê, ę, ě, ė, ē, ḗ, ḕ, ē̂, ē̃, ê̄, e̱, ë̄, e̊̄ e Ë, È, É, Ê, Ę, Ě, Ė, Ē, Ḗ, Ḕ, Ē̂, Ē̃, Ê̄, E̱, Ë̄, E̊̄ E
ğ, ḡ, g̱ g Ğ, Ḡ, G̱ G
ï, î, ì, í, ı, ī, ī́, ī̀, ī̂, ī̃, i̱ saya Ï, Î, Ì, Í, İ, Ī, Ī́, Ī̀, Ī̂, Ī̃, I̱ Saya
ľ, ł, l̄, ḹ, ḻ l Ł, Ľ, L̄, Ḹ, Ḻ L
ñ, ń, ň, n̄, ṉ n Ñ, Ń, Ň, N̄, Ṉ N
ö, ò, ő, õ, ô, ó, ō, ṓ, ṑ, ō̂, ō̃, ȫ, ō̈, ǭ, ȭ, ȱ, o̱ o Ö, Ò, Ő, Õ, Ô, Ó, Ō, Ṓ, Ṑ, Ō̂, Ō̃, Ȫ, Ō̈, Ǭ, Ȭ, Ȱ, O̱ O
ø, ø̄, œ̄ Œ Ø, Ø̄, Œ̄ Œ
ř, r̄, ṟ, ṝ r Ř, R̄, Ṟ, Ṝ R
ß Ss
š, ś, ș, ş, s̄, s̱ s Š, Ś, Ș, Ş, S̄, S̱ S
ť, ț, t̄, ṯ t Ť, Ț, T̄, Ṯ T
ü, ù, û, ú, ů, ű, ū, ū́, ū̀, ū̂, ū̃, u̇̄, ǖ, ṻ, ṳ̄, u̱ u Ü, Ù, Û, Ú, Ů, Ű, Ū, Ū́, Ū̀, Ū̂, Ū̃, U̇̄, Ǖ, Ṻ, Ṳ̄, U̱ Universitas
ÿ, ý, ȳ, ȳ́, ȳ̀, ȳ̃, y̱ y Ÿ, Ý, Ȳ, Ȳ́, Ȳ̀, Ȳ̃, Y̱ Ya
ź, ž, ż, 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"

Tidak

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

Sekarang

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)

Description: 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
nilai 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 source ke huruf yang tepat. Fungsi .NET ToTitleCase mendukung serangkaian kategori karakter Unicode yang komprehensif 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 Masukan Keluaran 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.
Jumlah Minimum 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.
KarakterToAvoid 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).


Redaksi

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

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

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

  • 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

PilihUniqueValue

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 Direktori Aktif Provisi Pengguna
    • SuccessFactors untuk Direktori Aktif Provisi Pengguna
    • Provisi berbasis API ke Active Directory lokal

    SelectUniqueValue tidak didukung untuk digunakan dengan aplikasi provisi lainnya.

  • Fungsi pencarian LDAP yang SelectUniqueValue dilakukan di Active Directory lokal tidak luput 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].

Belah

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.
Pembatas 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 Microsoft Entra ID.

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 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 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")).
Root cause: Masalah ini khusus untuk skenario di mana Microsoft Entra ID 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.
nilai 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 Microsoft Entra ID. 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 (status): "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 termasuk 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 termasuk 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

Function: Word(String,WordNumber,Delimiters)

Description: Fungsi Word mengembalikan word yang terkandung dalam string, berdasarkan parameter yang menjelaskan pemisah yang akan digunakan dan angka word yang akan dikembalikan. 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
Tali 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

Example: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 (email): "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 (nama keluarga): "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 (nama keluarga): "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"

Membangun proxyAddresses dengan alamat email primer dan alias

Atribut proxyAddresses adalah bidang multinilai yang menyimpan alamat email untuk pengguna. Ini menggunakan awalan peka huruf besar/kecil untuk membedakan alamat email utama dari alias:

  • SMTP: (huruf besar) menunjuk alamat email utama . Setiap pengguna memiliki tepat satu.
  • smtp: (huruf kecil) menunjuk alamat email alias (sekunder). Pengguna dapat memiliki beberapa.

Misalnya, pengguna proxyAddresses mungkin berisi: ["SMTP:john.doe@contoso.com", "smtp:jdoe@contoso.com", "smtp:john.doe@contoso.onmicrosoft.com"]

Untuk membangun nilai proxyAddresses dalam pemetaan ekspresi, gunakan Append() untuk menambahkan awalan Join() SMTP:/smtp: untuk membangun alamat email dari bagian, dan Split() untuk mengonversi hasilnya menjadi array multinilai.

Mengatur alamat SMTP utama di proxyAddresses

Gunakan ekspresi ini untuk mengatur satu alamat SMTP utama dari nama depan dan belakang pengguna.

Ekspresi:

Append("SMTP:", Join("@", Join(".", [givenName], [surname]), "contoso.com"))

Sampel input/output:

  • INPUT (givenName): "John"
  • INPUT (nama keluarga): "Doe"
  • OUTPUT: "SMTP:John.Doe@contoso.com"

Mengatur alamat utama dan alias di proxyAddresses

Split(Join(",", …), ",") Gunakan pola untuk membangun beberapa nilai proxyAddresses. Fungsi ini Join() menggabungkan alamat menjadi string yang dibatasi koma, dan Split() mengonversi string tersebut menjadi array multinilai.

Ekspresi:

Split(
    Join(",",
        Append("smtp:", Join("@", NormalizeDiacritics(StripSpaces(Join(".", [givenName], [surname]))), "contoso.onmicrosoft.com")),
        Append("SMTP:", Join("@", NormalizeDiacritics(StripSpaces(Join(".", [givenName], [surname]))), "contoso.com"))
    ),
    ","
)

Sampel input/output:

  • INPUT (givenName): "John"
  • INPUT (nama keluarga): "Doe"
  • OUTPUT: ["smtp:John.Doe@contoso.onmicrosoft.com", "SMTP:John.Doe@contoso.com"]

Catatan

Kasus awalan sangat penting. Gunakan SMTP: (huruf besar) untuk tepat satu alamat utama dan smtp: (huruf kecil) untuk semua alamat alias. Menggunakan kasus yang salah dapat menyebabkan perilaku tak terduga dengan Exchange Online dan layanan berkemampuan email lainnya.

Untuk skenario proxyAddresses yang lebih kompleks dengan logika bersyarat berdasarkan departemen, perusahaan, atau divisi, lihat: