Archive for the ‘Lotus Notes’ Category

Enable File > Application > Install in Notes 8

Thursday, July 16th, 2009

Guess this is widely published on the web but since I was searching for this like mad today I have to write it down for the next time I need it.

In order to enable the Eclipse update manager UI in Lotus Notes:

  1. Close you Lotus Notes client
  2. Browse to the plugin_customization.ini in the notes application folder\framework\rcp
  3. Add com.ibm.notes.branding/enable.update.ui=true
  4. Save and close file and restart Lotus Notes

You can now find the Eclipse update manager under File > Application > Application Management.

lotus-application-management

Install Lotus Notes on Windows 2008 Terminal Services

Tuesday, July 14th, 2009

Is anyone of you aware whether or not IBM is planning to support the set-up of Lotus Notes 8.5.x in a pure Windows 2008 Terminal Services environment (without making use of Citrix)?

IBM’s technote is stating quite clearly that it only supporting installations on Citrix. I am well aware that the installation is still possible; however, I would be far more confident to implement it on a large scale with a clear support statement from IBM.

Can you disable the Recent Contacts feature using a policy?

Thursday, April 2nd, 2009

IBM recently updated/published a technote Can you disable the Recent Contacts feature using a policy? explaining that this is currently being investigated. While it is true that there currently is no user interface component to disable that feature using a policy you could combine the information published in technote 1267115 and technote 1196837 to still achieve the same.

In adding a new field $PrefDisableDPABProcessing to the desktop setting and populating it with the value of “1″ you effectively disable the recent contact features for all clients whose policy is enforing the desktop setting with the added field. Please follow above technotes for more details.

Type mismatch error caused by incorrect regional settings

Monday, December 22nd, 2008

Today was head scratching day again. Lotus Notes 8 was raising an error message that sounds so unusual for a Lotusscript developer:

Type mismatch in method CoerStrToNum: STRING found, double expected.

The only change to the environment has been the upgrade from Notes 7 to version 8. As it turns out, there are also a few notes about this message on Google, including a rather dubvious technote from IBM.

As it turns out, the source of the issue can be found in these two lines of code.

myDate$="17/01/2008 7:17"
var=CDat(myDate$)

Interstingly enough is the error message new to version 8 of Lotus Notes, obviously raised itself by the underlaying C++/Java code. All previous code streams, including the 8 debugger are raising the familar “type mismatch” error. This might create the impression that a regression bug has been introduced in Notes 8 – which is completely false.

Anyhow, who would have expected that the whole issue has been caused by a wrong regional setting on the underlaying operating system? In this case it has been set to US (American), with a date format of mm/dd/yyyy. As there isn’t a 17th month in a year the code fails.

I guess I would leave it open for discussion whether this has been an oversight by the developer, who couldn’t imagine that his/her code would ever been run in different region or a mistake by the persons setting up the laptop to not configure the (for New Zealand) proper date format dd/mm/yyyy.

Applying form formulas to document links

Monday, September 29th, 2008

Since I first discovered the nature of document links I was always wondering about the purpose of each individual attribute. Why would I possibly need a view attribute when I just intended to link to a unique document within a specific database defined via the replicaid? Just wait and see what interesting thought IBM (or probably IRIS) has put into the definition of a document link and how they implemented it.

Imagine an application having different form formulas in different views. ViewA is having a form formula that opens the document with FormA, ViewB’s form formula is enforcing the document to be opened using FormB. If a document link is created and sent out to an user the document link created from within ViewA will open the document using FormA whereas the link created from within ViewB will open the document using FormB. Even when creating the document links after the document has been opened the view information is retained and contained within the document link. This is a pretty smart behaviour that totally makes sense. If UserA is sending out a link to UserB it is only reasonable that both are having the same results on the screen.

In order to fully understand this behaviour we need to look into the background design of a document link. As described above there are 6 attributes in the doclink element: document, anchor, view, database, server and description. In order to successfully link to any document within a database only the document element containing the universal ID of the document is required*. Each of the document links in above example did have another element defined, the universal ID of the view to be used when opening the document from a link. Having this additional information attached to the document link enforces the document to consider the form formula of the defined view when opening.

How does this apply to the day-to-day application design? Well, it depends. I guess it could be anything from not at all to massively! First of all it is worth mentioning that each linked document requires a view definition in order to determine whether an alternative form should be used or not. Wait, this sounds different to previous paragraph! Alright, the definition of the view can be done directly in including the universal ID of the view or indirectly by omitting this element. Omitting the view element forces the document link to evaluate the form formula (if existent) from the default view of the database. This is an important fact to note as each background function attaching a document link is checking for the existence of a default view during runtime prior to perfoming an action. This includes methods like NotesRichTextItem.AppendDocLink or the @MailSend function with [IncludeDocLink] option. Once called without a default view being defined within an application the error “Couldn’t get default View id for database” will be raised.

All the facts above are getting really important though when you start creating or manipulating document items using the NotesDXLImporter class. To come back to the subject of this post, you could indirectly apply a form formula to a document link in defining a hidden view, that doesn’t need to display any documents but defines a different form than the form that has been used to create a document. You could then utlise Domino XML (DXL) to send out a document link defining this special view to be used for the form definition. Unfortunately the view events of this hidden view are not triggered when using the document link. Although the alternative form could contain a form event to count access via link or run any special processing. The sky is the limit …

* Note that the Domino Document Type Definition (DTD) is solely defining the document element compulsory. This is true if the linked document resides within the same database. If the link is being sent out though it requires at least the database element to be defined as well.


Creative Commons Attribution-NonCommercial 3.0 Unported
This work by cubetoon is licensed under a Creative Commons Attribution-NonCommercial 3.0 Unported.