2009-07-29 6 views
0

Je travaille sur une application Web Lotus Domino et j'ai une vue qui ne devrait afficher que les documents de l'utilisateur actuel. Je sais que ce n'est pas le meilleur pour le serveur, car il doit continuer à calculer, mais il est une exigence ...Vue Web de Lotus Domino - ne devrait afficher que les documents de l'utilisateur actuel - mais en montre plus?

C'est la formule de sélection de vue que j'utilise:

SELECT (Form = "Atom Request" | Form = "AtomRequest") & @Name ([CN]; RequestAuthor) = @Nom ([CN]; @ NomUtilisateur)

Le champ RequestAuthor est un champ calculé lors de la saisie du nom de l'auteur .

La sélection de vue fonctionne bien pour moi, mais les autres utilisateurs peuvent voir les documents d'autres utilisateurs dans cette vue.

Je suis probablement sur quelque chose évidente ....

Toutes les suggestions?

Derek

+0

Question stupide ... mais avez-vous vérifié que le champ RequestAuthor sur les documents est défini correctement? –

Répondre

1

Je converti la vue à une vue catégorisée - classés par le AuthorName.

Ensuite, j'ai intégré la vue sur le formulaire de modèle de vue en le définissant pour afficher une seule catégorie.

La catégorie unique est le nom d'utilisateur.

semble avoir fait le tour ..

1

-vous demander à l'utilisateur de pouvoir voir les documents autres que leur propre (en dehors de ce point de vue que je veux dire)? Si ce n'est pas le cas, utilisez un champ de lecture sur les documents pour limiter la visibilité de chaque document.

Ensuite, vous n'aurez pas besoin de la partie @Name([CN];RequestAuthor) = @Name([CN];@UserName) de la formule de sélection. Sinon, si vous avez besoin que les utilisateurs puissent voir des documents autres que les leurs, l'approche par catégorie intégrée que vous avez adoptée est probablement la plus propre.

+0

Pour les utilisateurs de must qui fonctionneraient, mais il y a une classe de super-utilisateurs qui sont capables de voir/éditer plus que leurs propres documents. Donc, la vue de mes documents ne fonctionnerait pas pour eux, mais pour tout le monde. La vue catégorisée semble avoir fait l'affaire - Je n'ai plus le @Name ([CN]; RequestAuthor) = @Name ([CN]; @ UserName) dans la vue - il est maintenant dans la formule de catégorie unique sur la vue intégrée ..... – Derek

1

La solution de LRE est bonne. Mais à partir d'un POV de conception, n'utilisez pas @UserName ou @Now ou @today dans la formule de sélection de vue cela cause de sérieux problèmes de performances pour votre base de données et le serveur.

Chaque fois que vous ouvrez la vue, le serveur reconstruit l'index. Si vous devez utiliser des informations spécifiques à l'utilisateur, créez un agent planifié qui définira la valeur dans un champ, puis référencera le champ dans le cadre de la formule d'affichage. N'utilisez simplement pas de fonctions "@" dynamiques dans la formule d'affichage qui modifieraient les critères.

Questions connexes