Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: immanuel am 01.04.04 - 15:32:22
-
Hallo Zusammen
Eine DB ist gerade in Entwicklung - die Views darin auch. Wir verwenden u.a. "Gemeinsame, bei 1. Verwendung private Views". Weil ich diese View weiterentwickle, ist es sehr mühsam, weil die Views zu dazumaligen Stand beim 1. Userzugriff gespeichert wurden. User haben nun alte Views. Die persöndliche View kann meines Erachtes nur durch löschen und neu Erstellen 100% upgedatet werden. Über die "Aktionen --> Ansichtoptionen --> löschen" kann eine pers. View gelöscht werden - beim nächsten Zugriff wird sie dann wieder neu erstellt.
Um einen aktuellen Stand bei den Usern zu haben, möchte ich alle Views automatisch updaten/ neu erstellen. Per Agent könnte ich dies tun, jedoch war der Test suboptimal. Ich löschte die pers. View über den Agent - die View war tatsächlich weg, jedoch hatte ich am Schluss eine leere, korrupte View, keine neu erstellte. (Domino 5.0.9 und Notes 5.0.10).
Habt ihr Tipps, wie ich die pers. Views der User automatisch updaten kann? Kann ich die Views nicht einfach in der DB über eine Ansicht löschen?
Danke für eure Vorschläge!
Grüsse
Manuel
-
Sowas sollte eigentlich nicht passieren. Zeig mal Deinen Code, vielleicht lässt sich da noch was optimieren.
Bernhard
-
Der Agent sieht so aus:
Sub Click(Source As Button)
' Löscht die Ansicht
Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Set db = session.CurrentDatabase
Set view = db.GetView( "Help Inquiries\By MyInq personal ALL" )
Call view.Remove
End Sub
Grüsse
Manuel
-
“...die mich suchen, werden mich finden.” (Sprüche 8:17)
Das kann man dann wohl dazu sagen .....
Du solltest auch noch überprüfen, ob Du wirklich die private Ansicht zurückbekommst. So könnte es nämlich auch sein, dass Du die Vorlage-Vieh versuchst zu löschen. Beispiele dafür gibts in der Hilfe und in der KB
-
Jo, Du prüfst nicht nach, ob das Vieh es persönlich nimmt ;-)
Hier was als Beispiel, wie sich's geht:
Author: Daniel Bjarsch
Deleting private views
Description:
If you have a database with views of the kind "Private on first use", changes in design will not get through to the private copies of the view.
This script gets rid of the private copies of "Private on first use" views that is stored in the database.
Put the code in the Queryclose event of the database if you want the private copy of the view to be deleted every time the user exits the database.
Otherwise put the code in a scheduled agent.
Code:
Sub Queryclose(Source As Notesuidatabase, Continue As Variant)
Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim docView As NotesDocument
Dim itmFlags As NotesItem
Set db = session.CurrentDatabase
Forall v In db.Views
Set view = v
Set docView = db.GetDocumentByUNID( view.UniversalID )
If Not docView Is Nothing Then
Set itmFlags = docView.GetFirstItem( "$Flags" )
If Instr( itmFlags.Values( 0 ), "V" ) Then
Call view.Remove
End If
End If
End Forall
End Sub
HTH,
Bernhard
-
Hey, das ging ja schnell... Vielen Dank! Werde es gleich probieren!
Danke und Grüsse
Manuel
-
Hallo Zusammen!
Die pers. Ansichten werden nun gelöscht. die Ansicht wird aber erst nach dem Verlassen der DB und erneutem Öffnen neu erstellt. Ich werde die Ansichten über einen Agent bei allen Usern löschen...
Merci!
Ich wünsche euch noch einen schönen Abend!
...Manuel
-
Das ist normal mit dem Verfahren zum Erstellen einer neuen persönlichen Ansicht - geht ja auch nicht anders (ausser per Programm).
Und den Agent halte ich sowieso für die elegantere Methode. Du musst aber die User berücksichtigen, die mit lokalen Kopien arbeiten - bei kurzen Intervallen der View-Design-Änderung und anschliessendem Löschen der pers. Ansichten könnten die eventuell durchs Netz rutschen. Eine reine Organisationsfrage also.
Auch Dir einen schönen Abend !
Bernhard