Page 1 sur 1

Vue partagées devenant privées à la première ouverture

MessagePublié: 17 Juil 2009 à 17:04
par cdelrue
J'ai un problème avec les vues partagées devenant privées à la première ouverture. Elles ne se rafraichissent pas malgré un script pour vider le cache.

J'ai développé une base notes, dans laquelle j'ai ajouté un script dans le queryclose de la base.

[syntax="LotusScript"]Sub Queryclose(Source As Notesuidatabase, Continue As Variant)
Dim session As New NotesSession
Dim dbc As NotesDatabase
Set dbc = session.CurrentDatabase

'// Permet de vider le cache à la fermeture de la base
Dim db As New Notesdatabase("","desktop6.ndk")
If Not(db.IsOpen) Then Call db.Open("","")
If Isarray(db.Views) Then
Forall pview In db.Views
If Lcase(pview.Parent.Parent.CurrentDatabase.Title) = dbc.Title Then
Call pview.Remove
End If
End Forall
End If
End Sub[/syntax]

Le problème est que malgré celà le cache n'a pas l'air de se vider.
Mon script est peut-être erroné.
Existe t'il un autre moyen pour vider le cache?

MessagePublié: 17 Juil 2009 à 19:55
par Michael DELIQUE
salut

tes vues sont privés sont desktop ou server ?

et plus tot que d'essayer de vider le cache, je te conseil de supprimer la copie privé c'est elle qui ne se met pas a jours

lundi je te donnerais du code pour le faire

Mais bon les vue privées c'est un peu l'enfert, je te conseillerais d'utiliser la formule @setviewinfo

=> http://www.domlike.net/domlike/dl2.nsf/ ... BOE-6HFMFN

MessagePublié: 20 Juil 2009 à 08:50
par cdelrue
Bonjour et merci de ta réponse.
Donc les vues qui me posent problème sont des "vues partagées devenant privées à la première ouverture" => Visiblement d'après l'aide, il est écrit ceci:

Quand une vue partagée-privée a été enregistrée, la copie de l'utilisateur n'hérite plus des modifications de conception. Par exemple, si vous ajoutez une colonne à une vue, aucune des personnes disposant d'une version privée de cette vue ne verra la nouvelle colonne. Pour obtenir les modifications de conception, les utilisateurs doivent d'abord supprimer leur version privée, puis ouvrir une nouvelle fois la vue partagée-privée.

Aurait-il mieux valu que j'utilise une vue partagée bureau privé à la première ouverture ?

Sinon je ne peux pas utiliser de @setviewinfo pour filtrer la vue. Car le vues ne doivent afficher que les documents pour lesquels l'utilisateur est autorisé d'après ses groupes notes et ses rôles. Tout cela se filtre à l'aide d'un champ lecteur.

Et afin d'éviter les catégories vides dans les vues partagées, on m'a conseillé d'utilisés les vues "partagées devenant privées".

MessagePublié: 20 Juil 2009 à 08:56
par Michael DELIQUE
salut

pour éviter les catégories vide il ya une option dans les parametres de la vue, 3eme onglet au milieux, dans le milieux, "Don 't show empty categories".

maintenant d'apres ce que je lis tes vue sont privées sur le server. donc ce code fonctionnera


Code : Tout sélectionner
Sub DeletePrivateViewOnServer (wNameView As String, wDB As NotesDatabase)
   On Error Resume Next
   If Trim(wNameView)="" Then
      Exit Sub
   End If
   
   Dim vwDelete As NotesView
   If wDB Is Nothing Then
      Dim Session As New NotesSession
      Set vwDelete = Session.CurrentDatabase.GetView(wNameView)
   Else
      Set vwDelete = wDB.GetView(wNameView)
   End If
   
   If Not vwDelete Is Nothing Then
      If(Ubound(vwDelete.aliases)>0) Then
         Call vwDelete.Remove
      End If   
   End If   
   Set vwDelete = Nothing
End Sub


tu le mets dans le script de la base dans le queryclose exemple d'appel

Call DeletePrivateViewOnServer("mavue",Source.Database)

a chaque fermeture de la base la copie privé sera effacé par contre ça marche pas si ta vue est privé desktop

MessagePublié: 20 Juil 2009 à 10:31
par cdelrue
Merci beaucoup pour ton code, mais il ne fonctionne pas pour mes vues.
Lorsque l'on ferme la base, on voit pourtant que la base met plus de temps à se fermer.
Ce que je remarque cependant c'est qu'avec mon profil gestionnaire lorsque je quitte la base, il y avait cette vue qui restait créée en vue privée serveur qui est effacée.

La seule chose qui fonctionne pour supprimer la vue sur les clients qui ne sont pas gestionnaires de la base, c'est de passer par le menu :
Action
-> options de la vue
-> Supprimer vue

Du coup j'ai totalement revu mon fusil d'épaule et j'ai donc tout basculé sur des vues partagées, en suivant ton premier conseil :

pour éviter les catégories vide il ya une option dans les parametres de la vue, 3eme onglet au milieux, dans le milieux, "Don 't show empty categories".


Encore merci, ça solutionne mon problème et je peux donc clore ce post.

MessagePublié: 14 Jan 2010 à 14:50
par cuatan
MERCI pour ce topic !!! je commencais a perdre espoir...

MessagePublié: 14 Jan 2010 à 15:11
par nemrod93
Bonjour,

Bien que le post soit clos,
y'a un truc qui me tarabusque

@cdelrue indique dans le 1er post

'// Permet de vider le cache à la fermeture de la base
Dim db As New Notesdatabase("","desktop6.ndk")

Le cache ce n'est pas "cache.ndk" ???

Le client place des infos en cache dans le desktop ?

Merci d'éclairer ma lanterne

MessagePublié: 14 Jan 2010 à 15:19
par Michael DELIQUE
salut

c'est bien dans le desktop, mais si tuas un doute tu fais une copie du cache et du desktop tu remplace le ndk par nsf et tu ouvres

tu pourra voir par toi meme ce qu'il ya dedans

MessagePublié: 14 Jan 2010 à 15:24
par nemrod93
Ok Ok on en apprend tous les jours et merci pour l'astuce du nsf :D :D :D :D

cdlt

Alain