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.
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.)
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.Jika pengaturan filter lebih dari satu konfigurasi batch cocok dengan konteks pesan, komponen BatchMarker mempromosikan properti
EDI.ToBeRouted = True
dan mengaturEDI.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.
Orkestrasi perutean mengambil setiap set transaksi yang dan
EDI.ToBeRouted = True
EDI.BatchIds
dipromosikan, lalu membuat salinan set transaksi, memastikan bahwa ada salinan untuk setiap ID batch yang terkandung dalamEDI.BatchIds
. Orkestrasi perutean diaturEDI.ToBeBatched = True
danEDI.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.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 .
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.Ketika kriteria rilis batch telah terpenuhi, orkestrasi batch merakit elemen batch ke dalam batch dan membuat amplop.
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.
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:
Saat Anda mengklik tombol Mulai , BizTalk Server membuat rekaman dalam tabel yang menunjukkan pihak dan id batch mana yang Anda aktifkan orkestrasi batchnya.
Adaptor SQL yang terkait dengan polling lokasi penerimaan BatchControlMessageRecvLoc untuk melihat apakah rekaman ada dalam database.
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.
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 mengaturEDI.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 propertiMessageDestination
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
danBatchID
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 danEDI.BatchId
ID konfigurasi batch, atauEDI.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
AdaEDI.DestinationPartyId
AdaKetika 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 nilainyaEDI.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