Bagikan melalui


Cara Menggunakan Ekspresi untuk Pesan Transformasi Dinamis

Anda dapat menggunakan ekspresi untuk mengubah pesan dinamis dalam orkestrasi Anda. XLANG mengekspos metode transformasi yang dapat dipanggil dari dalam bentuk Penetapan Pesan di dalam bentuk Pesan Konstruksi . Ini adalah metode yang sama yang dipanggil ketika bentuk Transformasi digunakan, tetapi memungkinkan Anda untuk mengubah pesan secara terprogram menggunakan peta yang Anda tentukan dalam orkestrasi. Ini berguna ketika Anda melakukan pemrosesan pesan tanpa terikat pada jenis tertentu. Misalnya, jika Anda memiliki proses bisnis yang perlu memilih dari serangkaian peta untuk mengubah pesan masuk berdasarkan parameter yang disediakan oleh pesan masuk yang diterima, Anda dapat mencapainya dengan menggunakan metode transformasi dalam bentuk Ekspresi sambil mempertahankan keseluruhan proses bisnis Anda secara utuh.

Mengubah pesan

Anda dapat menggunakan kode sampel berikut untuk mengubah pesan secara terprogram dalam bentuk Penetapan Pesan :

MyMapType = typeof(MyMapName);  
transform(MyOutputMsg) = MyMapType(MyInputMsg);  

Dalam contoh ini, MyMapType dinyatakan sebagai variabel jenis System.Type dalam orkestrasi. MyMapName adalah nama peta yang sudah dibuat di proyek BizTalk Anda. Jika Anda ingin mereferensikan peta yang berada dalam rakitan BizTalk terpisah, Anda harus mereferensikan rakitan tersebut dalam proyek BizTalk Anda. MyInputMsg adalah pesan sumber dan MyOutputMsg adalah pesan tujuan. Jika peta Anda mengambil beberapa pesan sumber, maka Anda dapat menggunakan kode sampel berikut untuk mengubah pesan:

MyMapType = typeof(MyMapName);  
transform(MyOutputMsg) = MyMapType(MyInputMsg1, MyInputMsg2);  

Nota

Jika Anda memiliki beberapa pesan sumber, pesan tersebut harus ditempatkan secara berurutan dalam ekspresi sehubungan dengan nomor bagian pesan input yang ditunjukkan di peta.

Penting

Saat melakukan transformasi pesan dinamis dalam bentuk Ekspresi, kami sarankan Anda menulis cache di dalam kode pengguna untuk menyimpan peta yang telah dikompilasi, lalu menggunakan cache dalam bentuk Ekspresi untuk mengambil peta sebelum melakukan transformasi pesan. Jika Anda tidak menyimpan cache peta, memori Common Language Runtime (CLR) dapat tumbuh secara signifikan. Pemetaan dinamis mengharuskan .NET Runtime melakukan pemeriksaan akses kode yang mengakibatkan objek Bukti .NET ditempatkan di Tumpukan Objek Besar untuk setiap transformasi dan objek ini tidak dibuang sampai orkestrasi selesai. Oleh karena itu, ketika ada banyak jenis transformasi ini terjadi secara bersamaan, Anda mungkin melihat peningkatan penggunaan memori secara substansial yang juga dapat menyebabkan pengecualian kehabisan memori.

Lihat Juga

Bentuk Orkestrasi
Membuat Peta Menggunakan BizTalk Mapper