ContinuationToken
Token kelanjutan digunakan untuk menghubungkan informasi heterogen dalam infrastruktur BAM. Pertimbangkan proses bisnis yang membangun jenis pesan berikut:
Pesanan pembelian yang diidentifikasi dengan nomor pesanan pembelian
Pesanan penjualan yang diidentifikasi oleh nomor pesanan penjualan
Pesanan pengiriman yang diidentifikasi dengan nomor pesanan pengiriman
Dalam proses ini, ada tiga pengidentifikasi penting: ID pesanan pembelian, ID pesanan penjualan dan ID pesanan pengiriman. Masing-masing pengidentifikasi ini menandakan peristiwa penting dalam masa pakai urutan asli, tetapi tidak dapat berkorelasi secara langsung. Untuk melacak peristiwa yang terkait dengan pesanan pembelian, informasi yang umum antara pesan harus diidentifikasi untuk membantu infrastruktur pelacakan BAM menghubungkan peristiwa secara akurat.
Token kelanjutan terdiri dari elemen ekspresi dan satu atau beberapa operasi:
<ic:ContinuationToken>
<ic:Expression>
<!-- Operations -->
</ic:Expression>
</ic:ContinuationToken>
Operasi umum berikut ini tidak diperbolehkan dalam ekspresi ContinuationToken:
Dan
Sama dengan
[Header bagian operasi di WF/WCF harus memiliki bagan serupa dan bagan lainnya sesuai kebutuhan]
Dalam contoh ini, token kelanjutan untuk proses WF diambil dari alur kerja dengan menggunakan GetWorkflowProperty
. Di sini pengembang memutuskan untuk memberikan dukungan untuk kelanjutan dalam alur kerja dengan menggunakan kode kustom, mungkin karena proses untuk menentukan token kelanjutan melibatkan lebih dari dua atau tiga ekspresi dan dapat mengandalkan data eksternal.
<ic:ContinuationToken>
<ic:Expression>
<wf:Operation Name="GetWorkflowProperty">
<wf:Argument>ContinuationToken</wf:Argument>
</wf:Operation>
</ic:Expression>
</ic:ContinuationToken>
Anda dapat memilih untuk menyediakan fungsionalitas serupa di aplikasi WF atau WCF baru Anda atau, jika token mudah dibuat menggunakan operasi ekspresi, Anda dapat menghindari penulisan kode tambahan.
Contoh berikut menetapkan token kelanjutan untuk proses WCF dengan menggunakan operasi JalurX untuk mengambil nomor kartu kredit dari pesan saat ini dan operasi konstanta dan menggabungkan untuk menambahkan string "CID_" ke nomor yang diambil:
<ic:ContinuationToken>
<ic:Expression>
<ic:Operation Name="Constant">
<ic:Argument>CID_</ic:Argument>
</ic:Operation>
<wcf:Operation Name="XPath">
<wcf:Argument>//Purchase/Payment/CreditCardNumber</wcf:Argument>
</wcf:Operation>
<ic:Operation Name="Concatenate" />
</ic:Expression>
</ic:ContinuationToken>