Suppression d'un document

Forum destiné aux questions sur le développement : Formules, LotusScript, Java ...

Suppression d'un document

Messagepar R-one » 03 Août 2011 à 15:10

Bonjour,

J'aimerai savoir où Notes stocke l'information sur le fait qu'un utilisateur est demandé la suppression d'un document.

Je m'explique :
Losqu'un utilisateur sélectionne un document à supprimer et appuye sur la touche "suppr" de son clavier. Notes enregistre le faire que l'utilisateur a fait la demande de suppression. Si j'appuye sur F9, il demande la confirmation de la suppression de ce document.

Ma question est : comment arrive t-il à faire ça?
L'info est caché dans chaque NotesDocument, ou dans NotesView? Ou autre?

Merci d'avance
R-one
Posteur néophyte
Posteur néophyte
 
Message(s) : 85
Inscrit(e) le : 28 Juin 2011 à 09:51

Messagepar Michael DELIQUE » 03 Août 2011 à 17:02

salut

c'est stocké dans les talon de suppression, accéssible uniquement en Ls via des api
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar Raziel » 03 Août 2011 à 17:05

Pour avoir une idée de l'envers du décor d'une base, tu peux utiliser NotesPeek. Tu pourra notamment voir ces fameux talons de suppression...
Raziel

L'administration est un lieu ou les gens qui arrivent en retard croisent dans l'escalier ceux qui partent en avance. [Georges Courteline]
Avatar de l’utilisateur
Raziel
Modérateur
Modérateur
 
Message(s) : 1795
Inscrit(e) le : 21 Déc 2004 à 11:06
Localisation : Roubaix

Messagepar roubech » 03 Août 2011 à 21:15

@Michael : le talon de suppression, c'est quand le doc est supprimé
à moins qu'il y ai 2 niveau de talon ????
là je pense qu'il demande entre le "marquer pour suppression" et le F9 qui fait rééllement la suppresion (cas où le SoftDelete n'est pas en place)
Avatar de l’utilisateur
roubech
Modérateur
Modérateur
 
Message(s) : 4976
Inscrit(e) le : 01 Fév 2007 à 20:22
Localisation : Lille

Messagepar R-one » 04 Août 2011 à 09:31

Merci pour vos réponses.

@roubech : Tu as bien compris ma demande. Je suis assez d'accord avec toi, il me semble que les talons de suppression ne sont créés que si le doc est réellement supprimé. (ainsi lotus peut s'y retrouver en cas de réplication des documents) Là, mon problème, se trouve en amont. (avant que l'utilisateur est confirmé la suppression)

J'essaye de savoir comment il stocke l'information "marquer pour suppression". Et si je peux atteindre cette info et la manipuler.

Je voudrais enlever tous les marqueurs de suppression dans l'évenement "queryclose" de la base.

En effet, lorsqu'un utilisateur marque un doc A à la suppression et qu'il ferme la base, SANS avoir fait F9 et la confirmation de la suppression de ce doc A. On lui propose de confirmer la suppression du doc A. J'aimerai éviter que la question soit posée quand il ferme la base.

Merci d'avance
R-one
Posteur néophyte
Posteur néophyte
 
Message(s) : 85
Inscrit(e) le : 28 Juin 2011 à 09:51

Messagepar Raziel » 04 Août 2011 à 09:52

Donc, si je comprends bien tu veux forcer la suppression du/des document(s) sans que le message ne s'affiche.

Dans ce cas, tu peux faire un truc du genre :

Dans le script de la base, partie déclaration tu mets :
Dim colDocDelete As NotesDocumentCollection

Dans l'évènement Querydocumentdelete tu mets :
Set colDocDelete = Source.Documents
Continue = false

Dans l'évènement Queryclose tu mets :
If Not colDocDelete Is Nothing Then If colDocDelete.count > 0 Then Call colDocDelete.Removeall(true)
Raziel

L'administration est un lieu ou les gens qui arrivent en retard croisent dans l'escalier ceux qui partent en avance. [Georges Courteline]
Avatar de l’utilisateur
Raziel
Modérateur
Modérateur
 
Message(s) : 1795
Inscrit(e) le : 21 Déc 2004 à 11:06
Localisation : Roubaix

Messagepar R-one » 04 Août 2011 à 10:22

Non, je ne veux pas forcer la suppression. Mais merci en tout cas, pour ta proposition.

Je veux bien que le message s'affiche si l'utilisateur fait F9.

Mais je ne souhaite pas que le message s'affiche si il ferme la base concernée.

Le pire c'est que même si l'utilisateur fait F9 et qu'il repond "Non" à la question "Voulez-vous supprimer 1 document de la base XXX.", qu'il ferme ensuite la base. Notes lui repropose la même question.
Vous pouvez vérifier par vous même. Je trouve ça pas très propre.

Donc ce que je veux faire, c'est ne pas afficher le message s'il ferme la base. (donc pour moi, la solution, c'est de retirer les marqueurs de suppression dans le queryclose de la base, mais je ne sais pas comment)
R-one
Posteur néophyte
Posteur néophyte
 
Message(s) : 85
Inscrit(e) le : 28 Juin 2011 à 09:51

Messagepar Michael DELIQUE » 04 Août 2011 à 12:51

salut

c'est simple

tu vas dans le script de la base dans le querydelete (pas le nom exact pas de client lourd sous la main) et tu gère ça avec la variables "continu" qui est dans la fonction.
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar Raziel » 04 Août 2011 à 13:00

Michael DELIQUE a écrit:salut

c'est simple

tu vas dans le script de la base dans le querydelete (pas le nom exact pas de client lourd sous la main) et tu gère ça avec la variables "continu" qui est dans la fonction.


Sauf erreur, pas sûr que ce soit si simple.
S'il passe le continue à false, cela va empecher toutes les suppressions. La il veux juste empécher le suppression lorsque le user ferme la base et que des docs sont en attente de suppression.
Raziel

L'administration est un lieu ou les gens qui arrivent en retard croisent dans l'escalier ceux qui partent en avance. [Georges Courteline]
Avatar de l’utilisateur
Raziel
Modérateur
Modérateur
 
Message(s) : 1795
Inscrit(e) le : 21 Déc 2004 à 11:06
Localisation : Roubaix

Messagepar R-one » 04 Août 2011 à 13:52

Raziel a raison. Ou en tout cas, je ne vois pas comment manipuler la variable comme il faut.

Quand je ferme la base, notes passe dans l'évenement "queryclose" et non dans le "querydeletedocument". Même le Source.Documents.Count affiche 0 documents dans le queryclose. Et pourtant, il me propose de supprimer un document.

Donc je vois pas comment il les trouve.

Je me demande si Notes ne crée pas un dossier ou un champs sur le document en attente de suppression. Si oui, lequel?
R-one
Posteur néophyte
Posteur néophyte
 
Message(s) : 85
Inscrit(e) le : 28 Juin 2011 à 09:51

Messagepar Raziel » 04 Août 2011 à 13:55

En fait il les trouve car lorsque tu as fait supprimer dans la vue, tu appel l'évènement QueryDeleteDocument (c'est la que Source.documents te retourne le nombre de document à supprimer).

En revanche, je ne me suis jamais posé la question de savoir où été stockée cette info.

Pas sûr en tout cas que tu puisse le faire en LS.
Raziel

L'administration est un lieu ou les gens qui arrivent en retard croisent dans l'escalier ceux qui partent en avance. [Georges Courteline]
Avatar de l’utilisateur
Raziel
Modérateur
Modérateur
 
Message(s) : 1795
Inscrit(e) le : 21 Déc 2004 à 11:06
Localisation : Roubaix

Messagepar Michael DELIQUE » 04 Août 2011 à 14:52

re,

pour ça ya une option du client lourd pour parametrer ça.
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar R-one » 04 Août 2011 à 14:55

Je ne connais pas cette option, si tu as une piste, je suis preneur.

Il doit bien les stocker quelque part pour me reposer la question à la fermeture de la base.
Pareil, quand on ouvre un document marqué en suppression, on peut voir (SUPPRIME) sur l'onglet du document à l'ouverture.

Pour le moment, je vais choisir une alternative. Si vous trouvez, n'hésitez à me contacter.

Ma solution :
Dans le "querydeletedocument" de la base, je pose directement la question à l'utilisateur pour confirmer ou non sa suppression.
Si l'utilisateur repond "oui" à ma question, je place le doc dans la corbeille, s'il repond "non", je fais un "continue = false".

Merci encore. En tout cas, ça serait intéressant de savoir comment gère ça Notes.
R-one
Posteur néophyte
Posteur néophyte
 
Message(s) : 85
Inscrit(e) le : 28 Juin 2011 à 09:51

Messagepar Michael DELIQUE » 04 Août 2011 à 18:00

re,

c'est une option dans les préférences utilisateur... mais ou... je sais pas... là je suis en vacances et je tourne sur 1/4 de neurone
Cordialement

Michael (SMS-Phobique)
----------------------------
"La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi."
Albert EINSTEIN
Avatar de l’utilisateur
Michael DELIQUE
Administrateur
Administrateur
 
Message(s) : 12183
Inscrit(e) le : 16 Déc 2004 à 10:36
Localisation : Paris/Cergy

Messagepar R-one » 04 Août 2011 à 18:14

profites bien de tes vacances alors. ^^

La solution détournée que j'ai choisi, fonctionne plutôt bien.
Mais bon, j'aurai bien aimé savoir comment Notes stocke cette info.
Et j'aimerai aussi éviter de demander à l'ensemble des utilisateurs de modifier leurs préférences utilisateurs.

Merci encore
R-one
Posteur néophyte
Posteur néophyte
 
Message(s) : 85
Inscrit(e) le : 28 Juin 2011 à 09:51

Suivant

Retour vers Développement