Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Don Pasquale am 07.09.04 - 14:13:15
-
Hallo Notes-Fans,
ich versuche über Visual Basic und DOM Dokumente in einer Notes-DB zu erstellen. Das Programm läuft bereits unter einer Notes 5 Umgebung. Nun versuche ich es mit einem NOtes 6.5.1 Client und da stürzt das Programm mit einer NSD Fehlermeldung in folgender Zeile ab. Weiß jemand etwas von
Änderungen im DOM unter 6.5.1 ?
Ciao
DOn Pasquale
BEMERKENSWERT:
Auf einem Rechner, auf dem NUR der Lotus 5 Client installiert ist, da klappt der Import auf den 6.5.1 Server.
Auf einem Rechner auf dem NUR der Lotus 6.5.1 Client installiert ist, da tritt der Fehler auf.
Einen 6er Client konnte ich noch nicht testen.
> Set obj = rti.EmbedObject(EMBED_ATTACHMENT, "", myVerzeichnis & "\00001.tif")
CODEAUSZUG:
Set LNSession = New NotesSession
writeLog ("New NotesSession")
strPassword = Decode(strPassword)
If strPasswort <> "" Then
writeLog ("Password is not null")
End If
writeLog ("Prüfe auf LNSession")
If Not LNSession Is Nothing Then
writeLog ("LNSession is not nothing")
writeLog ("Call LNSession.Initialize(strPassword)")
Call LNSession.Initialize(strPassword)
writeLog ("Set LNDB = LNSession.GetDatabase(strLotusserver, strLotusDBFile)")
Set LNDB = LNSession.GetDatabase(strLotusserver, strLotusDBFile)
writeLog ("Set LNDoc = LNDB.CreateDocument")
Set LNDoc = LNDB.CreateDocument
writeLog ("Besitzer:" & Besitzer)
Call LNDoc.AppendItemValue("BESITZER", Besitzer)
writeLog ("Gruppe:" & Gruppe)
Call LNDoc.AppendItemValue("GRUPPE", Gruppe)
writeLog ("Titel:" & Titel)
Call LNDoc.AppendItemValue("TITEL", Titel)
Call LNDoc.AppendItemValue("DATUM", DATUM)
Call LNDoc.AppendItemValue("Form", "frmDokument")
Call LNDoc.AppendItemValue("HERKUNFT", Herkunft)
Call LNDoc.AppendItemValue("ERFASSER", Erfasser)
Call LNDoc.AppendItemValue("FILEEXTENSION", Fileextension)
Call LNDoc.AppendItemValue("EXTENDED_ATTR1", Extended_Attr1)
Call LNDoc.AppendItemValue("EXTENDED_ATTR2", Extended_Attr2)
Call LNDoc.AppendItemValue("EXTENDED_ATTR3", Extended_Attr3)
' NUn wird das BODY-Feld erstellt und darin das TIF und die volltext.txt
' gespeichert. Das BODY Feld ist vom RICH-TEXT ( RTF)
writeLog ("Set rti = LNDoc.CreateRichTextItem(BODY)")
Set rti = LNDoc.CreateRichTextItem("BODY")
writeLog ("Set obj = rti.EmbedObject(EMBED_ATTACHMENT, '', myVERZEICHNIS & \00001)")
> Set obj = rti.EmbedObject(EMBED_ATTACHMENT, "", myVerzeichnis & "\00001.tif")
If FSO.FileExists(myVerzeichnis & "\volltext.txt") Then
writeLog ("Die volltext.txt wurde aus folgendem Pfad kopiert.")
writeLog ("Set obj = rti.EmbedObject(EMBED_ATTACHMENT, '', myVERZEICHNIS & \volltext.txt)")
Set obj = rti.EmbedObject(EMBED_ATTACHMENT, "", myVerzeichnis & "\volltext.txt")
End If
LNDoc.save True, False, False
-
Ok, das angehängte Bildchen von der Fehlermeldung bringt uns leider nicht weiter. Schaust Du mal im Datenverzeichnis nach, dort findet sich ein Verzeichnis "IBM TECHNICAL ........" und da drin gibt es eine "nsd ......... log" Datei. Da steht irgendwo drin, welcher Prozess da ausgestiegen ist. Schaust Du da mal rein?
-
Hallo Semaphor,
ich bin aus diesen LogDateien nicht ganz schlau geworden, ich habe Dir mal 3 angehängt, aus meinen verschiedenen Versuchen.
Ciao
Don Pasquale
-
Ok, ich bin auch nicht speziell fit im Lesen dieser Logs, a-bär, es scheint, dass ein externer Prozess stürzt (warum auch immer ....). Was macht den dieser DigiPostImperter? Das scheint der Prozess zu sein, der die Sache in den Abgrund reisst.
-
DigiPostImporter - das ist im Kern das oben abgedruckte Programm, dabei stürzt das Ganze ab.
Das Programm liest verzeichnisse aus, und macht aus den in den Verzeichnissen gefunden Dateien Attachments zu eigens erstellten Dtanesätzen in einer Notes-DB.
ABÄR, das Teil ist seit Notes 5 im Einsatz und hat auch unter 6.0 seine Funktionsfähigkeit bewiesen.
Nur 6.51 macht Zicken.
Ciao
Don Pasquale
-
Ich habs nochmal studiert, es ist definitiv dieses Teil, das stürzt, und zwar sieht es aus, wie ein Parameter-Fehler im Zusammenhang mit Shared Memory. Möglich, dass die API da eine Aenderung erfahren hat. Mehr kann ich dazu leider auch nicht sagen.
-
Das Problem ist, dass der Fehler bleibt, selbst wenn ich den 6.51 Client deinstalliere und einen 5 er Client installiere.
Es funktioniert nur auf Rechnern auf denen noch nie ein 6.51 Client installiert war.
Wo kann ich denn über bekannte Bugs in der 6.51 API etwas erfahren ?
Ciao
Don Pasquale
-
Nun, eigentlich nur auf LDD in den Release-Notes der C-API oder dann in der Knowledge-Base, am besten, indem man nach shared memory sucht oder nach dem Namen des shared-Memories, welcher im NSD-Log angegeben ist.
Am besten Auskunft geben kann wohl Daniel Nashed (http://www.nashcom.de)
-
Wieso C-API ? Ich nutze doch in erster Linie die domobj.tlb, oder sehe ich das falsch ?
Ciao
Don Pasquale
-
Anders gefragt,
erstellt bereits jemand Dokumente in einer ähnlichen Art wie ich das mache, unter der Verion 6.5.1 ?
Dann wüßte ich zumindest, dass ich den Fehler in meiner Umgebung und nicht bei Lotus suchen muß
Ciao
Don Pasquale
-
OK,
das Problem hat sich folgendermaßen geklärt:
Im meinem Visual Basic Projekt stand permanent der Verweis auf die domobj.tlb mit einem nicht gültigen Pfad. Dort hatte ich nämlich Lotus 5 installiert.
Der alte Pfad stand aber immer noch in der Registry, warum was weiss ich auch immer. Mehr als De-installieren wollte ich ja nicht.
Lotus 6.5.1 domobj.tlb ist also in diesem Punkt vollständig rehabilitiert.
Ciao
Don Pasquale