<?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-8284229893947571160</id><updated>2012-01-22T19:18:09.646+01:00</updated><category term='lotus'/><category term='snippets'/><category term='openntf'/><category term='NL LUG'/><category term='workaround'/><category term='planet lotus'/><category term='bug'/><category term='teamstudio'/><category term='ciao'/><category term='sorting'/><category term='quickr'/><category term='conference'/><category term='sustainability'/><category term='lotus notes'/><category term='squash'/><category term='dojo'/><category term='social networking'/><category term='ibm'/><category term='lotusscript'/><category term='web 2.0'/><category term='domino'/><category term='browser'/><category term='formula'/><category term='domino designer'/><category term='blog template'/><category term='user conference'/><category term='eclipse'/><category term='language detect'/><category term='agent'/><category term='xpages'/><category term='notes'/><category term='Lotusphere'/><title type='text'>Notes NL</title><subtitle type='html'>Notes about Lotus Notes / Domino development from the Netherlands</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://notesnl.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://notesnl.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Tom Steenbergen</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-q4o9gmJXpjw/To7fE64li9I/AAAAAAAAAoY/vujIqSTm7xc/s220/profiel_10_2011_klein.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>52</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8284229893947571160.post-4460652560922546870</id><published>2011-12-21T14:00:00.000+01:00</published><updated>2011-12-21T22:05:55.274+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='lotusscript'/><category scheme='http://www.blogger.com/atom/ns#' term='domino'/><category scheme='http://www.blogger.com/atom/ns#' term='workaround'/><title type='text'>agent.RunOnServer - cannot create automated object</title><content type='html'>The other day I had to make some changes to process an incoming html page containing client data from a paid service.&lt;br /&gt;To limit the access to this service, it can only be called from the domino servers. And is currently done&amp;nbsp; through a scheduled agent.&lt;br /&gt;But now some users also need to be able to call the service on demand. To keep the restriction of calling only from a domino server I created a lotusscript button that runs the process via an agent.RunOnServer call.&lt;br /&gt;This agent is reusing the code from the scheduled agent and does a CreateObject of the MSXML service to handle the incoming html/xml.&lt;br /&gt;It constantly failed with an error message "cannot create automated object" on the console.&lt;br /&gt;After some searching and a tip by &lt;a href="http://www.d2k.nl/domino/blog4.php"&gt;Dennis van Remortel&lt;/a&gt; I found a &lt;a href="http://www-01.ibm.com/support/docview.wss?uid=swg21088529"&gt;technote (21088529)&lt;/a&gt; through the &lt;a href="http://www-10.lotus.com/ldd/nd6forum.nsf/0/bdc9b8f2ff107a778525780e003cff20?OpenDocument"&gt;LDD forum&lt;/a&gt; that explained this error and how to work around it. It notes it affects releases 5, 6 &amp;amp; 6.5, but appearantly it is still valid for 8.5.x as well!!&lt;br /&gt;&lt;br /&gt;The workaround is to create another agent that is called from the client button with the RunOnServer method an to have this agent call the original agent with the Run method.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8284229893947571160-4460652560922546870?l=notesnl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notesnl.blogspot.com/feeds/4460652560922546870/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8284229893947571160&amp;postID=4460652560922546870&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/4460652560922546870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/4460652560922546870'/><link rel='alternate' type='text/html' href='http://notesnl.blogspot.com/2011/12/agentrunonserver-cannot-create.html' title='agent.RunOnServer - cannot create automated object'/><author><name>Tom Steenbergen</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-q4o9gmJXpjw/To7fE64li9I/AAAAAAAAAoY/vujIqSTm7xc/s220/profiel_10_2011_klein.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8284229893947571160.post-3510382832408570053</id><published>2011-11-22T20:46:00.001+01:00</published><updated>2011-11-23T15:54:42.807+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='snippets'/><category scheme='http://www.blogger.com/atom/ns#' term='openntf'/><category scheme='http://www.blogger.com/atom/ns#' term='xpages'/><title type='text'>XSnippets - do not reinvent the wheel</title><content type='html'>&lt;img border="0" src="http://1.bp.blogspot.com/-Y-74YL8r5yE/TswAG5qLBnI/AAAAAAAAAuU/gN5PqFi8OR8/s200/reinventwheel.jpg" style="float: right;" width="180" /&gt;A gem for code sharing was launched about a month ago on OpenNTF, &lt;a href="http://openntf.org/XSnippets.nsf/home.xsp"&gt;XSnippets&lt;/a&gt;. It contains small re-usable chunks of code related to Xpages.&lt;br /&gt;The UI is very simple and userfriendly and finding that codefragment you need in your next project should not be a problem. The code snippets are even colour coded.&lt;br /&gt;&lt;br /&gt;Hopefully all those great contributors of code to the Notes Domino community will gradually copy their pieces of code to this site. That would make XSnippets the place to look first and avoid reinventing the wheel.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8284229893947571160-3510382832408570053?l=notesnl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notesnl.blogspot.com/feeds/3510382832408570053/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8284229893947571160&amp;postID=3510382832408570053&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/3510382832408570053'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/3510382832408570053'/><link rel='alternate' type='text/html' href='http://notesnl.blogspot.com/2011/11/xsnippets-do-not-reinvent-wheel.html' title='XSnippets - do not reinvent the wheel'/><author><name>Tom Steenbergen</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-q4o9gmJXpjw/To7fE64li9I/AAAAAAAAAoY/vujIqSTm7xc/s220/profiel_10_2011_klein.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-Y-74YL8r5yE/TswAG5qLBnI/AAAAAAAAAuU/gN5PqFi8OR8/s72-c/reinventwheel.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8284229893947571160.post-6971842618220951149</id><published>2011-10-10T15:00:00.000+02:00</published><updated>2011-10-10T15:00:15.987+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='snippets'/><category scheme='http://www.blogger.com/atom/ns#' term='xpages'/><title type='text'>Xpages Internationalisation</title><content type='html'>Working in Europe for a multinational, providing a multi-lingual website is not an option, it is a must. So the option for internationalisation in Xpages is very welcome.&lt;br /&gt;The standard xpages localisation option (in the application properties) creates a properties file per specified language per custom control/xpage. Works great, but it does create a lot of maintenance work if things needs changing afterwards or when you add a language.&lt;br /&gt;There is another option available which is not as automated like the xpages localization, but in the long run will probably turn out to be more flexible when doing maintenance or adding an extra language. &lt;br /&gt;Here is how it works:&lt;br /&gt;&lt;br /&gt;- For every language create a properties file, a flat text file with the extension .properties and make them available to the application through the "file resources". For ease of use name these files something like english.properties, dutch.properties, etc. In the properties files add name-value pairs separated by the equals sign (=) for labels, buttons etc. in your applocation that you want translated.&lt;br /&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; login_text=Login&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; logout_text=Logout&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; menu_text=Menu&lt;/i&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ....&lt;br /&gt;&lt;br /&gt;- In a custom control that loads on every page in the application, e.g. an initialisation custom control, in the resources properties add a resource bundle, name it something like "lang" and compute the location to the desired language properties file, e.g. using the browser language setting or for testing as simple as below..&lt;br /&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/i&gt;&lt;i&gt;return "/dutch.properties";&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;- Next go through all the xpages and custom controls and change the fixed text of labels, buttons, etc. by a value from the properties file set in the resources.&lt;br /&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lang.login_text&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;- After setting all the necessary entries in the properties file for the default language, create the file resources (copy) for the other languages. To spot not translated labels in the application, you can prefix them with the target language.&lt;br /&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; login_text=[EN]Login&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; logout_text=[EN]Logout&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; menu_text=[EN]Menu&lt;/i&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ....&lt;br /&gt;&lt;br /&gt;This process is best done at the end of the development phase of a project and work with a default language until than.&lt;br /&gt;&lt;br /&gt;&lt;span style="border-collapse: separate; color: black; font-family: Tahoma; font-size: x-small; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;Used sources:&lt;br /&gt; &lt;a href="http://xpageswiki.com/web/youatnotes/wiki-xpages.nsf/dx/Work_with_views"&gt;xpages101.net&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="border-collapse: separate; color: black; font-family: Tahoma; font-size: x-small; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;a href="http://www-10.lotus.com/ldd/ddwiki.nsf/dx/UsingLocalizationOptions.htm"&gt;LND Application dvlp wiki&lt;/a&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8284229893947571160-6971842618220951149?l=notesnl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notesnl.blogspot.com/feeds/6971842618220951149/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8284229893947571160&amp;postID=6971842618220951149&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/6971842618220951149'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/6971842618220951149'/><link rel='alternate' type='text/html' href='http://notesnl.blogspot.com/2011/10/xpages-internationalisation.html' title='Xpages Internationalisation'/><author><name>Tom Steenbergen</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-q4o9gmJXpjw/To7fE64li9I/AAAAAAAAAoY/vujIqSTm7xc/s220/profiel_10_2011_klein.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8284229893947571160.post-6596307798050299374</id><published>2011-09-28T00:30:00.000+02:00</published><updated>2011-09-28T21:04:31.273+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='snippets'/><category scheme='http://www.blogger.com/atom/ns#' term='xpages'/><title type='text'>Keep view position between (x)pages</title><content type='html'>By default xpages doesnot keep the position of the view (pageno.) when going to another page. So when you go back to the view page from another page, the view will display from the first entry (and page) again. Not very userfriendly if you had just left it from page 3.&lt;br /&gt;You will have to make the view page remember its position by storing the number of the first row on the page in a scoped variable.&lt;br /&gt;In the "beforeRenderResponse" event add the following code:&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: inherit;"&gt;&lt;i&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp; var c = getComponent("viewPanel");&lt;br /&gt;&amp;nbsp;&amp;nbsp; if (c) {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; sessionScope.put("viewFirst"+view.getPageName()&lt;span class="wikiDoc"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;, c.first);&lt;br /&gt;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;"viewPanel" is the id of your view control of course.&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;And in the view control's All properties - first - add the code:&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp; var vwFirst = sessionScope.get("viewFirst"&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;span style="font-size: small;"&gt;+view.getPageName()&lt;/span&gt;&lt;/i&gt;&lt;span style="font-size: small;"&gt;&lt;i&gt;);&lt;br /&gt;&amp;nbsp;&amp;nbsp; if (vwFirst) return vwFirst;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: small;"&gt;This will also work when displaying data tables through a repeat control.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;i&gt; &lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="border-collapse: separate; color: black; font-family: Tahoma; font-size: x-small; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;Used sources:&lt;br /&gt; &lt;a href="http://xpageswiki.com/web/youatnotes/wiki-xpages.nsf/dx/Work_with_views"&gt;xpageswiki.com&amp;nbsp;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="border-collapse: separate; color: black; font-family: Tahoma; font-size: x-small; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;i&gt; &lt;/i&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/8284229893947571160-6596307798050299374?l=notesnl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notesnl.blogspot.com/feeds/6596307798050299374/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8284229893947571160&amp;postID=6596307798050299374&amp;isPopup=true' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/6596307798050299374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/6596307798050299374'/><link rel='alternate' type='text/html' href='http://notesnl.blogspot.com/2011/09/keep-view-position-between-xpages.html' title='Keep view position between (x)pages'/><author><name>Tom Steenbergen</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-q4o9gmJXpjw/To7fE64li9I/AAAAAAAAAoY/vujIqSTm7xc/s220/profiel_10_2011_klein.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8284229893947571160.post-1642098114131995059</id><published>2011-09-19T18:36:00.000+02:00</published><updated>2011-09-28T13:43:02.817+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='squash'/><category scheme='http://www.blogger.com/atom/ns#' term='lotus'/><title type='text'>LotusSquash - 29 september 2011 postponed to 27 october</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_1o8mKAcALIM/TOTuiSG5syI/AAAAAAAAAds/mZaIQotZnmY/s1600/lotussquash.gif"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5540815714316301090" src="http://1.bp.blogspot.com/_1o8mKAcALIM/TOTuiSG5syI/AAAAAAAAAds/mZaIQotZnmY/s400/lotussquash.gif" style="cursor: pointer; height: 54px; width: 400px;" /&gt;&lt;/a&gt;&lt;/div&gt;LotusSquash: playing squash with other Lotus geeks - a friendly  training session open  for players of all levels and Lotus geeks of all  levels - a quarterly event organised around the country.&lt;br /&gt;Non Lotus geeks are welcome too ;-)&lt;br /&gt;&lt;br /&gt;It is also an  alternative, nice and sporty way of  networking and chatting about IBM  Lotus stuff. Watch for updates via twitter #lotussquash.&lt;br /&gt;Let us know if you want to join via twitter or post a comment here.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Next LotusSquash:&lt;/span&gt;&lt;br /&gt;Date: thursday &lt;strike&gt;29 september&lt;/strike&gt; postponed to 27 oktober&lt;br /&gt;Time: 19:00 hrs&lt;br /&gt;&lt;span style="font-size: small;"&gt;Where: &lt;/span&gt;&lt;a href="http://squashzwolle.nl/"&gt;&lt;span style="font-family: sans-serif; font-size: small;"&gt;Squash &amp;amp; Cardiofit Centrum Zwolle&lt;/span&gt;&lt;span style="font-family: sans-serif; font-size: small;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;Address: &lt;span style="font-family: sans-serif; font-size: small;"&gt;Dobbe 69&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;, &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: sans-serif; font-size: small;"&gt;8032 JX Zwolle (NL)&lt;/span&gt;&lt;br /&gt;Organised by: &lt;a href="http://www.tooconnect.nl/"&gt;TooConnect Software Solutions&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8284229893947571160-1642098114131995059?l=notesnl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notesnl.blogspot.com/feeds/1642098114131995059/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8284229893947571160&amp;postID=1642098114131995059&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/1642098114131995059'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/1642098114131995059'/><link rel='alternate' type='text/html' href='http://notesnl.blogspot.com/2011/09/lotussquash-29-september-2011.html' title='LotusSquash - &lt;strike&gt;29 september 2011&lt;/strike&gt; postponed to 27 october'/><author><name>Tom Steenbergen</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-q4o9gmJXpjw/To7fE64li9I/AAAAAAAAAoY/vujIqSTm7xc/s220/profiel_10_2011_klein.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_1o8mKAcALIM/TOTuiSG5syI/AAAAAAAAAds/mZaIQotZnmY/s72-c/lotussquash.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8284229893947571160.post-688716759166146028</id><published>2011-09-13T20:40:00.000+02:00</published><updated>2011-11-22T21:13:06.732+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='snippets'/><category scheme='http://www.blogger.com/atom/ns#' term='xpages'/><title type='text'>Final version of DbLookupArray &amp; DbColumnArray</title><content type='html'>Time to post the final version (I think) of the DbLookupArray and DbColumnArray functions, which I started blogging about a couple of months ago.&lt;br /&gt;To date these functions only worked on the current database. So now I have added the option to also execute on another database on another server&amp;nbsp;(beware that proper authorisation is in place).&lt;br /&gt;&lt;div&gt;The server will only be used when a database name is provided. In both cases, if omitted, the current server/database is used.&lt;/div&gt;&lt;div&gt;And the final added option is to be able to request the results back in a sorted order.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;DbLookup&lt;/b&gt;&lt;br /&gt;&lt;pre style="background: #f0f0f0; border: 1px solid #CCCCCC; color: black; font-family: arial; font-size: 11px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"&gt;&lt;code style="color: black; word-wrap: normal;"&gt; /**  &lt;br /&gt;  * Returns @DbLookup results as array and allows for cache  &lt;br /&gt;  * @param server -name of the server the database is on (only used if dbname not empty, if omitted, the server of the current database is used)  &lt;br /&gt;  * @param dbname -name of the database (if omitted the current database is used)  &lt;br /&gt;  * @param cache -"cache" for using cache, empty or anything for nocache  &lt;br /&gt;  * @param unique -"unique" for returning only unique values, empty or anything for all results  &lt;br /&gt;  * @param sortit -"sort" for returning the values sorted alphabetically  &lt;br /&gt;  * @param viewname -name of the view  &lt;br /&gt;  * @param keyname -key value to use in lookup  &lt;br /&gt;  * @param field -field name in the document or column number to retrieve  &lt;br /&gt;  * @return array with requested results  &lt;br /&gt;  */  &lt;br /&gt; function DbLookupArray(server, dbname, cache, unique, sortit, viewname, keyname, field) {  &lt;br /&gt;      var cachekey = "dblookup_"+dbname+"_"+@ReplaceSubstring(viewname," ","_")+"_"+@ReplaceSubstring(keyname," ","_")+"-"+@ReplaceSubstring(field," ","_");  &lt;br /&gt;      // if cache is specified, try to retrieve the cache from the sessionscope  &lt;br /&gt;      if (cache.equalsIgnoreCase('cache')) {   &lt;br /&gt;           var result = sessionScope.get(cachekey);  &lt;br /&gt;      }  &lt;br /&gt;      // if the result is empty, no cache was available or not requested,  &lt;br /&gt;      //  do the dblookup, convert to array if not, cache it when requested  &lt;br /&gt;      if (!result) {  &lt;br /&gt;           // determine database to run against  &lt;br /&gt;           var db = "";  &lt;br /&gt;           if (!dbname.equals("")) { // if a database name is passed, build server, dbname array  &lt;br /&gt;                if (server.equals("")){  &lt;br /&gt;                     db = new Array(@DbName()[0],dbname); // no server specified, use server of current database  &lt;br /&gt;                } else {  &lt;br /&gt;                     db = new Array(server, dbname)  &lt;br /&gt;                }   &lt;br /&gt;           }  &lt;br /&gt;           var result = @DbLookup(db, viewname, keyname, field);  &lt;br /&gt;           if (result &amp;amp;&amp;amp; unique.equalsIgnoreCase("unique")) result = @Unique(result);  &lt;br /&gt;           if (result &amp;amp;&amp;amp; typeof result == "string") result = new Array(result);  &lt;br /&gt;           if (result &amp;amp;&amp;amp; sortit.equalsIgnoreCase("sort")) result.sort();  &lt;br /&gt;           if (result &amp;amp;&amp;amp; cache.equalsIgnoreCase('cache')) sessionScope.put(cachekey,result);  &lt;br /&gt;      }  &lt;br /&gt;      return result;  &lt;br /&gt; }  &lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;DbColumn&lt;/b&gt;&lt;br /&gt;&lt;pre style="background: #f0f0f0; border: 1px solid #CCCCCC; color: black; font-family: arial; font-size: 11px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"&gt;&lt;code style="color: black; word-wrap: normal;"&gt; /**  &lt;br /&gt;  * Returns @DbColumn results as array and allows for cache  &lt;br /&gt;  * @param server -name of the server the database is on (only used if dbname not empty, if omitted, the server of the current database is used)  &lt;br /&gt;  * @param dbname -name of the database (if omitted the current database is used)  &lt;br /&gt;  * @param cache -"cache" for using cache, empty or anything for nocache  &lt;br /&gt;  * @param unique -"unique" for returning only unique values, empty or anything for all results  &lt;br /&gt;  * @param sortit -"sort" for returning the values sorted alphabetically  &lt;br /&gt;  * @param viewname -name of the view   &lt;br /&gt;  * @param column -column number to retrieve  &lt;br /&gt;  * @return array with requested results  &lt;br /&gt;  */  &lt;br /&gt; function DbColumnArray(server, dbname, cache, unique, sortit, viewname, column) {  &lt;br /&gt;      var cachekey = "dbcolumn_"+dbname+"_"+@ReplaceSubstring(viewname," ","_")+"_"+@ReplaceSubstring(column," ","_");  &lt;br /&gt;      // if cache is specified, try to retrieve the cache from the sessionscope  &lt;br /&gt;      if (cache.equalsIgnoreCase('cache')) {   &lt;br /&gt;           var result = sessionScope.get(cachekey);  &lt;br /&gt;      }  &lt;br /&gt;      // if the result is empty, no cache was available or not requested,  &lt;br /&gt;      //  do the dbcolumn, convert to array if not, cache it when requested  &lt;br /&gt;      if (!result) {  &lt;br /&gt;           // determine database to run against  &lt;br /&gt;           var db = "";  &lt;br /&gt;           if (!dbname.equals("")) { // if a database name is passed, build server, dbname array  &lt;br /&gt;                if (server.equals("")){  &lt;br /&gt;                     db = new Array(@DbName()[0],dbname); // no server specified, use server of current database  &lt;br /&gt;                } else {  &lt;br /&gt;                     db = new Array(server, dbname)  &lt;br /&gt;                }   &lt;br /&gt;           }  &lt;br /&gt;           var result = @DbColumn(db, viewname, column);  &lt;br /&gt;           if (result &amp;amp;&amp;amp; unique.equalsIgnoreCase("unique")) result = @Unique(result);  &lt;br /&gt;           if (result &amp;amp;&amp;amp; typeof result == "string") result = new Array(result);  &lt;br /&gt;           if (result &amp;amp;&amp;amp; sortit.equalsIgnoreCase("sort")) result.sort();  &lt;br /&gt;           if (result &amp;amp;&amp;amp; cache.equalsIgnoreCase('cache')) sessionScope.put(cachekey,result);  &lt;br /&gt;      }       &lt;br /&gt;      return result;  &lt;br /&gt; }  &lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;Used sources:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;a href="http://xpageswiki.com/web/youatnotes/wiki-xpages.nsf/dx/Work_with_DbColumn_and_DbLookup"&gt;xpageswiki.com &lt;/a&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/8284229893947571160-688716759166146028?l=notesnl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notesnl.blogspot.com/feeds/688716759166146028/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8284229893947571160&amp;postID=688716759166146028&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/688716759166146028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/688716759166146028'/><link rel='alternate' type='text/html' href='http://notesnl.blogspot.com/2011/09/final-version-of-dblookuparray.html' title='Final version of DbLookupArray &amp; DbColumnArray'/><author><name>Tom Steenbergen</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-q4o9gmJXpjw/To7fE64li9I/AAAAAAAAAoY/vujIqSTm7xc/s220/profiel_10_2011_klein.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8284229893947571160.post-1814655604273372764</id><published>2011-08-15T12:10:00.001+02:00</published><updated>2011-08-15T12:10:02.630+02:00</updated><title type='text'>Another "repeat control" encounter - multivalue fields</title><content type='html'>Beginning of this year I reported about some problems I encountered with repeat controls getting data from @DbLookup and @DbColumn. Specifically if the returned results were a single value. These are not returned as arrays.&lt;br /&gt;The other week I encountered a similar thing while displaying a multivalue field through a repeat control. Here is the catch: although the field is declared multivalue on the Notes form, when accessing in Xpages a multivalue field containing a single value is not passed as an array. So you will have to catch it and convert to an array for use in a repeat control.&lt;br /&gt;&lt;br /&gt;Also see:&lt;br /&gt;&lt;a href="http://notesnl.blogspot.com/2011/01/xpages-and-failing-repeat-control.html"&gt;Xpages and the failing repeat control&lt;/a&gt;&lt;br /&gt;&lt;a href="http://notesnl.blogspot.com/2011/03/getting-unique-results-from-xpages_28.html"&gt;Getting unique results from xpages @dblookup and @dbcolumn&lt;/a&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8284229893947571160-1814655604273372764?l=notesnl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notesnl.blogspot.com/feeds/1814655604273372764/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8284229893947571160&amp;postID=1814655604273372764&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/1814655604273372764'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/1814655604273372764'/><link rel='alternate' type='text/html' href='http://notesnl.blogspot.com/2011/08/another-repeat-control-encounter.html' title='Another &quot;repeat control&quot; encounter - multivalue fields'/><author><name>Tom Steenbergen</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-q4o9gmJXpjw/To7fE64li9I/AAAAAAAAAoY/vujIqSTm7xc/s220/profiel_10_2011_klein.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8284229893947571160.post-8125868049446101715</id><published>2011-05-17T08:47:00.005+02:00</published><updated>2011-05-17T09:04:00.329+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='xpages'/><title type='text'>Typo in code - dbcolumn !!</title><content type='html'>Had a sametime chat yesterday via BleedYellow started by Ed x Sanford with a question about a post from end of march on &lt;a href="http://notesnl.blogspot.com/2011/03/getting-unique-results-from-xpages_28.html"&gt;dblookup and dbcolumn&lt;/a&gt; in Xpages. The cache setting is not working on the dbcolumn code, why?&lt;br /&gt;A glance at the code quickly learned that indeed the dbcolumn code would never cache.&lt;br /&gt;The problem was in the second (actual) line of code. The "not" ! should not be there.&lt;br /&gt;Thanks Ed for contacting me. The code snippets on the original blog entries have been changed accordingly.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8284229893947571160-8125868049446101715?l=notesnl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notesnl.blogspot.com/feeds/8125868049446101715/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8284229893947571160&amp;postID=8125868049446101715&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/8125868049446101715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/8125868049446101715'/><link rel='alternate' type='text/html' href='http://notesnl.blogspot.com/2011/05/typo-in-code-dbcolumn.html' title='Typo in code - dbcolumn !!'/><author><name>Tom Steenbergen</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-q4o9gmJXpjw/To7fE64li9I/AAAAAAAAAoY/vujIqSTm7xc/s220/profiel_10_2011_klein.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8284229893947571160.post-4664443473624063870</id><published>2011-04-18T12:00:00.006+02:00</published><updated>2011-04-18T12:00:13.688+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='lotus notes'/><title type='text'>Lotus Notes client SSO problem</title><content type='html'>After rebuilding my laptop end of last year for some reason the single  signon, although installed, did not work as expected and every time I  started Notes I had to key in my password. Not a big deal, but definitely annoying.&lt;br /&gt;Searching the web for clues also did not bring any anwsers.&lt;br /&gt;The  other week the old laptop was replaced by a new one. Data was copied  over from old to new machine, except for the notes.ini file which I  deliberately left out hoping it would solve the problem. Well it did not!&lt;br /&gt;&lt;br /&gt;&lt;img style="float: right; margin: 0pt 0pt 10px 10px; width: 262px; height: 273px;" src="http://3.bp.blogspot.com/-Mr4x6Rvu-GY/TavigwcOAvI/AAAAAAAAAgc/GXLL7BHPc4Q/s400/startup_bookmarks.gif" alt="" id="BLOGGER_PHOTO_ID_5596816014324925170" border="0" /&gt;At  the same time I had for some reason clicked the option to use the  workspace bookmark as homepage once too often and the client also  started up with the home tab and a workspace tab. Again not a big deal,  but annoying. And I could not figure out where that was configured.&lt;br /&gt;After  going through all the options in the preferences and all lines in the  notes.ini and no luck, I also checked all the folders in the "open list"  button (or open list "dock" sidebar). In the "more bookmarks - startup" folder I found the workspace was listed twice. Removing those would at least solve that problem!&lt;br /&gt;&lt;br /&gt;And indeed next time starting the Notes client, the extra workspace tab was no longer there. But more important, for some reason the SSO started working again as well. Yeeh!!&lt;br /&gt;&lt;br /&gt;I wonder if anyone else has encountered this nice little problem as well?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8284229893947571160-4664443473624063870?l=notesnl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notesnl.blogspot.com/feeds/4664443473624063870/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8284229893947571160&amp;postID=4664443473624063870&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/4664443473624063870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/4664443473624063870'/><link rel='alternate' type='text/html' href='http://notesnl.blogspot.com/2011/04/lotus-notes-client-sso-problem.html' title='Lotus Notes client SSO problem'/><author><name>Tom Steenbergen</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-q4o9gmJXpjw/To7fE64li9I/AAAAAAAAAoY/vujIqSTm7xc/s220/profiel_10_2011_klein.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-Mr4x6Rvu-GY/TavigwcOAvI/AAAAAAAAAgc/GXLL7BHPc4Q/s72-c/startup_bookmarks.gif' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8284229893947571160.post-943390983922019450</id><published>2011-03-28T13:10:00.001+02:00</published><updated>2011-10-06T15:26:52.974+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='snippets'/><category scheme='http://www.blogger.com/atom/ns#' term='lotus notes'/><category scheme='http://www.blogger.com/atom/ns#' term='xpages'/><title type='text'>Getting unique results from Xpages DbLookup and DbColumn functions</title><content type='html'>After using the DbColumn and DbLookup code I posted a while back I found another thing that needed solving.&lt;br /&gt;Frequently I want these functions to only return unique values. But placing @Unique around the function calls gives the empty result as &lt;a href="http://notesnl.blogspot.com/2011/01/xpages-and-failing-repeat-control.html"&gt;before for a repeat control&lt;/a&gt; if the result of the function is a single value, a string in effect.&lt;br /&gt;So I added a line of code and a parameter to the functions to be able to request unique values (see the code below).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;DbLookup&lt;/span&gt;&lt;br /&gt;The code has been moved and can be found here&lt;span style="font-weight: bold;"&gt;:&lt;/span&gt; &lt;a href="http://notesnl.blogspot.com/2011/09/final-version-of-dblookuparray.html"&gt;http://notesnl.blogspot.com/2011/09/final-version-of-dblookuparray.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;DbColumn&lt;/span&gt;&lt;br /&gt;The code has been moved and can be found here&lt;span style="font-weight: bold;"&gt;:&lt;/span&gt; &lt;a href="http://notesnl.blogspot.com/2011/09/final-version-of-dblookuparray.html"&gt;http://notesnl.blogspot.com/2011/09/final-version-of-dblookuparray.html&lt;/a&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8284229893947571160-943390983922019450?l=notesnl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notesnl.blogspot.com/feeds/943390983922019450/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8284229893947571160&amp;postID=943390983922019450&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/943390983922019450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/943390983922019450'/><link rel='alternate' type='text/html' href='http://notesnl.blogspot.com/2011/03/getting-unique-results-from-xpages_28.html' title='Getting unique results from Xpages DbLookup and DbColumn functions'/><author><name>Tom Steenbergen</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-q4o9gmJXpjw/To7fE64li9I/AAAAAAAAAoY/vujIqSTm7xc/s220/profiel_10_2011_klein.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8284229893947571160.post-6398999753314221913</id><published>2011-03-21T10:12:00.006+01:00</published><updated>2011-03-21T11:33:55.967+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='squash'/><category scheme='http://www.blogger.com/atom/ns#' term='lotus'/><title type='text'>Another Lotussquash coming up, 7 april - Apeldoorn</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_1o8mKAcALIM/TOTuiSG5syI/AAAAAAAAAds/mZaIQotZnmY/s1600/lotussquash.gif"&gt;&lt;img style="cursor: pointer; width: 400px; height: 54px;" src="http://1.bp.blogspot.com/_1o8mKAcALIM/TOTuiSG5syI/AAAAAAAAAds/mZaIQotZnmY/s400/lotussquash.gif" alt="" id="BLOGGER_PHOTO_ID_5540815714316301090" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;Last year in Q4 we picked up the Lotussquash initiative and agreed to have a Lotussquash event approximately every 3 months.&lt;br /&gt;The next Lotussquash will be on the 7th of april in Apeldoorn (NL) and is organised by &lt;a href="http://www.clearitconsulting.nl/"&gt;Clear IT Consulting&lt;/a&gt;.&lt;br /&gt;&lt;a href="http://blog.clearitconsulting.nl/"&gt;More information&lt;/a&gt; can be found on their blog.&lt;br /&gt;I hope to see you there.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8284229893947571160-6398999753314221913?l=notesnl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notesnl.blogspot.com/feeds/6398999753314221913/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8284229893947571160&amp;postID=6398999753314221913&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/6398999753314221913'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/6398999753314221913'/><link rel='alternate' type='text/html' href='http://notesnl.blogspot.com/2011/03/another-lotussquash-coming-up-7-april.html' title='Another Lotussquash coming up, 7 april - Apeldoorn'/><author><name>Tom Steenbergen</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-q4o9gmJXpjw/To7fE64li9I/AAAAAAAAAoY/vujIqSTm7xc/s220/profiel_10_2011_klein.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_1o8mKAcALIM/TOTuiSG5syI/AAAAAAAAAds/mZaIQotZnmY/s72-c/lotussquash.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8284229893947571160.post-8738884434411379744</id><published>2011-02-23T09:47:00.014+01:00</published><updated>2011-10-06T15:27:28.383+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='snippets'/><category scheme='http://www.blogger.com/atom/ns#' term='xpages'/><title type='text'>Improved caching for Xpages DbLookup and DbColumn</title><content type='html'>A while back I blogged about a failing repeat control in Xpages when passing it a single value returned from a @DbLookup or @DbColumn. In the comments to this entry it was already mentioned by some that it needs an array as input.&lt;br /&gt;The other week I received a reply from IBM on my PMR (87011,211,788) stating exactly that, "The repeat control works as designed, it needs an array as input.".&lt;br /&gt;From the earlier comments on that blogpost I had already started using the suggested solution from the &lt;a href="http://xpageswiki.com/web/youatnotes/wiki-xpages.nsf/dx/Work_with_DbColumn_and_DbLookup"&gt;xpages wiki&lt;/a&gt; by Julian Buss.&lt;br /&gt;But like in the Notes client not every situation calls for cached results, so I amended this code to allow for cache or not.  And instead of requestScope I used sessionScope as I want the cache to last until the session is ended (browser closed/session times out).&lt;br /&gt;If you want to use it, put the code below in a server side JavaScript library and you are ready to use it.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;DbLookup&lt;/span&gt;&lt;br /&gt;The code has been moved and can be found here&lt;span style="font-weight: bold;"&gt;:&lt;/span&gt; &lt;a href="http://notesnl.blogspot.com/2011/09/final-version-of-dblookuparray.html"&gt;http://notesnl.blogspot.com/2011/09/final-version-of-dblookuparray.html&lt;/a&gt;&lt;br /&gt;&lt;code style="color: black; word-wrap: normal;"&gt;&lt;/code&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;DbColumn&lt;/span&gt;&lt;br /&gt;The code has been moved and can be found here&lt;span style="font-weight: bold;"&gt;:&lt;/span&gt; &lt;a href="http://notesnl.blogspot.com/2011/09/final-version-of-dblookuparray.html"&gt;http://notesnl.blogspot.com/2011/09/final-version-of-dblookuparray.html&lt;/a&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8284229893947571160-8738884434411379744?l=notesnl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notesnl.blogspot.com/feeds/8738884434411379744/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8284229893947571160&amp;postID=8738884434411379744&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/8738884434411379744'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/8738884434411379744'/><link rel='alternate' type='text/html' href='http://notesnl.blogspot.com/2011/02/improved-caching-for-xpages-dblookup.html' title='Improved caching for Xpages DbLookup and DbColumn'/><author><name>Tom Steenbergen</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-q4o9gmJXpjw/To7fE64li9I/AAAAAAAAAoY/vujIqSTm7xc/s220/profiel_10_2011_klein.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8284229893947571160.post-7693500775633136866</id><published>2011-02-13T19:38:00.015+01:00</published><updated>2011-02-15T08:14:35.256+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lotusphere'/><title type='text'>My thoughts on Lotusphere 2011 #ls11</title><content type='html'>&lt;span style="font-weight: bold;"&gt;My fourth Lotusphere&lt;/span&gt;&lt;br /&gt;This Lotusphere is my fourth.  I had the opportunity to go in 1996, 1998, 2008 and now in 2011. This time I was together with my collegue &lt;a href="http://www.d2k.nl/domino/blog4.php"&gt;Dennis van Remortel&lt;/a&gt;.&lt;br /&gt;The overall experience and excitement of watching great content in the sessions and sharing ideas and thoughts with peers and speakers was just super again and made up for the disappointing number of announcements from IBM this year.&lt;br /&gt;I will definitely try to be back for the 2012 edition.&lt;br /&gt;&lt;br /&gt;So finally, after a couple of days back home now, after visiting our collegues of &lt;a href="http://www.interfaceflor.com/"&gt;InterfaceFLOR&lt;/a&gt; in the US, I think it is time to start writing down my thoughts.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Opening session&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;Many comments have already been made about this session which can be summarised as too much over rehearsed customer content and to little technical content and demoes. IBM clearly had very little to announce this year. The "next" releases were mentioned without a clear end date. Hopefully we will see some great announcements next year. I hope IBM realise they need to keep the pace to keep/regain the lead.&lt;br /&gt;The guest speaker, Kevin Spacey, possibly made the best impression and touching on the core of the Lotus community, "send the elevator down" to help others learn/expand their skills and knowledge&lt;br /&gt;Remarkable: Later it was announced that almost 1 in 5 attendees at the opening session had been using an iPad!!!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Students?&lt;/span&gt;&lt;br /&gt;Yes students, in the opening session 500 students were welcomed to the Lotusphere Opening day (lets hope the OGS didnot turn them off) on invitation of Group Business Software and IBM to get a glimpse of the wonderfull world of yellow. Way to go, students are the link to the future.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;IBM&lt;/span&gt;&lt;br /&gt;Not sure if it was only me, but I noticed a lot of attendees from IBM this year (blue badges). Coincidence or was it to fill up unsold seats.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Cloud&lt;/span&gt;&lt;br /&gt;This years breakout sessions and sundays jumpstart sessions had to make up for lack of news in the opening session. I chose for a mix of strategic and technical sessions. The technical sessions to see how things can be done and the strategic to see the capabilities of products like &lt;a href="http://www-01.ibm.com/software/lotus/products/sametime/unifiedtelephony/"&gt;Sametime Unified Telephony&lt;/a&gt; and &lt;a href="http://www-01.ibm.com/software/lotus/products/connections/?pgel=wspace"&gt;Connections&lt;/a&gt; and to start thinking about how my company could benefit from using these. Very nice to see the transfer of a single phone call being moved to the computer and to the mobile phone. And furthermore the integration of it all into the notes client as well IBM effort to move it all to the cloud with &lt;a href="http://www-01.ibm.com/software/lotus/online_collaboration_services/"&gt;lotuslive&lt;/a&gt;, soon even existing Notes applications.&lt;br /&gt;Highlights from the technical sessions:&lt;br /&gt;- Xpages blast - 30 very usefull tips in 60 minutes. Outstanding.&lt;br /&gt;- &lt;a href="http://www-01.ibm.com/software/lotus/products/symphony/"&gt;Symphony&lt;/a&gt; - the robust IBM, open source alternative, to MS office&lt;br /&gt;- the increasing extension of the power of mobile devices&lt;br /&gt;- xpages, xpages, xpages - build powerfull webapplications in lotus notes RAD style&lt;br /&gt;- dojo - quickly enhance the user experience&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Jeopardy&lt;/span&gt;&lt;br /&gt;The closing session was awesome. IBM presented a brief demo of the sametime setup that was put in place to ensure a smooth safety organisation at the coming Superbowl match in Fort Worth. It showes the technology is ready to support mission critical communications. The next thing was the line up of the Watson computer to play a game of &lt;a href="http://www.jeopardy.com/"&gt;Jeopardy&lt;/a&gt; against some very skilled Lotusphere attendees. No mean feat to get a computer to understand the finesses of human language, interpret the meaning and coming up with the right solution. Later in february Watson will compete with the best Jeopardy players in the US to show its capabilities. Fingers  crossed for Watson!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Energy&lt;/span&gt;&lt;br /&gt;In the four times I have been so far, even though spread over several years, each time I found I come back with lots of energy that will last for months on end and at least until the next registration period for Lotusphere comes around. I got home with lots of ideas and things to explore from the technical session I watched.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Thank you&lt;/span&gt;&lt;br /&gt;I would like to end this entry with a thank you to all the staff at IBM that work very hard at making this great event happen every year.&lt;br /&gt;And of course thank you to all the people I met at this years Lotusphere.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8284229893947571160-7693500775633136866?l=notesnl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notesnl.blogspot.com/feeds/7693500775633136866/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8284229893947571160&amp;postID=7693500775633136866&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/7693500775633136866'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/7693500775633136866'/><link rel='alternate' type='text/html' href='http://notesnl.blogspot.com/2011/02/my-thoughts-on-lotusphere-2011-ls11.html' title='My thoughts on Lotusphere 2011 #ls11'/><author><name>Tom Steenbergen</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-q4o9gmJXpjw/To7fE64li9I/AAAAAAAAAoY/vujIqSTm7xc/s220/profiel_10_2011_klein.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8284229893947571160.post-1177340766535346266</id><published>2011-01-19T11:09:00.008+01:00</published><updated>2011-01-19T13:44:45.479+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='snippets'/><category scheme='http://www.blogger.com/atom/ns#' term='xpages'/><title type='text'>Xpages - Combobox - set first choice to blank</title><content type='html'>In Xpages the combobox works different from what you are used to in the Notes form equivalent, the dialog list field.&lt;br /&gt;In Notes if you get the choices using an @DbColumn or @DbLookup, assign no default value and the user does not consciously pick a value, no value is assigned to the field.&lt;br /&gt;But when you do that with a combobox in Xpages, the first value in the list of choices will be assigned to the field.&lt;br /&gt;Usually that is not what I want, I want the user to make a conscious choice. And assigning a default value of a space does not help if that value is not in the list of choices. So you will have to add a blank value as the first option in the list of choices.&lt;br /&gt;I found 2 ways to solve this and it eliminates the need to set a default value.&lt;br /&gt;&lt;br /&gt;1. The simplest way is to add a space as the first label-value pair and for the second add the rest of the choices using @DbColumn/@DbLookup.&lt;br /&gt;&lt;br /&gt;2. Insert a blank value in the javascript code that retrieves the list of choices using @DbColumn/@DbLookup. This is probably the better method if you also want to include code to do some form of cache. See the code sample below.&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-family: arial; font-size: 12px; border: 1px solid rgb(204, 204, 204); width: 99%; height: auto; overflow: auto; background: none repeat scroll 0% 0% rgb(240, 240, 240); padding: 0px; color: rgb(0, 0, 0); text-align: left; line-height: 20px;"&gt;&lt;code style="color: rgb(0, 0, 0); word-wrap: normal;"&gt; // get the cached result if used before &lt;br /&gt;var list = sessionScope.&amp;lt;cachename&amp;gt;; &lt;br /&gt;// if no cached values found, create it &lt;br /&gt;if (!list) { &lt;br /&gt;     // create an array with 1 blank entry as first entry &lt;br /&gt;     var arr = new Array(" "); &lt;br /&gt;     var res = @DbLookup("", "&amp;lt;a view&amp;gt;", "&amp;lt;a key&amp;gt;", 2); &lt;br /&gt;     // append the retrieved values to the array  &lt;br /&gt;     var list = arr.concat(res); &lt;br /&gt;     sessionScope.&amp;lt;cachename&amp;gt; = list; &lt;br /&gt;} &lt;br /&gt;return list; &lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8284229893947571160-1177340766535346266?l=notesnl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notesnl.blogspot.com/feeds/1177340766535346266/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8284229893947571160&amp;postID=1177340766535346266&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/1177340766535346266'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/1177340766535346266'/><link rel='alternate' type='text/html' href='http://notesnl.blogspot.com/2011/01/xpages-combobox-set-first-choice-to.html' title='Xpages - Combobox - set first choice to blank'/><author><name>Tom Steenbergen</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-q4o9gmJXpjw/To7fE64li9I/AAAAAAAAAoY/vujIqSTm7xc/s220/profiel_10_2011_klein.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8284229893947571160.post-6840532086432142711</id><published>2011-01-18T09:32:00.007+01:00</published><updated>2011-01-18T12:09:54.454+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lotusphere'/><title type='text'>Lotusphere 2011 agenda app for Android</title><content type='html'>For the Android adepts it is good to know that there is also a ls11 agenda app available. Search for "lotusphere" in the market and you will find the LS11 agenda app posted by Joseph Jaquinta based on the geniisoft version.&lt;br /&gt;Dave Hay also mentions it on his &lt;a href="http://portal2portal.blogspot.com/2011/01/mobile-ls11-goodness-lotusphere-2011.html"&gt;blog.&lt;/a&gt;&lt;br /&gt;As for the mix up of names. The app is written by Jo Grant (as Dave mentions), but appearantly posted in the market by Joseph Jaquinta.&lt;br /&gt;It has a nice and simple layout and good options to filter and tag your favorite sessions.&lt;br /&gt;&lt;br /&gt;thanx Jo !!&lt;br /&gt;&lt;br /&gt;You will also find a LS11 app in the market from Sogeti, a game with a nice reward for the winner?!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8284229893947571160-6840532086432142711?l=notesnl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notesnl.blogspot.com/feeds/6840532086432142711/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8284229893947571160&amp;postID=6840532086432142711&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/6840532086432142711'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/6840532086432142711'/><link rel='alternate' type='text/html' href='http://notesnl.blogspot.com/2011/01/lotusphere-2011-aganda-app-for-android.html' title='Lotusphere 2011 agenda app for Android'/><author><name>Tom Steenbergen</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-q4o9gmJXpjw/To7fE64li9I/AAAAAAAAAoY/vujIqSTm7xc/s220/profiel_10_2011_klein.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8284229893947571160.post-438341728668461079</id><published>2011-01-06T09:13:00.010+01:00</published><updated>2011-03-28T09:08:56.085+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='domino designer'/><category scheme='http://www.blogger.com/atom/ns#' term='xpages'/><title type='text'>Xpages and the failing Repeat control</title><content type='html'>I am converting an application to Xpages and use the repeat control to build several levels of dynamic menu structures.&lt;br /&gt;They are based on simple @DbColumn and @DbLookup. But when the result array is only one entry the repeat control fails. The code below shows the failing repeat control (xp:link simplified to keep the code clean).&lt;br /&gt;&lt;span style="font-style: italic;"&gt;[Note: single results from @DbColumn or @DbLookup are returned as string and not an array.]&lt;/span&gt;&lt;br /&gt;&lt;pre style="font-family: arial; font-size: 12px; border: 1px solid rgb(204, 204, 204); width: 99%; height: auto; overflow: auto; background: none repeat scroll 0% 0% rgb(240, 240, 240); padding: 0px; color: rgb(0, 0, 0); text-align: left; line-height: 20px;"&gt;&lt;code style="color: rgb(0, 0, 0); word-wrap: normal;"&gt; &amp;lt;xp:repeat id="repeat1" rows="30" var="rowData" indexVar="rowIndex"&amp;gt; &lt;br /&gt;  &amp;lt;xp:this.value&amp;gt;&amp;lt;![CDATA[#{javascript: &lt;br /&gt;    @Unique(@DbLookup("", "xpSectionList", sessionScope.regionFilter, 2)) &lt;br /&gt;  }]]&amp;gt;&amp;lt;/xp:this.value&amp;gt; &lt;br /&gt;  &amp;lt;li&amp;gt; &lt;br /&gt;    &amp;lt;xp:link escape="true" id="linkSubSection" title="#{javascript:rowData}"&amp;gt; &lt;br /&gt;      &amp;lt;xp:this.text&amp;gt;&amp;lt;![CDATA[#{javascript:rowData}]]&amp;gt;&amp;lt;/xp:this.text&amp;gt; &lt;br /&gt;    &amp;lt;/xp:link&amp;gt; &lt;br /&gt;  &amp;lt;/li&amp;gt; &lt;br /&gt;&amp;lt;/xp:repeat&amp;gt; &lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;After some searching I found a solution in the LDD by Bob Cross, &lt;a href="http://www-10.lotus.com/ldd/nd85forum.nsf/5f27803bba85d8e285256bf10054620d/f6fd22b9a87221ea8525772e0068bdb3?"&gt;"Hint for Repeating a single value"&lt;/a&gt;.&lt;br /&gt;&lt;blockquote style="font-style: italic;"&gt;Repeat controls are great - but they MUST return an array, even if it is just one entry.&lt;br /&gt;&lt;br /&gt;In my example, I used a repeat control to display entries from a dblookup. However, some of my lookups only returned one entry, so the result was a string, not an array. Since the result of my dblookup was a string, the repeat control would not display the one returned result.&lt;br /&gt;&lt;br /&gt;The solution is to convert the result to a string first by using valueOf(). This returns a string delimited by commas. Then split the result by the commas to get an array. If split fails, then the result was an array to start with.&lt;br /&gt;&lt;br /&gt;var tmpstr = result.valueOf();&lt;br /&gt;try {&lt;br /&gt;var newarr = tmpstr.split(",");&lt;br /&gt;return(newarr)&lt;br /&gt;}&lt;br /&gt;catch(err){&lt;br /&gt;return(tmpstr);&lt;br /&gt;}&lt;/blockquote&gt;The proposed solution works fine and does solve the problem, but I consider it a workaround for a bug. The repeat control should also work when a single value is returned.&lt;br /&gt;I have filed a service request (PMR) with IBM. Please do the same if you think this should be solved!&lt;br /&gt;&lt;span style="font-style: italic;"&gt;[Note: IBM have responded to the PMR: The repeat control works as designed and expects an array as input.]&lt;/span&gt;&lt;br /&gt;The &lt;strike&gt;solution&lt;/strike&gt; workaround is implemented in the code below.&lt;br /&gt;&lt;pre style="font-family: arial; font-size: 12px; border: 1px solid rgb(204, 204, 204); width: 99%; height: auto; overflow: auto; background: none repeat scroll 0% 0% rgb(240, 240, 240); padding: 0px; color: rgb(0, 0, 0); text-align: left; line-height: 20px;"&gt;&lt;code style="color: rgb(0, 0, 0); word-wrap: normal;"&gt; &amp;lt;xp:repeat id="repeat1" rows="30" var="rowData"  indexVar="rowIndex"&amp;gt;&lt;br /&gt;&amp;lt;xp:this.value&amp;gt;&amp;lt;![CDATA[#{javascript:&lt;br /&gt;var result = @Unique(@DbLookup("", "xpSectionList", sessionScope.regionFilter, 2));&lt;br /&gt;var tmpstr = result.valueOf();&lt;br /&gt;try {&lt;br /&gt;  var newarr = tmpstr.split(",");&lt;br /&gt;  return(newarr)&lt;br /&gt;}&lt;br /&gt;catch(err){&lt;br /&gt;  return(tmpstr);&lt;br /&gt;}&lt;br /&gt;}]]&amp;gt;&amp;lt;/xp:this.value&amp;gt;&lt;br /&gt;&amp;lt;li&amp;gt;&lt;br /&gt;&amp;lt;xp:link escape="true" id="linkSection"  title="#{javascript:rowData}"&amp;gt;&lt;br /&gt;  &amp;lt;xp:this.text&amp;gt;&amp;lt;![CDATA[#{javascript:rowData}]]&amp;gt;&amp;lt;/xp:this.text&amp;gt;&lt;br /&gt;&amp;lt;/xp:link&amp;gt;&lt;br /&gt;&amp;lt;/li&amp;gt;&lt;br /&gt;&amp;lt;/xp:repeat&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8284229893947571160-438341728668461079?l=notesnl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notesnl.blogspot.com/feeds/438341728668461079/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8284229893947571160&amp;postID=438341728668461079&amp;isPopup=true' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/438341728668461079'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/438341728668461079'/><link rel='alternate' type='text/html' href='http://notesnl.blogspot.com/2011/01/xpages-and-failing-repeat-control.html' title='Xpages and the failing Repeat control'/><author><name>Tom Steenbergen</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-q4o9gmJXpjw/To7fE64li9I/AAAAAAAAAoY/vujIqSTm7xc/s220/profiel_10_2011_klein.jpg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8284229893947571160.post-2827833707547388318</id><published>2010-11-25T14:18:00.010+01:00</published><updated>2010-11-25T15:23:06.292+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='notes'/><category scheme='http://www.blogger.com/atom/ns#' term='quickr'/><title type='text'>Migrate quickr places to Notes</title><content type='html'>Although the latest version of Quickr has great improvements, we didnot see enough adoption of the tool throughout our company to justify keeping the server running at the moment.&lt;br /&gt;I will not go into the reasons for lack of adoption here.&lt;br /&gt;&lt;br /&gt;For a couple of the places we had to come up with a solution to preserve the information stored in them. We decided that a Notes 8.5.x Discussion database would be the best fit.&lt;br /&gt;&lt;br /&gt;For those that are facing the same issue I added the agent in a rich text file for download. It contains the agent I created to do this migration. It may be a bit rough around the edges, but it does the job and you can fine tune it where you like.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.d2k.nl/domino/media/blogs/blog/quickrexport.rtf"&gt;quickrexport.rtf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Note: the agent uses OpenLog, please include this library in your database or set the lines for OpenLog to comment.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8284229893947571160-2827833707547388318?l=notesnl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notesnl.blogspot.com/feeds/2827833707547388318/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8284229893947571160&amp;postID=2827833707547388318&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/2827833707547388318'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/2827833707547388318'/><link rel='alternate' type='text/html' href='http://notesnl.blogspot.com/2010/11/migrate-quickr-places-to-notes.html' title='Migrate quickr places to Notes'/><author><name>Tom Steenbergen</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-q4o9gmJXpjw/To7fE64li9I/AAAAAAAAAoY/vujIqSTm7xc/s220/profiel_10_2011_klein.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8284229893947571160.post-3485849801440265890</id><published>2010-11-18T10:11:00.008+01:00</published><updated>2010-11-18T10:37:39.944+01:00</updated><title type='text'>LotusSquash - thursday 9 december 18:00hrs</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_1o8mKAcALIM/TOTuiSG5syI/AAAAAAAAAds/mZaIQotZnmY/s1600/lotussquash.gif"&gt;&lt;img style="cursor: pointer; width: 400px; height: 54px;" src="http://1.bp.blogspot.com/_1o8mKAcALIM/TOTuiSG5syI/AAAAAAAAAds/mZaIQotZnmY/s400/lotussquash.gif" alt="" id="BLOGGER_PHOTO_ID_5540815714316301090" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;"LotusSquash". What is it? Simple, playing squash with other Lotus geeks (it  started last year via twitter by @zonderpoeha and @drenth). You can see it as a friendly training session open  for players of all levels and Lotus geeks of all levels.&lt;br /&gt;It is also an  alternative, nice and sporty way of networking and chatting about IBM  Lotus stuff. Afterwards there is the option to have a meal somewhere,  but not mandatory of course.&lt;br /&gt;From now on we aim to make it a quarterly event. Watch for updates via twitter.&lt;br /&gt;Let us know if you want to join via twitter or post a comment here.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Next LotusSquash:&lt;/span&gt;&lt;br /&gt;Date: thursday 9 december&lt;br /&gt;Time: 18:00 hrs&lt;br /&gt;Where: &lt;a href="http://www.theomeijersport.nl/"&gt;Theo Meijer Sport&lt;/a&gt;&lt;br /&gt;Address: &lt;a href="http://maps.google.nl/maps?f=q&amp;amp;source=s_q&amp;amp;hl=nl&amp;amp;geocode=&amp;amp;q=groene+zoom+1,+leusden&amp;amp;sll=52.469397,5.509644&amp;amp;sspn=4.806339,14.787598&amp;amp;ie=UTF8&amp;amp;hq=&amp;amp;hnear=Groene+Zoom+1,+Leusden,+Utrecht&amp;amp;z=16"&gt;Groene Zoom 1, 3833AW Leusden&lt;/a&gt; (NL)&lt;br /&gt;&lt;br /&gt;twitter hashtag: #lotussquash&lt;br /&gt;&lt;br /&gt;Note: @dennisvr and myself play weekly on tuesdays (at the above address) and if you like you are welcome to join us (please send a dm in advance).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8284229893947571160-3485849801440265890?l=notesnl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notesnl.blogspot.com/feeds/3485849801440265890/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8284229893947571160&amp;postID=3485849801440265890&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/3485849801440265890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/3485849801440265890'/><link rel='alternate' type='text/html' href='http://notesnl.blogspot.com/2010/11/lotussquash-thursday-9-december-1800hrs.html' title='LotusSquash - thursday 9 december 18:00hrs'/><author><name>Tom Steenbergen</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-q4o9gmJXpjw/To7fE64li9I/AAAAAAAAAoY/vujIqSTm7xc/s220/profiel_10_2011_klein.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_1o8mKAcALIM/TOTuiSG5syI/AAAAAAAAAds/mZaIQotZnmY/s72-c/lotussquash.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8284229893947571160.post-3528342697785498416</id><published>2010-09-16T13:29:00.008+02:00</published><updated>2010-09-16T13:51:57.011+02:00</updated><title type='text'>Domino Designer really as IDE (in Notes client)</title><content type='html'>I was surprised to see my Domino Designer all of a sudden integrate into my Notes client.&lt;br /&gt;Weird !!&lt;br /&gt;I guess it is time to reboot the laptop.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_1o8mKAcALIM/TJIDnFHh77I/AAAAAAAAAdQ/QtZGfcg6_L0/s1600/DomDesigner_IDE.gif"&gt;&lt;img style="cursor: pointer; width: 400px; height: 221px;" src="http://2.bp.blogspot.com/_1o8mKAcALIM/TJIDnFHh77I/AAAAAAAAAdQ/QtZGfcg6_L0/s400/DomDesigner_IDE.gif" alt="" id="BLOGGER_PHOTO_ID_5517476463405821874" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Click image for a larger view&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Version: Domino Designer 8.5.1 - 20091002.1006 (Release 8.5.1)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8284229893947571160-3528342697785498416?l=notesnl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notesnl.blogspot.com/feeds/3528342697785498416/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8284229893947571160&amp;postID=3528342697785498416&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/3528342697785498416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/3528342697785498416'/><link rel='alternate' type='text/html' href='http://notesnl.blogspot.com/2010/09/domino-designer-really-as-ide-in-notes.html' title='Domino Designer really as IDE (in Notes client)'/><author><name>Tom Steenbergen</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-q4o9gmJXpjw/To7fE64li9I/AAAAAAAAAoY/vujIqSTm7xc/s220/profiel_10_2011_klein.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_1o8mKAcALIM/TJIDnFHh77I/AAAAAAAAAdQ/QtZGfcg6_L0/s72-c/DomDesigner_IDE.gif' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8284229893947571160.post-995454905996498607</id><published>2010-02-04T14:00:00.000+01:00</published><updated>2010-02-04T14:00:02.651+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='lotus notes'/><title type='text'>SNTT: create initial ACL on database create from template</title><content type='html'>This one is in Lotus Notes for ages, so maybe you already know it.&lt;br /&gt;I had not been using it for a while, but recently re-discovered this little gem. And although not high-tech, thought I would share it.&lt;br /&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: right; cursor: pointer; width: 152px; height: 251px;" src="http://1.bp.blogspot.com/_1o8mKAcALIM/S2BOlOSiX-I/AAAAAAAAAa4/Op2FkgeEVwc/s320/ACL.gif" alt="" id="BLOGGER_PHOTO_ID_5431427552006791138" border="0" /&gt;&lt;br /&gt;When creating a Lotus Notes database (or application as it now called) from a template, the database can get a default ACL (e.g. you companies minimum required ACL entries) which is defined in the templates ACL.&lt;br /&gt;Normal ACL entries in the templates ACL are not copied over to the new database when creating a database from a template. But ACL entries marked up in square brackets are copied accross from the templates ACL to the new database ACL (e.g. [my_acl_entry] in a template ACL will get copie to the database.&lt;br /&gt;&lt;br /&gt;This screenshot shows an ACL of a template with normal access entries and special entries that are copied to a database when it is created from the template.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8284229893947571160-995454905996498607?l=notesnl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notesnl.blogspot.com/feeds/995454905996498607/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8284229893947571160&amp;postID=995454905996498607&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/995454905996498607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/995454905996498607'/><link rel='alternate' type='text/html' href='http://notesnl.blogspot.com/2010/02/sntt-create-initial-acl-on-database.html' title='SNTT: create initial ACL on database create from template'/><author><name>Tom Steenbergen</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-q4o9gmJXpjw/To7fE64li9I/AAAAAAAAAoY/vujIqSTm7xc/s220/profiel_10_2011_klein.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_1o8mKAcALIM/S2BOlOSiX-I/AAAAAAAAAa4/Op2FkgeEVwc/s72-c/ACL.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8284229893947571160.post-1696677654011499656</id><published>2010-02-01T12:17:00.006+01:00</published><updated>2010-02-01T16:04:08.248+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='domino'/><category scheme='http://www.blogger.com/atom/ns#' term='xpages'/><title type='text'>Workaround for Xpages file download control bug</title><content type='html'>Last week I posted about a bug in the Xpages File Download Control.&lt;br /&gt;See the &lt;a href="http://notesnl.blogspot.com/2010/01/xpages-bug-file-download-control-in.html"&gt;post&lt;/a&gt; from 27 januari for details.&lt;br /&gt;&lt;br /&gt;We have reported the problem through a PMR with IBM, but that unfortunately only resulted in a response that the problem is resolved in 8.5.1. and it will not be fixed in the 8.5.0 release.&lt;br /&gt;&lt;br /&gt;In the PMR response IBM did mention a possible workaround could be found in &lt;a href="http://www.jmackey.net/groupwareinc/johnblog/johnblog.nsf/d6plinks/XPages-File-Download-Control"&gt;John Mackey's&lt;/a&gt; blogpost and a response to last weeks post from Irina Kojevnikova also pointed to John Mackey's post. And as it turns out John based his code on &lt;a href="http://www-10.lotus.com/ldd/nd85forum.nsf/5f27803bba85d8e285256bf10054620d/38099b506bf791e08525759a0076565d?OpenDocument"&gt;Irina's initial solution&lt;/a&gt;.&lt;br /&gt;In that post the solution to the problem is overriding the file download code with custom code to build the old style url for downloading attachments.&lt;br /&gt;On 8.5.0 Domino the subdirectory is omitted in the file download control, so another work around would be to place replica of the database in the domino data root directory (nightmare for admins).&lt;br /&gt;&lt;br /&gt;But John and Irina's solution is cleaner.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8284229893947571160-1696677654011499656?l=notesnl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notesnl.blogspot.com/feeds/1696677654011499656/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8284229893947571160&amp;postID=1696677654011499656&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/1696677654011499656'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/1696677654011499656'/><link rel='alternate' type='text/html' href='http://notesnl.blogspot.com/2010/02/workaround-for-xpages-file-download.html' title='Workaround for Xpages file download control bug'/><author><name>Tom Steenbergen</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-q4o9gmJXpjw/To7fE64li9I/AAAAAAAAAoY/vujIqSTm7xc/s220/profiel_10_2011_klein.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8284229893947571160.post-8904326661200962225</id><published>2010-01-27T15:30:00.000+01:00</published><updated>2010-01-27T15:41:06.084+01:00</updated><title type='text'>Xpages bug: File download control in error</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_1o8mKAcALIM/S2BP1kljh8I/AAAAAAAAAbE/1xTaGUzvBtw/s1600-h/filedownload.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 268px;" src="http://4.bp.blogspot.com/_1o8mKAcALIM/S2BP1kljh8I/AAAAAAAAAbE/1xTaGUzvBtw/s320/filedownload.gif" alt="" id="BLOGGER_PHOTO_ID_5431428932381673410" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;In an application we build, there was the need for a file upload and file download control.&lt;br /&gt;Uploading works fine and the files are displayed in the file download control as you can see in the screenshot.&lt;br /&gt;And in the Notes client the uploaded files are nicely displayed as attachments.&lt;br /&gt;&lt;br /&gt;But when attempting to open the files through the file download control, the browser displays an error 500: "HTTP Server command not handled exception" and the server console displays the errors displayed below this article (1).&lt;br /&gt;&lt;br /&gt;And the standard 8.5 discussion database produces the same error.&lt;br /&gt;&lt;br /&gt;We did find a workaround (far from ideal and the admins nightmare), which is to place the database in the servers data root directory.&lt;br /&gt;Through the PMR response by IBM, I found this was already &lt;a href="http://dominoextnd.blogspot.com/2009/03/xpages-file-download-control-problems.html"&gt;blogged by Mark Hughes&lt;/a&gt; in april 2009.&lt;br /&gt;The issue is solved in 8.5.1 but that doesnot help us as we will not upgrade (for several reasons) to 8.5.1 for a while yet.&lt;br /&gt;I do not understand why it was picked up at the time to be solved in the future 8.5.1 and not fixed in the live release 8.5.&lt;br /&gt;&lt;br /&gt;Software versions:&lt;br /&gt;- DDE 8.5.1 on Windows XP Pro&lt;br /&gt;- Domino server 8.5 FP1 on Windows 2003 server&lt;br /&gt;&lt;br /&gt;(1) Domino server log errors:&lt;br /&gt;&lt;span style="font-size:78%;"&gt;HTTP JVM: SEVERE: CLFAD####E: Exception thrown&lt;br /&gt;HTTP JVM: SEVERE: CLFAD####E: Exception occurred servicing request for: /development/uitzendkrachten.nsf/xsp/.ibmmodres/domino/OpenAttachment/Uitzendkrachten.nsf/849E2F5A666919A1C12576B600487E9A/Body/program1.JPG - HTTP Code: 500&lt;br /&gt;HTTP Web Server: Command Not Handled Exception [/development/uitzendkrachten.nsf/xsp/.ibmmodres/domino/OpenAttachment/Uitzendkrachten.nsf/849E2F5A666919A1C12576B600487E9A/Body/program1.JPG]&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8284229893947571160-8904326661200962225?l=notesnl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notesnl.blogspot.com/feeds/8904326661200962225/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8284229893947571160&amp;postID=8904326661200962225&amp;isPopup=true' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/8904326661200962225'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/8904326661200962225'/><link rel='alternate' type='text/html' href='http://notesnl.blogspot.com/2010/01/xpages-bug-file-download-control-in.html' title='Xpages bug: File download control in error'/><author><name>Tom Steenbergen</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-q4o9gmJXpjw/To7fE64li9I/AAAAAAAAAoY/vujIqSTm7xc/s220/profiel_10_2011_klein.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_1o8mKAcALIM/S2BP1kljh8I/AAAAAAAAAbE/1xTaGUzvBtw/s72-c/filedownload.gif' height='72' width='72'/><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8284229893947571160.post-4717951190679114896</id><published>2010-01-25T12:00:00.000+01:00</published><updated>2010-01-25T12:00:05.970+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Lotusphere'/><title type='text'>Disappointed by the lack of official webcast of Lotusphere 2010 OGS</title><content type='html'>As I was not able to attend this years Lotusphere, I am relying on IBM to post a webcast of the Lotusphere 2010 - Opening General Session to hear about all the great stuff.&lt;br /&gt;Obviously I was relying a bit on IBM's previous LS habits to post this webcast during Lotusphere itself. Or at least that is how it was in my mind.&lt;br /&gt;Does anyone have an idea when or -if- it will be made available for us poor souls who where not able to attend?&lt;br /&gt;&lt;br /&gt;Of course there has been a great coverage on the many blogs around the world already and even the live-blogging was great, but still it does not beat watching the real thing (even it is not live but a webcast).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8284229893947571160-4717951190679114896?l=notesnl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notesnl.blogspot.com/feeds/4717951190679114896/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8284229893947571160&amp;postID=4717951190679114896&amp;isPopup=true' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/4717951190679114896'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/4717951190679114896'/><link rel='alternate' type='text/html' href='http://notesnl.blogspot.com/2010/01/disappointed-by-lack-of-official.html' title='Disappointed by the lack of official webcast of Lotusphere 2010 OGS'/><author><name>Tom Steenbergen</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-q4o9gmJXpjw/To7fE64li9I/AAAAAAAAAoY/vujIqSTm7xc/s220/profiel_10_2011_klein.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8284229893947571160.post-5472968460484368894</id><published>2009-11-12T12:53:00.001+01:00</published><updated>2009-11-12T13:44:49.036+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='notes'/><category scheme='http://www.blogger.com/atom/ns#' term='lotusscript'/><category scheme='http://www.blogger.com/atom/ns#' term='lotus'/><title type='text'>NotesStream to the test</title><content type='html'>At the &lt;a href="http://www.nllug.nl/"&gt;NL LUG 2009&lt;/a&gt; &lt;a href="http://www.mschaefer.nl/blog"&gt;Martin Scheafer&lt;/a&gt; improvised during his shortened session &lt;a href="http://lotus.zonderpoeha.nl/blog/2009-11/slides-en-demo-database-domino-globetrottingdev-talk-sessie-nllug"&gt;Domino Globetrotting/Dev talk&lt;/a&gt;. Due to customer regulations he could not show all he had planned to show.&lt;br /&gt;&lt;br /&gt;And so he did a couple of side steps into @function and lotusscript coding. NotesStream was mentioned as a performance booster when building (long) strings e.g. in webagents when building return data for a webservice. During execution of demo code the difference between concatening a string using &lt;string&gt;&lt;string&gt;&lt;newstring&gt;[string = string + extrastring] and the same code but now using NotesStream to build the return string, concatenating was a factor 4 to 5 slower than NotesStream.&lt;br /&gt;I immediately saw an opportunity to improve the performance of the several agents we have running every day to transport product and other data from Notes to our Websphere Commerce servers via xml files. Some of them deliver a xml file of over 100mb.&lt;br /&gt;So I put it to the test running 4 agents delivering the same result and each of them differing slightly in how the data is written.&lt;/newstring&gt;&lt;/string&gt;&lt;/string&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;agent builds string (concatenate) to 65000+ bytes and than writes to file.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;agent builds string (concatenate) per record and writes to file per record.&lt;/li&gt;&lt;li&gt;agent write to file directly, line by line.&lt;/li&gt;&lt;li&gt;agent writes to file line by line using NotesStream.&lt;/li&gt;&lt;/ol&gt;The first 3 agents write to file via LS print, agent 4 using NotesStream.&lt;br /&gt;&lt;br /&gt;The output build has the following structure per record:&lt;br /&gt;&amp;lt;persoon&amp;gt;&lt;br /&gt;&amp;lt;voornaam&amp;gt;Jan&amp;lt;/voornaam&amp;gt;&lt;br /&gt;&amp;lt;achternaam&amp;gt;Jansen&amp;lt;/achternaam&amp;gt;&lt;br /&gt;&amp;lt;woonplaats&amp;gt;Scherpenzeel&amp;lt;/woonplaats&amp;gt;&lt;br /&gt;&amp;lt;persoon&amp;gt;&lt;br /&gt;&lt;br /&gt;The results in performance are listed below:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Concatenated string test (concat string to 65000+ bytes before  write).&lt;br /&gt;[Elapsed time: 296 seconds] [processed 123838 records]&lt;/li&gt;&lt;li&gt;Concatenated string test (concat/write per record).&lt;br /&gt;[Elapsed time:  163 seconds] [processed 123838 records]&lt;/li&gt;&lt;li&gt;Direct print to file test.&lt;br /&gt;[Elapsed time: 169 seconds] [processed 123838 records]&lt;/li&gt;&lt;li&gt;NotesStream  string test.&lt;br /&gt;[Elapsed time: 170 seconds] [processed 123838 records]&lt;/li&gt;&lt;/ol&gt;Conclusion is, NotesStream is indeed faster, but only when building large strings. The agent (1.) that concatenates strings up to 65000 bytes proves this. When keeping the strings limited in size, agents 2, 3 &amp;amp; 4, NotesStream performs equal to the other string methods.&lt;br /&gt;And as Martin mentioned in his session, NotesStream is certainly helpful in webagents that build return xml's on request.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8284229893947571160-5472968460484368894?l=notesnl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notesnl.blogspot.com/feeds/5472968460484368894/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8284229893947571160&amp;postID=5472968460484368894&amp;isPopup=true' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/5472968460484368894'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/5472968460484368894'/><link rel='alternate' type='text/html' href='http://notesnl.blogspot.com/2009/11/notesstream-to-test.html' title='NotesStream to the test'/><author><name>Tom Steenbergen</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-q4o9gmJXpjw/To7fE64li9I/AAAAAAAAAoY/vujIqSTm7xc/s220/profiel_10_2011_klein.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8284229893947571160.post-2267991429631560587</id><published>2009-11-02T18:48:00.010+01:00</published><updated>2011-02-23T13:52:33.956+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='user conference'/><category scheme='http://www.blogger.com/atom/ns#' term='NL LUG'/><category scheme='http://www.blogger.com/atom/ns#' term='lotus'/><title type='text'>NLLUG conference will see next edition in 2010</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.lug2009.nl/home/worksmarter.nsf/LUG2009-175x70.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px; height: 102px;" src="http://www.lug2009.nl/home/worksmarter.nsf/LUG2009-175x70.jpg" alt="" border="0" /&gt;&lt;/a&gt;Last thursday and friday I spent my time at the Amsterdam RAI for the &lt;a href="http://www.nllug.nl/"&gt;NLLUG&lt;/a&gt; conference. The first multiday conference in the history of the &lt;a href="http://www.snug.nl/"&gt;SNUG&lt;/a&gt; (Dutch Lotus  software user group).&lt;br /&gt;Over 300 visitors, 25 business partners, 37 speakers and 39 sessions in 3 parallel tracks (and on friday even a fourth track) have made it a succesfull conference.&lt;br /&gt;As always the sessions were of great quality, enabling everyone to go away with new knowledge and ideas.&lt;br /&gt;I loved &lt;a href="http://www.lotusrockstar.com/blog/robblog.nsf"&gt;Rob Novak's&lt;/a&gt; session in which he presented &lt;a href="http://www.snapps.com/snaweb.nsf"&gt;SNAPPS'&lt;/a&gt; &lt;a href="http://download.snapps.com/QuickPlace/demoplace/Main.nsf/h_23BDA78AFC768D3B8625753E0066192B/5B087D4B057910D08625754700664F57/?OpenDocument"&gt;MyDomino&lt;/a&gt; application whilst the audience was enjoying a beer, great format!! And awesome application!!&lt;br /&gt;Ok it was Heineken, but you cannot blame him for that ;-), next time &lt;a href="http://www.latrappe.nl/content.asp?m=M7&amp;amp;s=P16&amp;amp;l=NL"&gt;LaTrappe Blond&lt;/a&gt; Rob ?.&lt;br /&gt;&lt;br /&gt;To continue the success, the dates for the NLLUG 2010 have already been set to the 17th/18th of june. So, mark these dates in your calendar.&lt;br /&gt;&lt;br /&gt;During the NLLUG, 25 IBM Lotus business partners (together with IBM) have launched the "&lt;a href="http://www.lotuslovespeople.nl/"&gt;Lotus loves people&lt;/a&gt;" initiative to give the Lotus brand &lt;a href="http://www.channelweb.nl/nieuws.jsp?id=3136885&amp;amp;utm_campaign=rss&amp;amp;utm_source=rss&amp;amp;utm_medium=rss"&gt;more attention&lt;/a&gt; (advertising ?) in the Dutch market.&lt;br /&gt;&lt;br /&gt;SNUG team (Marnix Kemme &amp;amp; others), thank you very much for your hard work in putting together this great event.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8284229893947571160-2267991429631560587?l=notesnl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notesnl.blogspot.com/feeds/2267991429631560587/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8284229893947571160&amp;postID=2267991429631560587&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/2267991429631560587'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/2267991429631560587'/><link rel='alternate' type='text/html' href='http://notesnl.blogspot.com/2009/11/nllug-will-continue-in-2010.html' title='NLLUG conference will see next edition in 2010'/><author><name>Tom Steenbergen</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-q4o9gmJXpjw/To7fE64li9I/AAAAAAAAAoY/vujIqSTm7xc/s220/profiel_10_2011_klein.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8284229893947571160.post-7923542903912255996</id><published>2009-10-14T15:22:00.002+02:00</published><updated>2009-10-14T16:07:59.759+02:00</updated><title type='text'>ND 8.5.1. install - third time right</title><content type='html'>After experiencing the slow 8.5. DDE I wanted to upgrade to DDE 8.5.1. (and the client of course)  asap after the official release.&lt;br /&gt;And yes, as you can guess for the title of this post I ran into some trouble. The first time I installed 8.5.1., as I was used to from the past, over the 8.5 installation.&lt;br /&gt;After the install finished I enthousiastically double clicked the Client icon, but to my suprise after the 8.5 splash image disappeared nothing seemed to happen for a while. Until well after  10 minutes, the client window appeared. I eagerly clicked on to the DDE, but no results.&lt;br /&gt;Found on Planet Lotus some hints to first uninstalling the old client before installing the new one. Did that, but still no fast opening client. In fact  still over 10 minutes before the client opened and no results on the DDE.&lt;br /&gt;&lt;br /&gt;As a last resort, I removed the installed 8.5.1. clients again, did a cleanup of the registry, rebooted the pc and reinstalled again.&lt;br /&gt;After successfull install, rebooted the pc (better safe than sorry) and clicked the client icon again.&lt;br /&gt;And again *sigh* it took over 10 minutes before the client loaded. This time though I had the fortune to be away from my desk to fetch the collegues some coffee.&lt;br /&gt;And when I came back to my pc, a dialog was hovering over the 8.5.1. client with a message: "Client Setup completed, click ok to restart". This dialog probably also displayed on the previous 2 attempts, but was probably hidden behind active windows.&lt;br /&gt;&lt;br /&gt;Now the client  opens just fine, as does the 8.5.1 DDE. And lightning fast compared to the 8.5 version.&lt;br /&gt;So beware if the client opens slowly the first time after the install and wait for that dialog setup complete message.&lt;br /&gt;From the comments on various blogs, it appear I ma no alone in my experience and IBM should at least hint to a slow first startup on the install screens/instructions to avoid this confusion.&lt;br /&gt;&lt;br /&gt;Good luck with your installs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8284229893947571160-7923542903912255996?l=notesnl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notesnl.blogspot.com/feeds/7923542903912255996/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8284229893947571160&amp;postID=7923542903912255996&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/7923542903912255996'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/7923542903912255996'/><link rel='alternate' type='text/html' href='http://notesnl.blogspot.com/2009/10/nd-851-install-third-time-right.html' title='ND 8.5.1. install - third time right'/><author><name>Tom Steenbergen</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-q4o9gmJXpjw/To7fE64li9I/AAAAAAAAAoY/vujIqSTm7xc/s220/profiel_10_2011_klein.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8284229893947571160.post-5895557388266623994</id><published>2009-09-28T12:05:00.010+02:00</published><updated>2011-02-23T14:02:51.890+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='domino'/><category scheme='http://www.blogger.com/atom/ns#' term='user conference'/><category scheme='http://www.blogger.com/atom/ns#' term='NL LUG'/><category scheme='http://www.blogger.com/atom/ns#' term='lotus'/><title type='text'>NL LUG 09 29-30 october in Amsterdam</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.lug2009.nl/home/worksmarter.nsf/LUG2009-175x70.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 200px; height: 102px;" src="http://www.lug2009.nl/home/worksmarter.nsf/LUG2009-175x70.jpg" alt="" border="0" /&gt;&lt;/a&gt;The registration for the NL LUG 09 on 29/30 october in Amsterdam is going fast.&lt;br /&gt;The agenda is set and it has a pick for everyone in almost every timeslot and as always it has some difficult choices to make on which sessions to go to.&lt;br /&gt;Interesting are some of the subjects in the  "alternative" track which even has a session by Microsoft !!&lt;br /&gt;The location is now also set, the RAI congress centre, which is a good choice as it very accesible by public transport and by car.&lt;br /&gt;&lt;br /&gt;The SNUG (Dutch IBM/Lotus User Group) have succeeded in  creating a packed and interesting agenda, getting a good venue and sponsors.&lt;br /&gt;More information can be found on the NL-LUG 2009 website: &lt;a href="http://www.lug2009.nl/"&gt;http://www.lug2009.nl&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;See you there.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8284229893947571160-5895557388266623994?l=notesnl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notesnl.blogspot.com/feeds/5895557388266623994/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8284229893947571160&amp;postID=5895557388266623994&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/5895557388266623994'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/5895557388266623994'/><link rel='alternate' type='text/html' href='http://notesnl.blogspot.com/2009/09/nl-lug2009-29-30-october-in-amsterdam.html' title='NL LUG 09 29-30 october in Amsterdam'/><author><name>Tom Steenbergen</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-q4o9gmJXpjw/To7fE64li9I/AAAAAAAAAoY/vujIqSTm7xc/s220/profiel_10_2011_klein.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8284229893947571160.post-127994899785527880</id><published>2009-09-28T09:28:00.005+02:00</published><updated>2009-09-28T13:14:40.391+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='domino'/><category scheme='http://www.blogger.com/atom/ns#' term='agent'/><title type='text'>Unsupported trigger on agent after server upgrade to R8.5</title><content type='html'>For ages we have had agents running called by one central scheduled agent, the "daily scheduled agent launcher" as we call it.&lt;br /&gt;The trigger of these called agents is set to "On event - Agent List selection" and the  target is set to "None".&lt;br /&gt;The code used to call the agents from within the "daily scheduled agent launcher" is:&lt;br /&gt;Set agent = db.GetAgent(AgentName)&lt;br /&gt;Call agent.run()&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;After migrating the server that runs the agents to R8.5, we discovered that one agent in particular was no longer running and produced the "Unsupported trigger and search in background agent" error. In the past we had come across such problems before, where doing the application/server housekeeping like compact &amp;amp; fixup used to help and make the problem go away. But not this time.&lt;br /&gt;&lt;br /&gt;Searching the Lotus Developer Domain made me find a response by Julie Kadashevich to look at a &lt;a href="http://www.ibm.com/developerworks/lotus/library/ls-Troubleshooting_agents_ND5_6/#N102C0"&gt;troubleshooting agents&lt;/a&gt; document in the developer domain. This document gives some clue to the target of the agent being wrong.&lt;br /&gt;This should be set to "None" or "All documents in application (database)" for agents of this event. Which technically means the agent should run as we had set it to "None".&lt;br /&gt;The first attempt to make it run again was resaving the agent. But that still did not make it run. So we changed the target to "All documents in app" and suprise, the agent runs again.&lt;br /&gt;Appearantly "None" is also not a good target for "Agent list" agents.&lt;br /&gt;&lt;br /&gt;Any ideas ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8284229893947571160-127994899785527880?l=notesnl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notesnl.blogspot.com/feeds/127994899785527880/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8284229893947571160&amp;postID=127994899785527880&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/127994899785527880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/127994899785527880'/><link rel='alternate' type='text/html' href='http://notesnl.blogspot.com/2009/09/unsupported-trigger-on-agent-after.html' title='Unsupported trigger on agent after server upgrade to R8.5'/><author><name>Tom Steenbergen</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-q4o9gmJXpjw/To7fE64li9I/AAAAAAAAAoY/vujIqSTm7xc/s220/profiel_10_2011_klein.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8284229893947571160.post-5091225550712808752</id><published>2009-09-22T13:47:00.003+02:00</published><updated>2009-09-22T14:18:54.013+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='domino'/><category scheme='http://www.blogger.com/atom/ns#' term='xpages'/><title type='text'>Interesting reading/tutorials about Xpages on the web</title><content type='html'>For me working with Xpages is not near what I am used to in the Domino Designer. It is a bit like starting from scratch again using a couple of sources on the web to learn.&lt;br /&gt;As I am probably not alone in that, I thought it might be nice to share the list of sites I have been using so far. This list will be far from complete (only 4), but so far I have been reading  (part, whole or just started to) the following sources on the Xpages subject on the web.&lt;br /&gt;And maybe you can add your additional favorite sites on Xpages in a comment and build a full list of usefull Xpages sites (which I will repost at a  later date).&lt;br /&gt;&lt;br /&gt;- &lt;a href="http://www.qtzar.com/blogs/qtzar.nsf/htdocs/LearningXPages.htm"&gt;Learning Xpages&lt;/a&gt;  by Declan Sciolla-Lynch&lt;br /&gt;- &lt;a href="http://xpagesblog.com/xpages-blog/?currentPage=3"&gt;The Xpages Blog&lt;/a&gt; by various authors&lt;br /&gt;- &lt;a href="http://www-10.lotus.com/ldd/ddwiki.nsf/dx/Tutorial-intro-to-XPages.htm"&gt;Domino Designer Wiki: "Introduction to XPages"&lt;/a&gt; by Stephan H Wissel, Tim Clark (and others)&lt;br /&gt;-&lt;a href="http://www.critical-masses.com/category/tags/xpages-drag-and-drop-tutorial"&gt; XPages Drag and Drop Tutorial&lt;/a&gt; by Jake Ochs&lt;br /&gt;&lt;br /&gt;- and of course the &lt;a href="http://publib.boulder.ibm.com/infocenter/domhelp/v8r0/index.jsp?topic=/com.ibm.designer.domino.xpages_ug.doc/wpd_tutorial.html"&gt;Xpages Tutorial&lt;/a&gt; in the Lotus Domino Designer /Info Center help is a good starting point.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8284229893947571160-5091225550712808752?l=notesnl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notesnl.blogspot.com/feeds/5091225550712808752/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8284229893947571160&amp;postID=5091225550712808752&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/5091225550712808752'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/5091225550712808752'/><link rel='alternate' type='text/html' href='http://notesnl.blogspot.com/2009/09/interesting-readingtutorials-about.html' title='Interesting reading/tutorials about Xpages on the web'/><author><name>Tom Steenbergen</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-q4o9gmJXpjw/To7fE64li9I/AAAAAAAAAoY/vujIqSTm7xc/s220/profiel_10_2011_klein.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8284229893947571160.post-250909131820217224</id><published>2009-08-20T08:22:00.007+02:00</published><updated>2011-02-23T14:03:10.179+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='user conference'/><category scheme='http://www.blogger.com/atom/ns#' term='NL LUG'/><title type='text'>Dutch Lotus User Group Conference 29-30 october</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.lug2009.nl/home/worksmarter.nsf/14326049406192cfc125761600511b1e/5eb04af78ceb2cfec1257616004e2484/frmBody/0.754?OpenElement&amp;amp;FieldElemFormat=gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: right; cursor: pointer; width: 341px; height: 101px;" src="http://www.lug2009.nl/home/worksmarter.nsf/14326049406192cfc125761600511b1e/5eb04af78ceb2cfec1257616004e2484/frmBody/0.754?OpenElement&amp;amp;FieldElemFormat=gif" alt="" border="0" /&gt;&lt;/a&gt;The SNUG (Dutch IBM/Lotus User Group) have planned a two day conference on 29 and 30 october 2009.&lt;br /&gt;The site for the conference is shaping up and can be found &lt;a href="http://www.lug2009.nl/"&gt;here&lt;/a&gt;. They are still looking for speakers to fill up the agenda. So if you are interested in presenting one or more sessions during this conference, contact the SNUG (Details can be found below the table on the&lt;a href="http://www.lug2009.nl/home/worksmarter.nsf/68ceb31a268fc33cc125702f003c2a4b/5eb04af78ceb2cfec1257616004e2484?OpenDocument"&gt; sponsoring page&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;I have already pencilled the days in my agenda and will bring &lt;a href="http://notesnl.blogspot.com/2009/03/i-do-poken-do-you.html"&gt;my poken&lt;/a&gt; to connect.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8284229893947571160-250909131820217224?l=notesnl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notesnl.blogspot.com/feeds/250909131820217224/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8284229893947571160&amp;postID=250909131820217224&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/250909131820217224'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/250909131820217224'/><link rel='alternate' type='text/html' href='http://notesnl.blogspot.com/2009/08/dutch-lotus-user-group-conference-29-30.html' title='Dutch Lotus User Group Conference 29-30 october'/><author><name>Tom Steenbergen</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-q4o9gmJXpjw/To7fE64li9I/AAAAAAAAAoY/vujIqSTm7xc/s220/profiel_10_2011_klein.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8284229893947571160.post-9098060169192179715</id><published>2009-03-23T10:32:00.002+01:00</published><updated>2009-03-23T10:41:21.638+01:00</updated><title type='text'>You just gotta love Notes backward compatibility</title><content type='html'>While making some small amendments to an application that required a controlled access section, I noticed this compatibility functionality for Notes R3.&lt;br /&gt;How is that for maintaining backward compatibility !!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_1o8mKAcALIM/ScdZCBnPEWI/AAAAAAAAATg/QzcAcyC-W-c/s1600-h/backward_compatible.gif"&gt;&lt;img style="cursor: pointer; width: 307px; height: 172px;" src="http://1.bp.blogspot.com/_1o8mKAcALIM/ScdZCBnPEWI/AAAAAAAAATg/QzcAcyC-W-c/s320/backward_compatible.gif" alt="" id="BLOGGER_PHOTO_ID_5316315776461771106" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8284229893947571160-9098060169192179715?l=notesnl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notesnl.blogspot.com/feeds/9098060169192179715/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8284229893947571160&amp;postID=9098060169192179715&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/9098060169192179715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/9098060169192179715'/><link rel='alternate' type='text/html' href='http://notesnl.blogspot.com/2009/03/you-just-gotta-love-notes-backward.html' title='You just gotta love Notes backward compatibility'/><author><name>Tom Steenbergen</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-q4o9gmJXpjw/To7fE64li9I/AAAAAAAAAoY/vujIqSTm7xc/s220/profiel_10_2011_klein.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_1o8mKAcALIM/ScdZCBnPEWI/AAAAAAAAATg/QzcAcyC-W-c/s72-c/backward_compatible.gif' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8284229893947571160.post-8728926141988905218</id><published>2009-03-13T14:30:00.003+01:00</published><updated>2009-03-13T14:54:59.987+01:00</updated><title type='text'>Working my way through Declan Lynch's XPages series</title><content type='html'>I am working my way through &lt;a href="http://www.qtzar.com/blogs/qtzar.nsf/htdocs/LearningXPages.htm"&gt;Declan Lynch's tutorial series on XPages&lt;/a&gt;, everytime I have a couple of minutes to spare.&lt;br /&gt;I am about to start with part 26. Declan has done a great job in providing us with a very comprehensible step-by-step guide to create a proper working application in XPages. The steps are very well divided into 10-15 minutes pieces of work, which make it very managable (even in between tasks at work).&lt;br /&gt;&lt;br /&gt;So far I find the stuff provided very usefull and a realistic scenario. In fact in paralell to working on series' phonebook app I am also trying to build a XPages frontend to an existing (similar) application inside the company. So far so good.&lt;br /&gt;&lt;br /&gt;Great job Declan! Thanx.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8284229893947571160-8728926141988905218?l=notesnl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notesnl.blogspot.com/feeds/8728926141988905218/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8284229893947571160&amp;postID=8728926141988905218&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/8728926141988905218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/8728926141988905218'/><link rel='alternate' type='text/html' href='http://notesnl.blogspot.com/2009/03/working-my-way-through-declan-lynchs.html' title='Working my way through Declan Lynch&apos;s XPages series'/><author><name>Tom Steenbergen</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-q4o9gmJXpjw/To7fE64li9I/AAAAAAAAAoY/vujIqSTm7xc/s220/profiel_10_2011_klein.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8284229893947571160.post-1396576226965995170</id><published>2009-03-10T13:30:00.001+01:00</published><updated>2009-03-10T16:09:37.029+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='social networking'/><category scheme='http://www.blogger.com/atom/ns#' term='lotus'/><title type='text'>I Do Poken, do you ?</title><content type='html'>Last thursday (5 march 2009) I went to the LCTY session organised by Eniac in Zaltbommel.&lt;br /&gt;Guest speaker was Douglas Spencer, who did an awesome job of summarising the Lotusphere Opening General Session in 1 hour. I also watched the &lt;a href="http://www-01.ibm.com/webcasts/WCPGateway.wss?jadeAction=WEBCAST_LAUNCHPAGE_HANDLER&amp;amp;WCP_WEBCAST_ID_KEY=0910001"&gt;OGS via the webcast&lt;/a&gt; on the IBM site and Douglas did an outstanding job picking out the highlights. What I found the most astonishing was the Sametime United Telephony part. "On the phone" awareness in sametime and the ability to continue the same conversation from one phone to another, just great. Not that I see that happening at my present employer soon :-( .&lt;br /&gt;For the full Lotusphere 2009 OGS webcast, &lt;a href="http://www-01.ibm.com/webcasts/WCPGateway.wss?jadeAction=WEBCAST_LAUNCHPAGE_HANDLER&amp;amp;WCP_WEBCAST_ID_KEY=0910001"&gt;click here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;As an extra Eniac organised two breakout session for the afternoon, I went to the Lotus Mashups session. They did a good job of explaining the purpose and use of mashups for temporary &lt;a href="http://en.wikipedia.org/wiki/Situational_application"&gt;situational apps&lt;/a&gt;, combining information from several (disconnected) sources into new information.&lt;br /&gt;I like to draw an analogy with the query tools and web 2.0. I think that is what it really is, query tools 2.0.&lt;br /&gt;&lt;br /&gt;&lt;img style="cursor: pointer; width: 189px; height: 108px;" src="http://2.bp.blogspot.com/_1o8mKAcALIM/SbYtUDydEeI/AAAAAAAAATY/-STBlfGVjyY/s320/poken1.gif" alt="" id="BLOGGER_PHOTO_ID_5311482633167639010" align="left" border="0" /&gt;The sessions ended with a Poken as gift. Poken is the new thing in social networking and provides a way to easily connect digitally with people in all the social networks they want to share. You just need to let your Poken touch (high four) with another persons Poken for a couple of seconds and you have exchanged your Poken (business) card. Back at your computer just plug the Poken in an USB port and connect to the Poken site to upload your new friends Poken cards. Through the icons at the bottom of the Poken cards you can see what other social networks your friends are active on.&lt;br /&gt;Pity Eniac did not take the opportunity to preload the Pokens with the Poken cards for some of the key Eniac employees.&lt;br /&gt;&lt;br /&gt;Anyway, I have activated the Poken and will carry it with me at all times. So when you see me and you have a Poken too, lets do a high four.&lt;br /&gt;&lt;br /&gt;More information on Poken can be found at &lt;a href="http://www.doyoupoken.com/"&gt;www.DoYouPoken.com&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Eniac, thanx for organising this event.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8284229893947571160-1396576226965995170?l=notesnl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notesnl.blogspot.com/feeds/1396576226965995170/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8284229893947571160&amp;postID=1396576226965995170&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/1396576226965995170'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/1396576226965995170'/><link rel='alternate' type='text/html' href='http://notesnl.blogspot.com/2009/03/i-do-poken-do-you.html' title='I Do Poken, do you ?'/><author><name>Tom Steenbergen</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-q4o9gmJXpjw/To7fE64li9I/AAAAAAAAAoY/vujIqSTm7xc/s220/profiel_10_2011_klein.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_1o8mKAcALIM/SbYtUDydEeI/AAAAAAAAATY/-STBlfGVjyY/s72-c/poken1.gif' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8284229893947571160.post-4742855630572612585</id><published>2009-02-13T13:45:00.001+01:00</published><updated>2009-02-13T13:45:00.317+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><category scheme='http://www.blogger.com/atom/ns#' term='domino designer'/><category scheme='http://www.blogger.com/atom/ns#' term='lotus'/><title type='text'>Getting used to Lotus Domino Designer 8.5, findings so far</title><content type='html'>Shortly after the announcement I upgraded to the Notes 8.5 platform, including the new Eclipse based designer client.&lt;br /&gt;And of course it is looking very familiar as we Notes developers were already using the very similar and good working IDE. But it is now based on Eclipse which makes adding plugins and tools easier and is close to the RAD client we are using for our Websphere Commerce development.&lt;br /&gt;But there are definitely some things that need getting used to. I guess it is mostly getting used to a new way of working, but there are also some issues.&lt;br /&gt;I thought I'd share my initial findings and I am curious what others think.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_1o8mKAcALIM/SZVoWhdwZTI/AAAAAAAAATI/kRqI8gX5FTQ/s1600-h/LDD_Eclipse_NoIcons.png"&gt;&lt;img style="cursor: pointer; width: 320px; height: 269px;" src="http://2.bp.blogspot.com/_1o8mKAcALIM/SZVoWhdwZTI/AAAAAAAAATI/kRqI8gX5FTQ/s320/LDD_Eclipse_NoIcons.png" alt="" id="BLOGGER_PHOTO_ID_5302258872448214322" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;The designer client takes more time to start, as does opening the first pane of design elements (enough to get the first cup of coffee of the day). After that it appears to be performing like the "old" client.&lt;/li&gt;&lt;li&gt;Databases are now called applications.&lt;/li&gt;&lt;li&gt;The old bookmarked applications stored in the previous designer client are not converted to the new eclipse workspace.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The application icons do not show until an application is opened/expanded. This make visually browsing for the application that needs some changes a lot harder.&lt;/li&gt;&lt;li&gt;The folders are replaced by working sets. Drag and drop of applications from one working set to another (like with the "old" folders) is not possible. This needs to be done opening the working set dialog box and consciously checking and unchecking applications (again by name, not icon).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The extra available eclipse views for specific tasks are helpfull and can be dragged to a suitable size and place..&lt;/li&gt;&lt;li&gt;The old familiar properties box comes up for "old" design elements and the new one at the bottom seem to be for the new design elements like the xpages, although it also shows some properties for the "old" design elements. &lt;/li&gt;&lt;li&gt;The lotusscript debugger still opens as a seperate window. I expected this one to be integrated as a seperate pane in the new designer client.&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8284229893947571160-4742855630572612585?l=notesnl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notesnl.blogspot.com/feeds/4742855630572612585/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8284229893947571160&amp;postID=4742855630572612585&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/4742855630572612585'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/4742855630572612585'/><link rel='alternate' type='text/html' href='http://notesnl.blogspot.com/2009/02/getting-used-to-lotus-domino-designer.html' title='Getting used to Lotus Domino Designer 8.5, findings so far'/><author><name>Tom Steenbergen</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-q4o9gmJXpjw/To7fE64li9I/AAAAAAAAAoY/vujIqSTm7xc/s220/profiel_10_2011_klein.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_1o8mKAcALIM/SZVoWhdwZTI/AAAAAAAAATI/kRqI8gX5FTQ/s72-c/LDD_Eclipse_NoIcons.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8284229893947571160.post-2896894430364944458</id><published>2009-01-16T20:14:00.002+01:00</published><updated>2009-01-16T20:19:46.889+01:00</updated><title type='text'>Have a great Lotusphere !!</title><content type='html'>I will not be attending Lotusphere 2009. But I wish all those lucky people who are going a great time.&lt;br /&gt;I will be watching the blogs for the stories to tell.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8284229893947571160-2896894430364944458?l=notesnl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notesnl.blogspot.com/feeds/2896894430364944458/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8284229893947571160&amp;postID=2896894430364944458&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/2896894430364944458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/2896894430364944458'/><link rel='alternate' type='text/html' href='http://notesnl.blogspot.com/2009/01/have-great-lotusphere.html' title='Have a great Lotusphere !!'/><author><name>Tom Steenbergen</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-q4o9gmJXpjw/To7fE64li9I/AAAAAAAAAoY/vujIqSTm7xc/s220/profiel_10_2011_klein.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8284229893947571160.post-7403730043899561092</id><published>2009-01-14T11:12:00.001+01:00</published><updated>2009-01-14T15:58:40.273+01:00</updated><title type='text'>Good old @functions</title><content type='html'>From time to time we use Notes databases to store documentation for processes and projects. And to avoid that everybody enters information using their own format we ask peolpe to use predefined templates to create unity in the created documentation. Normally these templates would be provided as main documents in the database and the users will copy and paste these template documents.&lt;br /&gt;Now I remembered from way back in Notes 3.3 that I had created a bit of @function code to allow users to pick a template from a list and copy the selected template into the document the user is working on.&lt;br /&gt;&lt;br /&gt;This is how the @function code works:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Let the user pick a template from a list of templates using @Picklist and and categorised view&lt;/li&gt;&lt;li&gt;Open the selected template document&lt;/li&gt;&lt;li&gt;Navigate to he body field&lt;/li&gt;&lt;li&gt;Select all the content in this field&lt;/li&gt;&lt;li&gt;Copy the selected content to the clipboard&lt;/li&gt;&lt;li&gt;Close the selected template document (and view)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Paste the selected content at the location of the cursor&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Downside of this method is the screen seems to flicker as the function opens a view, a document, selects the body, closes the document, closes the view and pastes the content, but with the current workstation speeds it is hardly noticable.&lt;br /&gt;How about that in the age of xpages, sidebar widgets and composite applications.&lt;br /&gt;&lt;br /&gt;For those interested I have made a database available for download. The function is available on the main topic, place the cursor in the body field and click on the "import template" button.&lt;br /&gt;&lt;a href="http://www.d2k.nl/upload/copyandpastetemplates.zip"&gt;CopyAndPasteTemplate.zip&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;Note: the download is stored on Dennis' blog, as I cannot find an option in Blogger to provide downloads of type zip.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8284229893947571160-7403730043899561092?l=notesnl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notesnl.blogspot.com/feeds/7403730043899561092/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8284229893947571160&amp;postID=7403730043899561092&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/7403730043899561092'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/7403730043899561092'/><link rel='alternate' type='text/html' href='http://notesnl.blogspot.com/2009/01/good-old-functions.html' title='Good old @functions'/><author><name>Tom Steenbergen</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-q4o9gmJXpjw/To7fE64li9I/AAAAAAAAAoY/vujIqSTm7xc/s220/profiel_10_2011_klein.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8284229893947571160.post-6996356003272468144</id><published>2009-01-08T20:48:00.003+01:00</published><updated>2009-01-08T21:03:13.257+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='domino designer'/><title type='text'>Upgraded to designer 8.5 - something is missing</title><content type='html'>Up until now I have stuck to doing development in the R7 designer client. But now that we have planned to start upgrading to 8.5 in Q2 of this year I could no longer resist and installed the new domino designer 8.5 via the upgrade installer C1SQ5EN.exe (all clients, thanx &lt;a href="http://www.d2k.nl/domino/blog4.php/2009/01/06/notes-8-5-download-filename-explanations"&gt;Dennis&lt;/a&gt; for the explanation list of cryptic installernames).&lt;br /&gt;&lt;br /&gt;But on opening the designer client, to my suprise the bookmarks I so carefully created and grouped over the years are not showing.&lt;br /&gt;Searching help and the web has not provided an answer. So I am posting it to the community.&lt;br /&gt;&lt;br /&gt;Does anyone have an idea how to import / restore the "old" bookmarks ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8284229893947571160-6996356003272468144?l=notesnl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notesnl.blogspot.com/feeds/6996356003272468144/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8284229893947571160&amp;postID=6996356003272468144&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/6996356003272468144'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/6996356003272468144'/><link rel='alternate' type='text/html' href='http://notesnl.blogspot.com/2009/01/upgraded-to-designer-85-something-is.html' title='Upgraded to designer 8.5 - something is missing'/><author><name>Tom Steenbergen</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-q4o9gmJXpjw/To7fE64li9I/AAAAAAAAAoY/vujIqSTm7xc/s220/profiel_10_2011_klein.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8284229893947571160.post-3997984491075013545</id><published>2009-01-02T17:22:00.004+01:00</published><updated>2009-01-02T17:25:56.591+01:00</updated><title type='text'>A happy and properous 2009</title><content type='html'>So it has been a while since I posted here, actually a very long while.&lt;br /&gt;But as one of the new year pledges to my self I will try to keep up this blog better updated more regulary.&lt;br /&gt;&lt;br /&gt;To start I wish all the IBM Lotus fans around the world a happy and prosperous 2009.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8284229893947571160-3997984491075013545?l=notesnl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notesnl.blogspot.com/feeds/3997984491075013545/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8284229893947571160&amp;postID=3997984491075013545&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/3997984491075013545'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/3997984491075013545'/><link rel='alternate' type='text/html' href='http://notesnl.blogspot.com/2009/01/happy-and-properous-2009.html' title='A happy and properous 2009'/><author><name>Tom Steenbergen</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-q4o9gmJXpjw/To7fE64li9I/AAAAAAAAAoY/vujIqSTm7xc/s220/profiel_10_2011_klein.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8284229893947571160.post-6570197906094376356</id><published>2008-06-04T12:50:00.002+02:00</published><updated>2008-06-04T13:07:36.879+02:00</updated><title type='text'>IBM Lotus Technical Conference Amsterdam finished</title><content type='html'>The IBM Lotus Technical Conference in Amsterdam has finished. And to be honest I was a bit disappointed by the number of participants at this event (maybe caused by that other event that started today, the ILUG 2008). Only about a hundred-twenty people turned up and at least a quarter were IBM staff, compare that to Lotusphere !!&lt;br /&gt;That aside, most of the sessions were of the standard that can be expected by IBM, although some of them could have been a bit more technical to give the name of the conferene more credit.&lt;br /&gt;&lt;br /&gt;Alan Lepofski kicked off the conference keynote and gave a very efficient and to the point presentation of what I call a summary of the Lotusphere Opening General Session in an hour. Good show.&lt;br /&gt;&lt;br /&gt;And now I am back at work and I am working on a business case to setup some trail enviroments.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8284229893947571160-6570197906094376356?l=notesnl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notesnl.blogspot.com/feeds/6570197906094376356/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8284229893947571160&amp;postID=6570197906094376356&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/6570197906094376356'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/6570197906094376356'/><link rel='alternate' type='text/html' href='http://notesnl.blogspot.com/2008/06/ibm-lotus-technical-conference.html' title='IBM Lotus Technical Conference Amsterdam finished'/><author><name>Tom Steenbergen</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-q4o9gmJXpjw/To7fE64li9I/AAAAAAAAAoY/vujIqSTm7xc/s220/profiel_10_2011_klein.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8284229893947571160.post-1230964160543971226</id><published>2008-05-26T08:44:00.009+02:00</published><updated>2011-02-23T13:55:50.839+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='lotusscript'/><category scheme='http://www.blogger.com/atom/ns#' term='snippets'/><title type='text'>Lotusscript NotesDateTrouble</title><content type='html'>The other week marketing requested a function (agent) to send a follow up email x days (follow up days) after recieving a document (an order in this case).&lt;br /&gt;Not a difficult function to build and NotesDateTime gives us the properties and methods to determine if a document is more than x days old.&lt;br /&gt;So I build the agent that  compares the created date of a received document to the date of today, both transferred to a NotesDateTime class. For the today value I used the "today" function. The agent will run once a day at appr. 14:00 hrs.&lt;br /&gt;&lt;br /&gt;Sample of the code (simplified for ease of reading)&lt;code&gt;&lt;br /&gt;Dim dtToday As NotesDateTime&lt;br /&gt;Dim dtCompare As NotesDateTime&lt;br /&gt;Set dtToday = New NotesDateTime ( Today )&lt;br /&gt;Set dtCompare = New NotesDateTime ( Now )&lt;br /&gt;If dtCompare.LSLocalTime &lt;= dtToday.LSLocalTime Then&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;...&lt;/span&gt;Print 'compare date is less-equal today, send follow up'&lt;br /&gt;End If &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left;" src="http://3.bp.blogspot.com/_1o8mKAcALIM/SDpsgwn3uUI/AAAAAAAAANY/iyzjIZ-vsQk/s320/notesdatetroubledebug.gif" alt="" id="BLOGGER_PHOTO_ID_5204591629443774786" border="0" /&gt;All seems to works fine if you work with documents that are older than a day (x &gt; 0), but when we wanted to test if it worked when x = 0, no follow up emails were send.&lt;br /&gt;In the sample code above I replaced the created date by "Now" but the problem is in the "Today" function.&lt;br /&gt;Only when inspecting the assigned values in the debugger, you can see why it doesnot work. The "Today" function doesnot set any time value in the NotesDateTime class (see the screenshot), but in the comparison it seems to assume a time of 00:00:00 (the start of the day) and thus the follow up is not send.&lt;br /&gt;&lt;br /&gt;To solve the problem setting dtToday to "Now" is an option, but will only partially solve the problem as it will ignore documents received after the time set by "Now" until the next day.&lt;br /&gt;So instead I decided to set dtToday to the end of the day by combining the "Today" function with a fixed time string of "23:59:59".&lt;br /&gt;In the (simplified) code below you can see how it works.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;Set dtToday = New NotesDateTime ( Today &amp;amp; " 23:59:59" )&lt;br /&gt;Set dtCompare = New NotesDateTime ( Now )&lt;br /&gt;If dtCompare.LSLocalTime &lt;= dtToday.LSLocalTime Then&lt;br /&gt;&lt;span style="color: rgb(255, 255, 255);"&gt;...&lt;/span&gt;Print 'compare date is less-equal today, send follow up'&lt;br /&gt;End If &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;The message I want to give here is when using NotesDateTime comparisons, carefully look at the values displayed in the debugger to see if it works the way you think it should work.&lt;br /&gt;Initially I did not do this and was puzzled as to why the comparison did not work until I started looking at the assigned values of the classes in the debugger.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8284229893947571160-1230964160543971226?l=notesnl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notesnl.blogspot.com/feeds/1230964160543971226/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8284229893947571160&amp;postID=1230964160543971226&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/1230964160543971226'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/1230964160543971226'/><link rel='alternate' type='text/html' href='http://notesnl.blogspot.com/2008/05/lotusscript-notesdatetrouble.html' title='Lotusscript NotesDateTrouble'/><author><name>Tom Steenbergen</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-q4o9gmJXpjw/To7fE64li9I/AAAAAAAAAoY/vujIqSTm7xc/s220/profiel_10_2011_klein.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_1o8mKAcALIM/SDpsgwn3uUI/AAAAAAAAANY/iyzjIZ-vsQk/s72-c/notesdatetroubledebug.gif' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8284229893947571160.post-4455880412624120307</id><published>2008-05-21T09:02:00.004+02:00</published><updated>2008-05-21T09:30:38.441+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='teamstudio'/><category scheme='http://www.blogger.com/atom/ns#' term='domino designer'/><category scheme='http://www.blogger.com/atom/ns#' term='bug'/><title type='text'>CIAO! - end of june is here</title><content type='html'>Two weeks ago I posted a warning about a bug in TeamStudio CIAO! where all checkout comments would be lost when checking in a group of design elements.&lt;br /&gt;In this post I mentioned that TeamStudio gave me an e.t.a. for the fix by the end of june.&lt;br /&gt;&lt;br /&gt;But with the end of june still six weeks away, this monday I found an email in my inbox notifying me the bug has been fixed in edition 24a.&lt;br /&gt;I have installed this edition yesterday and indeed the bug is fixed.&lt;br /&gt;&lt;br /&gt;Good work TeamStudio, it is so much easier again checking in a group of design elements rather than one by one.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.teamstudio.com/solutions/ciao-spotlight.html"&gt;&lt;img src="http://www.teamstudio.com/img/headers/teamstudio-ciao.gif" align="left" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8284229893947571160-4455880412624120307?l=notesnl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notesnl.blogspot.com/feeds/4455880412624120307/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8284229893947571160&amp;postID=4455880412624120307&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/4455880412624120307'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/4455880412624120307'/><link rel='alternate' type='text/html' href='http://notesnl.blogspot.com/2008/05/ciao-end-of-june-is-here.html' title='CIAO! - end of june is here'/><author><name>Tom Steenbergen</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-q4o9gmJXpjw/To7fE64li9I/AAAAAAAAAoY/vujIqSTm7xc/s220/profiel_10_2011_klein.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8284229893947571160.post-8992469948627429855</id><published>2008-05-15T09:36:00.003+02:00</published><updated>2008-05-15T11:02:07.482+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='conference'/><category scheme='http://www.blogger.com/atom/ns#' term='lotus'/><title type='text'>I won (IBM Lotus Technical Conference in Amsterdam)</title><content type='html'>You probably know the feeling. Entering yet another raffle to win a nice price, but somehow the price always goes to someone else.&lt;br /&gt;I had the same feeling when I entered a draw held by the &lt;a href="http://www.snug.nl/home/snugnew.nsf/web/ibmconfjuni2008"&gt;SNUG&lt;/a&gt; (the Dutch user group for IBM software) for tickets to the &lt;a href="http://www-304.ibm.com/jct03001c/services/learning/ites.wss/zz/en?pageType=page&amp;amp;c=a0015430"&gt;IBM Lotus Technical Conference&lt;/a&gt; in Amsterdam, featuring &lt;a href="http://www.alanlepofsky.net/"&gt;Alan Lepofsky&lt;/a&gt;. I only had to answer three not too difficult questions which could be found on their website. Obviously I did not expect to win, but to my big suprise this morning I received an email from the SNUG to let me know I won (woehaa!!).&lt;br /&gt;So on 2 and 3 june I will be in Amsterdam and maybe I will meet you there.&lt;br /&gt;&lt;br /&gt;More details about the conference can be found at link to the conference above or via the image below.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www-304.ibm.com/jct03001c/services/learning/ites.wss/zz/en?pageType=page&amp;amp;c=a0015430"&gt;&lt;img src="http://www-304.ibm.com/jct03001c/services/learning/images/lotus_techconf_amsterdam.jpg" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8284229893947571160-8992469948627429855?l=notesnl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notesnl.blogspot.com/feeds/8992469948627429855/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8284229893947571160&amp;postID=8992469948627429855&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/8992469948627429855'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/8992469948627429855'/><link rel='alternate' type='text/html' href='http://notesnl.blogspot.com/2008/05/i-won-ibm-lotus-technical-conference-in.html' title='I won (IBM Lotus Technical Conference in Amsterdam)'/><author><name>Tom Steenbergen</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-q4o9gmJXpjw/To7fE64li9I/AAAAAAAAAoY/vujIqSTm7xc/s220/profiel_10_2011_klein.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8284229893947571160.post-5101394837489374219</id><published>2008-05-06T12:02:00.004+02:00</published><updated>2008-05-06T13:09:00.396+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='teamstudio'/><category scheme='http://www.blogger.com/atom/ns#' term='domino designer'/><category scheme='http://www.blogger.com/atom/ns#' term='ciao'/><category scheme='http://www.blogger.com/atom/ns#' term='bug'/><title type='text'>Warning for TeamStudio CIAO! users !!</title><content type='html'>If you are using the TeamStudio Edition 24 CIAO! tool, please be aware of the following bug:&lt;br /&gt;When checking in multiple design elements and ticking the "Use check out comment" option, the check out comments are "erased" and gone is your history.&lt;br /&gt;&lt;br /&gt;As a workaround you will have to check in all checked-out design elements seperately !!&lt;br /&gt;&lt;br /&gt;This bug has been reported to TeamStudio. However the fix is not expected to be ready until the end of june.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8284229893947571160-5101394837489374219?l=notesnl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notesnl.blogspot.com/feeds/5101394837489374219/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8284229893947571160&amp;postID=5101394837489374219&amp;isPopup=true' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/5101394837489374219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/5101394837489374219'/><link rel='alternate' type='text/html' href='http://notesnl.blogspot.com/2008/05/warning-for-teamstudio-ciao-users.html' title='Warning for TeamStudio CIAO! users !!'/><author><name>Tom Steenbergen</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-q4o9gmJXpjw/To7fE64li9I/AAAAAAAAAoY/vujIqSTm7xc/s220/profiel_10_2011_klein.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8284229893947571160.post-8331973973907984824</id><published>2008-05-05T13:27:00.008+02:00</published><updated>2008-05-05T14:02:51.890+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web 2.0'/><category scheme='http://www.blogger.com/atom/ns#' term='ibm'/><category scheme='http://www.blogger.com/atom/ns#' term='lotus'/><title type='text'>New functionality and look &amp; feel for Lotus forums. Q: when IBM ?</title><content type='html'>Ever since I attended the BP203 session at Lotusphere, "A look under the hood of a world class IBM-Lotus web application", everytime I go to the Lotus forums I expect to see the new look and feel presented.&lt;br /&gt;In this BP203 session Scott Good and Henry Newberry of Teamwork Solutions inc.,  showed what they had build on request of IBM to get the forum look &amp;amp; feel and most importantly the performance into the web 2.0 era. The solution Scott and Henry presented was stepping away from full roundtripping for every page to making the best use of AJAX and JSON in building the pages.&lt;br /&gt;During the presentation Scott hinted to some legal issues with IBM that where blocking a roll-out, but by now I would have expected that to be solved.&lt;br /&gt;&lt;br /&gt;I have no commercial attachment to either party, nor do I know what the status of the issues are.&lt;br /&gt;But here is my plea: go ahead IBM and suprise me the next time I go to the forums to participate to see this new functionality.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8284229893947571160-8331973973907984824?l=notesnl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notesnl.blogspot.com/feeds/8331973973907984824/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8284229893947571160&amp;postID=8331973973907984824&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/8331973973907984824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/8331973973907984824'/><link rel='alternate' type='text/html' href='http://notesnl.blogspot.com/2008/05/new-functionality-and-look-feel-for-ibm.html' title='New functionality and look &amp; feel for Lotus forums. Q: when IBM ?'/><author><name>Tom Steenbergen</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-q4o9gmJXpjw/To7fE64li9I/AAAAAAAAAoY/vujIqSTm7xc/s220/profiel_10_2011_klein.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8284229893947571160.post-979083122250257364</id><published>2008-04-22T15:26:00.004+02:00</published><updated>2008-04-22T16:01:32.422+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sustainability'/><title type='text'>The sustainable enterprise (what is your company doing?)</title><content type='html'>&lt;img src="http://www.interfaceflor.eu//Internet/imagefiles.nsf/Lookup/CoolCarpetsRiver1x1/$file/CoolCarpetsRiver1x1.jpg" align="left" /&gt;I do not want to make a habit of doing semi-advertising on this blog, but I could not resist and let the coincendence pass by unnoticed.&lt;br /&gt;Today being the international Earth Day and yesterday InterfaceFLOR, the company I work for, announced receiving a &lt;a href="http://www.interfaceflor.eu/internet/web.nsf/webpages/5420084_EN.html"&gt;prestigious royal award&lt;/a&gt; in the UK for sustainability.&lt;br /&gt;Led by our sustainability pioneer Ray Anderson, InterfaceFLOR are striving to be a fully sustainable enterprise by the year 2020 and the enthousiasm of this initiative is carried out by employees from the factory floor up to the board. And given the raw materials we use in our products are all based on oil, not an easy goal. But a goal well worth pursuing if we want to pass on a live-able earth to our children and grandchildren.&lt;br /&gt;More on the sustainable efforts of InterfaceFLOR can be found &lt;a href="http://www.interfacesustainability.com/"&gt;here&lt;/a&gt; and &lt;a href="http://www.interfaceflor.eu/internet/web.nsf/webpages/52_EN.html"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8284229893947571160-979083122250257364?l=notesnl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notesnl.blogspot.com/feeds/979083122250257364/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8284229893947571160&amp;postID=979083122250257364&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/979083122250257364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/979083122250257364'/><link rel='alternate' type='text/html' href='http://notesnl.blogspot.com/2008/04/sustainable-enterprise-what-is-your.html' title='The sustainable enterprise (what is your company doing?)'/><author><name>Tom Steenbergen</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-q4o9gmJXpjw/To7fE64li9I/AAAAAAAAAoY/vujIqSTm7xc/s220/profiel_10_2011_klein.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8284229893947571160.post-3346007717656969544</id><published>2008-04-17T20:46:00.006+02:00</published><updated>2008-04-17T21:21:49.650+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='planet lotus'/><title type='text'>I am on Planet Lotus</title><content type='html'>Thanks to Yancy Lent, this blog now feeds into the Planet Lotus site. Now the task is mine to keep adding  content here at a regular basis.&lt;br /&gt;Although there is not much here yet it wil grow.&lt;br /&gt;At the moment I think my focus when blogging will mainly be Lotus Notes / Domino development, but who knows, this may change in the future.&lt;br /&gt;&lt;br /&gt;I really like how Planet Lotus works. I can follow almost all (and more) of the blogs I am interested in on one page. Not a day goes by without picking up an interesting topic. And as a result I now only have a few feeds left in my Google reader.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8284229893947571160-3346007717656969544?l=notesnl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notesnl.blogspot.com/feeds/3346007717656969544/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8284229893947571160&amp;postID=3346007717656969544&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/3346007717656969544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/3346007717656969544'/><link rel='alternate' type='text/html' href='http://notesnl.blogspot.com/2008/04/i-am-on-planet-lotus.html' title='I am on Planet Lotus'/><author><name>Tom Steenbergen</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-q4o9gmJXpjw/To7fE64li9I/AAAAAAAAAoY/vujIqSTm7xc/s220/profiel_10_2011_klein.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8284229893947571160.post-7571952232172833085</id><published>2008-04-16T21:34:00.004+02:00</published><updated>2008-04-16T21:39:30.349+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blog template'/><title type='text'>I tweeked the default layout (a bit)</title><content type='html'>When setting up this blog I chose the standard available Demin Stretch. But I did not like the used colours in the sidebar header.&lt;br /&gt;So I decided to make some changes to that and make it more in line with the rest of the colours used in this template. So here it is, a nice blue border.&lt;br /&gt;&lt;br /&gt;And while I was at it, I also added some borders to the post headings and I added an image in the header reflecting my all time favorite hobby, kayaking.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8284229893947571160-7571952232172833085?l=notesnl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notesnl.blogspot.com/feeds/7571952232172833085/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8284229893947571160&amp;postID=7571952232172833085&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/7571952232172833085'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/7571952232172833085'/><link rel='alternate' type='text/html' href='http://notesnl.blogspot.com/2008/04/i-tweeked-default-layout-bit.html' title='I tweeked the default layout (a bit)'/><author><name>Tom Steenbergen</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-q4o9gmJXpjw/To7fE64li9I/AAAAAAAAAoY/vujIqSTm7xc/s220/profiel_10_2011_klein.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8284229893947571160.post-6925631850616578873</id><published>2008-04-14T12:47:00.006+02:00</published><updated>2011-02-23T13:53:58.551+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='snippets'/><category scheme='http://www.blogger.com/atom/ns#' term='domino'/><category scheme='http://www.blogger.com/atom/ns#' term='language detect'/><category scheme='http://www.blogger.com/atom/ns#' term='browser'/><title type='text'>detecting language settings for a website using @formula</title><content type='html'>The company I work for is a multinational in Europe and their website, reflecting Europe, is multilingual. The main url for this website however directs to a general page for all of Europe and is in English. And you get it, soon the request came for the site to be able to detect where the visitor is coming from and redirect this visitor to his local language homepage if it is available.&lt;br /&gt;After some discussion we decided to use the setting for browser language rather than using the some IP-detect to determine the preferred language of the visitor.&lt;br /&gt;Initially I started using the @LanguagePreference, which given the name of the function would be the right one to use. And it did for a while, until we started rolling out the website to countries where more than one language is spoken. Like Belgium with french and dutch or Switzerland with german, french and italian.&lt;br /&gt;In these countries we would like the visitors to be redirected to the homepages of that country in the preferred language of the user. And that is where @LanguagePreference starts to fail.&lt;br /&gt;Lets take an example: A Belgian visitor would most likely set their preferred language to french or dutch (vlemish), respectively fr-be &amp;amp; nl-be in the browser.&lt;br /&gt;But @LanguagePreference respectively returns "fr" and "nl". And thus we do not have enough information to route the visitor to the proper homepage and they are redirected to the french or dutch homepage.&lt;br /&gt;As I do not know all the @functions by heart, I turned to our admin (Dennis), to see if this could be solved in our firewall. But instead of configuring the firewall he pointed me to the @GetHTTPHeader function and its HTTP_Accept_Language parameter.&lt;br /&gt;As it turns out, this function nicely returns a string of the set languages as set in the browser. Although the browsers have their differences, the major ones are comparable when languages are defined for countries that have multiple languages.&lt;br /&gt;&lt;br /&gt;So here is how it works:&lt;br /&gt;When opening the default homepage, before processing the rest of the page, some @function code determines the visitors language and does a dblookup to see if a homepage exists in visitors browser defined language. If so, a meta refresh is set to re-direct the visitor to the local language homepage.&lt;br /&gt;&lt;br /&gt;This is the code that is used:&lt;br /&gt;(Underneath the second rem block a keyword is retrieved as the naming of the languages in the site is not always in line with what the browsers use and somtimes the browsers are not using the same language coding.)&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;REM {== get the languagesettings from the browser (retrieve the first setting in the list) ==};&lt;br /&gt;brlang := @LowerCase(@Subset(@Explode(@GetHTTPHeader("Accept-Language"); ",");1));&lt;br /&gt;brlang_2 := @Left(brlang; 2);&lt;br /&gt;&lt;br /&gt;REM {== get the Languages Browser keyword for languages that differ between browser and site ==};&lt;br /&gt;REM {== and replace if preflang is found in browserlangs ==};&lt;br /&gt;lb := @LowerCase(@DbLookup("Notes" : "NoCache"; ""; "luKeywords"; "languages browser"; 2; [FailSilent]));&lt;br /&gt;browserlangs := @Left(lb; "~~");&lt;br /&gt;sitelangs := @Right(lb; "~~");&lt;br /&gt;preflang:=&lt;br /&gt;@If(&lt;br /&gt;  @IsMember(brlang; browserlangs);&lt;br /&gt;    @Subset(@Subset(sitelangs; @Member(brlang; browserlangs)); -1);&lt;br /&gt;  @IsMember(brlang_2; browserlangs);&lt;br /&gt;    @Subset(@Subset(sitelangs; @Member(brlang_2; browserlangs)); -1);&lt;br /&gt;  brlang_2&lt;br /&gt;);&lt;br /&gt;&lt;br /&gt;REM {== try to get indexpage for user browserlanguage ==};&lt;br /&gt;key := "index_" + @UpperCase(preflang) + ".html";&lt;br /&gt;page := @DbLookup("Notes":"NoCache";""; "webpages"; key; 1; [FailSilent]);&lt;br /&gt;&lt;br /&gt;REM {== if path_info ends in /, remove it, so it compares better to dbPath ==};&lt;br /&gt;pathinf :=&lt;br /&gt;@If(&lt;br /&gt;  @Right(Path_Info; 1) = "/";&lt;br /&gt;    @Left(Path_Info; @Length(Path_Info)-1);&lt;br /&gt;  Path_Info&lt;br /&gt;);&lt;br /&gt;REM {== show default homepage when path in url is not blank or identical to dbpath or  ==};&lt;br /&gt;REM {== if language homepage for browserlanguage is not found ==};&lt;br /&gt;REM {== else reroute to language homepage ==};&lt;br /&gt;@If(&lt;br /&gt;  pathinf != "" &amp;amp; pathinf != dbPath;&lt;br /&gt;  "";&lt;br /&gt;  page = "";&lt;br /&gt;    "";&lt;br /&gt;  "&amp;lt;meta http-equiv=\"refresh\" content=\"0;url="+dbPath + "/webpages/" + page +" /&amp;gt;"&lt;br /&gt;)&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8284229893947571160-6925631850616578873?l=notesnl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notesnl.blogspot.com/feeds/6925631850616578873/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8284229893947571160&amp;postID=6925631850616578873&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/6925631850616578873'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/6925631850616578873'/><link rel='alternate' type='text/html' href='http://notesnl.blogspot.com/2008/04/detecting-language-settings-for-website.html' title='detecting language settings for a website using @formula'/><author><name>Tom Steenbergen</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-q4o9gmJXpjw/To7fE64li9I/AAAAAAAAAoY/vujIqSTm7xc/s220/profiel_10_2011_klein.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8284229893947571160.post-5346872128507840813</id><published>2008-03-26T13:21:00.009+01:00</published><updated>2008-03-26T13:54:57.748+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='domino'/><category scheme='http://www.blogger.com/atom/ns#' term='dojo'/><title type='text'>I stand corrected, form formula and Dojo Dialog does work !</title><content type='html'>It seems I made a small mistake with big consequences. And the good news is that the form formula does work with dojo dialog.&lt;br /&gt;While I was preparing the functionality mentioned in yesterdays post for go live, I discovered it did not work after cleaning up (deleting) all the trial code.&lt;br /&gt;&lt;br /&gt;The mistake was, I called the wrong view in the "/viewname/docid?OpenDocument" for the dojo dialog. This mistake was caused by the application having 2 views with an almost similar name and the view I called did not have a form formula, which is why it rendered the Notes format of the form in the dojo dialog instead of the webformat.&lt;br /&gt;&lt;br /&gt;Fortunately this mistake was quick to fix, by pointing the url to use the correct view.&lt;br /&gt;So when reading yesterdays post, please ignore the text about the form formula not working.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8284229893947571160-5346872128507840813?l=notesnl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notesnl.blogspot.com/feeds/5346872128507840813/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8284229893947571160&amp;postID=5346872128507840813&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/5346872128507840813'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/5346872128507840813'/><link rel='alternate' type='text/html' href='http://notesnl.blogspot.com/2008/03/i-stand-corrected-form-formula-and-dojo.html' title='I stand corrected, form formula and Dojo Dialog does work !'/><author><name>Tom Steenbergen</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-q4o9gmJXpjw/To7fE64li9I/AAAAAAAAAoY/vujIqSTm7xc/s220/profiel_10_2011_klein.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8284229893947571160.post-7407071667829785770</id><published>2008-03-25T13:25:00.004+01:00</published><updated>2008-03-26T13:57:56.321+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='domino'/><category scheme='http://www.blogger.com/atom/ns#' term='dojo'/><title type='text'>Form formula with Dojo Dialog</title><content type='html'>It has been a while since Lotusphere, but today I put some functionality live that I had created after being stunned at Lotusphere by the session (BP212) that displayed some of the features in Dojo together with Notes/Domino. In fact Viktor Krantz had made a real effort in creating seperate javascript objects for Domino to show in his demos at BP212.&lt;br /&gt;&lt;br /&gt;Putting this code live, reminded me that I wanted to write something about Dojo and the fact that for some reason the form formula is not working when opening a document using dojo dialog.&lt;br /&gt;&lt;br /&gt;So returning from Lotusphere I started looking into Dojo and implemented the Dojo grid and Dojo dialog. As I wanted to have some handson with dojo, I did not re-use the Domino objects from BP212.&lt;br /&gt;I made a grid working using the JSON setup Scott Good had shown in his ajax/json session (JMP205). This was actually the most work and required the most lines of javascript (mainly building the search url and the grid layout).&lt;br /&gt;&lt;br /&gt;I then created a simple html form to open in a dojo dialog that will be triggered by clicking on a row on the dojo grid. All works fine, &lt;del&gt;except the form specified in the form formula of the view that is used to retrieve the document does not seem to work. It uses the Notes version of the form instead of the specified web format.&lt;br /&gt;I double checked twice and using the same "viewname/docid?OpenDocument" directly in the browser does open the specified web format as specified in the form formula.&lt;br /&gt;Searching the web (LDD a.o.) did not give any clues into this problem having occurred before, nor did posting this problem on the LDD forum result in any answers.&lt;br /&gt;So in the end I solved this problem by using computed subforms, one for the Notes client and one for the web&lt;/del&gt;.&lt;br /&gt;&lt;br /&gt;Has anyone else come accross this problem? Forget this, it does work, see the post on 26-03-2008.&lt;br /&gt;&lt;br /&gt;For samples of code look at the Lotusphere session:&lt;br /&gt;JMP205 AJAX and JSON for IBM Lotus Domino Applications (Scott Good)&lt;br /&gt;BP212 The Great Code Giveaway: "Beyond Cool" (Rob Novak &amp;amp; Viktor Krantz)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8284229893947571160-7407071667829785770?l=notesnl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notesnl.blogspot.com/feeds/7407071667829785770/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8284229893947571160&amp;postID=7407071667829785770&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/7407071667829785770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/7407071667829785770'/><link rel='alternate' type='text/html' href='http://notesnl.blogspot.com/2008/03/form-formula-with-dojo-dialog.html' title='Form formula with Dojo Dialog'/><author><name>Tom Steenbergen</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-q4o9gmJXpjw/To7fE64li9I/AAAAAAAAAoY/vujIqSTm7xc/s220/profiel_10_2011_klein.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8284229893947571160.post-4600640663046833883</id><published>2008-03-09T14:49:00.006+01:00</published><updated>2011-02-23T13:55:02.051+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='snippets'/><category scheme='http://www.blogger.com/atom/ns#' term='formula'/><category scheme='http://www.blogger.com/atom/ns#' term='sorting'/><title type='text'>Moving values up and down in multiple multivalue fields</title><content type='html'>A while ago I received a request to be able to maintain a table of values. In Notes that means creating several multivalue fields that are displayed in a table.&lt;br /&gt;I had done this before using the tablewalker solution by Michael Rohrbach and it still works fine after all these years.&lt;br /&gt;However the current user was not really satisfied with the sorting option in the Tablewalker solution and wanted to be able to visually move rows up and down. This is basically moving values up and down in multivalue fields. So I started thinking about how to do this while the user is viewing the table on the form using @functions.&lt;br /&gt;Based on an application I found on &lt;a href="http://www.openntf.org/"&gt;OpenNTF&lt;/a&gt; by Tomas Ekström, &lt;a href="http://www.openntf.org/projects/pmt.nsf/ProjectLookup/TED%20the%20Notes%20table%20editor"&gt;TEd, Table Editor&lt;/a&gt; I build a fairly simple solution for this using @functions.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;This is the solution:&lt;/span&gt;&lt;br /&gt;To start I created a computed multivalue field in which the fields to sort are stored, I called this field "MoveFields".&lt;br /&gt;&lt;br /&gt;On the form there are a couple of (hidden) multivalue fields to hold the user data and computed for display fields to display the values of the hidden fields neatly in the table (cut-off if need be for each seperate value to fit on one line).&lt;br /&gt;To move the values up and down in the array I added an extra field in which the user can enter the row to move "CurrPos".&lt;br /&gt;Finally two arrows (up and down) are added with action hotspots, in which the sorting is done. The code should be self-explanatory.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Screenshot of the (part of) the table and buttons:&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_1o8mKAcALIM/R9PcF0FkgYI/AAAAAAAAAK8/1qyKlclqchI/s1600-h/arraymove.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_1o8mKAcALIM/R9PcF0FkgYI/AAAAAAAAAK8/1qyKlclqchI/s320/arraymove.gif" alt="" id="BLOGGER_PHOTO_ID_5175722389218296194" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Code for the up hotspot:&lt;/span&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;REM {CODE FOR MOVING UP };&lt;br /&gt;Fields := @GetField("MoveFields");&lt;br /&gt;&lt;br /&gt;NoOfFields := @Elements(Fields);&lt;br /&gt;NoOfElements := @Elements(@GetField(Fields[1]));&lt;br /&gt;&lt;br /&gt;@If(CurrPos &amp;lt; 1 | CurrPos &amp;gt; NoOfElements;&lt;br /&gt;   @Return(@Prompt([Ok];"move up"; "Number must be within range of available rows"));&lt;br /&gt; ""&lt;br /&gt;);&lt;br /&gt;@If(CurrPos = 1;&lt;br /&gt;   @Return(@Prompt([Ok];"move up"; "Cannot move the first row further up !"));&lt;br /&gt; ""&lt;br /&gt;);&lt;br /&gt;REM { ----------------------------------------------------------------------------------------------------------&lt;br /&gt;move the current row one position UP&lt;br /&gt;1st subset gets the elements above the current element and the element to switch (only when current position is below second row)&lt;br /&gt;2nd subset gets the current element&lt;br /&gt;3rd subset gets the element above the current element&lt;br /&gt;4th subset subset gets the elements below the current element (only when current position is above the last position)&lt;br /&gt;-------------------------------------------------------------------------------------------------------------------- };&lt;br /&gt;@For(n:=1; n &amp;lt;= NoOfFields; n:=n+1;&lt;br /&gt; @SetField(Fields[n];&lt;br /&gt;   @If(CurrPos &amp;lt;= 2; null; @Subset(@GetField(Fields[n]); CurrPos-2)) :&lt;br /&gt;   @Subset(@Subset(@GetField(Fields[n]); CurrPos);-1) :&lt;br /&gt;   @Subset(@Subset(@GetField(Fields[n]); CurrPos-1); -1) :&lt;br /&gt;   @If(CurrPos = NoOfElements; null; @Subset(@GetField(Fields[n]); CurrPos-NoOfElements))&lt;br /&gt; )&lt;br /&gt;);&lt;br /&gt;REM { set currunt position to new rownumber };&lt;br /&gt;@SetField("CurrPos"; CurrPos -1);&lt;br /&gt;@Command([ViewRefreshFields])&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Code for the down hotspot&lt;/span&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;REM {CODE FOR MOVING DOWN };&lt;br /&gt;Fields := @GetField("MoveFields");&lt;br /&gt;&lt;br /&gt;NoOfFields := @Elements(Fields);&lt;br /&gt;NoOfElements := @Elements(@GetField(Fields[1]));&lt;br /&gt;&lt;br /&gt;@If(CurrPos &amp;lt; 1 | CurrPos &amp;gt; NoOfElements;&lt;br /&gt; @Return(@Prompt([Ok];"move down"; "Row number must be within range of available rows"));&lt;br /&gt; ""&lt;br /&gt;);&lt;br /&gt;@If(CurrPos = NoOfElements;&lt;br /&gt;   @Return(@Prompt([Ok];"move down"; "Cannot move the last row further down !"));&lt;br /&gt; ""&lt;br /&gt;);&lt;br /&gt;REM { ------------------------------------------------------------------------------------------&lt;br /&gt;move the current row one position DOWN&lt;br /&gt;1st subset gets the elements above the current element and the element to switch (only when current position is below first row)&lt;br /&gt;2nd subset gets the element below the current element&lt;br /&gt;3rd subset gets the current element&lt;br /&gt;4th subset subset gets the elements below the elements to switch (current element +1) (only when current position is at least 2 rows the last row)&lt;br /&gt;----------------------------------------------------------------------------------------------------- };&lt;br /&gt;@For(n:=1; n &amp;lt;= NoOfFields; n:=n+1;&lt;br /&gt; @SetField(Fields[n];&lt;br /&gt;   @If(CurrPos = 1; null; @Subset(@GetField(Fields[n]); CurrPos-1)) :&lt;br /&gt;   @Subset(@Subset(@GetField(Fields[n]); CurrPos+1);-1) :&lt;br /&gt;   @Subset(@Subset(@GetField(Fields[n]); CurrPos); -1) :&lt;br /&gt;   @If(CurrPos = NoOfElements-1; null; @Subset(@GetField(Fields[n]); CurrPos+1-NoOfElements))&lt;br /&gt; )&lt;br /&gt;);&lt;br /&gt;REM { set the current position to the new row };&lt;br /&gt;@SetField("CurrPos"; CurrPos +1);&lt;br /&gt;@Command([ViewRefreshFields])&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8284229893947571160-4600640663046833883?l=notesnl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notesnl.blogspot.com/feeds/4600640663046833883/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8284229893947571160&amp;postID=4600640663046833883&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/4600640663046833883'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/4600640663046833883'/><link rel='alternate' type='text/html' href='http://notesnl.blogspot.com/2008/03/moving-values-up-and-down-in-multiple_06.html' title='Moving values up and down in multiple multivalue fields'/><author><name>Tom Steenbergen</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-q4o9gmJXpjw/To7fE64li9I/AAAAAAAAAoY/vujIqSTm7xc/s220/profiel_10_2011_klein.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_1o8mKAcALIM/R9PcF0FkgYI/AAAAAAAAAK8/1qyKlclqchI/s72-c/arraymove.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8284229893947571160.post-7515521106210483262</id><published>2008-03-06T09:49:00.004+01:00</published><updated>2008-04-17T08:26:02.038+02:00</updated><title type='text'>Another blog about  Lotus Notes / Domino development</title><content type='html'>Indeed yet another weblog about Lotus Notes / Domino development. After roaming other blogs for answers and solutions I thought it would be time I started sharing my coding experiences on a world wide weblog.&lt;br /&gt;Now, being a Notes / Domino developer it would seem appropriate to use a domino database for blogging. But as I found, hosting a domino site is rather expensive for a private person, I chose to start blogging through Google.&lt;br /&gt;I do not have the idea that I can do a better job than some of the bloggers out there that have been around for several years now. But I consider this as much a personal diary as an attempt to share my experiences with a broader audience.&lt;br /&gt;&lt;br /&gt;For now I have picked a readily available template, but I hope to create a more personal layout in the near future.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8284229893947571160-7515521106210483262?l=notesnl.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://notesnl.blogspot.com/feeds/7515521106210483262/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8284229893947571160&amp;postID=7515521106210483262&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/7515521106210483262'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8284229893947571160/posts/default/7515521106210483262'/><link rel='alternate' type='text/html' href='http://notesnl.blogspot.com/2008/03/another-blog-about-lotus-notes-domino.html' title='Another blog about  Lotus Notes / Domino development'/><author><name>Tom Steenbergen</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://1.bp.blogspot.com/-q4o9gmJXpjw/To7fE64li9I/AAAAAAAAAoY/vujIqSTm7xc/s220/profiel_10_2011_klein.jpg'/></author><thr:total>1</thr:total></entry></feed>
