Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: gossifu am 29.06.07 - 09:27:40

Titel: Rotes Fenster beim Speichern im Backend
Beitrag von: gossifu am 29.06.07 - 09:27:40
Hallo,

Phänomen: Beim doc.Save(False, False) bekomme ich einen nicht behebbaren Fehler ???.
Kennt jemand das? Vor allen Dingen hat das Script schon funktioniert.
Ich setze zwei Feldwerte sonst nix.

mfg

Kjeld

Titel: Re: Rotes Fenster beim Speichern im Backend
Beitrag von: atbits am 29.06.07 - 09:29:58
Zeig mal das Script.

Ist der Fehler reproduzierbar oder ist es einmal passiert?

Grüße David
Titel: Re: Rotes Fenster beim Speichern im Backend
Beitrag von: gossifu am 29.06.07 - 09:51:12
Hallo,

hier das Script, reproduzierbar und tritt auch beim Kollegen auf.
Um 8.00 Uhr hat es noch funktioniert. Es ist in einer gemeinsamen Aktion.
Code
Sub Click(Source As Button) 
        Dim s As New NotesSession 
        Dim db As Notesdatabase 
        Dim mail As Notesdocument 
        Dim newmail As Notesdocument 
        Dim ident As String 
        Dim dbkey As Variant 
        
        Set db = s.CurrentDatabase 
        Set mail = s.DocumentContext 
        Set dbkey = New getKeys("SNTadminkey") 
        
        If Not mail Is Nothing Then 
                ident = dbkey.getListParameter("Spam-Identifier", "Mail") 
                Dim subject As String 
                Dim mime As NotesMIMEEntity 
                Dim header As NotesMimeHeader 
                s.ConvertMIME = False 
                Set mime = mail.GetMIMEEntity 
                If Not(mime Is Nothing) Then 'Prüfen auf MIME 
                        
                        Set header = mime.GetNthHeader("Subject") 
                        If Not header Is Nothing Then'Header auslesen 
                                subject = header.GetHeaderVal 
                                If Instr(subject,ident) > 0 Then 
                                        subject = Strright(subject,ident) 
                                        Call header.SetHeaderVal(subject)'Subject setzen 
                                End If 
                        End If 
                        
                        If Msgbox("Soll die Mail als fälschlicherweise als Spam markiert an die Administration gemeldet werden? ",36,"Falsche Spam-Mail melden") = 6 Then 
                                ident = dbkey.getListParameter("Spam-Message", "Mail")'Empfänger der Meldungsmail 
                                
                                'Header in die Mail schreiben und Meldung versenden 
                                
                                Dim body As NotesRichTextItem 
                                
                                Set newmail = db.CreateDocument 
                                Set body = newmail.CreateRichTextItem("Body") 
                                Call body.AddNewline(2) 
                                Call body.AppendText(mime.Headers) 
                                Call body.AddNewline(2) 
                                newmail.Form = "Memo" 
                                newmail.Subject = "Fälschlicherweise als Spam markierte Mail" 
                                newmail.SendTo = ident 
                                
                                newmail.Send(False) 
                                
                        End If 
                        
                        'Spam Markierung aufheben 
                        ident = dbkey.getListParameter("Spam-Field", "Mail")         
                        Dim item As NotesItem 
                        Set item = mail.GetFirstItem(ident) 
                        If Not item Is Nothing Then 
                                Call item.Remove 
                        End If 
Hier der Fehler -->                        Call mail.Save(True,False) 
                        Call mail.RemoveFromFolder("JunkMail") 
                End If 
                s.ConvertMIME = True 
                Dim ws As New NotesUIWorkspace 
                Call ws.ViewRefresh 
        End If 
        
End Sub 

mfg

Kjeld
Titel: Re: Rotes Fenster beim Speichern im Backend
Beitrag von: atbits am 29.06.07 - 09:58:34
Habe den Code mal überflogen,

also auch wenn ich nicht sicher bin, aber ich könnte wetten es liegt an der letzten Zeile

Code
Dim ws As New NotesUIWorkspace 
Call ws.ViewRefresh 

der ViewRefresh ist mir auch schon ein paar mal um die Ohren geflogen, es kommt auf den Kontext an (also ob Deine Aktion aus einer Maske oder View heraus aufgerufen wird und ob Du im Read- oder Edit-Mode bist!

Kommentier mal den Refresh aus und versuchs dann nochmal, nur zu Testzwecken, Refreshe dann per Hand mit F9, wenn das geht mußt Du die Refresh-Methodik ändern.
Titel: Re: Rotes Fenster beim Speichern im Backend
Beitrag von: gossifu am 29.06.07 - 10:02:24
Hallo,

der Debugger fliegt bei Call mail.Save(False, False) weg. :-:
Das ist zum Mäusemelken, dieser Punkt noch und die DB wäre fertsch.

mfg

Kjeld
Titel: Re: Rotes Fenster beim Speichern im Backend
Beitrag von: atbits am 29.06.07 - 10:07:04
Puh harte Nuss,

hast Du schon mal versuch das mail-Document nicht über den Context zu holen, sondern über das UI per
NotesUIWorkspace.CurrentDocument?

Wobei daran kanns fast nicht liegen.

Titel: Re: Rotes Fenster beim Speichern im Backend
Beitrag von: gossifu am 29.06.07 - 10:27:15
Ich habe vor allen Dingen eine zweite Aktion, die das Gegenteil mit der Mail macht,
also als Spam markiert.
Da wird auch der MIME-Teil bearbeitet, und da tritt der Fehler nicht auf.

Kjeld
Titel: Re: Rotes Fenster beim Speichern im Backend
Beitrag von: DerAndre am 29.06.07 - 10:32:47
Schon mal alles neu kompiliert?
Titel: Re: Rotes Fenster beim Speichern im Backend
Beitrag von: WernerMo am 29.06.07 - 10:40:01
Was ist die genau Version des Designers?

Wir hatten hier mal eine Ähnliche Situation mit einer ganz bestimmte Version des 6.5.x Designers,
Version kann ich beim Kollegen noch erfragen.

MfG
Werner
Titel: Re: Rotes Fenster beim Speichern im Backend
Beitrag von: gossifu am 29.06.07 - 10:48:30
@Andre
Komplett compilieren lasse ich beim Mailtemplate lieber. Aber ich habe das Löschen des Items auskommentiert und es geht.
Ich werde es dann nur leerschreiben und nicht löschen. Hat keine weitere Auswirkung.
Liegt wahrscheinlich an dem Feld, fängt mit $ an.

@Werner
6.5.4

mfg

Kjeld