Guide to the Notes/Domino Out of Office

Part 1: Out of Office Design and Features

This document, the first in a series of four, describes in detail the design features and behavior of the Lotus Notes/Domino Out of Office functionality, answering these questions: 1. Out of Office terminology: What are some frequently used terms to describe the Out of Office functionality? 2. What does it do (and not do)? 3. Where is the Out of Office functionality located? 4. How does a Hide When formula affect when you see the Out of Office options in the Notes client? 5. How does the Out of Office functionality work? –What happens when you click the Enable button? –What happens each time the Out of Office agent runs? 6. How does the Out of Office functionality work with local replicas?

Part 2: ACL Access Level and its impact on the Out of Office behavior

The access level that a mail file owner has in the Access Control List (ACL) of his or her mail database impacts the configuration and behavior of the Out of Office functionality in Lotus Notes/Domino. This document, the second in a series of four, describes the Out of Office functionality with respect to each allowable database access level, examining the LotusScript code differences among the following: –Manager access –Designer access –Editor access (available with Notes/Domino version 6.0)

Part 3: Configuration of the Out of Office

For the Out of Office feature to work properly, certain settings in the Server document and Notes databases must be configured. This document, the third in a series of four, describes in detail all the settings necessary to configure the Lotus Notes/Domino Out of Office, relative to each ACL access level. This document, intended for Domino administrators, is a checklist of all these necessary configuration settings.

Part 4: Out of Office in Domino Web Access (iNotes)

This document, the final of a series of four, describes the Out of Office feature with respect to the Domino Web Access (formerly iNotes Web Access) client, outlining the basic differences between using the feature when in the Notes client as opposed to a Web browser.


AdminP Can Delete Readers Fields, Making Documents Visible To All

Deleting a user with the Administration Process (AdminP) can lead to restricted documents being made visible to all Notes users with ACL access to the database. When AdminP processes a ‘Delete in Reader/Author fields’ request, it will delete the user specified from any Readers fields in any databases that have the ACL property ‘Modify all Reader and Author fields’ selected on the Advanced tab. If a Readers field only contains a single entry (the user name being deleted), then the Readers field itself will be removed, making the document visible to all.

AdminP is functioning as designed. If the Readers field was not deleted, the document would not be accessible to anyone, including administrators with Manager access to the database.

The workaround for this situation is to eliminate the potential for this condition to exist. Do not add a single user to a Readers field. A group entry in a Readers field will prevent this. Even if all of the group members are deleted, the group entry is not, and the Readers field will be maintained. If it is acceptable that documents be made inaccessible to all and there is a business need to have a single user in a Readers field, then any second entry, even a dummy entry, added to the field will prevent the Readers field from being deleted by AdminP.

via Lotus Software KnowledgeBase Document# 1092787


!!HELP!! – RBOD problem fixed

When using !!HELP!!, sooner or later a red box will pop-up on your display.

After a lot of try and error it seems that I finally found a solution.

We use the following code to switch betwen the framesets

_defaultNewFrame := @UpperCase(@DbLookup( "" : "NoCache" ; "":"" ; "($LUConfig)" ; "AlwaysOpenNewNavigationFrame" ; 2;[FailSilent] ));
@If(_defaultnewFrame!="YES";
@Do(
@SetTargetFrame("_top");
@Command([OpenFrameset]; "FS-CLOSEDTICKETS"));
@Command([OpenFrameset]; "FS-CLOSEDTICKETS"))

@SetTargetFrame(“_top”) ( intoduced in Notes R5 ) obviously is responsible for the crash.

I tried to substitute @SetTargetFrame(“_top”); and found that @Command([CloseWindow]); ( introduced in R6 ) does the same job; with a little side effect ;-). The database has to be the last in the database switcher … This is logic; a workaround and to be serious, I dunno like workarounds. So, I had to find another solution.

For what ever reason I tried the following formula:

_defaultNewFrame := @UpperCase(@DbLookup( "" : "NoCache" ; "":"" ; "($LUConfig)" ; "AlwaysOpenNewNavigationFrame" ; 2;[FailSilent] ));
@If(_defaultnewFrame!="YES";
@Do(
@SetTargetFrame("_top");
@Command([CloseWindow]);
@Command([OpenFrameset]; "FS-CLOSEDTICKETS"));
@Command([OpenFrameset]; "FS-CLOSEDTICKETS"))

And what shall I say; this seems to be the solution. No RBODs anymore 😉

To avoid an RBOD when switching the language, you have to replace the existing code in the OUT-LANGUAGE outline with the code below

REM { find users language };
_defaultLang := _defaultLang := @UpperCase(@DbLookup( "" : "NoCache" ; "":"" ; "($LUConfig)" ; "LANGUAGE" ; 2 ));
_view:="($LULANG)";
_foundlanguages := @Unique(@DbColumn("Notes" : "NoCache"; "" : ""; _view; 1));
_userlanguage :=@If(@ClientType="Web";
@UpperCase(@LanguagePreference([Region]))[1];
@If(@Environment("HDLang")="";@UpperCase(@LanguagePreference([Content]));@Environment("HDLang")));
_language:=@If(@IsMember(_userlanguage;_foundlanguages);_userlanguage;_defaultlang);

REM { find label };
_key:="outDlgLang";
_label := @Implode(@DbLookup( "" : "NoCache" ; "":"" ; "($LULANGTYPE)" ;_language + "~outline";"typestring");";");
_val:=@Right(_LABEL; _key + "=");
REM { find all possible languages };
_LANGUAGE:="**": @Unique(@DbColumn("Notes" : "NoCache"; "" : ""; _view; 1));
REM {select a new language or delete the entry from notes.ini if "**" is selected};
_NEWLANG:=@Prompt([OkCancelCombo];
@Word(@Word(_val;";";1);"~";1);
@Word(@Word(_val;";";1);"~";2);
@Environment("HDLang"); _LANGUAGE);
REM { Set the environment variable };
@If(_NEWLANG = "**";@Environment("HDLang"; "");@Environment("HDLang"; @UpperCase(_NEWLANG)));
@SetTargetFrame("_top");
@Command([CloseWindow]);
@Command([OpenFrameset];"FS-MAIN")

Is this worth to tell IBM about ?

UPDATE:

According to Damien Katz there is possibly a bug in the frameset window title formula

“Stack traces from rip files are a little unreliable,
but the best I can tell is that its crashing in a frameset window title formula, but I can’t tell why.
Try removing that formula and see what happens. On second look, it could be any frameset formula, not necessary a window title one.”



How many times have you double clicked the right mouse button or pressed the ESCape key on your keyboard and expected the window of a non Notes application to close?

ICODEX ARC is a FREE tool which empowers Windows with this cool feature across all applications


Paste Information Application

Do you have bits of information that you reuse over and over again, and you’re frustrated by re-typing it each time? For example entering conference call numbers into calendar entries, sharing URLs, product information, maps to your home or office, pre-written response text to emails, etc?

Alan Lepofsky posted this great tip in his blog. You can even use it in the Lotus Notes Designer to paste you favorite code snippets into the designer pane.


TaskSwitchXP Pro 2.0

TaskSwitchXP “is an advanced task management utility that picks up where the standard Windows Alt+Tab switcher leaves off. It provides the same functionality, and adds visual styles to the dialog and also enhances it by displaying thumbnail preview of the application that will be switched to. TaskSwitchXP also has a powerful process and window management capability that allows you quickly to close/minimize applications and their groups. The unique capabilities of TaskSwitchXP make it useful for tracking down multitudinous windows, and provide insight into the way Windows and applications work”


Teamstudio Script Browser

Teamstudio Script Browser is a tool to help you use and navigate the LotusScript code stored within an IBM Lotus Notes database in a way that has never before been possible.

Navigating the various places where LotusScript can be defined is tedious and even confusing to even the most-seasoned Domino programmer. There is currently no way to easily navigate all the different ways that script can be linked together.

Itâ??s common to have LotusScript code be defined in different places within a Notes database. Seeing all the code and moving around in Designer to edit that code is not a simple task. You canâ??t see what LotusScript functions are calling other LotusScript functions without performing a database-wide search. Teamstudio Script Browser solves all these problems.

And the best of all … It’s freeware !!


Trigger Happy

“Trigger Happy” (formerly known as agent boost ) by Damien Katz let’s you register LotusScript agents to be triggered by low level Domino events. C Source-Code included. You’ll find the project here.


How To Integrate Open Office And Lotus Notes To Generate PDF …

And OoO Documents Using Lotus Notes Data And COM Automation

Justin Freeman posted this tip in his blog. The article includes a working sample, too

“This database is an example of how to integrate Open Office (OoO) with Lotus Notes using COM automation. It exports information from an Invoice document in a Notes database into a OoO Writer document. The Writer document is then formatted sincely into a printable invoice, then both a completed PDF and OoO version is re-attached to the Invoice document in Notes – all within a few seconds!”


Installierte Office Version ermitteln

Carlos J Hernandez. fragte auf OpenNTF nach einer Möglichkeit, die installierte Office Version auf dem Rechner eines Users zu ermitteln

” I am a Helpdesk Manager with some 3400 Notes users. How can I pull the MS Offices version information when a users created a ticket?”

Die einfachste Möglichkeit ist die Verwendung von @RegQueryValue ( ab Version 5.0.2 ). Der Hintergrund ist folgender:
Jede Office Version trägt einen versionsabhängigen Schlüssel ( 8.0 / 9.0 / 10.0 ) in die Registry ein. Dies ist aber noch kein eindeutiges Kennzeichen, da bei einem Update der Officeversion der Vorgängerschlüssel nicht automatisch entfernt wird. Daher muÃ? man noch weiter in die Tiefe gehen. Mit der WinAPI könnte man das Vorhandensein eines bestimmten Schlüssels abfragen. Eindeutiges Merkmal für die installierte Office version ist der Schlüssel “InstallRoot”. Dieser Schlüssel ist nur in der installierten version vorhanden.
Mit @RegQueryValue lässt sich aber nicht das Vorhandensein eines Schlüssels abfragen, sondern nur der Wert eines Schlüssels auslesen. Daher begeben wir uns auf die unterste Ebene und ermitteln im Schlüssel “InstallRoot” den Wert des Eintrags “Path”. Nur die installierte Version liefert hier einen gültigen Wert.

_retVal:=
@If(
@RegQueryValue("HKEY_LOCAL_MACHINE"; "Software\Microsoft\Office.0\Common\InstallRoot"; "Path")!="";"Office 97";
@RegQueryValue("HKEY_LOCAL_MACHINE"; "Software\Microsoft\Office.0\Common\InstallRoot"; "Path")!="";"Office 2000";
@RegQueryValue("HKEY_LOCAL_MACHINE"; "Software\Microsoft\Office.0\Common\InstallRoot"; "Path")!="";"Office XP";
"no Office installed");
@Prompt([Ok];" ";_retVal)

DOWNLOAD


Most Frequently Used Technotes for Lotus Domino Server

When creating a new copy of a database with File -> Database -> New Copy, there is an option to only copy the design and no documents from the source database.
When creating a new replica of a database with File -> Replication -> New Replica, there is no option like this. The replica stub that is created will not include any documents, but it will not allow administrators to make any modifications to the database design or the ACL.

Is it possible to create a replica of a database (not a replica-stub) without any documents. –> more