Bagikan melalui


Merakit Pertukaran EDI Batched

Untuk merakit elemen batch set transaksi individual ke dalam pertukaran EDI, BizTalk Server EDI dan AS2 melakukan hal berikut:

  • Mengidentifikasi elemen batch untuk batching

  • Memvalidasi dan buffer elemen batch individu setelah tanda terima

  • Mengambil elemen batch tertentu dan menyusun pertukaran batch saat kriteria rilis terpenuhi

    Waktu mulai untuk pengumpulan pesan individual untuk masuk ke batch ditentukan oleh kriteria aktivasi batch. Waktu saat batch dirilis ditentukan oleh kriteria rilis batch. Untuk informasi selengkapnya tentang kedua set kriteria ini, lihat Mengonfigurasi Batch Keluar.

Alur Pesan untuk Pesan Batch Keluar

Ketika BizTalk Server dikonfigurasi untuk mengumpulkan pesan keluar, komponen BizTalk Server akan melakukan serangkaian langkah berikut untuk menyiapkan pesan batch untuk pengiriman. Rangkaian langkah ini menjelaskan kasus di mana alur EDIReceive dengan komponen alur BatchMarker memproses pertukaran yang diterima yang berisi kumpulan transaksi yang akan di-batch untuk dikirim.

  1. Komponen alur BatchMarker dalam alur EDIReceive menentukan pesan mana yang perlu di-batch dari pengaturan filter batch EDI di properti pihak. (Ini adalah satu-satunya komponen batching yang melihat pengaturan filter batch dan bertindak atasnya.)

  2. Jika pengaturan filter hanya dari satu konfigurasi batch berlangganan pesan, komponen BatchMarker akan mempromosikan properti EDI.ToBeBatched = True. Ini memastikan bahwa orkestrasi batching akan mengambil pesan.

  3. Jika pengaturan filter lebih dari satu konfigurasi batch cocok dengan konteks pesan, komponen BatchMarker mempromosikan properti EDI.ToBeRouted = True dan mengatur EDI.BatchIds properti ke daftar yang dibatasi spasi yang berisi ID batch yang cocok. Ini memastikan bahwa orkestrasi perutean akan berlangganan pesan.

    Catatan

    Anda dapat mempromosikan properti konteks yang sesuai dalam alur penerima kustom atau orkestrasi kustom. Alur penerima kustom dapat menggunakan komponen alur BatchMarker, atau dapat mempromosikan properti tanpa menggunakan komponen alur BatchMarker.

  4. Orkestrasi perutean mengambil setiap set transaksi yang dan EDI.ToBeRouted = TrueEDI.BatchIds dipromosikan, lalu membuat salinan set transaksi, memastikan bahwa ada salinan untuk setiap ID batch yang terkandung dalam EDI.BatchIds. Orkestrasi perutean diatur EDI.ToBeBatched = True dan EDI.BatchId diatur ke ID batch dari konfigurasi batch yang cocok untuk setiap salinan set transaksi. Ini memastikan bahwa set transaksi akan diambil oleh orkestrasi batching untuk batching.

  5. Orkestrasi batching mengambil semua pesan yang properti berikut telah dipromosikan:

    • EDI.ToBeBatched = True dan EDI. BatchId = id batch dari batch yang terkait dengan instans orkestrasi batching ini.

    • EDI.ToBeBatched = True dan EDI. BatchName = nama batch dan EDI yang dikonfigurasi. DestinationPartyName = nama pihak yang berisi konfigurasi batch.

      Ketika pesan masuk diproses oleh alur EDIReceive (dengan komponen alur BatchMarker), orkestrasi batching hanya akan mengumpulkan kumpulan transaksi yang dikodekan X12 atau EDIFACT.

    Catatan

    Akan ada satu instans orkestrasi batching untuk setiap konfigurasi batch aktif, masing-masing berlangganan ID batch tertentu. Nilai ID batch diatur secara otomatis saat membuat konfigurasi batch baru di bagian Identifikasi dari halaman Konfigurasi Batching dari tab perjanjian satu arah dari kotak dialog Properti Perjanjian .

  6. Orkestrasi batching memvalidasi setiap set transaksi yang akan di-batch. Jika kumpulan transaksi gagal divalidasi, set ini akan mengatur EDI.BatchItemValidationFailure properti konteks ke "True". Orkestrasi BatchSuspend mengambil pesan berdasarkan properti konteks tersebut, memposting informasi kesalahan, lalu ditangguhkan.

  7. Ketika kriteria rilis batch telah terpenuhi, orkestrasi batch merakit elemen batch ke dalam batch dan membuat amplop.

  8. Setelah orkestrasi batching selesai mengumpulkan pertukaran, orkestrasi batching mempromosikan properti berikut pada pertukaran tersebut: EDI. DestinationPartyName = %PartyName%, EDI. BatchEncodingType = X12 atau EDIFACT, dan EDI. ToBeBatched = False.

  9. Port pengiriman mengambil kumpulan transaksi batch berdasarkan EDI. DestinationPartyName = <PartyName>, EDI. BatchEncodingType = EDIFACT atau X12, dan EDI. ToBeBatched = False.

Pesan Kontrol Orkestrasi Batching

Orkestrasi batching diaktifkan, dihentikan, atau ditimpa oleh pesan kontrol berikut:

  • BatchActivation: Ketika orkestrasi menerima pesan ini, instans orkestrasi batching dibuat dan orkestrasi aktif untuk menerima elemen batch (jika memenuhi kriteria aktivasi batch). Pesan kontrol ini dikirim dengan mengklik tombol Mulai dari konfigurasi batch pada halaman Konfigurasi Batching dari tab perjanjian satu arah dari kotak dialog Properti Perjanjian .

  • BatchTermination: Ketika orkestrasi menerima pesan ini, orkestrasi membuat batch dari elemen batch yang ada, menerbitkan pesan ke MessageBox, dan mengakhiri. Pesan kontrol ini dikirim dengan mengklik tombol Hentikan konfigurasi batch pada halaman Konfigurasi Batching dari tab perjanjian satu arah dari kotak dialog Properti Perjanjian .

    Catatan

    Orkestrasi juga dihentikan jika mencapai waktu yang ditentukan untuk properti End-by di bagian Penghentian halaman Konfigurasi Batching dari tab perjanjian satu arah dari kotak dialog Properti Perjanjian .

  • BatchOverride: Saat orkestrasi menerima pesan ini, orkestrasi membuat batch dari elemen yang ada, menerbitkan pesan ke MessageBox, lalu menunggu pesan untuk batch berikutnya. Pesan kontrol ini dikirim dengan mengklik tombol Ambil alih konfigurasi batch pada halaman Konfigurasi Batching dari tab perjanjian satu arah dari kotak dialog Properti Perjanjian .

    Orkestrasi batching menerima pesan kontrol melalui lokasi penerimaan BatchControlMessageRecvLoc. Interval polling untuk lokasi penerimaan SQL ini diatur secara default ke 30 detik, tetapi dapat diubah dalam kotak dialog Properti Transportasi SQL untuk lokasi penerimaan. Mengurangi interval polling akan memastikan bahwa lokasi penerimaan BatchControlMessageRecvLoc akan menerima pesan kontrol segera setelah Anda melakukan tindakan yang mengirim pesan kontrol (seperti saat Anda memulai orkestrasi batching).

    Langkah-langkah berikut terjadi saat Anda memulai orkestrasi batch:

  1. Saat Anda mengklik tombol Mulai , BizTalk Server membuat rekaman dalam tabel yang menunjukkan pihak dan id batch mana yang Anda aktifkan orkestrasi batchnya.

  2. Adaptor SQL yang terkait dengan polling lokasi penerimaan BatchControlMessageRecvLoc untuk melihat apakah rekaman ada dalam database.

  3. Jika rekaman ada, adaptor SQL membuat pesan kontrol, menggunakan informasi dalam rekaman.

    Catatan

    Membangun pesan kontrol dengan cara ini memastikan bahwa orkestrasi tidak dapat dimulai oleh pesan kontrol yang tidak valid.

  4. Lokasi terima BatchControlMessageRecvLoc menerima pesan kontrol, dan BizTalk Server mengaktifkan instans orkestrasi batching.

Komponen Batch

BizTalk Server EDI menggabungkan kumpulan transaksi XML ke dalam pertukaran EDI menggunakan komponen berikut:

  • BatchMarkerReceivePipelineComponent di alur penerimaan EDI

  • Orkestrasi Perutean

  • Orkestrasi Batching

  • Meningkatkan Orkestrasi Batching

  • Orkestrasi BatchSuspend

  • Alur Pengiriman EDI

    Komponen-komponen ini diinstal sebagai DLL saat Anda menginstal dan mengonfigurasi BizTalk Server EDI dan AS2.

Catatan

Komponen batching di BizTalk Server EDI dan AS2 tidak menjamin urutan set transaksi dalam batch.

BatchMarkerReceivePipelineComponent

BatchMarkerReceivePipelineComponent di alur penerimaan EDI memungkinkan orkestrasi batching untuk mengambil pesan yang akan di-batch. Komponen alur ini diterapkan setelah Disassembler di Alur Penerimaan EDI. Komponen mengevaluasi kriteria filter yang ditetapkan di bagian Filter dari halaman Konfigurasi Batching dari tab perjanjian satu arah dari kotak dialog Properti Perjanjian , dan menandai kumpulan transaksi dengan properti konteks berikut untuk diproses oleh orkestrasi perutean dan batching

  • Jika satu pihak berlangganan pesan yang akan di-batch, itu mempromosikan ToBeBatched = True dan BatchId diatur ke nilai ID batch dari konfigurasi batch yang cocok. Ini memungkinkan penjemputan oleh orkestrasi batching.

  • Jika beberapa batch berlangganan pesan yang akan dikelompokkan, ia mempromosikan ToBeRouted = True, dan mengatur EDI.BatchIds properti yang diatur ke daftar ID batch yang dibatasi spasi. Ini memungkinkan penjemputan oleh orkestrasi perutean.

  • Jika tidak ada langganan, langganan tidak mempromosikan properti konteks. Ini menunjukkan bahwa set transaksi tidak akan di-batch.

    Komponen alur mengabaikan pesan selain XML dan pesan dengan ReuseEnvelope properti (batch yang dipertahankan). Jika pengakuan tidak akan di-batch, komponen alur akan mengabaikan jenis pesan ACK (CONTRL, TA1, dan 997). Untuk mengoptimalkan pemrosesan orkestrasi perutean dan batching, BatchMarkerPipelineComponent meneruskan pesan ke MessageBox jika properti MessageDestination konteks pesan diatur ke "SuspendedQueue" oleh pembongkar.

    Jika Anda menggunakan alur kustom, bukan alur EDIReceive, Anda dapat menggunakan komponen BatchMarker di alur kustom Anda. Jika Anda tidak menggunakan alur EDIReceive, dan menerbitkan pesan dari orkestrasi, Anda harus mempromosikan ToBeBatched = True dan BatchID ke ID batch aktif di salah satu komponen Anda.

Orkestrasi Perutean

Orkestrasi perutean berlangganan pesan apa pun dengan properti ToBeRouted = True konteks dan properti EDI.BatchIds konteks yang diatur ke daftar ID batch yang dibatasi spasi. Ini terjadi ketika beberapa filter batch berlangganan pesan yang akan di-batch. Orkestrasi perutean akan membuat salinan pesan untuk setiap ID batch yang terkandung dalam EDI.BatchIds. Ini memberi stempel setiap salinan dengan dua properti konteks baru:

  • EDI.BatchID, yang diatur ke ID batch yang ditujukan untuk pesan ini.

  • EDI.ToBeBatched, yang diatur ke True.

    Kemudian merutekan salinan ke MessageBox untuk diambil oleh orkestrasi batching. Setiap ID batch tujuan menggunakan instans database tunggal dari orkestrasi yang sama, dengan filter pada ID batch tertentu.

Orkestrasi Batching

Orkestrasi batching adalah layanan stateful yang buffer elemen batch (set transaksi) selama periode waktu tertentu, merakitnya ke dalam pertukaran, lalu melepaskan pertukaran ke alur kirim berdasarkan kriteria rilis.

Setelah diaktifkan, instans orkestrasi batching dapat mulai membuat batch pesan dari jenis pengodean tertentu ke pihak tertentu (jika tanggalwaktu mulai telah berlalu). Pada satu waktu mungkin ada banyak instans orkestrasi batching untuk setiap pihak, satu per konfigurasi batch aktif. Satu instans orkestrasi batching dapat merilis beberapa batch untuk satu konfigurasi batch. Setelah kriteria akhir terpenuhi, instans orkestrasi batching akan berakhir. Instans baru orkestrasi batching perlu dibuat secara manual dari Manajemen Mitra Dagang (TPM) menggunakan tombol Mulai .

Jika orkestrasi batch dimulai sebelum waktu tanggal mulai yang ditampilkan di bagian Aktivasi pada halaman Konfigurasi Batching dari tab perjanjian satu arah dari kotak dialog Properti Perjanjian , itu hanya akan menerima pesan yang ditentukan dalam rentang aktivasi. Ini tidak akan menerima pesan yang dikirim sebelum waktu tanggal mulai.

Orkestrasi batching melakukan hal berikut:

  • Berlangganan elemen batch XML dengan properti EDI.ToBeBatched = True konteks dan EDI.BatchId ID konfigurasi batch, atau EDI.ToBeBatched = True dan EDI. BatchName = nama batch dan EDI yang dikonfigurasi. DestinationPartyName = nama pihak yang berisi konfigurasi batch. Ini menerima elemen batch menggunakan operasi tindakan Terima dalam perulangan.

    Catatan

    Orkestrasi batching tidak mengumpulkan kumpulan transaksi berdasarkan kriteria filter yang ditetapkan di bagian Filter halaman Konfigurasi Batching dari tab perjanjian satu arah dari kotak dialog Properti Perjanjian . Ini berlangganan set transaksi yang memiliki properti konteks di atas yang ditetapkan padanya. Komponen alur BatchMarker menetapkan dan mempromosikan properti konteks tersebut berdasarkan pengaturan filter di properti pihak.

  • Mengambil pengaturan konfigurasi batch untuk pihak yang diidentifikasi dalam BatchId properti konteks.

  • Memvalidasi elemen batch (kumpulan transaksi) berdasarkan pengaturan pihak.

  • Jika ada kesalahan dalam elemen batch, orkestrasi batching akan mempromosikan properti berikut pada set transaksi tersebut: EDI.BatchItemValidationFailure = True. Orkestrasi BatchElementSuspend berlangganan ke setiap set transaksi yang properti ini telah dipromosikan. Orkestrasi ini akan memberikan informasi kesalahan terperinci untuk kesalahan pertama yang ditemui dalam batch pertukaran.

  • Jika tidak ada kesalahan dalam elemen batch, memegang referensi ke elemen batch tersebut.

  • Ketika pesan kontrol yang sesuai diterima atau kriteria rilis batching terpenuhi, keluar dari perulangan tindakan Terima , mengambil semua elemen batch dari MessageBox, dan menyusun pertukaran.

  • Mengatur properti ToBeBatched = False konteks untuk pertukaran dan properti konteks DestinationPartyName = %PartyName% di mana %PartyName% adalah nama pihak yang pesannya dimaksudkan.

    Catatan

    Jika port pengiriman berlangganan salah satu atau kedua properti EDI.ToBeBatched = False dan EDI. DestinationPartyName = %PartyName%, yang mengirim port dapat mengambil pertukaran batch. Pastikan bahwa filter port pengiriman dikonfigurasi sedih sehingga port pengiriman hanya mengambil pertukaran batch yang dimaksudkan untuk diambil.

    Catatan

    Pertukaran yang dijatuhkan oleh orkestrasi batching ke dalam MessageBox hanya memiliki properti EDI.ToBeBatched = False, EDI. DestinationPartyName = %PartyName%, dan EDI. BatchEncodingType = "X12" atau "EDIFACT" dipromosikan ke konteks. Semua properti konteks dari set transaksi asli hilang.

  • Untuk pertukaran yang dikodekan X12, menerapkan properti berikut ke amplop:

    • ISA6: ID Pengirim Pertukaran

    • ISA8: ID Penerima Pertukaran

    • ISA15: Indikator penggunaan

    • ISA_Blob (ditulis sesuai konteks)

  • Untuk pertukaran yang dikodekan EDIFACT, menerapkan properti berikut ke amplop:

    • UNB2.1: ID Pengirim Pertukaran

    • UNB3.1: ID Penerima Pertukaran

    • UNB2.3: Alamat untuk Perutean Terbalik

    • UNB11: Indikator penggunaan

    • UNA_Blob (ditulis sesuai konteks)

    • UNB_Blob (ditulis sesuai konteks)

  • Mengirimkan pertukaran batch ke MessageBox untuk diambil oleh alur pengiriman EDI.

UpgradeBatching Orchestration

Orkestrasi UpgradeBatching menangani pesan yang propertinya EDI.ToBeBatched diatur ke true, tetapi tidak memiliki properti yang EDI.BatchID ditetapkan.

Dalam versi BizTalk Server sebelumnya, setiap pihak hanya dapat memiliki satu konfigurasi batch. Saat memproses pesan yang telah EDI.ToBeBatched diatur ke true, EDI.DestinationPartyId digunakan untuk menentukan pihak dan kemudian konfigurasi batch dibaca dari properti perjanjian.

Di BizTalk Server, setiap pihak dapat memiliki beberapa konfigurasi batch yang terkait dengannya, sehingga EDI.DestinationPartyId tidak memberikan informasi yang cukup untuk menentukan konfigurasi batch mana yang harus digunakan. Ketika BizTalk Server menerima pesan, EDI.BatchId properti digunakan untuk mengidentifikasi konfigurasi batch tertentu mana yang harus digunakan saat memproses pesan.

Setelah memutakhirkan ke BizTalk Server, Anda mungkin masih memiliki alur kustom yang menggunakan EDI.DestinationPartyId properti untuk menentukan konfigurasi pihak. Ketika pesan diterima yang telah EDI.ToBeBatched diatur ke true, dan telah EDI.DestinationPartyID mengatur alih-alih EDI. BatchID, orkestrasi UpgradeBatching mencoba menentukan konfigurasi batch mana yang harus digunakan.

Orkestrasi UpgradeBatching menggunakan filter langganan berikut untuk berlangganan dokumen yang ditandai untuk batching, tetapi jangan tentukan ID batch:

  • EDI.ToBeBatched=True

  • EDI.EncodingType Ada

  • EDI.DestinationPartyId Ada

    Ketika orkestrasi menerima pesan, orkestrasi akan mencoba menemukan konfigurasi batch yang cocok untuk pesan dengan menggunakan nama pihak dan jenis pengodean. Properti EDI.DestinationPartyID digunakan untuk menentukan nama pihak, lalu orkestrasi mencari nama batch yang cocok dengan <PartyName>+<EncodingType>+Default. Misalnya jika nama pihak adalah Contoso, dan nilainya EDI.EncodingType adalah X12, maka orkestrasi akan mencari batch bernama ContosoX12Default.

    Jika konfigurasi batch yang cocok ditemukan, pesan ditempatkan kembali di kotak pesan dengan properti berikut:

  • EDI.ToBeBatched = True

  • EDI.ToBeRouted = False

  • EDI. BatchId = ID batch untuk batch yang cocok

    Orkestrasi batching kemudian akan memproses pesan

Catatan

Jika tidak ada batch yang cocok yang ditemukan, maka hal berikut akan terjadi:

  • Pesan tidak akan dikirim ke orkestrasi BatchSuspend.
    • Instans dan pesan orkestrasi UpgradeBatching akan ditangguhkan.
    • Kesalahan akan dicatat ke log peristiwa yang menyatakan bahwa batch tidak ditemukan.

Orkestrasi BatchSuspend

Orkestrasi BatchSuspend menangani pesan yang tidak valid yang diterima oleh orkestrasi batching. Orkestrasi BatchSuspend diperlukan karena tidak ada cara langsung untuk menangguhkan pesan dari orkestrasi (dalam hal ini, orkestrasi batching) tanpa menghentikan eksekusi instans orkestrasi.

Ketika instans orkestrasi batching menerima pesan, ia mencoba memvalidasinya. Jika pesan gagal validasi, orkestrasi batching membuat instans orkestrasi BatchSuspend, dan mengatur EDI.BatchItemValidationFailure properti konteks ke True. Orkestrasi BatchSuspend berlangganan semua pesan dengan properti konteks tersebut diatur ke True. Setelah kumpulan transaksi yang tidak valid dirutekan ke orkestrasi BatchSuspend, instans orkestrasi BatchSuspend ditangguhkan.

Informasi kesalahan terperinci untuk kesalahan pertama yang ditemui disediakan oleh orkestrasi BatchSuspend.

Anda dapat membuat orkestrasi kustom untuk menangani kumpulan transaksi yang gagal validasi oleh orkestrasi batching, dengan menggunakan EDI.BatchElementValidationFailure properti dalam filter.

Alur Pengiriman EDI

Setelah menerima pertukaran batch dari orkestrasi batching, alur pengiriman EDI melakukan hal berikut:

  • Untuk pertukaran yang dikodekan X12, alur kirim menerapkan properti berikut ke amplop:

    • ISA2: Informasi Otorisasi

    • ISA4: Informasi Keamanan

    • ISA9: Tanggal Pertukaran

    • ISA10: Waktu Pertukaran

    • ISA13: Nomor Kontrol Pertukaran

    • GS4: Tanggal

    • GS5: Waktu

    • GS6: Nomor Kontrol Grup

    • ST2: Nomor Kontrol Set Transaksi

  • Untuk pertukaran yang dikodekan EDIFACT, alur kirim menerapkan properti berikut ke amplop:

    • UNB4.1: Tanggal

    • UNB4.2: Waktu

    • UNB5: Referensi Kontrol Pertukaran

    • UNB6.1: Kata Sandi Referensi Penerima

    • UNG4.1: Tanggal

    • UNG4.2: Waktu

    • UNG5: Referensi Grup Fungsional

    • UNG8: Kata Sandi Aplikasi

  • Mengirimkan pesan melalui adaptor terkait

Lihat juga

Pesan EDI Keluar Batching