Menggunakan BaseFunctoid
Semua functoid kustom harus berasal dari kelas BaseFunctoid . Anda harus terlebih dahulu mengambil alih konstruktor dan melakukan serangkaian panggilan yang memberi tahu BizTalk Mapper tentang functoid kustom Anda. Maka Anda perlu menulis logika functoid.
Mengesampingkan Konstruktor
Anda harus melakukan sejumlah tugas dalam metode penimpaan konstruktor kelas untuk mencirikan functoid Anda. Tugas-tugas ini adalah tambahan untuk kode khusus functoid yang dibutuhkan solusi Anda. Tabel berikut ini menjelaskan tugas utama.
Tugas | Gunakan metode atau properti ini | Komentar |
---|---|---|
Menetapkan ID unik ke functoid | ID | Gunakan nilai yang lebih besar dari 6000 yang belum digunakan. Nilai kurang dari 6000 disediakan untuk digunakan oleh functoid internal. |
Menunjukkan apakah functoid memiliki efek samping | HasSideEffects | Digunakan oleh pemeta untuk mengoptimalkan kode XSLT yang dihasilkan. Properti ini benar secara default. |
Arahkan ke perakitan sumber daya | SetupResourceAssembly | Sertakan file sumber daya dengan proyek Anda. Jika membangun dengan Visual Studio, rakitan sumber daya harus ProjectName.ResourceName. |
Aktifkan functoid kustom untuk muncul di palet Pemeta BizTalk |
SetName SetTooltip SetDescription SetBitmap |
Gunakan ID sumber daya yang menunjuk ke string untuk nama, tipsalat, dan deskripsi; gunakan bitmap 16x16 piksel. |
Menetapkan functoid ke satu atau beberapa kategori | Kategori | Kategorikan functoid dengan menggunakan satu atau beberapa nilai Microsoft.BizTalk.BaseFunctoids.FunctoidCategory . |
Tentukan jumlah parameter yang diterima |
SetMinParams SetMaxParams HasVariableInputs |
Gunakan metode SetMinParams untuk mengatur jumlah parameter yang diperlukan dan metode SetMaxParams untuk mengatur jumlah parameter opsional. Gunakan panduan berikut untuk mengatur nilai-nilai ini: - Jika Anda tidak memiliki parameter opsional, atur min = maks. - Jika Anda memiliki beberapa parameter opsional, atur maks = (jumlah parameter opsional - jumlah minimum parameter). - Jika Anda ingin mengizinkan parameter opsional tanpa batas, jangan atur maks. - Jika Anda memiliki jumlah input variabel, jangan atur min atau maks, dan atur HasVariableInputs = true . |
Nyatakan apa yang dapat terhubung ke functoid Anda | AddInputConnectionType | Panggil AddInputConnectionType sekali untuk setiap Microsoft.BizTalk.BaseFunctoids.ConnectionType yang didukung oleh functoid. |
Nyatakan apa yang dapat disambungkan oleh functoid Anda | OutputConnectionType | Gunakan nilai dari Microsoft.BizTalk.BaseFunctoids.ConnectionType untuk memberi tahu BizTalk Mapper jenis objek yang dapat menerima output dari functoid Anda. Gunakan OR untuk menentukan beberapa jenis koneksi. |
Beri tahu BizTalk Server metode mana yang akan dipanggil untuk functoid Anda |
SetExternalFunctionName SetExternalFunctionName2 SetExternalFunctionName3 |
Untuk functoid kumulatif, gunakan SetExternalFunctionName untuk mengatur fungsi inisialisasi, SetExternalFunctionName2 untuk mengatur fungsi akumulasi, dan SetExternalFunctionName3 untuk menentukan fungsi yang mengembalikan nilai akumulasi. Untuk functoid nonkumulatif, gunakan SetExternalFunctionName untuk mengatur metode functoid. |
Minta BizTalk Server menggunakan kode sebaris untuk memanggil functoid Anda | AddScriptTypeSupport SetScriptBuffer | Panggil AddScriptTypeSupport dengan Microsoft.BizTalk.BaseFunctoids.ScriptType untuk mengaktifkan kode sebaris. Panggil SetScriptBuffer untuk meneruskan kode untuk functoid. Kode ini akan disalin ke dalam peta. |
Mendeklarasikan variabel global untuk functoid sebaris | SetScriptGlobalBuffer | Setiap deklarasi yang dibuat akan terlihat oleh skrip sebaris lainnya yang disertakan dalam peta. |
Menunjukkan fungsi pembantu mana yang diperlukan functoid sebaris Anda | RequiredGlobalHelperFunctions | Gunakan nilai dari enumerasi InlineGlobalHelperFunction untuk menentukan fungsi pembantu mana yang diperlukan. Gunakan OR untuk menentukan beberapa fungsi pembantu. |
Memvalidasi parameter yang diteruskan ke functoid Anda |
IsDate IsNumeric |
Fungsi-fungsi ini memberikan jawaban benar/salah tanpa melemparkan pengecualian. |
Menerapkan Logika Functoid
Untuk membuat functoid berguna, Anda harus menerapkan satu atau beberapa metode tergantung pada kategori functoid. Jika functoid bersifat kumulatif, maka Anda perlu menyediakan tiga metode—satu untuk inisialisasi, satu untuk melakukan akumulasi, dan satu untuk mengembalikan nilai akumulasi. Jika functoid tidak kumulatif, maka Anda perlu menyediakan satu metode yang mengembalikan nilai.
Anda juga harus memutuskan apakah kode implementasi functoid harus disalin sebaris ke dalam peta atau disimpan dalam rakitan .NET yang dikompilasi dan digunakan melalui referensi.
Pertimbangkan untuk menggunakan functoid sebaris saat:
Tidak apa-apa bagi orang lain untuk membaca dan berpotensi memodifikasi logika bisnis Anda.
Functoid Anda hanya bergantung pada namespace .NET Framework yang didukung peta. Untuk namespace yang tersedia, lihat Membuat Skrip Menggunakan Inline C#, JScript .NET, dan Visual Basic .NET.
Anda tidak ingin menyebarkan dan memelihara assembly lain dengan solusi BizTalk Anda.
Anda menulis serangkaian functoid yang berbagi variabel.
Pertimbangkan untuk menggunakan functoid yang dirujuk saat:
Anda tidak ingin logika bisnis Anda disalin ke dalam peta tempat logika tersebut mungkin terlihat atau dimodifikasi oleh orang lain.
Functoid Anda tergantung pada .NET Framework kelas yang tidak didukung peta.
Fungsionalitas tambahan yang disediakan oleh .NET Framework membenarkan penyebaran dan pemeliharaan perakitan lain dengan solusi BizTalk Anda.
Lihat juga
Mengembangkan Functoid Yang Dirujuk Kustom
Mengembangkan Functoid Sebaris Kustom
Mengembangkan Functoid Kumulatif Kustom
Microsoft.BizTalk.BaseFunctoids.BaseFunctoid