Baca dalam bahasa Inggris

Bagikan melalui


Operasi Pemetaan Dasar dan Kompleks

BizTalk Mapper menyediakan solusi untuk berbagai skenario pemetaan mulai dari operasi jenis pohon induk-anak sederhana hingga operasi kompleks yang terperinci yang melibatkan rekaman perulangan dan hierarki. Kompleksitas skenario pemetaan tergantung pada preferensi dan kebutuhan bisnis Anda—bahasa definisi Skema XML (XSD) memberi Anda fleksibilitas yang cukup besar dalam menentukan format terstruktur. Hampir semua skenario pemetaan termasuk dalam salah satu dari dua kategori: pemetaan dasar dan pemetaan yang kompleks.

Pemetaan Dasar

Pemetaan dasar adalah jenis pemetaan paling umum yang dapat Anda buat. Dalam peta dasar, item input dan output memiliki hubungan satu-ke-satu. Item input memetakan ke satu dan hanya satu item output. Meskipun banyak jenis transformasi dan terjemahan dimungkinkan dengan pemetaan dasar, seperti menggunakan beberapa functoid dan cascading functoid untuk memanipulasi nilai yang disalin, skenario yang mendasarinya tetap relatif sederhana. Operasi pemetaan dasar juga mencakup bidang pemetaan dari dua rekaman induk yang berbeda (hanya terjadi sekali) ke bidang di bawah catatan induk tunggal dalam skema tujuan.

Pemetaan Kompleks

Pemetaan kompleks melibatkan rekaman atau bidang yang terjadi beberapa kali untuk satu instans simpul Elemen Rekaman atau Bidang di pohon skema. Simpul tersebut memiliki properti Max Occurs yang diatur ke nilai yang lebih besar dari satu (1), yang menunjukkan mungkin ada lebih dari satu elemen yang sesuai dalam pesan instans. Ketika peta BizTalk menggunakan jenis pemetaan jumlah variabel ini (juga dikenal sebagai perulangan), pengkompilasi lembar gaya Extensible Stylesheet Language (XSL) harus dapat menentukan jalur perulangan yang tepat untuk melakukan iterasi untuk menghasilkan output yang diperlukan.

Secara umum, Anda bisa menautkan bidang dalam rekaman perulangan dalam skema sumber ke bidang dalam rekaman perulangan dalam skema tujuan. Jumlah elemen yang sesuai dalam pesan instans input menentukan jumlah elemen yang dibuat dalam pesan instans output. Pertimbangkan fragmen XSD berikut dari contoh skema sumber dan tujuan.

Fragmen Skema Sumber

<xs:element minOccurs="1" maxOccurs="5"  
            name="SrcLoopingRecord">  
  <xs:complexType>  
    <xs:sequence>  
      <xs:element name="" type="xs:string" />   
      <xs:element name="" type="xs:integer" />   
    </xs:sequence>  
  </xs:complexType>  
</xs:element>  
  

Fragmen Skema Tujuan

<xs:element minOccurs="0" maxOccurs="unbounded"  
            name="DstLoopingRecord">  
  <xs:complexType>  
    <xs:sequence>  
      <xs:element name="" type="xs:string" />   
      <xs:element name="" type="xs:integer" />   
      </xs:sequence>  
    </xs:complexType>  
  </xs:element>  
  

Dalam fragmen ini:

  • SrcLoopingRecord, node Rekaman dalam pesan instans input, dapat terjadi dari satu hingga lima kali. Ini juga berisi simpul Elemen Bidang anak Field1 (string) dan Field2 (bilangan bulat) yang terjadi sekali untuk setiap instans induknya.

  • DstLoopingRecord, node Rekaman dalam pesan instans output, dapat terjadi nol (0) atau lebih kali, tidak terbatas. Ini juga berisi simpul Elemen Bidang anak FieldA (string) dan FieldB (bilangan bulat) yang terjadi sekali untuk setiap instans induknya.

    Dengan asumsi bahwa Field1 dipetakan ke FieldA dan Field2 dipetakan ke FieldB, dan bahwa fragmen berikut dari pesan instans input telah memproses pemetaan tersebut, fragmen berikut dari pesan instans output akan diproduksi.

Fragmen Pesan Instans Input

<SrcLoopingRecord>  
    <Field1>A string</Field1>  
    <Field2>10</Field2>  
</SrcLoopingRecord>  
<SrcLoopingRecord>  
    <Field1>Another string</Field1>  
    <Field2>11</Field2>  
</SrcLoopingRecord>  
<SrcLoopingRecord>  
    <Field1>A ball of string</Field1>  
    <Field2>12</Field2>  
</SrcLoopingRecord>  

Fragmen Pesan Instans Output

<DstLoopingRecord>  
    <FieldA>A string</FieldA>  
    <FieldB>10</FieldB>  
</DstLoopingRecord>  
<DstLoopingRecord>  
  <FieldA>Another string</FieldA>  
  <FieldB>11</FieldB>  
</DstLoopingRecord>  
<DstLoopingRecord>  
    <FieldA>A ball of string</FieldA>  
    <FieldB>12</FieldB>  
</DstLoopingRecord>  

Jumlah kemunculan elemen SrcLoopingRecord dalam pesan instans input (3) menentukan jumlah kemunculan elemen DstLoopingRecord dalam pesan instans output.

Jenis pemetaan yang tidak didukung oleh BizTalk Mapper adalah penggunaan beberapa jalur perulangan. Jenis pemetaan ini melibatkan bidang dari dua rekaman perulangan atau lebih dalam skema sumber yang dipetakan ke bidang dalam satu rekaman perulangan dalam skema tujuan. Ini menyajikan masalah—tidak ada cara yang efektif untuk menentukan jumlah elemen yang akan dihasilkan dalam pesan instans output. Beberapa jalur perulangan menghasilkan peringatan kompilasi peta yang menunjukkan bahwa simpul tujuan memiliki beberapa jalur perulangan sumber. Namun, ini hanya peringatan, dan jumlah iterasi di jalur perulangan sumber pertama digunakan untuk menentukan jumlah elemen yang dihasilkan dalam pesan instans output. Anda dapat mengambil kontrol eksplisit dari perilaku perulangan dengan menggunakan looping functoid.

Microsoft BizTalk Server memperkenalkan jenis perulangan baru yang disebut perulangan berbasis tabel. Perulangan berbasis tabel berguna ketika pesan instans output Anda perlu didasarkan pada data dari pesan instans input, dikombinasikan dengan satu atau beberapa konstanta, tautan dari skema sumber, atau functoid. Dalam kasus seperti itu, pesan instans output dapat memiliki beberapa rekaman berdasarkan data dari satu rekaman dalam pesan instans input yang dikombinasikan dengan konstanta yang berbeda, atau berdasarkan data yang berasal dari beberapa rekaman dalam pesan instans input. Untuk informasi selengkapnya tentang perulangan berbasis tabel menggunakan functoid Perulangan Tabel dan Ekstraktor Tabel , lihat Looping Tabel dan Functoid Ekstraktor Tabel.

Lihat juga

Maps
Membuat Peta Menggunakan BizTalk Mapper