Sunday, March 11, 2018

How To Send Email From Oracle Service Bus

Hello Guys,

Pada kesempatan kali ini, gw akan share bagaimana caranya mengirimkan Email menggunakan Oracle Services Bus. Adapun tahapannya yaitu, sbb :

1. Configurasi SMTP Server.
2. Buat skema XSD. [2 File]
3. Buat skema WSDL. [1 File]
4. Buat Business Service. [1 File]
5. Buat Proxy Service. [1 File]

karena fokus pada pembuatan services, maka pada point 1 (pertama) dapat dilihat dengan referensi :
- http://www.soawork.com/2012/08/blog-post.html
- https://jmmatejavablog.wordpress.com/2013/10/08/sending-an-email-with-an-attachment-from-oracle-service-bus-part-3-chris-tomkins-blog/
- http://soa-bpel-esb.blogspot.co.id/2010/08/configure-email-server-with-oracle.html

---BAGIAN XSD---

1. EsbCommonSchema.xsd berfungsi sbg Autentifikasi payload request dan response saat service ini akan dipanggil (MANDATORY).
2. SendEmail.xsd berfungsi sbg "pengatur" payload request dan response untuk format mengirim email.
jangan lupa sesuaikan posisi penyimpanan EsbCommonSchema.xsd
*NB : pada baris ke 2 bagian schemaLocation.
---BAGIAN WSDL---
1. SendEmail.wsdl befungsi pengaturan binding, request, dan response yang mana ini nanti akan diconsume oleh Proxy Service
jangan lupa sesuaikan posisi penyimpanan SendEmail.xsd
*NB : pada baris ke 4 bagian schemaLocation.

---BAGIAN BUSINESS SERVICE---
1. Buatlah Business Service dengan nama "ProSendEmail_BS" atau mau ganti nama yang lain silahkan dengan kriteria seperti 4 gambar di bawah ini ya
Gambar 1

Gambar 2

Gambar 3


Gambar 4

---BAGIAN PROXY SERVICE---
1. Buatlah Proxy Service dengan nama "ProSendEmail_PS" atau mau ganti nama yang lain silahkan dengan kriteria seperti 3 gambar di bawah ini ya
Gambar 5

Gambar 6

Gambar 7

pada gambar yang 5 menggunakan resource SendEmail.wsdl yang sudah dibuat sebelumnya. pada gambar 6 menentukan jenis protocol dan Endpoint uri. jika sudah selesai pada bagian message flow (pipeline) buatlah hingga tampak seperti ini. Komponen untuk membuat seperti di bawah ini yaitu : (Pipeline Pair, Route, Stage(dalam request and response))
Gambar 8

---BAGIAN STAGE REQUEST---
pada gambar 9, terdapat 5 komponen assign dengan detil sbb, nah untuk peletakan posisi dibebaskan tidak harus sesuai pada detail dibawah, tapi expression dan variable nya juga harus make sense ya :

A. 
  • expression = $body/ssen:Email/ssen:RequestParameter/ssen:To/text()
  • variable = email_to
B.
  • expression = $body/ssen:Email/ssen:RequestParameter/ssen:CC/text()
  • variable = email_cc
C.
  • expression = $body/ssen:Email/ssen:RequestParameter/ssen:Subject/text()
  • variable = email_subject
D.
  • expression = $body/ssen:Email/ssen:RequestParameter/ssen:Body/text()
  • variable = email_body
E. 
  • expression = $body/ssen:Email/ssen:TrxId/text()
  • variable = trxid


Gambar 9

---BAGIAN STAGE RESPONSE---
pada gambar 10, terdapat 1 komponen yaitu Replace, dengan detil sbb :

A.

  • xpath, in variable, replace bisa dilihat pada gambar 11.
  • Expressions di bawah gambar 11 ya
Gambar 10

Gambar 11

---BAGIAN ROUTE---
pada gambar 12, terdapat komponen yaitu sbb :
1. 2 komponen transport header
2. 1 komponen if
3. 1 komponen replace
Gambar 12

nah pada tulisan "Routing" pilihlah target Business Services yang telah kita buat tadi dengan nama "ProSendEmail_BS" seperti pada tahap sebelumnya (gambar 15).

pada komponen transport header yang 1 kita isi seperti gambar 13, tulisan "email,Subject,To" bukan ditulis tapi milih dari combobox yang telah disediakan ya (contoh gambar 14).

Gambar 13

Gambar 14

Gambar 15

pada komponen if isikan conditionnya dengan "not(empty($email_cc))" tanpa kutip dua ya. jika sudah dilakukan kita lanjut pada transport header yang ke 2, yang berada di dalam if (gambar 16).

Gambar 16

selanjutnya yang terakhir replace pada gambar 12, lihat gambar 17
Gambar 17

nah sekarang semua sudah selesai, dan siap dilakukan pengujian. nah kali ini gw akan nyoba lewat IDE SoapUI.

Gambar 18

Gambar 19

Nah setelah dicoba sudah bisa ya mengirimkan email dari OSB, sesuai tujuan dari tutorial kali ini. semoga bermanfaat, dan selamat mengembangkan lebih jauh lagi ya...

jika ada pertanyaan atau ada yang kurang jelas, silahkan comment ya...

Terima kasih!



No comments:

Post a Comment