Autor Thema: Backend Änderung - Frontend neu öffnen und bearbeiten = Speicherkonflikt  (Gelesen 2191 mal)

Offline poldy06

  • Frischling
  • *
  • Beiträge: 37
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


Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.885
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
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 )
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline mn4711

  • Frischling
  • *
  • Beiträge: 1
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

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz