UIDocument mit dem aktuellen BackEnd Document aktualisieren

  • Hallo, ich habe folgendes Problem:


    Ich kann im Ansichtsmodus geöffnete Dokumente nicht mit dem aktuellen BackEnd Dokument aktualisieren.


    Das Szenario ist folgendes:
    -Person A öffnet ein Dokument im Ansichtsmodus
    -Person B öffnet dasselbe Dokument im Bearbeitungsmodus
    -Person B nimmt Änderungen vor, speichert und verlässt das Dokument
    -Person A möchte nun ebenfalls was am Dokument ändern, hat aber noch die veralteten Daten auf dem Schirm und wechselt mit diesen in den Bearbeitungsmodus
    -Person A wird nun beim Speichern ein Replizierkonflikt auslösen.


    Ich möchte nun, bevor Person A das Dokument bearbeitet, welches ja verändert wurde, das UIDocument mit dem aktuellen BackEnd Dokument refreshen.


    Versucht habe ich es mit:
    NotesUIWorkspace.reloadwindow
    NotesUIDocument.reload
    NotesUIDocument.refresh
    sowohl im Ansichts wie auch im Bearbeitungsmodus


    Ich habe auch schon versucht das UIDoc zu schliessen und wieder zu öffnen

    Code
    Dim ui    As New NotesUIWorkspace	Dim uidoc As NotesUIDocument	Dim doc   As NotesDocument		Set uidoc = ui.CurrentDocument	Set doc   = uidoc.Document	Call uidoc.Close	Set uidoc = ui.EditDocument(False,doc) ' ui.EditDocument(True, doc) brachte auch nichts


    Auch AutoReload half nicht

    Code
    Sub Postopen(Source As Notesuidocument)
                  source.AutoReload = True
            End Sub


    Ich bekomme nie das aktuelle BackEnd Document dargestellt.


    Funktioniert das nicht, oder mache ich etwas falsch?


    Danke für eure Hilfe.


    Gruß, Zeven

  • Zitat

    Du musst es schliessen und neu öffnen


    Meinst Du per LS-Code, oder geht dies nur per Hand?
    Meine Versuche dies über LS-Code zu realisieren haben leider nicht funktioniert (siehe Beispielcode).

  • Habe ich ja, leider wurde ich da nicht fündig.


    Öffnen und Schliessen war für mich bisher immer:


    Code
    Dim ui      As New NotesUIWorkspace
        Dim uidoc As NotesUIDocument
        Dim doc   As NotesDocument    
        Set uidoc = ui.CurrentDocument
        Set doc   = uidoc.Document
        Call uidoc.Close
        Set uidoc = ui.EditDocument(False,doc)


    damit funktioniert es leider nicht. :/

  • Unter anderen habe ich auch diesen Thread gefunden, die Lösung mit dem @Command([SwitchForm]; "Maske") funktioniert auch, jedoch nicht der dort gepostete Code.


    Ich benötige jedoch die SwitchForm Funktionalität im LS-Code.


    Das letzte Statement mit dem Löschen des Notesdocumentes scheint plausibel, jedoch habe ich keine Document Klasse die deleted werden könnte.


    Das Öffnen und Schliessen funktioniert ja auch, nur ich bekomme nie die aktuellen Daten... :(

  • Also der Post auf den ich direkt verwiesen habe funktioniert genau so wie du es willst.


    Ich hab ihn gerade selbst angepasst, dort noch die Form Änderung miteingebaut und er macht genau das was du willst:


    Dokument schliessen, Dokument mit anderer Maske neu öffnen und geänderte Werte sind alle drin

  • Danke für deine Mühe taurec, ich hatte das mit dem doc.form = "..." nicht bedacht.


    Leider funktioniert dies aber auch nicht wenn zwischenzeitlich jemand das Dokument ändert.


    Der @Command([SwitchForm]; "Maskenname") funktioniert hingegen


    Zu dem Code, der liegt bei mir auf einer Aktionsschaltfäche "Aktualisieren"


    Den save musste ich entfernen:
    1. Befinde ich mich im Ansichtsmodus
    2. Möchte ich nicht speichern, sonder aktuelle Daten erhalten