Feeds:
Posts
Comments

Archive for the ‘Domino Development’ Category

Bagi teman-teman yang mempunyai tugas sebagai Lotus Domino Administrator, membatasi pengiriman lampiran bagi pengguna di tempat anda adalah hal yang sangat di perlukan, terlebih lagi bila bandwith dan mesin server Lotus Domino Anda telah masuk dalam kategori C Spasi D.

Saya pernah liat contoh, macetnya router task di sebabkan oleh salah satu pengguna yang mengirimkan email dengan lampiran di atas 10 Mb dan di kirim ke seluruh user. Dampaknya adalah server macet dan sibuk sejadi-jadinya. Itu server di restart berkali-kali juga nggak akan nolong. Ibarat the Bank Central di guyur milyaran dollar juga nggak akan nolong keluar dari krisis. 😀
Solusinya, matikan dulu domino server, simpan mail.box di tempat yang aman, hapus semua email dengan lampiran di mail.box tadi, kembalikan ke tempat semula dan jalankan kembali domino server. Jalan lagi deh.
Mau lebih aman lagi? jalankan script untuk menghapus email-email yang telah terkirim tadi. Lain kali saya akan share script untuk keperluan ini.

Nah, kalau sudah begini kita nggak bisa salahkan pengguna, lha wong dia cuma klik sini, klik di situ, klik atas, klik bawah, 1 Mb, 10 Mb, 100 Mb, nggak tau bedanya dia, yang dia tau klik send, beres deh. Mirip orang-orang mondar – mandir cari utangan ke Bank, lha dia sendiri juga nggak tau apakah nantinya akan mampu bayar….

Satu contoh lagi, ada pengguna yang kirim lampiran lebih dari 40 Mb dan di kirim ke group. Tapi kebetulan Servernya dan Bandwitdhnya mantap sehingga nggak menganggu operasional, tapi dia di maki-maki sama puluhan orang, konyolnya lagi, orang2 yang memaki-maki dia “reply to all“, jadinya satu hari cuma liat email ngurusin hal ini.ha ha ha ha.

oke, kembali ke pokok permasalahan,

Oleh karena contoh inilah, selain pembatasan ukuran email masuk, pembatasan email keluar per email juga sebaiknya di lakukan.

Namun sayangnya pembatasan jumlah ukuran lampiran email keluar hanya bisa di lakukan per-server.
Contohnya, bila satu mail server telah di set untuk membatasi pengiriman maksimum 5 Mb per email, maka rules ini akan berdampak ke semua user yang terdaftar di email server ini.

Bagaimana bila di inginkan, saya sebagai domino administrator hendak membatasi pengiriman lampiran user saya berdasarkan group?

Misalnya, group terdiri dari 4 kelompok berdasarkan level jabatan hanya boleh mengirimkan jumlah total lampiran seperti yang tertulis di bawah ini:

Group Standard user, hanya boleh mengirim lampiran di bawah 3 Mb,
Group Manager < 5 Mb,
Group BOD < 10 Mb,
Group Owner < 15 Mb

Fitur Server Rules, memungkinkan untuk memfilter email yang akan di kirimkan apakah melebihi ukuran yang telah di tetapkan,

Namun sayangnya akan sangat repot sekali membuat filtering untuk tujuan berdasarkan group seperti daftar group di atas, bila di paksakan akan sangat mempengaruhi beban server.

Untungnya, Lotus Notes Email mempunyai kode sumber (source code) yang terbuka (open), sehingga bebas untuk di lakukan modifikasi. Yang kita akan lakukan adalah memodifikasi Email Template.

Cara kerjanya adalah, ketika pengguna akan mengirim email dengan menekan tombol send, maka sebelum email di kirimkan, kita akan sisipkan logic formula yang akan mencek jumlah size total lampiran dan men-cek nama group apakah kita di perbolehkan mengirim email di bawah batas yang telah di tentukan.

Lebih terinci: kita akan membuat shared field, di mana share field ini akan mengandung logic untuk melakukan filtering. Share field ini akan kita sisipkan di form “Memo”, “Reply”, dan “Reply with history and attachments”

Pertama-tama yang mesti Anda sebagai Domino Administrator lakukan adalah membuat daftar group bila belum ada.
Dari contoh di atas, Group Standard User tidak perlu di buat, karena pada umumnya standard user memiliki user yang terbanyak di bandingkan 3 group lainnya yang di telah di sebutkan di atas.

Pastikan Anda mempunyai Domino Designer, dan gunakan ID Domino Admin atau ID yang lainnya yang memperbolehkan membuka email template. Hati-hati kita akan merubah email template. Backup dan simpan baik-baik email template yang sekarang ini di gunakan. Contoh email template yang di gunakan adalah mail7.ntf, mail8.ntf atau mail85.ntf tergantung dari versi server dan versi email yang digunakan.

Dalam contoh ini, saya membuat email template baru yang saya beri nama mail85m1.ntf yang merupakan new copy dari mail85.ntf

create_shared_fieldsBuka Domino Designer, Buka aplikasi mail85m1.ntf atau apapun nama aplikasi email template yang akan Anda gunakan.
Bila Anda menggunakan Domino Designer versi 8.5, siap-siap akan ada banyak interface yang berubah di bandingan dengan domino designer versi sebelumnya.
Ya, karena di versi 8.5 ini, Domino Designer running on Eclipse !

Buatlah shared field, dengan membuka navigasi shared elements –> fields. Tekan tombol new shared fields.

Berikan nama field sesuai selera Anda, Sebagai contoh, saya memberikan nama field ini sebagai “AttRestrictionRules“,

Paste formula di bawah ini, dan pastikan masuk ke “input validation”, bukan masuk “default value” atau tempat lainnya!

———————————————-

REM {GTW 2009};
OneMb := 1000000;
BeingMailed:=@If(@IsDocBeingMailed;1;0);

REM {DebugFlag=0 –> Debug mode off};
REM {DebugFlag=1 –> Debug mode on};
DebugFlag:=0;

quotaStdUser:=3;

GroupNameManager := “GroupManager”;
quotaManager:=5;

GroupNameBOD := “GroupBOD”;
quotaBOD:=10;

GroupNameOwner := “GroupOwner”;
quotaOwner:=15;

AttLengths:=@If(@Attachments=0;0;@Sum(@AttachmentLengths));

msg1:=”You are attempting to send a mail item whose total size is “;
msg2:=” megabytes or greater.  Please reduce the number of attachments and/or the size of the attachment(s) so the total amount of data being sent is below “;
msg3:=” megabytes”;

G2:=@If(@Member(GroupNameManager; @UserNamesList); 1;0);
Q2:=@If(AttLengths < (quotaManager*oneMb);1;0) ;
F2:=msg1+@Text(quotaManager)+msg2+@Text(quotaManager)+msg3;

G3:=@If(@Member(GroupNameBOD; @UserNamesList); 1;0);
Q3:= @If(AttLengths < (quotaBOD*oneMb);1;0) ;
F3:=msg1+@Text(quotaBOD)+msg2+@Text(quotaBOD)+msg3;

G4:=@If(@Member(GroupNameOwner; @UserNamesList); 1;0);
Q4:= @If(AttLengths < (quotaOwner*oneMb);1;0) ;
F4:=msg1+@Text(quotaOwner)+msg2+@Text(quotaOwner)+msg3;

G1:=@If(G2:G3:G4 = 0;1;0);
Q1:= @If(AttLengths < (quotaStdUser*oneMb);1;0) ;
F1:=msg1+@Text(quotaStdUser)+msg2+@Text(quotaStdUser)+msg3;

FErrMsg:=@If (
(G2=1 & Q2=0);F2;
(G3=1 & Q3=0);F3;
(G4=1 & Q4=0);F4;
F1);

GW:=@If( (G1&Q1=1 | G2&Q2=1 | G3&Q3=1 | G4&Q4=1);”Success”;”Gagal ” + FErrMsg);
GW2:=@If( (G1&Q1=1 | G2&Q2=1 | G3&Q3=1 | G4&Q4=1);1;0);

y1:=”G1 = ” + @Text(G1) + ” G2=” + @Text(G2) + ” G3 = ” + @Text(G3) +” G4 = ” + @Text(G4);
y2:=”. Att Length = “+@Text(AttLengths)+” “+GW;
y3:=y1+y2;

GW3:=@If(DebugFlag = 1 ;@Failure(y3);
DebugFlag = 0 & GW2=1;@Success;
DebugFlag = 0 & GW2=0;@Failure(FerrMsg);@Success
);

@If(BeingMailed;GW3;@Success)

fields_formula

Sudah?

Perhatian: Liat variabel DebugFlag di atas. Bila anda menguji apakah script ini berhasil atau tidak, silahkan ganti variabel DebugFlag di atas menjadi 1.
Kotak dialog akan muncul memberi tahu kepada Anda apkah script berjalan sukses atau gagal. Apapun kondisinya email ini tidak akan terkirim, ini hanya memberikan status Success atau failure.

Silahkan masuk ke navigasi form, dan sisipkan shared field ini ke dalam form2 berikut ini:
1. form Message alias Memo
2. form Reply alias Reply
3. form Reply with history and Attachments alias Reply

Sisipkan shared field “AttRestrictionRules” di sebelah field “Classificaiton” seperti contoh gambar di bawah ini.

insert_shared_fields

Lakukan hal yang sama pada 2 form “Reply” dan “Reply with history”

Sampai di sini, Anda telah memodifikasi email template mail85m1.ntf

Kita perlu user dan mailbox nya untuk uji coba.

Pilih salah satu user, sebagai contoh user test dengan mailbox yang berada di mail\usertest.nsf
Ketikan di server console “load convert mail\usertest.nsf * mail85m1.ntf”
Atau….
dari workspace klik kanan icon mail user test, masuk ke menu Application –> Replace Design, dan pilih template Mail85M1.ntf

siap-siap untuk menguji script ini.

Bila signer dari aplikasi email template yang Anda buat tadi belum terdafar di ECL (Execution Control List) maka akan muncul kotak peringatan Execution Security Alert seperti di bawah ini:

ecl

Jangan kuatir, ini karena Lotus notes client mendapatlan perintah untuk melakukan hal-hal yang di rasakan berbahaya dan butuh konfirmasi dari Anda sebagai pengguna untuk menilainya, apakah boleh trus atau tidak. Pandulah pengguna untuk memilih “Start trusting the signer to execute this action”, bila pengguna melakukan ini maka di kemudian hari, kotak ESC tidak akan muncul kembali.

Adalah lebih baik juga sebelum di apply email ini ke seluruh user, Anda sebagai admin menjalankan policy setting untuk ECS dan tambahkan ID Domino Admin anda ke dalam list. Sehingga “memaksa” user untuk menjalankan script akal-akalan yang telah kita buat dengan susah payah :-).
Caranya? nanti deh lain kali saya akan bahas mengenai implementasi policy setting. Oke ?

Silahkan masuk sebagai user test dan coba kirim email dengan lampiran lebih dari yang telah di tetapkan yaitu 3 Mb.

failuremsg1

Bila ingin di implementasikan ke seluruh user, ketikan di server console:

“load convert mail\*.* * Mail85M1.ntf”

Oya, script ini hanya berjalan di Notes Client, untuk versi web atau iNotes tidak berlaku.

Semoga bermanfaat,

Read Full Post »

Domino web access atau dulunya di kenal dengan nama inotes, sejak versi 8.0.1 yang di release bulan februari 2008 lalu kini tampil dengan dua versi, yaitu versi full dan satunya lagi adalah versi lite. Untuk yang mempunyai bandwidth terbatas, versi lite layak untuk di coba.

Tulisan di sini, membantu anda untuk membuat mail redirector sehingga user cukup login ke database ini dan system akan meng-arahkan (redirect) user ke web mailnya masing-masing.

Pertanyaan dari salah satu client kami adalah, bagaimana membuat dwa lite ini menjadi default main page, karena saat ini yang menjadi default main page adalah DWA yang versi full. Berikut akan saya sharing hasil otak-atik saya membedah database mail redirector.

Caranya adalah; gunakan domino designer untuk membuka database mail redirector yang anda telah buat.

1. Buka form “AutoLogin”. Open “AutoLogin” form.
2. Carilah field $$HTML yang terletak di pojok kanan bawah. Find the $$HTML field on the right corner below.
3. Lakukan modifikasi di field ini, seperti terlihat dalam gambar. Do modification the red text as it appears on the following text:

@If(tmpWMRProfileURL=””;”?OpenDatabase&ui=inotes“;tmpWMRProfileURL);

rubahlah menjadi. Change from the top into below like this.

@If(tmpWMRProfileURL=””;”?OpenDatabase&ui=dwa_lite“;tmpWMRProfileURL);

Nah, sekarang mail redirector telah menjadikan DWA Lite sebagai default pilihan user-user Anda dalam membuka domino web mail.

At this moment, everytime your users hit the mail redirector, it will make it dwa lite interface as a default. But, the users still change their web mail interface by click the “preference” button at top right button on the main page.

Read Full Post »

Teman-teman IT Admin sekalian, apakan Anda masih pake MS exchange 5.5? sejak tahun 2006 lalu microsoft no longer support that version. Mereka menganjurkan untuk segera migrate (bukan upgrade) ke versi terbarunya.

Mengutip dari situs ini bahwa tidak mudah untuk migrasi dari exchange 5.5 ke exchange 2007.

Biasa lah, “ciri khas” productnya microsoft. Versi terbaru belum tentu kompatibel dengan versi terdahulu.

Apakah anda bisa membuka file ms office vista di office 2003? bisa ? 🙂
yah, bisa puyeng.

Kembali ke masalah, Saya kutipkan important point dari situsnya microsot di atas sebagai berikut

You cannot upgrade an existing Exchange Server version 5.5 organization to Exchange 2007. You must first migrate from the Exchange Server 5.5 organization to either an Exchange 2003 organization or an Exchange 2000 organization, and then you can transition the Exchange 2003 or Exchange 2000 organization to Exchange 2007.

Ini nggak cuma sekedar migrasi exchange nya saja looh! tapi juga Windows Server, Active Directory, SQL Server dan konco konco lainnya. Saya belum explore lebih jauh apa yang mesti di pertimbangkan ketika akan migrasi produk2 yang berhubungan dengan Exchange.

Bagi Anda yang tidak ingin terikat dengan satu vendor, Ada baiknya bila Anda mempertimbangkan IBM Lotus Notes Domino sebagai infrastuktur messaging dan unified communication collaboration di tempat Anda.

Sejak versi 1.0 sampai dengan yang sekarang versi 8.0, IBM Lotus Notes Domino di jamin backward compatible. Proses upgrade (dan juga downgrade) relatif mudah. bahkan tidak perlu embel macam-macam.

Lotus Domino juga bisa di akses melalui Microsoft Outloook. Jadi tidak perlu khawatir bila user user Anda menolak menggunakan UI yang baru.

Bagi teman teman yang sudah menggunakan Domino dan berencana untuk pindah ke lain hati, jangan sampai kejadian ini menimpa Anda sekalian.

Masih tetap mau pake Exchange? Ada teman saya, budi febrianto yang menulis topik ini di sini

Mau membandingkan exchange dengan domino dengan fair dan jujur? Lihat di sini

Read Full Post »

Di posting sebelumnya, kita sudah pelajari cara membuat aplikasi ajax sederhana dengan menggunakan domino designer. Untuk contoh lainnya silahkan download di url di bawah ini.

http://www.nsftools.com/tips/NotesTips.htm#notessuggest

Letakan di domino server anda, dan jangan lupa di sign menggunakan server id / user id yang berhak menjalankan agent.

ns1.jpg

Aplikasi ini akan me-lookup dari notes address book dan menyarankan pilihan daftar contact yang tersedia. agak mirip-mirip dengan feature type-ahead lah!

Kalau cuma begini, kurang seru ah. Sekarang coba lihat url di bawah ini

http://code.google.com/apis/ajaxfeeds/documentation/blogpreview.html

Di sini contoh script ajax dari google untuk mengambil RSS.

Nah tantangannya adalah, dari dua aplikasi di atas, coba kita akan menggabungkan-nya. Kita akan mengambil salah satu nama yang tercantum dari Notes Addres book dan akan mencari nama itu di http://blogsearch.google.com

FYI, http://blogsearch.google.com dapat menghasilkan search result dalam bentuk XML.

Hasil akhir dari kombinasi (mash-up) dua aplikasi di atas sebagai berikut:
ns2.jpg

Berikut ini adalah perubahan yang di lakukan di aplikasi notessugest.nsf:

tambahkan formula di bawah ini di HTML Head Content di form WebNabLookup.
“<script type=\”text/javascript\” src=\”http://www.google.com/jsapi?key=GOOGLE_API_KEY\”></script>”

Rubah value dari google api key di atas sesuai dengan nama domain server yang anda gunakan. silahkan daftar di sini
http://code.google.com/apis/ajaxfeeds/signup.html

buat subform seperti gambar di bawah ini:
sf_google_feed.jpg

Masukan subform di atas ke dalam form “WebNabLookup”

Yang terakhir, sisipkan fungsi javascript di bawah ini di library “xmlHTTPLookup”

function searchGoogleBlog() {
 document.all[‘blog’].style.display = ”
 document.all[‘blog’].innerText = “Loading ….”
 strURL = “
http://blogsearch.google.com/blogsearch_feeds?hl=en&q=”
 strURL = strURL + document.forms[0].NameLookup.value.replace(/ /g, “+”)
 strURL= strURL + “&ie=utf-8&num=10&output=rss”
 document.forms[0].urltextbox.value = strURL
 alert(strURL)
 executeSearch();
}

dan sisipkan fungsi untuk memanggil searchGoogleBlog() di fungsi selectResult(), masih di library yang sama.
sgb.jpg

Selesai!

Read Full Post »

Berikut ini kita akan membuat aplikasi AJAX yang sangat-sangat sederhana dengan menggunakan domino designer. Karena sederhananya di harapkan kita bisa mengerti konsep dasar dari pemrograman AJAX.

Yang akan kita buat kali ini adalah, kita akan membuat satu form dengan dua field, di mana satu field akan kita beri nama “username” dan field yang lain kita beri nama field “time”. field “time” akan terisi otomatis bila pengguna (user) mengetik-kan sesuatu di field “username”.

Selain itu kita juga akan membuat suatu page untuk memuat informasi jam. simple.

Oke, silahkan buat satu form dengan dua field “username” dan “time”.

Sudah?

Sisipkan fungsi “ajaxFunction()” di field “username” di event onKeyUp. Ketikan isi lengkap dari fungsi “ajaxFunction()” di jsheader. Lihat gambar di bawah ini.
ajx_2.jpg

Sekali lagi saya ingatkan untuk menyisipkan fungsi “ajaxFunction()” di field “username” di event onKeyUp. Ini tidak tampak pada gambar di atas.

Mari kita kupas maksud dari ajaxFunction() ini.

Di sini kita akan membuat suatu object xmlHTTPRequest yang akan melakukan request ke web server.
Dalam contoh ini request yang akan di lakukan adalah request untuk membuka page “time” yang mana outputnya berupa informasi jam pada saat ini dan nilai-nya akan di transfer ke field “time”.

Perhatikan pada baris xmlHttp.readyState == 4, maksudnya adalah ketika request itu telah selesai di lakukan (completed) maka response dari request tadi akan di salin kembali di field “time”.

Langkah selanjutnya buat page dan berikan name “time”. Isi dari page ini adalah suatu <computed value> dengan formulanya “@text(@time(@now))”.

Saat ini aplikasi sudah siap untuk di jalankan. Bila semuanya berjalan dengan mulus, maka akan tampil kurang lebih seperti gambar di bawah ini.

ajx_3.jpg

Ketikkan sesuatu di kolom username, kolom time akan terisi otomatis setiap key yang di input di kolom username.

Read Full Post »

Ajax – ajax dong

AJAX? Asynchronous JavaScript And XML ???

Pertama kali mengenal istilah ini, kira-kira di sekitar tahun 2004-2005, saya agak bingung dan kurang tertarik untuk mendalami lebih dalam. Apa pentingnya AJAX dengan peran saya sebagai domino developer pada waktu itu.

Lama kelamaan, saya mulai menyadari bahwa teknik web programming (yang saya dapat dari internet dan dari teman2 seperjuangan)  yang saya lakukan di aplikasi domino mirip2 dengan teknik AJAX, dan itu telah mulai saya lakukan di sekitar tahun 98-an.

Saya banyak belajar teknik ini dari teman2 dari LPS (Lotus Profesinal Services) Arvino Mudjiarto dan James Budiono. Contoh sederhana yang saya pelajari dari mereka adalah, lookup Domino Address book melalui Web. Tekniknya adalah membuka suatu window, di mana window tersebut akan menjalankan lotus notes agent. Hasil output dari agent tersebut adalah berupa variabel Javascript (saat itu belum ada XML). Teknik lainnya adalah teknik show / hide suatu div atau span di halaman web. isi dari div / span ini akan di isi melalui notes agent sesuai dengan kebutuhan.

Tapi, teknik ini sekarang mungkin tidak cocok, karena kebanyakan browser dewasa ini by default tidak mengizinkan popup window. Lagipula output data yang di hasilkan tidak standard, suka-sukanya programmer memberikan nama js variable 😉 dan juga yang paling penting, kalau mau share data dengan aplikasi non domino juga agak susah.

Belakangan, saya banyak menggunakan teknik iframe window untuk menggantikan popup window dalam melakukan query ke backend database melalui notes agent.  

Oke, lanjut ke AJAX. paragraf ini adalah hasil terjemahan bebas dari situs w3schools 

AJAX bukanlah suatu jenis bahasa pemrograman baru, melainkan teknik untuk membuat aplikasi berbasiskan web secara interaktif, lebih baik, dan lebih cepat

Untuk mengerti AJAX, di harapkan anda telah memahami dengan baik mengenai HTML dan Javascript. Karena AJAX berdasarkan paling sedikit JavaScript dan HTTP request.

Dengan AJAX, javascript dapat berkomunikasi secara langsung dengan server, menggunakan Javascript object XMLHttpRequest. Dengan object ini Javascript dapat melakukan pertukaran data dengan web server tanpa perlu melakukan reload page secara keseluruhan.

AJAX menggunakan transfer data secara asinkron (HTTP request) antara browser dan web server, memungkinkan halaman web untuk meminta suatu informasi kecil yang diperlukan dari server tanpa perlu melakukan pengambilan informasi secara keseluruhan halaman.

Untuk lebih jelasnya, pada kesempatan berikutnya kita akan membuat suatu form sederhana dengan menggunakan IDE tools favorit kita, domino designer 🙂

Read Full Post »

By default ketika user akan membuat pesan “out of offce” maka pesan di email yang akan muncul adalah

 “I will be out of office starting ….”
di susul dengan special message di bawahnya yang user dapat tambahkan sesuai dengan keinginan masing-masing user. Lihat gambar di bawah ini untuk jelasnya.

oof_p.gif

Sayangnya pesan default “I will be …” di atas tadi tampaknya tidak bisa di rubah, karena berada di luar box. 

Pertanyaannya; apakah pesan di atas dapat di rubah sesuai dengan kebutuhan user?

Misalnya pesan tersebut akan di ganti menjadi

 “Maaf, orang yang anda hubungi tidak bekerja lagi di perusahaan kami, mohon hubungi admin@acme.co.id

Tentu saja,  jawabannya dapat.

Caranya adalah dengan menggunakan Domino Designer. Buka maildatabase user,
Buka form “(Out of Office Profile)”

oof_d.gif

Lakukan perubahan di field “DaysOut”
Rubah formula yang ada di sana sesuai dengan keinginan user.

Setelah selesai jangan lupa di save.
Penting di ingat, ketika user akan meng – “enable” agent ini, pesan default yaitu “I will be …” akan tetap muncul pada dialog box, tetapi message notifikasi kepada sender tetap akan terkirim sesuai dengan pesan yang telah di rubah di atas.

Untuk mencegah task “designer” yang akan mereplace database mail silahkan check box “prohibit design refresh or replace to modify” di design document property. 

 oof_x.gif

Selamat mencoba

Read Full Post »

« Newer Posts

%d bloggers like this: