Domino 9 und frühere Versionen > ND9: Entwicklung
Backend Änderung - Frontend neu öffnen und bearbeiten = Speicherkonflikt
(1/1)
poldy06:
Guten Tag liebe Notes Entwickler,
vielleicht weiß jemand von Euch Rat.
Mein Kollege hat ein klienes Script geschrieben, dass in das Backend Doc vom aktuellen UiDoc eine Grafik kopiert. Dann speichert, das UiDoc zu macht und erneut öffnet, damit es weiter bearbeitet werden kann.
Soll es dann, bei eingeschaltetem Dokumentlogging, abgespeichert werden, gibt es die Fehlermeldung: "Dokument wurde bereits gespeichert. Wollen Sie einen Speicherkonflickt erstellen?"
Jemand ne Idee warum und wie man das los wird?
Hier der Code dazu:
Dim ws as new NotesUiWorkspace
dim docThis as NotesDocument
....
set docThis = ws.CurrentDocument.Document
...
Set rtitemN = docThis.GetFirstItem( ZielFeld$ )
If ( rtitemN.Type = RICHTEXT ) Then
Call ws.CurrentDocument.save
Set object = rtitemN.EmbedObject( EMBED_ATTACHMENT, "" , CoverPath$ )
Call docThis.save( True , False )
Call ws.CurrentDocument.FieldSetText( "SaveOptions", "0" )
Call ws.CurrentDocument.close(True)
Set uidocThisNew = ws.EditDocument( True , docThis , False )
End If
Vielen Dank für Eure Hilfe.
Schönen möglichst trockenen Montagabend
Poldy
Tode:
Du musst alle Instanzen, die irgendwie auf das aktuelle uidoc verweisen leeren, sonst geht das nicht.
Also:
--- Code: ---Dim strUnid as String
strUnid = docThis.Universalid
Call ws.CurrentDocument.FieldSetText( "SaveOptions", "0" )
Call ws.CurrentDocument.close(True)
Delete docThis
Set docThis = ses.CurrentDatabase.GetdocumentByUnid( strUnid )
Set uidocThisNew = ws.EditDocument( True , docThis , False )
--- Ende Code ---
mn4711:
Hallo Torsten,
ich bin derjenige, der das Coding geschrieben hat. Vielen Dank für diene schnelle Antwort. Den von Dir beschriebenen Weg hatte ich zunächst versucht, leider ohne Erfolg :-:. Und gestern Abend, motiviert durch deine Anmerkungen, dann noch einmal, aber ich habe es erneut nicht hinbekommen :'(.
Jetzt habe ich einfach die Zeile
Call ws.CurrentDocument.save
gelöscht. Danach gab es keine Konflikt-Hinweise beim Speichern, jedoch blieben am Ende die Dokumente gelocked. Im "QueryClose" habe ich dann
If Source.EditMode Then
If docThis.LockHolders(0) <> "" Then
Call docThis.UnLock( )
End If
End If
Eingefügt und jetzt scheint es geschmeidig zu laufen :). Komisch mit dem "Dokument Locking" >:D, damit hatte ich bisher vorher noch nie ein Problem gehabt.
Danke für diene Hilfe, VG
Martin
Navigation
[0] Themen-Index
Zur normalen Ansicht wechseln