Das Notes Forum

Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: El-Barto am 21.09.11 - 14:53:49

Titel: VBScript wird nach Öffnen von Notes nicht weiter ausgeführt.
Beitrag von: El-Barto am 21.09.11 - 14:53:49
Hallo zusammen,

ich möchte aus einem VBScript ein Mail generieren. Wenn das Notes bereits geöffnet ist klappt das so wie ich es mir vorstelle.
Aber wenn ich die Notes-DB erst öffnen muss, dann wird das Mail nicht erstellt. Es hat den Anschein, daß nach dem Öffnen des Notes (was noch korrekt gemacht wird) das Script nicht weiter ausgeführt wird.

Wenn in dem Code-Ausschnitt der ELSE-Zweig durchlaufen wird, dann wird z.B. die MsgBox nach dem Öffnen nicht mehr angezeigt.
Hat jemand ne Idee was fehlen oder falsch sein könnte?

Danke & Gruss,
El-Barto

(Evtl. noch von Bedeutung: Das VBScript wird als AddOn von einer Standard-Software gerufen.)
Code
.
.
.

Set newSession = CreateObject("Notes.NotesSession") 
 
set oCurrentMailDb = newSession.CurrentDatabase 
 
If oCurrentMailDb.IsOpen = True Then       
        MsgBox ">>> Lotus Notes bereits offen ..." 
Else
        MsgBox ">>> Lotus Notes wird geöffnet ..." 
        oCurrentMailDb.OPENMAIL 
End If 
  
MsgBox "Nach dem Öffnen ..." 

.
.
.
Titel: Re: VBScript wird nach Öffnen von Notes nicht weiter ausgeführt.
Beitrag von: ata am 21.09.11 - 15:28:26
Hallole,

so weit ich das auf die schnelle sehe, gibt es bei geöffnetem Notes eine CurrentDatabase - bei zu öffnendem eben nicht. Du solltest die Datenbank undedingt sauber initialisieren. Du verwendest den Begriff "Lotus Notes" und "MailDB" in einem Zug als das gleiche. Dem ist nicht so - Lotus Notes ist der Client, in dem verschiedenste Datenbanken verwendet werden können. Die MailDB ist nur ein davon...

Toni
Titel: Re: VBScript wird nach Öffnen von Notes nicht weiter ausgeführt.
Beitrag von: El-Barto am 21.09.11 - 17:13:23
Hallo Toni,

ja stimmt, ich habe "LotusNotes" gleich der "MailDB" gesetzt weil mich nur die interessiert  ;D

Habe jetzt eine Lösung, die zumindest funktioniert (weiß aber nicht ob das die eleganteste Lösung ist):

Code
    Set oSession = CreateObject("Notes.NotesSession") 
 
    strMailServer = oSession.GetEnvironmentString("MailServer",True) 	
    strUserName = oSession.UserName 
    strMailDatabase = Left(strUserName, 1) & Right(strUserName, (Len(strUserName) - InStr(1, strUserName, ""))) & ".nsf" 
 
    Set oCurrentMailDb = oSession.getDatabase(strMailServer, strMailDatabase)
    oCurrentMailDb.OPENMAIL 

Danke für die schnelle Antwort!


El-Barto
Titel: Re: VBScript wird nach Öffnen von Notes nicht weiter ausgeführt.
Beitrag von: koehlerbv am 21.09.11 - 17:21:27
Warum liest Du aus der NOTES.INI nicht MailFile aus - oder noch besser - verwendest die Methode NotesDBDirectory.OpenMailDatabase?
Dein Konstrukt ist mehr als unsicher - vorsichtig ausgedrückt.

Bernhard
Titel: Re: VBScript wird nach Öffnen von Notes nicht weiter ausgeführt.
Beitrag von: WildVirus am 21.09.11 - 18:03:00
N'abend,

also ich habe noch nie einen Mailserver gesehen, wo die Maildbs im Root stehen ;)

Du solltest Dich wirklich mit den korrekten Methoden (siehe Posting von Bernhard) auseinandersetzen, sonst erleidest Du bestimmt beim zweiten Server Schiffbruch !

Und dann heißt es wieder "Notes ist schuld" ! Dass der wahre Übeltäter der hingefrickelte Aufruf von Notes ist, wird dabei bestimmt übersehen.

Du findest über die Forumssuche bestimmt genug Material dazu hier im Forum.

Viel Erfolg,
Axel
Titel: Re: VBScript wird nach Öffnen von Notes nicht weiter ausgeführt.
Beitrag von: El-Barto am 21.09.11 - 19:02:09
Hallo Bernhard,

aus dem was ich hier im Forum gefunden habe, nehme ich an Du meinst ich soll das:
 
Code
    
strMailServer = oSession.GetEnvironmentString("MailServer",True) 	
strUserName = oSession.UserName 
strMailDatabase = Left(strUserName, 1) & Right(strUserName, (Len(strUserName) - InStr(1, strUserName, ""))) & ".nsf" 
 
Set oCurrentMailDb = oSession.getDatabase(strMailServer, strMailDatabase)
oCurrentMailDb.OPENMAIL 

durch das

Code
Set notesdir = oSession.GetDbDirectory("")
Set oCurrentMailDb = notesdir.OpenMailDatabase 

ersetzen, oder?

Das funktioniert bei mir aber nicht ...

Titel: Re: VBScript wird nach Öffnen von Notes nicht weiter ausgeführt.
Beitrag von: Peter Klett am 21.09.11 - 19:13:04
Dann nimm die ini-Variable "MailFile", wie Bernhard auch schon geschrieben hat, denn aus der ini holst Du ja auch schon erfolgreich den Server
Titel: Re: VBScript wird nach Öffnen von Notes nicht weiter ausgeführt.
Beitrag von: koehlerbv am 21.09.11 - 20:50:04
Vorhin hiess es noch newSession, jetzt oSession.

Weiters: Der Unterschied zwischen OLE und COM ist Dir klar?

Bernhard

PS: Solange Du hier nur "El-Barto" heisst, kannst Du zu mir gerne Herr Köhler oder Onkel sagen, aber "Bernhard" funktioniert nur bei identischen Spielregeln.
Titel: Re: VBScript wird nach Öffnen von Notes nicht weiter ausgeführt.
Beitrag von: tron55 am 22.09.11 - 09:43:12
PS: Solange Du hier nur "El-Barto" heisst, kannst Du zu mir gerne Herr Köhler oder Onkel sagen, aber "Bernhard" funktioniert nur bei identischen Spielregeln.

El Bernhardo wäre fair und gibt dir was gefährliches ;D
Titel: Re: VBScript wird nach Öffnen von Notes nicht weiter ausgeführt.
Beitrag von: WildVirus am 22.09.11 - 10:07:47
El Bernhardo wäre fair und gibt dir was gefährliches ;D

AdminP-Request weitergeleitet  ;D