Ich habe eine Datenbank (mehrere Repliken) bei der offensichtlich Replikationsfehler bei Dokumenten mit Anhängen auftreten.
Der Anhang (es ist jeweils nur einer) ist im Feld "DataSheet" gespeichert. In einigen - nicht allen Dokumenten - vervielfachen sich nun seit einiger Zeit die Anhänge. In "DataSheet" wird nach wie vor nur ein Anhangssymbol angezeigt, aber das Feld $FILE existiert mehrmals.
Wenn ich ein Skript laufen lasse, das mir die Namen der Anhänge zurückgibt, lautet das Ergebnis beispielsweise
- worksheet.xlsx
- worksheet.xlsx
- STG33922
Das führt in der Praxis dazu, dass bearbeitete Anhänge nicht gespeichert werden (nicht immer nicht, aber immer öfter nicht).
Ich habe mir einen Agenten programmiert, der die Anhänge komplett löscht und das Excel-Sheet neu anhängt (siehe unten). Das funktioniert auch offensichtlich... bis nach einigen Minuten das Dokument als ungelesen erscheint und wieder mit mehreren $FILE-Feldern und Anhängen bestückt ist.
Any hints? Sieht nach Replikationsproblem aus, oder?
... 'Delete Old Sheet
Set rtitem = doc.GetFirstItem( "DataSheet" )
If Not (rtitem Is Nothing) Then
ret = Evaluate( { @AttachmentNames } , doc)
ForAll r In ret
Set attach = doc.GetAttachment(r)
If Not(attach Is Nothing) Then
Call attach.remove
Call rtitem.Update()
Call doc.save(True,True)
End If
Set attach = Nothing
End ForAll
ForAll i In doc.Items
If i.Name="$FILE" Then i.remove
Print "Removed double $FILE item"
End ForAll
Call rtitem.Remove()
Call doc.Save( True, True )
End If
If noFile<>1 then
'Save New Sheet to Document
Set rtitem = New NotesRichTextItem( doc, "DataSheet" )
Call rtitem.Update()
Call doc.Save( True, False )
Call rtitem.Update()
Set object = rtitem.EmbedObject ( EMBED_ATTACHMENT, "", filename(0))
Call rtitem.Update()
Call rtitem.Compact()
Call doc.Save( True, False )