Domino 9 und frühere Versionen > ND6: Entwicklung
Author darf kein ViewRebuild
mara.k:
Hallo zusammen, bisher hab ich über die Suche alle nötigen Informationen gefunden, jetzt komm ich jedoch nicht weiter.
Ich möchte die Möglichkeit zum anpassen der Ansichten für den Benutzer einfacher darstellen und gleichzeitig eine Suche ausführen, bekomme jedoch die Meldung sie haben zur Durchführung keine Berechtigung wenn es ein Benutzer versucht, der halt nur Author Rechte hat.
Hier Schritt für Schritt was ich tue:
1. eine Private ansicht erstellen und Agenten ausführen:
@SetTargetFrame("display");
@Command( [OpenView] ; "privatNAV");
@Command([RunAgent];"SetNAVAnsicht")
2. der Agent ruft entweder die Seite zum Einstellen der Ansicht auf oder wenn die schon mal ausgewählt wurde, soll er die Einschränkungen aufbauen:
Sub CreateUserViewNAV
On Error Goto errmsg
Dim s As New NotesSession
Dim workspace As New NotesUIWorkspace
Dim defaultView As NotesView
Dim UserView As NotesView
Dim pdoc,vdoc As NotesDocument
Dim tdoc,doc,viewdoc As Notesdocument
Dim dc As NotesdocumentCollection
Dim myItem As NotesItem
Dim formula, Server, DBName As String
Dim uidb As NotesUIDatabase
Dim db As Notesdatabase
Dim UserName As NotesName
Set uidb = workspace.CurrentDatabase
Set db = s.currentDataBase
Set pdoc=db.GetProfileDocument("(Sel_NAV)",s.Username)
Set UserName=New NotesName(s.UserName)
If (pdoc Is Nothing) Or (pdoc.HasItem("Firma") = False) Then
Call workspace.editProfile("(Sel_NAV)",s.UserName)
Exit Sub
End If
'Alle Dok's suchen, die vom Typ Nachtrag
'und in denen das Feld Firma die gewünschten Firmen
formula = |@Contains(Form;"Nachtrag") & DeletedOn = "" |
Set myItem = pdoc.GetFirstItem("Firma")
If myItem.Text <> "" Then
formula = formula + |& @IsMember(Firma;"| + StrReplace(myItem.Text,";","':'") + |")|
End If
'und das Feld NA_Gewerk die gewünschten Gewerke enthält
Set myItem = pdoc.GetFirstItem("NA_Gewerk")
If myItem.Text <> "" Then
formula = formula + |& @IsMember(NA_Gewerk;"| + StrReplace(myItem.Text,";","':'") + |")|
End If
Set myItem = pdoc.GetFirstItem("DokSel")
If myItem.Text <> "" Then
formula = formula + |&| + StrReplace(myItem.Text,";","&")
End If
' die private Ansicht ausfindig machen
Forall v In db.views
If v.Name = "privatNAV" Then
isPrivateView = False
Set vdoc = v.parent.GetDocumentByUnid( v.UniversalID )
If Not (vdoc Is Nothing) Then
If vdoc.HasItem("$Flags") Then
If Instr(vdoc.GetItemValue("$Flags")(0), "V") Then
Set defaultview = v
End If
End If
End If
End If
End Forall
' nur falls es doch mal schief geht
If defaultView Is Nothing Then
Print "probleme mit der Ansicht"
Exit Sub
Else
'übernehmen der Auswahl
defaultview.Selectionformula=formula
'übernehmen der Spalten
Set myItem = pdoc.GetFirstItem("Columns")
If myItem.Text <> "" Then
Forall c In defaultview.Columns
If c.Title <> "" Then
If Instr(1, myItem.Text, c.Title, 5) > 0 Then
c.IsHidden = False
Else
c.IsHidden = True
End If
End If
End Forall
End If
Call workspace.ViewRebuild
End If
Exit Sub
errmsg:
Print Error() & " :CreateUserViewNAV: " & Err() & " on line " Erl()
End Sub
Wie schon gesagt bekommen Anwender ein Berechtigungsproblem beim ViewRebuild.
Alles andere
Call workspace.OpenDatabase( s.CurrentDatabase.server, sCurrentDatabase.FilePath)
oder
defaultview.Refresh
aktualisiert nicht die Ansicht, wie gewünscht.
Wie kann ich sonst die Möglichkeit "Ansicht anpassen..." für den User nutzen?
Danke schon einmal
Mara
dirk_2909:
Hallo,
der Benutzer benötigt mindestens "Entwickler"-Zugriff.
Dirk
mara.k:
Schon gemerkt, jedoch nicht Entwickler sondern Editor mit "öffentliche Ordner / Ansichten erstellen".
Die Frage ist aber warum, wenn er doch die Funktion "Ansichten anpassen..." nutzen darf und es sich um eine Private Ansicht handelt.
Und leider nutzt mir das überhaupt nichts, da ich Dokumente mit Leser- / Author-Feldern nutze und somit schon eingeschränkt ist, welche er sehen darf.
Ich kann dem Anwender ja auch nicht nur für die Funktion das Recht geben, da er es ja ausführt. Gibt es eine Möglichkeit das gezielt vom Server zu aktualisieren?
Ach ja, hatte ja schon mehr dazu gesucht, irgendwie macht diese Aussage kein Sinn:
http://www-10.lotus.com/ldd/today.nsf/Lookup/LS_views
New functionality for views
These new and enhanced methods and properties allow developers to create scripts that non-developers can run to make changes to views without the intervention of the developer
Da muss dann doch irgendetwas bei mir falsch sein.
TMC:
--- Zitat von: mara.k am 01.04.05 - 12:49:02 ---Da muss dann doch irgendetwas bei mir falsch sein.
--- Ende Zitat ---
Weiß ich nicht. Nicht unbedingt.
Was soll denn so ein ViewRebuild machen? Die help sagt:
--- Zitat ---Parameters
viewrebuild
Boolean. Defaults to True. Rebuilds the view design, for example, to capture a change in a column formula.
--- Ende Zitat ---
Ich denke da wird gespeichert. Wenn gespeichert wird, dann werden da wohl im Hintergrund Rechte abgefragt. Und Autor reicht da wohl hier leider nicht.
Hast Du mal in der KBase nachgesehen? Hast Du einen Vertrag? Ich denke das wäre was, um dort mal als Issue reinzukippen. Denn so wie Du plausibel die Situation schilderst, sollte der ViewRebuild eigentlich funktionieren. Ich konnte jetzt zumindest nix falsches erkennen. Bis eben auf die Sache, dass das als Autor nicht geht. Aber ist so auch nicht direkt dokumentiert in der Help.
Also: ich tendiere, mal IBM danach zu fragen. Hab jetzt allerdings nicht im LDD-Forum nachgesehen, dort würde ich auch mal stöbern.
Und halte uns bitte auf dem laufenden, danke.
koehlerbv:
Das NotesUIWorkspace.ViewRebuild ist sicherlich nicht der casus cnactus. Dies ist ja nur ein Rückgriff auf das Backend aus dem Frontend:
--- Zitat ---Rebuilds a UI view from its associated back-end view.
--- Ende Zitat ---
Entscheidend ist ehe der "Umbau" der view selection formula - und da bekommst Du mangels Rechten der User Schwierigkeiten.
Sag' mal genaueres, was Du bezwecken willst. "Dynamische Ansichten" sind auch in R6 ein letztlich nicht wirklich gelöstes Problem, aber es bieten sich doch etliche "workarounds" an. Vielleicht können wir da gemeinsam ansetzen.
Bernhard
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln