Project Wanda = Lotus Notes Nomad

I received an email from Julian Robichaux and Bruce Elgort this afternoon:

Not sure what/who the information source was, but the quote below came from the TLCC Newsletter that was in my e-mail inbox this morning:

7. Notes 7.0.2 will have a “memory stick” option

Version 7.0.2 of Notes (due out in September) will have an option to allow installation of the Notes client on a memory stick. This will allow you to carry around the Notes client and your databases with you and simply plug the stick into any computer and have your Notes client up and running. The Notes client software is all installed on the memory stick so no software is required on the computer’s hard drive. At the moment, support is only planned for the Notes client, not the Designer or Administrator clients. This new feature is called Lotus Notes Nomad.

Insert a RichTextItem into another RichTextItem

As I posted before, IBM does not provide us with a method to insert content from one RichTextItem to another RichTextItem. I’m not talking about AppendRTItem … And it seems that nobody in the Notes Community has a solution for this.

Oh, yes, Ben Langhinrichs has a solution. But I’m not talking ’bout MIDAS. I did some research today and I think that it could be done using native Notes. Keywords are: DXLExporter, DXLImporter, Stream, string operations.

Using native Notes capabilities, I am able to replace a “TAG” with content of the according RTItem from another document.

… To be continued 🙂

For german native speakers, there is a posting on for this topic

RANT: How to solve an SPR – the IBM way

Have you ever tried to INSERT a RichTextItem into an existing RichTextItem instead of appending it ?
Let’s see how we could accomplish this. Actually there is no explicit method in the NotesRichText class to insert an item, but let’s see what the AppendRTItem method could do for us.

Oh, YES, here it is … right from the designer help ( version 6.5.1 ):

By default the insertion occurs at the end of the item. You can change the insertion point with BeginInsert and EndInsert.

This is easy, here is the code

Dim ses As New notessession
Dim db As NotesDatabase
Dim col As notesdocumentcollection
Dim doc As  NotesDocument
Dim rtitem2 As NotesRichTextItem
Dim rtitem1 As NotesRichTextItem
Dim rtnav As NotesRichTextNavigator

Set db=ses.CurrentDatabase
Set col=db.unprocesseddocuments
Set doc=col.GetFirstDocument

Set rtitem1 = doc.getfirstitem("Body")
Set rtitem2 = doc.getfirstitem("RTF")

Set rtnav = rtitem.CreateNavigator
Call rtnav.FindNthElement(RTELEM_TYPE_TEXTPARAGRAPH,1)

Call rtitem1.BeginInsert(rtnav)
Call rtitem1.addnewline(1)
Call rtitem1.AppendRTItem(rtitem2)
Call rtitem1.EndInsert
Call, True)

But what is this ? When you execute the code you’ll get an error message: “Method is not available.”

Hmm, do a search on the Lotus Notes KnowledgeBase and you’ll find this entry. And you can see in the document that there is an SPR# LGAA5N6FHT. But , huuuh, what is that ?

and was determined not to be a software problem. Notes and Domino are functioning as designed.

Does the documentation does not implies that it IS possible ? OK, it takes some time to code a new function and do all the quality stuff ( the KB document ist from the year 2004 as well as the mentioned SPR ) . Maybe they built it into the Notes 7 codestream.

But, NO WAY !!! Instead of having it got to work they just changed the designer help.

The insertion occurs at the end of the item. AppendRTItem cannot be called after BeginInsert.

IBM. please don’t tell me that ist is not possible to build this function !!! You’ve had 2 years. Instead of NEW classes and methods and stuff you should rather finish the coding of already intended methods in existing classes.

If you are not able to do the coding, please ask Ben Langhinrichs. He is able to solve the problem. And inserting RTItems the same way as inserting pure text after BeginInsert is a function that is needed, indeed.

I’ll hope tha some of the new guys at IBM will listen to the customers needs.

Create PDF documents from Lotus Notes with iText

iText is a library that allows you to generate PDF files on the fly.

The iText classes are very useful for people who need to generate read-only, platform independent documents containing text, lists, tables and images. The library is especially useful in combination with Java(TM) technology-based Servlets: The look and feel of HTML is browser dependent; with iText and PDF you can control exactly how your servlet’s output will look.

iText requires JDK 1.4. It’s available for free under a multiple license: MPL and LGPL.

[ via SearchDomino ]

Code Disaster

Bad code ? What do you think ? …

on error goto there
.' some code

End If
 End If
. ' more Code, no exit function so far

 If Err > 0 Then
  Call l.LogAction("Error in some sub " & Cstr(Err) & " " & Error$ )
  Resume outa_here
 End If

End Function

another example

 ads = doc.size
 If ads = "" Then ads = "0"
 If Ccur(ads/1024)  > Ccur(mailsize) Then

This is not Scary Movie #n but the Real Life …


Domingo is a simple, consistent, object-oriented easy-to-use interface to the Lotus Notes/Domino Java-API.

f you are a Lotus-Script developer and currently learning Java, with domingo you can access Lotus Notes/Domino as easy as with Lotus-Script. Here are some other important reasons:

* No recycling of notes objects needed at all.
* You donot have to recycle any notes objects!
* Just one more time: recycling of all notes objects is completely handled by domingo!
* exception handling is almost not necessary, but optionally possible
* domingo comes with JavaDoc that can be used in-place in your favorite development environment
* Easy access to the Notes client in Java from outside of the Notes client.
* Stable access to Lotus Domino from a J2EE Web-Application server

public class AgentContext extends DAgentBase {
public void main() {
DDocument doc = getDSession().getAgentContext().getDocumentContext();
// do something with the document;

[ via ]

Import Utility for Lotus Notes/Domino

This is a BETA version of the Lotus Notes / Domino Import Utility developed by AGE Computer Consultancy.

  • Specify import field mapping.
  • You can preview data from the import file with the specified field mapping to ensure data will be imported into the correct fields.
  • Options are available for the handling of imported duplicate records.
  • You can create your own customized scripts to be executed before, during and / or after importing.
  • ComputeWithForm can be called after each record is imported if required.
Import Utility for Lotus Notes/Domino

Schuld und Sühne

Da wird der sogenannte “Ehrenmord” mit einem dem Tatbestand nicht angemessenem Urteil gesühnt, wir sind aber aufgrund unserer verquerten Gesetze nicht in der Lage, integrationsunwillige Personen ohne grosse Umstände auÃ?er Landes zu schaffen.

Warum lassen wir es zu, daÃ? unsere Werte dermaÃ?en mit FüÃ?en getreten werden ? Haben wir keine Ehre ??

Coming Soon

New Escalation EngineA new version of !!HELP!! is coming soon. ( V. 1.5.1 )

I guess we will release the new version in two weeks from now on. Thomas added a lot of new functions and bug fixes.

I myself totally redesigned the escalation engine. The whole set of design elements for the escalation engine will be available for download as soon as !!HELP!! 1.5.1 has been released.

You then can use the engine in your own applications.

A handful of design elements will enable your application to send ( multi lingual ) notifications about escalated documents. New Options

Thomas Schulte today released the first version of !!DRIVER!! on !!DRIVER!! is one of a bunch of databases to work together with !!HELP!!. There will be a !!SYSTEM!! db in the very next future.

based on the work done for !!HELP!!, !!SYSTEM!! targets the soft and hardware inventory parts of a companies helpdesk. It is multilanguage enabled the same way !!Help!! is and shares some of the basic functions as EscalationHandling or configurable InputValidation or configurable menues
With this database you can
– inventarize all your computer systems.
– create new systems based on systemtemplates
– create systemtemplates based on an active system
– add or remove single components to a system while the system is active
– have systems as active systems or systems in store
– link systems to one or more people or department based on a defineable connection to any notes database where your organisation structure resides (to get a decent booking solution later on)

In summary you can catch the whole lifecycle of systems you use in your database.

And we will introduce !!HEUREKA!!; the Knowledge- and Solution database for !!HELP!!.

There’ll be a lot of things to SnT; not only on Thursday …


( … einer von vielen seiner Art )

Ruettli Schule, Berlin

Ein Knirps wirft eine leere Plastikflasche, ein anderer schmeiÃ?t einer erwachsenen Frau, die vor dem Zaun steht, ein arabisches Schimpfwort an den Kopf. “Hurentochter”, hat er gesagt.

Da spuckt sie ihm ins Gesicht. Willkommen an der Rütli-Schule.

Project Wanda – just Vaporware ??

I wonder if IBM’s project WANDA really exists. It has been announced at the Opening General Session ( Min 41:00 ) of Lotusphere2006.
Was it Ken Bisconti showing an USB-Key to the audience ?

There have been a lot of bloggers sitting in the first row.

If I were Mike Rodin, I’d step down from the stage to those bloggers and have plugged in the key to a randomly choosen computer and start the Notes Client from the thumb.

Nothing like this happens …

I guess, WANDA is Vaporware

Using ScanEZ to modify multiple fields on multiple documents

This is a small tip I would like to share with all users of Ytria’s ScanEZ. Last week I had to modify hundrets of documents in the Domino directory. The domain part of the user’s internet address had to be changed to a new domain.
The old internet mail address should be added to the FullName field to make sure that mail is delivered when the sender does not use the new internet mail address. Here is my formula:

tmp:= @Implode(FullName;"#");
tmp:= tmp + "#"+ @LowerCase(InternetAddress);
@SetField("InternetAddress";@ReplaceSubstring( @LowerCase(InternetAddress) ;_oldSuffix ; _newSuffix))

I know that ScanEZ can use formulas to modify a field in multiple documents; but I could not find any tip on how to modify multiple fields in multiple documents at a time using formulas (i.e. a formula that will compute with respect to the current document) in ScanEZ. There is a how-to in the FAQ on the Ytria site, but this does not fit my needs

I played around with this awesome tool and here is what I found out.

  • Select the documents to be modified

    Select Documents

  • Choose “Open selected documnet(s) in ScanEZ” from the Actions menue
  • Select one document from the documents collection
  • Leftclick on the collection’ header
  • Click the “Diff” button


  • Rightclick an entry in the right window and select “Modify Values” from the context menue

    Modify Values

  • Click the “@” button to use a formula; type the fieldname for a temporary field into the name field ( be sure that the fieldname is not part of the document )

    Temporary Field

  • Type your formula into the field at the buttom of the dialog


  • Click the “OK” button

After the changes are done, you can delete the temp field from all documents.