Latest Updates

Products & Applications

Showtime
My Blackberry Enterprise Server Push Utility for the Lotus Notes Client, allows you to create Jobs for individual Channel, Message, and Browser Content Pushes, as well as allows you to delete Pushed Channel Icons from defined recipient devices.

Time Tracker
The idea is simple. At the start of your day - upon completion of your first task - create an entry highlighting what you did and whether you feel it was an efficient or inefficient use of your time. Based on several requests, you can also select the priority, apply categories, or even align your time against a project.

For Lotus Notes Client v8.0 and above, you can use the Time Tracker Widget to make this process even easier!

Zephyr
My Configuration-based Rich Text Mail Merge and Emailing Utility, Zephyr allows you to create rich, data-driven emails to support automated workflow - all via Microsoft Word Mail Merge-like architecture. Dear <firstname> allows you to personalize each email message not only to the individual recipient, but also to the individual application workflow event!

xCopy
xCopy is a simple configurable xCopy client for the Lotus Notes client. By creating and defining xCopy Profiles, you can batch process your file backup or remote upload jobs. With the addition of the xCopy sidebar widget, you can easily kick-off these jobs, and modify both the xCopy Profiles and xCopy itself.

Community & Resources

Lotus Technical Information & Education Community

The Lotus Technical Information & Education community is comprised of IBM, business partner, and customer subject matter experts who use product wikis, published articles, white papers, community blogs and the latest in social media to build and share high quality technical content.

OpenNTF.org - Open Source Community for Lotus Notes Domino

OpenNTF is devoted to enabling groups of individuals all over the world to collaborate on IBM Lotus Notes/Domino applications and release them as open source.

developerWorks Lotus : Wikis

Share your deployment experiences and best practices in our wikis and help IBM to create scenarios for successful deployments. Contribute to the community by collaborating on shared content and leverage the shared knowledge from that community.

Welcome to dominoGuru.com!

Focused on being the go-to resource for the IBM Lotus Notes Domino developer, dominoGuru.com delivers introductory-level best practices and advanced development deep dives for the IT professional, book and gadget reviews, and technical weblog, and more!

Register Now for the XPages Guru Webinar: June 1st, 2011 @ 11AM-12PM [Eastern]

05/16/2011 02:25:53 PM by Chris Toohey

IBM Lotus Notes Domino XPages Guru Webinar Featuring an all-star cast of characters, the XPages Guru Webinar on Jun 1, 2011 from 11:00AM - 12:00PM (Eastern).

I'll be covering how to go from biting your mousepad trying to get a $$SearchTemplateDefault to render search results juuuuuuuust right to bringing Rapid Application Development back to IBM Lotus Notes Domino for multiple-client support.

And I won't be alone!

Agenda

  • What is XPages? - Matt White
  • Case Studies - Discussion database, XTalk, etc. - Bruce Elgort
  • Benefits of XPages - Matt White
  • Why should I transition? - Tim Tripcony
  • Roadmap to XPages (How do I get from here to there?) - Chris Toohey
  • What resources are out there? - David Leedy
  • Q & A

C'mon, what else are you going to be doing on June 1st? Might as well sign up and get your learn on from some of the best in the business using one of the latest and most powerful tools in the IBM Lotus Notes and Domino developer kit to produce some truly enterprise-grade solutions while shattering preconceptions of the functional capabilities of the Lotus Notes Domino platform.

... or y'know, you could re-write that search in LotusScript and use Prints so you finally have complete control over what's written to the browser after a Full Text Search.

SSJS Integration of Zephyr to support Mail events in XPage apps

12/15/2010 10:25:52 AM by Chris Toohey

So simple it hurts, this SSJS block will create a new JobDocument in Zephyr containing all of the NotesItems of thisdoc for processing.

var zdb = session.getDatabase(session.getCurrentDatabase().getServer(), "zephyr.nsf");
var zdoc = zdb.createDocument();

thisdoc.copyAllItems(zdoc, true);
zdoc.replaceItemValue("form","jobdocument");
zdoc.save();

I find myself using this again and again where I want to support the traditional LotusScript-based workflow and notification email events in a NotesDatabase that I'm creating an XPages-based UI/UX for... while giving the project champion the ability to modify those same emails via configuration of Zephyr as easily as they would Lotus Notes Stationary.

One of those simple things that can be a huge win!

I just have to get around to creating an XPages-based version of Zephyr... then we'll be all set!

Revisited: Preferences via Logic-Driven NotesDocument UNID

10/22/2010 08:40:27 AM by Chris Toohey

IBM Lotus Notes Domino Application Developers and Designers heed my warning -- you are doing it wrong! DBLookups, Profile Documents, and hard-coded variables will kill your NotesDatabase applications once they are in-use. There is however, a simple solution...

It was September of 2008, and I was on a kick: Logic-Driven NotesDocument UNIDs.

You may also remember this video tutorial/demo:

Which also came with this example download:

Preferences - Example Application Download

So, I ask you -- are you using this technique today in your IBM Lotus Notes Domino Application Development efforts?

(Click through for more...)

Simple HTTP Request Consumer - Traditional IBM Lotus Notes Domino

10/18/2010 12:13:00 AM by Chris Toohey

The ability to consume an HTTP Request is a building block for not only HTTP-accessible applications but is critical in 3rd-party integration.

It is also so ridiculously simple that there's absolutely no excuse: it should be used in every one of your IBM Lotus Notes Domino Web Applications.

Recently, I worked on a solution which consisted of my app communicating with a 3rd-party service. That service would report it's success/fail response via HTTP Request to a submitted URL (via the 3rd-party service API). Simply put, I was able to tell service to send a confirmation via HTTP Request to a specific URL.

That URL, since I was using Traditional IBM Lotus Notes Domino Design Elements, pointed to an Agent Design Element.

Since the HTTP Request could contain any information - from successful processing to failed job status to miscellaneous chatter, I wanted to make it as flexible (as well as future-proofed) as possible.

My response.http Agent looked something like this:

%REM
    Agent request.http
    Created Oct 18, 2010 by Chris Toohey
    Description: Comments for Agent
%END REM

Option Public
Option Declare

Sub Initialize()
   
    Dim s As New NotesSession
    Dim doc As NotesDocument
   
    Set doc = s.Currentdatabase.Createdocument()
    Call s.Documentcontext.Copyallitems(doc)
    Call doc.Replaceitemvalue("form", "response")
    Call doc.Save(True, False, False)  
   
End Sub

Pretty simple, huh? I just - literally - consume the HTTP Request via the NotesSession DocumentContext and create a new NotesDocument in the current NotesDatabase.

This technique gives you limitless application -- any communication with the request.http Agent Design Element will result in a response NotesDocument.

This is, of course, using Traditional IBM Lotus Notes Domino Design Elements. My follow-up post will show you how you can achieve the same functionality in an XPages-world!

Controller API Utility v1.0 - Take MVC Architecture to your IBM Lotus Notes Application

07/12/2010 12:15:00 AM by Chris Toohey

Controller API Utility v1.0

The Controller API Utility allows you to completely maintain application and business logic separate from user interface design, allowing you to evolve the application as needed with minimal code and design maintenance.

The Controller API Utility -- or Controller -- consists of Control Documents that you define, which can conditionally set values of fields (NotesItems) on a document (NotesDocument), or launch an agent from the active Lotus Notes application.

This document will first walk you thru the setup of Controller, and then it's use in your own Lotus Notes apps.

(Click thru for the complete document & find out how you can get the Controller API Utility for only $5 USD...)