Tujuan Mengurangi ketergantungan ke modul-modul yang mengunakan email notif untuk menyediakan variable/paramater yang dibutuhkan oleh template. Ketika terjadi perubahan template dengan penambahan variable tidak perlu merubah code pada modul-modul yang menggunakan template yang dilakukan perubahan.
Kebutuhan Penggunaan Email Notification RWK1 adalah
-
Menyediakan Template yang digunakan
<html> <body> Member Code : ${headers.ctx.P_INS_CODE} Member Name : ${headers.ctx.P_INS_NAME} </body> </html>
Parameter- paramater
P_INS_CODE
danP_INS_NAME
tidak lagi di kirim oleh modul yang bersangkutan namun akan di cari menggunakan QUERY. -
Menyediakan Query yang digunakan untuk melakukan pencarian data
SELECT INSTRUMENT_CODE P_INS_CODE, INSTRUMENT_NAME P_INS_NAME FROM GEN_MD_ISTRUMENT WHERE INSTRUMENT_ID =:P_TX_ID
:P_TX_ID
adalah paramater yang di filter yang dikirim oleh modul untuk melakukan pencarian data -
Menyediakan subject Email Template
Ini Subject Email ${headers.ctx.P_INS_CODE} - ${headers.ctx.P_INS_NAME}
Untuk Subject email akan di perlakukan sama dengan body message (di binding velocity).
-
Pemanggilan email notification di modul lebih simple. Telah di sediakan method static pada class
EmailNotifUtil
dengan methodregisterMailOnDbAndQueueQueryParamater
dengan paramaterList<Map<String,Object>>
param.put(IEmailNotifConstans.IMailParamJson.EMAIL_GROUP_CODE,emailGroup); param.put(IEmailNotifConstans.IMailParamJson.EMAIL_PROCESS_CODE, emailProcess); map.put(IMailParamJson.EMAIL_GROUP_CODE, emailGroup); map.put(IMailParamJson.EMAIL_PROCESS_CODE, emailProcess); map.put(IMailParamJson.CARBON_COPY, null); map.put(IMailParamJson.BLIND_CARBON_COPY, null); map.put(IMailParamJson.ATTACHMENT_PATH, null); map.put(IMailParamJson.ATTACHMENT_FILE_NAME, null); map.put(IMailParamJson.ATTACHMENT_FILE_TITLE, null); map.put(IMailParamJson.AUTH_NAME,createBy!= null ? createBy:createByFromSa); map.put(IMailParamJson.SENDER, EmailNotifUtil.getEmailAddressConcat(paramEmailSender)); map.put(IMailParamJson.PARAMETER, help.getAcsId()); map.put(IMailParamJson.MEMBER_ID,dataTxMaster.getMemberId().longValue()); map.put(IMailParamJson.RECIPIENT, EmailNotifUtil.getEmailAddressConcat(paramEmailRecipient)); listOfMap.add(map); EmailNotifUtil.registerMailOnDbAndQueueQueryParamater(listOfMap);
Key Map
IMailParamJson.PARAMETER
merupakan ID dari transaksi yang akan digunakan sebagai filtering pencarian data dengan menggunakan Query yang terdapat pada templateENO_MD_PARAMATER.QUERY_PARAMATERS
. -
File Attachments
- File Attachments yang digenerate oleh sendiri Oleh Modul.
map.put(IMailParamJson.ATTACHMENT_PATH, null); map.put(IMailParamJson.ATTACHMENT_FILE_NAME, null); map.put(IMailParamJson.ATTACHMENT_FILE_TITLE, null);
Tambahkan value untuk
ATTACHMENT_PATH,ATTACHMENT_FILE_NAME,ATTACHMENT_FILE_TITLE
- File Attachment generate by Report Server. Tambahkan paramater paramater yang digunakan pada table ENO_MD_TEMPLATE_PARAM. email notif akan secara otomatis mencari field yang sama penamaannya / alias dari hasil query dan akan digunakan untuk generate report dari paramater.
Modul yang telah menggunakan email notification RWK1 adalah modul ACS allocation pada class DftSaAcsDataSMImpl
method sendNotif