Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: klaussp am 18.07.05 - 11:52:07

Titel: Bug in 6.5.3 ??? Absturz beim Speichern
Beitrag von: klaussp am 18.07.05 - 11:52:07
Hallo Zusammen!

Ich habe eine DB in der ich ein neues Dokument anlege. Beim Laden des Dokumentes wird aus einem anderen Dokument der gleichen DB ein Wert geladen, der dann addiert wird, und bei Speicherung des neuen Dokumentes wird der addierte Wert ebenfalls in das andere Dokument zurückgeschrieben. Bis zur Version 6.5.3 funktionierte das Problemlos, seit dem wir 6.5.3 einsetzen stürzt der Client entweder ab bevor er den Wert in das andere Dok speichert, oder es wird ein völlig utopischer Wert in das andere Dokument zurückgeschrieben (immer 12 stellig)!

Hier der Code der Aktion "Speichern":

Sub Click(Source As Button)
   Const Benutzer$ = "@Name([CN]; @UserName)     "
   Dim ws As New NotesUIWorkspace
   Dim uiDoc As NotesUIDocument
   Dim doc As NotesDocument
   Dim s As NotesSession         
   Dim db As NotesDatabase
   Dim view As NotesView
   Dim cBenutzer As Variant
   Dim cBenutzer1 As Variant
   Dim schluessel As String 
   Dim nGesamt As Currency
   Dim nStunden As Currency
   
   Set uiDoc = ws.CurrentDocument
   
   Set s = New NotesSession
   Set db = s.CurrentDatabase       
   Set view = db.GetView("Personal-Nr") 
   
     ' Prüfung, ob bei Bemerkung Freizeitausgleich das Stundenfeld negativ ist, wenn nicht dann entsprechend umrechnen
   If uidoc.FieldGetText("cBemerkung") = "Freizeitausgleich" And Val(ReplaceSubstring(uidoc.FieldGetText("cStunden"),",",".")) > 0 Then
      Call uidoc.FieldSetText("cStunden", Cstr(Ccur(uiDoc.FieldGetText("cStunden")) * -1))     
   End If
   
     ' Stammdaten suchen
   schluessel = uiDoc.FieldGetText("cPers_nr")
   Set Doc = view.GetDocumentByKey(schluessel, True)
   
   cBenutzer1 = uidoc.FieldgetText("cVorname") + " " + uidoc.FieldgetText("cName") + "/A" + uidoc.FieldGetText("cStellen_nr") + "/Bank1Saar/De"
   Call uidoc.Fieldsettext("SaveOptions", "1")
   Call uidoc.Fieldsettext("cLeser", "[Personal]" + "," + doc.cVorgesetzter(0) + "," + "[Administrator]" + "," + "[Betriebsrat]" + ","  + "," + cBenutzer1)
   
   If uiDoc.IsNewDoc = False Then
      cBenutzer = Evaluate(Benutzer$, doc)
      Call uiDoc.FieldSetText("FiTxGeändert", cAltgeaendert + Chr(13) + Chr(10)+ Str(Today) + "  "  + Time$ + "  " + cBenutzer(0))
   End If
   Call uidoc.Save     
   
   
   nStunden = Ccur(uiDoc.FieldGetText("cStunden"))
   nGesamt = Ccur(Doc.cGesamtstunden(0)) + nStunden
   Doc.cGesamtstunden = nGesamt
   success = Doc.ComputeWithForm(False, False)
   Call Doc.Save(True, False)
   
   Call uidoc.Close
End Sub

Danke für Eure Unterstützung!

Gruß, Klaus
Titel: Re: Bug in 6.5.3 ??? Absturz beim Speichern
Beitrag von: klaussal am 18.07.05 - 11:56:33
Hallo Namensvetter,

wo stürzt das Script denn ab ? Schon mal den Debugger genommen ?

klaus
Titel: Re: Bug in 6.5.3 ??? Absturz beim Speichern
Beitrag von: klaussp am 18.07.05 - 11:59:52
Hier:
 nStunden = Ccur(uiDoc.FieldGetText("cStunden"))
Titel: Re: Bug in 6.5.3 ??? Absturz beim Speichern
Beitrag von: koehlerbv am 18.07.05 - 12:03:39
Ja, das ist ein Bug in R6.5.3 - der Client crasht, wenn Du einer Currency-Variablen einen Wert aus einem Currency-Item zuweist. Total bescheuert und erst ab 6.5.3, abre es ist so.
Wenn Du nStunden als Double deklarierst, ist die Welt wieder in Ordnung.

Bernhard
Titel: Re: Bug in 6.5.3 ??? Absturz beim Speichern
Beitrag von: klaussp am 18.07.05 - 12:05:54
OK - dann muss ich ja nicht weiter suchen!

DANKE!!!

Gibt es eigentl. irgendwo eine offizielle Bugliste???
oder eine Inoffizielle???
Titel: Re: Bug in 6.5.3 ??? Absturz beim Speichern
Beitrag von: Glombi am 18.07.05 - 12:11:11
Hier die offizielle Fixlist:

http://www.lotus.com/ldd/r5fixlist.nsf/Public?OpenView

An die inoffizielle kommt man nicht so leicht.

Andreas
Titel: Re: Bug in 6.5.3 ??? Absturz beim Speichern
Beitrag von: koehlerbv am 18.07.05 - 12:14:28
Und dort findet man dann folgenden Eintrag:

YDJI4PRHC7   6.0.5,6.5.4   01/27/2005   Fixed a Client crash when using the method "ReplaceItemValue" with the type "Currency".

Bernhard