<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4128549255969916400</id><updated>2012-02-10T05:22:46.126-08:00</updated><category term='Domino designer 8.5.1'/><category term='Lotus Designer 8.5.1'/><category term='Dojo'/><category term='Web Development'/><category term='XPage'/><category term='Lotus Designer 8.5.2'/><category term='Quickplace'/><category term='SharePoint'/><category term='Miscellaneous'/><category term='Java'/><category term='Lotus Notes'/><category term='Domino Java'/><category term='Lotus Designer 8.5'/><title type='text'>Lotus Notes</title><subtitle type='html'>Tips and Tricks for Lotus Domino and Domino Java</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default?start-index=101&amp;max-results=100'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>106</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-101770559198237078</id><published>2010-09-30T23:36:00.000-07:00</published><updated>2010-10-01T00:10:28.938-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Domino designer 8.5.1'/><title type='text'>Lotus Script agent sometimes unable to include Script Library, Any solution ?</title><content type='html'>I've a Lotus Script agent which usage Script library which is having Lotus Script classes and those classes are used in the agent.&lt;br /&gt;&lt;br /&gt;Sometimes agent unable to include the script library so the line where I create an object of the class gets failed. It throws &lt;span style="font-weight:bold;"&gt;"Type mismatch on external name"&lt;/span&gt; error. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/TKWDpmVSSOI/AAAAAAAABtw/byVTT2IsLSk/s1600/error.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 26px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/TKWDpmVSSOI/AAAAAAAABtw/byVTT2IsLSk/s400/error.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5522965268727482594" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To fix this, I only require to re-save the agent. It doesn't happen frequently but once or twice in a month. How to get rid of this problem ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-101770559198237078?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/101770559198237078/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2010/09/lotus-script-agent-sometimes-unable-to.html#comment-form' title='13 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/101770559198237078'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/101770559198237078'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2010/09/lotus-script-agent-sometimes-unable-to.html' title='Lotus Script agent sometimes unable to include Script Library, Any solution ?'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_T_-j3ZLqfNQ/TKWDpmVSSOI/AAAAAAAABtw/byVTT2IsLSk/s72-c/error.PNG' height='72' width='72'/><thr:total>13</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-5586829638752118185</id><published>2010-09-20T20:24:00.000-07:00</published><updated>2010-09-20T20:33:35.175-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SharePoint'/><title type='text'>Is it really hard to deploy custom SharePoint applications ?</title><content type='html'>A week ago I've asked this question on &lt;a href="http://stackoverflow.com/questions/3698932/question-about-custom-sharepoint-apps-deployment"&gt;stackoverflow.com&lt;/a&gt; and surprisingly didn't receive any response.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/TJgl77gqN9I/AAAAAAAABtc/RC7f4ka3B9w/s1600/1.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 119px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/TJgl77gqN9I/AAAAAAAABtc/RC7f4ka3B9w/s400/1.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5519203054859728850" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I'm going to get involve ( may be fully ) in deploying customized SharePoint application on our development server.I will sure post my experience with how to do steps. &lt;br /&gt;&lt;br /&gt;Meanwhile,I'm really interested to know someone's else experience :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-5586829638752118185?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/5586829638752118185/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2010/09/is-it-really-hard-to-deploy-custom.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/5586829638752118185'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/5586829638752118185'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2010/09/is-it-really-hard-to-deploy-custom.html' title='Is it really hard to deploy custom SharePoint applications ?'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_T_-j3ZLqfNQ/TJgl77gqN9I/AAAAAAAABtc/RC7f4ka3B9w/s72-c/1.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-5540183987039658419</id><published>2010-09-16T03:25:00.000-07:00</published><updated>2010-09-16T03:32:08.533-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lotus Designer 8.5.1'/><title type='text'>Any clue about this error ?</title><content type='html'>What could be the possible reason to get this error ,&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Unable to store document in xxxxx.nsf (NoteID = 670238) from server xxxxx.nsf (NoteID = 693670): Field length stored in document is incorrect &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/TJHx41dakFI/AAAAAAAABtU/j9dO_rIL_l0/s1600/1.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 77px;" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/TJHx41dakFI/AAAAAAAABtU/j9dO_rIL_l0/s400/1.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5517456977230991442" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Does anyone experience this before ? We are getting this error on multiple servers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-5540183987039658419?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/5540183987039658419/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2010/09/any-clue-about-this-error.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/5540183987039658419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/5540183987039658419'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2010/09/any-clue-about-this-error.html' title='Any clue about this error ?'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_T_-j3ZLqfNQ/TJHx41dakFI/AAAAAAAABtU/j9dO_rIL_l0/s72-c/1.PNG' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-3340609601092127078</id><published>2010-09-12T21:19:00.000-07:00</published><updated>2010-09-12T22:45:29.445-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Domino Java'/><title type='text'>Accessing pdf form fields using Domino Java</title><content type='html'>From past couple of days I'm working on a prototype project in which pdf form fields should be accessed using Domino Java.&lt;br /&gt;&lt;br /&gt;There are couple of tasks involved in this project ,&lt;br /&gt;&lt;br /&gt;* Designing user interface in pdf and&lt;br /&gt;* Reading fields data using Java&lt;br /&gt;&lt;br /&gt;I have struggle a lot to accomplish these tasks so I thought to blog it for my other fellow LN developers.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;table BORDER=0 width=100% style="border-style:solid;border-width:1px;border-color:#ECE9D6;"&gt;&lt;tr&gt;&lt;td bgcolor="#ECE9D8"&gt;&lt;b&gt;Designing user interface in pdf&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;To design user interface in pdf , You may choose any of these following options,&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&lt;table BORDER=0 width=100% style="border-style:solid;border-width:1px;border-color:#ECE9D8;"&gt;&lt;tr&gt;&lt;td bgcolor="#ECE9D8"&gt;1- &lt;a href="http://sourceforge.net/projects/itext/files/"&gt;Using iText Java API&lt;/a&gt;: IText for Java API provides handful of methods to design user interface in pdf.It's like a old Java AWT methods where you need to calculate coordinates to place your objects.It's not very precise and takes lots of time to design simple interface.Don't go with it if you want to design complex form.&lt;br /&gt;&lt;br /&gt;2- &lt;a href="http://www.adobe.com/products/livecycle/designer/"&gt;Adobe LiveCycle Designer&lt;/a&gt;: I've tried with trial version of this tool and found it allows you to design user interface and save it.But,You can't edit it in Adobe reader. For that, You must "Distribute" the form after saving.Distribution option is disabled in trial version and this option remain disabled if you are using stand alone version of this tool ( which I got from net).Adobe LiveCycle designer is integrated with Adobe Acrobat Pro.&lt;br /&gt;&lt;br /&gt;3- &lt;a href="http://www.adobe.com/products/indesign/"&gt;Adobe InDesign&lt;/a&gt;: This can be used to design acro pages but you must use Adobe Acrobat Pro to convert designed page into Acrobat form.You can refer following link to design form in InDesign,&lt;br /&gt;&lt;br /&gt;&lt;a href="http://layersmagazine.com/indesign-cs3-in-good-form.html"&gt;InDesign CS3, In Good Form&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;4- &lt;a href="http://www.adobe.com/products/acrobatpro/"&gt;Adobe Acrobat Pro&lt;/a&gt;: I'm using this and it fits perfectly to my need. Here is my sample form designed using Adobe Pro where information can be added and saved.,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TI20k44TsUI/AAAAAAAABs8/-mslm7YtmPs/s1600/1.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 166px;" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TI20k44TsUI/AAAAAAAABs8/-mslm7YtmPs/s400/1.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5516263664435573058" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;table BORDER=0 width=100% style="border-style:solid;border-width:1px;border-color:#ECE9D6;"&gt;&lt;tr&gt;&lt;td bgcolor="#ECE9D8"&gt;Reading fields data using Java&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;To accomplish this,I've used iText for Java API which seems only way to communicate easily with pdf objects.&lt;br /&gt;&lt;br /&gt;Since I'm not using iText to design pdf interface so accessing existing pdf using iText is pretty straight forward.&lt;br /&gt;&lt;br /&gt;&lt;span&gt;&lt;table BORDER=0 width=100% style="border-style:solid;border-width:1px;border-color:#ECE9D8;"&gt;&lt;tr&gt;&lt;td bgcolor="#ECE9D8"&gt;&lt;br /&gt;First, Add following two jars in your "Archive" folder of your agent ,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/TI22A36tFFI/AAAAAAAABtE/v63owWfSYuQ/s1600/2.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 302px; height: 239px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/TI22A36tFFI/AAAAAAAABtE/v63owWfSYuQ/s400/2.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5516265244725154898" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here is rest of code,&lt;br /&gt;&lt;br /&gt;import lotus.domino.*;&lt;br /&gt;import java.io.IOException;&lt;br /&gt;import java.util.HashMap;&lt;br /&gt;import java.util.Iterator;&lt;br /&gt;&lt;br /&gt;import com.itextpdf.text.pdf.AcroFields;&lt;br /&gt;import com.itextpdf.text.pdf.PdfReader;&lt;br /&gt;&lt;br /&gt;public class JavaAgent extends AgentBase {&lt;br /&gt;&lt;br /&gt;    public void NotesMain() {&lt;br /&gt;&lt;br /&gt;      try {&lt;br /&gt;            Session session = getSession();&lt;br /&gt;            AgentContext agentContext = session.getAgentContext();&lt;br /&gt;&lt;br /&gt;            try {&lt;br /&gt;              PdfReader reader = new PdfReader("C:\\My Documents\\SampleForm.pdf");&lt;br /&gt;              AcroFields form = reader.getAcroFields();&lt;br /&gt;              HashMap fields = (HashMap) form.getFields();&lt;br /&gt;              String key;&lt;br /&gt;                            &lt;br /&gt;              for (Iterator i = fields.keySet().iterator(); i.hasNext(); ) {&lt;br /&gt;               key = (String) i.next();&lt;br /&gt;               System.out.println(form.getField(key));&lt;br /&gt;             &lt;br /&gt;              }&lt;br /&gt;            }&lt;br /&gt;             catch (IOException ioe) {&lt;br /&gt;                     System.err.println(ioe.getMessage());&lt;br /&gt;                 }      &lt;br /&gt;&lt;br /&gt;      } catch(Exception e) {&lt;br /&gt;          e.printStackTrace();&lt;br /&gt;       }&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Note: If you know the fields name of your pdf form then you don't need for loop to scan entire form.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Here is the output ,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TI2466w_wBI/AAAAAAAABtM/R5otpXzwfrk/s1600/3.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 273px;" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TI2466w_wBI/AAAAAAAABtM/R5otpXzwfrk/s400/3.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5516268440945410066" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;As this project goes, I will write more about it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-3340609601092127078?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/3340609601092127078/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2010/09/accessing-pdf-form-fields-using-domino.html#comment-form' title='10 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/3340609601092127078'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/3340609601092127078'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2010/09/accessing-pdf-form-fields-using-domino.html' title='Accessing pdf form fields using Domino Java'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TI20k44TsUI/AAAAAAAABs8/-mslm7YtmPs/s72-c/1.PNG' height='72' width='72'/><thr:total>10</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-3768076169943371030</id><published>2010-09-07T20:17:00.000-07:00</published><updated>2010-09-07T22:04:36.841-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Domino Java'/><title type='text'>What is the best place to keep external jars in Domino Java ?</title><content type='html'>I prefer to keep my jars in Archive folder&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/TIcTg61eZQI/AAAAAAAABsU/sENq5c1-Bpg/s1600/1.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 295px; height: 222px;" src="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/TIcTg61eZQI/AAAAAAAABsU/sENq5c1-Bpg/s400/1.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5514397725008749826" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;But some bloggers says better to keep in &lt;span style="font-weight:bold;"&gt;\jvm\lib\ext\&lt;/span&gt; path.&lt;br /&gt;&lt;br /&gt;I'm testing my project on my client later it will work as scheduler.So, I tried to remove my jar from "Archive" folder and placed in following path on my local ,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/TIcUlxd6Y6I/AAAAAAAABsc/cyAN8SnzxMw/s1600/3.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 385px; height: 189px;" src="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/TIcUlxd6Y6I/AAAAAAAABsc/cyAN8SnzxMw/s400/3.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5514398907904975778" /&gt;&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;Restarted my client and recompiled my code, It stop detecting Oracle driver class and suggested following,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/TIcU9DsOmOI/AAAAAAAABsk/m-DZMvpap4M/s1600/2.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 115px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/TIcU9DsOmOI/AAAAAAAABsk/m-DZMvpap4M/s400/2.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5514399307933849826" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Next, I thought to set in Java build path. So, I added my jar in Libraries-&gt;Add external jars of project properties. Now, I was able to compile my code but when ran it throws an error "Class is missing".&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/TIcVmWvmOVI/AAAAAAAABss/cWP-ygLn1Ww/s1600/4.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 192px;" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/TIcVmWvmOVI/AAAAAAAABss/cWP-ygLn1Ww/s400/4.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5514400017422891346" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So, Now I'm again back to my working solution i.e., adding jars in archive folder of an agent.It works perfectly on my client but when I tried making it as a scheduler . It didn't work and server console says,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/TIcXKhr1AaI/AAAAAAAABs0/KPGhEVm3pRo/s1600/5.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 75px;" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/TIcXKhr1AaI/AAAAAAAABs0/KPGhEVm3pRo/s400/5.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5514401738346791330" /&gt;&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;Should I assume it's because agent is not able to detect "odbc.jar" ? &lt;br /&gt;&lt;br /&gt;But some bloggers say  "Java.lang.UnsupportedClassVersionError: Bad version number" because when you compile a .java file with one version of JDK and running the .class file with a different version of JVM. &lt;br /&gt;&lt;br /&gt;I'm compiling my code on 8.5.1 and server is 8.0.1 ( Linux OS ). &lt;br /&gt;&lt;br /&gt;What I would like to know ,&lt;br /&gt;&lt;br /&gt;* Where should I keep my jars for client or server based Domino Java apps ?&lt;br /&gt;&lt;br /&gt;* If domino client and server are not using same JDK version, How do I make sure my compile code works perfectly on any Domino server?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-3768076169943371030?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/3768076169943371030/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2010/09/what-is-best-place-to-keep-external.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/3768076169943371030'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/3768076169943371030'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2010/09/what-is-best-place-to-keep-external.html' title='What is the best place to keep external jars in Domino Java ?'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_T_-j3ZLqfNQ/TIcTg61eZQI/AAAAAAAABsU/sENq5c1-Bpg/s72-c/1.PNG' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-5251966611244815690</id><published>2010-09-07T05:44:00.000-07:00</published><updated>2010-09-07T06:53:14.805-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Domino Java'/><title type='text'>Does JavaDebugString setting works on client's notes.ini ?</title><content type='html'>In my last post ( http://planetlotus.org/735190 ), I've mentioned adding &lt;span style="font-weight:bold;"&gt;JavaDebugString=-XX:MaxPermSize=256M&lt;/span&gt; in my workstation's notes.ini increased the heap size.But,it doesn't seems true when I tested with following piece of code ,&lt;br /&gt;&lt;br /&gt; &lt;span style="font-weight:bold;"&gt;public void NotesMain() {&lt;br /&gt;&lt;br /&gt;      try {&lt;br /&gt;          Session session = getSession();&lt;br /&gt;          AgentContext agentContext = session.getAgentContext();&lt;br /&gt;&lt;br /&gt;           //Get the jvm heap size.&lt;br /&gt;            long heapSize = Runtime.getRuntime().totalMemory(); &lt;br /&gt;           //Print the jvm heap size.&lt;br /&gt;           System.out.println("Heap Size = " + heapSize);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;      } catch(Exception e) {&lt;br /&gt;          e.printStackTrace();&lt;br /&gt;       }&lt;br /&gt;   }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It says &lt;span style="font-weight:bold;"&gt;16777216 &lt;/span&gt; in both the cases. Does this setting only works on server's ini file or something wrong with my settings ? So, here are still my unanswered questions,&lt;br /&gt;&lt;br /&gt;* How do I increase heap size of Java agents on client or server machine ?&lt;br /&gt;&lt;br /&gt;* I assume increasing heap size may affect server performance, So is it possible to increase for just one agent or database ?&lt;br /&gt;&lt;br /&gt;I've tried changing &lt;span style="font-weight:bold;"&gt;HTTPJVMMaxHeapSize&lt;/span&gt; but no effect.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-5251966611244815690?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/5251966611244815690/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2010/09/does-javadebugstring-setting-works-on.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/5251966611244815690'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/5251966611244815690'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2010/09/does-javadebugstring-setting-works-on.html' title='Does JavaDebugString setting works on client&apos;s notes.ini ?'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-4212183140431029605</id><published>2010-09-06T22:06:00.000-07:00</published><updated>2010-09-06T23:17:59.551-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Domino Java'/><title type='text'>Overflow-Memory leak : What am I suppose to do ?</title><content type='html'>I'm in process of aligning my Java agent which mainly does two tasks, One to create Oracle table based on Oracle table configuration domino form and second to push Lotus Notes documents to Oracle.&lt;br /&gt;&lt;br /&gt;Unfortunately I haven't used recycle () correctly which leads memory leak and then overflow error. Once I get "Overflow" error, I can't run my Java agent. Every time I try it says same error doesn't matter if I try only with ,&lt;br /&gt;&lt;br /&gt;System.out.println("hello world");&lt;br /&gt;&lt;br /&gt;I thought if I restart my domino server it will kill hanged threads but I get same error even if I restart my domino server. However, when I restart my client it fixed the problem. So my question are,&lt;br /&gt;&lt;br /&gt;* How does Java threads are connected to Notes client?&lt;br /&gt;&lt;br /&gt;* How to kill Java threads without restarting Domino server?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-4212183140431029605?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/4212183140431029605/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2010/09/overflow-memory-leak-what-i-am-suppose.html#comment-form' title='15 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/4212183140431029605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/4212183140431029605'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2010/09/overflow-memory-leak-what-i-am-suppose.html' title='Overflow-Memory leak : What am I suppose to do ?'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-790947753953076702</id><published>2010-09-06T01:59:00.001-07:00</published><updated>2010-09-06T02:20:04.215-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Domino Java'/><title type='text'>How to use recycle method in Domino Java efficiently  ?</title><content type='html'>Demonstration of recycle method in designer help is fairly simple but how to use efficiently in little complex classes. Here is simple example,&lt;br /&gt;&lt;br /&gt;Places where I've used recycle method is commented with "my assumptions".Let me know my mistakes or suggest me better way to design classes.&lt;br /&gt;&lt;br /&gt;JavaAgent.java&lt;br /&gt;--------------------------------------------&lt;br /&gt;&lt;br /&gt;import lotus.domino.*;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;public class JavaAgent extends AgentBase &lt;br /&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt; &lt;span style="font-weight:bold;"&gt;public void NotesMain() {&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;span style="font-weight:bold;"&gt;try {&lt;/span&gt;&lt;br /&gt;   Session session = getSession();&lt;br /&gt;   AgentContext agentContext = session.getAgentContext();&lt;br /&gt;   Database db = agentContext.getCurrentDatabase();&lt;br /&gt;   ...&lt;br /&gt;   Animal cat= new Animal(session);&lt;br /&gt;   cat.findDetails(session);&lt;br /&gt;&lt;br /&gt;   /* my assumptions */&lt;br /&gt;   session.recycle();&lt;br /&gt;   db.recycle();&lt;br /&gt;   /*-------------*/&lt;br /&gt;      } &lt;br /&gt;   &lt;span style="font-weight:bold;"&gt;catch(Exception e) {&lt;/span&gt;&lt;br /&gt;   e.printStackTrace();&lt;br /&gt;  &lt;span style="font-weight:bold;"&gt;}&lt;br /&gt; }&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Animal Class&lt;br /&gt;-----------------------------------------------&lt;br /&gt;&lt;br /&gt;import lotus.domino.*;&lt;br /&gt;import java.sql.*;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;public class Animal {&lt;/span&gt;&lt;br /&gt;&lt;br /&gt; /* find details method */&lt;br /&gt; public String findDetails(Session session) throws Exception&lt;br /&gt; &lt;span style="font-weight:bold;"&gt;{&lt;br /&gt;  try{&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;   Database A= session.getDatabase(db.getServer(), "A");&lt;br /&gt;   getCatFromDb("A");&lt;br /&gt;   removeCat();&lt;br /&gt;   ...&lt;br /&gt;   /* my assumptions */&lt;br /&gt;   conn.close(); //created in constructor&lt;br /&gt;   stmt.close(); // created in getCatFromDb  &lt;br /&gt;   rs.close();  // created in getCatFromDb  &lt;br /&gt;   A.recycle();   //created in findDetails&lt;br /&gt;   db.recycle();  // created in constructor&lt;br /&gt;   /*----------*/&lt;br /&gt;     &lt;span style="font-weight:bold;"&gt;}&lt;br /&gt;  catch(Exception e)&lt;br /&gt;  {&lt;/span&gt;&lt;br /&gt;   e.printStackTrace();&lt;br /&gt;  &lt;span style="font-weight:bold;"&gt;}&lt;br /&gt; }&lt;/span&gt;&lt;br /&gt; /* Start Constructor */&lt;br /&gt; &lt;span style="font-weight:bold;"&gt;Animal (Session session)throws Exception {&lt;/span&gt;&lt;br /&gt;  &lt;span style="font-weight:bold;"&gt;try {&lt;/span&gt;&lt;br /&gt;    AgentContext agentContext = session.getAgentContext();&lt;br /&gt;    db = agentContext.getCurrentDatabase();&lt;br /&gt;    conn=...external driver...&lt;br /&gt;    ...some stuffs from db...&lt;br /&gt;    Document doc = db.getProfileDocument("config","");&lt;br /&gt;    ...some stuffs from doc...&lt;br /&gt;&lt;br /&gt;    ...jdbc connection here...&lt;br /&gt;    ...&lt;br /&gt;      &lt;span style="font-weight:bold;"&gt;}&lt;br /&gt;  catch(Exception e)&lt;br /&gt;  {&lt;/span&gt;&lt;br /&gt;   e.printStackTrace();&lt;br /&gt;  &lt;span style="font-weight:bold;"&gt;} &lt;br /&gt;   }&lt;/span&gt; // end Constructor&lt;br /&gt;&lt;br /&gt; /* getCatFromDb method */&lt;br /&gt; &lt;span style="font-weight:bold;"&gt; public void getCatFromDb(Database dbPath){&lt;/span&gt;&lt;br /&gt;            &lt;span style="font-weight:bold;"&gt; try{&lt;/span&gt;&lt;br /&gt;            View v=dbPath.getView("A");&lt;br /&gt;    if(v!=null)&lt;br /&gt;    {&lt;br /&gt;     Document doc= v.getFirstDocument();&lt;br /&gt;         while (doc != null)&lt;br /&gt;     {&lt;br /&gt;      ..some stuffs from external db like &lt;br /&gt;creating statement,recordset etc ...&lt;br /&gt;      &lt;br /&gt;      doc = v.getNextDocument(doc);&lt;br /&gt;     }&lt;br /&gt;   &lt;span style="font-weight:bold;"&gt; }&lt;/span&gt;&lt;br /&gt;     &lt;span style="font-weight:bold;"&gt;}&lt;/span&gt;&lt;span style="font-weight:bold;"&gt;catch(Exception e){&lt;/span&gt;e.printStackTrace();&lt;span style="font-weight:bold;"&gt;}&lt;/span&gt;&lt;br /&gt; &lt;span style="font-weight:bold;"&gt;}&lt;/span&gt;&lt;br /&gt;       &lt;span style="font-weight:bold;"&gt; public void removeCat() {&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;         // some stuffs here..&lt;br /&gt;&lt;br /&gt;       &lt;span style="font-weight:bold;"&gt; }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;}&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-790947753953076702?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/790947753953076702/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2010/09/how-to-use-recycle-method-in-domino.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/790947753953076702'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/790947753953076702'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2010/09/how-to-use-recycle-method-in-domino.html' title='How to use recycle method in Domino Java efficiently  ?'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-3182250818035437088</id><published>2010-09-05T20:31:00.001-07:00</published><updated>2010-09-05T22:56:01.463-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lotus Designer 8.5.1'/><title type='text'>What does this Domino Java error means ?</title><content type='html'>Any clue about this error ? Please note, I'm not doing anything to handle attachments.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRgpKTHSWI/AAAAAAAABrI/E9qtZVisPlA/s1600/1.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 198px;" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRgpKTHSWI/AAAAAAAABrI/E9qtZVisPlA/s400/1.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5513638104063756642" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;My Java console says , "java.lang.OutOfMemoryError"&lt;br /&gt;&lt;br /&gt;I'm recycling session and database once agent is done. Here is some piece of code,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRiH_nsH_I/AAAAAAAABrQ/0a3fYKBeHSw/s1600/1.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 299px;" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRiH_nsH_I/AAAAAAAABrQ/0a3fYKBeHSw/s400/1.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5513639733284839410" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Some more updates , code even doesn't execute very first "system.out.println.." line&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/TIR5vk4UTtI/AAAAAAAABr4/vOEiXFjbk-Y/s1600/1.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 328px;" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/TIR5vk4UTtI/AAAAAAAABr4/vOEiXFjbk-Y/s400/1.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5513665702069030610" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Updates:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Adding following in workstation's notes.ini solved the problem,&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;JavaDebugString=-XX:MaxPermSize=256M&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Any consequences in performance if I go with following setting ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-3182250818035437088?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/3182250818035437088/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2010/09/what-does-this-domino-java-error-means.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/3182250818035437088'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/3182250818035437088'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2010/09/what-does-this-domino-java-error-means.html' title='What does this Domino Java error means ?'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRgpKTHSWI/AAAAAAAABrI/E9qtZVisPlA/s72-c/1.PNG' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-6538897405555371575</id><published>2010-08-26T20:27:00.000-07:00</published><updated>2010-08-27T00:15:06.731-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lotus Designer 8.5.2'/><title type='text'>Irritating Domino Java "Progress Information" dialog</title><content type='html'>Here is most irritating thing in Domino Java. I'm waiting to finish this saving from last 3-4 minutes. &lt;br /&gt;&lt;br /&gt;What should I do ? Kill my Notes and restart or any happy solution ?&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/THcxAffXOQI/AAAAAAAABq4/eRIVZUno2Po/s1600/java.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 326px;" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/THcxAffXOQI/AAAAAAAABq4/eRIVZUno2Po/s400/java.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5509926553633896706" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-6538897405555371575?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/6538897405555371575/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2010/08/irritating-domino-java-progress.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/6538897405555371575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/6538897405555371575'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2010/08/irritating-domino-java-progress.html' title='Irritating Domino Java &quot;Progress Information&quot; dialog'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/THcxAffXOQI/AAAAAAAABq4/eRIVZUno2Po/s72-c/java.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-2821214649090734654</id><published>2010-07-06T19:18:00.000-07:00</published><updated>2010-07-07T18:34:32.785-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lotus Designer 8.5'/><title type='text'>Strange error while editing profile document</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Suddenly I'm unable to edit my profile document. I tried creating new but every time ended up with same error. Edit DB Profile agent has @Command([EditProfile];"DBProfile") formula.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/TDPkXduCuKI/AAAAAAAABpk/LeIk9xmWcRA/s1600/1.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 208px;" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/TDPkXduCuKI/AAAAAAAABpk/LeIk9xmWcRA/s400/1.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5490983462460635298" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;Any thoughts ?&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#000099;"&gt;&lt;i&gt;Updates :&lt;/i&gt;&lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span"  style="color:#000099;"&gt;&lt;i&gt; Deleting Cache.NDK file fixed the problem.&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-2821214649090734654?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/2821214649090734654/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2010/07/strange-error-while-editing-profile.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/2821214649090734654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/2821214649090734654'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2010/07/strange-error-while-editing-profile.html' title='Strange error while editing profile document'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_T_-j3ZLqfNQ/TDPkXduCuKI/AAAAAAAABpk/LeIk9xmWcRA/s72-c/1.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-3068273777600135818</id><published>2010-05-03T22:01:00.000-07:00</published><updated>2010-05-03T22:10:28.205-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lotus Notes'/><title type='text'>Print Vs PrintWriter in Lotus Notes 6</title><content type='html'>&lt;span class="Apple-style-span" style="font-size: small;"&gt;To further continue on my problem ( &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: verdana, arial, sans-serif; "&gt;&lt;a href="http://planetlotus.org/6a6c9c" style="color: rgb(153, 102, 153); "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;http://planetlotus.org/6a6c9c&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt; ),I'm seeking best possible way to build and pass xml of Notes document to third party application.I can't use view directly to generate xml because view contents needs to be updated each time when user use filter conditions. &lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: verdana, arial, sans-serif; "&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana, arial, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Now, I'm thinking to convert my Lotus Script agent into a Java one , by thinking "PrintWriter" can provide more size than a Lotus Script print statement . &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana, arial, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana, arial, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Can anyone provide some thoughts on this ? or any such experience on R6 servers ?&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana, arial, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:verdana, arial, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-3068273777600135818?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/3068273777600135818/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2010/05/print-vs-printwriter-in-lotus-notes-6.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/3068273777600135818'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/3068273777600135818'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2010/05/print-vs-printwriter-in-lotus-notes-6.html' title='Print Vs PrintWriter in Lotus Notes 6'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-2461732259492527245</id><published>2010-04-29T20:40:00.000-07:00</published><updated>2010-04-29T21:02:37.370-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lotus Notes'/><title type='text'>HELP: NotesStream class or Variant data type</title><content type='html'>I've been fighting with Lotus Notes limit issue from past couple of days. I'm building xml file from notes documents and passing them to non domino application.&lt;div&gt;&lt;br /&gt;&lt;div&gt;Initially I chose "variant" data type to store xml file and send using "Print" method. Everything works fine on &gt;R7 servers but failed on R6 servers when document grows more than 1000. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Is there any "variant" data type limit on R6 servers ??&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here is chunk of code using "variant" data type,&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/S9pWFsKCB7I/AAAAAAAABnc/1ayzZmzYliI/s1600/2.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 105px;" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/S9pWFsKCB7I/AAAAAAAABnc/1ayzZmzYliI/s400/2.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5465775753520089010" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Second solution, I've tried using "NotesStream" class. However this one also failed on R6 servers. Though it's mentioned 2GB maximum bytes can be written but still getting failed.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here is chunk of code using NotesStream class,&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/S9pU_GxD9uI/AAAAAAAABnU/sP_fLpKxqH0/s1600/1.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 119px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/S9pU_GxD9uI/AAAAAAAABnU/sP_fLpKxqH0/s400/1.PNG" border="0" alt="" id="BLOGGER_PHOTO_ID_5465774540892403426" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Any thoughts ??&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-2461732259492527245?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/2461732259492527245/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2010/04/help-notesstream-class-or-variant-data.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/2461732259492527245'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/2461732259492527245'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2010/04/help-notesstream-class-or-variant-data.html' title='HELP: NotesStream class or Variant data type'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_T_-j3ZLqfNQ/S9pWFsKCB7I/AAAAAAAABnc/1ayzZmzYliI/s72-c/2.PNG' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-2785089176911602480</id><published>2009-12-10T21:19:00.000-08:00</published><updated>2009-12-11T00:19:35.267-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XPage'/><title type='text'>XPages : How do you do ? ( Part 2)</title><content type='html'>In my &lt;a href="http://planetlotus.org/5f47cc"&gt;first&lt;/a&gt; "How do you do" &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;xpages&lt;/span&gt; learning series I learned how to execute client side simple Java Script on &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;xpages&lt;/span&gt; , Thanks to Tim &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;Tripcony&lt;/span&gt; who shared interesting work around.&lt;br /&gt;&lt;br /&gt;Actually I was trying to execute existing LS dashboard agent on &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;xpage&lt;/span&gt; using client side Java Script to draw a chart. Lets see how I've done,&lt;br /&gt;&lt;br /&gt;1- Created a new JavaScript script library with client side JavaScript which contains my &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;xmlhttp&lt;/span&gt; module to call Lotus Script agent.&lt;br /&gt;&lt;br /&gt;2- I've my Lotus Script agent ready which have logic to build flash charts ( Fusion Charts )&lt;br /&gt;&lt;br /&gt;3- Created button "Draw Chart" on &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;xpage&lt;/span&gt; and added JavaScript function "&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;drawChart&lt;/span&gt;()" which is inside my JavaScript library.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SyHc2A5ABDI/AAAAAAAABiI/ooLkhlTxlWM/s1600-h/xpages1.1.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 202px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SyHc2A5ABDI/AAAAAAAABiI/ooLkhlTxlWM/s400/xpages1.1.bmp" alt="" id="BLOGGER_PHOTO_ID_5413851047586169906" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;You might notice I've selected "Server" tab instead "Client" one , Just following Tim's advice.&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;4- Open source of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;xpage&lt;/span&gt; and add your Client side JavaScript library reference .&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;    &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SyHfbKY7ZLI/AAAAAAAABiQ/SXczWupZ2xk/s1600-h/xpages1.2.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 59px;" src="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SyHfbKY7ZLI/AAAAAAAABiQ/SXczWupZ2xk/s400/xpages1.2.bmp" alt="" id="BLOGGER_PHOTO_ID_5413853884814419122" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;cite&gt;&lt;br /&gt;To add Server side JavaScript library reference instead of ".&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;js&lt;/span&gt;" use ".&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;jss&lt;/span&gt;" and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;clientSide&lt;/span&gt;="false"&lt;br /&gt;&lt;br /&gt;5- As per Tim's advice add additional tags in source,  &lt;/cite&gt;&lt;xp:this.handlers&gt;&lt;xp:handler type="text/javascript"&gt;&lt;span style="font-style: italic;"&gt;so &lt;/span&gt;completed code will be ,&lt;br /&gt;&lt;br /&gt;&lt;xp:view xp="http://www.ibm.com/xsp/core" xc="http://www.ibm.com/xsp/custom"&gt;&lt;xp:this.resources&gt;&lt;/xp:this.resources&gt;&lt;xp:button value="Draw Chart" id="btnDrawChart"&gt;&lt;xp:eventhandler event="onclick" submit="false"&gt;&lt;xp:this.handlers&gt;&lt;xp:handler type="text/javascript"&gt;&lt;xp:this.script&gt;&lt;/xp:this.script&gt;&lt;/xp:handler&gt;&lt;/xp:this.handlers&gt;&lt;/xp:eventhandler&gt;&lt;/xp:button&gt;&lt;div id="displayContents"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SyHf7cAklqI/AAAAAAAABiY/wifot9m5oEk/s1600-h/xpages1.3.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 229px;" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SyHf7cAklqI/AAAAAAAABiY/wifot9m5oEk/s400/xpages1.3.bmp" alt="" id="BLOGGER_PHOTO_ID_5413854439299913378" border="0" /&gt;&lt;/a&gt;6- Switch to "Design" view of your &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;xpage&lt;/span&gt; and notice now code is moved into "Client" tab ( though we have started with "Server" tab )&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SyHgoF6KooI/AAAAAAAABig/iwcZQIjASPs/s1600-h/xpages1.4.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 183px;" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SyHgoF6KooI/AAAAAAAABig/iwcZQIjASPs/s400/xpages1.4.bmp" alt="" id="BLOGGER_PHOTO_ID_5413855206461579906" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Here is my desire output on the web when button is clicked ,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SyHhWuS2IaI/AAAAAAAABio/0cRrCrGpzmU/s1600-h/xpages1.5.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 258px; height: 400px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SyHhWuS2IaI/AAAAAAAABio/0cRrCrGpzmU/s400/xpages1.5.bmp" alt="" id="BLOGGER_PHOTO_ID_5413856007576494498" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Few days ago I was working on "Flex builder" and it's interesting to see &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;xpages&lt;/span&gt; development is very similar to flex development. Those who knows either of these can accelerate really fast.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/xp:view&gt;&lt;/xp:handler&gt;&lt;/xp:this.handlers&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-2785089176911602480?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/2785089176911602480/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2009/12/xpages-how-do-you-do-part-2.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/2785089176911602480'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/2785089176911602480'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2009/12/xpages-how-do-you-do-part-2.html' title='XPages : How do you do ? ( Part 2)'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SyHc2A5ABDI/AAAAAAAABiI/ooLkhlTxlWM/s72-c/xpages1.1.bmp' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-4603963009355736189</id><published>2009-12-10T17:37:00.000-08:00</published><updated>2009-12-10T18:03:22.543-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XPage'/><title type='text'>XPages : How do you do ? ( Part 1)</title><content type='html'>It's very common to see new articles and tips about &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;xpages&lt;/span&gt; in planet Lotus every day. Today I thought to make myself familiar with &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;xpages&lt;/span&gt;. To do so I thought to try with very popular and simple  program alerting "Hello World" when &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;xpage&lt;/span&gt; loads .&lt;br /&gt;&lt;br /&gt;Here is what I've tried,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SyGmzkDRjgI/AAAAAAAABh4/5-j1uYqp8pE/s1600-h/xpages2.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 138px;" src="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SyGmzkDRjgI/AAAAAAAABh4/5-j1uYqp8pE/s400/xpages2.bmp" alt="" id="BLOGGER_PHOTO_ID_5413791631856995842" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;When I view my &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;xpage&lt;/span&gt; on web got something like ,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SyGnNys_-VI/AAAAAAAABiA/wEghuDLZJe8/s1600-h/xpages3.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 128px;" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SyGnNys_-VI/AAAAAAAABiA/wEghuDLZJe8/s400/xpages3.bmp" alt="" id="BLOGGER_PHOTO_ID_5413792082466699602" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I'm using 8.5.1 designer with 8.5 server . Any clue ?&lt;br /&gt;&lt;br /&gt;Is it the right way to execute client side JavaScript on &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;xpages&lt;/span&gt; ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-4603963009355736189?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/4603963009355736189/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2009/12/xpages-how-do-you-do.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/4603963009355736189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/4603963009355736189'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2009/12/xpages-how-do-you-do.html' title='XPages : How do you do ? ( Part 1)'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SyGmzkDRjgI/AAAAAAAABh4/5-j1uYqp8pE/s72-c/xpages2.bmp' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-809593303284938152</id><published>2009-11-05T17:07:00.000-08:00</published><updated>2009-11-05T17:23:48.963-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Miscellaneous'/><title type='text'>Microsoft cuts BPOS price to squeeze Lotus</title><content type='html'>Just started my day with a cup of coffee and Google news and found an &lt;a href="http://blogs.zdnet.com/SAAS/?p=929"&gt;article&lt;/a&gt; in zdnet about some Microsoft market strategy.I don't get much interest in reading non technical stuffs but something is quite noticeable in this article.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;background-color:yellow;" &gt;"In a briefing earlier this week, Ron Markezich, corporate VP, Microsoft Online  Services told me that most of his team’s customer wins are at the expense of the  IBM division: “Seventy-five percent of our enterprise customers are coming from  a non-Microsoft platform — predominantly [Lotus] Notes.”&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;What only I care , Is this a correct figure ? If it is then It's serious concern for Lotus Notes professionals , But if not then what.. &lt;br /&gt;&lt;br /&gt;I would say F**k off Microsoft, don't spoil my day !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-809593303284938152?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/809593303284938152/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2009/11/microsoft-cuts-bpos-price-to-squeeze.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/809593303284938152'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/809593303284938152'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2009/11/microsoft-cuts-bpos-price-to-squeeze.html' title='Microsoft cuts BPOS price to squeeze Lotus'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-5947490627107319149</id><published>2009-11-01T23:59:00.001-08:00</published><updated>2009-11-16T18:23:36.461-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Domino designer 8.5.1'/><title type='text'>Designer 8.5.1 goodies - II ( Web Services Testing )</title><content type='html'>In my &lt;a href="http://planetlotus.org/5bdaec"&gt;last article&lt;/a&gt;, I've demonstrated how designer 8.5.1 can be used to connect SVN environments within domino designer for version controls.&lt;br /&gt;&lt;br /&gt;In this series, I'm going to show how designer 8.5.1 can be used to test Web Services in simple steps using SoapUI within Lotus Notes. Those who haven't done much in web services can follow my last article ( &lt;a href="http://planetlotus.org/4ebf74"&gt;Web Services implementation in Domino&lt;/a&gt; ) and I would discuss the same flight booking availability web service here. So lets skip the code and other details which I've added in the last article only Web Service testing part will be discussed.&lt;br /&gt;&lt;br /&gt;You may notice I've used Eclipse WTP to test my web service in earlier article. Let's check how SoapUI plugin with Domino designer 8.5.1 can used to test Web Services.&lt;br /&gt;&lt;br /&gt;First step would be to install SoapUI plugin from &lt;span style="FONT-WEIGHT: bold"&gt;http://www.soapui.org/eclipse/update/site.xml&lt;/span&gt; update site. Other details will be the same as mentioned in the last article. Once installation is done you can see SoapUI plugin in application location like below,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/Su6X7fzfI2I/AAAAAAAABgk/pDhgFYQWWi8/s1600-h/Designer_SOAP_9.bmp"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 238px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5399420051669328738" border="0" alt="" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/Su6X7fzfI2I/AAAAAAAABgk/pDhgFYQWWi8/s400/Designer_SOAP_9.bmp" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now go to designer and change your perspective to SoapUI,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/Su6ZDDZCOTI/AAAAAAAABgs/cG5sZLrQfl4/s1600-h/Designer_SOAP_1.bmp"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 278px; DISPLAY: block; HEIGHT: 299px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5399421280992770354" border="0" alt="" src="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/Su6ZDDZCOTI/AAAAAAAABgs/cG5sZLrQfl4/s400/Designer_SOAP_1.bmp" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/Su6ZHRvT1xI/AAAAAAAABg0/79Y5tLFeXP8/s1600-h/Designer_SOAP_2.bmp"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 312px; DISPLAY: block; HEIGHT: 400px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5399421353563772690" border="0" alt="" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/Su6ZHRvT1xI/AAAAAAAABg0/79Y5tLFeXP8/s400/Designer_SOAP_2.bmp" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Create new SoapUI project ,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/Su6ZXEa359I/AAAAAAAABg8/sZ6UM84uLjk/s1600-h/Designer_SOAP_3.bmp"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 305px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5399421624866301906" border="0" alt="" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/Su6ZXEa359I/AAAAAAAABg8/sZ6UM84uLjk/s400/Designer_SOAP_3.bmp" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Specify project name and WSDL file location,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/Su6ZmNcCgrI/AAAAAAAABhE/WIhUv1HCONs/s1600-h/Designer_SOAP_4.bmp"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 247px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5399421884985148082" border="0" alt="" src="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/Su6ZmNcCgrI/AAAAAAAABhE/WIhUv1HCONs/s400/Designer_SOAP_4.bmp" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Once you have done with wizard you should get following hierarchy ( It may differ if you generate TestSuite and MockService ).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/Su6aTr6z3iI/AAAAAAAABhM/RpZYnm7wOUM/s1600-h/Designer_SOAP_5.bmp"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 324px; DISPLAY: block; HEIGHT: 240px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5399422666261388834" border="0" alt="" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/Su6aTr6z3iI/AAAAAAAABhM/RpZYnm7wOUM/s400/Designer_SOAP_5.bmp" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Double click on "Request 1" to open SOAP request window,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/Su6bjSDCziI/AAAAAAAABhU/Fn4WKUM8q7g/s1600-h/Designer_SOAP_6.bmp"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 82px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5399424033706135074" border="0" alt="" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/Su6bjSDCziI/AAAAAAAABhU/Fn4WKUM8q7g/s400/Designer_SOAP_6.bmp" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You may notice there are some question marks in XML tag which denotes SOAP request needs argument to generate SOAP response. My flight booking web service takes four arguments Travel start date, Travel end date, Travel from and Travel to. I will pass the arguments as per my sample documents.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/Su6dU-JE6gI/AAAAAAAABhs/6W23ALn4VGM/s1600-h/LN_Docs.bmp"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 74px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5399425986867816962" border="0" alt="" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/Su6dU-JE6gI/AAAAAAAABhs/6W23ALn4VGM/s400/LN_Docs.bmp" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Pass your arguments and click on green arrow button . Here are both the results,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/Su6csyVEkkI/AAAAAAAABhc/aocV27JCjb4/s1600-h/Designer_SOAP_7.bmp"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 64px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5399425296502133314" border="0" alt="" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/Su6csyVEkkI/AAAAAAAABhc/aocV27JCjb4/s400/Designer_SOAP_7.bmp" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/Su6c57A2FUI/AAAAAAAABhk/WqenamKU9X4/s1600-h/Designer_SOAP_8.bmp"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 60px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5399425522171516226" border="0" alt="" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/Su6c57A2FUI/AAAAAAAABhk/WqenamKU9X4/s400/Designer_SOAP_8.bmp" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Drop me an e-mail for the database discussed in the article.&lt;br /&gt;&lt;br /&gt;Stay tune for more...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-5947490627107319149?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/5947490627107319149/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2009/11/designer-851-goodies-ii-web-services.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/5947490627107319149'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/5947490627107319149'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2009/11/designer-851-goodies-ii-web-services.html' title='Designer 8.5.1 goodies - II ( Web Services Testing )'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_T_-j3ZLqfNQ/Su6X7fzfI2I/AAAAAAAABgk/pDhgFYQWWi8/s72-c/Designer_SOAP_9.bmp' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-3534601364768285347</id><published>2009-10-30T00:49:00.000-07:00</published><updated>2009-11-16T18:23:47.845-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Domino designer 8.5.1'/><title type='text'>Designer 8.5.1 goodies - I ( Version control possibilities )</title><content type='html'>I was trying to find if we could do version controlling in Domino without using any paid software (something like Teamstudio). I had a curiosity if Eclipse having tight integration with the Concurrent Versions System (CVS) and Subversion (SVN), so can domino 8.5.1 provides the same? To keep this in mind I've started my R&amp;amp;D and found some possibilities. Here they are,&lt;br /&gt;&lt;br /&gt;My first task was to find the way to enable Subclipse ( Subclipse is a project to add Subversion support to the Eclipse IDE )in domino designer. In Eclipse it can be achieved easily using &lt;span style="FONT-WEIGHT: bold"&gt;Help-&gt;Software Updates&lt;/span&gt; menu option but it's not available in designer 8.5.1&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/Suqfmry03nI/AAAAAAAABeU/l_e28LOpE-M/s1600-h/Eclipse_view.bmp"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 224px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5398302590296710770" border="0" alt="" src="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/Suqfmry03nI/AAAAAAAABeU/l_e28LOpE-M/s400/Eclipse_view.bmp" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;However designer 8.5.1 has this feature hidden ( not completely the same as Eclipse ). To enable this feature you need to add following line in &lt;span style="FONT-WEIGHT: bold"&gt;plugin_customization.ini&lt;/span&gt; file which is located at &lt;span style="FONT-WEIGHT: bold"&gt;\Notes\framework\rcp&lt;/span&gt; path.&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;com.ibm.notes.branding/enable.update.ui=true &lt;span style="FONT-STYLE: italic"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You must need to start designer after modification. Now here is your &lt;span style="FONT-WEIGHT: bold"&gt;Install &lt;/span&gt;option,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SuqiJtvTwqI/AAAAAAAABec/CZHwrGHxxGk/s1600-h/Install_view.bmp"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 366px; DISPLAY: block; HEIGHT: 400px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5398305391137505954" border="0" alt="" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SuqiJtvTwqI/AAAAAAAABec/CZHwrGHxxGk/s400/Install_view.bmp" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Next task to enable Subclipse. Steps are,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SuqklaRsxxI/AAAAAAAABek/yD3Cx_ya3Ns/s1600-h/Install_view_1.bmp"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 179px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5398308065972635410" border="0" alt="" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SuqklaRsxxI/AAAAAAAABek/yD3Cx_ya3Ns/s400/Install_view_1.bmp" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Use Subclipse update site "http://subclipse.tigris.org/update_1.0.x"&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SuqmV6bd9yI/AAAAAAAABes/khc1j1hkstU/s1600-h/Install_view_2.bmp"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 359px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5398309998748890914" border="0" alt="" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SuqmV6bd9yI/AAAAAAAABes/khc1j1hkstU/s400/Install_view_2.bmp" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SuqoB6J0IbI/AAAAAAAABe0/P8OgqRJ16yY/s1600-h/Install_view_3.bmp"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 282px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5398311854100718002" border="0" alt="" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SuqoB6J0IbI/AAAAAAAABe0/P8OgqRJ16yY/s400/Install_view_3.bmp" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SuqoBzxYkAI/AAAAAAAABe8/VnFzPhWloto/s1600-h/Install_view_4.bmp"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 263px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5398311852387635202" border="0" alt="" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SuqoBzxYkAI/AAAAAAAABe8/VnFzPhWloto/s400/Install_view_4.bmp" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/Suqo0te_ANI/AAAAAAAABfM/uEC4ZDuBUXo/s1600-h/Install_view_5.bmp"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 263px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5398312726873178322" border="0" alt="" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/Suqo0te_ANI/AAAAAAAABfM/uEC4ZDuBUXo/s400/Install_view_5.bmp" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/Suqo0YGhaZI/AAAAAAAABfE/zB2BUxzvFxQ/s1600-h/Install_view_6.bmp"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 263px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5398312721133431186" border="0" alt="" src="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/Suqo0YGhaZI/AAAAAAAABfE/zB2BUxzvFxQ/s400/Install_view_6.bmp" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SuqpSl0LcuI/AAAAAAAABfU/uJ6bCqb6ARo/s1600-h/Install_view_7.bmp"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 382px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5398313240210666210" border="0" alt="" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SuqpSl0LcuI/AAAAAAAABfU/uJ6bCqb6ARo/s400/Install_view_7.bmp" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Once done you will be asked to restart Notes&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/Suqpv6-yz5I/AAAAAAAABfc/X7KIg-CYbRs/s1600-h/Install_view_8.bmp"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 123px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5398313744108539794" border="0" alt="" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/Suqpv6-yz5I/AAAAAAAABfc/X7KIg-CYbRs/s400/Install_view_8.bmp" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now go to designer and change your perspective to &lt;span style="FONT-WEIGHT: bold"&gt;SVN Repository&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/Suqq8o9MrDI/AAAAAAAABfk/ES3OOtdANy4/s1600-h/Install_view_9.bmp"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 292px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5398315062119935026" border="0" alt="" src="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/Suqq8o9MrDI/AAAAAAAABfk/ES3OOtdANy4/s400/Install_view_9.bmp" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Add new SVN repository ( For demo I'm connecting to Subclipse site where SVN is setup),&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SuqsLWZDAPI/AAAAAAAABfs/971bSLCq1KA/s1600-h/Install_view_10.bmp"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 373px; DISPLAY: block; HEIGHT: 400px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5398316414346133746" border="0" alt="" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SuqsLWZDAPI/AAAAAAAABfs/971bSLCq1KA/s400/Install_view_10.bmp" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Login id is : guest and password is space.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SuqssF-bCqI/AAAAAAAABf0/K6fznlbu1C8/s1600-h/Install_view_11.bmp"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 368px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5398316976875178658" border="0" alt="" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SuqssF-bCqI/AAAAAAAABf0/K6fznlbu1C8/s400/Install_view_11.bmp" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Once connected you can see existing repositories from SVN server,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SuqtTyT8TtI/AAAAAAAABf8/TzQVVmrUtdg/s1600-h/Install_view_12.bmp"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 341px; DISPLAY: block; HEIGHT: 256px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5398317658791497426" border="0" alt="" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SuqtTyT8TtI/AAAAAAAABf8/TzQVVmrUtdg/s400/Install_view_12.bmp" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To create version on SVN server use Team-&gt;Share Project option,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/Su4zuyB3SiI/AAAAAAAABgE/r0ZyEyJ1jZo/s1600-h/Install_view_13.bmp"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 351px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5399309882060392994" border="0" alt="" src="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/Su4zuyB3SiI/AAAAAAAABgE/r0ZyEyJ1jZo/s400/Install_view_13.bmp" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/Su40Uq2L3rI/AAAAAAAABgM/KvDS9GRj_Fw/s1600-h/Install_view_14.bmp"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 363px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5399310532967390898" border="0" alt="" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/Su40Uq2L3rI/AAAAAAAABgM/KvDS9GRj_Fw/s400/Install_view_14.bmp" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/Su40pb3IySI/AAAAAAAABgU/6yOULDKOyco/s1600-h/Install_view_15.bmp"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 363px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5399310889722104098" border="0" alt="" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/Su40pb3IySI/AAAAAAAABgU/6yOULDKOyco/s400/Install_view_15.bmp" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/Su40yFLb87I/AAAAAAAABgc/YQCBb5hgleY/s1600-h/Install_view_16.bmp"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 363px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5399311038252053426" border="0" alt="" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/Su40yFLb87I/AAAAAAAABgc/YQCBb5hgleY/s400/Install_view_16.bmp" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Stay tune for more..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-3534601364768285347?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/3534601364768285347/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2009/10/designer-851-goodies-i-version-control.html#comment-form' title='15 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/3534601364768285347'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/3534601364768285347'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2009/10/designer-851-goodies-i-version-control.html' title='Designer 8.5.1 goodies - I ( Version control possibilities )'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_T_-j3ZLqfNQ/Suqfmry03nI/AAAAAAAABeU/l_e28LOpE-M/s72-c/Eclipse_view.bmp' height='72' width='72'/><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-3194183346799032403</id><published>2009-10-29T18:28:00.001-07:00</published><updated>2009-11-12T15:13:41.846-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Development'/><title type='text'>Accessing SharePoint List programmatically in Domino Web Application</title><content type='html'>&lt;div&gt;I've submitted this tip to Search Domino, It can be read here .&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;a href="http://searchdomino.techtarget.com/tip/0,289483,sid4_gci1374073,00.html"&gt;http://searchdomino.techtarget.com/tip/0,289483,sid4_gci1374073,00.html&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;b style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;&lt;meta equiv="Content-Type" content="text/html; charset=utf-8"&gt;&lt;meta name="ProgId" content="Word.Document"&gt;&lt;meta name="Generator" content="Microsoft Word 12"&gt;&lt;meta name="Originator" content="Microsoft Word 12"&gt;&lt;link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CRSAHI%7E1.CGG%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml"&gt;&lt;link rel="Edit-Time-Data" href="file:///C:%5CDOCUME%7E1%5CRSAHI%7E1.CGG%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_editdata.mso"&gt;&lt;!--[if !mso]&gt; &lt;style&gt; v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);} &lt;/style&gt; &lt;![endif]--&gt;&lt;link rel="themeData" href="file:///C:%5CDOCUME%7E1%5CRSAHI%7E1.CGG%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx"&gt;&lt;link rel="colorSchemeMapping" href="file:///C:%5CDOCUME%7E1%5CRSAHI%7E1.CGG%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml"&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:trackmoves/&gt;   &lt;w:trackformatting/&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:donotpromoteqf/&gt;   &lt;w:lidthemeother&gt;EN-US&lt;/w:LidThemeOther&gt;   &lt;w:lidthemeasian&gt;X-NONE&lt;/w:LidThemeAsian&gt;   &lt;w:lidthemecomplexscript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;    &lt;w:splitpgbreakandparamark/&gt;    &lt;w:dontvertaligncellwithsp/&gt;    &lt;w:dontbreakconstrainedforcedtables/&gt;    &lt;w:dontvertalignintxbx/&gt;    &lt;w:word11kerningpairs/&gt;    &lt;w:cachedcolbalance/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;   &lt;m:mathpr&gt;    &lt;m:mathfont val="Cambria Math"&gt;    &lt;m:brkbin val="before"&gt;    &lt;m:brkbinsub val="&amp;#45;-"&gt;    &lt;m:smallfrac val="off"&gt;    &lt;m:dispdef/&gt;    &lt;m:lmargin val="0"&gt;    &lt;m:rmargin val="0"&gt;    &lt;m:defjc val="centerGroup"&gt;    &lt;m:wrapindent val="1440"&gt;    &lt;m:intlim val="subSup"&gt;    &lt;m:narylim val="undOvr"&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"&gt;   &lt;w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"&gt;   &lt;w:lsdexception locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 2"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 3"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 4"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 5"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 6"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 7"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 8"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 9"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 1"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 2"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 3"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 4"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 5"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 6"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 7"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 8"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 9"&gt;   &lt;w:lsdexception locked="false" priority="35" qformat="true" name="caption"&gt;   &lt;w:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"&gt;   &lt;w:lsdexception locked="false" priority="1" name="Default Paragraph Font"&gt;   &lt;w:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"&gt;   &lt;w:lsdexception locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"&gt;   &lt;w:lsdexception locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"&gt;   &lt;w:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Revision"&gt;   &lt;w:lsdexception locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"&gt;   &lt;w:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"&gt;   &lt;w:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"&gt;   &lt;w:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"&gt;   &lt;w:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"&gt;   &lt;w:lsdexception locked="false" priority="37" name="Bibliography"&gt;   &lt;w:lsdexception locked="false" priority="39" qformat="true" name="TOC Heading"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt; &lt;!--  /* Font Definitions */  @font-face 	{font-family:"Cambria Math"; 	panose-1:2 4 5 3 5 4 6 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:roman; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1107304683 0 0 159 0;} @font-face 	{font-family:Calibri; 	panose-1:2 15 5 2 2 2 4 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1073750139 0 0 159 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-parent:""; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:10.0pt; 	margin-left:0in; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-fareast-font-family:Calibri; 	mso-bidi-font-family:"Times New Roman";} .MsoChpDefault 	{mso-style-type:export-only; 	mso-default-props:yes; 	font-size:10.0pt; 	mso-ansi-font-size:10.0pt; 	mso-bidi-font-size:10.0pt; 	mso-ascii-font-family:Calibri; 	mso-fareast-font-family:Calibri; 	mso-hansi-font-family:Calibri;} @page Section1 	{size:8.5in 11.0in; 	margin:1.0in 1.0in 1.0in 1.0in; 	mso-header-margin:.5in; 	mso-footer-margin:.5in; 	mso-paper-source:0;} div.Section1 	{page:Section1;} --&gt; &lt;/style&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:""; 	mso-padding-alt:0in 5.4pt 0in 5.4pt; 	mso-para-margin:0in; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:"Times New Roman"; 	mso-fareast-theme-font:minor-fareast; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:"Times New Roman"; 	mso-bidi-theme-font:minor-bidi;} &lt;/style&gt; &lt;![endif]--&gt;&lt;span style="line-height: 115%;font-family:&amp;quot;;font-size:11pt;"&gt;&lt;!--[if gte vml 1]&gt;&lt;v:shapetype id="_x0000_t75" coordsize="21600,21600" spt="75" preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"&gt;  &lt;v:stroke joinstyle="miter"&gt;  &lt;v:formulas&gt;   &lt;v:f eqn="if lineDrawn pixelLineWidth 0"&gt;   &lt;v:f eqn="sum @0 1 0"&gt;   &lt;v:f eqn="sum 0 0 @1"&gt;   &lt;v:f eqn="prod @2 1 2"&gt;   &lt;v:f eqn="prod @3 21600 pixelWidth"&gt;   &lt;v:f eqn="prod @3 21600 pixelHeight"&gt;   &lt;v:f eqn="sum @0 0 1"&gt;   &lt;v:f eqn="prod @6 1 2"&gt;   &lt;v:f eqn="prod @7 21600 pixelWidth"&gt;   &lt;v:f eqn="sum @8 21600 0"&gt;   &lt;v:f eqn="prod @7 21600 pixelHeight"&gt;   &lt;v:f eqn="sum @10 21600 0"&gt;  &lt;/v:formulas&gt;  &lt;v:path extrusionok="f" gradientshapeok="t" connecttype="rect"&gt;  &lt;o:lock ext="edit" aspectratio="t"&gt; &lt;/v:shapetype&gt;&lt;v:shape id="Picture_x0020_1" spid="_x0000_i1025" type="#_x0000_t75" style="'width:507pt;height:96pt;visibility:visible'"&gt;  &lt;v:imagedata src="file:///C:\DOCUME~1\RSAHI~1.CGG\LOCALS~1\Temp\msohtmlclip1\01\clip_image001.png" title=""&gt; &lt;/v:shape&gt;&lt;![endif]--&gt;&lt;!--[if !vml]--&gt;&lt;!--[endif]--&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Drop me an e-mail to get sample database.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-3194183346799032403?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/3194183346799032403/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2009/10/accessing-sharepoint-list.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/3194183346799032403'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/3194183346799032403'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2009/10/accessing-sharepoint-list.html' title='Accessing SharePoint List programmatically in Domino Web Application'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-5585021027908782998</id><published>2009-10-28T18:11:00.000-07:00</published><updated>2009-10-29T01:11:36.945-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Domino designer 8.5.1'/><title type='text'>How do you edit .lss file in designer 8.5.1 ?</title><content type='html'>Recently, I've got a query regarding editing of .lss file in designer 8.5.1 . According to him ,&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-STYLE: italic; COLOR: rgb(51,51,255)"&gt;"I'm using massively .lss files that resides on a file server (which I can share using SVN/CVS...) in order to protect my code and I'm using SVN to maintain the code, but I do have a problem for editing these files as the Domino Designer is not able to just open them from my windows explorer."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I've started my investigation with &lt;span style="FONT-WEIGHT: bold"&gt;Package Explorer&lt;/span&gt; view . It shows Java element hierarchy of your project in your workbench and provides easy way to manage project hierarchy. Designer 8.5.1 internally uses .lsa extension for Agents and .lss for Script libraries. So if you try to open them in "Lotus Script Editor" it perfectly opens in design mode , shown below&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SujwG2aTQjI/AAAAAAAABcs/HisYkMG8yG4/s1600-h/project_explorer.bmp"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 364px; CURSOR: pointer" id="BLOGGER_PHOTO_ID_5397828153879249458" border="0" alt="" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SujwG2aTQjI/AAAAAAAABcs/HisYkMG8yG4/s400/project_explorer.bmp" /&gt;&lt;/a&gt;&lt;br /&gt;However if someone is not willing to import each .lss file in Script library to edit them then what are the options he has to edit them in Lotus script editor ? Most feasible solution is to import them in &lt;span style="FONT-WEIGHT: bold"&gt;Resources-&gt;File&lt;/span&gt; section and open them in Lotus Script editor but it doesn't work ,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/Sujyb74S_TI/AAAAAAAABc0/ZNvWxzk59uo/s1600-h/project_expl_err.bmp"&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 400px; DISPLAY: block; HEIGHT: 198px; CURSOR: pointer" id="BLOGGER_PHOTO_ID_5397830715147746610" border="0" alt="" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/Sujyb74S_TI/AAAAAAAABc0/ZNvWxzk59uo/s400/project_expl_err.bmp" /&gt;&lt;/a&gt;&lt;br /&gt;If you look closely to Java errors it indicates Lotus Script editor can't be invoke from &lt;span style="FONT-WEIGHT: bold"&gt;Resources&lt;/span&gt; section . However Text Editor can be invoked but I don't think so anybody would be interested in that . Is it a bug or is this a way designer 8.5.1 built ?&lt;br /&gt;&lt;br /&gt;Any thoughts ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-5585021027908782998?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/5585021027908782998/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2009/10/how-do-you-edit-lss-file-in-designer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/5585021027908782998'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/5585021027908782998'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2009/10/how-do-you-edit-lss-file-in-designer.html' title='How do you edit .lss file in designer 8.5.1 ?'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SujwG2aTQjI/AAAAAAAABcs/HisYkMG8yG4/s72-c/project_explorer.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-8013523443052144201</id><published>2009-10-04T20:06:00.000-07:00</published><updated>2009-10-04T21:21:10.385-07:00</updated><title type='text'>New Project at OpenNTF: Active directory name picker servlet  for web/ Active directory search using LS for client</title><content type='html'>As I've written two articles &lt;span style="font-weight: bold;"&gt;" Active directory name picker using Java Servlet"&lt;/span&gt; and&lt;span style="font-weight: bold;"&gt; " Accessing LDAP using Lotus Script" &lt;/span&gt;earlier . Today got some time to make sample database with both the examples and uploaded on OpenNTF.org. Here is the link,&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.openntf.org/projects/pmt.nsf/0/C897010BDB044D48862576460014FC58"&gt;Active directory name picker and search&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Sample database has two forms; One for search user in Active directory on Notes client and other form for name picker which runs on web.&lt;br /&gt;&lt;br /&gt;I've added important considerations in "About database" page to run both the examples smoothly  so hope developers will not find any difficulties to run or customize the solution.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-8013523443052144201?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/8013523443052144201/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2009/10/new-project-at-openntf-active-directory.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/8013523443052144201'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/8013523443052144201'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2009/10/new-project-at-openntf-active-directory.html' title='New Project at OpenNTF: Active directory name picker servlet  for web/ Active directory search using LS for client'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-8215586857160131161</id><published>2009-09-16T20:12:00.000-07:00</published><updated>2009-09-16T22:57:59.921-07:00</updated><title type='text'>New features in Domino desginer 8.5.1 - Part V</title><content type='html'>&lt;div style="text-align: left;"&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style=";font-family:'times new roman';font-size:100%;"  &gt;&lt;span style="font-family:verdana;"&gt;To continue my journey with Designer 8.5.1, You may have already read my &lt;/span&gt;&lt;a style="font-family: verdana;" href="http://planetlotus.org/56d04c"&gt;first&lt;/a&gt;&lt;span style="font-family:verdana;"&gt; , &lt;/span&gt;&lt;a style="font-family: verdana;" href="http://planetlotus.org/56e050"&gt;second&lt;/a&gt;&lt;span style="font-family:verdana;"&gt; , &lt;/span&gt;&lt;a style="font-family: verdana;" href="http://planetlotus.org/571124"&gt;third&lt;/a&gt;&lt;span style="font-family:verdana;"&gt; and &lt;a href="http://planetlotus.org/5769d0"&gt;fourth&lt;/a&gt; article. In this article I will focus mainly on Designer 8.5.1 UI interface which is quite different from other versions (except 8.5) and fully based on &lt;a href="http://www.eclipse.org/"&gt;Eclipse editor&lt;/a&gt;.You must need to know UI interface throughly t&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style=";font-family:'times new roman';font-size:100%;"  &gt;&lt;span style="font-family:verdana;"&gt;o make most out of it.&lt;br /&gt;&lt;br /&gt;Let's first start with Perspectives in designer 8.5.1.Perspective determines the visible actions and views within a window.It goes well beyond this by providing mechanisms for task oriented interaction with resources in the Domino designer, multi-tasking and information filtering.&lt;br /&gt;Designer 8.1.1 user interface is built on Eclipse so it's now called Workbench. A Workbench window offers one or more perspectives. A perspective contains editors and views, such as the designer application.Multiple Workbench windows can be opened simultaneously. Initially, in the first Workbench window that is opened, the designer perspective is displayed, with only home page visible (or blank editor area). If by mistake you have closed all the perspectives you may get blank designer window which sometimes confuse you .Here is the example,&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SrGt0SMNM2I/AAAAAAAABbY/-AH4Wa_dKgI/s1600-h/ScreenHunter_11+Sep.+17+11.32.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 237px;" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SrGt0SMNM2I/AAAAAAAABbY/-AH4Wa_dKgI/s400/ScreenHunter_11+Sep.+17+11.32.gif" alt="" id="BLOGGER_PHOTO_ID_5382274143432291170" border="0" /&gt;&lt;/a&gt;To get back your designer perspective go to &lt;span style="font-weight: bold;"&gt;window-&gt;Open Perspective-&gt;Other and choose Domino designer&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SrGuvrpaFgI/AAAAAAAABbg/WJ5OV1vzL7A/s1600-h/8.5.1_3.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 236px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SrGuvrpaFgI/AAAAAAAABbg/WJ5OV1vzL7A/s400/8.5.1_3.bmp" alt="" id="BLOGGER_PHOTO_ID_5382275163877938690" border="0" /&gt;&lt;/a&gt;So, In  simple words;  A workbench is a visual container for a set of views and editors. The structure of the workbench is exposed within the following diagram.  The workbench window is outlined in red.  Within this window there is a single open perspective in blue.Editor area is in Pink and Green shows different views.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SrGwKVHOBwI/AAAAAAAABbo/rmLHg7BBAb4/s1600-h/ScreenHunter_10+Sep.+17+10.55.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 238px;" src="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SrGwKVHOBwI/AAAAAAAABbo/rmLHg7BBAb4/s400/ScreenHunter_10+Sep.+17+10.55.gif" alt="" id="BLOGGER_PHOTO_ID_5382276721197057794" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;What is perspective ?&lt;/span&gt;&lt;div style="text-align: left;"&gt;      A perspective is a group of views and editors in  the Workbench window. One or more&lt;br /&gt;perspectives can exist in a single Workbench  window. Each perspective contains one or more&lt;br /&gt;views and editors. Within a window, each perspective may have a different set of views but all&lt;br /&gt;perspectives share the same set of editors.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left; font-weight: bold;"&gt;What is editor ?&lt;br /&gt;&lt;span style="font-weight: normal;"&gt;An editor is also a visual component within the Workbench. It is typically used to edit or&lt;br /&gt;browse a resource. Modifications made in an editor follow an open-save-close life-cycle model.&lt;br /&gt;Multiple instances of an editor type may exist within a Workbench window. In prior versions&lt;br /&gt;of designer we use only one editor at a time but designer 8.5.1 (8.5 as well) allows you to open&lt;br /&gt;more than one editor at the same time. So we can simultaneously preview form designer&lt;br /&gt;while write code or designing views.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SrGy4Y1sAyI/AAAAAAAABbw/Kfuw9C8DAPA/s1600-h/ScreenHunter_12+Sep.+17+11.53.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 218px;" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SrGy4Y1sAyI/AAAAAAAABbw/Kfuw9C8DAPA/s400/ScreenHunter_12+Sep.+17+11.53.gif" alt="" id="BLOGGER_PHOTO_ID_5382279711494505250" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: normal;"&gt;Depending on the type of file that is being edited, the appropriate editor is displayed in the editor area. For example, if a .css file is being edited, a style sheet editor is displayed in the editor area.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SrG_BK84jPI/AAAAAAAABcQ/RzIZPFHtxDc/s1600-h/8.5.1_7.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 99px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SrG_BK84jPI/AAAAAAAABcQ/RzIZPFHtxDc/s400/8.5.1_7.bmp" alt="" id="BLOGGER_PHOTO_ID_5382293056524946674" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;span style="font-weight: bold;"&gt;What is View ?&lt;/span&gt;&lt;br /&gt;A view is a visual component within the Workbench. It is typically used to navigate a hierarchy of information (such as the resources in the Workbench), open an editor, or display properties for the active editor. Modifications made in a view are saved immediately. Normally, only one instance of a particular type of view may exist within a Workbench window.&lt;br /&gt;&lt;br /&gt;A view might appear by itself or stacked with other views in a tabbed notebook.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SrG16aLSPRI/AAAAAAAABb4/uidoZ01lgP0/s1600-h/8.5.1_4.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 159px;" src="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SrG16aLSPRI/AAAAAAAABb4/uidoZ01lgP0/s400/8.5.1_4.bmp" alt="" id="BLOGGER_PHOTO_ID_5382283044748147986" border="0" /&gt;&lt;/a&gt;It can be detached and placed on top of the other views ,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SrG62Yv3KiI/AAAAAAAABcA/uUDP7dVIPbU/s1600-h/8.5.1_5.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 316px; height: 400px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SrG62Yv3KiI/AAAAAAAABcA/uUDP7dVIPbU/s400/8.5.1_5.bmp" alt="" id="BLOGGER_PHOTO_ID_5382288473203354146" border="0" /&gt;&lt;/a&gt;A view can be displayed by selecting it from the Window &gt; Show Eclipse views menu. A perspective determines which views may be required and displays these on the Show View sub-menu. Additional views are available by choosing   Other...  at the bottom of the Show Eclipse Views sub-menu. This is just one of the many features that provide for the creation of a custom work environment.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SrG7x01yS8I/AAAAAAAABcI/yL92_iF7hdQ/s1600-h/8.5.1_6.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 235px;" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SrG7x01yS8I/AAAAAAAABcI/yL92_iF7hdQ/s400/8.5.1_6.bmp" alt="" id="BLOGGER_PHOTO_ID_5382289494356675522" border="0" /&gt;&lt;/a&gt;There are some useful menu options which can be used if you lost in Eclipse UI .&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1- To open existing perspective&lt;/span&gt; : If you work on Lotus and Java projects more often then it's good to have two perspective because some views are not compatible with each other for example "Outline" view. You can design custom perspective based on most useful and frequent options. To open existing perspective use &lt;span style="font-weight: bold;"&gt;Window-&gt;Open perspective-&gt;Other&lt;/span&gt; menu.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2- Customize perspective :&lt;/span&gt; To customize perspective as per your need go to &lt;span style="font-weight: bold;"&gt;Window-&gt;Customize perspective&lt;/span&gt; ,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SrHBy08iL6I/AAAAAAAABcY/c-PXyG-ukrA/s1600-h/8.5.1_7.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 298px;" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SrHBy08iL6I/AAAAAAAABcY/c-PXyG-ukrA/s400/8.5.1_7.bmp" alt="" id="BLOGGER_PHOTO_ID_5382296108634615714" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3- Saving new perspective :&lt;/span&gt; If you have design your own custom perspective use &lt;span style="font-weight: bold;"&gt;Window-&gt;Save perspective as&lt;/span&gt; option to save for later use.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;4- Reset perspective :&lt;/span&gt; It may happen if you messed up with your working perspective , Use &lt;span style="font-weight: bold;"&gt;Window-&gt;Reset perspective&lt;/span&gt; option to reset it.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;5- Closing perspective :&lt;/span&gt; There are two options in this context one is to &lt;span style="font-weight: bold;"&gt;close all perspective&lt;/span&gt; and other to &lt;span style="font-weight: bold;"&gt;close perspective&lt;/span&gt;. &lt;span style="font-weight: bold;"&gt;Close perspective&lt;/span&gt; will only close currently active perspective where as &lt;span style="font-weight: bold;"&gt;close all perspective&lt;/span&gt; will close all the open perspectives and you will see blank screen as I've mentioned in the beginning.&lt;br /&gt;&lt;br /&gt;However I feel there should be a button and text message ( like Eclipse ) to give better understanding and guide end user to next step.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);font-size:85%;" &gt;(Note: below screen is my mock-up design ) &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SrHO85Q8SeI/AAAAAAAABcg/KYV6NjOE_vM/s1600-h/8.5.2_1.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 240px;" src="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SrHO85Q8SeI/AAAAAAAABcg/KYV6NjOE_vM/s400/8.5.2_1.bmp" alt="" id="BLOGGER_PHOTO_ID_5382310575243807202" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-8215586857160131161?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/8215586857160131161/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2009/09/new-features-in-domino-desginer-851_16.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/8215586857160131161'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/8215586857160131161'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2009/09/new-features-in-domino-desginer-851_16.html' title='New features in Domino desginer 8.5.1 - Part V'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SrGt0SMNM2I/AAAAAAAABbY/-AH4Wa_dKgI/s72-c/ScreenHunter_11+Sep.+17+11.32.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-276382814337132863</id><published>2009-09-10T01:52:00.001-07:00</published><updated>2009-09-10T02:23:51.120-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lotus Notes'/><title type='text'>Suggestions needed in designing HTML forms for Blackberry/Smartphone interface</title><content type='html'>I have got a requirement to design HTML mailer form in Domino for Blackberry and Smartphone  users. With some case study I found, First stage would be to detect browser type and second stage to design HTML/CSS. I assume using @BrowserInfo and HTTP_USER_AGENT we can detect browser client . Does anybody tried this successfully ?&lt;br /&gt;&lt;br /&gt;After some googling it seems there are specifications in HTML/CSS to design Blackberry interface. Anybody having working idea ?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;What I'm doing ?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;There is form in Notes client interface which will be used by an Agent to create mailing document . Once document is created mailer agent will apply styles on those documents and insert them in body field and send . But the problem is IE and Mozilla display contents properly but blackberry is treating badly.&lt;br /&gt;&lt;br /&gt;I will appreciate suggestions on the same.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-276382814337132863?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/276382814337132863/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2009/09/suggestions-needed-in-designing-html.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/276382814337132863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/276382814337132863'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2009/09/suggestions-needed-in-designing-html.html' title='Suggestions needed in designing HTML forms for Blackberry/Smartphone interface'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-3024961982076577397</id><published>2009-09-09T19:10:00.000-07:00</published><updated>2009-09-14T02:08:44.691-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Domino designer 8.5.1'/><title type='text'>New features in Domino desginer 8.5.1 - Part IV</title><content type='html'>&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style=";font-family:'times new roman';font-size:100%;"  &gt;&lt;span style="font-family:verdana;"&gt;To continue my journey with Designer 8.5.1, You may have already read my &lt;/span&gt;&lt;a style="font-family: verdana;" href="http://planetlotus.org/56d04c"&gt;first&lt;/a&gt;&lt;span style="font-family:verdana;"&gt; , &lt;/span&gt;&lt;a style="font-family: verdana;" href="http://planetlotus.org/56e050"&gt;second&lt;/a&gt;&lt;span style="font-family:verdana;"&gt; and &lt;/span&gt;&lt;a style="font-family: verdana;" href="http://planetlotus.org/571124"&gt;third&lt;/a&gt;&lt;span style="font-family:verdana;"&gt; article. Let's check what I've got in this article.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style=";font-family:'times new roman';font-size:100%;" class="Apple-style-span"  &gt;&lt;span class="Apple-style-span"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;I'm doing my real time development in designer 8.5.1 and you don't believe it's so stable that I don't miss 8.5 release. Sometime I get "Null pointer exception" in Eclipse environment but I don't get worried because it's just a unreleased version and it will be fixed in actual release. Today I've submitted my 8.5.1 beta survey and I didn't forget to mention that "Domino 8.5.1 release will be the best release in Lotus Notes history" and it's going to increase productivity of domino developers by at least 30%.At least I believe that :)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=";font-family:verdana;font-size:100%;"  &gt;&lt;span class="Apple-style-span"&gt;1-Prior to 8.5.1 release very few people care about cause of Lotus Notes crash. There is a nice "Fault Diagnostic" report dialog box if you started Notes after crash.It will be an opportunity to every Lotus Notes users to participate in betterment of Lotus Notes product to share their error reports with IBM.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=";font-family:verdana;font-size:100%;"  &gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style=";font-family:verdana;font-size:100%;"  &gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 238);font-family:Georgia,serif;" &gt;&lt;img src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SqpsW6lgXXI/AAAAAAAABaQ/sgpCdLBTIKU/s400/8.5.1_1.jpg" alt="" id="BLOGGER_PHOTO_ID_5380231845786967410" style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 313px;" border="0" /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: bold;"&gt;2- Run in background&lt;/span&gt; : In designer 8.5 , We had button in process dialog box "Run in background" to control whether you want to run a process in background or foreground. In 8.5.1 designer it has moved under global setting.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;However it doesn't work as expected and after setting this option every time process runs in foreground. Probably we will get fix in actual release.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/Sq3jmgjioXI/AAAAAAAABaY/2cdIEfifSRI/s1600-h/8.5.1_2.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 60px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/Sq3jmgjioXI/AAAAAAAABaY/2cdIEfifSRI/s400/8.5.1_2.bmp" alt="" id="BLOGGER_PHOTO_ID_5381207380491149682" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/Sq3lZqkeXjI/AAAAAAAABao/3vVyRA_Ubcs/s1600-h/8.5.1_1.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 163px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/Sq3lZqkeXjI/AAAAAAAABao/3vVyRA_Ubcs/s400/8.5.1_1.bmp" alt="" id="BLOGGER_PHOTO_ID_5381209358864375346" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:verdana;font-size:100%;"  &gt;&lt;span style="font-weight: bold;"&gt;3- Monitor Heap Size :&lt;/span&gt; Most often we encounter "Out of memory" or "buffer overflow" problem while working on Domino Java program in designer. Also, There are very few domino developers who actually know what is maximum heap size assigned to JVM. Designer 8.5.1 has new feature to monitor and clean up JVM heap size. It's under  preferences, turned off by default, called "Show heap status" under General-&gt;Preferences. Simply check this box to display a heap size indicator on the lower right corner of your IDE. This indicator displays the maximum JVM heap size and how much of it is being used. Another useful feature of this indicator is the ability to garbage collect the heap. Simply click on the bin icon in the indicator to immediately schedule the heap for garbage collection. It will  free up some heap space. There is also a context menu on this indicator. Simply right click to pop it.&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/Sq3ozZvD_MI/AAAAAAAABaw/hTmAhzKD27s/s1600-h/8.5.1_3.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 369px; height: 130px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/Sq3ozZvD_MI/AAAAAAAABaw/hTmAhzKD27s/s400/8.5.1_3.bmp" alt="" id="BLOGGER_PHOTO_ID_5381213099556863170" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;4- &lt;span style="font-weight: bold;"&gt;Better control on Renaming   Classes/Variables and adding libraries for Domino Java&lt;/span&gt; : There are some extraordinary enhancements has been done for Domino Java functionalities designer 8.5.1. Prior to 8.5.1 writing Java code in Domino was tedious than writing Lotus script but now you will find writing Java code is much easier in designer 8.5.1 . Let's check one by one,&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;               &lt;span style="font-size:100%;"&gt;              a)  &lt;span style="font-weight: bold;"&gt;Ease in renaming class file and performing find replace&lt;/span&gt; : You don't need to open any domino Java  agents to do find and replace functions. Prior to 8.5.1 you must need to do find and replace in each class files separately. Also, You don't need to open the code library to rename java file unlike "Edit Project" or code level rename in  earlier versions.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/Sq34ByPeVuI/AAAAAAAABa4/tUc4h3biTe4/s1600-h/8.5.1_4.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 211px;" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/Sq34ByPeVuI/AAAAAAAABa4/tUc4h3biTe4/s400/8.5.1_4.bmp" alt="" id="BLOGGER_PHOTO_ID_5381229839327844066" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;b) &lt;span style="font-weight: bold;"&gt;Ease in adding resources&lt;/span&gt; : Unlike opening Java agent and going to "Edit project" option to add new script library , you can achieve in much easier way in designer 8.5.1&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/Sq353WGiKDI/AAAAAAAABbA/Z2knZ7DJ3vk/s1600-h/8.5.1_5.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 243px;" src="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/Sq353WGiKDI/AAAAAAAABbA/Z2knZ7DJ3vk/s400/8.5.1_5.bmp" alt="" id="BLOGGER_PHOTO_ID_5381231858998716466" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;c) &lt;span style="font-weight: bold;"&gt;Ease in adding removing class file &lt;/span&gt;:  Unlike to other versions you don't need to go to "Edit Project" option to delete unused classes or to copy/paste new class file from other sources .&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/Sq3_igUzluI/AAAAAAAABbI/yD3leCu0WCc/s1600-h/8.5.1_6.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 240px; height: 400px;" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/Sq3_igUzluI/AAAAAAAABbI/yD3leCu0WCc/s400/8.5.1_6.bmp" alt="" id="BLOGGER_PHOTO_ID_5381238098035447522" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: bold;"&gt;5- Use breadcrumb navigation in Domino Java&lt;/span&gt; : In designer 8.5.1, Java class files list and editor sections are separated in two different threads. To navigate faster in other java classes while editing  you can use "Breadcrumb navigation".&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/Sq4BfE9Dd7I/AAAAAAAABbQ/EEmjiFvOrFo/s1600-h/8.5.1_7.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 110px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/Sq4BfE9Dd7I/AAAAAAAABbQ/EEmjiFvOrFo/s400/8.5.1_7.bmp" alt="" id="BLOGGER_PHOTO_ID_5381240238171715506" border="0" /&gt;&lt;/a&gt;My next article on this series will be on Eclipse Perspective, Different types of Eclipse views and Eclipse navigation in Designer 8.5.1.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-3024961982076577397?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/3024961982076577397/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2009/09/new-features-in-domino-desginer-851_09.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/3024961982076577397'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/3024961982076577397'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2009/09/new-features-in-domino-desginer-851_09.html' title='New features in Domino desginer 8.5.1 - Part IV'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SqpsW6lgXXI/AAAAAAAABaQ/sgpCdLBTIKU/s72-c/8.5.1_1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-8409456287215655497</id><published>2009-09-08T06:29:00.000-07:00</published><updated>2009-09-08T22:19:56.877-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Domino designer 8.5.1'/><title type='text'>New features in Domino desginer 8.5.1 - Part III</title><content type='html'>&lt;span style=";font-family:'times new roman';font-size:100%;" class="Apple-style-span"  &gt;&lt;span class="Apple-style-span"&gt;To continue from my &lt;a href="http://planetlotus.org/56d04c"&gt;first&lt;/a&gt; and &lt;a href="http://planetlotus.org/56e050"&gt;second&lt;/a&gt; article, As we know designer 8.5.1 entirely built on Eclipse framework  so most of the domino experts definitely believe  on the fact that there is a new era started where we need to get used to with Eclipse framework for Lotus Notes development. However , It's not going to be as easy as it was before when fresh graduate can develop Lotus Notes applications.&lt;br /&gt;The best thing about domino designer 8.5.1 is to guide developer to use best practices in coding like, Add comments automatically whenever you add new functions or subs , Compel not to use undeclared variables etc.&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:'times new roman';font-size:100%;" class="Apple-style-span"  &gt;&lt;span class="Apple-style-span"&gt;&lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_0"&gt;however&lt;/span&gt; , To increase developers productivity in Domino designer 8.5.1, They have to learn Eclipse framework to some extent. Let's check how can you make most in Designer 8.5.1,&lt;br /&gt;&lt;br /&gt;1-&lt;span style="font-weight: bold;"&gt;Customize annotations&lt;/span&gt;: Customize the display of annotations in editors settings to interact better with Lotus Script/Java editors.&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;  &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SqcXI9Utk3I/AAAAAAAABYg/mq_ENzuZHRs/s1600-h/8.5.1_1.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 254px;" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SqcXI9Utk3I/AAAAAAAABYg/mq_ENzuZHRs/s400/8.5.1_1.bmp" alt="" id="BLOGGER_PHOTO_ID_5379293722585174898" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;Here is the effect,&lt;/span&gt; &lt;div  style="font-family:verdana;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SqcX4sdjIoI/AAAAAAAABYo/29hBgtYgElU/s1600-h/8.5.1_2.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 294px; height: 222px;" src="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SqcX4sdjIoI/AAAAAAAABYo/29hBgtYgElU/s400/8.5.1_2.bmp" alt="" id="BLOGGER_PHOTO_ID_5379294542692557442" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="font-size:100%;"&gt;&lt;span class="Apple-style-span"&gt;2- &lt;span style="font-weight: bold;"&gt;Quick Diff&lt;/span&gt; : You can keep track of what has changed as you edit.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SqcbatnWaEI/AAAAAAAABY4/x8QjoUp2Mi0/s1600-h/8.5.1_3.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 324px;" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SqcbatnWaEI/AAAAAAAABY4/x8QjoUp2Mi0/s400/8.5.1_3.bmp" alt="" id="BLOGGER_PHOTO_ID_5379298425652537410" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Here is the effect,&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/Sqcfk-DPU9I/AAAAAAAABZI/XcMTeF14FLY/s1600-h/8.5.1_5.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 347px; height: 232px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/Sqcfk-DPU9I/AAAAAAAABZI/XcMTeF14FLY/s400/8.5.1_5.bmp" alt="" id="BLOGGER_PHOTO_ID_5379302999909684178" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-style: italic;"&gt;Note: Unfortunately this feature only works for Java but not for Lotus Script . However,I believe designer team will fix this when actual release will come.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;3- &lt;span style="font-weight: bold;"&gt;Spelling&lt;/span&gt; : Enable spell checker to remove incorrect spellings in your comments.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SqchUNljG0I/AAAAAAAABZQ/ysrdUuTiW2w/s1600-h/8.5.1_6.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 235px;" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SqchUNljG0I/AAAAAAAABZQ/ysrdUuTiW2w/s400/8.5.1_6.bmp" alt="" id="BLOGGER_PHOTO_ID_5379304911045598018" border="0" /&gt;&lt;/a&gt;here how it looks in Java,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SqciQhBU9jI/AAAAAAAABZY/PSqtgxLe8Mc/s1600-h/8.5.1_7.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 107px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SqciQhBU9jI/AAAAAAAABZY/PSqtgxLe8Mc/s400/8.5.1_7.bmp" alt="" id="BLOGGER_PHOTO_ID_5379305947054536242" border="0" /&gt;&lt;/a&gt;Lotus script doesn't detect correctly ,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SqciudkGKqI/AAAAAAAABZg/Nh5dcVIp06E/s1600-h/8.5.1_8.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 76px;" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SqciudkGKqI/AAAAAAAABZg/Nh5dcVIp06E/s400/8.5.1_8.bmp" alt="" id="BLOGGER_PHOTO_ID_5379306461522700962" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0); font-style: italic;"&gt;Note:Unfortunately this feature doesn't work correctly in Lotus Script code but works well in Java code. I believe this could be fixed in actual release.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;4- &lt;span style="font-weight: bold;"&gt;View keyword shortcuts&lt;/span&gt; : It's a great way to increase your productivity in Eclipse framework. To get the all keyword list instantly press &lt;span style="font-weight: bold;"&gt;Ctrl+Shift+L&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SqckMDoW04I/AAAAAAAABZo/iypsj_KaiPg/s1600-h/8.5.1_9.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 281px; height: 400px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SqckMDoW04I/AAAAAAAABZo/iypsj_KaiPg/s400/8.5.1_9.bmp" alt="" id="BLOGGER_PHOTO_ID_5379308069468951426" border="0" /&gt;&lt;/a&gt;5- &lt;span style="font-weight: bold;"&gt;Detached view&lt;/span&gt; : It's possible to detach a view so that it can be placed wherever desired, including over another Eclipse window.Right-click on the view to be moved and select "Detached" from the menu. (Alternatively, drag the view by its tab to detach the view from its position in the perspective.)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SqcyLDvoLBI/AAAAAAAABZw/q6Kmw-oeg10/s1600-h/8.5.1_10.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 259px; height: 400px;" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SqcyLDvoLBI/AAAAAAAABZw/q6Kmw-oeg10/s400/8.5.1_10.bmp" alt="" id="BLOGGER_PHOTO_ID_5379323445482368018" border="0" /&gt;&lt;/a&gt;6- &lt;span style="font-weight: bold;"&gt;Modify code template&lt;/span&gt; : Most of the developers don't include error handler while writing the code , once they encounter the error then remember to add error handler. In designer 8.5.1 even you can standardize error handler code for your new function and subroutine.  Definitely this feature will guide developers to follow coding guidelines.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/Sqc2C7A1dbI/AAAAAAAABZ4/J5ewLv9Cftc/s1600-h/8.5.1_11.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 263px;" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/Sqc2C7A1dbI/AAAAAAAABZ4/J5ewLv9Cftc/s400/8.5.1_11.bmp" alt="" id="BLOGGER_PHOTO_ID_5379327703746180530" border="0" /&gt;&lt;/a&gt;7- &lt;span style="font-weight: bold;"&gt;Colorful editor&lt;/span&gt; : There are lot of developers who got bored in writing Lotus Script/Java code in  white text editor. Designer 8.5.1 has given you an option to design your editor as the way you want .&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/Sqc5zdkvySI/AAAAAAAABaA/JpVEH6daz6k/s1600-h/8.5.1_12.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 372px; height: 400px;" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/Sqc5zdkvySI/AAAAAAAABaA/JpVEH6daz6k/s400/8.5.1_12.bmp" alt="" id="BLOGGER_PHOTO_ID_5379331836192213282" border="0" /&gt;&lt;/a&gt;Here is my script editor,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/Sqc6iIElDbI/AAAAAAAABaI/UwSpu2Uer34/s1600-h/8.5.1_13.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 348px;" src="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/Sqc6iIElDbI/AAAAAAAABaI/UwSpu2Uer34/s400/8.5.1_13.bmp" alt="" id="BLOGGER_PHOTO_ID_5379332637873999282" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-8409456287215655497?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/8409456287215655497/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2009/09/new-features-in-domino-desginer-851_08.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/8409456287215655497'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/8409456287215655497'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2009/09/new-features-in-domino-desginer-851_08.html' title='New features in Domino desginer 8.5.1 - Part III'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SqcXI9Utk3I/AAAAAAAABYg/mq_ENzuZHRs/s72-c/8.5.1_1.bmp' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-5074362198209665188</id><published>2009-09-06T19:32:00.001-07:00</published><updated>2009-09-07T03:24:04.784-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Domino designer 8.5.1'/><title type='text'>New features in Domino desginer 8.5.1 - Part II</title><content type='html'>To continue with my &lt;a href="http://lotus-blogs.blogspot.com/2009/09/new-features-in-domino-desginer-851.html"&gt;first article&lt;/a&gt; on Domino designer 8.5.1 new features and my findings, Let's check some more cool features in Designer 8.5.1.&lt;br /&gt;&lt;br /&gt;1- In prior versions of Domino designer what happens if existing script library has been missing or removed and agents which were using that library throws an error "Unable to load xxx library".To find such problem in complex applications was quite tedious and time consuming. In 8.5.1 designer, It can be easily detected. You can see red cross beside agent name which is having unresolved issues.Even database icon shows the same.That's elegant !&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SqSYlfbnzrI/AAAAAAAABXY/hRCRFc5YvZU/s1600-h/8.5.1_1.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 259px; height: 372px;" src="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SqSYlfbnzrI/AAAAAAAABXY/hRCRFc5YvZU/s400/8.5.1_1.bmp" alt="" id="BLOGGER_PHOTO_ID_5378591624847150770" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2- As I've mentioned the possible bug about outline view (&lt;a href="http://lotus-blogs.blogspot.com/2009/09/outline-view-in-designer-85-bug-or-only.html"&gt;Outline view in Designer 8.5 - BUG or only for XPages&lt;/a&gt;) in Designer 8.5 is fixed in 8.5.1.&lt;br /&gt;It's nice feature to review and optimize your Domino Java agents in Domino designer itself. Now , Who needs Eclipse to develop Domino Java agents , I don't use anymore :)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SqScLSxq5zI/AAAAAAAABXg/CwJFyhQNhKU/s1600-h/8.5.1_2.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 93px;" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SqScLSxq5zI/AAAAAAAABXg/CwJFyhQNhKU/s400/8.5.1_2.bmp" alt="" id="BLOGGER_PHOTO_ID_5378595572819879730" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;3- In Designer 8.5.1 , You don't need to open Agent/Script library property window to modify their property.It can be done inline while writing code.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SqSd2SDXQFI/AAAAAAAABXo/Sg0HdXgKYkI/s1600-h/8.5.1_3.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 309px;" src="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SqSd2SDXQFI/AAAAAAAABXo/Sg0HdXgKYkI/s400/8.5.1_3.bmp" alt="" id="BLOGGER_PHOTO_ID_5378597410871656530" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;4- Review your &lt;span style="font-weight: bold;"&gt;global variables&lt;/span&gt; declarations instantly without going to declaration section.I'm going to love this feature because I often use &lt;span style="font-weight: bold;"&gt;Global declarations&lt;/span&gt; in my code.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SqSfDabJm5I/AAAAAAAABXw/JPy-djcZHcE/s1600-h/8.5.1_4.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 227px; height: 400px;" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SqSfDabJm5I/AAAAAAAABXw/JPy-djcZHcE/s400/8.5.1_4.bmp" alt="" id="BLOGGER_PHOTO_ID_5378598735968836498" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;5- Add line number in your code to enhance readability and ease in debugging.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SqSiShMgyxI/AAAAAAAABX4/v1PrN3X5pbs/s1600-h/8.5.1_5.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 292px; height: 400px;" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SqSiShMgyxI/AAAAAAAABX4/v1PrN3X5pbs/s400/8.5.1_5.bmp" alt="" id="BLOGGER_PHOTO_ID_5378602294019410706" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Note: To attain this feature &lt;span style="font-weight: bold;"&gt;Show line number&lt;/span&gt; option must be enabled from &lt;span style="font-weight: bold;"&gt;Text Editor&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;6- Coding Help on your fingertip. You don't need to open help file anymore and wait to get indexed ( if it's not ) and perform search for your desire functions or methods. Just move your mouse on function and get the instant help. Most of the domino developers going to love this..&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SqSjXJglX8I/AAAAAAAABYA/KhWxkyplWBE/s1600-h/8.5.1_6.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 314px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SqSjXJglX8I/AAAAAAAABYA/KhWxkyplWBE/s400/8.5.1_6.bmp" alt="" id="BLOGGER_PHOTO_ID_5378603473072119746" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;7- In earlier versions of Domino it was impossible to detect function and sub-routine type in Agent/Script library without opening them individually. Domino designer 8.5.1 came  with outstanding feature where you don't need to manually check their types. Even you can detect class with green icon below.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SqSknRY-cVI/AAAAAAAABYI/sqqXRHI6NXs/s1600-h/8.5.1_7.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 307px; height: 158px;" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SqSknRY-cVI/AAAAAAAABYI/sqqXRHI6NXs/s400/8.5.1_7.bmp" alt="" id="BLOGGER_PHOTO_ID_5378604849577226578" border="0" /&gt;&lt;/a&gt;Along with that &lt;span style="font-weight: bold;"&gt;Constants &lt;/span&gt;can be detected ,&lt;br /&gt;&lt;br /&gt;&lt;img src="file:///C:/DOCUME~1/RSAHI~1.CGG/LOCALS~1/Temp/moz-screenshot-2.png" alt="" /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SqSnDREAVPI/AAAAAAAABYQ/jRLEYvnN1tY/s1600-h/8.5.1_8.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 122px; height: 230px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SqSnDREAVPI/AAAAAAAABYQ/jRLEYvnN1tY/s400/8.5.1_8.bmp" alt="" id="BLOGGER_PHOTO_ID_5378607529548862706" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;img src="file:///C:/DOCUME~1/RSAHI~1.CGG/LOCALS~1/Temp/moz-screenshot.png" alt="" /&gt;&lt;img src="file:///C:/DOCUME~1/RSAHI~1.CGG/LOCALS~1/Temp/moz-screenshot-1.png" alt="" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-5074362198209665188?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/5074362198209665188/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2009/09/new-features-in-domino-desginer-851_06.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/5074362198209665188'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/5074362198209665188'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2009/09/new-features-in-domino-desginer-851_06.html' title='New features in Domino desginer 8.5.1 - Part II'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SqSYlfbnzrI/AAAAAAAABXY/hRCRFc5YvZU/s72-c/8.5.1_1.bmp' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-1908897880168129235</id><published>2009-09-05T01:23:00.000-07:00</published><updated>2009-09-06T19:42:30.432-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Domino designer 8.5.1'/><title type='text'>New features in Domino desginer 8.5.1 - Part I</title><content type='html'>Today I received mail from IBM regarding Lotus 8.5.1 beta program and at very first I cancelled all my weekend plan to explore new stuffs in Lotus Notes 8.5.1 designer. Early morning in Singapore time I've started to download 8.5.1 to avoid much network traffic in IBM site :). In an hour I've successfully installed and configured 8.5.1 in my machine.First thanks to IBM team who made Lotus installation/upgrade so easy that you don't even feel you are upgrading to newer version.Those who still have not participated for this program refer to Ed Brill blog here,&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.edbrill.com/ebrill/edbrill.nsf/dx/update-on-notesdomino-8.x-maintenance-release-plans"&gt;http://www.edbrill.com/ebrill/edbrill.nsf/dx/update-on-notesdomino-8.x-maintenance-release-plans&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;My first area of interest was Agents and Script library because I was awaiting long to get type ahead feature in Lotus Script and Java agents. Let's check some outstanding enhancements in Agents and Script libraries.&lt;br /&gt;&lt;br /&gt;1- The best enhancement is to have type ahead feature with pop-up help. There are good number of Domino developers who spend quite some time in designer help to read about method and property before writing the code.This enhancement will definitely increase the productivity of Domino developers. &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SqIn5myCVxI/AAAAAAAABWQ/LPlBVT2Zp2U/s1600-h/8.5.1_1.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 157px;" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SqIn5myCVxI/AAAAAAAABWQ/LPlBVT2Zp2U/s400/8.5.1_1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5377904775650236178" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Similarly this feature is now available for Domino Java agents too ,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SqIqR7VUGeI/AAAAAAAABWY/_RD0WSraOhs/s1600-h/8.5.1_2.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 270px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SqIqR7VUGeI/AAAAAAAABWY/_RD0WSraOhs/s400/8.5.1_2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5377907392507025890" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Apart from domino package, Domino Java agent will provide type ahead feature for non-domino classes as well . Only you need to make sure you have included relevant package in your agent.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SqKEp0IJMJI/AAAAAAAABXA/KsHGMIY4IU0/s1600-h/8.5.1_7.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 161px;" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SqKEp0IJMJI/AAAAAAAABXA/KsHGMIY4IU0/s400/8.5.1_7.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5378006758936096914" /&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;2- In 8.5 designer , When you click on new agent you will be presented new dialog box to enter agent name . I personally like this idea which will prevent saving "untitled" or "duplicate agent name" in same database.This idea is further extended in 8.5.1 to allow selection of agent type, application,comment and alias which is even more better :)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SqIrmy8Ks0I/AAAAAAAABWg/HhlNfIII8Rc/s1600-h/8.5.1_3.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 269px;" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SqIrmy8Ks0I/AAAAAAAABWg/HhlNfIII8Rc/s400/8.5.1_3.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5377908850542949186" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;3- In your application if you have lot of agents which comprises of Lotus script,Java, Formula type; How would you find the type of agent ? Prior to 8.5.1 you have to open each agent or rely on agent's comment field. In 8.5.1 , You can see the type in agent list in left navigation.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SqIvgDQGiMI/AAAAAAAABWo/nYkjjl4oMRI/s1600-h/8.5.1_4.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 191px; height: 131px;" src="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SqIvgDQGiMI/AAAAAAAABWo/nYkjjl4oMRI/s400/8.5.1_4.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5377913132708956354" /&gt;&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;4- Align your lotus script code as you want using "Shift left" and "Shift right" options.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SqJ-Slsf_cI/AAAAAAAABWw/bl6D9ddOKIg/s1600-h/8.5.1_5.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 214px;" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SqJ-Slsf_cI/AAAAAAAABWw/bl6D9ddOKIg/s400/8.5.1_5.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5377999762855296450" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;5- Easy to trace undeclared variables/objects in your code.  &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SqJ_VgXADqI/AAAAAAAABW4/RiEPQ5AxLPw/s1600-h/8.5.1_6.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 187px;" src="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SqJ_VgXADqI/AAAAAAAABW4/RiEPQ5AxLPw/s400/8.5.1_6.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5378000912474181282" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Note: To attain this feature we must include "Option declare" in your code.&lt;br /&gt;&lt;br /&gt;6- We can filter agent and script library list by type using filter option( even it's implemented for all design elements )&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SqKM7i6-c1I/AAAAAAAABXI/zM8aU1YDaE8/s1600-h/8.5.1_8.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 56px;" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SqKM7i6-c1I/AAAAAAAABXI/zM8aU1YDaE8/s400/8.5.1_8.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5378015859648131922" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;7- Eclipse based Java class creation process.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SqKRTnE0_QI/AAAAAAAABXQ/zXL6HhbKmR8/s1600-h/8.5.1_9.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 124px;" src="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SqKRTnE0_QI/AAAAAAAABXQ/zXL6HhbKmR8/s400/8.5.1_9.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5378020671126568194" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-1908897880168129235?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/1908897880168129235/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2009/09/new-features-in-domino-desginer-851.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/1908897880168129235'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/1908897880168129235'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2009/09/new-features-in-domino-desginer-851.html' title='New features in Domino desginer 8.5.1 - Part I'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SqIn5myCVxI/AAAAAAAABWQ/LPlBVT2Zp2U/s72-c/8.5.1_1.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-465658861185709991</id><published>2009-09-01T01:25:00.000-07:00</published><updated>2009-09-01T01:51:46.059-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lotus Designer 8.5'/><title type='text'>Outline view in Designer 8.5 - BUG or only for XPages</title><content type='html'>While working on Java routine in Eclipse found outline view doesn't work as expected even it contradicts with Designer 8.5 help file.Lotus Designer and Eclipse help says,&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;background-color:yellow"&gt;"Outline view displays an outline of a structured file that is currently open in the editor area, and  lists structural elements. The contents of the outline view are editor-specific. In the example below, which is for a Java source file, the structural elements are classes, variables, and methods. The contents of the toolbar are also editor-specific." &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Here is my Java class appearance in Eclipse Editor,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SpzcRDYdNzI/AAAAAAAABWA/CIRSfAEQiwM/s1600-h/1.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 146px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SpzcRDYdNzI/AAAAAAAABWA/CIRSfAEQiwM/s400/1.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5376414240697300786" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Similarly, Same code in my Domino 8.5 designer,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/Spzc12YNTDI/AAAAAAAABWI/KHh4zNRyD7k/s1600-h/2.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 275px;" src="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/Spzc12YNTDI/AAAAAAAABWI/KHh4zNRyD7k/s400/2.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5376414872861756466" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Outline view works fine for XPages. But why it doesn't work as expected and as mentioned in Designer help file ? Any thoughts ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-465658861185709991?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/465658861185709991/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2009/09/outline-view-in-designer-85-bug-or-only.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/465658861185709991'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/465658861185709991'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2009/09/outline-view-in-designer-85-bug-or-only.html' title='Outline view in Designer 8.5 - BUG or only for XPages'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SpzcRDYdNzI/AAAAAAAABWA/CIRSfAEQiwM/s72-c/1.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-1393642462788671611</id><published>2009-08-31T23:25:00.000-07:00</published><updated>2009-09-01T01:52:09.562-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lotus Designer 8.5'/><title type='text'>What is 'Working Set' option in Designer 8.5</title><content type='html'>Have you noticed new feature "Working Set.." in designer 8.5? It's certainly a new feature for those who didn't work in Eclipse editor.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SpzAeURiJJI/AAAAAAAABUY/86GH-cgEvfw/s1600-h/WS1.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 375px; height: 173px;" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SpzAeURiJJI/AAAAAAAABUY/86GH-cgEvfw/s400/WS1.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5376383682244387986" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Lets first check why it's widely used in Eclipse editor.While working in Java project there are fair chances when your project contains hundred of classes and packages. What if when you need to find whether your fellow team member has worked on Database connection class or not.Will you go through each classes to find those methods ?  To overcome such situation Eclipse added "Working Set.." functionality.&lt;br /&gt;Working sets are a concept derived to help the developer categorize resources across projects into a contextually relevant representation. At its core, working sets are simply, as their name suggests, a sub-set of files/classes/folders/projects that represent a certain developer workflow. At the simplest level, working sets can be a way to categorize multiple projects together that may represent a single application. Developers aren't restricted to using working sets at the project level, however. It is possible to select particular packages, classes, and folder structures to be included or excluded from a given working set. This allows developers to organize code anyway they want.For an example, Here is my test project list in Eclipse.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SpzDzUHAXnI/AAAAAAAABUg/msZMQYFGWro/s1600-h/WS2.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 173px; height: 400px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SpzDzUHAXnI/AAAAAAAABUg/msZMQYFGWro/s400/WS2.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5376387341512367730" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I want to know how many places I've used &lt;span style="font-weight:bold;"&gt;DateTime&lt;/span&gt; class. To do so , Go to "Working Set" option from "Search" menu,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SpzFFW8mA7I/AAAAAAAABUo/Wa5eQwyNISQ/s1600-h/WS3.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 205px;" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SpzFFW8mA7I/AAAAAAAABUo/Wa5eQwyNISQ/s400/WS3.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5376388751023276978" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Created new "Working Set",&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SpzFrSfnquI/AAAAAAAABUw/nloBcZoKT6M/s1600-h/WS4.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 214px;" src="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SpzFrSfnquI/AAAAAAAABUw/nloBcZoKT6M/s400/WS4.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5376389402663037666" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Give a name and choose projects where you wish to perform search,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SpzGKeGoz6I/AAAAAAAABU4/i-t9EnyG4uk/s1600-h/WS5.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 345px; height: 400px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SpzGKeGoz6I/AAAAAAAABU4/i-t9EnyG4uk/s400/WS5.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5376389938355425186" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Select DateTime word ,select working sets and click OK&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SpzGpebPSII/AAAAAAAABVA/1wSIZvTChI0/s1600-h/WS6.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 231px;" src="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SpzGpebPSII/AAAAAAAABVA/1wSIZvTChI0/s400/WS6.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5376390471017777282" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here is your result,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SpzG8VwxPfI/AAAAAAAABVI/w8H3DSfEFYc/s1600-h/WS7.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 174px;" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SpzG8VwxPfI/AAAAAAAABVI/w8H3DSfEFYc/s400/WS7.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5376390795109678578" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So,You've seen Working sets group elements for display in views or for operations on a set of elements. Now lets check in Domino designer,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SpzIU8FlGUI/AAAAAAAABVQ/FJWwDxpl6r4/s1600-h/WS8.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 113px;" src="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SpzIU8FlGUI/AAAAAAAABVQ/FJWwDxpl6r4/s400/WS8.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5376392317225998658" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;First create new working set and perform search. You can choose design elements while creating "Working set".&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SpzLPXlAZpI/AAAAAAAABVY/IQv433QzVSY/s1600-h/WS10.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 211px; height: 400px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SpzLPXlAZpI/AAAAAAAABVY/IQv433QzVSY/s400/WS10.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5376395520061236882" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here is result for &lt;span style="font-weight:bold;"&gt;search&lt;/span&gt; word which is used in my Agent and Script libraries.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SpzLYrsYwGI/AAAAAAAABVg/JPuBHZM-5Vg/s1600-h/WS9.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 155px;" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SpzLYrsYwGI/AAAAAAAABVg/JPuBHZM-5Vg/s400/WS9.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5376395680079724642" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;However I'm experiencing some gotcha in using "Working Set.." in edit mode of design element. Let's assume, I've a function called "GetQueryStringvariable" and I'm willing to check occurrence of this function in multiple nsfs.I've opened my script library , selected the word and tried search in my newly created working set. I get following dialog box,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SpzNc9ZxADI/AAAAAAAABVo/d3UcOUGjiMk/s1600-h/WS11.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 173px;" src="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SpzNc9ZxADI/AAAAAAAABVo/d3UcOUGjiMk/s400/WS11.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5376397952576192562" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I was expected this to work like Eclipse editor (which I've shown above) but don't know whether it's designed like that or I'm wrong somewhere.However I can achieve this in other way by using &lt;span style="font-weight:bold;"&gt;Search-&gt;Search&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SpzPJNvhtYI/AAAAAAAABVw/sg8y-nmVA1g/s1600-h/WS12.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 351px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SpzPJNvhtYI/AAAAAAAABVw/sg8y-nmVA1g/s400/WS12.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5376399812388304258" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here is the result,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SpzPhrkl8gI/AAAAAAAABV4/WiNf7QCsWus/s1600-h/WS13.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 114px;" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SpzPhrkl8gI/AAAAAAAABV4/WiNf7QCsWus/s400/WS13.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5376400232712368642" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It's a great feature which can provide similar functionality which is there in "TeamStudio" like searching how many database you've hard coded server name and database name etc etc..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-1393642462788671611?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/1393642462788671611/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2009/08/what-is-working-set-option-in-85.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/1393642462788671611'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/1393642462788671611'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2009/08/what-is-working-set-option-in-85.html' title='What is &apos;Working Set&apos; option in Designer 8.5'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SpzAeURiJJI/AAAAAAAABUY/86GH-cgEvfw/s72-c/WS1.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-7248527348272805827</id><published>2009-08-28T00:32:00.000-07:00</published><updated>2009-09-06T19:42:57.842-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Development'/><title type='text'>Web applications and embedded view</title><content type='html'>It's quite common to use embedded view in notes application but many of Lotus Notes developers don't find easy and efficient for web based application.I was going through Notes/Domino 6 and 7 Forum and found similar problem to one of the developer. She wanted to display a combobox (which refers to docs in a view on the database) to show only selected docs in an embedded view. e.g. category = "Finance". &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www-10.lotus.com/ldd/nd6forum.nsf/DateAllThreadedweb/b03202c47143f47b8525761e0067fe74?OpenDocument"&gt;http://www-10.lotus.com/ldd/nd6forum.nsf/DateAllThreadedweb/b03202c47143f47b8525761e0067fe74?OpenDocument&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;She didn't got satisfactory answer so created another post saying , She wanted to refresh an embedded view based on the value of a combobox on the web.&lt;br /&gt;&lt;br /&gt;&lt;a href="refresh an embedded view based on the value of a combobox on the web"&gt;http://www-10.lotus.com/ldd/nd6forum.nsf/DateAllThreadedweb/66a335842154b86c8525761f0060073b?OpenDocument&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So question is why should we use embedded view in web based application ? , Does it really required ? Can't we achieve similar functionality using ajax ? Don't you think we should break the trend which was started in Notes 5 era ?&lt;br /&gt;&lt;br /&gt;Actually I never used embedded view in any of my web applications.I prefer AJAX instead of embedding view because it's fast and interacting well to the end user. &lt;br /&gt;&lt;br /&gt;Let's have a look to simple requirement where you've to provide List box to the user where he can select multiple orders and can view their details. There could be many ways to achieve this but what could be the elegant way to make users WOW .. It's AJAX.&lt;br /&gt;Here is the sample,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SpeUX___YgI/AAAAAAAABTQ/1mXOc35fXwI/s1600-h/1.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 174px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SpeUX___YgI/AAAAAAAABTQ/1mXOc35fXwI/s400/1.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5374927820327707138" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here are simple steps to get rid of embedded views in web applications,&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Step 1:&lt;/u&gt; Create a single column lookup view with following column formula,&lt;br /&gt;&lt;br /&gt;&lt;table border="0" width=100% bgcolor="AliceBlue" style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;orderNo + "|" + @Text(@DocumentUniqueID)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Step 2:&lt;/u&gt; &lt;span style="font-weight:bold;"&gt;Write dbcolumn in combo box to populate order numbers.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Step 3:&lt;/u&gt; &lt;span style="font-weight:bold;"&gt;On "View Order" button click write JavaScript to retrieve Document UNID and pass them to AJAX function.&lt;/span&gt;&lt;br /&gt;&lt;table border="0" width=100% bgcolor="AliceBlue" style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;//--------------------------------------------------------------------------------&lt;br /&gt;var orderID="";&lt;br /&gt;var sep="";&lt;br /&gt;for(i=0; i&lt;=document.forms[0].OrderSelection.length-1; i++) {&lt;br /&gt; if ( document.forms[0].OrderSelection.options[i].selected ) {&lt;br /&gt; orderID = orderID +sep+document.forms[0].OrderSelection.options[i].value;&lt;br /&gt; sep="^";&lt;br /&gt; }  &lt;br /&gt;}&lt;br /&gt;    &lt;br /&gt;displayOrder(orderID);&lt;br /&gt;//--------------------------------------------------------------------------------&lt;br /&gt;function displayOrder(orderID){&lt;br /&gt; url= location.href;&lt;br /&gt; tmpurl = url.substring(0,url.indexOf(".nsf"))&lt;br /&gt; agentUrl= tmpurl+".nsf"+"/displayOrder?OpenAgent"&lt;br /&gt; argsParam=trim(orderID);&lt;br /&gt; runAgent(agentUrl,argsParam);&lt;br /&gt;}&lt;br /&gt;//--------------------------------------------------------------------------------&lt;br /&gt;function runAgent(agentUrl,argsParam) {&lt;br /&gt; req = false;&lt;br /&gt;&lt;br /&gt; if (window.XMLHttpRequest) {&lt;br /&gt;  try {&lt;br /&gt;   req = new XMLHttpRequest();&lt;br /&gt;  } catch(e) {&lt;br /&gt;   req = false;&lt;br /&gt;  }&lt;br /&gt; } else if(window.ActiveXObject) {&lt;br /&gt;         try {&lt;br /&gt;           req = new ActiveXObject("Msxml2.XMLHTTP");&lt;br /&gt;        } catch(e) {&lt;br /&gt;           try {&lt;br /&gt;              req = new ActiveXObject("Microsoft.XMLHTTP");&lt;br /&gt;           } catch(e) {&lt;br /&gt;              req = false;&lt;br /&gt;           }&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; if (req ) {&lt;br /&gt;  req.onreadystatechange = processReqChange;&lt;br /&gt;  req.open("POST", agentUrl, true);&lt;br /&gt;  req.send(argsParam);&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;//----------------------------------------------------------------------------------&lt;br /&gt;function trim(str) {&lt;br /&gt; return str.replace(/^\s+|\s+$/g, '');&lt;br /&gt;}               &lt;br /&gt;//----------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;function processReqChange() {&lt;br /&gt; if (req.readyState == 4) {&lt;br /&gt;  if (req.status == 200) {&lt;br /&gt;   document.getElementById("status").style.display="none" ;&lt;br /&gt;   xmlStr=req.responseText&lt;br /&gt;   if ( xmlStr == 0  ) {&lt;br /&gt;    document.getElementById("status").innerHTML="Error in retrieving order";&lt;br /&gt;    return false;&lt;br /&gt;   } else {&lt;br /&gt;    document.getElementById("Contents").innerHTML=xmlStr;&lt;br /&gt;   }&lt;br /&gt;  } else {alert("There was a problem retrieving the XML data:\n" + req.statusText);}&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;//-----------------------------------------------------------------------------------&lt;br /&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;u&gt;Step 5:&lt;/u&gt; In your Lotus Script agent use "Request_Content" CGI method to retrieve POST arguments. Write your business logic , Build custom HTML and return them using &lt;span style="font-weight:bold;"&gt;Print&lt;/span&gt; method.Don't forget to set content-type as per your logic ( Text, HTML or XML ). Code can be,&lt;br /&gt;&lt;br /&gt;&lt;table border="0" width=100% bgcolor="AliceBlue" style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Sub Initialize&lt;br /&gt; &lt;br /&gt; Dim s As New NotesSession &lt;br /&gt; Dim curDb As NotesDatabase &lt;br /&gt; Dim view As NotesView &lt;br /&gt; Dim curDoc As NotesDocument, doc As NotesDocument &lt;br /&gt; Dim args As String &lt;br /&gt; Dim HTML As Variant,ret As Variant &lt;br /&gt; &lt;br /&gt; Print "Content-Type:text/html"&lt;br /&gt; &lt;br /&gt; On Error Goto errHandler&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; Set curDoc=s.DocumentContext &lt;br /&gt; Set curDb= s.CurrentDatabase &lt;br /&gt; Set view = curDb.GetView("vwOrder") &lt;br /&gt; args=curDoc.Request_Content(0)&lt;br /&gt; &lt;br /&gt; &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SpeZM2ONEpI/AAAAAAAABTY/9_DIx5P8JEc/s1600-h/2.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 212px;" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SpeZM2ONEpI/AAAAAAAABTY/9_DIx5P8JEc/s400/2.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5374933126282547858" /&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt; Print HTML&lt;br /&gt; &lt;br /&gt; Exit Sub&lt;br /&gt;errHandler:&lt;br /&gt; Print "0"&lt;br /&gt; Exit Sub&lt;br /&gt;End Sub&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;There are best ways to design Lotus Notes applications robust and as powerful as dot net and Java, Don't let others say "Notes systems are ugly".It's just our efforts which can lead Notes market as high as It was 10 years ago..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-7248527348272805827?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/7248527348272805827/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2009/08/web-applications-and-embedded-view.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/7248527348272805827'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/7248527348272805827'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2009/08/web-applications-and-embedded-view.html' title='Web applications and embedded view'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SpeUX___YgI/AAAAAAAABTQ/1mXOc35fXwI/s72-c/1.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-6695489009866328012</id><published>2009-08-27T00:31:00.000-07:00</published><updated>2009-08-27T00:50:17.130-07:00</updated><title type='text'>Oops.. ideajam changed their homepage..</title><content type='html'>Just saw new design of Ideajam home page but not as good as it was before . Most of the frequently used components like Search, login and What's hot is moved down and to access them you need to scroll :(. I personally believe most used components should be quickly accessible and visible to end users at a glance.Also, Hot ideas and tags section should be above to Ideajam information section.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SpY4Wft22qI/AAAAAAAABTA/0HXM5TDgTRo/s1600-h/1.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 203px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SpY4Wft22qI/AAAAAAAABTA/0HXM5TDgTRo/s400/1.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5374545164435380898" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;My vote goes to the old one ,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SpY6Ui1PhFI/AAAAAAAABTI/iazXY1lYAuc/s1600-h/2.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 312px;" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SpY6Ui1PhFI/AAAAAAAABTI/iazXY1lYAuc/s400/2.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5374547329935180882" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-6695489009866328012?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/6695489009866328012/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2009/08/oops-ideajam-changed-their-homepage.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/6695489009866328012'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/6695489009866328012'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2009/08/oops-ideajam-changed-their-homepage.html' title='Oops.. ideajam changed their homepage..'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SpY4Wft22qI/AAAAAAAABTA/0HXM5TDgTRo/s72-c/1.bmp' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-3804116104249742364</id><published>2009-08-26T22:48:00.000-07:00</published><updated>2009-08-27T00:24:50.040-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Development'/><category scheme='http://www.blogger.com/atom/ns#' term='Domino Java'/><title type='text'>Active directory name picker using Domino Java and Servlet</title><content type='html'>Recently I've got a requirement to build address picker for web application which uses Active directory.I've spend couple of hours on net to find some sample application/code but no success. Even though I had implemented ActiveX and JNDI based program which search users in Active directory but those were for Notes client based application.&lt;br /&gt;After some case study , I came to know only solution is to write Java Servlet to connect Active directory and build address picker on the web.After reading some Servlet tutorial and Notes help file got some confidence in writing Servlet in Domino application.I must say, It was quite easy and fun to write Servlet program.Here is my address picker which works perfectly in IE and Firefox allowing multiple users selection.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SpYexHl8iwI/AAAAAAAABSk/SoTuQoGs8_g/s1600-h/3.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 273px;" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SpYexHl8iwI/AAAAAAAABSk/SoTuQoGs8_g/s400/3.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5374517034513894146" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Let's start some postmortem on the code. First check my core logic to connect LDAP and retrieve records.Probably it's same as which I've posted in my &lt;a href="http://lotus-blogs.blogspot.com/2009/08/ldap-programming-using-domino-java-step.html"&gt;last blog&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SpYdcFd8AfI/AAAAAAAABSc/T2JREsHR4rA/s1600-h/2.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 345px;" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SpYdcFd8AfI/AAAAAAAABSc/T2JREsHR4rA/s400/2.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5374515573654553074" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In above code, I'm looping through each person records in Active Directory and writing in the list box using PrintWriter class.&lt;br /&gt;&lt;br /&gt;Now lets check the code in very simple steps.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Step 1: &lt;/u&gt; You need following classes to be imported in your agent,&lt;br /&gt;&lt;table border="0" width=100% bgcolor="AliceBlue" style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;import java.io.*;         // For PrintWriter class&lt;br /&gt;import javax.servlet.*; // For Servlets class&lt;br /&gt;import javax.servlet.http.*; // For Servlets class&lt;br /&gt;import lotus.domino.*;   // For Domino class&lt;br /&gt;import java.util.*;    // For util&lt;br /&gt;import javax.naming.*;  // For JNDI&lt;br /&gt;import javax.naming.directory.*;   //  For JNDI &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Step 2: &lt;/u&gt; Construct basic skeleton to write Java class.&lt;br /&gt;&lt;table border="0" width=100% bgcolor="AliceBlue" style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;public class namePicker extends HttpServlet {&lt;br /&gt;public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException{&lt;br /&gt;&lt;br /&gt;  try {&lt;br /&gt;   // Code goes here&lt;br /&gt;&lt;br /&gt;      }catch (NotesException n) {&lt;br /&gt;   System.out.println("Exception ID: " + n.id);&lt;br /&gt;   System.out.println("Exception description: " + n.text);&lt;br /&gt;   }&lt;br /&gt;  finally { NotesThread.stermThread(); }&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;}&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Above code extends a Java interface called HttpServlet.Inside the code, there are a few predefined methods you want to override, for example, here doGet() method gets called with &lt;span style="font-weight:bold;"&gt;HttpServletRequest&lt;/span&gt; object and &lt;span style="font-weight:bold;"&gt;HttpServletResponse&lt;/span&gt; object as parameters. The &lt;span style="font-weight:bold;"&gt;HttpServletRequest&lt;/span&gt; is a java object that is created by the container and captures an incoming HTTP request in an object form.&lt;span style="font-weight:bold;"&gt;HttpServletResponse&lt;/span&gt; provide HTTP-specific functionality in sending a response. For example, it has methods to access HTTP headers and cookies. &lt;br /&gt;&lt;br /&gt;&lt;u&gt;Step 3:&lt;/u&gt; Using &lt;span style="font-weight:bold;"&gt;setContentType&lt;/span&gt; method to sets the content type which will be sent to the client.Next, Creating &lt;span style="font-weight:bold;"&gt;PrintWriter&lt;/span&gt; object from &lt;span style="font-weight:bold;"&gt;getWriter&lt;/span&gt; method of &lt;span style="font-weight:bold;"&gt;HttpServletResponse&lt;/span&gt; class.This class is used to write contents on the browser.&lt;br /&gt;&lt;br /&gt;&lt;table border="0" width=100% bgcolor="AliceBlue" style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;res.setContentType("text/html");&lt;br /&gt;PrintWriter printOnBrowser = res.getWriter();&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;So our code will be ,&lt;br /&gt;&lt;table border="0" width=100% bgcolor="AliceBlue" style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;public class namePicker extends HttpServlet {&lt;br /&gt;public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException{&lt;br /&gt;        res.setContentType("text/html");&lt;br /&gt;        PrintWriter printOnBrowser = res.getWriter();&lt;br /&gt;  try {&lt;br /&gt;        //codes goes here&lt;br /&gt;      &lt;br /&gt;      }catch (NotesException n) {&lt;br /&gt;   System.out.println("Exception ID: " + n.id);&lt;br /&gt;   System.out.println("Exception description: " + n.text);&lt;br /&gt;   }&lt;br /&gt;  finally { NotesThread.stermThread(); }&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;}&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Step 4:&lt;/u&gt; Now we need to create NotesThread and initialize Domino session. To do so,&lt;br /&gt;&lt;table border="0" width=100% bgcolor="AliceBlue" style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;NotesThread.sinitThread();&lt;br /&gt;Session session = NotesFactory.createSession();&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Using &lt;span style="font-weight:bold;"&gt;sinitThread()&lt;/span&gt; method of &lt;span style="font-weight:bold;"&gt;NotesThread &lt;/span&gt;class and &lt;span style="font-weight:bold;"&gt;NotesFactory &lt;/span&gt;class to creation Notes session. Check designer help to get more idea.So our code changed to,&lt;br /&gt;&lt;table border="0" width=100% bgcolor="AliceBlue" style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;public class namePicker extends HttpServlet {&lt;br /&gt;public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException{&lt;br /&gt;        res.setContentType("text/html");&lt;br /&gt;        PrintWriter printOnBrowser = res.getWriter();&lt;br /&gt;  try {&lt;br /&gt;        NotesThread.sinitThread();&lt;br /&gt; Session session = NotesFactory.createSession();&lt;br /&gt;      &lt;br /&gt;      }catch (NotesException n) {&lt;br /&gt;   System.out.println("Exception ID: " + n.id);&lt;br /&gt;   System.out.println("Exception description: " + n.text);&lt;br /&gt;   }&lt;br /&gt;  finally { NotesThread.stermThread(); }&lt;br /&gt;   }&lt;br /&gt;}&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Step 4:&lt;/u&gt; Now you're well set to write HTML and JavaScript in Servlet which will be printed on browser like Lotus Script "Print" statement. Something like,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SpYoqzrvYvI/AAAAAAAABSs/BbY4lcFyq3w/s1600-h/2.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SpYoqzrvYvI/AAAAAAAABSs/BbY4lcFyq3w/s400/2.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5374527921206551282" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Step 5&lt;/u&gt; At the end don't forget to destroy Domino objects which you've created because we are using Multi threaded programming , mistakes can screw your Domino server. To destroy Domino objects, User recycle()&lt;br /&gt;&lt;table border="0" width=100% bgcolor="AliceBlue" style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;session.recycle(); &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;How I'm calling my Servlet from Domino&lt;/u&gt;&lt;br /&gt;&lt;table border="0" width=100% bgcolor="AliceBlue" style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;window.open( '/servlet/namePicker','newWin', 'toolbar=no,location=no,directories=no,status=no,menubar=no,&lt;br /&gt;scrollbars=no,resizable=no,width=540,height=340') ;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Note that I'm referring "Servlet" folder from my server directory which is in (Lotus\Domino\data\domino\servlet)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SpY0imxsIhI/AAAAAAAABS4/RxKnPNd8qU0/s1600-h/5.bmp"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 78px;" src="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SpY0imxsIhI/AAAAAAAABS4/RxKnPNd8qU0/s400/5.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5374540974442422802" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Full Servlet code can't be posted here because lack of HTML support on this site.If anyone interested in getting full code ,drop me an e-mail.Along with that I've done similar name picker which use NAB using Servlet.Hopefully soon both sets of code will be posted in OpenNTF.&lt;br /&gt;&lt;br /&gt;Hope this article can be useful to those who wish to integrate Domino with third party application using Java Servlet.&lt;br /&gt;&lt;br /&gt;Oops, Forgot to mentioned some links for those who are not sure how to run Servlet in Domino, there is some gotcha in that :). You may follow Jake's article ,&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.codestore.net/store.nsf/unid/EPSD-4UWHAU"&gt;&lt;br /&gt;Creating servlets inside the Domino Designer&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.ibm.com/developerworks/lotus/library/ls-Java_servlets/index.html"&gt;Java servlets: Extending your Domino applications&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Only thing is changed from Jake's article about adding ,jsdk.jar in your agent . You don't need to do any more ( at least with Designer 8.5 )&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-3804116104249742364?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/3804116104249742364/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2009/08/active-directory-name-picker-using.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/3804116104249742364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/3804116104249742364'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2009/08/active-directory-name-picker-using.html' title='Active directory name picker using Domino Java and Servlet'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SpYexHl8iwI/AAAAAAAABSk/SoTuQoGs8_g/s72-c/3.bmp' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-1211178394913250198</id><published>2009-08-24T22:36:00.001-07:00</published><updated>2009-08-24T23:27:20.578-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lotus Notes'/><title type='text'>New finding for me in Lotus 8.5 designer-II</title><content type='html'>To continue with my small but useful findings in Domino designer 8.5. Few months back I've found really nice implementation in 8.5 designer but forgot to mention it.&lt;br /&gt;&lt;br /&gt;While working on domino designer many of us open up lots of design elements and database in left navigation. What happens when you realize you don't need to work anymore on that database and you wish to remove bookmark.Though ,if you've opened up lots of design elements of that database you must need to close one by one in order to remove the bookmark of that database. It was really a pain in previous version of designer but no more with Domino designer 8.5 (not sure about 8.0).&lt;br /&gt;&lt;br /&gt;In Domino 8.5 designer if you remove database bookmark from left navigation it correspondingly removes every single opened design elements tab from current perspective. Thanks to designer team who is working so hard to implement small but really important feature.&lt;br /&gt;&lt;br /&gt;Now let's talk about my second finding,When we create new agent or script library in older version of designer does it checks whether any agent or script library already exist with the same name ? I guess no , mostly it creates design element with same name ( or may be with "copyof...." name ). In Domino designer 8.5 , It checks before creating new agent or script library and accordingly throws an error if you try to create with existing name.AWESOME...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SpN_GcWtiCI/AAAAAAAABSE/CYYaOoGXIL8/s1600-h/2.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 269px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SpN_GcWtiCI/AAAAAAAABSE/CYYaOoGXIL8/s400/2.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5373778529050527778" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;However,It is strange that same validation doesn't work for Form,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SpN__RRETpI/AAAAAAAABSM/Yf6MxOVji5M/s1600-h/3.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 142px;" src="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SpN__RRETpI/AAAAAAAABSM/Yf6MxOVji5M/s400/3.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5373779505326608018" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It's Probably a feature ( can't say bug ) for Agents and Script libraries.When there is a similar pop-ups for creating Agent/Form , then in-line validation should work even same way.I believe it should be uniformed. Any thoughts ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-1211178394913250198?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/1211178394913250198/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2009/08/new-finding-for-me-in-lotus-85-designer_24.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/1211178394913250198'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/1211178394913250198'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2009/08/new-finding-for-me-in-lotus-85-designer_24.html' title='New finding for me in Lotus 8.5 designer-II'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SpN_GcWtiCI/AAAAAAAABSE/CYYaOoGXIL8/s72-c/2.JPG' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-568641439911455817</id><published>2009-08-21T01:36:00.000-07:00</published><updated>2009-08-21T02:00:23.918-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lotus Notes'/><title type='text'>BUG found in agent renaming in Lotus Designer 8.5</title><content type='html'>It seems I'm more productive on Friday :) just kidding. When you rename agent in agent property window it doesn't get updated in-line, I mean as soon as you finish typing . Furthermore you need to save and close the agent then only you can see the changes in agent name. Let's see what I'm blubbering.&lt;br /&gt;&lt;br /&gt;Let's first open existing form ,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/So5e85JxQXI/AAAAAAAABRE/vWyw4euvG78/s1600-h/1.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 369px; height: 243px;" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/So5e85JxQXI/AAAAAAAABRE/vWyw4euvG78/s400/1.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5372335805726540146" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Do some changes in Form name and hit enter,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/So5fGGaOJ6I/AAAAAAAABRM/_2wZ8_NmCIY/s1600-h/2.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 354px; height: 211px;" src="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/So5fGGaOJ6I/AAAAAAAABRM/_2wZ8_NmCIY/s400/2.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5372335963904026530" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As soon as you hit enter you can see the changes taken effect and a star appears which shows you've not saved your form. Thanks to IBM for small but very useful feature. &lt;br /&gt;&lt;br /&gt;Let's do same for an Agent , Open any existing agent &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/So5gAe7ChLI/AAAAAAAABRU/ZMmteZm7xms/s1600-h/3.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 378px; height: 255px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/So5gAe7ChLI/AAAAAAAABRU/ZMmteZm7xms/s400/3.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5372336966916539570" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Do some changes in agent name box and hit enter,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/So5gbZ8L62I/AAAAAAAABRc/FA-sp5lW5BI/s1600-h/5.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 351px; height: 252px;" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/So5gbZ8L62I/AAAAAAAABRc/FA-sp5lW5BI/s400/5.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5372337429435640674" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You can see star appears but name hasn't change. No matter how many times you change the name and hit enter it remains same as it was when opened.&lt;br /&gt;&lt;br /&gt;Furthermore , Now save your agent but don't close it and notice can you see the new name ?&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/So5hhCIYyOI/AAAAAAAABRk/qbMpx-bllDs/s1600-h/6.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 277px; height: 251px;" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/So5hhCIYyOI/AAAAAAAABRk/qbMpx-bllDs/s400/6.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5372338625635207394" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;If you notice , name has changed in agent list in left navigation but still old name is appearing in agent tab until you close and reopen the agent.&lt;br /&gt;&lt;br /&gt;So , What do you say , Is it a bug ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-568641439911455817?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/568641439911455817/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2009/08/bug-found-in-agent-renaming-in-lotus.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/568641439911455817'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/568641439911455817'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2009/08/bug-found-in-agent-renaming-in-lotus.html' title='BUG found in agent renaming in Lotus Designer 8.5'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_T_-j3ZLqfNQ/So5e85JxQXI/AAAAAAAABRE/vWyw4euvG78/s72-c/1.JPG' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-809964768670789864</id><published>2009-08-20T22:06:00.000-07:00</published><updated>2009-08-24T22:37:19.143-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lotus Notes'/><title type='text'>New finding for me in Lotus 8.5 designer-I</title><content type='html'>Have you ever annoyed in tweaking between two design elements while working on same or different database simultaneously in Domino designer? Let's assume I've a form with complex design and I need to write agent or script library or even need to design view based on the form . What actually we do ? We keep tweaking between design elements and doing development . Today I found R8.5 Designer has given something I silently wished always. With designer 8.5 you don't need to do any more , You can adjust one design element at the top and other at the bottom and can work simultaneously without losing your attention. &lt;br /&gt;&lt;br /&gt;Here what we used to do in previous versions of designer,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/So4tu2Hhv3I/AAAAAAAABQ0/LAKqck0IxBs/s1600-h/1.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 129px;" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/So4tu2Hhv3I/AAAAAAAABQ0/LAKqck0IxBs/s400/1.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5372281688323899250" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now with 8.5 designer ,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/So4uuBxe3XI/AAAAAAAABQ8/ec_1Pq_kUaU/s1600-h/2.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 356px;" src="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/So4uuBxe3XI/AAAAAAAABQ8/ec_1Pq_kUaU/s400/2.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5372282773784419698" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Designer 8.5 , I'm loving it... Finger licking good.... :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-809964768670789864?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/809964768670789864/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2009/08/new-finding-for-me-in-lotus-85-designer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/809964768670789864'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/809964768670789864'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2009/08/new-finding-for-me-in-lotus-85-designer.html' title='New finding for me in Lotus 8.5 designer-I'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_T_-j3ZLqfNQ/So4tu2Hhv3I/AAAAAAAABQ0/LAKqck0IxBs/s72-c/1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-8596229248700346749</id><published>2009-08-20T18:50:00.000-07:00</published><updated>2009-08-21T01:24:24.733-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Domino Java'/><title type='text'>LDAP programming using Domino Java - Step by Step</title><content type='html'>Today It's very common in most of the companies to have  Microsoft Active Directory and Lotus Notes implementation together. We also use Active Directory and Lotus Notes side by side to validate Lotus Notes and SharePoint applications. Recently I've got a requirement to query Active Directory based on users profile which resides in our Lotus Notes view. I've implemented two sets of code one using Domino Java and jndi and other using Lotus Script. I've written Lotus script to those who are good in Lotus scripting and willing to perform such kind of cross implementation.By seeing the code you may realize how simple is to query Active directory from Domino using Lotus Scripting.To see the Lotus Script code , you may need to wait until it get published in &lt;a href="http://searchdomino.techtarget.com/"&gt;Search Domino&lt;/a&gt; since it's already in process.So let's talk about Domino Java+JNDI.&lt;br /&gt;&lt;br /&gt;In order to implement this code , You must need to know your Active Directory server name ( or IP address ) and make sure the port number where server is listening.&lt;br /&gt;&lt;br /&gt;This code can be further extended to synchronized Lotus Notes address book contents in Active Directory or vice versa . Even it can be used to build Lotus Notes application which can use Active Directory for authentication. &lt;br /&gt;&lt;br /&gt;To accomplish this, I'm using JNDI ( The Java Naming and Directory Interface ) which is an API specified in Java technology that provides naming and directory functionality to applications written in the Java programming language. It is designed especially for the Java platform using Java's object model. Using JNDI, applications based on Java technology can store and retrieve named Java objects of any type. In addition, JNDI provides methods for performing standard directory operations, such as associating attributes with objects and searching for objects using their attributes.&lt;br /&gt;&lt;br /&gt;To start with the code ,&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Step one:&lt;/u&gt; Include JNDI API package in your domino Java agent,&lt;br /&gt;&lt;br /&gt;&lt;table border="0" width=100% bgcolor="AliceBlue" style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;import javax.naming.*;&lt;/span&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Step two:&lt;/u&gt;&lt;br /&gt;JNDI applications need a way to communicate various preferences and information that define the environment in which naming and directory services are accessed.The following code creates an environment consisting of two security-related properties and creates an initial context using that environment.&lt;br /&gt;&lt;br /&gt;&lt;table border="0" width=100% bgcolor="AliceBlue" style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Hashtable env = new Hashtable();&lt;br /&gt;env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");&lt;br /&gt;//Replace with actual server name and port number&lt;br /&gt;env.put(Context.PROVIDER_URL, "ldap://serverName:389"); &lt;br /&gt;env.put(Context.SECURITY_PRINCIPAL, "CN=Rishi Sahi/OU=Development/O=Home");&lt;br /&gt;env.put(Context.SECURITY_CREDENTIALS, "Password goes here");&lt;br /&gt;DirContext ctx = new InitialDirContext(env);&lt;/span&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;  &lt;br /&gt;&lt;br /&gt;&lt;u&gt;Step 3:&lt;/u&gt; Build a search scope , You need to define Active directory attributes which are going to be searched,&lt;br /&gt;&lt;br /&gt;&lt;table border="0" width=100% bgcolor="AliceBlue" style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;String[] attrIDs = {"cn","uid"};&lt;br /&gt;SearchControls ctls = new SearchControls();&lt;br /&gt;ctls.setReturningAttributes(attrIDs);&lt;br /&gt;ctls.setSearchScope(SearchControls.SUBTREE_SCOPE);&lt;/span&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;  &lt;br /&gt;&lt;br /&gt;In above code , &lt;span style="font-weight:bold;"&gt;SearchControls&lt;/span&gt; class encapsulates factors that determine scope of search and what gets returned as a result of the search.Next,&lt;span style="font-weight:bold;"&gt;setReturningAttributes()&lt;/span&gt; method specifies the attributes that will be returned as part of the search and &lt;span style="font-weight:bold;"&gt;setSearchScope()&lt;/span&gt; to &lt;span style="font-weight:bold;"&gt;SUBTREE_SCOPE&lt;/span&gt; to search the entire subtree rooted at the named object.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Step 4:&lt;/u&gt; Using &lt;span style="font-weight:bold;"&gt;search&lt;/span&gt; method of &lt;span style="font-weight:bold;"&gt;DirContext&lt;/span&gt;.It searches in a single context for objects that contain a specified set of attributes, and retrieves selected attributes. Note that my first argument is blank which make it search in entire scope, you can even define specific root.At the end make sure your results stored in &lt;span style="font-weight:bold;"&gt;NamingEnumeration&lt;/span&gt; type object.&lt;br /&gt;&lt;br /&gt;&lt;table border="0" width=100% bgcolor="AliceBlue" style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;String filter = "cn="+ searchUser;&lt;br /&gt;NamingEnumeration answer = ctx.search("", filter,ctls);&lt;/span&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;  &lt;br /&gt;&lt;br /&gt;&lt;u&gt;Step 5:&lt;/u&gt; In the last step only you need to loop through your search results and retrieve attributes value.&lt;br /&gt;&lt;br /&gt;&lt;table border="0" width=100% bgcolor="AliceBlue" style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;while (answer.hasMore())&lt;br /&gt;{&lt;br /&gt;   SearchResult sr = (SearchResult)answer.next();&lt;br /&gt;   System.out.println("&lt;&lt;" + sr.getName()+"&gt;&gt;");&lt;br /&gt;   Attributes attrs = sr.getAttributes();&lt;br /&gt;   System.out.println(attrs.get("cn").get()); &lt;br /&gt;   isFound="1";&lt;br /&gt;}&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Here is the complete code,&lt;br /&gt;&lt;br /&gt;&lt;table border="0" width=100% bgcolor="AliceBlue" style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;import javax.naming.*;&lt;br /&gt;import javax.naming.directory.*;&lt;br /&gt;import java.util.*;&lt;br /&gt;&lt;br /&gt;public class LDAPQuery {&lt;br /&gt;&lt;br /&gt;     public static void ldapconnect(){&lt;br /&gt;&lt;br /&gt;     String searchUser="Rishi Sahi";&lt;br /&gt;     String isFound="0";&lt;br /&gt;          &lt;br /&gt;        try {&lt;br /&gt;         &lt;br /&gt;   Hashtable env = new Hashtable();&lt;br /&gt;   env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");&lt;br /&gt;   env.put(Context.PROVIDER_URL, "ldap://serverName:389"); //Replace with actual server name and port number&lt;br /&gt;   env.put(Context.SECURITY_PRINCIPAL, "CN=Rishi Sahi/OU=Development/O=Home");&lt;br /&gt;   env.put(Context.SECURITY_CREDENTIALS, "Password goes here");&lt;br /&gt;   // Create initial context&lt;br /&gt;   DirContext ctx = new InitialDirContext(env); &lt;br /&gt;   // Specify the ids of the attributes to return &lt;br /&gt;   String[] attrIDs = {"cn","uid"};&lt;br /&gt;   SearchControls ctls = new SearchControls();&lt;br /&gt;   ctls.setReturningAttributes(attrIDs);&lt;br /&gt;   ctls.setSearchScope(SearchControls.SUBTREE_SCOPE);&lt;br /&gt;   String filter = "cn="+ searchUser;&lt;br /&gt;   // Search for objects that have those matching attributes&lt;br /&gt;   NamingEnumeration answer = ctx.search("", filter,ctls);&lt;br /&gt;   try { &lt;br /&gt;   while (answer.hasMore())&lt;br /&gt;   {&lt;br /&gt;    SearchResult sr = (SearchResult)answer.next();&lt;br /&gt;    System.out.println("&lt;&lt;" + sr.getName()+"&gt;&gt;");&lt;br /&gt;    Attributes attrs = sr.getAttributes();&lt;br /&gt;    System.out.println(attrs.get("cn").get()); &lt;br /&gt;    isFound="1";&lt;br /&gt;   }&lt;br /&gt;   &lt;br /&gt;   if ( isFound=="1") {&lt;br /&gt;    System.out.println("User found in Active Directory!"); &lt;br /&gt;   } else {&lt;br /&gt;    System.out.println("Opps ! User not found in Active Directory!"); &lt;br /&gt;   } &lt;br /&gt;   answer.close();&lt;br /&gt;   }catch(PartialResultException e) {&lt;br /&gt;    e.printStackTrace();&lt;br /&gt;   }&lt;br /&gt;   // Close the context when we're done&lt;br /&gt;   ctx.close();&lt;br /&gt;        } catch (Exception e) {&lt;br /&gt;            e.printStackTrace();&lt;br /&gt;        }&lt;br /&gt; &lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    public LDAPQuery() {&lt;br /&gt;  // Don't think I'm doing anything here&lt;br /&gt; }&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;To call this routine,&lt;br /&gt;&lt;br /&gt;&lt;table border="0" width=100% bgcolor="AliceBlue" style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;import lotus.domino.*;&lt;br /&gt;&lt;br /&gt;public class JavaAgent extends AgentBase {&lt;br /&gt;&lt;br /&gt; public void NotesMain() {&lt;br /&gt;&lt;br /&gt;  try {&lt;br /&gt;           Session session = getSession();&lt;br /&gt;           AgentContext agentContext = session.getAgentContext();&lt;br /&gt;           LDAPQuery objQuery = new LDAPQuery();&lt;br /&gt;           objQuery.ldapconnect();&lt;br /&gt;     } catch(Exception e) {e.printStackTrace();}&lt;br /&gt; }&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Reference : &lt;a href="http://java.sun.com/j2se/1.5.0/docs/guide/jndi/spec/jndi/jndiTOC.html"&gt;Java Naming and Directory Interface&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So thought of the day&lt;br /&gt;&lt;br /&gt;"I love Lotus Notes because I don't see anything which is not possible in Domino."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-8596229248700346749?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/8596229248700346749/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2009/08/ldap-programming-using-domino-java-step.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/8596229248700346749'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/8596229248700346749'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2009/08/ldap-programming-using-domino-java-step.html' title='LDAP programming using Domino Java - Step by Step'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-8299816560129079518</id><published>2009-07-24T01:13:00.000-07:00</published><updated>2009-07-24T02:30:36.051-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Development'/><category scheme='http://www.blogger.com/atom/ns#' term='Dojo'/><title type='text'>Google like dialog box using Dojo</title><content type='html'>Dojo made easier to build model popup window with blur parent.It can be easily achieved using dijit.Dialog.Dojo dialog box acts like a web form on a sticky note. By overlaying the view page underneath it, the dialog box can use room for more form&lt;br /&gt;controls. First look into some cool examples which can be done using dijit.Dialog. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/Sml5dQIhEiI/AAAAAAAABP8/uR2ZWJx_qto/s1600-h/1.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 280px;" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/Sml5dQIhEiI/AAAAAAAABP8/uR2ZWJx_qto/s400/1.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5361950374815142434" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Let's see in simple steps,&lt;br /&gt;&lt;br /&gt;- I assume before start you already have dojo set up in your machine.&lt;br /&gt;&lt;br /&gt;- Create DIV tag at the end of your web form and specify dojoType as dijit.Dialog. Along with that add id and title tag to DIV.E.g,&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/Sml7gXZSYLI/AAAAAAAABQE/jVse6zhTcuU/s1600-h/2.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 29px;" src="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/Sml7gXZSYLI/AAAAAAAABQE/jVse6zhTcuU/s400/2.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5361952627327393970" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;- Next you need to design your HTML which you're going to display in dialog box. Let's say simple address popup box. E.g,&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/Sml8Ij8dj-I/AAAAAAAABQM/zLzfMPC2g3w/s1600-h/3.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 160px;" src="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/Sml8Ij8dj-I/AAAAAAAABQM/zLzfMPC2g3w/s400/3.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5361953317890920418" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;- Pleace your HTML inside DIV tag which you've created in first step. E.g,&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/Sml801y6DcI/AAAAAAAABQU/QK1ZY8qUKUQ/s1600-h/4.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 244px;" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/Sml801y6DcI/AAAAAAAABQU/QK1ZY8qUKUQ/s400/4.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5361954078596926914" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;- At the end call your dialog box on any event using show() method of dijit. E.g,&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/Sml9aTSreMI/AAAAAAAABQc/2AccZMgyta8/s1600-h/5.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 13px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/Sml9aTSreMI/AAAAAAAABQc/2AccZMgyta8/s400/5.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5361954722169977026" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;- Check the output ,&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/Sml-HRvBaKI/AAAAAAAABQk/fzNa_7TmWOw/s1600-h/6.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 219px;" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/Sml-HRvBaKI/AAAAAAAABQk/fzNa_7TmWOw/s400/6.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5361955494846097570" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-8299816560129079518?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/8299816560129079518/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2009/07/google-like-dialog-box-using-dojo.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/8299816560129079518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/8299816560129079518'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2009/07/google-like-dialog-box-using-dojo.html' title='Google like dialog box using Dojo'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/Sml5dQIhEiI/AAAAAAAABP8/uR2ZWJx_qto/s72-c/1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-671733333378764175</id><published>2009-07-22T01:04:00.000-07:00</published><updated>2009-07-22T01:56:03.525-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Development'/><title type='text'>BUG in PassThruHTML property of NotesRichTextStyle class</title><content type='html'>Yesterday I was working on Audit trail functionality for one of my web form. I was using Rich text field to log activities on the form. Code was quite simple so done in few minutes and started testing.Chunk of my code was ,&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Call rtitem.appendStyle(RtStyle)&lt;br /&gt;Call rtitem.AppendText(tmpname.common)&lt;br /&gt;Call rtitem.AddNewLine(1)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;When I've started doing testing found AddnewLine property doesn't work fine and giving strange results. &lt;br /&gt;&lt;br /&gt;&lt;table style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SmbKB6Fvx0I/AAAAAAAABPE/gwIvxsF8QWs/s1600-h/2.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 211px;" src="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SmbKB6Fvx0I/AAAAAAAABPE/gwIvxsF8QWs/s400/2.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5361194540553193282" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;table style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SmbKUrYMGTI/AAAAAAAABPU/cR_OCCEuDuM/s1600-h/1.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 190px;" src="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SmbKUrYMGTI/AAAAAAAABPU/cR_OCCEuDuM/s400/1.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5361194863021529394" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;I've tried to debug but not able to find what is wrong with AddNewLine method which works perfectly in client application. Next, I've decided to use PassThruHTML property of NotesRichTextStyle class and insert HTML directly into Rich Text field. When I've started testing the new code found RT field is not parsing HTML correctly.&lt;br /&gt;&lt;br /&gt;&lt;table style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SmbN0FOXI1I/AAAAAAAABPc/zBIFDh6QK1o/s1600-h/3.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 88px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SmbN0FOXI1I/AAAAAAAABPc/zBIFDh6QK1o/s400/3.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5361198701070459730" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Even I've used the same code which is mentioned in Notes help but didn't work.&lt;br /&gt;I thought there must be a problem in putting RT field in HTML table , so I took out and placed outside table and verified but no use. My next debugging was from dojo side , I thought there must be something which I might have missed in dojo. I've spend couple of hours to test if anything went wrong in dojo but ended up with the same problem. At the end started looking IBM articles and found it's known bug which is reported five years back. To work around this issue, add brackets, [ ], around your string.When applied this work around everything works well ,&lt;br /&gt;&lt;br /&gt;&lt;table style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;a href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SmbT8tjBfTI/AAAAAAAABP0/v5kIVQUkTn4/s1600-h/5.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 29px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SmbT8tjBfTI/AAAAAAAABP0/v5kIVQUkTn4/s400/5.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5361205446403259698" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;table style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SmbQTC00kxI/AAAAAAAABPk/TQXQi8_73XE/s1600-h/4.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 108px;" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SmbQTC00kxI/AAAAAAAABPk/TQXQi8_73XE/s400/4.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5361201432025666322" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www-01.ibm.com/support/docview.wss?uid=swg21097539"&gt;http://www-01.ibm.com/support/docview.wss?uid=swg21097539&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I've couple of concerns, First, Why this bug is still there with R8.x versions ? This must be fixed long time back or they don't like to enhance Rich text capabilities in Lotus Notes.Second, Why AddNewLine property doesn't work properly on web like Notes client.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-671733333378764175?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/671733333378764175/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2009/07/bug-in-passthruhtml-property-of.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/671733333378764175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/671733333378764175'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2009/07/bug-in-passthruhtml-property-of.html' title='BUG in PassThruHTML property of NotesRichTextStyle class'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SmbKB6Fvx0I/AAAAAAAABPE/gwIvxsF8QWs/s72-c/2.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-6411921131617910676</id><published>2009-07-16T21:25:00.000-07:00</published><updated>2009-07-27T01:59:41.836-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Development'/><category scheme='http://www.blogger.com/atom/ns#' term='Dojo'/><title type='text'>Importance of  Dojo's addOnLoad function</title><content type='html'>Have you ever encountered initialization error in building dojo application? . Most frequent errors are ; dojo is not loaded,getElementByid("..")/dojo.byId("..") is null or not an object, dijit widget is not loaded etc etc. It's certain that there is something wrong in parsing HTML, but it's not as easy to rectify like traditional HTML web pages.&lt;br /&gt;&lt;br /&gt;&lt;table border="0" width=100% bgcolor="AliceBlue" style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-style:italic;"&gt;Scenario&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;You are using dojo.byId("..") or document.getElementById("..") on OnLoad event of the form and ended up with "dojo.byId("..") not defined or not an object" error. This is very common use of OnLoad event in Domino web applications.&lt;br /&gt;&lt;br /&gt;&lt;table border="0" width=100% bgcolor="AliceBlue" style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Something about dojo.addOnLoad()&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt; &lt;br /&gt;&lt;br /&gt;Dojo's addOnLoad() makes sure that the DOM tree has been built by the browser and any other JavaScript that the handler references has been downloaded and evaluated.In dojo application we need to make sure that JavaScript resources that we’ve dojo.required and/or the DOM tree are ready for use.&lt;br /&gt;&lt;br /&gt;&lt;table border="0" width=100% bgcolor="AliceBlue" style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;What dojo.addOnLoad does ?&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;dojo.addOnLoad takes a reference to a function and guarantees that the provided function is executed immediately after the following three conditions are met:&lt;br /&gt;&lt;br /&gt;# The DOM tree has been built by the browser and is available for use by client code.&lt;br /&gt;&lt;br /&gt;# All JavaScript resources demanded through the Dojo loader have been loaded.&lt;br /&gt;&lt;br /&gt;# All Dojo widget parsing has been completed.Dojo lets you specify widgets directly in the HTML code. When you include Dojo widgets , Dojo must parse the HTML and replace each embedded widget with the actual HTML that implements the widget.&lt;br /&gt;If djConfig.parseOnLoad is true, then this is accomplished as soon as the DOM tree is loaded by the browser but before any function registered with dojo.addOnLoad is executed.&lt;br /&gt;&lt;br /&gt;&lt;table border="0" width=100% bgcolor="AliceBlue" style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-style:italic;"&gt;Facts in using dojo.addOnLoad()&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;# dojo.addOnLoad can be used any number of times.&lt;br /&gt;&lt;br /&gt;# Each function given as an argument in dojo.addOnLoad() will be executed in the order it was provided.&lt;br /&gt;&lt;br /&gt;&lt;table border="0" width=100% bgcolor="AliceBlue" style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td&gt;&lt;em&gt;Solution &lt;/em&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;# Scenario 1 : Setting up value in variable(s) or pop-up alert to the user on onLoad event of the form.&lt;br /&gt;&lt;br /&gt;Instead of ,&lt;br /&gt;&lt;br /&gt;&lt;table style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;a href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SmAGUaR5BNI/AAAAAAAABNM/NIHeHzjq7bw/s1600-h/1.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 92px;" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SmAGUaR5BNI/AAAAAAAABNM/NIHeHzjq7bw/s400/1.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5359290504292402386" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;use like,&lt;br /&gt;&lt;br /&gt;&lt;table style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;a href="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SmAGUwad5qI/AAAAAAAABNU/GT1FHkP653k/s1600-h/2.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 99px;" src="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SmAGUwad5qI/AAAAAAAABNU/GT1FHkP653k/s400/2.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5359290510233953954" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;# Scenario 2 : Calling JavaScript function on onLoad event of the form ,&lt;br /&gt;&lt;br /&gt;Instead of ,&lt;br /&gt;&lt;br /&gt;&lt;table style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;a href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SmANAK5NmFI/AAAAAAAABNc/41-wn7g3Bjk/s1600-h/3.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 128px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SmANAK5NmFI/AAAAAAAABNc/41-wn7g3Bjk/s400/3.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5359297853146372178" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;use like,&lt;br /&gt;&lt;br /&gt;&lt;table style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;a href="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SmANkgpuUDI/AAAAAAAABNk/UhSc3hwxV2Q/s1600-h/4.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 162px;" src="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SmANkgpuUDI/AAAAAAAABNk/UhSc3hwxV2Q/s400/4.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5359298477462278194" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;# Scenario 3 : Attaching JavaScript function to any object on any event&lt;br /&gt;&lt;br /&gt;&lt;table style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;a href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SmAPGFjvkhI/AAAAAAAABNs/f_Pu_SNbtTc/s1600-h/5.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 104px;" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SmAPGFjvkhI/AAAAAAAABNs/f_Pu_SNbtTc/s400/5.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5359300153816617490" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;( Note:JavaScript code is not allowed in the blog, write me for actual code )&lt;/em&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-6411921131617910676?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/6411921131617910676/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2009/07/importance-of-dojos-addonload-function.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/6411921131617910676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/6411921131617910676'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2009/07/importance-of-dojos-addonload-function.html' title='Importance of  Dojo&apos;s addOnLoad function'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SmAGUaR5BNI/AAAAAAAABNM/NIHeHzjq7bw/s72-c/1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-6472461644056020567</id><published>2009-07-14T19:34:00.000-07:00</published><updated>2009-07-14T22:02:45.395-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Domino Java'/><title type='text'>Imitate global declaration method in Domino Java</title><content type='html'>When we need global declaration of variables or constants in more than one agent we usually create script library with those global declarations and link with the agent in order to use them.What about if same you wish to accomplish in Java ? Here are the simple steps,&lt;br /&gt;&lt;br /&gt;# Create new Java library and add new class ,&lt;br /&gt;&lt;br /&gt;&lt;table border="0" width=100% bgcolor="Khaki" style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-style:italic;"&gt;public class GlobalDeclarations{&lt;br /&gt; public static String viewName="ViewName1";&lt;br /&gt; public static String viewName1="ViewName2";&lt;br /&gt; .&lt;br /&gt; .&lt;br /&gt;        .&lt;br /&gt; }&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;# Save and close your Java library and include this library to the agent where these variables you intended to use.Including Java library in Java agent is explained &lt;a href="http://lotus-blogs.blogspot.com/2009/07/some-java-basics-for-domino-java.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;# In your Java agent use global variables like,&lt;br /&gt;&lt;br /&gt;&lt;table border="0" width=100% bgcolor="Khaki" style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-style:italic;"&gt;try{&lt;br /&gt;     Session session = getSession();&lt;br /&gt;     AgentContext agentContext = session.getAgentContext();&lt;br /&gt;     Database db = agentContext.getCurrentDatabase();&lt;br /&gt;     View vwConfig=db.getView(&lt;span style="font-style:italic;background-color:cyan"&gt;GlobalDeclarations.viewName&lt;/span&gt;);&lt;br /&gt;     .&lt;br /&gt;     .&lt;br /&gt;   }catch(Exception e){&lt;br /&gt;          e.printStackTrace();&lt;br /&gt;         System.out.println(e.getMessage());&lt;br /&gt;  } &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;In above example ,I've accessed global variable using &lt;span style="font-weight:bold;"&gt;classname.variablename &lt;/span&gt;. Using this technique all the global variables can be declared in separate Java library to avoid hard coding in complex agents.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-6472461644056020567?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/6472461644056020567/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2009/07/imitate-global-declaration-method-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/6472461644056020567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/6472461644056020567'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2009/07/imitate-global-declaration-method-in.html' title='Imitate global declaration method in Domino Java'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-6052560633146242943</id><published>2009-07-09T23:17:00.000-07:00</published><updated>2009-07-10T01:02:49.558-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Domino Java'/><title type='text'>Some Java basics for Domino Java development</title><content type='html'>Today I'm writing all small or big notes which must be considered in Domino Java development.I was collecting all these from past couple of weeks while doing my project.Hope it helps to others.&lt;br /&gt;&lt;br /&gt;&lt;table border="0" width=100% bgcolor="AliceBlue" style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;Removing unused class from Java Agent&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;When you remove any existing class from a Java agent , it doesn't delete from agent class list until you remove from class file.&lt;br /&gt;&lt;br /&gt;&lt;table style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SlbSEr-mtzI/AAAAAAAABMM/2Kfm6Q6A3RE/s1600-h/1.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 259px; height: 132px;" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SlbSEr-mtzI/AAAAAAAABMM/2Kfm6Q6A3RE/s400/1.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5356699784770402098" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;1- Click "Edit Project".&lt;br /&gt;2- Select class from current agent files and click delete.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;table style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SlbSE42OUdI/AAAAAAAABMU/99A0Ypjhc0E/s1600-h/2.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 282px;" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SlbSE42OUdI/AAAAAAAABMU/99A0Ypjhc0E/s400/2.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5356699788224909778" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;table border="0" width=100% bgcolor="AliceBlue" style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-weight:bold;"&gt;Incorporating a Java library with Java agent&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;1- Click Edit Project from Java agent programmer's pane.&lt;br /&gt;&lt;br /&gt;&lt;table style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SlbRiog4OeI/AAAAAAAABME/2Q4q3gZ4l-s/s1600-h/5.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 51px;" src="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SlbRiog4OeI/AAAAAAAABME/2Q4q3gZ4l-s/s400/5.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5356699199724861922" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;2- Select Shared Java Libraries.&lt;br /&gt;&lt;br /&gt;&lt;table style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SlbQ3lS-ihI/AAAAAAAABL0/-5UeEaEAIG8/s1600-h/3.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 391px; height: 364px;" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SlbQ3lS-ihI/AAAAAAAABL0/-5UeEaEAIG8/s400/3.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5356698460126874130" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;3- Click "Add/Replace" button to add in agent files list.&lt;br /&gt;&lt;br /&gt;&lt;table style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SlbQ3wANDJI/AAAAAAAABL8/2J4bnhPSd-g/s1600-h/4.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 339px;" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SlbQ3wANDJI/AAAAAAAABL8/2J4bnhPSd-g/s400/4.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5356698463000923282" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;table border="0" width=100% bgcolor="AliceBlue" style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-style:italic;"&gt;Viewing output from a Java agent&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;You can review output from a Java agent that is running locally in the Java Debug Console. To activate the console, choose File - Tools - Show Java Debug Console. To clear output from the window, click Clear. &lt;br /&gt;If a Java agent is running on a server, the Java Debug Console output is redirected to a server log file. However sometimes you don't get log.nsf access on production servers.So it's better to incorporate log database with your working database. To log activity in Java code ,you can use my &lt;a href="http://lotus-blogs.blogspot.com/2009/06/jdbc-connectivity-with-oracle-in-domino_25.html"&gt;ActivityClass&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;table border="0" width=100% bgcolor="AliceBlue" style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-style:italic;"&gt;Important Considerations&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;1- Lotus Notes/Domino agents must extend AgentBase and use NotesMain() as the entry point for their functional code.However , In some cases you don't want to use NotesMain() class but you need to use domino classes.Such case you need to pass "Session" object as an argument.E.g; I've an activity logging class which doesn't use NotesMain() method to start.I Just pass "Sesssion" object to access domino methods/properties.&lt;br /&gt;&lt;br /&gt;  &lt;table border="0" width=100% bgcolor="Khaki" style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-style:italic;"&gt;try {&lt;br /&gt;   Session session = getSession();&lt;br /&gt;   AgentContext agentContext = session.getAgentContext();&lt;br /&gt;   Database db = agentContext.getCurrentDatabase();&lt;br /&gt;   &lt;br /&gt;   ActivityClass activityLog= new ActivityClass(session);&lt;br /&gt;   &lt;br /&gt;   //Process table1 for form1&lt;br /&gt;   activityLog.addActivity(session,"Start pushing Form1 to Oracle.");&lt;br /&gt;   PushOForm1 objForm1= new PushOForm1(session);&lt;br /&gt;   qs= objForm1.tableUpdater(session);&lt;br /&gt;   if(qs!="" || qs!=null){&lt;br /&gt;    activityLog.endActivity(session,qs); &lt;br /&gt;   } &lt;br /&gt;   &lt;br /&gt;   //Process table2 for form2&lt;br /&gt;   activityLog.addActivity(session,"Start pushing Form2 to Oracle.");&lt;br /&gt;   PushOForm2 objForm2= new PushOForm2(session);&lt;br /&gt;   qs= objForm2.tableUpdater(session);&lt;br /&gt;   if(qs!="" || qs!=null){&lt;br /&gt;    activityLog.endActivity(session,qs); &lt;br /&gt;   } &lt;br /&gt;     &lt;br /&gt;   activityLog.closeActivity(session); &lt;br /&gt;     }catch(Exception e) {e.printStackTrace();}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;2- Don't use "System.exit(0)" or "System.exit(1)" to exit, It throws SecurityException. In an application, System.exit may cause corruption problems.&lt;br /&gt;&lt;br /&gt;3- Before deploying your Java project on server, make sure you've all permission set in java.policy file on server. You can find details in my &lt;a href="http://lotus-blogs.blogspot.com/2009/06/jdbc-connectivity-with-oracle-in-domino_08.html"&gt;previous article&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;4- To catch Lotus Notes Exception, use NotesException class .E.g,&lt;br /&gt;&lt;br /&gt;                  &lt;table border="0" width=100% bgcolor="Khaki" style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-style:italic;"&gt;try {&lt;br /&gt;   Session session = getSession();&lt;br /&gt;   AgentContext agentContext = session.getAgentContext();&lt;br /&gt;   Database db = agentContext.getCurrentDatabase();&lt;br /&gt;   &lt;br /&gt;   ActivityClass activityLog= new ActivityClass(session);&lt;br /&gt;   . &lt;br /&gt;   .&lt;br /&gt;   .&lt;br /&gt;   &lt;br /&gt;     }&lt;br /&gt;  // Catch if something wrong happens from Notes side like, Database/view failed to open or invalid formila etc&lt;br /&gt;  catch(NotesException e) {System.out.println(e.id + " " + e.text);}&lt;br /&gt;  // Usual Java Exception class&lt;br /&gt;  catch(Exception e) { e.printStackTrace(); }&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;5- Memory management is a consideration for long running programs and programs that create a large number of objects.If you get "Out of memory" error with your Domino-Java code use recycle method.The recycle method unconditionally destroys an object and returns its memory to the system.Java has no knowledge of the heavyweight back-end Domino Objects, only the lightweight Java objects representing them. Garbage collection has no effect on Domino Objects unless you first explicitly recycle them.&lt;br /&gt;&lt;br /&gt;The Java Virtual Machine (JVM) starts out at 16MB of heap space and most of it is uncommitted. If the JVM needs more heap than it currently has, it will expand the heap in increments but will not exceed the maximum. Exceptions such as "java.lang.OutOfMemoryError" indicate that a heap has reached its maximum size. You can specify the number of bytes directly or use the suffix "MB" to indicate megabytes, for example, specifying "64MB" is the same as specifying "67108864."&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Syntax: JavaMaxHeapSize=number of bytes&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;6- If you get "Can not find symbol" error in your code, It means something you've not declared and using.This error is similar to "Variable not declared" error in Lotus Script.But in Java this error is not descriptive and clear as Lotus Script.&lt;br /&gt;&lt;br /&gt;7- Use NotesFactory class to access domino objects from third party IDE, like Eclipse.&lt;br /&gt;&lt;br /&gt;8- At the end never forget to set Java agent security under Programmability Restrictions, fill in "Run unrestricted methods and operations" and "Run restricted LotusScript Java agents" as desired. These fields apply to all programmable interfaces and must be filled in for remote access.&lt;br /&gt;&lt;br /&gt;&lt;table border="0" width=100% bgcolor="AliceBlue" style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-style:italic;"&gt;Some weird experience &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;1-We can see compilation errors on status bar while compiling Java agent.However sometimes I don't see any message, It doesn't matter how many times I click on "Compile All". Afterwards no change in Java code gets effect, I must need to re-start my Notes to fix this. Still it's happening :(&lt;br /&gt;&lt;br /&gt;2-If by any chance my Notes gets crash, next time when I try to run my Java agent ; It throws "Class not found" exception . I need to edit and re-save my agent to make it work.&lt;br /&gt;&lt;br /&gt;3-Sometimes when I do some changes in my agent, recompile and save the code and runs to see the output, I noticed it doesn't show results with updated code. It doesn't matter if I save with ctrl+s or using tool bar. I need to close my agent, then it asks me to save and I say yes to see the updated output.&lt;br /&gt;&lt;br /&gt;I don't know if anyone else is facing this issues with 8.0(basic) IDE.&lt;br /&gt;&lt;br /&gt;Some good IBM articles ,&lt;br /&gt;&lt;br /&gt;# &lt;a href="http://www.ibm.com/developerworks/lotus/library/notes-eclipse/?ca=dgr-eclipsw02clipseNotesJavaAgents"&gt;Using Lotus Notes with Eclipse to manage and run your Java programs&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;# &lt;a href="http://www.ibm.com/developerworks/lotus/library/ls-Java_access_pt1/index.html"&gt;Java access to the Domino Objects, Part 1&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;# &lt;a href="http://www.ibm.com/developerworks/lotus/library/ls-Java_access_2/index.html"&gt;Java access to the Domino Objects, Part 2&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;# &lt;a href="http://publib-b.boulder.ibm.com/Redbooks.nsf/9445fa5b416f6e32852569ae006bb65f/bffd82036ceeb1e885256777005fe3a2?OpenDocument&amp;Highlight=0,Domino,JAva"&gt;Connecting Domino to the Enterprise Using&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;# &lt;a href="http://java.sun.com/docs/books/tutorial/java/"&gt;Learning the Java Language&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-6052560633146242943?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/6052560633146242943/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2009/07/some-java-basics-for-domino-java.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/6052560633146242943'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/6052560633146242943'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2009/07/some-java-basics-for-domino-java.html' title='Some Java basics for Domino Java development'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SlbSEr-mtzI/AAAAAAAABMM/2Kfm6Q6A3RE/s72-c/1.JPG' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-5842764134270432330</id><published>2009-07-08T22:49:00.000-07:00</published><updated>2009-07-09T22:04:31.859-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Java code performance - static  vs non static declarations</title><content type='html'>Continuation with my first Java project , Today I've started my second Java routine which will read Lotus Notes documents from other database and will push to Oracle.I've started with first class which handles one of the form ( still 16 forms to go :) ).Once code is written and tested , I've started reviewing my code which I always do to check if any logical or memory consumption stuffs are poorly coded.&lt;br /&gt;While doing I got confused with public and static declaration . Initially I've done non static declaration of all JDBC objects;e.g,Connection, Statement and RecordSet on class level.Even I was reading "Java 2. The complete reference" book side by side but not able to find if I could get any performance benefit in for "static" declarations.So I've decided to test on execution time basis , don't know if it's the best way.Here is what I've done;&lt;br /&gt;&lt;br /&gt;I've added "ExecutionTimer" class in my code,&lt;br /&gt;&lt;br /&gt;&lt;table border="0" width=100% bgcolor="Khaki" style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;public class ExecutionTimer {&lt;br /&gt;  private long start;&lt;br /&gt;  private long end;&lt;br /&gt;&lt;br /&gt;  public ExecutionTimer() {&lt;br /&gt;    reset();&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public void start() {&lt;br /&gt;    start = System.currentTimeMillis();&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public void end() {&lt;br /&gt;    end = System.currentTimeMillis();&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public long duration(){&lt;br /&gt;    return (end-start);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  public void reset() {&lt;br /&gt;    start = 0;  &lt;br /&gt;    end   = 0;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;}&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;And I've used like&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;table border="0" width=100% bgcolor="Khaki" style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;ExecutionTimer t = new ExecutionTimer();&lt;br /&gt;t.start();&lt;br /&gt;&lt;br /&gt;ProcessTable  objProcesTable = new ProcessTable(session);&lt;br /&gt;objProcesTable.initiateObjects(session);&lt;br /&gt;&lt;br /&gt;t.end();&lt;br /&gt;System.out.println("\n" + t.duration() + " ms");&lt;br /&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Here in my class skeleton ,&lt;br /&gt;&lt;br /&gt;&lt;table border="0" width=100% bgcolor="Khaki" style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;public class ProcessTable {&lt;br /&gt;&lt;br /&gt;static private Connection conn;  // or private Connection conn;&lt;br /&gt;static private Statement stmt;  // or private Statement stmt;&lt;br /&gt;static private ResultSet rs;   // or private ResultSet rs;&lt;br /&gt;&lt;br /&gt;public void initiateObjects(){&lt;br /&gt;&lt;br /&gt;//Initiate all domino objects&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;insert() //Insert record&lt;br /&gt;update() //Update record&lt;br /&gt;delete() //delete record&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;ProcessTable(){&lt;br /&gt;// Prepare connectivity with Oracle&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void insert(){&lt;br /&gt;//insert logic&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void update(){&lt;br /&gt;//update logic&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public void delete(){&lt;br /&gt;//delete logic&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/td&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;I've done some testing in my live environment with 10 records and found declaring these variables as static is faster than declaring public.I've tested thrice to make sure if network operation may create the difference. Here are results, &lt;br /&gt;&lt;br /&gt;First test : ( In mills)&lt;br /&gt;--------------------------------&lt;br /&gt;&lt;br /&gt;Using non-static: 23791 ms&lt;br /&gt;&lt;br /&gt;Using Static : 23134 ms&lt;br /&gt;&lt;br /&gt;Second test:&lt;br /&gt;--------------------------------&lt;br /&gt;&lt;br /&gt;Using non-static : 23258 ms&lt;br /&gt;&lt;br /&gt;Using Static : 21930 ms&lt;br /&gt;&lt;br /&gt;Third test:&lt;br /&gt;--------------------------------&lt;br /&gt;&lt;br /&gt;Using non-static : 24556 ms&lt;br /&gt;&lt;br /&gt;Using Static : 23227 ms&lt;br /&gt;&lt;br /&gt;Here is what I've found in Java book ,&lt;br /&gt;&lt;br /&gt;&lt;table border="0" width=100% bgcolor="Turquoise" style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Instance variables declared as static are, essentially, global variables. When objects&lt;br /&gt;of its class are declared, no copy of a static variable is made. Instead, all instances of the&lt;br /&gt;class share the same static variable.&lt;br /&gt;Methods declared as static have several restrictions:&lt;br /&gt;■ They can only call other static methods.&lt;br /&gt;■ They must only access static data.&lt;br /&gt;■ They cannot refer to this or super in any way. (The keyword super relates to&lt;br /&gt;inheritance and is described in the next chapter.)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;None of the above restrictions are applied in my case, so declaring static is faster approach ??? hope someone can enlighten on this.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-5842764134270432330?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/5842764134270432330/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2009/07/java-code-performance-public-vs-static.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/5842764134270432330'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/5842764134270432330'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2009/07/java-code-performance-public-vs-static.html' title='Java code performance - static  vs non static declarations'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-1337987254843989988</id><published>2009-07-06T22:26:00.000-07:00</published><updated>2009-07-06T22:58:38.593-07:00</updated><title type='text'>Rest in peace Michael Jackson</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SlLdJ3pf40I/AAAAAAAABLs/uB-2qRd5UiA/s1600-h/michael-jackson.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 298px; height: 400px;" src="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SlLdJ3pf40I/AAAAAAAABLs/uB-2qRd5UiA/s400/michael-jackson.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5355586068523508546" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I still remember those time when kids in India love to look and dance like Michael Jackson.He was enormously popular in those places where English speaking was rare.I never saw or heard such big fan following for any other Hollywood artist in India.He brought new era in Music and gave so much which nobody can give ever.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;"Heal the world&lt;br /&gt;Make it a better place&lt;br /&gt;For you and for me and the entire human race&lt;br /&gt;There are people dying&lt;br /&gt;If you care enough for the living&lt;br /&gt;Make a better place for&lt;br /&gt;You and for me."&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;Whenever I listen this song, It gives so much emotions and feelings for those who are dying everywhere in the world.&lt;br /&gt;&lt;br /&gt;It's great pain to see Media and few filthy people who has spoiled his name to gain popularity and killed the artist who deserved to live forever.I surprised to see still they are doing..&lt;br /&gt; &lt;br /&gt;I pay my homage to the artist who gave soul to the music and feeling to love everyone in the world.&lt;br /&gt;&lt;br /&gt;_________________________________________________________________________________&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;h2&gt;May you rest in peace Michael !!!&lt;/h2&gt;&lt;/span&gt;&lt;br /&gt;_________________________________________________________________________________&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-1337987254843989988?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/1337987254843989988/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2009/07/rest-in-peace-michael-jackson.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/1337987254843989988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/1337987254843989988'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2009/07/rest-in-peace-michael-jackson.html' title='Rest in peace Michael Jackson'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SlLdJ3pf40I/AAAAAAAABLs/uB-2qRd5UiA/s72-c/michael-jackson.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-2547562610379772763</id><published>2009-06-25T23:30:00.000-07:00</published><updated>2009-06-26T00:39:41.264-07:00</updated><title type='text'>Domino-Java development using Eclipse</title><content type='html'>Few days back,I've tried &lt;a href="http://www.domiclipse.com/domiclipse/web.nsf"&gt;domiclipse&lt;/a&gt; plug-in with Eclipse to test if I can continue my development in Eclipse.I was really impressed with the way my Eclipse started talking to my local( and server ) databases.However, I've found difficulties in accessing Domino objects within Eclipse environment.Also,When I try to sync my work with Notes database , It just creates java class files in my local but doesn't update notes database directly ( I assume need to use "Imported Java" agent to manually upload in domino agent ).&lt;br /&gt;&lt;br /&gt;Today I was reading about NotesFactory() class in Domino and found using this class Domino objects can be read/write from Java IDE.Next, I found &lt;span style="font-weight:bold;"&gt;"Running a Java Program"&lt;/span&gt; topic in the help file, which clearly says there are two jar files &lt;span style="font-weight:bold;"&gt;Notes.jar&lt;/span&gt; and &lt;span style="font-weight:bold;"&gt;NCSO.jar&lt;/span&gt; which can be configured in any IDE to access domino objects.I got excited and spent couple of hours to configure Eclipse to access Domino Objects. Finally I've done, Here are those easy steps to accomplish;&lt;br /&gt;&lt;br /&gt;1)At very first step, Your machine should have Eclipse setup. You can get it at &lt;a href="http://www.eclipse.org/downloads/"&gt;Eclipse Website&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2)Run-time requirements&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;background-color:#FFFF66;"&gt;A computer running a Java application that makes local Domino calls must contain Domino Server, Domino Designer, or Notes Client, and must include Notes.jar in the classpath.&lt;br /&gt;A computer running a Java application that makes remote Domino calls need not contain Domino or Notes, but must contain one of the NCSO archives and must include it in the classpath.&lt;br /&gt;A computer running a Domino agent that makes Domino calls must include Notes.jar in the classpath.&lt;br /&gt;A computer running an applet that makes Domino calls needs no Domino software or classpath assignments. The applet must be loaded from a computer containing a Domino server.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;For this example I assume you've Client and Server running on the same machine.&lt;br /&gt;&lt;br /&gt;3) Find Notes.jar(for me,C:\lotus\Notes\jvm\lib\ext) and NCSO.jar(for me,C:\Program Files\IBM\Lotus\Domino\data\domino\java) file paths and add in your ClassPath (&lt;a href="http://faculty.ed.umuc.edu/~arnoldyl/NetBeansTutorials/Setting-Classpath.html"&gt;How to set ClassPath for Java&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;4) Start Eclipse, go to File-&gt;New-&gt;Java Project&lt;br /&gt;&lt;br /&gt;&lt;table style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SkRxSugytnI/AAAAAAAABKo/kvkM63L0dnM/s1600-h/Screen-1.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 199px;" src="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SkRxSugytnI/AAAAAAAABKo/kvkM63L0dnM/s400/Screen-1.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5351526823760148082" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;4) Right click on newly created project,Choose Properties-&gt;Java Build Path and add external Jars.&lt;br /&gt;&lt;br /&gt;&lt;table style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SkRzUmNF-iI/AAAAAAAABKw/jWnrqsp6nBc/s1600-h/Screen2.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 271px;" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SkRzUmNF-iI/AAAAAAAABKw/jWnrqsp6nBc/s400/Screen2.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5351529054913034786" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;5) Create new class, Right click on project-&gt;New-&gt;Class&lt;br /&gt;&lt;br /&gt;&lt;table style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SkRz9NdM6YI/AAAAAAAABK4/LVqQf-zTZvg/s1600-h/screen-3.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 303px; height: 400px;" src="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SkRz9NdM6YI/AAAAAAAABK4/LVqQf-zTZvg/s400/screen-3.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5351529752644348290" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;6) Here is the sample code which I've tried,&lt;br /&gt;&lt;br /&gt;&lt;table border="0" width=100% bgcolor="Khaki" style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;import lotus.domino.*;&lt;br /&gt;public class AccessDomino {&lt;br /&gt; public static void main(String[] args) {&lt;br /&gt;        try {&lt;br /&gt;            Session session = NotesFactory.createSession("localhost", "Rishi Sahi/Development", "Development");&lt;br /&gt;            Database db = session.getDatabase(null, "ConnectmetoDomino.nsf");&lt;br /&gt;            System.out.println(session.getUserName());&lt;br /&gt;            System.out.println(db.getSize());&lt;br /&gt;        }&lt;br /&gt;        catch(Exception e) {&lt;br /&gt;            e.printStackTrace();&lt;br /&gt;        }&lt;br /&gt;    } ;&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;background-color:#FFFF66;"&gt;* At very first line I'm importing domino package which contains all the necessary class/methods to start my work.&lt;br /&gt;* I'm using NotesFactory class to create domino session with ServerName,UserName and Password parameters.&lt;br /&gt;* Once session is created use any Domino-Java class to start your work.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;One of the main advantage you can attain to use type ahead feature which is still missing in Domino.&lt;br /&gt;&lt;br /&gt;&lt;table style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SkR2dHH5hgI/AAAAAAAABLA/eLR4cWMLcdw/s1600-h/screen-4.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 268px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SkR2dHH5hgI/AAAAAAAABLA/eLR4cWMLcdw/s400/screen-4.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5351532499723453954" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;7) Before running your program you must ensure that the server notes.ini file contains the following line:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;background-color:#FFFF66;"&gt;ServerTasks=&lt;any other tasks&gt;,diiop&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If missing then open Notes.ini file and add diiop in your server tasks list and restart domino server. Once done, run your code and check the output,&lt;br /&gt;&lt;br /&gt;&lt;table style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SkR4KvTESyI/AAAAAAAABLI/Y00fX8gtRGw/s1600-h/Screen5.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 230px;" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SkR4KvTESyI/AAAAAAAABLI/Y00fX8gtRGw/s400/Screen5.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5351534383113456418" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;You can ease your Domino-Java development using domiclipse and above tips.&lt;br /&gt;&lt;br /&gt;To setup domiclipse, I would suggest to visit : &lt;a href="http://www.criverapr.com/2009/04/better-java-development-with-domiclipse.html"&gt;Coding Thoughts by Carlos&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-2547562610379772763?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/2547562610379772763/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2009/06/domino-java-development-using-eclipse.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/2547562610379772763'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/2547562610379772763'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2009/06/domino-java-development-using-eclipse.html' title='Domino-Java development using Eclipse'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SkRxSugytnI/AAAAAAAABKo/kvkM63L0dnM/s72-c/Screen-1.JPG' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-451161176304635159</id><published>2009-06-25T00:28:00.000-07:00</published><updated>2009-06-25T20:00:14.011-07:00</updated><title type='text'>JDBC connectivity with Oracle in Domino-Part IV</title><content type='html'>To continue with my JDBC experience in Domino , Today I've written a class to log an activity in my application.It may not be designed as per Java Standards or conventions.However,I am willing to know what could be the better approach to design Java classes to avail high performance.Here is my code ,&lt;br /&gt;&lt;br /&gt;&lt;table border="0" width=100% bgcolor="Khaki" style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;import lotus.domino.*;&lt;br /&gt; &lt;br /&gt;public class activityClass extends AgentBase&lt;br /&gt;{&lt;br /&gt; public Session session;&lt;br /&gt; public AgentContext agentContext;&lt;br /&gt; public RichTextItem activityLog;&lt;br /&gt; public RichTextStyle RtStyle1;&lt;br /&gt; public Document logdoc;&lt;br /&gt; public Database db;&lt;br /&gt; public Database logdb;&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; public activityClass(Session session)&lt;br /&gt; {&lt;br /&gt;    try{&lt;br /&gt;    agentContext= session.getAgentContext();  &lt;br /&gt;    db = agentContext.getCurrentDatabase(); &lt;br /&gt;    Document doc = db.getProfileDocument("connectionSetup","");&lt;br /&gt;        String ldb = doc.getItemValueString("ActivityLogDbName");&lt;br /&gt;        logdb = session.getDatabase(db.getServer(), ldb);&lt;br /&gt;        String UserName=session.getUserName();&lt;br /&gt;         &lt;br /&gt;        DateTime dt = session.createDateTime("Today");&lt;br /&gt;     dt.setNow();&lt;br /&gt;       &lt;br /&gt;       RtStyle1=session.createRichTextStyle();&lt;br /&gt;       RtStyle1.setBold(RichTextStyle.NO);&lt;br /&gt;   RtStyle1.setFontSize(8);&lt;br /&gt;   RtStyle1.setFont(RichTextStyle.FONT_HELV);&lt;br /&gt;   RtStyle1.setColor(RichTextStyle.COLOR_BLACK);&lt;br /&gt;  &lt;br /&gt;   if ( logdb!=null){&lt;br /&gt;    logdoc = logdb.createDocument(); &lt;br /&gt;    logdoc.appendItemValue("Form", "ActivityLog");   &lt;br /&gt;    logdoc.replaceItemValue("Activity$Status", "");&lt;br /&gt;    logdoc.replaceItemValue("Activity$StartDtTime", dt.getLocalTime());&lt;br /&gt;    logdoc.replaceItemValue("Activity$StartedBy", UserName);&lt;br /&gt;    logdoc.replaceItemValue("Activity$EndDtTime", "");&lt;br /&gt;    activityLog = logdoc.createRichTextItem("Activity$Log"); &lt;br /&gt;   } &lt;br /&gt;  }catch(Exception e){ e.printStackTrace(); }&lt;br /&gt;    &lt;br /&gt;        &lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; public void addActivity(Session session,String whatActivity)&lt;br /&gt; {&lt;br /&gt;  try{&lt;br /&gt;  DateTime dt = session.createDateTime("Today");&lt;br /&gt;  dt.setNow(); &lt;br /&gt;  String logMessage=dt.getLocalTime() + " - " + whatActivity;&lt;br /&gt;  activityLog.appendStyle(RtStyle1);&lt;br /&gt;  activityLog.appendText(logMessage);&lt;br /&gt;  activityLog.addNewLine(1);&lt;br /&gt;  }catch(Exception e){ e.printStackTrace();  }&lt;br /&gt;&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; public void endActivity(Session session,String whatActivity)&lt;br /&gt; {&lt;br /&gt;  try{&lt;br /&gt;   DateTime dt = session.createDateTime("Today");&lt;br /&gt;  dt.setNow(); &lt;br /&gt;  String logMessage=dt.getLocalTime() + " - " + whatActivity;&lt;br /&gt;  activityLog.appendStyle(RtStyle1);&lt;br /&gt;  activityLog.appendText(logMessage);&lt;br /&gt;  activityLog.addNewLine(1);&lt;br /&gt;  }catch(Exception e){ e.printStackTrace();  }&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; public void closeActivity(Session session)&lt;br /&gt; {&lt;br /&gt;  try{&lt;br /&gt;    DateTime dt = session.createDateTime("Today");&lt;br /&gt;  dt.setNow(); &lt;br /&gt;  String logMessage=dt.getLocalTime() + " - " + "Activity closed";&lt;br /&gt;  activityLog.appendStyle(RtStyle1);&lt;br /&gt;  activityLog.appendText(logMessage);&lt;br /&gt;  activityLog.addNewLine(1);&lt;br /&gt;  logdoc.replaceItemValue("Activity$EndDtTime", dt.getLocalTime());&lt;br /&gt;  logdoc.save(true);&lt;br /&gt;  }catch(Exception e){ e.printStackTrace(); }&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt; &lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;How I call,&lt;br /&gt;&lt;br /&gt;&lt;table border="0" width=100% bgcolor="Khaki" style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;public class JavaAgent extends AgentBase {&lt;br /&gt; public void NotesMain() {&lt;br /&gt;  String qs;&lt;br /&gt;  try {&lt;br /&gt;   &lt;br /&gt;   Session session = getSession();&lt;br /&gt;   AgentContext agentContext = session.getAgentContext();&lt;br /&gt;   activityClass activityLog= new activityClass(session);&lt;br /&gt;&lt;br /&gt;   activityLog.addActivity(session,"Start processing table1.");&lt;br /&gt;   Table1 t1 = new Table1(db);&lt;br /&gt;   qs= t1.ManageTable1(db,cdoc);&lt;br /&gt;   if(qs!=null){&lt;br /&gt;    activityLog.endActivity(session,qs);&lt;br /&gt;   }&lt;br /&gt;         }&lt;br /&gt;&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;    activityLog.closeActivity(session);  &lt;br /&gt;  catch(Exception e) {e.printStackTrace();}&lt;br /&gt; }    &lt;br /&gt;}&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Here is my log output,&lt;br /&gt;&lt;br /&gt;&lt;table style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SkNEXbF5ZtI/AAAAAAAABKg/0dngSwPvVJM/s1600-h/log.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 143px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SkNEXbF5ZtI/AAAAAAAABKg/0dngSwPvVJM/s400/log.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5351195951446451922" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;To be continued....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-451161176304635159?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/451161176304635159/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2009/06/jdbc-connectivity-with-oracle-in-domino_25.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/451161176304635159'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/451161176304635159'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2009/06/jdbc-connectivity-with-oracle-in-domino_25.html' title='JDBC connectivity with Oracle in Domino-Part IV'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SkNEXbF5ZtI/AAAAAAAABKg/0dngSwPvVJM/s72-c/log.JPG' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-4966844619635045331</id><published>2009-06-17T22:19:00.000-07:00</published><updated>2009-06-23T18:25:16.434-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lotus Notes'/><title type='text'>JDBC connectivity with Oracle in Domino-Part III</title><content type='html'>To continue with my &lt;a href="http://lotus-blogs.blogspot.com/2009/06/jdbc-connectivity-with-oracle-in-domino.html"&gt;first&lt;/a&gt; and &lt;a href="http://lotus-blogs.blogspot.com/2009/06/jdbc-connectivity-with-oracle-in-domino_08.html"&gt;second&lt;/a&gt; JDBC article, Today I found something interesting in Java which I never read about.&lt;br /&gt;&lt;br /&gt;Actually we want to provide an interface which can be used to create,modify or even delete tables in Oracle.We needed such interface based design for ease in administration and flexibility. In order to achieve this,I've created required configuration form with Column name,column data type,column width.Along with that admin can select action,like Create,Alter or Delete table.It looks something like,&lt;br /&gt;&lt;br /&gt;&lt;table style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SjsWHyvoclI/AAAAAAAABKQ/I7x7Le9Rbwo/s1600-h/1.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 196px;" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SjsWHyvoclI/AAAAAAAABKQ/I7x7Le9Rbwo/s400/1.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5348893305569047122" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;While writing Java routine for the same interface found first interesting thing is &lt;span style="font-style:italic;background-color:#FFFF66"&gt;"Java doesn't support String in Switch statement"&lt;/span&gt;, Can you believe it ?? While compiling my routine with below switch statement , got an error "&lt;span style="font-style:italic;"&gt;Incompatible type&lt;/span&gt;".&lt;br /&gt;&lt;br /&gt; &lt;span style="font-style:italic;background-color:#FFFF66;"&gt;Document cdoc=entry.getDocument();&lt;br /&gt; String frm=cdoc.getItemValueString("Form");&lt;br /&gt; Switch(frm){&lt;br /&gt;    Case "Form1":&lt;br /&gt;  Table11 t1 = new Table1();&lt;br /&gt;         t1.ManageTable(conn,db,cdoc);&lt;br /&gt;  break;&lt;br /&gt; Case "Form2":&lt;br /&gt;         Table12 t2 = new Table2();&lt;br /&gt;  t2.ManageTable(conn,db,cdoc);&lt;br /&gt;  break;    &lt;br /&gt;} &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I've tried all the way but never doubted until my wife pointed me Java doesn't support Strings in Switch case.It was shock for me because, I always believe Java gives everything which you need to build powerful application.I've got some workaround on net like using enum or hashcode , but both are mapping based solution where program can crash if mapping went wrong. Finally I've replaced Switch with If..else statement :).&lt;br /&gt;&lt;br /&gt;Second interesting thing was string comparison in Java.When I've compile my routine with below code snippet,&lt;br /&gt;&lt;br /&gt; &lt;span style="font-style:italic;background-color:#FFFF66;"&gt;Document cdoc=entry.getDocument();&lt;br /&gt; String frm=cdoc.getItemValueString("Form");&lt;br /&gt; if(frm=="Form1"){&lt;br /&gt; Table11 t1 = new Table1();&lt;br /&gt;        t1.ManageTable(conn,db,cdoc);&lt;br /&gt; }&lt;br /&gt; else if(frm=="Form3"){&lt;br /&gt;        Table12 t2 = new Table2();&lt;br /&gt; t2.ManageTable(conn,db,cdoc);&lt;br /&gt;}&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;Neither I see my code creating new table in Oracle nor any error.After some debugging found the valid reason,&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;background-color:#FFFF66;"&gt;To compare Strings for equality, don't use ==. The == operator checks to see if two objects are exactly the same object. Two strings may be different objects, but have the same value (have exactly the same characters in them). Use the .equals() method to compare strings for equality. Similarly, use the .compareTo() method to test for unequal comparisons.&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Finally I've changed my code to ,&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;background-color:#FFFF66;"&gt;Document cdoc=entry.getDocument();&lt;br /&gt; String frm=cdoc.getItemValueString("Form");&lt;br /&gt;  if ("Form1".equals(frm)){&lt;br /&gt; Table11 t1 = new Table1();&lt;br /&gt;        t1.ManageTable(conn,db,cdoc);&lt;br /&gt; }&lt;br /&gt; else if ("Form2".equals(frm)){&lt;br /&gt;        Table12 t2 = new Table2();&lt;br /&gt; t2.ManageTable(conn,db,cdoc);&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So here are two very basic problems encountered by me while building my application.I hope this could be useful to other Lotus Notes developer to overcome such minor technology differences.&lt;br /&gt;&lt;br /&gt;To be continued....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-4966844619635045331?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/4966844619635045331/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2009/06/jdbc-connectivity-with-oracle-in-domino_17.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/4966844619635045331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/4966844619635045331'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2009/06/jdbc-connectivity-with-oracle-in-domino_17.html' title='JDBC connectivity with Oracle in Domino-Part III'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SjsWHyvoclI/AAAAAAAABKQ/I7x7Le9Rbwo/s72-c/1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-8252452487719254899</id><published>2009-06-08T20:36:00.000-07:00</published><updated>2009-06-23T18:28:56.611-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lotus Notes'/><title type='text'>JDBC connectivity with Oracle in Domino-Part II</title><content type='html'>In my &lt;a href="http://lotus-blogs.blogspot.com/2009/06/jdbc-connectivity-with-oracle-in-domino.html"&gt;last article&lt;/a&gt;, I've been mentioned about JDBC connectivity with Oracle. I've given proposal to my business owners and they've chosen JDBC instead LS LCX to keep less burden on Domino server.So I'm going to spend some more time in Java :)&lt;br /&gt;&lt;br /&gt;Today I've encountered strange network issue in my Lotus designer while accessing some of my U.S servers.I thought there might be some issues with network connectivity ,but everything was fine except my Notes client.After all my troubleshooting I've uninstalled my R8.5 and started installing R8.0(non basic edition).At the end of R8.0 installation , I got pop-up saying some of the features didn't installed but installation was successful. I thought may be some optional stuffs were not installed , Once I've started my Notes Client , It throws another pop-up saying "There is an error encountered , look into the log file under workspace folder in domino directory".I found there was some error in installing/configuring JVM.Soon I've realized my client got corrupted and need to re-install again.It's hard to believe but I've re-installed R8.0 five times but ended up with same error.Finally I moved to R8.0 basic version and it looks fine so far. My first horrible experience in installing domino.&lt;br /&gt;&lt;br /&gt;Once everything was done I thought to check my JDBC code whether it works or not , another surprise it got failed with following error ,&lt;br /&gt;&lt;br /&gt;&lt;table style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/Si3dWC6sdVI/AAAAAAAABKA/vtxS3hbAkrI/s1600-h/javaerror.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 188px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/Si3dWC6sdVI/AAAAAAAABKA/vtxS3hbAkrI/s400/javaerror.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5345171703568561490" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;After spending an hour found the problem and solution. Here it is,&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;background-color:#FFFF66;"&gt;&lt;u&gt;Reason:&lt;/u&gt;Security exceptions are encountered.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;background-color:#FFFF66;"&gt;&lt;u&gt;Problem:&lt;/u&gt;Java agent that utilizes certain classes and are receiving agent security restrictions at run-time. The agent does not run as expected. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;background-color:#FFFF66;"&gt;&lt;u&gt;Resolving the problem:&lt;/u&gt; Because the JVM applies the Java 2 Security Model to Java code running on the Domino server or Notes client, the JVM, or application code, can explicitly enforce access control against what methods can be called at runtime and what actions those methods can perform. This scenario is the most common Java Security error encountered under Domino. For example:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;      java.security.AccessControlException: access denied&lt;br /&gt;      (java.lang.RuntimePermission getClassLoader)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The above is a security exception thrown by the JVM when performing a getClassLoader() call. To correct the error, make an adjustment to the java.policy to grant this code the permissions that it requires. This file is located in &lt;program directory&gt;\jvm\lib\security\java.policy. You can do this by either granting all permissions by adding the following line:&lt;br /&gt;&lt;br /&gt;      grant{&lt;br /&gt;      permission java.security.AllPermission;&lt;br /&gt;      }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Once done ; exit from designer ,restart your server and re-compile your java code.&lt;br /&gt;&lt;br /&gt;How new installation has changed my &lt;span style="font-weight:bold;"&gt;java.policy&lt;/span&gt; file or R8.5 provides all permission default ?. Anyway after modification everything works well and good.&lt;br /&gt;&lt;br /&gt;To be continued....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-8252452487719254899?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/8252452487719254899/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2009/06/jdbc-connectivity-with-oracle-in-domino_08.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/8252452487719254899'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/8252452487719254899'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2009/06/jdbc-connectivity-with-oracle-in-domino_08.html' title='JDBC connectivity with Oracle in Domino-Part II'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_T_-j3ZLqfNQ/Si3dWC6sdVI/AAAAAAAABKA/vtxS3hbAkrI/s72-c/javaerror.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-1321528145291837612</id><published>2009-06-04T23:36:00.000-07:00</published><updated>2009-06-05T02:32:45.710-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lotus Notes'/><title type='text'>Web Services implementation in Domino</title><content type='html'>&lt;a href="http://en.wikipedia.org/wiki/Web_service"&gt;Web Service&lt;/a&gt; is very useful method for the interaction with other machines over network.To leverage web services in Domino, a New feature called &lt;span style="font-weight:bold;"&gt;Web Service&lt;/span&gt; is added in R7 onwards. From R8 onwards this feature is further divided into two sections "Web Service Providers" and "Web Service Consumers". With both the options, you can create web service which can be read by other platform and vice versa.  Domino can consume web services  written on other platform. &lt;br /&gt;&lt;br /&gt;In this post , I will create a web service using Domino 8.5 and will read that web service in my Eclipse application. Let's begin with the example. &lt;br /&gt;&lt;br /&gt;I've a Lotus Notes application which keeps airlines travel availability configurations. Let's say my form name is "CheckMyTravelDate" with five fields; Departure date,Return date,From country,To country and availability status.Here is my form ,&lt;br /&gt;&lt;table style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SijOIVQcETI/AAAAAAAABIQ/TFuKpbRcJXI/s1600-h/1.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 97px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SijOIVQcETI/AAAAAAAABIQ/TFuKpbRcJXI/s400/1.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5343747600415461682" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Next, Create a view which will be used for look-up in our web service code.It will have two columns; First column is with key "Start Date-End Date-From-To" and second column is "Availability Status". We need to make first column categorized. Shown below,&lt;br /&gt;&lt;table style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SijPhG3Ui8I/AAAAAAAABIY/3jf0fT0AHnY/s1600-h/2.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 78px;" src="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SijPhG3Ui8I/AAAAAAAABIY/3jf0fT0AHnY/s400/2.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5343749125560372162" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Let's begin with Web Service. &lt;br /&gt;&lt;br /&gt;Since we're going to provide Web Service, so click "New web service provider" button under "Web Service providers" section.&lt;br /&gt;&lt;table style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SijQwpmECAI/AAAAAAAABIg/Jf0Ik15yoVk/s1600-h/3.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 356px; height: 400px;" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SijQwpmECAI/AAAAAAAABIg/Jf0Ik15yoVk/s400/3.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5343750492092893186" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;You will have two options to write web service ; Lotus Script and Java. Choose "Lotus Script" (default). Paste following code in your web service ,&lt;br /&gt;&lt;br /&gt;&lt;table border="0" width=100% bgcolor="Turquoise" style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;Option Public&lt;br /&gt;Option Declare&lt;br /&gt;%INCLUDE "lsxsd.lss"&lt;br /&gt;&lt;br /&gt;Class getTravelStatus&lt;br /&gt; &lt;br /&gt; Function getTravelStatusString(StartDate As String, EndDate As String, Departure  As String, Returns As String) As String&lt;br /&gt;  &lt;br /&gt;  Dim s As New  NotesSession&lt;br /&gt;  Dim db As NotesDatabase&lt;br /&gt;  Dim view As NotesView&lt;br /&gt;  Dim doc As NotesDocument&lt;br /&gt;  Dim key As String &lt;br /&gt;  Dim sd As New NotesDateTime(StartDate)&lt;br /&gt;  Dim ed As New NotesDateTime(EndDate)&lt;br /&gt;  &lt;br /&gt;  Set db = s.CurrentDatabase &lt;br /&gt;  &lt;br /&gt;  If Not(db.IsOpen) Then&lt;br /&gt;   getTravelStatusString = "Cannot open travel configuration database "&lt;br /&gt;   Exit Function&lt;br /&gt;  End If&lt;br /&gt;  Set view = db.GetView("CheckMyTravelDate")&lt;br /&gt;  &lt;br /&gt;  If view Is Nothing Then&lt;br /&gt;   getTravelStatusString = "Cannot open travel configuration view " &lt;br /&gt;   Exit Function&lt;br /&gt;  End If&lt;br /&gt;  &lt;br /&gt;  key = Cstr(sd.DateOnly)+"-"+Cstr(ed.DateOnly)+"-"+Departure+"-"+Returns&lt;br /&gt;  &lt;br /&gt;  Set doc = view.getDocumentByKey(key)&lt;br /&gt;  &lt;br /&gt;  If doc Is Nothing Then&lt;br /&gt;   getTravelStatusString = "Sorry, Booking is not available with specified details"&lt;br /&gt;   Exit Function&lt;br /&gt;  Else&lt;br /&gt;   getTravelStatusString=doc.GetItemValue("availabilityStatus")(0)&lt;br /&gt;  End If&lt;br /&gt;  &lt;br /&gt; End Function&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;End Class&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;What my code does :&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It's pretty simple program implemented using class called &lt;span style="font-weight:bold;"&gt;getTravelStatus  &lt;/span&gt;which has one function called &lt;span style="font-weight:bold;"&gt;getTravelStatusString&lt;/span&gt;.This function takes four arguments;Travel start date,end date,departure country and return country. It builds the key , pass to the view,get the availability status and returns to the calling function. &lt;br /&gt;&lt;br /&gt;Now when we try to save web service, we will get following warning &lt;br /&gt;&lt;table style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SijTINZ9BCI/AAAAAAAABIo/h7JX61K2iA4/s1600-h/4.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 55px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SijTINZ9BCI/AAAAAAAABIo/h7JX61K2iA4/s400/4.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5343753095866024994" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Warning says, your class name should match with &lt;span style="font-weight:bold;"&gt;PortTypeClass&lt;/span&gt;.Open web service property window and paste your class name in &lt;span style="font-weight:bold;"&gt;PortTypeClass &lt;/span&gt; section.&lt;br /&gt;&lt;table style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SijUBfYS96I/AAAAAAAABIw/LgUpGO1oGU8/s1600-h/5.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 299px;" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SijUBfYS96I/AAAAAAAABIw/LgUpGO1oGU8/s400/5.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5343754079943456674" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Go to third tab of web service property window and select &lt;span style="font-weight:bold;"&gt;Programming model&lt;/span&gt; as &lt;span style="font-weight:bold;"&gt;RPC&lt;/span&gt; and &lt;span style="font-weight:bold;"&gt;SOAP message format&lt;/span&gt; as &lt;span style="font-weight:bold;"&gt;RPC/encoded&lt;/span&gt;.At the end specify other details like &lt;span style="font-weight:bold;"&gt;Port type name&lt;/span&gt; , &lt;span style="font-weight:bold;"&gt;service element name&lt;/span&gt; and &lt;span style="font-weight:bold;"&gt;Service port name&lt;/span&gt; which are optional parameters.Save your changes.&lt;br /&gt;&lt;br /&gt;&lt;table style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SijU4-NFrTI/AAAAAAAABI4/I95dgDI5W5g/s1600-h/6.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 306px; height: 232px;" src="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SijU4-NFrTI/AAAAAAAABI4/I95dgDI5W5g/s400/6.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5343755033110752562" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Now you've to run your web service on browser using &lt;span style="font-weight:bold;"&gt;?WSDL&lt;/span&gt; ( http://server/database/getTravelStatus?WSDL ) command to verify everything is fine.If everything is fine, you get screen like,&lt;br /&gt;&lt;table style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SijWJkXkTkI/AAAAAAAABJA/DQNzPwIcNLA/s1600-h/7.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 192px;" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SijWJkXkTkI/AAAAAAAABJA/DQNzPwIcNLA/s400/7.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5343756417744784962" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;You've successfully created web service, now time to test.&lt;br /&gt;&lt;br /&gt;There are various method to test web service . I'm going to use Eclipse and the Web Tools Platform (WTP). To do so , first &lt;a href="http://www.eclipse.org/downloads/"&gt;install Eclipse&lt;/a&gt; and then &lt;a href="http://bugs.sakaiproject.org/confluence/display/BOOT/Install+Eclipse+WTP"&gt;configure WTP&lt;/a&gt; in your machine.&lt;br /&gt;&lt;br /&gt;Once installed and WTP configured is done, Open Eclipse and go to &lt;span style="font-weight:bold;"&gt;Run-&gt;Launch the Web service explorer&lt;/span&gt;. Click on "WSDL" page icon on top right top open WSDL window.&lt;br /&gt;(&lt;span style="font-style:italic;background-color:#FFFF66;"&gt;or follow the same step mentioned &lt;a href="http://www.eclipse.org/webtools/jst/components/ws/1.0/tutorials/WebServiceExplorer/WebServiceExplorer.html"&gt;here&lt;/a&gt;&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&lt;table style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SijYaV9tobI/AAAAAAAABJI/rKOMYSyAaJk/s1600-h/8.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 57px;" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SijYaV9tobI/AAAAAAAABJI/rKOMYSyAaJk/s400/8.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5343758904959279538" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Click on "WSDL main" at left panel and provide your web service path at right panel and click on "Go".&lt;br /&gt;&lt;table style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SijZIBjg2BI/AAAAAAAABJQ/ofJk1FucA24/s1600-h/9.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 121px;" src="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SijZIBjg2BI/AAAAAAAABJQ/ofJk1FucA24/s400/9.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5343759689754662930" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;table style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SijZhLQ1eWI/AAAAAAAABJY/w7M9WnWP_Bc/s1600-h/10.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 138px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SijZhLQ1eWI/AAAAAAAABJY/w7M9WnWP_Bc/s400/10.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5343760121857407330" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;You can check the status at lower panel whether your web service is successfully opened or not.Click on your web service name under "Operations" section.You can find the form to enter , Travel start date, end date,to country and from country . Enter data and click "Go",&lt;br /&gt;&lt;table style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/Sija8fQR7cI/AAAAAAAABJg/ATH1bsZ5V6E/s1600-h/11.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 325px;" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/Sija8fQR7cI/AAAAAAAABJg/ATH1bsZ5V6E/s400/11.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5343761690591882690" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;table style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SijbWLM5lxI/AAAAAAAABJw/pVM92iGb71I/s1600-h/12.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 255px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SijbWLM5lxI/AAAAAAAABJw/pVM92iGb71I/s400/12.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5343762131885594386" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;So these were the basic steps to implement and test web services in Lotus Notes. &lt;br /&gt;&lt;br /&gt;Write me for any suggestions/comments.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-1321528145291837612?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/1321528145291837612/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2009/06/web-services-implementation-in-domino.html#comment-form' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/1321528145291837612'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/1321528145291837612'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2009/06/web-services-implementation-in-domino.html' title='Web Services implementation in Domino'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SijOIVQcETI/AAAAAAAABIQ/TFuKpbRcJXI/s72-c/1.JPG' height='72' width='72'/><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-5893360647004897771</id><published>2009-06-01T00:18:00.000-07:00</published><updated>2009-06-23T18:25:49.073-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lotus Notes'/><title type='text'>JDBC connectivity with Oracle in Domino-Part I</title><content type='html'>It's always a challenging job to build a system which communicates with Oracle.From past few years I was working only on web applications.Two days back I've asked to suggest best method to move Lotus Notes documents to Oracle without using local or server level DSN.&lt;br /&gt;&lt;br /&gt;I was very much familiar with Lotus Notes ODBC method , which is very simple and easy to implement. However it's not very good for large volume of data,though I was not suppose to consider because it needs DSN.Next,I've considered LC LSX &lt;em&gt;&lt;del&gt;but assumed it  needs DSN too ( point me if I am wrong )&lt;/del&gt;&lt;/em&gt;,You don't need any DSN in LC LSX method(look at the comments section for more information).Finally I thought about JDBC which is Java based engine to connect Oracle database.Funny thing was that, I studied Java in my graduation and never ever used in working environment except some simple domino java agents. I've checked with my mates and over the net, but didn't got much to start. So, I had decided to do by myself and with help of my wife ( Rashmi, who is Java developer :) ).&lt;br /&gt;&lt;br /&gt;My first task was to start looking correct versions of software which I need along with suitable drivers to connect them.Let's have a look what I've done.&lt;br /&gt;&lt;br /&gt;First, My wife suggested me to setup Java environment in my workstation.I've done by knowing Domino itself built on Java.&lt;br /&gt;&lt;table style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SiOH521ryDI/AAAAAAAABHQ/5Afv37zm074/s1600-h/1.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 145px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SiOH521ryDI/AAAAAAAABHQ/5Afv37zm074/s400/1.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5342263011034515506" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://java.sun.com/javase/downloads/index.jsp#docs"&gt;Java JDK&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;Next, I had started looking to Oracle versions which should be lite and easy to use for newbie.I've chosen Oracle 10g express edition which was up to my expectation and could easily install in my machine.Here is the one,&lt;br /&gt;&lt;table style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SiOKKrYxqoI/AAAAAAAABHY/tqtIwTz8wQQ/s1600-h/2.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 225px;" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SiOKKrYxqoI/AAAAAAAABHY/tqtIwTz8wQQ/s400/2.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5342265499041507970" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.oracle.com/technology/products/database/xe/index.html"&gt;Oracle 10g Express&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Third, I needed correct jdbc driver which should be compatible with Oracle 10g . Here is the one which I've used,&lt;br /&gt;&lt;br /&gt;&lt;table style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SiOLvCh0bII/AAAAAAAABHg/bJVKCUy_jbw/s1600-h/3.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 119px;" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SiOLvCh0bII/AAAAAAAABHg/bJVKCUy_jbw/s400/3.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5342267223240371330" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/htdocs/jdbc101040.html"&gt;JDBC drivers&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Domino-Java coding starts from here,&lt;br /&gt;&lt;br /&gt;Create new Java agent and click on "Edit Project" to link jar file in your agent. Find your .jar file and add in "Current Agent files" list at the right side.&lt;br /&gt;&lt;table style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SiOO7innf3I/AAAAAAAABHo/LZE8H27bw5E/s1600-h/4.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 398px; height: 400px;" src="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SiOO7innf3I/AAAAAAAABHo/LZE8H27bw5E/s400/4.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5342270736547938162" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Next, you need to start importing required classes for connectivity . Add below mentioned classes at the beginning of the agent along with "lotus.domino.*;" package. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;background-color:#FFFF66;"&gt;import java.sql.*; &lt;br /&gt;import oracle.jdbc.*;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Next step is to register our jdbc driver . To do so , Add this line in your code.&lt;br /&gt;&lt;br /&gt;// Register your driver&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;background-color:#FFFF66;"&gt;DriverManager.registerDriver (new oracle.jdbc.OracleDriver());&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Once driver is registered we need to establish a connection with the Oracle. Here is the code which establish connection with Oracle.This is the most important line which needs little bit knowledge of Oracle otherwise you might struggle like me :)&lt;br /&gt;&lt;br /&gt;// Build connection with Oracle&lt;br /&gt;&lt;span style="font-style:italic;background-color:#FFFF66;"&gt;Connection conn = DriverManager.getConnection&lt;br /&gt;("jdbc:oracle:thin:@SPRPRG020V.ap.vdgc.com:1521:XE",&lt;br /&gt;"SYSTEM", "password");&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Some important points about the above line,&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;* I am using &lt;span style="font-weight:bold;"&gt;thin &lt;/span&gt;driver which is also called &lt;span style="font-weight:bold;"&gt;level 4 driver&lt;/span&gt;. There are one more called &lt;span style="font-weight:bold;"&gt;OCI driver&lt;/span&gt; also known as &lt;span style="font-weight:bold;"&gt;level 2 driver&lt;/span&gt;. Oracle thin driver is entirely written in Java so no other software need to install to use this driver where as Oracle OCI driver requires Oracle client to be installed in order to use this driver.So,When you need to connect Oracle remotely without installing Client , go for Oracle thin driver.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;* Passing &lt;span style="font-weight:bold;"&gt;"Host name:Port:SID"&lt;/span&gt;SID is nothing but a &lt;span style="font-weight:bold;"&gt;"Oracle System ID"&lt;/span&gt;.I've spent 1 hour in this line to pass correct host name,port number and SID. To make it quicker and easier , Open "tnsnames.ora" file where Oracle runs . It can be found in &lt;span style="font-weight:bold;"&gt;C:\oraclexe\app\oracle\product\10.2.0\server\NETWORK\ADMIN&lt;/span&gt; ( for my example ). E.g,&lt;/span&gt;&lt;br /&gt;&lt;table style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SjsmRcE2UgI/AAAAAAAABKY/d6YqK-C9qA8/s1600-h/1.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 108px;" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SjsmRcE2UgI/AAAAAAAABKY/d6YqK-C9qA8/s400/1.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5348911063468757506" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;* Last argument is log-in user name and password of Oracle database.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now your connection is established. To test this create table in Oracle and fire some SQL statements. Something like,&lt;br /&gt;&lt;br /&gt;     &lt;span style="font-style:italic;background-color:#FFFF66;"&gt;// Query the Customer table&lt;br /&gt;      Statement stmt = conn.createStatement();&lt;br /&gt;      ResultSet rset = stmt.executeQuery ("SELECT cust_name FROM Customer");&lt;br /&gt;    &lt;br /&gt;     // Read something and print to console , getString to get &amp; setString to set  &lt;br /&gt;        System.out.println("Printing existing records ...");&lt;br /&gt;     while (rset.next())&lt;br /&gt;        System.out.println (rset.getString(1));&lt;br /&gt;         &lt;br /&gt;              System.out.println("Inserting new records ...");&lt;br /&gt;         // Insert example&lt;br /&gt;         stmt.executeUpdate("INSERT INTO Customer VALUES('001','Rishi')");&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You can view the output in Java console , &lt;br /&gt;&lt;table style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SiOX3KSSsgI/AAAAAAAABH4/2MqoxO7sS4c/s1600-h/6.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 172px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SiOX3KSSsgI/AAAAAAAABH4/2MqoxO7sS4c/s400/6.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5342280556901216770" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;Even in Oracle web console ,&lt;br /&gt;&lt;table style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td align="left"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SiOYFKT2TwI/AAAAAAAABIA/Of6icAutkrg/s1600-h/7.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 362px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SiOYFKT2TwI/AAAAAAAABIA/Of6icAutkrg/s400/7.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5342280797425913602" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Here is the complete code&lt;span style="font-weight:bold;"&gt;&lt;/span&gt;&lt;/span&gt;,&lt;br /&gt;&lt;table border="0" width=100% bgcolor="Turquoise" style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;import lotus.domino.*;&lt;br /&gt;import java.sql.*; &lt;br /&gt;import oracle.jdbc.*;&lt;br /&gt;&lt;br /&gt;public class JavaAgent extends AgentBase {&lt;br /&gt;&lt;br /&gt; public void NotesMain() {&lt;br /&gt;&lt;br /&gt;  try {&lt;br /&gt;   Session session = getSession();&lt;br /&gt;   AgentContext agentContext = session.getAgentContext();&lt;br /&gt;   &lt;br /&gt;   lotus.domino.Session s = getSession();&lt;br /&gt;   lotus.domino.AgentContext agentContex = s.getAgentContext();&lt;br /&gt;  &lt;br /&gt;   // Register your driver&lt;br /&gt;    DriverManager.registerDriver (new oracle.jdbc.OracleDriver());&lt;br /&gt;             &lt;br /&gt;    // Build connection with Oracle using thin driver&lt;br /&gt;             Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@SPRPRG020V.ap.vdgc.com:1521:XE", "SYSTEM", "password");&lt;br /&gt;&lt;br /&gt;     // Query the Customer table&lt;br /&gt;      Statement stmt = conn.createStatement();&lt;br /&gt;      ResultSet rset = stmt.executeQuery ("SELECT cust_name FROM Customer");&lt;br /&gt;    &lt;br /&gt;     // Read something and print to console , getString to get &amp; setString to set  &lt;br /&gt;        System.out.println("Printing existing records ...");&lt;br /&gt;     while (rset.next())&lt;br /&gt;        System.out.println (rset.getString(1));&lt;br /&gt;         &lt;br /&gt;            System.out.println("Inserting new records ...");&lt;br /&gt;         // Insert example&lt;br /&gt;            stmt.executeUpdate("INSERT INTO Customer VALUES('001','Rishi')");&lt;br /&gt;&lt;br /&gt;      // close the result set, statement, and the connection&lt;br /&gt;         rset.close();&lt;br /&gt;         stmt.close();&lt;br /&gt;         conn.close();&lt;br /&gt;      &lt;br /&gt;  } catch(Exception e) {&lt;br /&gt;   e.printStackTrace();&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;One more thing which I forgot to mention is that I've used Eclipse to write my code because Domino doesn't provide type ahead for methods/property.&lt;br /&gt;&lt;br /&gt;Though it's just a POC to kick off my project , But definitely got some confidence to start my first Java project in Domino. Hope I can write all my learning here to help other Domino developers to start quickly with Java. I would love to see your suggestions/comments.&lt;br /&gt;&lt;br /&gt;Rob and pete has suggested me to use LC LSX method in comments section of this post . So, Written the sample code for connectivity using LC LSX and it works well . Here is the code who wish to use as a reference ,&lt;br /&gt;&lt;br /&gt;&lt;table border="0" width=100% bgcolor="Turquoise" style="border: 1px solid #660000;border-style: solid"&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;'Adding LC LSX library&lt;br /&gt;Option Public&lt;br /&gt;Uselsx "*lsxlc" &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Sub Initialize&lt;br /&gt; On Error Goto handler&lt;br /&gt; &lt;br /&gt; Dim connect As New LCConnection  ("Oracle") ' You can pass Db2 or odbc2 for SQL Server&lt;br /&gt; Dim fldLst As New LCFieldList&lt;br /&gt; Dim keyLst As New LCFieldList&lt;br /&gt; Dim fld As LCField&lt;br /&gt; Dim count As Integer &lt;br /&gt; &lt;br /&gt; &lt;br /&gt; 'connect.database="XE"   'Don't use this method because it doesn't work&lt;br /&gt; connect.Server = "XE"         ' I've Oracle express edition 10g . To check server name open "tnsnames.ora" file and check SID&lt;br /&gt; connect.Userid = "SYSTEM"  ' Id&lt;br /&gt; connect.Password = "password" ' Password&lt;br /&gt; connect.Metadata = "customer"  ' Table name&lt;br /&gt; connect.Connect &lt;br /&gt; &lt;br /&gt; Print "Successfully connected to Oracle...."&lt;br /&gt; &lt;br /&gt; connect.FieldNames = "cust_no,cust_name"  ' Two columns in customer table&lt;br /&gt; Set fld = keyLst.Append ("cust_no", LCTYPE_INT)&lt;br /&gt; fld.Flags = LCFIELDF_KEY_NE Or LCFIELDF_KEY&lt;br /&gt; fld.Value = 200 &lt;br /&gt; &lt;br /&gt; If (connect.Select (keyLst, 1, fldLst) = 0) Then&lt;br /&gt;  Print "No data found."&lt;br /&gt;  End&lt;br /&gt; End If&lt;br /&gt; &lt;br /&gt; Set fld = fldLst.Lookup ("cust_name")&lt;br /&gt; &lt;br /&gt; Print "The 'contact names' stored in the table are:"&lt;br /&gt; &lt;br /&gt; While (connect.Fetch (fldLst) &gt; 0)&lt;br /&gt;  count = count + 1&lt;br /&gt;  Msgbox "     record #" &amp; Cstr(count) &amp; " = '" &amp; fld.text(0) &amp; "'"&lt;br /&gt; Wend&lt;br /&gt; &lt;br /&gt; If (count = 0) Then Print "The table contains no records." &lt;br /&gt; &lt;br /&gt; Exit Sub&lt;br /&gt; &lt;br /&gt;handler:&lt;br /&gt; &lt;br /&gt; Msgbox  "Connection failed with error " &amp; Err &amp; ": " &amp; Error&lt;br /&gt; Exit Sub &lt;br /&gt; &lt;br /&gt;End Sub&lt;/span&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;To be continued....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-5893360647004897771?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/5893360647004897771/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2009/06/jdbc-connectivity-with-oracle-in-domino.html#comment-form' title='20 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/5893360647004897771'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/5893360647004897771'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2009/06/jdbc-connectivity-with-oracle-in-domino.html' title='JDBC connectivity with Oracle in Domino-Part I'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SiOH521ryDI/AAAAAAAABHQ/5Afv37zm074/s72-c/1.JPG' height='72' width='72'/><thr:total>20</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-1949314778007627879</id><published>2009-04-21T23:05:00.000-07:00</published><updated>2009-04-21T23:10:35.388-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Development'/><title type='text'>Dojo and AOL</title><content type='html'>To reference the Dojo Toolkit to our page usually we would do by downloading the source from Dojo web site and putting it on our own site then linking to it. We can reference the Dojo source files on the Internet without requiring us to have the source on our own web server.&lt;br /&gt;&lt;br /&gt;AOL provides a facility it calls the Content Delivery Network (CDN), which is a&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;“worldwide geographic edge caching”&lt;/span&gt; mechanism for the Internet.This allows super fast delivery of files to web users from AOL servers that are geographically close to them.&lt;br /&gt;&lt;br /&gt;The files are also compressed, which further improves the download speeds.AOL has&lt;br /&gt;generously made this facility available to developers and end users. For more information on the AOL CDN and Dojo, visit &lt;a href="http://dev.aol.com/dojo"&gt;http://dev.aol.com/dojo&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;So just provide a link to the Dojo files on AOL CDN and do not need to download them to your site at all.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-1949314778007627879?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/1949314778007627879/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2009/04/dojo-and-aol.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/1949314778007627879'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/1949314778007627879'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2009/04/dojo-and-aol.html' title='Dojo and AOL'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-5862485582665325885</id><published>2009-04-21T22:12:00.000-07:00</published><updated>2009-04-21T22:35:55.912-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Development'/><title type='text'>Dojo: Populating dijit FilteringSelect dynamically in Lotus Notes</title><content type='html'>As I experienced ,Populating list box dynamically in HTML is not simpler than other HTML controls.However it's more complex when you use dijit FilteringSelect.FilteringSelect is like an HTML SELECT tag, but is populated dynamically. It works very nicely with very large data sets because it can load and page data as needed.&lt;br /&gt;&lt;br /&gt;Actually,I have come up with the requirement based on the option selected in radio button drop-down should be populated from configuration document.E.g, We have radio button with three options ; A , B and C. Once you select A; country name starts with 'A' should be populated in drop down and Same as for B and C. When I visited Dojo site for some example found following,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/Se6mAdoziVI/AAAAAAAABG4/ULnL1BKUEgc/s1600-h/1.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 69px;" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/Se6mAdoziVI/AAAAAAAABG4/ULnL1BKUEgc/s400/1.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5327377936111864146" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;But it was not as easy in implementation as shown. Lets see how it's done.&lt;br /&gt;&lt;br /&gt;First, I kept three hidden look-up fields on the form to hold data from configuration document. Fields were , lkpA, lkpB and lkpC ; all three fields look-up country name starts with their corresponding initials.&lt;br /&gt;Next, my JavaScript function which triggers on radio button (Where options A,B and C ) . Code actually pass the look-up field handle to another JavaScript function which actually populates the drop down. Code looks something like,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/Se6sL1IUGxI/AAAAAAAABHI/T0xPUZNmk74/s1600-h/1.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 282px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/Se6sL1IUGxI/AAAAAAAABHI/T0xPUZNmk74/s400/1.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5327384728466365202" /&gt;&lt;/a&gt;    &lt;br /&gt;&lt;br /&gt;And here is populate_category function which actually loop through passed hidden field,builds JSON and populate drop down.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/Se6rNoAB3gI/AAAAAAAABHA/BMe_WAQiXKc/s1600-h/1.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 157px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/Se6rNoAB3gI/AAAAAAAABHA/BMe_WAQiXKc/s400/1.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5327383659790065154" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Would like to hear if it could be achieved more easily ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-5862485582665325885?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/5862485582665325885/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2009/04/dojo-populating-dijit-filteringselect.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/5862485582665325885'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/5862485582665325885'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2009/04/dojo-populating-dijit-filteringselect.html' title='Dojo: Populating dijit FilteringSelect dynamically in Lotus Notes'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_T_-j3ZLqfNQ/Se6mAdoziVI/AAAAAAAABG4/ULnL1BKUEgc/s72-c/1.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-2491906505399012666</id><published>2009-03-27T00:59:00.000-07:00</published><updated>2009-03-27T01:39:15.725-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Development'/><title type='text'>Getting Started with XPages - Some tutorial link</title><content type='html'>1 - &lt;a href="http://www.eview.com/Getting_Started_with_XPages"&gt;Getting Started with XPages&lt;/a&gt; By Rob McDonagh&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;2 - &lt;a href="https://www6.software.ibm.com/developerworks/education/ls-ddxpages/index.html"&gt;Harness the power of XPages in Lotus Domino Designer&lt;/a&gt; By Chris Toohey&lt;br /&gt;&lt;br /&gt;3 - &lt;a href="http://www-10.lotus.com/ldd/nd85forum.nsf/DateAllThreadedWeb/86ed5d51aa7abdeb852574bf00479c7d?OpenDocument"&gt;New XPage Tutorial&lt;/a&gt; By Peter Janzen&lt;br /&gt;&lt;br /&gt;4 - &lt;a href="http://www.jmackey.net/groupwareinc/johnblog/johnblog.nsf"&gt;XPage Examples&lt;/a&gt; by John Mackey&lt;br /&gt;&lt;br /&gt;5 - &lt;a href="http://www.qtzar.com/blogs/qtzar.nsf/htdocs/LearningXPages.htm"&gt;Learning XPages&lt;/a&gt; By Declan Lynch&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-2491906505399012666?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/2491906505399012666/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2009/03/getting-started-with-xpages-some.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/2491906505399012666'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/2491906505399012666'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2009/03/getting-started-with-xpages-some.html' title='Getting Started with XPages - Some tutorial link'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-3773083703872147938</id><published>2009-03-24T21:59:00.000-07:00</published><updated>2009-03-25T00:23:30.888-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Development'/><title type='text'>OnChange event behavior in IE and Mozila</title><content type='html'>Today while working on one of the requirement, I encountered strange thing about onChange event behavior in Internet Explorer 7 and Mozila Firefox 3. &lt;br /&gt;&lt;br /&gt;Actually my requirement was to show and hide div based on the radio button selection. I was having following code on "onChange" event of the radio button, &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/Scm9FmXiNlI/AAAAAAAABGY/dQ-DXlRP2Ko/s1600-h/1.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 170px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/Scm9FmXiNlI/AAAAAAAABGY/dQ-DXlRP2Ko/s400/1.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5316988738983835218" /&gt;&lt;/a&gt;                &lt;br /&gt;&lt;br /&gt;Code was executing very well on Mozila and everything was fine, But same stuff was working unexpected in Internet Explorer. According to the code , DIV A should visible if "Yes" was selected else DIVB should be visible. When I ran the code in IE, On selection of "yes" nothing was happening , but on selection of "No" DIV A was getting visible which was wrong. However that's the way "onChange" event should work but why Mozila is showing correct DIV on onchange event. I didn't got the answer by myself or even from the Google.&lt;br /&gt;&lt;br /&gt;After few attempts, I didn't put much attention and put the code in "OnClick" event of the radio and it works well in both the browser. Just forsake checked in Google , found many people experienced the same. Anyways I had other stuffs to do so left there it is..&lt;br /&gt;&lt;br /&gt;Would love to know if anybody get the answer :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-3773083703872147938?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/3773083703872147938/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2009/03/onchange-event-behavior-in-ie-and.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/3773083703872147938'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/3773083703872147938'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2009/03/onchange-event-behavior-in-ie-and.html' title='OnChange event behavior in IE and Mozila'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_T_-j3ZLqfNQ/Scm9FmXiNlI/AAAAAAAABGY/dQ-DXlRP2Ko/s72-c/1.JPG' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-8760881048304071533</id><published>2009-03-15T20:31:00.000-07:00</published><updated>2009-03-24T21:55:08.375-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Development'/><title type='text'>leverage your Domino web application with interactive flash based charts</title><content type='html'>Recently in my new project I have implemented flash/xml based charts powered by (&lt;a href="http://www.fusioncharts.com"&gt;www.fusioncharts.com&lt;/a&gt;). Great thing is that it's free to download and use. You need to pay if you wish to go for advance charts.So, Lets discuss those which can be downloaded with no cost. There are number of charts like, 3D/2D Column &amp; Bar Charts,Line Charts,2D/3D Pie &amp; Doughnut Charts,Area Charts,Stacked Charts, Gantt Chart and many more. Have a look here,&lt;br /&gt;(&lt;a href="http://www.fusioncharts.com/free/Gallery.asp?gMenuItemId=3"&gt;http://www.fusioncharts.com/free/Gallery.asp&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;FusionCharts are .swf file which takes xml data as a input and draws flash charts on .For domino implementation just add swf file in your &lt;span style="font-weight:bold;"&gt;File Resource&lt;/span&gt; , build your xml string, pass it in the chart and get the nice flash chart.&lt;br /&gt;&lt;br /&gt;Actually, I have been implemented this long back in PHP, but never got such requirement to do in Lotus Notes. But when I got the requirement , I consider FusionCharts only because it's simple and great.&lt;br /&gt;&lt;br /&gt;In this blog I will discuss everything starting from form designing to displaying chart. I will be using Bar chart in this example.Let's start now..&lt;br /&gt;&lt;br /&gt;1- We are going to display number of "Site visitors" by month. To do so , Add text field in your form A called "Site Name". In next row add caption start from "Jan" to "Dec" ( in separate column) and at the end "Total" caption. Now add one number field for each month and one for calculating "Total" for the year. Put a formula on "Total" field to calculate total ( Jan+Feb+..+Dec).Here is the visual,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/Sb3a823PTtI/AAAAAAAABFo/N9Srn_7raho/s1600-h/5.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 30px;" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/Sb3a823PTtI/AAAAAAAABFo/N9Srn_7raho/s400/5.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5313643874421264082" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2- Run your form in notes and create some sample docs by feeding entry for each month.Something like,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/Sb3cPx64_8I/AAAAAAAABF4/0WTeVrxswos/s1600-h/7.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 34px;" src="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/Sb3cPx64_8I/AAAAAAAABF4/0WTeVrxswos/s400/7.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5313645299023544258" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;3- Create one more form B ,which will share the same form name as Notes form ( which used to create document earlier) which will be used to open the document on web with chart.here is the visual,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/Sb3bpD1FOaI/AAAAAAAABFw/NFyWnIzp16s/s1600-h/6.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 104px;" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/Sb3bpD1FOaI/AAAAAAAABFw/NFyWnIzp16s/s400/6.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5313644633816119714" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;4- Open Form B in designer and add first text field (Computed for Display) called "ColumnChart" and write following formula,&lt;br /&gt;&lt;br /&gt;tmpProtocol:= "http" + @If(HTTPS="ON"; "s"; "");&lt;br /&gt;txGraphURL:= "FC_2_3_Column3D.swf";&lt;br /&gt;tmpProtocol + "://" + @GetHTTPHeader("Host") + "/" + @WebDbName + "/" + @URLEncode("UTF-8";txGraphURL)&lt;br /&gt;( Assume you have downloaded swf file from fusionchart website and kept in your "file resources)&lt;br /&gt;&lt;br /&gt;Next add text field (Computed for Display) called "ChartSize" and will have following formula , &lt;br /&gt;&lt;br /&gt;"900" : "345"&lt;br /&gt;&lt;br /&gt;Next add text field (Computed for Display) called "Colors" and will have following formula,&lt;br /&gt;&lt;br /&gt;"99CCFF" : "FF99CC" : "CC9900" : "99CC99" : "9999FF" : "FFCC66" : "CCCC66" : "9999CC" : "FFCCCC" : "99FFCC" : "CCCCFF" : "99CC66"&lt;br /&gt;&lt;br /&gt;Next add last text field called "ChartData", which will compute feeded data and build xml . here is the formula for same, &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/Sb3K09KKfaI/AAAAAAAABFI/6ZRkDzQSNAM/s1600-h/1.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 177px;" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/Sb3K09KKfaI/AAAAAAAABFI/6ZRkDzQSNAM/s400/1.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5313626146486255010" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Important : &lt;br /&gt;&lt;br /&gt;1) Make sure all the tags are closed properly.&lt;br /&gt;2) Parent tag (graph) is started and ended properly.&lt;br /&gt;3) Data type conversion. Numbers must be converted into text.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;5- Add following code on your form and pass thru ,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/Sb3LPtMaSRI/AAAAAAAABFQ/XznE96TSpus/s1600-h/2.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 53px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/Sb3LPtMaSRI/AAAAAAAABFQ/XznE96TSpus/s400/2.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5313626606057179410" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;here are the formula used on &lt;ComputedText&gt; in above code,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/Sb3L2s4-7HI/AAAAAAAABFY/oCZi3BpUphw/s1600-h/3.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 279px; height: 255px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/Sb3L2s4-7HI/AAAAAAAABFY/oCZi3BpUphw/s400/3.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5313627275990592626" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;That's it. Open your document ( which you have created earlier) on web , it will display nice Flash chart for you by month wise. here it is,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/Sb3dYqtmiqI/AAAAAAAABGA/OGJZwlCf0X4/s1600-h/8.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 213px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/Sb3dYqtmiqI/AAAAAAAABGA/OGJZwlCf0X4/s400/8.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5313646551219210914" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You can even create complex one using AJAX which will dynamically build xml string and pass it to swf file.I have done similar stuffs using LS and ajax. Here is the sample using LS,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/Sb3hg_4VeGI/AAAAAAAABGI/rDx-ZwFm3GQ/s1600-h/1.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 249px; height: 400px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/Sb3hg_4VeGI/AAAAAAAABGI/rDx-ZwFm3GQ/s400/1.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5313651092386838626" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You can download working copy from OpenNTF.org, Here is the link,&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.openntf.org/Projects/pmt.nsf/ProjectLookup/Flash%20Charts%20for%20Domino%20web%20application"&gt;http://www.openntf.org/Projects/pmt.nsf/ProjectLookup/Flash%20Charts%20for%20Domino%20web%20application&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-8760881048304071533?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/8760881048304071533/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2009/03/leverage-your-domino-web-application.html#comment-form' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/8760881048304071533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/8760881048304071533'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2009/03/leverage-your-domino-web-application.html' title='leverage your Domino web application with interactive flash based charts'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/Sb3a823PTtI/AAAAAAAABFo/N9Srn_7raho/s72-c/5.JPG' height='72' width='72'/><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-7687756049647807793</id><published>2009-02-23T21:17:00.000-08:00</published><updated>2009-03-18T07:22:11.746-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Development'/><title type='text'>Browser type and version detection for Domino Applications</title><content type='html'>Today I got a requirement to put a check if person is not using Internet Explorer higher than 6 and Mozila Firefox higher than 2.5 , don't allow them to access the site since site is developed for IE ( version 6 or later) and Mozila (2.5 or later).&lt;br /&gt;&lt;br /&gt;The first Easy stuff I did to test @BrowserInfo("Platform") and @BrowserInfo("Version")formulas in Explorer,Mozila and Safari. I saw strange stuffs, IE shows type "Explorer" and version 7 ( Which was right because I have version 7), but Mozila and Safari both shows type as "Mozila" and version 5, Whereas I am having Mozila 3 and Safari 3.2.  Soon I realized this is not going to be a easy fix. &lt;br /&gt;&lt;br /&gt;Next, I thought to check "The Navigator Object" which is having two property to detect browser type and version&lt;br /&gt;&lt;br /&gt;      &lt;span style="font-weight:bold;"&gt;appName -  holds the name of the browser&lt;/span&gt;&lt;br /&gt;      &lt;span style="font-weight:bold;"&gt;appVersion - holds, among other things, the version of the browser&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;But as soon as tested found , wrong results again. Also found following warning in W3Schools , &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;IMPORTANT! The version number is WRONG in IE 5.0 or later! Microsoft starts the appVersion string with the number 4.0. in IE 5.0 and IE 6.0!!! Why did they do that??? However, JavaScript is the same in IE6, IE5 and IE4, so for most scripts it is ok.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now what Next.. After spending couple of hours able to implement JavaScript which works well for all the browsers and provides correct type with version number. Here was my final JS code, &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SaOJPOUvpcI/AAAAAAAABEo/abJBSfHHOQA/s1600-h/2.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 151px; height: 400px;" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SaOJPOUvpcI/AAAAAAAABEo/abJBSfHHOQA/s400/2.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5306235680608724418" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;You just need to use in the JS file or JSHeader and call their methods like,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SaOKO50Z2eI/AAAAAAAABE4/1kJGD6_QY_U/s1600-h/3.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 63px;" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SaOKO50Z2eI/AAAAAAAABE4/1kJGD6_QY_U/s400/3.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5306236774615996898" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Since I can't post JS directly on the blog so posted as image, write me for JS code.&lt;br /&gt;&lt;br /&gt;This tip is published in &lt;a href="http://searchdomino.techtarget.com/tip/0,289483,sid4_gci1350749_mem1,00.html"&gt;Search Domino&lt;/a&gt; website , Vote this tip if you like...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-7687756049647807793?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/7687756049647807793/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2009/02/browser-type-and-version-detection-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/7687756049647807793'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/7687756049647807793'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2009/02/browser-type-and-version-detection-for.html' title='Browser type and version detection for Domino Applications'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SaOJPOUvpcI/AAAAAAAABEo/abJBSfHHOQA/s72-c/2.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-3307623906254005145</id><published>2009-02-23T19:29:00.000-08:00</published><updated>2009-02-23T19:35:57.899-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lotus Notes'/><title type='text'>Unique record in the views</title><content type='html'>One of the user in Notes 6 forum asked how to keep unique records in the view. I have given very simple solution , In view's advanced tab try to check "Generate unique keys in Index" check box. &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SaNqqp0-WXI/AAAAAAAABEg/H4m6VhYyZbY/s1600-h/1.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 306px; height: 328px;" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SaNqqp0-WXI/AAAAAAAABEg/H4m6VhYyZbY/s400/1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5306202066987669874" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I have noticed still people thinks this option is only for ODBC. But believe me it works well to keep unique records in the view. Hidden tips :)&lt;br /&gt;&lt;br /&gt;Here is the conversation ,&lt;br /&gt;&lt;br /&gt;http://www-10.lotus.com/ldd/nd6forum.nsf/DateAllThreadedweb/18649ca58a9bddf78525756600158a03?OpenDocument&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-3307623906254005145?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/3307623906254005145/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2009/02/unique-record-in-views.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/3307623906254005145'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/3307623906254005145'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2009/02/unique-record-in-views.html' title='Unique record in the views'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SaNqqp0-WXI/AAAAAAAABEg/H4m6VhYyZbY/s72-c/1.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-9065678958038372940</id><published>2009-02-15T19:00:00.000-08:00</published><updated>2009-02-15T19:05:56.598-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Miscellaneous'/><title type='text'>Tom Riddler's Magical Diary - Cool AJAX application</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SZjYEDpXYxI/AAAAAAAABEQ/ZcTQsuD6Ois/s1600-h/1.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 297px;" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SZjYEDpXYxI/AAAAAAAABEQ/ZcTQsuD6Ois/s400/1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5303226125438640914" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Open your browser and navigate to http://pandorabots.com/pandora/talk?botid=c96f911b3e35f9e1 to open Tom Riddle’s diary.&lt;br /&gt;&lt;br /&gt;Type something into the diary, such as the question, “What’s your name?” You’ll get&lt;br /&gt;an answer (the answer to “What’s your name?” turns out to be: “My name is Tom Marvolo&lt;br /&gt;Riddle, also known as Lord Vol...eh, forget that last thing will you.”).&lt;br /&gt;You can ask detailed questions—the diary has been written to appear quite intelligent. Try&lt;br /&gt;“Where are you?”, “How old are you?”, and “What is the meaning of life?”&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The diary is actually an Ajax-enabled web application. If you type into it, it’ll connect to&lt;br /&gt;its server using Ajax, and type a response back. For example, if you type “Hello,” &lt;br /&gt;the diary will type back “Hi there!”.&lt;br /&gt;Behind the scenes, the web page connected to its server, sent what you typed to that server,&lt;br /&gt;and got a response back, which it displayed. Cool.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-9065678958038372940?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/9065678958038372940/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2009/02/tom-riddlers-magical-diary-cool-ajax.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/9065678958038372940'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/9065678958038372940'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2009/02/tom-riddlers-magical-diary-cool-ajax.html' title='Tom Riddler&apos;s Magical Diary - Cool AJAX application'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SZjYEDpXYxI/AAAAAAAABEQ/ZcTQsuD6Ois/s72-c/1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-2090506477664274352</id><published>2009-02-01T20:44:00.000-08:00</published><updated>2009-02-01T21:14:56.781-08:00</updated><title type='text'>Lotus Notes keyword shortcuts</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SYZ7PmIhpfI/AAAAAAAABC4/hIt40ll7__k/s1600-h/1.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 266px; height: 400px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SYZ7PmIhpfI/AAAAAAAABC4/hIt40ll7__k/s400/1.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5298057519512528370" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SYZ798E6SdI/AAAAAAAABDA/B2MnV1C_CoI/s1600-h/2.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 230px; height: 400px;" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SYZ798E6SdI/AAAAAAAABDA/B2MnV1C_CoI/s400/2.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5298058315676928466" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SYZ93qFfCvI/AAAAAAAABDI/yKAkV8PE6ig/s1600-h/3.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 215px;" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SYZ93qFfCvI/AAAAAAAABDI/yKAkV8PE6ig/s400/3.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5298060406791539442" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SYZ99icifDI/AAAAAAAABDQ/Suasv3PrS9w/s1600-h/4.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 303px;" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SYZ99icifDI/AAAAAAAABDQ/Suasv3PrS9w/s400/4.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5298060507819965490" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SYZ-Cm8FCUI/AAAAAAAABDY/eNjFv7x9JHE/s1600-h/5.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 395px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SYZ-Cm8FCUI/AAAAAAAABDY/eNjFv7x9JHE/s400/5.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5298060594925340994" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SYZ-HEt46iI/AAAAAAAABDg/nInXms64ziA/s1600-h/6.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 340px;" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SYZ-HEt46iI/AAAAAAAABDg/nInXms64ziA/s400/6.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5298060671638366754" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SYZ-mz9R1sI/AAAAAAAABD4/HhWTI4zn6HM/s1600-h/7.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 303px;" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SYZ-mz9R1sI/AAAAAAAABD4/HhWTI4zn6HM/s400/7.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5298061216895325890" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SYZ-uLltUoI/AAAAAAAABEA/xz8Ja3IUv5M/s1600-h/8.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 220px; height: 400px;" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SYZ-uLltUoI/AAAAAAAABEA/xz8Ja3IUv5M/s400/8.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5298061343497998978" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SYZ-SunKjkI/AAAAAAAABDw/SYLTKpohFrQ/s1600-h/9.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 221px; height: 400px;" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SYZ-SunKjkI/AAAAAAAABDw/SYLTKpohFrQ/s400/9.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5298060871863012930" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here is another useful &lt;a href="http://www.leadershipbynumbers.com/ms.nsf/2/BMMA-679N4Q/$FILE/ND6KEYSHORTCUTS_LEADERSHIP.zip"&gt;link&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-2090506477664274352?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/2090506477664274352/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2009/02/lotus-notes-keyword-shortcuts.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/2090506477664274352'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/2090506477664274352'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2009/02/lotus-notes-keyword-shortcuts.html' title='Lotus Notes keyword shortcuts'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SYZ7PmIhpfI/AAAAAAAABC4/hIt40ll7__k/s72-c/1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-9097810739307239715</id><published>2009-01-15T00:56:00.001-08:00</published><updated>2009-01-15T00:56:33.872-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Development'/><title type='text'>Introduction Dojo Toolkit &amp; IBM Lotus Domino</title><content type='html'>&lt;div style="width:425px;text-align:left" id="__ss_280115"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/rkremer/introduction-dojo-toolkit-ibm-lotus-domino?type=powerpoint" title="Introduction Dojo Toolkit &amp;amp; IBM Lotus Domino"&gt;Introduction Dojo Toolkit &amp;amp; IBM Lotus Domino&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=introduction-dojo-toolkit-ibm-lotus-domino-120388704038973-2&amp;stripped_title=introduction-dojo-toolkit-ibm-lotus-domino" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=introduction-dojo-toolkit-ibm-lotus-domino-120388704038973-2&amp;stripped_title=introduction-dojo-toolkit-ibm-lotus-domino" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;View SlideShare &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/rkremer/introduction-dojo-toolkit-ibm-lotus-domino?type=powerpoint" title="View Introduction Dojo Toolkit &amp;amp; IBM Lotus Domino on SlideShare"&gt;presentation&lt;/a&gt; or &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/upload?type=powerpoint"&gt;Upload&lt;/a&gt; your own. (tags: &lt;a style="text-decoration:underline;" href="http://slideshare.net/tag/dojo_toolkit"&gt;dojo_toolkit&lt;/a&gt; &lt;a style="text-decoration:underline;" href="http://slideshare.net/tag/web_2-0"&gt;web_2.0&lt;/a&gt;)&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-9097810739307239715?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/9097810739307239715/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2009/01/introduction-dojo-toolkit-ibm-lotus.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/9097810739307239715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/9097810739307239715'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2009/01/introduction-dojo-toolkit-ibm-lotus.html' title='Introduction Dojo Toolkit &amp; IBM Lotus Domino'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-3879542507540065318</id><published>2009-01-15T00:54:00.000-08:00</published><updated>2009-01-15T00:55:03.106-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lotus Notes'/><title type='text'>Introducing IBM Lotus Notes and Domino 8.5</title><content type='html'>&lt;div style="width:425px;text-align:left" id="__ss_894863"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/tcoustenoble/introducing-ibm-lotus-notes-and-domino-85-presentation-894863?type=powerpoint" title="Introducing IBM Lotus Notes and Domino 8.5"&gt;Introducing IBM Lotus Notes and Domino 8.5&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=introducing-ibm-lotus-notes-and-domino-85-slideshow-1231267606343259-1&amp;stripped_title=introducing-ibm-lotus-notes-and-domino-85-presentation-894863" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=introducing-ibm-lotus-notes-and-domino-85-slideshow-1231267606343259-1&amp;stripped_title=introducing-ibm-lotus-notes-and-domino-85-presentation-894863" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;View SlideShare &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/tcoustenoble/introducing-ibm-lotus-notes-and-domino-85-presentation-894863?type=powerpoint" title="View Introducing IBM Lotus Notes and Domino 8.5 on SlideShare"&gt;presentation&lt;/a&gt; or &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/upload?type=powerpoint"&gt;Upload&lt;/a&gt; your own. (tags: &lt;a style="text-decoration:underline;" href="http://slideshare.net/tag/composite"&gt;composite&lt;/a&gt; &lt;a style="text-decoration:underline;" href="http://slideshare.net/tag/applications"&gt;applications&lt;/a&gt;)&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-3879542507540065318?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/3879542507540065318/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2009/01/introducing-ibm-lotus-notes-and-domino.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/3879542507540065318'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/3879542507540065318'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2009/01/introducing-ibm-lotus-notes-and-domino.html' title='Introducing IBM Lotus Notes and Domino 8.5'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-8560774979059668933</id><published>2009-01-12T23:03:00.000-08:00</published><updated>2009-08-11T20:39:11.668-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lotus Notes'/><title type='text'>New themes for Lotus Notes 8</title><content type='html'>Today when I was reading &lt;a href="http://www.notesdesignblog.com"&gt;Mary Beth's&lt;/a&gt; blog found something cool which I always wanted to do . Guess what , To change my Notes theme. Here are the simple steps to do the same,&lt;br /&gt;&lt;br /&gt;1- Create new connections document with following details,&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Server Name : Tranquility/TurtlePublic&lt;br /&gt;Destination server address: www.noteswidgets.com&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SWw-VnSORQI/AAAAAAAABBg/aIcgpdVuZ40/s1600-h/11.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 176px;" src="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SWw-VnSORQI/AAAAAAAABBg/aIcgpdVuZ40/s400/11.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5290672203297080578" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2- Go to &lt;span style="font-weight:bold;"&gt;"Preferences- &gt; Widgets"&lt;/span&gt; and provide following details, &lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Catalog Server : Tranquility/TurtlePublic&lt;br /&gt;Catalog Name : widgetcatalog.nsf&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SWw_oFUXx-I/AAAAAAAABBo/OiYFNqvHQ0I/s1600-h/22.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 110px;" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SWw_oFUXx-I/AAAAAAAABBo/OiYFNqvHQ0I/s400/22.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5290673620108429282" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Save the changes.Wait for while when your system connects the catalog server and fetch all the themes. Basically It ask you to download .jar file (plug in). Say yes and wait for while when it gets downloaded.Once done, It will prompt you to re-start your Notes.After re-start, Go to "Preferences -&gt; Widgets" and select "Theme" check box and save the changes. &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SWxAxx4wu5I/AAAAAAAABBw/wnKR3IuQH2Q/s1600-h/33.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 360px;" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SWxAxx4wu5I/AAAAAAAABBw/wnKR3IuQH2Q/s400/33.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5290674886202669970" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now you are ready to choose your theme , Click "Windows and Themes" to select your theme. &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SWxBKDHY1RI/AAAAAAAABB4/9T51JNSDGVA/s1600-h/44.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 360px;" src="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SWxBKDHY1RI/AAAAAAAABB4/9T51JNSDGVA/s400/44.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5290675303144281362" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here is my client now,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SWxFnUAWV3I/AAAAAAAABCA/pCb9NNgVxM8/s1600-h/55.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 117px;" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SWxFnUAWV3I/AAAAAAAABCA/pCb9NNgVxM8/s400/55.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5290680203940878194" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now possible cause of failure,&lt;br /&gt;&lt;br /&gt;1- In-correct location document creation.&lt;br /&gt;2- If you received an error, make sure you can add at least google widgets in your client. If not, check your proxy which may stop you to connect the server.&lt;br /&gt;&lt;br /&gt;Notes/Domino 8.5 Fix Pack 1 has mentioned about this error ,&lt;br /&gt;&lt;br /&gt;" SPR# QLIG7LYB3Q - Error to connect to widget catalog server, Notes.jar recycled error".&lt;br /&gt;&lt;br /&gt;So if anybody is having problem with R8.5 then install fix pack 1 for R8.5.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://cggveritas.workflowstudios.com/QHSE/PRISM1-2-3.nsf/ReportBuilder2?OpenForm"&gt;http://www-10.lotus.com/ldd/R5FixList.nsf/8d1c0550e6242b69852570c900549a74/43c58a61277b4cd6852576020069d93d?OpenDocument&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-8560774979059668933?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/8560774979059668933/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2009/01/implement-new-themes-for-lotus-notes-8.html#comment-form' title='22 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/8560774979059668933'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/8560774979059668933'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2009/01/implement-new-themes-for-lotus-notes-8.html' title='New themes for Lotus Notes 8'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SWw-VnSORQI/AAAAAAAABBg/aIcgpdVuZ40/s72-c/11.JPG' height='72' width='72'/><thr:total>22</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-8570476753012041472</id><published>2009-01-11T21:37:00.000-08:00</published><updated>2009-01-12T22:37:33.635-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lotus Notes'/><title type='text'>Increase productivity with  widgets add-ons</title><content type='html'>The Notes 8 client has a feature call the Sidebar, with several miniature applications called widgets. Widgets allow you to use Notes as a "desktop" for more than just your e-mail. As it's configured when you first start up Notes, the Sidebar has widgets for RSS feeds, Activities, Sametime, and Day-At-A-Glance. Two of these are particularly useful for any Notes user. The RSS widget lets you follow RSS feeds, and the Day-At-A-Glance widget summarizes your Notes calendar. The other built-in widgets require additional software; the Sametime widget integrates Notes with the Sametime Connect client in the Sametime instant messaging software, and the Activities widget requires the Activities server.&lt;br /&gt;&lt;br /&gt;The "free" comes into play when you activate "My Widgets" in the Sidebar. Doing so allows you to create and import useful or interesting widgets, such as Notes views, websites or additional content feeds. Best of all, they can also be widgets that you import from Google Gadgets. Yes, you can peruse the Google Gadgets catalog and bring them into your Notes desktop.&lt;br /&gt;&lt;br /&gt;That certainly opens up a world of opportunities... &lt;br /&gt;&lt;br /&gt;To get started, go into your Notes client preferences (File &gt; Preferences) and navigate to the Widgets properties. Select the checkbox option for Show Widget Toolbar and the My Widgets Sidebar Panel. Close and restart the Notes client.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SWrYE3KKxkI/AAAAAAAABAQ/AdrKwR_kCUk/s1600-h/11.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 325px;" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SWrYE3KKxkI/AAAAAAAABAQ/AdrKwR_kCUk/s400/11.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5290278290337744450" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Once done, you'll have three new widget icons in your toolbar.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SWrYbCvz7dI/AAAAAAAABAY/Xe_AVu3E2ak/s1600-h/22.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 144px; height: 154px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SWrYbCvz7dI/AAAAAAAABAY/Xe_AVu3E2ak/s400/22.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5290278671405542866" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Use the "Getting Started With Widgets.." toolbar button to open widget wizard. &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SWrZ5BrHloI/AAAAAAAABAg/k_2attxVcqI/s1600-h/33.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 395px; height: 400px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SWrZ5BrHloI/AAAAAAAABAg/k_2attxVcqI/s400/33.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5290280286025127554" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Next use the "Configure a widget from current context" to configure place of your widgets. Finish the wizard as per instructions&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SWrbKz_lTNI/AAAAAAAABAo/juIV8P5LfKE/s1600-h/44.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 361px;" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SWrbKz_lTNI/AAAAAAAABAo/juIV8P5LfKE/s400/44.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5290281691102137554" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You can see sidebar at your right window , Click "My Widgets" section to add new widgets. &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SWrcAe-GhFI/AAAAAAAABAw/o-AbGdiVLfc/s1600-h/55.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 200px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SWrcAe-GhFI/AAAAAAAABAw/o-AbGdiVLfc/s400/55.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5290282613171717202" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;When you click on "Configure a component from.." option , you can find various source to configure widget. Choose "A Google gadget" to get something cool.When you do so , you can get another dialog to choose either browse to google directory or add by url. &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SWrc5Mvj0AI/AAAAAAAABA4/g0nLSVwO2JY/s1600-h/66.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 267px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SWrc5Mvj0AI/AAAAAAAABA4/g0nLSVwO2JY/s400/66.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5290283587531427842" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I would prefer to go by directory , lets choose the same and select your gadget.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SWrdQOvWQZI/AAAAAAAABBA/nGGPZGBHk0s/s1600-h/77.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 198px;" src="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SWrdQOvWQZI/AAAAAAAABBA/nGGPZGBHk0s/s400/77.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5290283983204401554" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;After selecting your gadget , next you need to add in current context. To do so , click on "Configure a widget from current context.." button.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SWrd2U7_lWI/AAAAAAAABBI/OSXKSUWDiXw/s1600-h/99.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 273px;" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SWrd2U7_lWI/AAAAAAAABBI/OSXKSUWDiXw/s400/99.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5290284637703083362" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Once done, you can see new gadget in "My Widgets" section. Just double click and open it.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SWreOHD_E_I/AAAAAAAABBQ/pkZrHSdeCd4/s1600-h/109.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 218px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SWreOHD_E_I/AAAAAAAABBQ/pkZrHSdeCd4/s400/109.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5290285046295368690" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SWreT8_wznI/AAAAAAAABBY/lBU0JeVQDa0/s1600-h/119.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 320px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SWreT8_wznI/AAAAAAAABBY/lBU0JeVQDa0/s400/119.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5290285146672516722" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now,Notes can be your single destination for what you do and the things you manage on a daily basis. Try and see the difference.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-8570476753012041472?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/8570476753012041472/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2009/01/implement-widgets-in-lotus-notes-8.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/8570476753012041472'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/8570476753012041472'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2009/01/implement-widgets-in-lotus-notes-8.html' title='Increase productivity with  widgets add-ons'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SWrYE3KKxkI/AAAAAAAABAQ/AdrKwR_kCUk/s72-c/11.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-6008446795155335898</id><published>2009-01-08T23:46:00.000-08:00</published><updated>2009-01-09T00:02:38.932-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lotus Notes'/><title type='text'>Lotus Notes 8 tab interface</title><content type='html'>Today I was just looking at " File -&gt;Preferences " option in Notes menu and found something new which I never noticed before. Under " Windows and Themes " there is an option called "Group documents from each application on a tab" . I was not aware about this option so thought lets play around and see the difference. &lt;br /&gt;I found great result to improve your IDE behavior while designing your system.&lt;br /&gt;&lt;br /&gt;Lets see what I got&lt;br /&gt;&lt;br /&gt;When we run Lotus design elements (form, view,page or document.. etc ) in client , every time it opens in new tab. What happens when 10 or even 20 window you have opened ? It makes quite hard to navigate each window . it looks something like ,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SWcC9liOQ_I/AAAAAAAAA_w/ym16Fx4iPzw/s1600-h/11.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 53px;" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SWcC9liOQ_I/AAAAAAAAA_w/ym16Fx4iPzw/s400/11.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5289199544440865778" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;What if you wish to group application in each tabs ? Here is the option ,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SWcDsmXujFI/AAAAAAAABAA/nAKehORBIgg/s1600-h/33.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 363px;" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SWcDsmXujFI/AAAAAAAABAA/nAKehORBIgg/s400/33.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5289200352119131218" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now here is the result ,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SWcD786YlyI/AAAAAAAABAI/v_bojRqTgKU/s1600-h/44.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 149px; height: 186px;" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SWcD786YlyI/AAAAAAAABAI/v_bojRqTgKU/s400/44.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5289200615868110626" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Hope you can take advantage if you never noticed like me :D&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-6008446795155335898?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/6008446795155335898/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2009/01/lotus-notes-8-tab-interface.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/6008446795155335898'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/6008446795155335898'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2009/01/lotus-notes-8-tab-interface.html' title='Lotus Notes 8 tab interface'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SWcC9liOQ_I/AAAAAAAAA_w/ym16Fx4iPzw/s72-c/11.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-4015208781042950512</id><published>2009-01-08T22:09:00.000-08:00</published><updated>2009-01-08T22:58:20.544-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lotus Notes'/><title type='text'>Create and send document instantaneously with Lotus Symphony</title><content type='html'>Before Lotus Symphony, if you want to send some Office documents over an e-mail then you have to compose the document , save and attach it in the memo to dispatch . But, What I noticed at first glance in Symphony, just compose new word/excel/presentation document and attach it without going out or even saving :). I love it because I don't need to save each and every document in my disk before sending . have a look,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SWbryaglGoI/AAAAAAAAA_M/cU2i_th-xV8/s1600-h/1.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 179px;" src="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SWbryaglGoI/AAAAAAAAA_M/cU2i_th-xV8/s400/1.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5289174063735184002" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Even more interesting , before sending it asks "Do you want to save the document before sending", If you want to save go ahead , afterward Notes will attach the document in the new memo . If you don't want to save in the disk, just say no , still it will attach in the new memo . Only difference it will attach with ".odt" extension. if you want to go with ".doc" extension you must need to save it on the disk with preferred extension and rest Notes will do for you.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SWbs3MAos3I/AAAAAAAAA_U/zWFN9RPtJ0E/s1600-h/2.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 195px; height: 276px;" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SWbs3MAos3I/AAAAAAAAA_U/zWFN9RPtJ0E/s400/2.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5289175245254079346" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I am going to stop composing MS word or Excel :-P , Because I am not in kinda managerial job where need lots of Word or Excel functionality. Stuffs which I do , I can achieve with Symphony. Explore it , You will love it . I must say IBM should release new Lotus Script classes and methods to communicate with Symphony ( Just heard API is released), It will make our life more simpler.&lt;br /&gt;&lt;br /&gt;Here are useful urls for Symphony&lt;br /&gt;&lt;br /&gt;&lt;a href="http://symphony.lotus.com/software/lotus/symphony/help.nsf/home#"&gt;Help&lt;/a&gt;&lt;br /&gt;&lt;a href="http://symphony.lotus.com/software/lotus/symphony/gallery.nsf/home"&gt;Gallery/Templates&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-4015208781042950512?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/4015208781042950512/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2009/01/create-and-send-document.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/4015208781042950512'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/4015208781042950512'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2009/01/create-and-send-document.html' title='Create and send document instantaneously with Lotus Symphony'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SWbryaglGoI/AAAAAAAAA_M/cU2i_th-xV8/s72-c/1.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-5110282576446967448</id><published>2009-01-08T21:50:00.001-08:00</published><updated>2009-01-08T21:50:58.706-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Miscellaneous'/><title type='text'>Do you know ???</title><content type='html'>THE White House is valued at more than $308 million (S$455.6 million), making it the most expensive residence in the United States, a real estate research firm said on Thursday.&lt;br /&gt;&lt;br /&gt;It is still about $23 million less than its value a year ago, Zillow.com said in an indication that the White House has not been spared from the US home mortgage meltdown, the epicenter of the global financial crisis.&lt;br /&gt;&lt;br /&gt;Using a formula that determines a home's current estimated worth based on public data and recent sales, Zillow valued the residence of the US president at $308,058,000.&lt;br /&gt;&lt;br /&gt;It 'would make this by far the most expensive residence in the United States', the Seattle-based firm said in a statement ahead of president-elect Barack Obama's January 20 inauguration.&lt;br /&gt;&lt;br /&gt;Mr Obama takes over the sprawling presidential residence when incumbent George W. Bush officially vacates it on that day.&lt;br /&gt;&lt;br /&gt;Zillow, which estimates values for 84 million homes or more than 90 per cent of the US residential market, said it decided to put a figure for the White House just for fun.&lt;br /&gt;&lt;br /&gt;'We thought it would be fitting to provide a (estimate) value for the most famous US home of all as president-elect Obama and his family prepare to move in,' said Mr Stan Humphries, Zillow's vice-president of data and analytics.&lt;br /&gt;&lt;br /&gt;'Obviously the White House will never be for sale, but given the immense amount of public data on this home, we thought it would be fun to crunch the numbers and say, 'what if'.'&lt;br /&gt;&lt;br /&gt;The White House includes 55,000 square feet (5,109 square metres) of indoor space, 132 total rooms, 35 bathrooms, 16 bedrooms, three kitchens and 18 acres (7.3 hectares) of premium downtown Washington land.&lt;br /&gt;&lt;br /&gt;Aside from studying the home's physical characteristics to determine its value, Zillow considered the most expensive home sales in Washington in 2008, as well as other historic homes in the DC area recently for sale, and calculated the premium historic homes typically fetch.&lt;br /&gt;&lt;br /&gt;Zillow's statisticians deemed the White House 'the most historic home in America and applied a maximum historical premium to their models to determine' its current estimated value.&lt;br /&gt;&lt;br /&gt;The White House's estimated value has decreased by 7.2 per cent, or more than $23 million in the past year, the company said.&lt;br /&gt;&lt;br /&gt;However, the home's value has nearly doubled from the $167.86 million Zillow estimated it was worth in January 2001 when Mr Bush was sworn in as president.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-5110282576446967448?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/5110282576446967448/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2009/01/do-you-know.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/5110282576446967448'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/5110282576446967448'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2009/01/do-you-know.html' title='Do you know ???'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-5757814047210944857</id><published>2009-01-06T18:14:00.000-08:00</published><updated>2009-04-02T19:33:36.038-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lotus Notes'/><title type='text'>Interesting undocumented Formulas</title><content type='html'>As most of the developer notice , Lotus Notes having lots of formula and functions which are not documented in help file. Some of them we can find by some source , but who knows how many are still hidden. &lt;br /&gt;Long time back one of my Lotus admin colleague had requirement to find out number of files shared over Lotus sametime chat.Fortunately She was able to catch one guy from IBM, He was employed at IBM. He had given some java files and instruction document, which was suppose to use inside IBM only. Along with that He told , I can't assure you whether it will work for you or not . Since we don't support this tool. I tried the code with Lotus Sametime but unfortunately didn't work.&lt;br /&gt;Anyways, It was just an event which make me realize there are certain things which could be use only by IBM. Lets see some of the undocumented and rarely use formula/functions of Notes.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;@GetMembers(List; Pos [, number])&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;E.g; @GetMembers(list;1)  REM { list:= "A":"B" }&lt;br /&gt;&lt;br /&gt;It returns "A"&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;@Text(@Now; "*")&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It creates new replica ID.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;@DbBuildVersion&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Returns build number , For R8 it returns "322"&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;@LocationGetInfo ([Home Server])&lt;br /&gt;@LocationGetInfo([CatalogServer])&lt;br /&gt;@LocationGetInfo([SametimeServer])&lt;br /&gt;@LocationGetInfo([NamePreference])&lt;br /&gt;@LocationGetInfo([MailProtocol])&lt;br /&gt;@LocationGetInfo([WebRetriever])&lt;br /&gt;@LocationGetInfo([BookmarksFileName])&lt;br /&gt;@LocationGetInfo([InternetMailAddress])&lt;br /&gt;@LocationGetInfo([AreaCode])&lt;/span&gt;&lt;br /&gt;@LocationGetInfo([UNID]) &lt;br /&gt;&lt;br /&gt;All of the above provides information from the current work environment&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;NoPersist option in SetProfileField / GetProfileField:&lt;br /&gt;@SetProfileField([NoPersist];"Value to store";@Username) @ SetProfileField ([NoPersist], "Value to store"; @ UserName)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This is a neat flag used to set variables in a virtual profile document - it doesn't really exist. This is a neat flag used to set variables in a virtual profile document - it does not really exist. It's kind of like an environment variable, except instead of writing to Notes.ini, you're writing to a temporary client session cache. It's kind of like an environment variable, except instead of writing to notes.ini, you're writing to a temporary cache client session. This only works in the UI between windows in the same database for the life of the current session. This only works in the UI between windows in the same database for the life of the current session. Each database has its own NoPersist cache on the Notes client, so unlike environment variables, this will only work in the same database. Each database has its own cache NoPersist on the Notes client, so unlike environment variables, this will only work in the same database.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;@DbCommand("Domino";["LoadAddressListByIndex" | "LoadAddressListByName"];"names.nsf"; txtTargetField; strMax; [strIndex | strKey])&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;If entries in the registry are available:&lt;br /&gt;@RegQueryValue("HKEY_LOCAL_MACHINE"; "SOFTWARE\\Network Associates\\TVD\\Shared Components\\VirusScan Engine\\4.0.xx\\"; "szDatVersion") @ RegQueryValue ( "HKEY_LOCAL_MACHINE", "SOFTWARE \ \ Network Associates \ \ TVD \ \ Shared Components \ \ VirusScan Engine \ \ 4.0.xx \ \"; "szDatVersion")&lt;/span&gt;&lt;br /&gt;&lt;hr&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Undocumented LotusScript&lt;/span&gt;&lt;br /&gt;&lt;hr&gt;&lt;br /&gt;&lt;br /&gt;        &lt;span style="font-style:italic;"&gt;Dim s As New NotesSession  &lt;br /&gt; Dim db As NotesDatabase&lt;br /&gt; Set db = s.CurrentDatabase&lt;br /&gt; If (db Is Nothing) Then &lt;br /&gt;  Exit Sub &lt;br /&gt; End If &lt;br /&gt; Dim flds As Variant, x As Integer, fldList As String &lt;br /&gt; flds = db.GetFields(False)&lt;br /&gt; For x = 0 To Ubound(flds)&lt;br /&gt;  fldList = fldList + flds(x) + Chr(13)&lt;br /&gt; Next x &lt;br /&gt; Msgbox fldList, 0, db.Title + " fields" &lt;/span&gt;&lt;br /&gt;&lt;hr&gt;&lt;br /&gt;        &lt;span style="font-style:italic;"&gt;Dim s As New NotesSession&lt;br /&gt; Dim idom As String, ihost As String, win As Variant, cr As String&lt;br /&gt; cr = Chr(13)&lt;br /&gt; idom = "Internet Domain: " + s.InternetDomainName&lt;br /&gt; ihost = "Internet Host: " + s.InternetHostName&lt;br /&gt; Set win = s.GetWin32Domain&lt;br /&gt; Msgbox idom + cr + ihost + cr + "Win32 Domain: " + win.ServerName, 0, "Message"&lt;br /&gt; Call s.Close()&lt;/span&gt;&lt;br /&gt;&lt;hr&gt;&lt;br /&gt;        &lt;span style="font-style:italic;"&gt;Dim  uiw As New NotesUIWorkspace&lt;br /&gt; Call uiw.AddDatabaseToPortfolio()&lt;br /&gt; Call uiw.AddBookmark("Hello")&lt;/span&gt;&lt;br /&gt;&lt;hr&gt;&lt;br /&gt;&lt;br /&gt;@ AddBusyTime(|text; text; date) @ AddBusyTime (| text, text, date)&lt;br /&gt;@ FindFreeTime(|text; text; date; number) @ FindFreeTime (| text, text, date, number)&lt;br /&gt;@ MailConfirmPreference&lt;br /&gt;@ MailFoldersPreference&lt;br /&gt;@ LocationGetOSTZ&lt;br /&gt;@ LocationGetTZ (| variant)&lt;br /&gt;@ LocationGetTZ&lt;br /&gt;@ CharSetInfo ([character])&lt;br /&gt;@ CharSetInfo ([Encoding])&lt;br /&gt;@ CharSetInfo ([DefaultCharset])&lt;br /&gt;@ Admin Perform Action (| date, [variant])&lt;br /&gt;@ Admin Create Request (| date, [variant]) DeleteUser DeleteGroup DeleteServer&lt;br /&gt;@ URLSubmit(|number)&lt;br /&gt;@ URLSubmit&lt;br /&gt;@ NetAccount([DeleteNTUser])&lt;br /&gt;@ NetAccount([IsNetworkAdmin])&lt;br /&gt;@ FindFreeResource(|text; text; text; text; [variant]) InGMT InLocalTime&lt;br /&gt;@ DbUnreadCount(|text)&lt;br /&gt;@ OpenCalendar(|date; [variant]) Group Individual&lt;br /&gt;@ X509Certificates(|date; text; [variant])deleteX509Cert&lt;br /&gt;@ MailFilterAddToFolder (| text)&lt;br /&gt;@ AccountGetInfo(|text; text)&lt;br /&gt;@ AdminDelegateMailFile(|number; text; text; text; text; text; text; text; text; text; text; text; text; text; text; text; text)&lt;br /&gt;@ BitAnd (| [number])&lt;br /&gt;@ BitOr (| [number])&lt;br /&gt;@ BitXor (| [number])&lt;br /&gt;@ BitNot (| number)&lt;br /&gt;@ BitShift (| number; number)&lt;br /&gt;@ GetMembers (| variant; number; number)&lt;br /&gt;@ UpdateViewDesign (| text)&lt;br /&gt;@ ExpandNameList (| text, text)&lt;br /&gt;@ CRLList (| [keyword]; fieldname; at home; max return)&lt;br /&gt;IssuedBy&lt;br /&gt;ThisUpdate&lt;br /&gt;ThisNext&lt;br /&gt;RevokedDate&lt;br /&gt;RevokedSerialNumber&lt;br /&gt;@ DbAdminServer&lt;br /&gt;@ IsDbPrimaryAB&lt;br /&gt;@ IsSoftDeleteEnabled&lt;br /&gt;@ GetSoftDeleteExpireTime&lt;br /&gt;@ SetSoftDeleteExpireTime (| number)&lt;br /&gt;@ CertBlobPack (| blob item name; blob type; prefix; number)&lt;br /&gt;@ CertBlobUnpack (| blob item name; blob type; prefix; number)&lt;br /&gt;@ IsXACLEnabled&lt;br /&gt;@ Mail Stop Processing Filter&lt;br /&gt;@ CRL(|[Export]; fileName)&lt;br /&gt;@ RecoverIDFile (| [keyword]; backupfilename; recoveredfilename; Newpassword)&lt;br /&gt;@ WhichFolders&lt;br /&gt;@ ShowParentPreview&lt;br /&gt;@ ManageECL (| server: database)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-5757814047210944857?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/5757814047210944857/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2009/01/interesting-and-undocumented-formulas.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/5757814047210944857'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/5757814047210944857'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2009/01/interesting-and-undocumented-formulas.html' title='Interesting undocumented Formulas'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-7243590650886670867</id><published>2008-12-30T19:31:00.000-08:00</published><updated>2008-12-30T19:36:01.207-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Development'/><title type='text'>Speed up and beautify your web development</title><content type='html'>Whenever I need any sort of help in designing web form or css or even need to bring something hybrid, I do follow following useful articles . Hope these will helpful to others too.&lt;br /&gt;&lt;br /&gt;1- &lt;a href="http://www.smashingmagazine.com/2006/11/11/css-based-forms-modern-solutions/"&gt;CSS-Based Forms: Modern Solutions&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2- &lt;a href="http://www.smashingmagazine.com/2008/08/13/top-10-css-table-designs/"&gt;Top 10 CSS Table Designs&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;3- &lt;a href="http://www.smashingmagazine.com/2008/12/15/10-useful-techniques-to-improve-your-user-interface-designs/"&gt;10 Useful Techniques To Improve Your User Interface Designs&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;4- &lt;a href="http://www.smashingmagazine.com/2007/09/07/170-expert-ideas-from-worlds-leading-developers/"&gt;170+ Expert Ideas From World’s Leading Developers&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;5- &lt;a href="http://www.smashingmagazine.com/2006/11/15/ajax-dhtml-and-javascript-libraries/"&gt;AJAX, DHTML and JavaScript Libraries&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;6- &lt;a href="http://www.smashingmagazine.com/2007/06/20/ajax-javascript-solutions-for-professional-coding/"&gt;80+ AJAX-Solutions For Professional Coding&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;7- &lt;a href="http://www.smashingmagazine.com/2007/11/16/pagination-gallery-examples-and-good-practices/"&gt;Pagination Gallery: Examples And Good Practices&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;8- &lt;a href="http://www.smashingmagazine.com/2007/05/30/tables-and-data-grids-with-ajax-dhtml-javascript/"&gt;Data Grids with AJAX, DHTML and JavaScript&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;9- &lt;a href="http://www.smashingmagazine.com/2007/01/19/53-css-techniques-you-couldnt-live-without/"&gt;53 CSS-Techniques You Couldn’t Live Without&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;10- &lt;a href="http://www.smashingmagazine.com/2008/09/11/75-really-useful-javascript-techniques/"&gt;75 (Really) Useful JavaScript Techniques&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-7243590650886670867?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/7243590650886670867/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2008/12/speed-up-and-beautify-your-web.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/7243590650886670867'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/7243590650886670867'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2008/12/speed-up-and-beautify-your-web.html' title='Speed up and beautify your web development'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-7036029861770963570</id><published>2008-12-30T18:39:00.000-08:00</published><updated>2008-12-30T19:10:16.168-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Development'/><title type='text'>Ease your lotus web development with Mozilla Firebug</title><content type='html'>Few months back I was working in SharePoint designer and noticed it provides plenty of tools and easy way to deal with your web page structure,JS, CSS and other DOM models . You can easily identify which styles are applied, which are overridden and even structure of your inline styles. I must say people with no experience on web can develop web pages using SharePoint designer :-) . On the other hand when we do web development in Lotus Notes ( prior to R8.5 release ), I must say most of the developers either write CSS/JS in some web editor (I prefer EditPlus) or copy from some cool website using URL manipulation. I do most of the time :). Recently I had found free web tool which is quite cool as more or less like SharePoint. It's called &lt;a href="http://getfirebug.com/"&gt;Firebug&lt;/a&gt; , which can be used as a add-ons with Mozilla.You can just download it and open any website in Mozilla and  go to Tools-&gt;Firebug and Choose options.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;What can you do with Firebug ?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;1- You can inspect HTML of the page. Shown below ,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SVralAij7vI/AAAAAAAAA-s/WzPHlvUrEus/s1600-h/1.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 340px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SVralAij7vI/AAAAAAAAA-s/WzPHlvUrEus/s400/1.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5285777442007674610" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;2- You can inspect CSS or even can steal CSS from any site without doing any URL manipulation :)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SVrbozQLbUI/AAAAAAAAA-0/d759lu0Hf6E/s1600-h/2.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 327px; height: 400px;" src="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SVrbozQLbUI/AAAAAAAAA-0/d759lu0Hf6E/s400/2.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5285778606672014658" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;3- Inspect JS files &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SVrcKWDEalI/AAAAAAAAA-8/zJW_Z9uJBrs/s1600-h/3.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 394px; height: 400px;" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SVrcKWDEalI/AAAAAAAAA-8/zJW_Z9uJBrs/s400/3.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5285779182947953234" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;4- Find out which styles are overridden , DOM structure and even layout &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SVrc5bS1UOI/AAAAAAAAA_E/1tzLQBzuw7Y/s1600-h/4.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 234px; height: 400px;" src="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SVrc5bS1UOI/AAAAAAAAA_E/1tzLQBzuw7Y/s400/4.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5285779991810101474" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It makes my web development really easy without distracting much towards Microsoft tool ;-). Just visit &lt;a href="http://getfirebug.com/"&gt;Firebug&lt;/a&gt; and see what more you can do with it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-7036029861770963570?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/7036029861770963570/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2008/12/few-months-back-i-was-working-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/7036029861770963570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/7036029861770963570'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2008/12/few-months-back-i-was-working-in.html' title='Ease your lotus web development with Mozilla Firebug'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SVralAij7vI/AAAAAAAAA-s/WzPHlvUrEus/s72-c/1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-258996766917094794</id><published>2008-12-29T21:53:00.000-08:00</published><updated>2008-12-30T18:51:49.235-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Development'/><title type='text'>Moving field value to Parent-Child form and vice versa</title><content type='html'>Today I encountered something interesting, It was small but yet to gave me some challenge. In one of the web form we have Dojo text area. What we found while testing if user copy-paste some contents from MS word/excel contents get truncated or even impossible to read.Something like,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SVm6t9TWsII/AAAAAAAAA98/8O2vQ8e7xfg/s1600-h/1.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 370px;" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SVm6t9TWsII/AAAAAAAAA98/8O2vQ8e7xfg/s400/1.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5285460936408608898" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;But if you just close and re-open the document , everything looks perfect. here it is,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SVm67dL2sbI/AAAAAAAAA-E/ng9xDFziJGc/s1600-h/2.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 347px;" src="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SVm67dL2sbI/AAAAAAAAA-E/ng9xDFziJGc/s400/2.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5285461168305385906" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now what could be easy to implement solution without doing much changes from ground. What I thought lets create one button next to the existing "text Area" field say "click to paste". It will open a dialog box with another "text area" field which will allow to write or paste the contents from various sources.Once done you can click OK and dialog box's contents moved to the original text area which is in read only mode.It could be much simpler if you have just a text field or something to pass via Query String. After little mind-boggling I was able to fix this. Here are the logic. &lt;br /&gt;&lt;br /&gt;Lets assume my original text area field name is "Body_1". So, Following code is implemented on "Click to Paste" button (which is mentioned on the top) ,&lt;br /&gt;&lt;br /&gt;var childWin;&lt;br /&gt;var pData&lt;br /&gt;childWin=null;&lt;br /&gt;&lt;br /&gt;if ( document.getElementById('Body_1').value != "" ) {&lt;br /&gt;  childWin=window.open('server/db/form?OpenForm','popup','status=0,toolbar=0,scrollbars=0,resizable=0,width=500,height=145,top=500,left=550')  &lt;br /&gt;}&lt;br /&gt;else {&lt;br /&gt;&lt;br /&gt;window.open('server/db/form?OpenForm','popup','status=0,toolbar=0,scrollbars=0,resizable=0,width=500,height=145,top=500,left=550')&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Next, Lets assume our dialog box's field name is "Body". Here is the code which is written on "onLoad" event of the dialog box to retrieve parent's value , &lt;br /&gt;&lt;br /&gt;document.getElementById("Body").value = window.opener.document.getElementById("Body_1").value &lt;br /&gt;&lt;br /&gt;At the end here is the code which will set Child form's field contents to parent , &lt;br /&gt;&lt;br /&gt;var pData= document.forms[0].Body.value&lt;br /&gt;window.opener.document.getElementById('Body_1').value= pData&lt;br /&gt;window.close();&lt;br /&gt;window.opener.document.getElementById("btnPaste").value="Click to Edit"&lt;br /&gt;&lt;br /&gt;Lets see all steps in image , &lt;br /&gt;&lt;br /&gt;Step 1- When form loads , &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SVm-qonuE4I/AAAAAAAAA-M/VsL-yfIRmlg/s1600-h/3.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 151px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SVm-qonuE4I/AAAAAAAAA-M/VsL-yfIRmlg/s400/3.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5285465277363786626" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Step 2 - Clicked on "Click to paste" to paste the contents , &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SVm_MRDtlkI/AAAAAAAAA-U/UFB0Z6N_PI8/s1600-h/4.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 235px;" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SVm_MRDtlkI/AAAAAAAAA-U/UFB0Z6N_PI8/s400/4.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5285465855154296386" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;step 3 - Last step to edit the text again , &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SVm_lZ8skQI/AAAAAAAAA-c/oeDKzLTMqW8/s1600-h/5.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 208px;" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SVm_lZ8skQI/AAAAAAAAA-c/oeDKzLTMqW8/s400/5.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5285466287037518082" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Simple and easy to use , right :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-258996766917094794?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/258996766917094794/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2008/12/moving-field-value-to-parent-child-form.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/258996766917094794'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/258996766917094794'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2008/12/moving-field-value-to-parent-child-form.html' title='Moving field value to Parent-Child form and vice versa'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SVm6t9TWsII/AAAAAAAAA98/8O2vQ8e7xfg/s72-c/1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-3215317222735528372</id><published>2008-12-25T20:09:00.000-08:00</published><updated>2008-12-30T18:52:16.191-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Development'/><title type='text'>Sappy experience with @For</title><content type='html'>Few days back I had requirement to build dynamic DHTML menu based on the user's personal configuration document. Initially I thought to build everything in JS to avoid any mess up.But after getting the final specs I found , I need to build the menu based on the existing menu which is on flash.Funny thing was I don't have any knowledge about "Flash", moreover existing flash menu was horrible than my expectation.However it was quite good to see something new which I have never done. I had started looking the whole menu structure in and out and able to understand what actually they have done.Anyways, It's quite complex to explain flash menu stuffs in notes, probably will write separate blog for that. Come to the point , How @For had spoiled my few hours :-)&lt;br /&gt;&lt;br /&gt;After getting the logic I had decided to build menu using HTML LIST tag and apply mouseover effect so that it gives button kinda effect when menu generates .In few hours I finished the menu part which was getting generated quite well on the image which was actually the company logo(theme). &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SVRkay5FQbI/AAAAAAAAA9U/hOJISU2YneY/s1600-h/1.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 36px;" src="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SVRkay5FQbI/AAAAAAAAA9U/hOJISU2YneY/s400/1.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5283958674313003442" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Now my next step was to create LIST tag in loop, something like&lt;br /&gt;&lt;br /&gt;LIST START&lt;br /&gt;For (i =1 ; i &lt;@length(menu_title) ; i++)&lt;br /&gt;[&lt;LIST&gt;&lt;a href="......"&gt;menu_title[i]&lt;/a&gt;&lt;/LIST&gt;]&lt;br /&gt;LIST END&lt;br /&gt;Since I was retrieving logged in user's configuration contents  using @formula so I thought lets try formula to build the menu. I had created three fields , one to build menu contents (something like menu_title^menu_url) , second to keep only menu title and third to keep only menu url.See the snippet,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SVRnWd8iLuI/AAAAAAAAA9c/Zna68r2HSpo/s1600-h/2.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SVRnWd8iLuI/AAAAAAAAA9c/Zna68r2HSpo/s400/2.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5283961898505744098" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I was confident enough to wrap up in few minutes. Next I have designed the skeleton for my menu on the form and applied css and other logic to build the menu.Here was the final design, &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SVRo609Ix-I/AAAAAAAAA9k/XI9cjfx5d5E/s1600-h/3.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 172px;" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SVRo609Ix-I/AAAAAAAAA9k/XI9cjfx5d5E/s400/3.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5283963622669207522" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I put following formula for Computed Value&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SVRtQqqxOBI/AAAAAAAAA90/bkLKvzSeLqw/s1600-h/5.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 131px;" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SVRtQqqxOBI/AAAAAAAAA90/bkLKvzSeLqw/s400/5.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5283968395911444498" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Saved the form and boom... When I checked the output on web, found printed "1"..&lt;br /&gt;I felt really strange what I have done wrong ..Checked the code so many times but didn't find anything wrong in the code. Thanks to "Kerr" (one of the member from Lotus Site) help me to find out what silly I have done in my code.. I just forgot or missed to save the tag information in temp variable.. It should be something like , &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SVRssjqq2NI/AAAAAAAAA9s/MdXPLvM3mpI/s1600-h/4.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 111px;" src="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SVRssjqq2NI/AAAAAAAAA9s/MdXPLvM3mpI/s400/4.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5283967775556688082" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You know what when I checked the help file it was mentioned in one of the example , but I just missed the point :(&lt;br /&gt;&lt;br /&gt;Hope next time me or anyone who read this will not forget which I did :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-3215317222735528372?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/3215317222735528372/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2008/12/sappy-experience-with-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/3215317222735528372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/3215317222735528372'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2008/12/sappy-experience-with-for.html' title='Sappy experience with @For'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SVRkay5FQbI/AAAAAAAAA9U/hOJISU2YneY/s72-c/1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-628195360129990662</id><published>2008-12-25T19:36:00.000-08:00</published><updated>2008-12-30T18:52:39.384-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lotus Notes'/><title type='text'>Error Handling in LS , Better way !!</title><content type='html'>What could be the more efficient and easy way to trace your errors in Lotus script?  We often use following statements to do error handling in lotus script, &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SVRR9rKf6HI/AAAAAAAAA8k/GWAkKcifY-c/s1600-h/1.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 321px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SVRR9rKf6HI/AAAAAAAAA8k/GWAkKcifY-c/s400/1.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5283938382813063282" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This gives following results if error occurs,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SVRSUtsOfPI/AAAAAAAAA8s/3fS3saL13Fk/s1600-h/2.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 240px; height: 119px;" src="http://3.bp.blogspot.com/_T_-j3ZLqfNQ/SVRSUtsOfPI/AAAAAAAAA8s/3fS3saL13Fk/s400/2.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5283938778628390130" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;But we can use better and more descriptive way to do error handling, something like, &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SVRSi2GT_oI/AAAAAAAAA80/VzwuiBlY_ac/s1600-h/3.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 221px;" src="http://1.bp.blogspot.com/_T_-j3ZLqfNQ/SVRSi2GT_oI/AAAAAAAAA80/VzwuiBlY_ac/s400/3.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5283939021403455106" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This gives following results if error occurs, &lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SVRSwVX0PHI/AAAAAAAAA88/eAVLu5uv8Mo/s1600-h/4.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 338px; height: 169px;" src="http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SVRSwVX0PHI/AAAAAAAAA88/eAVLu5uv8Mo/s400/4.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5283939253136669810" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You can find the difference.But don't forget to include "%INCLUDE "lsconst.lss"".&lt;br /&gt;&lt;br /&gt;Even you can do more if you play around with following table ,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SVRUrXAWFbI/AAAAAAAAA9E/lrrv5CQnqIY/s1600-h/5.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 227px;" src="http://2.bp.blogspot.com/_T_-j3ZLqfNQ/SVRUrXAWFbI/AAAAAAAAA9E/lrrv5CQnqIY/s400/5.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5283941366699005362" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Pass any of the LSI_ constants from the table below to GetThreadInfo to have it return the current value of that constant.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-628195360129990662?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/628195360129990662/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2008/12/error-handling-in-ls-better-way.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/628195360129990662'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/628195360129990662'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2008/12/error-handling-in-ls-better-way.html' title='Error Handling in LS , Better way !!'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_T_-j3ZLqfNQ/SVRR9rKf6HI/AAAAAAAAA8k/GWAkKcifY-c/s72-c/1.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-4081920887239928740</id><published>2008-07-27T19:29:00.000-07:00</published><updated>2008-07-27T20:16:04.985-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lotus Notes'/><title type='text'>Data Integration in Domino - Part 1</title><content type='html'>Couple of days back one of my friend asked me about data integration methods in domino. He was quite confused to select suitable tool on real time situation.Domino provides various methods and connectors for data integration.In practical there are slight confusion between Lotus Script methods which access back-end data and Lotus connectors. Here are brief about connectors and methods which may give clear picture to beginners. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;What is Connectors ?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Connectors are the Lotus standardized data-integration interface for connecting to back-end enterprise data via predefined connection formats. Connectors provide links from Notes and Domino applications to DB2, Oracle, SAP, JD Edwards, PeopleSoft, OLE (for MS SQL Server 7), MQSeries, and ODBC data sources. Connectors are used by Domino Enterprise Connectivity Services (DECS), Lotus Enterprise Integrator (LEI), Lotus Connector LotusScript Extensions (LC LSX), and Lotus Connectors (LC) for Java.&lt;br /&gt;&lt;br /&gt;IBM has also developed connector APIs that are customized for IBM hardware and software platforms. MQSeries and CICS have connectors that work with specific tools. MQ Enterprise Integrator (MQEI) supports batch-style replication with MQSeries and CICS. MQSeries can also be accessed from LotusScript if you use the MQSeries LotusScript Extensions (MQ LSX). DB2 has its own LotusScript Extensions that work well with the DB2 connector, and IBM has published a native DB2 JDBC driver as well.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;How Connectors work ?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Connectors make multiple data formats look the same to a Domino application. Notes and Domino applications can call seven classes when using a Lotus connector to access back-end data. Here are brief of those connector methods&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;LCSession&lt;/span&gt; :: Every connection contains a session object. LCSession provides information about available connectors and associated properties and methods. LCSession also handles any errors that occur during a connection.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;LCConnection&lt;/span&gt; :: LCConnection connects and sends queries to the back-end data.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;LCFieldlist&lt;/span&gt; :: LCFieldlist creates a block of field names through an LCConnection to create a result set or to write to a back-end data source.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;LCField&lt;/span&gt; :: LCField stores the data type of a field for all values in an LCFieldList.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;LCStream&lt;/span&gt; :: LCStream is a unicode text and binary data type, including the character set of the data.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;LCNumeric&lt;/span&gt; :: The LCNumeric class contains numbers and is compatible with Domino number field formats.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;LCCurrency &lt;/span&gt;:: The LCCurrency class supports a 19-digit, four-decimal numeric data format, and is the same as the Domino currency data format.&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;LCDatetime&lt;/span&gt; :: The LCDatetime class contains date time formats and is compatible with Domino date and time field formats.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Lotus Enterprise Integrator&lt;/span&gt;&lt;br /&gt;Lotus Enterprise Integrator (LEI) is a tool sold separately by IBM that replicates between Domino and back-end sources in batch. Originally called NotesPump, it contained the real-time capabilities now present in Domino Enterprise Connectivity Services (DECS). When Domino 5 was released, DECS functionality was replicated and is now included as part of the Domino server. DECS also provided the base functionality for Domino 6 Data Connection Resources (DCRs).&lt;br /&gt;&lt;br /&gt;LEI still contains real-time tools for data integration, but is mostly purchased and used for batch-style data transfer and replication. Aside from the tools to make data integration possible, LEI also includes a data-integration UI for managing replication. LEI is also useful for replicating data between two Domino databases that are not replicas. &lt;br /&gt;&lt;br /&gt;LEI supports LotusScript integration via LEI LotusScript Extensions (LEI LSX), and supports Java functionality via Lotus Connectors for Java.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;LotusScript Data Objects&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;LotusScript Data Objects (LS:DO) uses Open Database Connectivity (ODBC) to connect directly to back-end data from a client or a server. Queries and results pass between the client and the data source via ODBC.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;LS:DO features&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A set of LotusScript Extension (LSX) files enable functionality for LS:DO. The LSX files are loaded as DLLs in the Notes client and/or Domino server program directory. LS:DO uses Open Database Connectivity (ODBC) to connect back-end data sources to LS:DO classes in a Notes or Domino application. LS:DO contains three LotusScript classes, which differ slightly from their Lotus connector class counterparts.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Lotus Connector LotusScript Extensions&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;Lotus Connector LotusScript Extensions (LC LSX) use Lotus connectors to connect to back-end data from a Notes client or a Domino server. Queries and results pass to and from the client to the data source via the Lotus Connector's LCConnection class.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Lotus Connectors for Java (LC for Java)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Lotus Connectors for Java (LC for Java) use Lotus Connectors to connect from Java applets, applications, and servlets to back-end data from a Notes client or a Domino server. Queries and results pass to and from the client to the data source via the Lotus Connector's LCConnection class&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;DECS (Domino Enterprise Connection Services)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;DECS stands for Domino Enterprise Connection Services.The purpose of DECS is to provide a Notes application with the capability to access, create, update, and delete data from an external database. The major restriction of DECS is that it's incapable of providing a Notes application with ongoing synchronization of data that has been added to or deleted from the back-end database through processes other than the Notes application.&lt;br /&gt;&lt;br /&gt;The engine for DECS is a separate server task. This process runs on a Domino server, intercepting requests for the external data and fulfilling those requests.DECS is not only a server process; it also contains a Domino database for setting up and administering the connections and retrieval of data. This database is known as the DECS Administrator database, and it's created when you install DECS.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;DCR  (Data Connection Resources)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Data Connection Resources (DCRs) are new in Domino 6. They permit DECS to be extended directly into Domino forms. There are four major areas that must be set up to implement DCRs&lt;br /&gt;&lt;br /&gt;&gt;Database properties &lt;br /&gt;&gt;Data connections (under Shared Resources)&lt;br /&gt;&gt;Form properties&lt;br /&gt;&gt;Field properties&lt;br /&gt;&lt;br /&gt;I had briefly mentioned all the methods and connectors which can be use in Domino to access back-end data.In the next blog I will write steps to implement,advantages and disadvantages for each methods.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-4081920887239928740?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/4081920887239928740/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2008/07/data-integration-in-domino-part-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/4081920887239928740'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/4081920887239928740'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2008/07/data-integration-in-domino-part-1.html' title='Data Integration in Domino - Part 1'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-3808031113934042807</id><published>2008-05-26T23:19:00.000-07:00</published><updated>2008-05-26T23:20:19.374-07:00</updated><title type='text'>Deny Access vs Full Access Administrators</title><content type='html'>I always thought that "Deny Access" was the be-all, end-all. But apparently not. If someone is listed in both the "Full Access Administrators" list and the "Deny Access" list for the server, they will still be able to access the server. The "Full Access Administrators" trumps the "Deny Access" setting.&lt;br /&gt;&lt;br /&gt;From the Administrator Help file, here's information on the Full Access Administrators field:&lt;br /&gt;&lt;br /&gt;Full access administrators&lt;br /&gt;&lt;br /&gt;Full access administrator is the highest level of administrative access to the server. The full access administrator feature replaces the need to run a Notes client locally on a server. It resolves access control problems -- for example, such as those caused when the only managers of a database ACL have left an organization.&lt;br /&gt;&lt;br /&gt;Full access administrators have the following rights:&lt;br /&gt;&lt;br /&gt;    * All the rights as listed for all administrator access levels (see above).&lt;br /&gt;    * Manager access, with all access privileges enabled, to all databases on the server, regardless of the database ACL settings.&lt;br /&gt;            Note ACL roles must still be enabled manually for full access administrators. Manager access, with all roles and access privileges enabled, to the Web Administrator database (WEBADMIN.NSF).&lt;br /&gt;  * * Access to all documents in all databases, regardless of Reader names fields.&lt;br /&gt;    * The ability to create agents that run in unrestricted mode with full administration rights.&lt;br /&gt;    * Access to any unencrypted data on the server.&lt;br /&gt;&lt;br /&gt;      Note Full access administrator does not allow access to encrypted data. The use of the specified user's private key is required to decrypt documents that are encrypted with public keys. Similarly, a secret key is required to decrypt documents encrypted with secret keys.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Obviously, you want to be careful with who is placed in that field. But when someone leaves the company, just putting them into Deny Access won't be sufficient. You have to pull them out of the Full Access Administrators field in addition to putting them in Deny Access.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-3808031113934042807?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/3808031113934042807/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2008/05/deny-access-vs-full-access.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/3808031113934042807'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/3808031113934042807'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2008/05/deny-access-vs-full-access.html' title='Deny Access vs Full Access Administrators'/><author><name>Balaji Dhananjayan</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_sHo-qT0Ahgg/SSwBF5F7zjI/AAAAAAAACxM/TRrRyGqZkks/S220/DSC02903.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-2431327259259960861</id><published>2008-02-26T01:20:00.000-08:00</published><updated>2008-02-26T01:51:17.955-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Quickplace'/><title type='text'>Page level access problem in Quickplace - Possible Solution</title><content type='html'>I always get the complaints from the user saying being a manager I can't edit the document(s) which are created by other members.I always explain  them , This is how Quickplace works.Quickplace shows "Edit" button to Author of the document or for those who are listed as "Additional Editors" section in the document.Yesterday, One of my user asked me to allow all AUTHORS and MANAGERS of the Quickplace to edit all the documents in the Quickplace.It could be only possible if you are writing your own LS code which executes manually or on schedule basis.Here was my solution , which worked fine and user got smile too :)&lt;br /&gt;&lt;br /&gt;1- Open the Quickplace in Lotus client (It will depend on your requirement which room &lt;br /&gt;   you are going to implement this solution, I assume its main.nsf)&lt;br /&gt;&lt;br /&gt;2- Write a LS agent which will take all documents handle from "h_Index" view (h_Index &lt;br /&gt;   only shows user documents)&lt;br /&gt;                           &lt;br /&gt;             &lt;span style="font-weight:bold;"&gt; Set view = db.GetView("h_Index")&lt;br /&gt;       Set entryColl=view.AllEntries &lt;/span&gt;&lt;br /&gt;(I prefer entryCollection Class , Because it gives you better performance)&lt;br /&gt;&lt;br /&gt;3- Checking whether document is "Published" or not. We need this checking because we &lt;br /&gt;   can't run the code which modify the personal draft documents.&lt;br /&gt;   You can use "h_PageCmd" field to check whether document is in draft mode or not.It &lt;br /&gt;   may contains three possible values , "h_MakeDraft" , "h_Publish" and &lt;br /&gt;   "h_MakeDraftFromPublishedVersion". &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;If doc.HasItem("h_PageCmd") And (doc.GetItemValue("h_PageCmd")(0)="h_Publish" Or doc.GetItemValue("h_PageCmd")(0)="h_MakeDraftFromPublishedVersion" )  then&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;4- Next, We have to get document's Author field handle.In my situation, I had &lt;br /&gt;  requirement to stamp all authors and managers of the main.nsf ACL.&lt;br /&gt;&lt;br /&gt;5- Use NotesACL and NotesACLentry class to make list of desire authors and managers.&lt;br /&gt;&lt;br /&gt;6- Update those Authors/Managers list to "h_Authors" fields of the document.&lt;br /&gt;&lt;br /&gt;7- Save and close the document , go to the next document handle.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-2431327259259960861?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/2431327259259960861/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2008/02/page-level-access-problem-in-quickplace.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/2431327259259960861'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/2431327259259960861'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2008/02/page-level-access-problem-in-quickplace.html' title='Page level access problem in Quickplace - Possible Solution'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-7111501537587217522</id><published>2008-02-25T05:23:00.000-08:00</published><updated>2008-02-26T00:52:26.295-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lotus Notes'/><title type='text'>"In order to do multiple transactions simultaneously,you cann't use the same db handle"</title><content type='html'>Today while working on one of the requirement my LS agent thrown the warning saying &lt;span style="font-weight:bold;"&gt;"In order to do multiple transactions simultaneously,you can't use the same db handle"&lt;/span&gt;.But, Agent execution doesn't effected.I was curious to know why it has happened, I started my agent again to reproduce the warning.I noticed, I haven't disable the view autoupdate property to false, Could be the reason ? Still I don't give assurance to myself ,What went wrong.&lt;br /&gt;Since my code was taking two different database handle , I suspect delay in releasing first database handle might cause the problem.But who knows ?????&lt;br /&gt;But, Such situation can be avoided if its coming frequently with complex code.Here is the possible solution.&lt;br /&gt;&lt;br /&gt;1- Disabled view autoupdate property.&lt;br /&gt;&lt;br /&gt;2-&lt;br /&gt;&lt;br /&gt; In the view's (Globals) section:&lt;br /&gt;&lt;br /&gt;    Option Public&lt;br /&gt;&lt;br /&gt;    Use "libSendKeys"&lt;br /&gt;&lt;br /&gt;    Declare Function GetForegroundWindow Lib "user32" () As Long&lt;br /&gt;    Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (Byval hwnd As Long, Byval lpString As String, Byval cch As Long) As Long&lt;br /&gt;    &lt;br /&gt;    Dim nt As NotesTimer&lt;br /&gt;    Dim lHwnd As Long&lt;br /&gt;    Dim lCurHwnd As Long&lt;br /&gt;    Dim sText As String * 255&lt;br /&gt;&lt;br /&gt;    Sub handler(nt As NotesTimer)&lt;br /&gt;        Dim sCurText As String * 255&lt;br /&gt;        Dim i As Integer&lt;br /&gt;        &lt;br /&gt;        lCurHwnd = GetForegroundWindow&lt;br /&gt;        If lCurHwnd &lt;&gt; lHwnd Then Exit Sub&lt;br /&gt;        i= GetWindowText(lHwnd, Byval sCurText, 255)&lt;br /&gt;        sCurText= Trim(Left$(sCurText, i))&lt;br /&gt;        If sText&lt;&gt;sCurText Then Exit Sub&lt;br /&gt;        Print Now&lt;br /&gt;        Call PushKeys("{F9}")&lt;br /&gt;    End Sub&lt;br /&gt;    &lt;br /&gt;In the view's (View) section:&lt;br /&gt;&lt;br /&gt;    Sub Postopen(Source As Notesuiview)&lt;br /&gt;        Dim i As Integer&lt;br /&gt;        &lt;br /&gt;        lHwnd = GetForegroundWindow&lt;br /&gt;        i= GetWindowText(lHwnd, Byval sText, 255)&lt;br /&gt;        sText= Trim(Left$(sText, i))&lt;br /&gt;        Print "ActiveWindow: " + sText&lt;br /&gt;        Set nt= New NotesTimer(10)&lt;br /&gt;        On Event Alarm From nt Call handler&lt;br /&gt;        nt.Enabled= True&lt;br /&gt;        Print "Enabled"&lt;br /&gt;    End Sub&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-7111501537587217522?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/7111501537587217522/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2008/02/in-order-to-do-multiple-transactions.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/7111501537587217522'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/7111501537587217522'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2008/02/in-order-to-do-multiple-transactions.html' title='&quot;In order to do multiple transactions simultaneously,you cann&apos;t use the same db handle&quot;'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-2296517171843338654</id><published>2008-01-10T00:36:00.000-08:00</published><updated>2009-01-12T22:30:31.170-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lotus Notes'/><title type='text'>Lotus Notes Replication - Tips</title><content type='html'>As I personally feel its not very easy to rectify replication problems in Lotus Notes.Moreover when it comes to Developers,It is more puzzled :).I always care few important points in replication either for database or documents level problems.Here they are :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Why are deleted documents reappearing?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;A purge interval prevents replication of deletions&lt;/span&gt;&lt;br /&gt;When a document is deleted, it leaves behind a deletion stub. When the database replicates, the deletion stub is used to identify and delete the same document in the replica. To save disk space, Notes purges deletion stubs that remain from document deletions according to the replication setting "Remove documents that have not been modified within the last [ ] days." If Notes purges the deletion stubs before they have a chance to replicate, deleted documents can reappear after the next replication.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;A document edit writes over a document deletion&lt;/span&gt;&lt;br /&gt;When the same document is modified on different servers between replication sessions, the "winning" document is the one modified most frequently, or if both are modified only once, the winner is the one modified most recently. If a document is edited multiple times on one server and deleted on another server between replication sessions, the edited document "wins" because it underwent the greatest number of changes, even if the deletion was the most recent change. If somebody deletes a document on one server and then someone else updates the document on another server once between replication sessions, the edit overrides the deletion because both documents were updated once and the edit occurred after the deletion.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Why are replicas different sizes?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Replication settings&lt;/span&gt;&lt;br /&gt;Some replication settings cause one replica to receive only a subset of documents and features from another replica.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Access control list&lt;/span&gt;&lt;br /&gt;The access control list (ACL) prevents a replica from receiving all documents or design elements from a source replica.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Read ACLs or reader names fields&lt;/span&gt;&lt;br /&gt;A destination server isn't included in a Read ACL or Reader Names field and therefore doesn't receive all documents from a source server replica.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;View indexes&lt;/span&gt;&lt;br /&gt;A view is used in one replica but not in another; the replica containing the unused view is smaller because no index is built for the unused view.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Personal agents, views, or folders&lt;/span&gt;&lt;br /&gt;These features used on one replica, but not another, can cause a size disparity between the replicas.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Deletions not replicated&lt;/span&gt;&lt;br /&gt;The replication setting "Do not receive deletions" or "Do not send deletions made in this replica to other replicas" is selected.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;Unused space&lt;/span&gt;&lt;br /&gt;One replica has been compacted while another hasn't.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Why are unexpected deletions occurring in a replica?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;You can prevent a database from receiving deletions made in other replicas by selecting the replication setting "Do not receive deletions." You can prevent a database from sending deletions by selecting the replication setting "Do not send deletions made in this replica to other replicas."&lt;br /&gt;&lt;br /&gt;Unexpected deletions may also occur for any of the following reasons:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;There is a new replication formula in place&lt;/span&gt;&lt;br /&gt;A new replication formula overrides previous formulas and removes documents that don't match the formula.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;A replication setting is automatically removing older, unmodified documents&lt;/span&gt;&lt;br /&gt;The replication setting "Remove documents not modified in the last [ ] days" removes older, unmodified documents. If the specified number of days is low, consider increasing the value. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Why aren't deletions replicating?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Servers don't have adequate access to the database&lt;/em&gt;&lt;br /&gt;To receive document deletions, the ACL on a destination server replica must give the source server Editor access or higher and have "Delete documents" selected. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;A replication setting is preventing deletions from replicating&lt;/em&gt;&lt;br /&gt;A source server doesn't send deletions to another replica if the replication setting "Do not send deletions made in this replica to other replicas" is selected. A replica doesn't receive deletions if the replication setting "Do not receive deletions" is selected.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Why can't I change which documents are replicated to my local drive?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;To change which documents are replicated to your local drive, click the replica, choose File - Replication - Settings, click the Space Savers icon, and select the options you want. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Why can't I limit the documents I receive when I replicate?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;To limit the documents you receive when you replicate, click the replica, choose File - Replication - Settings, click the Space Savers icon, and select the options you want. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Why can't I replicate?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Database-related issues&lt;/em&gt;&lt;br /&gt;No changes have been made recently. Replication only occurs when there are changes to replicate. &lt;br /&gt;&lt;br /&gt;The database is not scheduled to replicate. Check schedule replication . &lt;br /&gt;&lt;br /&gt;Replication is temporarily disabled. To enable replication, choose File - Replication - Settings, click Other, and deselect "Temporarily disable replication." &lt;br /&gt;&lt;br /&gt;The replica IDs are not the same. (Databases with different replica IDs cannot replicate.) Examine the replica ID for each database and make sure they match. If the replica IDs don't match, create a new replica and then clear the replication history on any other replicas to ensure that the next replication is a full replication. &lt;br /&gt;&lt;br /&gt;The access control list on one of the replicas may have changed since the replicas were created so that you no longer have the same access level to both replicas. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;Server-related issues&lt;/em&gt;&lt;br /&gt;A server doesn't have sufficient access in the access control list of one of the replicas. Check that the access control list for each database gives sufficient access to servers. See About server access levels and replication . &lt;br /&gt;&lt;br /&gt;The consistent access control list option is preventing replication. The message "Replication cannot proceed because cannot maintain uniform access control list on replicas," indicates that the "Enforce a consistent Access Control List" option has been set on a replica but the server storing the replica doesn't have the Manager access required to replicate the access control list. Give the server Manager access. &lt;br /&gt;&lt;br /&gt;A server doesn't have access to a directory link. If a source server uses a directory link to point to a replica, the destination server must be given access to the directory link in order to receive changes. &lt;br /&gt;&lt;br /&gt;There is a server or network problem. A variety of server conditions can prevent replication including mistakes in Connection documents, servers that are down, hardware or software problems, and so on. &lt;br /&gt;&lt;br /&gt;The destination server is out of hard disk space.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Why do I see the message "Database is not fully initialized yet"&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;A replica stub on a workstation hasn't been manually replicated&lt;/em&gt;&lt;br /&gt;If users create replica stubs on their workstations and don't populate them with documents according to a schedule, they must manually replicate to populate the replica with documents. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;The server storing the replica stub doesn't have adequate access to pull information&lt;/em&gt; &lt;br /&gt;If you rely on scheduled replication to populate a replica stub, the server storing the replica stub must have at least Reader access in the source server replica ACL to pull the documents from the source server. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;An appropriate connection record between two servers isn't in place&lt;/em&gt;&lt;br /&gt;If you rely on scheduled replication to populate a replica stub on a server with documents from a replica on another server, a correctly-configured connection record must exist between the two servers storing the replica and the replica stub. Confirm with your Notes administrator that an appropriate connection record exists. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;Replication is disabled&lt;/em&gt;&lt;br /&gt;Notes cannot populate a replica stub if replication is disabled on the source or destination server replica. To see if replication is disabled, select the database icon, choose File - Replication - Replication Settings and click the Other icon.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Why does a new replica contain the access control list of the source server when I didn't copy the access control list?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;em&gt;Somebody modified the access control list on the source server before initial replication occurred&lt;/em&gt;&lt;br /&gt;If you create a replica stub and somebody modifies the access control list (ACL) on the source server before initial replication occurs, the ACL on the source server becomes the most recent one and replicates to the replica stub. Simply opening the Access Control List dialog box on the source server replica and then closing it can cause this problem. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;The server times are out of sync&lt;/em&gt;&lt;br /&gt;If you create a complete replica immediately (rather than creating a replica stub) and the time on the source server is later than the time on the destination server, the new replica contains the ACL from the source server.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Why doesn't a replica database contain all the documents it should?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;If none of the following explanations apply, try clearing the replication history. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;Replicas are temporarily out of sync&lt;/em&gt;&lt;br /&gt;If changes made to one replica have not yet replicated, the sizes of replicas may be different until replication occurs. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;The source server has insufficient access&lt;/em&gt;&lt;br /&gt;The source server access in a destination replica ACL determines what the destination replica can receive from the source server. Give the source server higher access in the destination replica ACL if necessary. The following message in the server Notes Log (LOG.NSF) indicates insufficient server access: "Access control is set to not allow replication." &lt;br /&gt;&lt;br /&gt;&lt;em&gt;You haven't included a destination server in an access list&lt;/em&gt;&lt;br /&gt;Access lists allow only a subset of people and servers in the ACL to access documents. If such access lists exist, add the destination server to them in the source server replica. If the access list uses a role to define access, add the destination server to the role on the source server replica. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;An intermediate server has insufficient access&lt;/em&gt;&lt;br /&gt;If replication between a source and destination server occurs through an intermediate server, make sure the source and destination server replica ACLs give the intermediate server high enough access to replicate all changes. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;Replication settings are filtering documents&lt;/em&gt;&lt;br /&gt;Some replication settings acts as filters that screen out documents and features. Check the replication settings. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;The server is out of disk space&lt;/em&gt;&lt;br /&gt;Ask your Notes administrator if the server is out of disk space and if so, investigate moving a replica to another server or deleting databases on the server. &lt;br /&gt;&lt;br /&gt;&lt;em&gt;Older documents weren't replicated to a new replica&lt;/em&gt;&lt;br /&gt;When the replica was created, the date specified for the replication setting "Only replicate documents saved or modified after ( )" is later than it should have been. Create a new replica with an earlier date specified. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Why don't changes to the database title replicate?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;If the replication setting "Do not send changes in database title &amp; catalog info to other replicas" is set on the source server replica, the title won't replicate. Deselect this setting to replicate a database title. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Why isn't a replica database receiving access control list changes?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;To receive access control list (ACL) changes from a source server, the replica database on the destination server must give the source server Manager access and the source server must give the destination server at least Reader access. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Why isn't a replica database receiving design changes?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;To receive design changes from a source server, the replica database on the destination server must give the source server at least Designer access and the source server replica must give the destination server at least Reader access.&lt;br /&gt;&lt;br /&gt;Here they are. Feel free to let me know if something else you guys check in replication related problems.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;why is it that sometimes there are documents not included during replication process?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;In the Basics tab of the Database Properties box, there is a button "Replication History," which opens the window of the same name. The first time one server replica successfully replicates with a replica on another server, IBM® Lotus® Domino(TM) creates an entry in the replication history. The entry contains the name of the other server, as well as the date and time of the replication. Separate entries are created when a replica sends information and when a replica receives it. On each subsequent replication with a specific server, Domino updates the entry in the history to reflect the most recent replication.&lt;br /&gt;Domino uses the replication history to determine which documents to scan for changes during the next replication. For example, if a database successfully replicated with the HR-E/East/Acme server 24 hours ago, Domino replicates only those documents that were added, modified, or deleted in the replica on HR-E/East/Acme within the last 24 hours. &lt;br /&gt;Before replication starts between two databases, Domino checks the replication history of both databases to make sure that they agree. If they don't, Domino scans each document created or modified since the date specified in the "Only replicate incoming documents saved or modified after".&lt;br /&gt;&lt;br /&gt;If a database doesn't replicate successfully, Domino doesn't update the replication history. &lt;br /&gt;&lt;br /&gt;To resolve this ,Clear the replication history only as a last resort to solve replication problems. If you clear the history, during the next replication, Domino scans each document created or modified since the data specified in the "Only replicate incoming documents saved or modified after" setting on the Other panel of the Replication Settings dialog box. If you clear the "Only replicate incoming documents saved or modified after" setting, Domino scans all documents in the database. Scanning all these documents can be time consuming, especially over dial-up connections.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4128549255969916400-2296517171843338654?l=lotus-blogs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lotus-blogs.blogspot.com/feeds/2296517171843338654/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://lotus-blogs.blogspot.com/2008/01/lotus-notes-replication-few-common.html#comment-form' title='18 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/2296517171843338654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4128549255969916400/posts/default/2296517171843338654'/><link rel='alternate' type='text/html' href='http://lotus-blogs.blogspot.com/2008/01/lotus-notes-replication-few-common.html' title='Lotus Notes Replication - Tips'/><author><name>Rishi</name><uri>http://www.blogger.com/profile/16536022541896398201</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://2.bp.blogspot.com/_T_-j3ZLqfNQ/TIRjP_yk_-I/AAAAAAAABrY/dWZIxo1x1Uo/S220/me.PNG'/></author><thr:total>18</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4128549255969916400.post-703737169987037081</id><published>2008-01-09T23:43:00.002-08:00</published><updated>2008-01-11T02:45:14.369-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lotus Notes'/><title type='text'>Terminate Event and NotesUIDocument</title><content type='html'>Yesterday I got a mail from one of the Notes developer from Notes Forum with below contents :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;We recently upgraded our Notes environment from R5 to R7 and currently running to an issue with one of my workflow database. I have an  'Author' field which capture names, date and time when users approve/validate a request. This field stop working since when users validate requests with R7 Client..  If users approve a request with R5 Client, their names appear in the field.&lt;br /&gt;&lt;br /&gt; &lt;br /&gt;I'm using the following code in the Terminate Event of the "Author" field. When users approve a requests, the approver name, date and time supposed to be appended to this field but it's blank now. Can you please help me modifying the code?&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;Sub Terminate&lt;br /&gt;Dim workspace As New NotesUIWorkspace&lt;br /&gt;Dim session As New NotesSession&lt;br /&gt;Dim uidoc As NotesUIDocument&lt;br /&gt;Set uidoc = workspace.CurrentDocument&lt;br /&gt;&lt;br /&gt;Author = uidoc.FieldGetText ("Author")&lt;br /&gt;RevApproval_a = uidoc.FieldGetText ("RevApproval")&lt;br /&gt;&lt;br /&gt;If Author = "" Then&lt;br /&gt;   If RevApproval_a &lt;&gt; "" Then&lt;br /&gt;   Author = "Completed by " &amp; session.CommonUserName &amp; " on " &amp; Format(Now(), "Long Date")&lt;br /&gt;   Call uidoc.FieldSetText ("Author", Author)&lt;br /&gt;   Call uidoc.save&lt;br /&gt;   End If&lt;br /&gt;End If&lt;br /&gt;End Sub&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I don't have R5 client So, I was not able to test the code.But tested in R7 and it was not working (Can't check in debugger also because it doesn't work in Terminate event).When I analyze the code , I don't find anything wrong with that.In jiffy I modified the code and send back to that person , Since it was urgent request.My code was - &lt;br /&gt;&lt;br /&gt; Dim workspace As New NotesUIWorkspace&lt;br /&gt; Dim session As New NotesSession&lt;br /&gt; Dim uidoc As NotesUIDocument&lt;br /&gt; Set uidoc = workspace.CurrentDocument&lt;br /&gt; Dim doc As NotesDocument &lt;br /&gt; &lt;br /&gt; uidoc.EditMode=True&lt;br /&gt; Set doc=uidoc.Document &lt;br /&gt; &lt;br /&gt; If doc.GetItemValue("Author")(0) = "" Then&lt;br /&gt;   If doc.GetItemValue("RevApproval")(0) &lt;&gt; "" Then&lt;br /&gt;   Call doc.ReplaceItemValue("Author","Completed by " &amp; session.CommonUserName &amp; " on " &amp; Format(Now(), "Long Date"))&lt;br /&gt;   Call doc.Save(True,False)   &lt;br /&gt;  End If&lt;br /&gt; End If&lt;br /&gt;&lt;br /&gt;After replying him, I thought to analyze the code and something has instantly strikes in my mind "Will NotesUIdocument works in terminate event?" I have tested his old code in some other event and it worked as he expected.It was very small thing , But skipped from my mind :(&lt;br /&gt;&lt;br /&gt;Further more I thought to dig something more about Notes events, I found something useful for those who always skips small things , like me :)&lt;br /&gt;&lt;br /&gt;* You not use Initialize for anything except agents, and not use Terminate at all&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;* Each object has a Declarations area where you can write non-executable statements that apply to all events in the object, and an Options area for statements such as Option, Use, UseLSX, and Const. Each document and view has a Globals area where you can write non-executable statements that apply to all objects in the document.&lt;br /&gt;&lt;br /&gt;* Changes made to the 
