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!

View PostPaste and the active/inactive toggle

02/06/2008 10:46:13 PM by Chris Toohey

While working on Project: Yellowcake, which (read: another hint) falls under the classification of a utility, I came across an interesting need.

Let's say you have an engine that looks to active documents for it's tasking. You can (and I have) simply control what's active by this definition by utilizing and accounting for a status toggle - active:inactive - which will allow the user to enable/disable a given document while keeping said document in the application. Pretty standard stuff, really...

But what happens when someone copy/pastes an active document? You have, until they modify the pasted or source document(s) duplicate tasking documents in your engine!

See, if I allow the user to copy/paste a given document into an active engine, it could produce some pretty serious side effects - the least of which being that the application simply doesn't work.

And the truth is this wasn't a problem, and kinda wouldn't be, unless you have a very aggressively scheduled or manually triggered Domino agent (manuallly triggered would apply to Project: Yellowcake here) grabbing all active documents. So the answer was to simply flag each pasted document as inactive, and to do that, I've added the following code to the PostPaste events of my UI Views:

Sub Postpaste(Source As Notesuiview)

 Dim s As New NotesSession
 Dim db As NotesDatabase
 Dim dc As NotesDocumentCollection
 Dim pdoc As NotesDocument

 Set db = s.CurrentDatabase
 Set dc = source.Documents

 If (dc.Count > 0) Then
  Set pdoc = dc.GetFirstDocument
  Do Until pdoc Is Nothing
   If pdoc.status(0) = "active" Then
    Call pdoc.ReplaceItemValue("status", "inactive")
    Call pdoc.Save(True, False, True)
   End If
   Set pdoc = dc.GetNextDocument(pdoc)
  Loop 
 End If

End Sub

Very simple, and get's the job done quick and easy-like!

You can use the same methodology to allow your application users to quickly duplicate documents, while pre-setting and/or clearing certain functional or would-be-unique fields!

- Update -

Check out the comments: source refers to the copied documents, not the pasted documents. And while this might still work in my application, it warrants pointing out this huge misconception on my behalf!!

For more information, check out Andre's Querypaste, a popular misconception, and of course the comments in this post!