Tuesday, December 12, 2017

Hit Business Services as much as N Times

1. Pendahuluan
Terkadang suatu Business Services (BS) biasanya di hit paling tidak 1 (satu) kali melalui Proxy Services (PS). Akan tetapi, ada beberapa kejadian BS tersebut memang diperlukan untuk di hit sebanyak N. Secara garis besar, konsepnya sama seperti ketika hit BS 1 (satu) kali, yang membedakan BS tersebut diletakkan dalam for-each. Kejadian untuk hit BS lebih dari 1 (satu) bisa terjadi karena beda database atau karena input delimeter (seperated menggunakan spesial karakter).

2. Studi Kasus, Tujuan, dan Flowchart
a). Studi Kasus
Studi kasus yang akan diambil anggap saja terdapat 2 (dua) tabel terpisah, pada 2 (dua) database yang terpisah juga. dengan contoh skema tabel seperti gambar di bawah ini :
Seperti yang terlihat pada gambar di atas akan menjadi seperti ini :
A. B001 pada tabel TB01 akan di hit sebanyak 2 (dua) kali, karena pada tabel TB09 idLayanan B001 sebanyak 2 (dua) record.
B. B003 pada tabel TB01 akan di hit sebanyak 1 (satu) kali, karena pada tabel TB09 idLayanan B003 sebanyak 1 (satu) record.
C. dan begitu seterusnya untuk record yang lainnya.

b). Tujuan
para pembaca memahami bagaimana melakukan perulangan untuk hit sebanyak N ke BS.

c). Flowchart

3. Implementasi
a). XSD
pada tahap ini, XSD di-generate menggunakan JDEV. Untuk melakukan query dibantu dengan sebuah view. view tersebut memerlukan parameter (branchid) dan mengembalikan (branch_id, AreaId, dan AreaName).

i). Input
ii). Output

b). Business Services
pada tahap ini, tidak ada yang "special" untuk membuat BSnya karena untuk melakukan looping berada di level PS.

c). Proxy Services
1. tambahkan sebuah stage.
2. tambahkan for-each

3. didalam for-each tambahkan service callout, seperti gambar di atas.
4. tambahkan penamaan request dan response sesuai keinginan. Nah, kolom "service" panggilah nama BS yang sudah dibuat sebelumnya. sebagai contoh gambar di bawah ini. 
5. isi assign yang berada pada request action, seperti gambar di bawah ini
6. di dalam for-each, tapi di luar service callout tambahkan insert. fungsi insert disini guna menggabungkan hasil balikan dari setiap query. 
7. isi pada insert seperti gambar di bawah ini. Nah, expression "Result" isinya seperti disampingnya.
8. jika sudah lakukan transformasi ke bentuk (output) yang diinginkan. dalam hal ini, seperti screen shot xsd 

9. untuk sampai ke bentuk pada nomer 8 tidak langsung jadi, masih perlu transformasi lg.

tag "<get:LayananCollateral>" menyesuaikan terhadap point nomer 8 baris 172.
tag "<get:Layanan>" menyesuaikan terhadap point nomer 8 baris 178.
tag "<get:IDLayanan>, <get:NamaLayanan>" menyesuaikan terhadap point nomer 8 bari 181 dan 182.

jika sudah semua tinggal dicoba pada soapui, dengan hasil pada gambar di bawah ini.

seperti contoh bagian point 2 yang studi kasus, bahwa :
a. idbranch 1020 hanya memiliki 1 (satu) layanan.
b. idbranch 1021 memiliki 2 (dua) layanan.

dan sekian tutorial dari gw, kiranya bermanfaat bagi pembaca sekalian. jikalau ada yang kurang jelas, silahkan bertanya ya...

No comments:

Post a Comment