Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: notes_andy am 02.08.11 - 16:37:16

Titel: Lotus Notes Absturz
Beitrag von: notes_andy am 02.08.11 - 16:37:16
Hallo

Ich habe eine Maske mit einer eingebetteten Ansicht die mit Aktion Button Dokumente hinzufügt, entfernt oder aktualisiert.
Der Code Aufruf vom Script ist wie unten angezeigt.
Das funktioniert genau so wie es soll.

Aber es kommt vor, dass beim Aufruf Lotus Notes abstürzt. Was ich herausgefunden habe ist, dass der Absturz durch
das viewUidoc.save verursacht wird.
Hatte schon mal jemand ein ähnliches Problem oder hat jemand eine Idee wie ich den Absturz verhindern kann?

DANKE FÜR DIE HILFE IM VORAUS

Set viewUidoc = viewWs.CurrentDocument

Sub Click(Source As Button)
   If odoc.Edit() Then   
      Call viewUidoc.Save
      Set viewCol = viewDb.UnprocessedDocuments
      If  odoc.ArtikelEdit(viewCol) Then
         Call odoc.Aktualisieren()       
         Call viewUidoc.Save
         Call viewWs.ViewRefresh()
      End If
   End If
End Sub

lg. Andreas
Titel: Re: Lotus Notes Absturz
Beitrag von: koehlerbv am 02.08.11 - 16:45:41
Und wo sind die Deklarationen und Instantiierungen Deiner Objekte??

Bernhard
Titel: Re: Lotus Notes Absturz
Beitrag von: notes_andy am 02.08.11 - 17:01:00
In der eingebetteten Ansicht im Bereich Global und im Bereich Initialize.
Die restlichen Objekte in der Script Bibliothek.
Titel: Re: Lotus Notes Absturz
Beitrag von: koehlerbv am 02.08.11 - 17:06:08
Das zu wissen, hilft natürlich extrem weiter ...

Bernhard
Titel: Re: Lotus Notes Absturz
Beitrag von: ascabg am 03.08.11 - 07:36:10
Hallo,

Und was ebenfalls noch helfen wuerde waere ein NSD, wenn denn eines geschrieben wird.


Andreas
Titel: Re: Lotus Notes Absturz
Beitrag von: ata am 03.08.11 - 09:49:40
Hallole,

... der Code von dir hat etwas abenteuerliches in der Benennung und Initialisierung.

Die Abstürze bekommst du immer, wenn du in eingebetteten Ansichten mit NotesUIDocument arbeitest und refreshen oder speichern willst. Bei der eingebetteten Ansicht ist uidoc das aktuelle Dokument initialisiert über NotesUIWorkspace.CurrentDocument - gehe ich hier richtig?

Die Aktion, die du verwendest ist eine Ansichtsaktion der eingebetteten Ansicht - richtig?

Das musst du also schon etwas genauer beschreiben, denn so ist das blinde Kuh mit der Glaskugel ;)

Toni
Titel: Re: Lotus Notes Absturz
Beitrag von: notes_andy am 03.08.11 - 10:47:10
Hallo

Die Aktion ist in der eingebetteten Ansicht.

Die Abstürze kommen nicht immer. Es kommt vor, dass Lotus Notes bei einem Dokument Abstürzt.
Ich habe bei meinen versuchen schon alles entfernt, was im externen Code, im postsave oder querysave vorhanden ist.
Dann kann ich bei diesem Dokument nur mehr Arbeiten, wenn ich uidoc.save entferne.


Anbei die nsd Datei
Titel: Re: Lotus Notes Absturz
Beitrag von: ata am 03.08.11 - 11:10:33
... meine Frage ist noch offen, wie initialisierst du das uidoc? ;)

Toni
Titel: Re: Lotus Notes Absturz
Beitrag von: notes_andy am 03.08.11 - 11:14:17
In der eingebetteten Ansicht in Initialize.

Set viewWs =  New NotesUIWorkspace
Set viewUidoc = viewWs.CurrentDocument
Titel: Re: Lotus Notes Absturz
Beitrag von: ata am 03.08.11 - 13:46:44
... mit welchem Client arbeitest du - welche Version - Basic oder Eclipse?

Toni
Titel: Re: Lotus Notes Absturz
Beitrag von: notes_andy am 03.08.11 - 13:55:27
Eclipse
IBM Lotus Notes 8.5

Release 8.5.2FP2
Revision 20110323.0837-FP2 (Release 8.5.2FP3)
Standardkonfiguration

Ich habe das auch mit den Basic Client versucht. Gleiches Problem!
Titel: Re: Lotus Notes Absturz
Beitrag von: ata am 03.08.11 - 14:07:33
... ich hatte die Probleme auch schon in Verbindung mit uidoc.Refresh und uidoc.Save().

Mein Konstrukt zieht das aktuelle Dokument über eine Verzweigung:
Code
	sCaret 			= Source.CaretNoteID 									' Get the CaretNoteID ...
	If sCaret 		= "0" Then Goto ee											' ... - exit if it does not point at a document
	Set dbThis 	= session.CurrentDatabase
	If ws.CurrentDocument Is Nothing Then
		Set docThis = dbThis.GetDocumentByID( sCaret )		
	Else
		Set uidoc = ws.CurrentDocument
		Set docThis 	= uidoc.Document 
		' Check EditMode and switch to edit mode
		bEdit = True
		If Not uidoc.EditMode Then
			uidoc.EditMode = True			
		End If
	End If

... den Speicherprozess verzweige ich dann wieder:
Code
	If uidoc Is Nothing Then
		Call docThis.Save( True , True )
	Else
		Call uidoc.Save
	End If

... damit funktioniert es bei mir - wobei die Sprungmarke ee bei mir das Exit Function ansteuert - mit Basic und Eclipse Version 8.5.2
Titel: Re: Lotus Notes Absturz
Beitrag von: notes_andy am 03.08.11 - 17:15:32
Hallo

Ich habe das Problem wenn ich das uidoc speichere. Wenn ich das doc speichere habe ich das Problem nicht.
Ich muss aber das uidoc speichern, sonst gehen die eingegebenen Daten verloren.
Titel: Re: Lotus Notes Absturz
Beitrag von: Peter Klett am 03.08.11 - 17:27:15
Und was passiert, wenn Du das Document des uidocs speicherst?

Also z.B. so:

Call viewUidoc.Document.Save (True, True)

Dann sollten die Änderungen des uidocs auch gespeichert werden.

Titel: Re: Lotus Notes Absturz
Beitrag von: koehlerbv am 03.08.11 - 17:30:57
Solange kein RTI im Spiel ist: Ja.

Bernhard
Titel: Re: Lotus Notes Absturz
Beitrag von: notes_andy am 03.08.11 - 17:46:38
Dann ist das gleiche wie wenn ich das doc speichere. Die neu eingetragenen Werte werden nicht gespeichert.
Ist auch logisch.
Titel: Re: Lotus Notes Absturz
Beitrag von: Peter Klett am 03.08.11 - 17:49:58
Auch die Werte von Nicht-Richtext-Items werden nicht gespeichert?

Ist nicht logisch ...
Titel: Re: Lotus Notes Absturz
Beitrag von: koehlerbv am 03.08.11 - 17:54:30
Natürlich werden die gespeichert, Peter.

Bernhard
Titel: Re: Lotus Notes Absturz
Beitrag von: Peter Klett am 03.08.11 - 17:58:29
@Bernhard: Laut notes_andy anscheinend nicht. Das war meine Frage an ihn.

@notes_andy: Hast Du vielleicht irgendwelche Standardeigenschaften wie AutoReload o.ä. vorher verbogen?
Titel: Re: Lotus Notes Absturz
Beitrag von: koehlerbv am 03.08.11 - 18:10:06
Peter, klar, Andreas hat ein Problem. Das passiert aber nur, wenn er vorab dafür gesorgt hat. Ich habe den Normalzustand beschrieben. Und was Andreas so treibt, wissen wir gerade mal ansatzweise.

Bernhard
Titel: Re: Lotus Notes Absturz
Beitrag von: ata am 04.08.11 - 07:30:21
@Bernhard, @Peter

das Problem hat nicht nur Andreas, ich hatte es auch und seit diesem Konstrukt das uidoc abzufangen funktioniert es in meinen Ansichten. Den uidoc.Save habe ich verwendet, weil ich dadurch die Neuberechnung und Validierung der Felder inklusiv benötige. Ich hatte im Debugger beobachtet, daß das uidoc aber nicht stabil zur Verfügung steht, daher mein Konstrukt es abzufangen. Seit der aktuellen Version hatte ich keine Probleme mehr damit.

Toni
Titel: Re: Lotus Notes Absturz
Beitrag von: notes_andy am 04.08.11 - 10:03:01
Danke Toni

Ich sehe das auch wie du. Ich denke nicht, dass ich der einzige bin, bei dem Lotus Notes Abstürzt.

Ich habe verschiedene Anwendungen, die alle gleich aufgebaut sind. Diese funktionieren schon lange.
Nun kommt es vor, dass bei einem Dokument der Fehler auftritt und Lotus Notes abstürzt. Mein Problem ist,
dass ich dieses Dokument dann nur mehr bearbeiten kann, wenn ich das uidoc.save entferne.

Es würde schon helfen, wenn ich das abfangen könnte und darauf reagieren kann. Nur der
Lotus Notes Absturz wirkt sich auf alle offene Dokumente aus. Und das ist nicht OK.

mfg. Andreas