How to migrate mail messages and contacts from Outlook Express to ND 6.x and later

How can you migrate mail messages and contacts from Microsoft Outlook Express to Notes?

You can use the Upgrade Wizard (Nupgrade.exe) release 6 or later to convert messages and contacts from Outlook Express to Notes. This can be accomplished by following the steps detailed in each of the following sections:

Launch the Upgrade Wizard to create an account for your Notes mail file in Outlook Express.
Transfer messages from Outlook Express to your Notes mail file.
Transfer contacts from Outlook Express to your Notes Personal Address Book.

Launch the Upgrade Wizard to create an account for your Notes mail file in Outlook Express:

1. Open a Command Prompt window by selecting Start -> Run and then type:

cmd.exe

2. Change to the Notes Client program directory. For example:

cd Program Files\Lotus\Notes

3. Enter the following command to launch the Upgrade Wizard:

Nupgrade.exe 4

4. Click “Next” to continue past the Welcome Screen.
5. Click “Finish” to begin the conversion.
6. When prompted, enter the password for your Notes ID file.
7. Specify the following information to create an account for your Notes mail file in Outlook Express:

Account Name: (For example: Lotus Notes)
User Name: (Your Notes shortname)

IMAP Server: (Your Domino mail server)

8. Click “OK” and “Exit”.

Transfer messages from Outlook Express to your Notes mail file:

NOTE: In order to complete the steps in this section, the IMAP task must be running on the Domino server. Otherwise, users will receive the error “The connection to the server has failed” when attempting to transfer messages.

1. Launch Outlook Express.
2. Open any folder in the Local Folders mail account.
3. Perform one of the following steps to transfer messages to your Notes mail account:

Drag and drop messages into your Notes mail account folders, or
Copy messages to the Notes mail account folders, or
Move messages to the Notes mail account folders.

Transfer contacts from Outlook Express to your Notes Personal Address Book:

The Upgrade Wizard adds a “Lotus Notes Personal Address Book” option to the Outlook Express Address Book Export Tool dialog box. Perform the following steps to export your Outlook Express contacts into your Notes Personal Address Book:

1. Launch Outlook Express.
2. Select File -> Export -> Address Book.
3. Select “Lotus Notes Personal Address Book”.
4. Click “Export”.
5. Select your Notes Personal Address Book.
6. Click “Migrate”.

Lotus Notes Knowledgebase #196232


Excel Report Class

Christian Gorni today released his Excel Report Class on OpenNTF.

Just use the database. It includes the complete ExcelReport class and two agent examples. As a teaser, the following is all you need to export a view to excel in LotusScript:

Set view = ws.CurrentView.View
Set report = New ExcelReport(excelfilepath, False)
Call report.exportNotesView(view, Sheet, OffsetX, OffsetY, isWithHeader, includeIcons, includeColors, includeHidden)
Call report.setVisibility(True)

Of course the obvious (getting and setting cells, saving, …) is also included. Be careful, because error handling is not yet implemented.

Here are the implemented methods:

Sub new (xlFilename As String, isVisible As Boolean)
Sub delete ()
Function save ()
Function saveAs (filename as String)
Function quit ()
Function setCell ( Sheet As Variant , row As Integer , column As Variant , value As String )
Function getCell ( Sheet As Variant , row As Integer , column As Variant ) As String
Function setVisibility (isVisible As Boolean)
Function setCellColor ( Sheet As Variant , row As Integer , column As Variant, innercolor As Variant )
Function setCellFont ( Sheet As Variant , row As Integer , column As Variant, style As Variant, size As Variant, color As Variant )
Function getVersion () As String
Function exportNotesView (view As NotesView, Sheet As Variant, OffsetRow As Integer, OffsetCol As Integer, isWithHeader as Boolean, includeIcons As Boolean, includeColors As Boolean, includeHidden As Boolean)

Lichtbildbelehrung

epassWozu die Bürokraten in diesem unserem Lande fähig sind, zeigt sich bei der Einführung der neuen Reisepässe ab dem 01.11.2005. Auf einem Chip in dem Dokument werden biometrische Daten erfasst.
Grundsätzlich kann es einem Chip herzlich egal sein, ob meine Nase schief oder meine Ohren zum Segeln neigen. Nicht aber so den deutschen Behörden.

Damit die Technik nicht zusammenbricht und beim Vergleich des dem Reisepass beigefügten Foto des Inhabers nicht zu viele Varianten berücksichtigen zu müssen, hat man eine sog. Foto-Mustertafel erstellt.

Wer diesem Idealbild nicht entspricht muss bei der Beantragung des Reisepasses folgende Erklärung unterschreiben:

“Hiermit bestätige ich, dass ich von der Ausweisbehörde über die Qualität/Beschaffenheit meines vorgelegten Lichtbildes belehrt wurde.

Ich bestehe auf Annahme dieses Lichtbildes durch die Passbehörde.

Entstehende Schadensersatzansprüche, wegen Abweisung an einer Landesgrenze oder auf Grund polizeilicher Identitätsvorstellungen, kann ich gegenüber der Passbehörde nicht geltend machen. Die Kosten für einen neuen Ausweis habe ich voll zu tragen.”

Quelle: heise online


How to use a list to get around the Array size limit

In LotusScript, arrays have a upper boundary limit of 32,767. Specifically, the subscript range may be from -32787 to 32,767. If you try declare a larger Array size, you receive the following error when saving the code:

Illegal array bound for

If you attempt to use ReDim to redimension an Array beyond the bounds, the following error will occur:

Overflow

Depending on how the bound value is set, the above error can occur when saving the code or when executing the code.

You may use a List variable to work around the Array size limits in LotusScript. Lists are automatically resized as elements are added or removed. Lists differ from Arrays in that they are not categorized by an integer value, but instead by a List tag. The List tag can be any string.

In cases where you are converting from using an Array to a List, it may be easiest to use a string representation of a integer value for the List tag. This can easily be done using the Cstr function.

For example, if you used the following construction with an Array:

Dim i As Long
Dim arraytest() As String
For i = 0 To 100000
    Redim Preserve arraytest(i)
    arraytest(i) = ...
Next

The List equivalent usage would be:

Dim i As Long
Dim mylist List As String
For i = 0 To 100000
    mylist(Cstr(i)) = ...
Next

Lists only allow unique List tag values. This can be beneficial in some application designs.
For example, if you want to have a unique List entry for each part number, you could use the part number as the List tag. You could note how much inventory you had of particular parts by using the part number as the List tag and the number of parts as the List entry value:

Dim parts List as Integer
parts("N001")=10
parts("N002")=12

The IsElements function can be used to determine if a List contains a List tag:

If (Iselement(parts("N003")) = False) Then
      'Returns False if there is no list tag "N003"
End If

NOTE: The following usage is allowed even if the List tag did not previously exist. The result is that the List entry for “N004” in the parts List will have a value of 1.

parts("N004")=parts("N004")+1

The above construction would be useful when decrementing a List value by a certain amount. For example, if you wanted to decrement the number of parts by an order size:

If ordersize>parts("N004") Then
      'Not enough parts on hand...
Else
     'Have enough parts, decrement inventory by ordersize
      parts("N004")=parts("N004")-ordersize
End If

Lotus Notes KnowledgeBase document #1221020


Neuwahlen im März 2006 ?

Höre ich mir so die Nachrichten an, sieht es fast so aus … was juckt es mich; da gehe ICH nicht hin.
“Münte” hat seinen Kandidaten für den Vorstand nicht durchgebracht und schmollt nun; Stoiber zieht es nunmehr wieder in die Wälder ( “Schickt den Stoiber in die Wälder wegen der Semestergelder hallte es 1979 durch Münchens StraÃ?en ).
Und “Angie”; blass und farblos, sieht sie sich nun mit einer “neuen Linken” konfrontiert, die sie bei den Koalitionsverhandlungen mit der “alten Garde” gar nich berücksichtigt hatte.


Pad A Number Field With An Exact Number Of Leading Zeros

If you have a number that needs to be padded with leading zeros, this technique does it using Formula language. The same technique (with appropriate syntax changes) can be used in most programming languages.

Padded := @Right( "00000000" + @Text(Number); 8)

This example returns an eight-character text string (stored in variable “padded” in this example). This string consists of the original value in the Number field, padded with leading zeros to a total length of 8 characters. For example, Number 123 results in Padded 00000123.


Play MP3 without WINAMP using Lotus Script

Do you remember “MP3 PlayMate ” for Lotus Notes written by Allan Reinhold Kildeby ?

Well, it is a very nice tool, but you need Winamp to play the mp3 files.
Today it is one of these boring sundays and I thougth to myself: “Wouldn’t it be nice to play the mp3s directly thru some nice API code ? “.

By using MCI, you can play most media files. but normaly, it doesn’t work for MP3. This is because mp3-data needs to be rendered specially. After a beer or two i had an idea while looking at the code using DirectShow: why not play the mp3-files as VIDEO? OK, here’s how it works:

(1.) Declare the Function

Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA"_
(Byval lpszCommand As String,_
Byval lpszReturnString As String,_
Byval cchReturnLength As Long,_
Byval hwndCallback As Long) As Long

(2.) Use “mciSendString” to invoke the commands:

Syntax: mciSendString(sCommand, 0, 0, 0)

where sCommand is:

Load the mp3 file:=  “open ” & sMp3FileLocation & ” type MPEGVideo alias Mp3File”
Play the mp3 file (Now you can use the Alias):= “play Mp3File” from 0″
Pause:= “pause Mp3File””
Stop:= “stop Mp3File”
and unload from mem, unlock file:= “close Mp3File”

(3.) put the commands into a button for testing purpose

Sub Click(Source As Button)
	Dim sCommand As String
	Dim sMP3FileLocation As String
	sMP3FileLocation = "whateverMP3youlike.mp3"
	sCommand = "Open " & sMP3FileLocation & "  type MPEGVideo alias MP3File"
	Call mciSendString(sCommand, 0, 0, 0)
	scommand = "play MP3File from 0"
	Call mciSendString(sCommand, 0, 0, 0)
	Msgbox "OK"
	scommand = "stop MP3File"
	Call mciSendString(sCommand, 0, 0, 0)
	scommand ="close MP3File"
	Call mciSendString(sCommand, 0, 0, 0)
End Sub

(4.) tweak PlayMate
(5.) Have fun !!


Code eines View Icon ermitteln

iconcode

“Wert als Symbol darstellen” ist in Ansichten eine schöne Möglichkeit zur Visualisierung von Feldinhalten etc. In einem Konfigurationsdokument soll dem Admin der Datenbank die z.B. Möglichkeit gegeben werden, die Auswahl der Icons selber vorzunehmen. Aber wie war noch gleich der Wert eines bestimmten Symbols ?

Die Maske kann an geeigneter Stelle mit der Formel

@DialogBox("($dlgIconCode)"; [AutoHorzFit] : [AutoVertFit] : [NoCancel] ; "Please select an Icon:");
@Command([ViewRefreshFields])

ausgerufen werden. Die Icons und der zugehörende Code können dann bequem interaktiv ausgewählt und in das Konfigurationsdokument übernommen werden.

DOWNLOAD


Check Formula Syntax

Beim Erstellen von Aktionen, die in Masken oder Ansichten eingebunden werden sollen überprüft Lotus Notes automatisch beim Speichern, ob die Syntax der eingegebenen Formel richtig ist.

Was aber, wenn man eine Formel an ein db.search übergeben möchte? Man kann natürlich die zu verwendende Formel im Developer Client von Lotus Notes überprüfen lassen und dann in seinen Script Code einbinden. Das funktioniert solange, wie man mit starren Formeln arbeitet.
Wie prüft man aber die Validität einer Formel, wenn diese z.B. über ein Konfigurationsdokument eingegeben wird.
( z.B. in !!HELP!! ) ?

Seit Version 6 gibt es die Formel @CheckFormulaSyntax( Feldname ). Feldname enthält die zu prüfende Formel.

CAPTION	:= "Formula Syntax Check";
SYNTAX_OK:= "Formula Syntax is OK";

Result	:= @CheckFormulaSyntax(nFormula);
Error	:= Result[1];
Line:= Result[2];
Column:= Result[3];

@If(Error = "1";
	@Prompt([Ok]; CAPTION; SYNTAX_OK);
	@Prompt([Ok]; CAPTION; "Line " + Line + " Column " + Column +": " + Error)
)

Wie ich eingangs erwähnt habe, gibt es die Formel erst ab Version 6. Aber auch unter R5 lässt sich die syntaktische Richtigkeit einer Formel überprüfen. Dazu bedarf es aber der Notes API. Die hier beschriebene Version funktioniert auf Windows Clients.

Read More


madicon NotesKiller 1.0 (English) – Freeware

Manfred Dillmann stellt ein kleines Programm zum Download bereit, welches das Eintippen des NSD Aufrufs von der Kommandozeile in eine anwenderfreundliche GUI verlagert.

A Windows 32 tool to clean up (kill) any leftover processes after a Crash of your Notes Client – your running Notes Client will be killed, too… 😉

UPDATE 1.2.0

– Now stores all settings in the file noteskiller.ini
– Delete the file Cache.DSK or Cache.NDK (optional)
– Calls NLNOTES.EXE instead of NOTES.EXE during the restart (optional)
– Runs in “silent mode”. Use the command line switch -s

madicon NotesKiller 1.2.0

Rebuilding a Notes Mail Inbox

Your Inbox in your mail file has become corrupt for whatever reason. Because the Inbox is a folder, it does not use selection formulas to give a collection of documents. It is built by the router depositing messages there. Once the folder is destroyed or replaced, the collection is lost with it. After replacing it with a new one, only new documents will be deposited in it from that point on.

Below is a script that can be used to repopulate your Inbox with the older mail messages that have not been currently filed in folders. The script can be placed in a button and mailed to the users who need it.

Read More