Tabel ModuleSubstitution

Tabel ModuleSubstitution menentukan bidang database modul yang dapat dikonfigurasi dan menyediakan templat untuk konfigurasi setiap bidang. Alat pengguna atau penggabungan dapat meminta tabel ini untuk menentukan operasi konfigurasi apa yang akan dilakukan. Tabel ini tidak digabungkan ke dalam database target.

Tabel berikut ini tidak boleh berisi bidang yang dapat dikonfigurasi dan tidak boleh tercantum dalam tabel ini:

Tabel ModuleSubstitution

Tabel ModuleConfiguration

Tabel ModuleExclusion

Tabel ModuleSignature

Tabel ModuleSubstitution memiliki kolom berikut.

Kolom Jenis Kunci Dapat diubah ke null
Tabel Pengidentifikasi Y N
Baris Teks Y N
Kolom Pengidentifikasi Y N
Nilai Teks N Y

 

Kolom

Meja

Kolom ini menentukan nama tabel yang sedang dimodifikasi dalam database modul.

Baris

Bidang ini menentukan kunci utama baris target dalam tabel bernama di kolom Tabel. Beberapa kunci primer dipisahkan oleh titik koma. Baris target dipilih untuk modifikasi sebelum perubahan apa pun dilakukan pada tabel target. Jika satu rekaman dalam tabel ModuleSubstitution mengubah bidang kunci primer dari baris target, rekaman lain dalam tabel ModuleSubstitution diterapkan berdasarkan data kunci primer asli, bukan hasil substitusi kunci primer. Urutan penggantian baris tidak ditentukan.

Nilai dalam kolom ini selalu dalam format khusus CMSM. Tanda titik koma (';') harfiah atau sama dengan ('=') dapat ditambahkan dengan mengawali karakter dengan garis miring terbalik. '\'. Nilai null untuk kunci ditandatangani oleh null, titik koma di depan, dua titik koma berturut-turut, atau titik koma berikutnya, tergantung pada apakah nilai null adalah nilai kolom kunci satu-satunya, pertama, tengah, atau akhir.

Kolom

Bidang ini menentukan kolom target dalam baris bernama di kolom Baris. Jika beberapa baris dalam tabel ModuleSubstitution mengubah kolom yang berbeda dari baris target yang sama, semua substitusi kolom dilakukan sebelum baris yang dimodifikasi disisipkan ke dalam database. Urutan penggantian kolom tidak ditentukan.

Nilai

Kolom ini berisi string yang menyediakan templat pemformatan untuk data yang diganti ke dalam bidang target yang ditentukan oleh Tabel, Baris, dan Kolom. Ketika string substitusi formulir [=ItemA] ditemukan, string, termasuk karakter tanda kurung siku, digantikan oleh nilai untuk "ItemA" yang dapat dikonfigurasi. Item "ItemA" yang dapat dikonfigurasi ditentukan di kolom Nama tabel ModuleConfiguration dan nilainya disediakan oleh alat penggabungan. Jika alat penggabungan menolak untuk memberikan nilai untuk item apa pun dalam string pengganti, nilai default yang ditentukan di kolom DefaultValue dari Tabel ModuleConfiguration diganti. Jika string mereferensikan item yang tidak ada dalam tabel ModuleConfiguration, penggabungan gagal.

  • Kolom ini menggunakan format khusus CMSM. Tanda titik koma (';') harfiah atau sama dengan ('=') dapat ditambahkan ke tabel dengan mengawali karakter dengan garis miring terbalik. '\'.
  • Bidang Nilai mungkin berisi beberapa string substitusi. Misalnya, konfigurasi item "Food1" dan "Food2" dalam string: "[=Food1] bagus, tetapi [=Food2] lebih baik karena [=Food2] lebih bergizi."
  • String pengganti tidak boleh ditumpuk. Templat "[=AB[=CDE]]" tidak valid.
  • Jika bidang Nilai mengevaluasi ke null, dan bidang target tidak dapat diubah ke null, penggabungan gagal dan objek kesalahan jenis msmErrorBadNullSubstitution dibuat dan ditambahkan ke daftar kesalahan. Untuk detailnya, lihat jenis kesalahan yang dijelaskan dalam Fungsi get_Type.
  • Jika bidang Nilai mengevaluasi ke GUID null: {00000000-0000-0000-0000-000000000000}, GUID null digantikan dengan nama fitur sebelum baris digabungkan ke dalam modul. Untuk detailnya, lihat Mereferensikan Fitur dalam Modul Penggabungan.
  • Templat di bidang Nilai dievaluasi sebelum disisipkan ke bidang target. Penggantian ke dalam baris dilakukan sebelum mengganti fitur apa pun.
  • Jika kolom Nilai mengevaluasi ke string karakter bilangan bulat saja (dengan opsional + atau -), string dikonversi menjadi bilangan bulat sebelum diganti menjadi bidang target dari Jenis Format Bilangan Bulat. Jika templat mengevaluasi ke string yang tidak hanya terdiri dari karakter bilangan bulat (dan opsional + atau -) hasilnya tidak dapat diganti menjadi bidang target bilangan bulat. Mencoba menyisipkan non-bilangan bulat ke dalam bidang bilangan bulat menyebabkan penggabungan gagal dan menambahkan objek kesalahan msmErrorBadSubstitutionType ke daftar kesalahan.
  • Jika kolom target yang ditentukan dalam bidang Tabel dan Kolom adalah Tipe Format Teks, dan evaluasi bidang Nilai menghasilkan Tipe Format Bilangan Bulat, representasi desimal angka disisipkan ke dalam bidang teks target.
  • Jika bidang target adalah Jenis Format Bilangan Bulat, dan bidang Nilai terdiri dari daftar item yang tidak dibatasi dalam Format Bitfield, nilai di bidang target digabungkan menggunakan operator BITWISE AND dengan inversi bitwise ATAU dari semua nilai masker dari item, lalu dikombinasikan menggunakan operator OR bitwise dengan masing-masing item bilangan bulat atau bitfield saat ditutupi oleh nilai masker yang sesuai. Pada dasarnya, ini secara eksplisit mengatur bit dari properti ke nilai yang disediakan tetapi meninggalkan semua bit lain dalam sel saja.
  • Jika bidang Nilai mengevaluasi ke Jenis Format Kunci, dan merupakan kunci ke dalam tabel yang menggunakan beberapa kunci primer, nama item dapat diikuti oleh titik koma dan nilai bilangan bulat yang menunjukkan indeks berbasis 1 ke dalam kumpulan nilai yang bersama-sama membuat kunci primer. Jika tidak ada bilangan bulat yang ditentukan, nilai 1 akan digunakan. Misalnya, tabel Kontrol memiliki dua kolom kunci utama, Dialog_ dan Kontrol. Nilai item "Item1" yang merupakan kunci ke dalam tabel Kontrol akan berupa "DialogName; ControlName", di mana DialogName adalah nilai dalam tabel Dialog_ dan ControlName adalah nilai di kolom Kontrol. Untuk mengganti hanya ControlName, string pengganti [=Item1;2] harus digunakan.

Keterangan

Tabel ModuleSubstition digunakan oleh Modul Penggabungan yang Dapat Dikonfigurasi. Mergemod.dll versi 2.0 atau yang lebih baru diperlukan untuk membuat modul penggabungan yang dapat dikonfigurasi.

Untuk memastikan kompatibilitas dengan versi Mergemod.dll yang lebih lama dari versi 2.0, tabel ModuleConfiguration dan tabel ModuleSubstitution harus disertakan dalam tabel ModuleIgnoreTable dari setiap modul.