Bagikan melalui


Cara Menggunakan Ekspresi untuk Melakukan Penugasan Pesan

Anda dapat menggunakan ekspresi untuk memanipulasi pesan dengan berbagai cara dalam orkestrasi Anda.

Merujuk ke kolom pesan

Anda dapat merujuk ke bidang khusus dalam pesan dengan menambahkan nama bidang ke nama pesan sebagai berikut:

MyMsg.Amount  

Dalam contoh ini, MyMsg adalah pesan, dan Jumlah adalah bidang yang telah diidentifikasi sebagai bidang khusus untuk jenis pesan yang menjadi dasar MyMsg.

Menetapkan pesan dan bagian pesan

Anda dapat menetapkan sebuah pesan langsung ke pesan lain, atau bagian dari pesan ke bagian lain dari pesan.

MyMsg=IncomingMsg;  
MyMsg.Invoice=IncomingMsg.Invoice;  

Dalam contoh ini, Faktur adalah bagian pesan berdasarkan skema.

Jika Anda ingin mengubah properti pada pesan yang telah dibuat—seperti pesan yang telah diterima—Anda harus membuat pesan baru dengan menetapkan yang pertama ke yang kedua dalam bentuk Pesan Konstruksi, dan mengubah properti pada pesan baru dalam bentuk Pesan Konstruksi yang sama.

Nota

Anda tidak dapat merujuk atau menetapkan ke bidang pesan, seperti MyMsg.Invoice.MyField, kecuali telah dipromosikan; Anda hanya dapat merujuk atau menetapkan ke seluruh pesan, bagian pesan, properti pesan yang dipromosikan, atau bidang khusus.

Menambahkan bagian pesan

Anda dapat menambahkan bagian tambahan ke pesan multipart yang ada dengan menggunakan metode XLANGs.BaseTypes.XLANGMessage.AddPart . Untuk melakukannya, lakukan hal berikut:

  • Buat proyek C# dan tambahkan referensi ke Microsoft.XLANGs.BaseTypes.

  • Terapkan kelas publik yang mirip dengan yang berikut ini:

    public class MyAddPartHelper  
    {  
         public static void AddPart(XLANGMessage msg, object part, String partName)  
         {  
              msg.AddPart(part, partName);  
         }  
    }  
    

    Ada tiga metode kelebihan beban untuk Microsoft.XLANGs.BaseTypes.AddPart:

    public void AddPart(object part, String partName);  
    public void AddPart(XLANGPart part);  
    public void AddPart(XLANGPart part, String partName);  
    
  • Dalam proyek BizTalk Anda, tambahkan referensi ke kelas publik dan panggil metode AddPart dari bentuk Ekspresi di orkestrasi Anda sebagai berikut:

    MyAddPartHelper.AddPart(myMessage, myStringObject, “StringObject1”);  
    

Nota

Anda tidak dapat menambahkan objek yang tidak dapat diserialisasikan atau objek terformat kustom sebagai bagian pesan. Semua bagian statis harus diinisialisasi sebelum menambahkan bagian tambahan menggunakan metode AddPart . Anda dapat menambahkan bagian arbitrer ke pesan hanya di dalam pernyataan konstruksi pesannya. Menambahkan bagian tambahan di luar pernyataan konstruksi pesan tidak didukung.

Mengambil bagian pesan

Anda dapat mengambil bagian pesan dari pesan multipart yang ada dengan menggunakan metode RetrieveAs dari Microsoft.XLANGs.BaseTypes. Untuk melakukannya, lakukan hal berikut:

  • Buat proyek C# dan tambahkan referensi ke Microsoft.XLANGs.BaseTypes.

  • Terapkan kelas publik yang mirip dengan yang berikut ini:

    Public class MyAddPartHelper  
    {  
         public static Object GetPart(XLANGMessage msg, string sName, Type t)  
         {  
              XLANGPart p =  msg[sName];  
              return p.RetrieveAs(t);  
         }  
         public static Object GetPart(XLANGMessage msg, int partIndex, Type t)  
         {  
               XLANGPart p = msg[partIndex];  
               return p.RetrieveAs(t);  
          }  
    }  
    

    Nota

    Metode RetrieveAs mendukung pengambilan bagian pesan berdasarkan nama dan menurut indeks.

  • Dalam proyek BizTalk Anda, tambahkan referensi ke kelas publik dan panggil metode GetPart dari bentuk Ekspresi di orkestrasi Anda sebagai berikut:

    sPart = (System.String) MyAddPartHelper.GetPart(msg, "StringObject1" , typeof(System.String));  
    //sPart is a type of System.String  
    sPart = (System.String) MyAddPartHelper.GetPart(msg, 1, typeof(System.String));  
    //Retriving the message part with index = 1  
    

Akses properti konteks komponen pesan

Bagian pesan memiliki konteks terpisah dari konteks pesan. Anda dapat membuat properti konteks bagian pesan melalui editor skema saat Anda mengatur properti Basis Skema Properti untuk elemen terkait ke PartContextPropertyBase.

Aksesnya mirip dengan properti pesan, melalui ekspresi seperti:

Msg.PartName(myPartContextProperty)  

Contohnya:

Str=Msg.PartName(myPartContextProperty); //assumes myPartContextProperty is of type string  

Akses properti konteks XLANGMessage

Jika Anda ingin mengakses properti pesan dari antarmuka XLANGMessage dari kode Anda, Anda dapat meneruskan pesan sebagai parameter jenis Microsoft.XLANGs.BaseTypes.XLANGMessage ke metode dari bentuk Ekspresi, lalu menggunakan metode Microsoft.XLANGs.BaseTypes.XLANGMessageSetPropertyValue dan GetPropertyValue untuk mencapai hal ini. Untuk melakukannya, lakukan hal berikut:

  • Buat proyek C# dan tambahkan referensi ke Microsoft.XLANGs.BaseTypes dan Microsoft.BizTalk.GlobalPropertySchemas.

  • Akses properti konteks menggunakan kode yang mirip dengan di bawah ini:

    MyMsg.GetPropertyValue(typeof(BTS.MessageID));  
    MyMsg.SetPropertyValue(typeof(MIME.IsMultipartRelated), true);  
    

Nota

Jika Anda ingin mendapatkan atau mengatur properti konteks kustom Anda sendiri, Anda perlu menambahkan referensi ke proyek skema properti Anda atau menambahkan referensi ke rakitan berisi skema properti dalam proyek C# Anda.

Menetapkan ke properti pesan

Anda dapat menetapkan nilai ke properti pesan:

MyMessage(MySchemaNamespace.MyProperty)=True;  

Di BizTalk Server, Anda dapat merujuk dan menetapkan nilai ke properti MIME dari pesan multi-bagian:

Message_Out.MessagePart_1(MIME.FileName)="document.doc";  

Nota

Pesan BizTalk terdiri dari konteks pesan dan bagian pesan. Anda harus terlebih dahulu menginisialisasi bagian pesan sebelum Anda bisa mendapatkan atau mengatur properti konteks pesan apa pun; jika tidak, Anda akan menerima kesalahan selama waktu kompilasi XLANG.

Lihat Juga

Menggunakan Pesan dalam Orkestrasi
Membuat Pesan dalam Kode Pengguna