Page 1 sur 2

Suppression d'un document

MessagePublié: 03 Août 2011 à 15:10
par R-one
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

MessagePublié: 03 Août 2011 à 17:02
par Michael DELIQUE
salut

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

MessagePublié: 03 Août 2011 à 17:05
par Raziel
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...

MessagePublié: 03 Août 2011 à 21:15
par roubech
@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)

MessagePublié: 04 Août 2011 à 09:31
par R-one
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

MessagePublié: 04 Août 2011 à 09:52
par Raziel
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)

MessagePublié: 04 Août 2011 à 10:22
par R-one
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)

MessagePublié: 04 Août 2011 à 12:51
par Michael DELIQUE
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.

MessagePublié: 04 Août 2011 à 13:00
par Raziel
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.

MessagePublié: 04 Août 2011 à 13:52
par R-one
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?

MessagePublié: 04 Août 2011 à 13:55
par Raziel
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.

MessagePublié: 04 Août 2011 à 14:52
par Michael DELIQUE
re,

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

MessagePublié: 04 Août 2011 à 14:55
par R-one
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.

MessagePublié: 04 Août 2011 à 18:00
par Michael DELIQUE
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

MessagePublié: 04 Août 2011 à 18:14
par R-one
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