Bagikan melalui


Panduan: Menggunakan Amplop XML (Dasar)

Contoh ini menunjukkan pembongkaran amplop XML dasar dengan menerapkan bagian dari sistem pelacakan kesalahan fiktif. Contohnya memenuhi persyaratan berikut:

  1. Pesan kesalahan dicatat di berbagai situs fisik dalam perusahaan dan dikirim ke lokasi pusat untuk diproses ke berbagai sistem back-end.

  2. Pesan kesalahan ditulis dalam format XML.

  3. Pesan kesalahan dapat dikirim senyap tanpa amplop atau sebagai batch yang terkandung dalam amplop.

Prasyarat

Untuk contoh ini, Anda harus nyaman membuat proyek BizTalk, menandatangani perakitan, dan menggunakan konsol Administrasi BizTalk Server untuk melihat aplikasi dan port. Anda juga harus nyaman dengan ide-ide yang disajikan di Walkthrough: Menyebarkan Aplikasi BizTalk Dasar.

Apa fungsi contoh ini

Contoh memproses pesan masuk yang berisi satu pesan kesalahan atau batch pesan kesalahan dengan menentukan skema amplop dan menggunakan alur XmlDisassembler.

Contoh

Untuk membuat contoh, ikuti langkah-langkah yang diuraikan di bagian berikut.

Membuat Proyek BizTalk Baru

Sebelum membangun solusi, Anda perlu membuat proyek BizTalk, pastikan bahwa itu dinamai dengan kuat, dan tetapkan nama aplikasi. Menetapkan nama aplikasi mencegah BizTalk Server menyebarkan solusi ke dalam aplikasi BizTalk default.

Untuk membuat dan mengonfigurasi proyek BizTalk baru
  1. Gunakan Visual Studio untuk membuat proyek BizTalk baru. Panggil proyek BasicXMLEnvelope.

  2. Buat file kunci dan tetapkan ke proyek. Untuk informasi selengkapnya tentang tugas ini, lihat Cara Mengonfigurasi File Kunci Rakitan Nama Yang Kuat.

  3. Dalam properti konfigurasi penyebaran untuk proyek, tetapkan Nama Aplikasi dan atur Mulai Ulang Instans Host ke True. Mengatur bendera ini memberi tahu host untuk menghapus instans rakitan yang di-cache.

Membuat Skema Kesalahan

Dalam langkah ini Anda membuat skema Kesalahan. Ini mendefinisikan pesan kunci untuk sistem.

Untuk membuat skema Kesalahan
  1. Tambahkan skema baru bernama "Kesalahan" ke proyek.

  2. Ubah namespace layanan target untuk skema menjadi http://BasicXMLEnvelope.

  3. Ubah properti skema Element FormDefault di bawah kategori Tingkat Lanjut menjadi Memenuhi Syarat. Ini menunjukkan bahwa elemen yang dideklarasikan secara lokal harus memenuhi syarat oleh namespace layanan target dalam dokumen instans.

  4. Ganti nama simpul akar "Kesalahan" dan buat lima elemen anak dengan jenis yang ditunjukkan:

    • ID, xs:int

    • Ketik, xs:int

    • Prioritas, xs:string

    • Deskripsi, xs:string

    • ErrorDateTime, xs:string

      Skema Anda akan terlihat seperti berikut ini:

      Error_schema

  5. Buat contoh pesan untuk skema ini. Ini digunakan untuk memverifikasi bahwa satu pesan di luar amplop diproses dengan benar. Contoh pesan sampel adalah:

    <Error xmlns="http://BasicXMLEnvelope">  
      <ID>1</ID>  
      <Type>5</Type>  
      <Priority>Low</Priority>  
      <Description>Sprocket widget prints reports slowly.</Description>  
      <ErrorDateTime>1999-05-31T13:20:00.000-05:00</ErrorDateTime>  
    </Error>  
    

    Simpan pesan ini dalam file di direktori proyek.

Membuat Skema Amplop

Amplop berisi satu atau beberapa pesan kesalahan. Dalam contoh dasar ini, amplop tidak memiliki properti dan elemennya sendiri.

Untuk membuat skema amplop
  1. Tambahkan skema baru bernama "Amplop" ke proyek BasicXMLEnvelope.

  2. Ubah namespace target menjadi http://BasicXMLEnvelope.

  3. Ubah nama simpul akar dari "Root" menjadi "Amplop".

  4. Sekarang tandai skema sebagai skema amplop. Klik simpul <Skema> . Di panel Properti, atur properti referensi skema Amplop ke OK.

  5. Atur properti Body XPath . Untuk melakukan ini, klik simpul Amplop . Di jendela Properti, klik tombol elipsis (...) di properti Isi JalurX , pilih Amplop, lalu klik OK.

  6. Tambahkan turunan elemen Apa pun ke simpul Amplop. Pesan kesalahan akan terkandung dalam elemen ini. Skema Anda akan terlihat seperti berikut ini:

    Skema amplop yang telah selesai

  7. Buat contoh pesan yang berisi amplop dan satu atau beberapa pesan sampel. Contoh pesan adalah:

    <Envelope xmlns="http://BasicXMLEnvelope">  
      <Error>  
        <ID>102</ID>  
        <Type>0</Type>  
        <Priority>High</Priority>  
        <Description>Sprocket query fails.</Description>  
        <ErrorDateTime>1999-05-31T13:20:00.000-05:00</ErrorDateTime>  
      </Error>  
      <Error>  
        <ID>16502</ID>  
        <Type>2</Type>  
        <Priority>Low</Priority>  
        <Description>Time threshold exceeded.</Description>  
        <ErrorDateTime>1999-05-31T13:20:00.000-05:00</ErrorDateTime>  
      </Error>  
    </Envelope>  
    

    Simpan pesan ini dalam file di direktori proyek.

Menyebarkan dan Mengonfigurasi Port Kirim dan Terima

Dengan skema yang dibuat, Anda perlu mengkompilasi dan menyebarkan proyek. Setelah disebarkan, Anda dapat menggunakan konsol Administrasi BizTalk Server untuk mengonfigurasi port kirim dan terima.

Untuk menyebarkan BasicXMLEnvelope
  1. Dari Visual Studio, pilih Sebarkan BasicXMLEnvelope dari menu Build. Ini akan membangun dan menyebarkannya ke BizTalk Server sebagai aplikasi "BasicXMLEnvelope".

  2. Di konsol Administrasi BizTalk Server, perluas grup Aplikasi untuk memverifikasi bahwa BasicXMLEnvelope hadir sebagai aplikasi kustom.

Untuk mengonfigurasi port penerima
  1. Gunakan Windows Explorer untuk membuat direktori bernama "Terima" di bawah direktori proyek BasicXMLEnvelope .

  2. Di konsol Administrasi BizTalk Server, perluas aplikasi BasicXMLEnvelope , klik kanan Terima Port, arahkan ke Baru, lalu klik Port Terima Satu Arah.

  3. Dalam kotak dialog Terima Properti Port , atur nama port ke "Terima".

  4. Klik kanan Terima Lokasi, lalu klik Baru untuk menambahkan port penerima. Beri nama port baru "ReceiveError". Atur Alur Terima ke XMLReceive. Untuk Jenis Transportasi, pilih FILE, lalu klik Konfigurasikan.

  5. Pilih direktori terima yang dibuat di atas dan klik OK. Port penerima Anda sekarang harus dikonfigurasi. Klik OK untuk menutup.

Untuk mengonfigurasi port kirim
  1. Gunakan Windows Explorer untuk membuat direktori bernama "Kirim" di bawah direktori proyek BasicXMLEnvelope .

  2. Di konsol Administrasi BizTalk Server, perluas aplikasi BasicXMLEnvelope , klik kanan Kirim Port, arahkan ke Baru, lalu klik Satu Arah Statis.

  3. Dalam kotak dialog Kirim Properti Port , atur nama port ke "Kirim".

  4. Untuk Jenis Transportasi, pilih FILE, lalu klik Konfigurasikan. Atur folder tujuan ke direktori kirim yang Anda buat sebelumnya dan klik OK.

  5. Klik Filter dan tambahkan satu filter:

    • BTS. MessageType == http://BasicXMLEnvelope#Error
  6. Klik OK untuk menyelesaikan konfigurasi port pengiriman. Port pengiriman Anda harus dikonfigurasi.

Jalankan Contoh

Sekarang saatnya untuk menjalankan contoh. Setelah menggunakan konsol BizTalk Server Management untuk memulai aplikasi BasicXMLEnvelope, Anda akan menyalin file pengujian ke lokasi terima dan mengamati apa yang diproduksi di lokasi pengiriman.

Untuk menjalankan contoh BasicXMLEnvelope
  1. Di konsol Administrasi BizTalk Server, klik kanan aplikasi BasicXMLEnvelope lalu klik Mulai. Ini akan mendaftar dan memulai port kirim dan terima.

  2. Letakkan setiap file sampel ke direktori penerima. Jika Anda menggunakan sampel yang diberikan sebelumnya, Anda harus menemukan tiga pesan kesalahan individual di lokasi pengiriman saat pemrosesan selesai.

Memperluas Contoh

Anda dapat memperluas contoh untuk mengakomodasi persyaratan lain. Bagian ini membahas dua skenario umum:

  • Jika batch kesalahan dikirimkan dalam amplop, kegagalan pesan individual dalam pembbongkaran tidak boleh melarang pesan lain yang tidak gagal diproses lebih lanjut.

  • Kesalahan harus dikirimkan ke lokasi yang berbeda berdasarkan prioritas kesalahan. Pesan berprioritas tinggi dipercepat sementara prioritas lain ditangani melalui saluran normal.

    Bagian berikut memperluas contoh untuk menangani persyaratan ini.

Pemrosesan Pertukaran yang Dapat Dipulihkan

BizTalk Server mendukung pemrosesan pertukaran yang dapat dipulihkan. Dengan menggunakan fitur ini, Anda dapat memastikan bahwa batch pesan gagal satu per satu dalam pembbongkaran dan bukan sebagai batch.

Untuk mengonfigurasi contoh pemrosesan pertukaran yang dapat dipulihkan
  1. Di konsol Administrasi BizTalk Server, perluas aplikasi BasicXMLEnvelope , klik Terima Port, lalu klik dua kali port Terima. Ini adalah port yang Anda buat sebelumnya.

  2. Dalam kotak dialog Terima Properti Port , klik Terima Lokasi. Klik Properti untuk memunculkan kotak dialog ReceiveError Receive Location Properties . Klik tombol elipsis (...) untuk Alur Penerima.

  3. Dalam kotak dialog Konfigurasi Alur - XMLReceive , atur properti Pemrosesan Pertukaran yang Dapat Dipulihkan ke True, lalu klik OK.

  4. Klik OK untuk menutup kotak dialog Terima Properti Lokasi , lalu klik OK untuk menutup kotak dialog Terima Properti Port .

Untuk membuat file sampel dan menjalankan contoh
  1. Untuk membuat file sampel, buat salinan file sampel amplop yang dibuat dalam contoh, tambahkan namespace tidak ada ke salah satu instans Kesalahan, lalu simpan file:

    <Envelope xmlns="http://BasicXMLEnvelope">  
      <Error>  
        <ID>102</ID>  
        <Type>0</Type>  
        <Priority>High</Priority>  
        <Description>Sprocket query fails to return any sprockets even though some exist</Description>  
        <ErrorDateTime>1999-05-31T13:20:00.000-05:00</ErrorDateTime>  
      </Error>  
      <Error xmlns="http://ThisIsAnError">  
        <ID>16502</ID>  
        <Type>2</Type>  
        <Priority>Low</Priority>  
        <Description>Time threshold exceeded.</Description>  
        <ErrorDateTime>1999-05-31T13:20:00.000-05:00</ErrorDateTime>  
      </Error>  
    </Envelope>  
    
  2. Di konsol Administrasi BizTalk Server, klik Aplikasi dan verifikasi bahwa aplikasi BasicXMLEnvelope sedang berjalan.

  3. Letakkan pesan di lokasi terima. Setelah diproses, Anda harus menemukan pesan pertama di lokasi pengiriman dan pesan kedua, berprioritas rendah, dalam antrean Ditangguhkan.

Perutean Berbasis Konten (CBR)

Anda dapat menggunakan perutean berbasis konten untuk merutekan pesan berdasarkan kontennya. Dalam skenario ini, perutean didasarkan pada prioritas, dengan Pesan tinggi masuk ke satu lokasi pengiriman dan pesan Rendah dan Sedang masuk ke lokasi pengiriman yang berbeda.

Untuk memperluas sampel, Anda harus menyelesaikan tugas berikut:

  1. Promosikan bidang Prioritas dalam skema Kesalahan dalam proyek BasicXMLEnvelope. Perutean berbasis konten bergantung pada properti yang dipromosikan untuk merutekan pesan. Untuk informasi selengkapnya, lihat Mempromosikan Properti.

  2. Membuat dan mengonfigurasi dua port pengiriman tambahan. Port menggunakan filter untuk memastikan mereka menerima pesan yang sesuai.

Untuk mempromosikan bidang Prioritas dalam skema Kesalahan
  1. Dengan proyek BasicXMLEnvelope terbuka di Visual Studio, buka skema Kesalahan dan perluas node Kesalahan .

  2. Klik kanan elemen Prioritas , arahkan ke Promosi, lalu klik Promosi Cepat.

  3. Klik OK untuk mengonfirmasi penambahan skema properti baru untuk properti yang dipromosikan.

  4. Di Visual Studio, di Penjelajah Solusi, buka skema properti baru PropertySchema.xsd. Hapus "Field1" dari skema.

  5. Sekarang kompilasi ulang dan sebarkan ulang solusinya. Pada menu Build, pilih Sebarkan BasicXMLEnvelope.

  6. Proyek dikonfigurasi untuk mengatur ulang instans host saat solusi disebarkan ulang. Jika Anda telah mengubah ini, Anda perlu menghentikan dan memulai host.

Untuk mengonfigurasi port pengiriman berprioritas rendah dan sedang
  1. Gunakan Windows Explorer untuk membuat direktori bernama "SendLowMediumPriority" di bawah direktori proyek BasicXMLEnvelope .

  2. Di konsol Administrasi BizTalk Server, perluas aplikasi BasicXMLEnvelope , klik kanan Kirim Port, arahkan ke Baru, lalu klik Satu Arah Statis.

  3. Dalam kotak dialog Kirim Properti Port , atur nama port ke "SendLowMediumPriority".

  4. Untuk Jenis Transportasi, pilih FILE, lalu klik Konfigurasikan. Atur folder tujuan ke direktori yang Anda buat sebelumnya. Klik OK untuk menutup.

  5. Klik Filter dan tambahkan tiga ekspresi filter:

    • BTS. MessageType == http://BasicXMLEnvelope#Error Dan

    • BasicXMLEnvelope.PropertySchema.Priority == Low Or

    • BasicXMLEnvelope.PropertySchema.Priority == Medium

  6. Klik OK untuk menyelesaikan konfigurasi port pengiriman berprioritas rendah dan sedang.

Untuk mengonfigurasi port pengiriman berprioritas tinggi
  1. Gunakan Windows Explorer untuk membuat direktori bernama "SendHighPriority" di bawah direktori proyek BasicXMLEnvelope .

  2. Di konsol Administrasi BizTalk Server, perluas aplikasi BasicXMLEnvelope , klik kanan Kirim Port, arahkan ke Baru, lalu klik Satu Arah Statis.

  3. Dalam kotak dialog Kirim Properti Port , atur nama port ke "SendHighPriority".

  4. Untuk Jenis Transportasi, pilih FILE, lalu klik Konfigurasikan. Atur folder tujuan ke direktori yang Anda buat sebelumnya. Klik OK untuk menutup.

  5. Klik Filter dan tambahkan dua ekspresi filter:

    • BTS. MessageType == http://BasicXMLEnvelope#Error Dan

    • BasicXMLEnvelope.PropertySchema.Priority == High

  6. Klik OK untuk menyelesaikan konfigurasi port pengiriman prioritas tinggi.

Untuk menguji solusi perutean
  1. Di konsol Administrasi BizTalk Server, perluas grup Aplikasi , klik kanan aplikasi BasicXMLEnvelope , lalu klik Mulai. Ketika diminta untuk mengonfirmasi, klik Mulai. Ini mendaftarkan port pengiriman baru.

  2. Letakkan pesan pengujian ke lokasi terima. Perhatikan bagaimana pesan kesalahan dirutekan ke lokasi pengiriman yang berbeda:

    • Pesan kesalahan yang memiliki prioritas Rendah, Sedang, atau Tinggi dan tidak gagal pemrosesan pesan dirutekan baik ke lokasi pengiriman asli (dikonfigurasi dalam contoh inti) dan lokasi pengiriman berdasarkan prioritas. Untuk pesan dengan prioritas Rendah atau Sedang, salinan muncul di lokasi pengiriman asli dan lokasi pengiriman Rendah/Sedang.

    • Jika pemrosesan pertukaran yang dapat dipulihkan diaktifkan, pesan kesalahan yang gagal tidak dirutekan dan pesan yang tidak rusak dirutekan dengan benar seperti yang diharapkan. Pesan yang gagal tidak dirutekan karena tipe pesannya tidak cocok dengan tipe yang digunakan dalam filter yang dikonfigurasi.

Lihat juga

Pemrosesan Pertukaran yang Dapat Dipulihkan
Mempromosikan Properti
CBRSample (Sampel Server BizTalk)