Historique des modifications d'un document

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

Historique des modifications d'un document

Messagepar Notus » 16 Oct 2009 à 09:33

Bonjour,

J'ai besoin d'un peu d'aide d'experts Notes svp, je veux créer un historique des modifications d'un document (seulement la date et le nom de la personne qui a modifié le document) mais je reste bloqué sur la méthode.

Je voudrais savoir si quelqu'un parmi vous à déjà créer un historique et si oui comment il s'y est pris.....

Je rencontre certains problème comme:
-savoir si le document a été modifié et non pas enregistrer sans modification ( à mon avis je dois comparer les valeurs de mes champs entre le queryopen et le postsave) ou si une formule obscure existe..... comme vérifier si le document a été ouvert en modification......
-j'ai pensé ecrire le "modificateur" eet la date dans un champs texte riche que j'utiliserai dans une zone sensible, qu'en pensez vous?

Merci de votre aide.
Notus
 

Messagepar amahi » 16 Oct 2009 à 11:02

Dans un premier regarde si les champs reservé de type $UpdatedBy ne suffise pas à repondre a ta requete.
Maintenant si tu veut t'assurer d'historiser les modifications ca va etre plus hard.
Le plus simple serait que sur le onChange de tous tes champs tu mette un bout de code qui changerait le flag d'un champ isModified.
A l'enregistrement tu remetra ce champ a false et stockera le nom et la date du modificateur (si il etait a true).
@Novaliance
amahi
Empereur des posts
Empereur des posts
 
Message(s) : 1032
Inscrit(e) le : 08 Jan 2007 à 16:57
Localisation : Region parisienne

Messagepar Michael DELIQUE » 16 Oct 2009 à 11:20

salut

pour déterminé si a un champ a été modifié il ya plusieur méthode, mais toute on un défaut : la lourdeur
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 Notus » 16 Oct 2009 à 15:40

Après une prise de tête à cause des lourdeurs, j'ai décidé de faire simple:
-dans le postsave, je renseigne un champs du masque multivalué où j'y écris le nom du "modifiant" et la date de la modification
-puis je récupéré la valeur du champs dans une infobulle(zone sensible) et je fais un implode pour "lister" les valeurs.

Le hic est qu'a chaque sauvegarde du document, le champ est renseigné même si le document n'est pas modifié, cependant, il y a un bouton annuler et je compte sur le bon sens de l'utilisateur pour l'utiliser au lieu du "enregistrer et fermer".

P.S: Ok pour le bon sens je peux rêver....

Merci pour vos réponses!
Bon week-end
Notus
 

Messagepar Jérome Deniau » 18 Oct 2009 à 02:14

Je crois que TeamStudio a un outil pour cela (on met le problème sur le serveur et pas dans la base ;-))

On peut récupérer pour des champs données la date de modification via LastModified. Donc on peut boucler sur tous les champs (sauf les champs système du style form,$updatedby, $revisions) et si un des champs a cette propriété correspondant à la date/heure du jour, on indique qu'il y a eu modification.
Jérome Deniau
 

Messagepar Bidouille » 18 Oct 2009 à 16:26

Je sais pas si je suis dans le sens de la demande mais en @formule ...

un champs "Valid" type nom qui ne doit pas etre vide
un champs "Historique" multivalué
un champs "Status" qui evolut en fonction de la situation d'autre champs et /ou actions


FIELD temp := Valid;
FIELD temp1 := Historique ;
@If(temp ="";"";temp1+@Name([CN];@UserName) +" le " +@Text(@Now) + " "+@NewLine+ Status +@NewLine +"__________________________________________"+@NewLine)


ca peut donne un truc comme cela


"le @UserName" le 18/10/2009 17:15:41
En cours d'acceptation
__________________________________________
"le @UserName" le 18/10/2009 17:20:03
Demande acceptée
__________________________________________
Bidouille

8) Le farniente est une merveilleuse occupation. Dommage qu'il faille y renoncer pendant les vacances, l'essentiel étant alors de faire quelque chose. 8)
Pierre Daninos
Avatar de l’utilisateur
Bidouille
Roi des posts
Roi des posts
 
Message(s) : 691
Inscrit(e) le : 10 Déc 2008 à 18:14
Localisation : Sud Ouest

Messagepar Jérome Deniau » 18 Oct 2009 à 19:50

Yes sauf que il veut s'assurer que le gus n'a pas la main lourde sur le bouton enregistrer et il doti donc vérifier si modification il y a eut et pas uniquement un chieur d'utilisateur qui force l'enregistrement rien que pour voir si cela fonctionne bien.....
Jérome Deniau
 


Retour vers Développement

cron