Autor Thema: $File-Feld wird zweifach angelegt bei Aktualisierung von RichTextFeld  (Gelesen 3288 mal)

Offline dgerhardt

  • Frischling
  • *
  • Beiträge: 33
  • Geschlecht: Männlich
Hallo!

Bei der Aktualisierung von Inhalten in RichTextFeldern im UI muß man bekanntlicherweise ein Workaround ausführen, um die Veränderungen sofort anzeigen zu können.

In einer Scriptklasse habe ich dieses Workaround eingebracht. Es scheint auch zu funktionieren. Aber: Nach der Ausführung und erneutem Speichern stehen dann unerwartet 2 Dateien im Dokument.

Im ersten $File-Feld steht der Name der eigentlichen Datei und im zweiten $File-Feld steht eine Datei mit Namen "STG....", die auf eine doppelte Datei hinweist.

Bei der 2 Nutzung sind es dann schon 4 Dateien u.s.w.

Ich habe nun schon viele Dinge probiert, aber ich kriege das nicht hin! Was mache ich Falsch? Gibt es alternativen?


Scriptauszug...

Public MediaWS as NotesUiWorkspace
Public MediaDoc as NotesDocument
Public MediaUiDoc as NotesUiDocument

Public Sub RefreshRTDoc (Section As Integer)
      Select Case Section
      Case 1
         Set MediaUiDoc=MediaWs.CurrentDocument
                                                Set MediaDoc = MediaUiDoc.Document

         Call TMADOCSave(MediaDoc) 'setzt noch Feldwerte...
         Call TMADOCClose(MediaUiDoc) 'setzt noch Feldwerte...         
         Call MediaDoc.Save(True, False)
         MediaUiDoc.EditMode = False
      Case 2
                  
         Call MediaDoc.Save( True , False)
         Call MediaUiDoc.Close
         Set MediaUiDoc = MediaWs.EditDocument(True, MediaDoc,False,,True,False)
         Case Else
         Exit Sub         
      End Select
   End Sub
   
   Public Sub Attach ( FileName As String , InItem As String )

      On Error Goto errhdl      
      Dim ni As Variant
      Dim no As Variant, cUNID As String
      
      Set MediaWs = New NotesUIWorkspace
      Call RefreshRTDoc(1)
      
      Set ni = MediaDoc.GetFirstItem( InItem )
      Set no = ni.EmbedObject( EMBED_ATTACHMENT , "" ,  FileName )      
      
      Call RefreshRTDoc(2)      
      
ResumeErr:
      Exit Sub
ErrHdl:
      Print "Fehler - xClassLibMedia#Sub Attach " + "Zeile: " + Str(Erl) + ": " + Str(Err) + " " + Error$
      Resume ResumeErr
   End Sub
mit besten Grüßen

Dirk Gerhardt

Offline koehlerbv

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Wo das nun ausgeführt wird und wie da was funktionieren soll, erschliesst sich leider nicht gerade offensichtlich. Kann es sein, dass die Attach-Routine doppelt aufgerufen wird oder - wahrscheinlich - parallel am Front- und Backend geschraubt wird ?
Was beobachtest Du, wenn Du den Code im Debugger verfolgst ?

Bernhard

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Bei der Aktualisierung von Inhalten in RichTextFeldern im UI muß man bekanntlicherweise ein Workaround ausführen, um die Veränderungen sofort anzeigen zu können.

Guckst Du: Modify a rich text field in the UI without having to save and re-open
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline dgerhardt

  • Frischling
  • *
  • Beiträge: 33
  • Geschlecht: Männlich
@kohlerbv
Ich gebe Dir recht. Man kann aus dem Script den Ablauf nicht erkennen. Aber der Tip, daß da noch was im Speicher sein kann, ist schon richtig gewesen. Danke. Werde das Script mal richtig aufräumen...

Der Debugger ist leider nicht zu nutzen, da vor dem "Attach" eine Dialogbox zur Auswahl der Datei liegt. Wenn die Dialogbox auskommentiert wird (Dateiname dann fest vergeben), dann bleibt beim Aufruf der Funktion leider der Debugger hängen und Notes stüzt ab :-( . Auch das deutet auf weitere Fehlerquellen hin.
mit besten Grüßen

Dirk Gerhardt

Offline dgerhardt

  • Frischling
  • *
  • Beiträge: 33
  • Geschlecht: Männlich
Der Fehler ist ganz wo anders...

Nachdem ich die LZ1-Komprimierung ausgeschaltet habe und dann mit Compress die DB bearbeitet habe, war der "Fehler" nicht mehr vorhanden.
Dennoch haben die Tips geholfen. Den TIP von TMC kann ich nur weiterempfehlen!

Die LZ1-Komprimierung ist bis Version 6.0.2 fehlerhaft. Folgende Links von IBM belegen das:

IBM: Attachment Compression in Notes 6.x Disappears After Editing
http://www-1.ibm.com/support/docview.wss?rs=475&context=SSKTWP&context=SSKTMJ&dc=DB520&dc=D600&dc=DB530&dc=D700&dc=DB500&dc=DB540&dc=DB510&dc=DB550&q1=lz1&uid=swg21107340&loc=en_US&cs=utf-8&lang=en

IBM (Repair $File-Fields): Executing Attachment Actions with Certain Documents Results in Error: "Attachment Has Been Modified or Corrupted Since Signed!"
http://www-1.ibm.com/support/docview.wss?rs=475&context=SSKTWP&context=SSKTMJ&dc=D600&dc=DB520&dc=DB530&dc=D700&dc=DB500&dc=DB540&dc=DB510&dc=DB550&q1=lz1&uid=swg21192728&loc=en_US&cs=utf-8&lang=en

mit besten Grüßen

Dirk Gerhardt

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz