Servus Jungs !
Habe ein riesen Problem und leider immer noch keine Lösung dazu. Vielleicht hatte jemand von euch schon mal was damit zu tun gehabt und kann mir helfen ?
Und zwar:
- habe eine grooooße DB mit mehreren Repliken auf anderen Servern,
- die DBen sind von Domino 5 auf Domino 7 umgezogen worden
- enhalten viele Dokumente mit vielen OLE Objekten
Problem: OLE Objekte kann man auf einem Server öffnen, auf den anderen aber nicht. Meldung "Object request has not completed because the file already exists". Ich erstelle ein neues Dokument, kopiere die OLE Objekte rein, repliziere auf die anderen Server. Alles ok. Am nächsten aber wieder zerschossen.
Wir haben jetzt beschlossen, die OLE-Objekte durch die Attachments zu ersetzen. Manuell geht das nicht, da es insgesamt ca. 20000 Dokumente mit vielen OLE-Objekten sind. Programmatisch aber auch nicht so wirklich, weil
Problem 2: seit einiger Zeit und nur in manchen DBen werden die OLE-Objekte als graue Striche angezegt und nicht als Icons. Wenn ich die Eigenschaften von so einem OLE-Objekt anzeigen lasse und einen Doppelklick auf die Option "Zeige als Icon an" mache, schmiert mir mein Notes ab. Wenn ich einen Agenten laufen lasse, der OLE in Attachments umwandelt (siehe Code unten), schmiert mir mein Notes ab.
Forall o In rtitem.EmbeddedObjects
If (o.Type = EMBED_OBJECT) Then
fileCount = fileCount + 1
fileName = tempDir & "AttachmentFromOLE" & Cstr(fileCount)
Set handle = o.Activate(False)
handle.Application.Windows(handle.Application.Windows.Count).Visible = True
Call handle.SaveAs(fileName)
Call handle.Close
Set handle = Nothing
fname = Dir$(fileName & "*", 0)
If (fname = "") Then
fileCount = fileCount - 1
Else
fName = tempDir & fName
Call rtitem.EmbedObject(EMBED_ATTACHMENT, "", fName) Kill fname
End If
End If
End Forall
Call doc.Save(True, False) Der eine Client schmiert ab, beim Versuch, das Dokument zu speichern, der andere beim o.Activate(False), sobald ich in der Schleife das 2.Objekt erreicht habe.
Also, ich habe vor, die OLE-Objekte in Attachments umzuwandeln. Geht aber nicht, wenn das OLE-Objekt nicht als "Icon" angezeigt wird. Man könnte vielleicht programmatisch diese Eigenschaft setzen, weiss aber nicht wie.