May 21, 2007 4:26 PM   Subscribe

Please help me figure out how to learn the basics of db/app development IBM Lotus Notes 7.

I've been asked to build a simple Lotus Notes/Domino database. The server and clients are already configured and using existing databases. I need to create a new database including a document template and the required forms/views to add documents, browse documents, and search documents. Regarding search, I specifically need to search for text in specific fields -- the generic "search" button in Notes Client is too generic. I can approximate the behavior I want in an existing database with a "Search by entries in form" query, selecting a "Search Form" that I guess the actual developer built, but if possible I'd like an easier way to get to this (without the "search by form->select form" business -- a bookmark, maybe?).

I am not an experienced Notes developer. I have experience with LAMP web development and the associated SQL business, but from what I've been able to glean from an old copy of Notes for Dummies 6 and QUE's Using Notes and Domino 6, Notes is a totally different world from your standard RDBMS. In fact, looking at those texts, I couldn't really figure out how one would implement something like a query in Notes. I figure that the end result is going to involve a form that passes data to a a bunch of filters in a view (do I have my terms right?) but the how is entirely lost on me. There's no relevant "query," "search," or "find" in the QUE book's index, or in the PDF of the redbook for Domino Designer 6. I presume I'm asking the wrong questions and looking in the wrong places.

I'm not asking for specific advice or how-tos, obviously -- there's too much that needs to be done. Given what I need to learn, where should I start? What keywords should I be looking up? What online resources provide intelligent-newbie-friendly help? Are there any good books that tackle basic Notes application development?
posted by Alterscape to Computers & Internet (4 answers total) 2 users marked this as a favorite
Best answer: I'm an admin, not a designer, but here's the basics:
Notes is not a relational database, so you don't get queries. You can run Notes with a DB2 backend now, but no-one actually does this yet. The native Notes database is equal or better than DB2 until you get into very large databases (Multi Gig, with hundres of thousands or millons of documents). By the time you get that large, Notes wouldn't make sense for your app anyway.

The equivalent to queries are Views. Views are updated in real-time, but you have to configure what fields are in the view when you create them. A view consists, roughly, of columns that correspond to fields in your documents, and a selection formula, which decides what documents get included in the view. A common selection formula would be all documents that use Form X. The selection formula is created using Lotuscript, which you've probably already encountered. It's very similar to Visual Basic, an isn't hard to learn.

The other main design element is the Form. This is very similar to Visual Basic's form designer, or, really any WYSIWYG editor for web pages. Basically, everything you are going to add is a field. Fields can be may different types, like combo-boxes, radio buttons, simple text, or rich text. Rich text fields are capable of containing any content, including file attachments or embedded pictures.

Once you have your design created, at least one form and one view, you can start using the database. Each document you create will have one and only one Form associated with it. The documents will then appear in various views, depending on the Views selection formulas.

Search is built-in to the system at the database level. The search bar you mention is usually the primary way of getting to search, but you can create your own search page which calls the functionality. Searches are run against an index which is maintained by the server. The indexes are usually updated on the hour, but this can be adjusted.

OK, so that's the basics. Where do you get started?
There are a ton of templates that come with the client, and a few more that will be on the server. I'd pick something simple like a document library. Create a new one by clicking File...Database...New. Leave your Server set to Local (Local means your workstation) and give it a filename. Change the Template Server to your mail server, and find Document Libary on the list of templates. Click OK, and in a few seconds you'll have your very own database to play with.

Open the database you've just created in Designer. Go to the Forms view and see the Document form. See how all the fields have been added. Double-click on a field to bring up the properties. Go to the Views and see the views that show up. Go to the By Author view and see the columns that are listed. Double-click on the first columns, and see that it has the Categorized by option checked. This means that every documents created by the same person will appear under one heading. Check out the View Selection formula. (Look in the bottom left for the View elements).

Play around with this database: Move elements on the field. Add additional columns to the views, etc.

Good websites:
OpenNTF -- A repository of open sourced templates. Lots of great stuff here. Elements from the mail template this group created has been encorporated into the template released by IBM.
Notes Forums -- This is the best place to go when you run into specefic problems. Looks for the Forum listings midway down on the left.
posted by Eddie Mars at 7:41 PM on May 21, 2007 [1 favorite]

*coughs* That was kind of a long post.
I just wanted to add that IBM Red Books are your friend.
This one in particular will come in handy.

Also, a lot of the core of Notes is changing. The next version, due out this Fall, is taking Notes into a new direction, where Java applets are the preferred design element.
posted by Eddie Mars at 7:46 PM on May 21, 2007

I shouldn't post so late at night. My spelling is awful and my grammer worse.
A clarification: What I meant about Notes databases vs DB2 is that performance is nearly equal until the databases get very large. Notes is only meant for small to mid-sized applications, so please don't try to roll out anything huge on it. A real-time order processing databases with millions of transactions per hour is not a good application to put on Notes. A document library for sharing some Word documents in a department is an excellent fit for Notes.

I wish I could recommend a book, but the sad truth is, there aren't any good Notes books available. Most of what you'll find in bookstores (if you find anything) will be for Notes v6. In many ways, Notes feels like a dying technology. It's a shame, because it is really good at what it does, but it's suffered for years from a funky looking client. Notes 8 is IBM's attempt to fix this and bring Notes back from the brink. I hope it works.
posted by Eddie Mars at 7:58 PM on May 21, 2007

Response by poster: Thank you for the thorough overview! I think I'm situated enough to actually get something out of the documentation now.
posted by Alterscape at 3:59 AM on May 22, 2007

« Older Searching for something 'Lost'   |   Effective Speedreading Self-Study Programs? Newer »
This thread is closed to new comments.