Page 1 sur 1

mise à jour automatique d'un champ

MessagePublié: 03 Juin 2003 à 08:30
par Raphaël
Bonjour,Est il possible de remettre à jour automatiquement (avec un agent planifier par exemple) un champ d'un masque x. En faîte j'ai un champ de type date qui me retourne la date du jour(@Today). Je recupère cette valeur ds une vue, mais je voudrais que tous les jours ce champ soit remis à la date d'aujourd'hui automatiquement, sans aller modifier le document.Une solution?Merci d'avance,@+Raph

Re: mise à jour automatique d'un champ

MessagePublié: 03 Juin 2003 à 08:33
par Raziel
Tout est possible...Pour cela, tu met dans ton agent un truc du genreFIELD MonChamp := @todayLa question est : Quel est l'utilité d'une telle chose ?

Re: mise à jour automatique d'un champ

MessagePublié: 03 Juin 2003 à 09:01
par Raphaël
Alors je t'explique : J'ai des personnes qui me remplisse un formulaire, avec des dates. Pour ne pas que les gens prennent du retard, si la date max est dépassé, un rappel leur est envoyé. La base du workflow quoi. C bête mais les gens raffolent de ce genre de petites choses....Tu dois savoir ce que c non?;-)Merci pour l'astuce je vais tester tout ca.@+Raph

Re: mise à jour automatique d'un champ

MessagePublié: 03 Juin 2003 à 09:24
par Raziel
Ok, mais ce que je ne saisie pa c'est pk tu veux que tes doc contiennent un champ avec la date du jour ? Est ce que tu veux utiliser ce champ pour le rappel ?

Re: mise à jour automatique d'un champ

MessagePublié: 03 Juin 2003 à 09:27
par Raphaël
Oui c ca, c n'est pas la bonne solution? Tu as un autre moyen?

Re: mise à jour automatique d'un champ

MessagePublié: 03 Juin 2003 à 09:47
par Raziel
J'aurais bien une autre soluce à te proposer.Donc si je résume, tes users créés des doc en renseignant +sieurs champs. L'un de ses champs (on va l'appelé DateMax) contient la date à ne pas dépasser. Ce que tu veux faire c'est récupérer tous les documents dont cette date est atteinte ou dépassé.Tu as deux possibilités.Méthode 1. La plus facile à mettre à place mais que je n'apprécie guère.Tu créé une vue dont la formule de sélection resemble à celle ci :SELECT Form = "NomDuMasque" & DateMax <= @todaySi DateMax est un champ texte alors tu tapeSELECT Form = "NomDuMasque" & @TextToTime(DateMax) <= @todayCe que je reprocha à cette méthode c'est le fait de mettre le @today dans la formule de sélection engendre 2 phénomènes :-> Le premier : L'index de la vue sera regénéré à chaque ouverture de la vue-> Le second : L'icône de raffraichissement (en haut à gauche de la 1ère colonne) apparait tout le tempsMéthode 2. Passé par un agentTu créé un agent contenant un code semblable à celui ciSub InitializeDim session as new notessessionDim db as notesdatabaseDim colDoc as notesdocumentcollectionDim doc as notesdocumentDim formule as stringset db = session.currentdatabaseformule = "SELECT Form = 'NomDuMasque' & DateMax <= @today"set colDoc = db.search (formule, Nothing, 0)if colDoc.count = 0 then exit subdoc = ColDoc.getfirstdocumentwhile not doc is nothing..................' Passage au doc suivantset doc = colDoc.getnextdocument(doc)wendend subMême remarque que pour le vue : Si ton champ DateMax est de type texte, remplace :formule = "SELECT Form = 'NomDuMasque' & DateMax <= @today"parformule = "SELECT Form = 'NomDuMasque' & @texttotime(DateMax) <= @today"

Re: mise à jour automatique d'un champ

MessagePublié: 03 Juin 2003 à 10:28
par Raphaël
Okai, j'ai bien compris pour la vue, merci.Maintenant je voudrais créer un agent avec une formule dans le genre :FIELD date := @Today;@If(date = Date_today;FIELD alerte2 := toto;"");SELECT @AllTu penses bien qu'elle ne marche pas, mais il n'y aurait pas une autre méthode pour l'écrire?En faîtes qd mes deux champs date et Date_today sont identiques je veux mettre mon champ alerte2 à toto. Et bien sur tout ca automatiquement. Pour l'automatisme, il n'y a pas de problème, par contre pour la formule...PS : Ceci me permet d'envoyer un mail à kelk'un lorsque le masque contient le champ avec la valeur "toto"Merci@+

Re: mise à jour automatique d'un champ

MessagePublié: 03 Juin 2003 à 10:33
par Raziel
Effectivement, tu ne peux pas utiliser un FIELD dans une condition IFPour cela remplaceFIELD date := @Today;@If(date = Date_today;FIELD alerte2 := toto;"");SELECT @Allpar FIELD date := @Today;FIELD alerte2 := alerte2;@If(date = Date_today;@setfield(alerte2;toto);"");SELECT @All

Re: mise à jour automatique d'un champ

MessagePublié: 03 Juin 2003 à 11:03
par Raphaël
Rassure moi, mon champ alerte2, peut bien être de type texte modifiable non?

Re: mise à jour automatique d'un champ

MessagePublié: 03 Juin 2003 à 11:11
par Raziel
Off course...

Re: mise à jour automatique d'un champ

MessagePublié: 03 Juin 2003 à 12:46
par Raphaël
Et ben il est plutôt méchant avec moi, il ne veux rien m'incrire dans le champ.C bizzare pour la date ca marche super bien.... Y'a autre chose à faire au niveau du masque?

Re: mise à jour automatique d'un champ

MessagePublié: 03 Juin 2003 à 13:00
par Raphaël
Okai, pardon, j'ai trouvé le problème, il faut mettre des guillemets un peu partout. Scuse.Merci pour l'aide!!! Ca va bien m'aider!!@+Raph

Re: mise à jour automatique d'un champ

MessagePublié: 03 Juin 2003 à 13:01
par Raziel
Oups, petite erreurRemplace@If(date = Date_today;@setfield(alerte2;toto);"");par @If(date = Date_today;@setfield("alerte2";"toto");"");