The Right Notes

Contributing development ideas to the Lotus Domino community

Archive for the ‘Lotus’ Category

Using the right tool for the job

Posted by therightnotes on June 12, 2007

We’ve been having a discussion internally among the Notes developers about how to best write hide-when formulas based on user roles.  There was a group who usually used @contains, but we have run into problems where the substring is Null, because then @contains always returns True.  I’ve always advocated using @ismember because it seems to be a more accurate function when I want to know whether or not a person is enrolled in a particular roll.

My supervisor, who is a brilliant coder, prefers to write hide-when formulas in this way:  write a formula for who should see the item, then make it a negative using the ! operator (and changing booleans as necessary).  I’ve always found this a bit difficult because my mind doesn’t work this way.  Also, I chafe at things like !@ismember when there is a function called @isnotmember.  I feel certain that the latter must be faster (albeit fractionally), and I find it easier to read.  I guess it’s just my feeling that we should try to use the tools given to us that are best suited for the task.

Posted in best practices, formula language, Lotus, Lotus Notes, Lotusnotes | 2 Comments »

Blackberry Developer Community

Posted by therightnotes on May 29, 2007

A community forBlackBerry developers has sprung up at:

http://blackberry.developercommunity.com/

It is not officially affiliated with RIM, but there is already some activity on the forums, including a forum dedicated to Domino development with Blackberries.

Posted in Blackberry, Domino, Lotus, Lotus Notes, Lotusnotes | Comments Off on Blackberry Developer Community

Recompile All

Posted by therightnotes on May 16, 2007

How often do you use the “Recompile All” feature in the Lotus Designer?  Periodically, I get error messages that pop up in a large database I support after design refreshes.  The error messages themselves on incorrect.  For example, I’ll get a “Duplicate puble name” error when there are no duplicates.  The only thing that makes it go away, it seems, is a recompile all.  My trouble with this “solution” is that it seems drastic; everything gets signed with a new updated date.  That means things that were working fine now appear as though they’ve been modified.  This causes more things to be replicated than is necessary.  Even more, though, the team of developers lose track of when something was last “really” worked on, which is often a useful piece of information.  So I’m wondering how often people use the feature and if others have had errors (and fixes) like I’ve described.

Posted in Lotus, Lotus Notes, Lotusnotes, Lotusscript | 5 Comments »

SNTT: Computing Frame Contents

Posted by therightnotes on May 3, 2007

Frames on the web are out of style, but they are invaluable in Notes programming.  We tend to use a frameset with a single frame for our web applications because of the flexibility it gives us.  One of the things it allows us to do is load different content into the frame in different situations.

In my previous post, I talked about how easy it is to make a database accessible to a BlackBerry.  One of the things we wanted to do, though, is to differentiate what a BlackBerry user sees on first opening the database vs. what someone sees using a browser.  To do this, we computed the content to load into the frame depending on the value returned by @useragent.  So I went into our Frameset and got the frame properties dialog box up.  On the Basics tab, next to the Content Value textbox, I click the @ button to calculate the content.  A dialog box like the following appears:Computing Frame Contents

This dialog box allows you to compute 3 things:

  1. the type of element (in this case, a view for a BlackBerry and a form otherwise);
  2. the database where the element can be found (blank means the current database);
  3. the identity of the element (the view name and form name to correspond to #1).

The power of this feature is limited only by what you can do inside an @if statement.

Posted in Blackberry, Domino, formula language, Lotus, Lotus Notes, Lotusnotes, Show-n-Tell Thursday, SnTT, web programming | Comments Off on SNTT: Computing Frame Contents

Astonishingly simple

Posted by therightnotes on May 1, 2007

I don’t have much time to write today, but I wanted to post something about my first foray into programming for the Blackberry.  I took an existing phone directory application and had it working well for the Blackberry in less than an hour!  Domino (as usual) does much of the HTML work for you, and you can detect when a BB is asking for the page so that you can provide special HTML, or even a specific form.  For example, the form formula I use to serve a different form to the BB is:

@If(@Contains(@GetHTTPHeader(“User-Agent”);”BlackBerry”);”BB-Personnel Information”;”Personnel Information”)

The Blackberry specific form is very simple with no tables and no unnecessary graphics (all those hours designing terrible UIs in version 4.6 have finally paid off!).  If you have been hesitating at all, I encourage you to take some baby steps into developing for the Blackberry, as I have.  It is much easier than I ever imagined.  I’m sure it can get trickier and more robust, but it’s nice to get something going so quickly.

For more details, start here.

Posted in Blackberry, Domino, formula language, Lotus, Lotus Notes, Lotusnotes | 3 Comments »

RedWiki

Posted by therightnotes on April 26, 2007

Here is an announcement that I want to pass along:

An exciting new program is being piloted by the IBM Redbooks team to engage the broad customer and partner community in shared authoring and updating ‘best practices’ information.

The program is called RedWiki.  They are piloting the idea with a wiki on Lotus SmartUpgrade.  If it works, Wikis could become available for other products.

Posted in Domino, Lotus, Lotus Notes, Lotusnotes | Comments Off on RedWiki

SNTT: Opening subforms quickly

Posted by therightnotes on April 19, 2007

This is a tip that has been around awhile, but it is so unbelievable that I wanted to share it in case you haven’t seen it.  In other words, this doesn’t originate with me, and I’ve forgotten where I found it originally.

As most of you know, subforms are slow. A form with multiple subforms is particularly slow, even if the subforms aren’t computed (which, of course, slows the loading of the form further). There is one easy way to make subforms load quickly: Put some lotusscript code–Any Code!–in the initialize event of every subform. We use something like this:

Dim fastOpen as boolean
fastOpen = True

If you have a form with multiple subform, this simple, meaningless code that does nothing makes a HUGE difference in load time. I have no idea why adding code makes the subforms load faster, but it does (at least in Notes 5 and 6). Give it a try!

Posted in best practices, Lotus, Lotus Notes, Lotusnotes, Lotusscript, Show-n-Tell Thursday, SnTT | 7 Comments »

Coding without Code

Posted by therightnotes on April 17, 2007

One of my goals as a developer is to write as little code as possible.  That’s a bit flip, but it’s true.  I try to code in such a way that it is easy to access, re-do, or re-use code so that when requirements change or get added, the amount of work is required is minimal.

One of the requests that came up last week was to add an email reminder to a database that would send an email to anyone who had not yet submitted a particular form.  The form exists in the database, and the administrator has a view that shows whose documents are outstanding.

When we first designed databases, we knew we’d be sending emails to tell people that documents were available as well as other sorts of reminders.  My design had 3 parts:

  1. a form where the administrators selected the type of reminder, entered the content of the email, and set a date and time for it to be sent;
  2. an agent that checked the dates and times of these documents and sent emails as necessary;
  3. A designer only form that gave a name to the reminders and told the agents where to find the list of people to whom the email should be sent;

Item #3 is what allowed me to add the requested functionality without any code.  All I had to do was create a new document from this desinger form and give it a name (for the administrator to pick from the list) and tell the agent the name of the view where the list to send to could be found and the name of the field where the email address exists.  Once I saved that document, the functionality was immediately available:  no design refresh and no new code required.

Of course, all my code doesn’t come out this way.  But it’s so nice when it does!

Posted in agents, best practices, Lotus, Lotus Notes, Lotusnotes | Comments Off on Coding without Code

The Whole Lotus Enchilada

Posted by therightnotes on April 3, 2007

We currently run Lotus Notes/Domino, Sametime and Quickplace in our environment.  We do not run Websphere, but we don’t have any other portal software either.  We are in the middle of a project to switch our email to Outlook/Exchange.  We have been told that “as long as we have workflow, we’ll have Notes/Domino” (with the implication that we’ll always have the product).  OTOH, Quickplace (soon to be Quickr) has been under pressure both from Sharepoint and E-Room, and there are rumours that we are going to be moving from Sametime to the Microsoft instant messenger product.

Here is my question:  from a developer perspective, how much should I worry about losing Sametime from the product lineup?  I’ve done some Quickplace work, so I worry a bit about losing that.  If I thought Microsoft had a viable workflow option for Notes, I would also be worried about that.  But while I know that Sametime is (particularly now) an extensible platform, the fact is that I (and my fellow developers) don’t do any Sametime development.  Part of me says that it is just a tool that happens to be from Lotus (like our document managment system is just a tool that happens to be from Interwoven).  Another part of me says that anytime Lotus is removed from our environment that my job as it currently stands is one step closer to vanishing.  I have every reason to believe my company would retrain me, but that is beside the point I’m wondering about.

So, what do any of you think?  In my situation, would you consider the loss of Sametime to be a threat?

Posted in Domino, Lotus, Lotus Notes, Lotusnotes, quickplace, Quickr, Sametime | 3 Comments »

Quickplace Capacity Question

Posted by therightnotes on March 19, 2007

I’ve had a project request about using Quickplace to store about 100 GB of data.  Has anyone used QP to store and access this much data?  I’m assuming that we’ll be able to design the structure with plenty of rooms/sub rooms to spread the data among several NSFs, but I’m wondering how the server will handle it.  We have not yet updated to QP 7.0…

So, any thoughts?

Posted in Domino, Lotus, Lotus Notes, quickplace | Comments Off on Quickplace Capacity Question