Recalculer tous les documents d'une vue

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

Recalculer tous les documents d'une vue

Messagepar clementbp » 28 Juin 2012 à 16:46

Bonjour à tous

Je voudrais créer un agent planifié qui ouvrirait une vue dans une base et qui ferait un recalcule des champs dans tous les documents de la vue.

J'ai fais très rapidement le code en langage de formule que je lance manuellement mais j'aurais besoin de le traduire en LS pour que ce soit plus propre.

Si quelqu'un peu me filer un petit coup de main !!!

Merci

Si besoin voici les formules :

Code : Tout sélectionner
@Command([OpenView]; "nom de la vue");
@Command([ToolsRefreshAllDocs]);
@Command([CloseWindow]);
clementbp
Posteur habitué
Posteur habitué
 
Message(s) : 236
Inscrit(e) le : 03 Fév 2010 à 16:42

Re: Recalculer tous les documents d'une vue

Messagepar roubech » 28 Juin 2012 à 20:52

regarde ComputeWithForm
http://publib.boulder.ibm.com/infocente ... ETHOD.html

mais pour des raisons de perf, on ne recommande pas souvent l'utilisation de cette méthode
le mieux est de réfléchir à pourquoi tu veux recalculer tous les champs de tes docs
en général, on se rend compte qu'il suffit de calculer juste quelques champs dans l'agent
Avatar de l’utilisateur
roubech
Modérateur
Modérateur
 
Message(s) : 4976
Inscrit(e) le : 01 Fév 2007 à 20:22
Localisation : Lille

Re: Recalculer tous les documents d'une vue

Messagepar clementbp » 29 Juin 2012 à 07:13

Bonjour

oui c'est vrai tu as raison je n'ai pas besoin de recalculer tous les champs du document mais seulement 1 de chaque document.
Je vais donc regarder pour faire çà?

Merci de ton aide
clementbp
Posteur habitué
Posteur habitué
 
Message(s) : 236
Inscrit(e) le : 03 Fév 2010 à 16:42

Re: Recalculer tous les documents d'une vue

Messagepar LSong » 03 Juil 2012 à 08:38

le computewithform utilise une forme pour faire son calcule
si tu change cette form avant tu peu faire ton calcule de ton seul champs et pas de tout le masque
il ne faut pas oublier de remettre la form d'origine avant de sauver

ca donne quelque chose comme

Code : Tout sélectionner
doc.form = "FormDeCalcule"
call doc.computeWithForm (true, false)
doc.form = "FormDOrigine"
call doc.save (true, false)


il te reste plus qu'a faire une boucle sur les documents et mettre ça au milieux
LSong
Posteur expérimenté
Posteur expérimenté
 
Message(s) : 353
Inscrit(e) le : 07 Nov 2007 à 14:27
Localisation : Ile de france

Re: Recalculer tous les documents d'une vue

Messagepar clementbp » 08 Août 2013 à 11:14

Bonjour,

Je me permet de relancer ce post parce que j'ai un soucis en rapport avec le sujet.

J'ai créé un agent qui recalcule les documents d'une vue, jusque là tout est OK !
Quand j'exécute mon agent pas de soucis il se lance depuis le serveur et tout semble OK.
Par contre quand je vérifie si le recalcule c'est bien effectué en prennant un des documents au hasard, je me rend compte que les données ont été modifiées, mais que le calcul ne sait pas complétement exécuté.

J'ai un champ C calculé de type liste de dialogue qui reprend les valeurs du champ A (type liste de dialogue) et les valeurs du champ B(type liste de dialogue).
Et quand je regarde le contenu du champ C après l'exécution de l'agent, j'ai uniquement la 1ère valeur du champ A !!!!!

Champ C = Champ A + Champ B

Est ce que quelqu'un à une idée ?

Merci


Voici mon code
Code : Tout sélectionner
Sub Initialize
   
   
   Dim Session As NotesSession
   Dim DB As NotesDatabase
   Dim vwVue As NotesView   
   
   Set session = New NotesSession
   Set DB = session.CurrentDatabase
   Set vwVue = DB.GetView( "Picklist-AccesAuxApplications" )
   
   
   Dim Doc As NotesDocument
      
   
   If Not vwVue Is Nothing Then
      Set Doc =  vwVue.Getfirstdocument()
      While Not Doc Is Nothing
                  
         doc.Form = "mADMINISTRATEURAcces"
         Call doc.computeWithForm (True, True)
         Call Doc.Save(True,False)
         
         Set Doc = vwVue.Getnextdocument(Doc)
      Wend
      
   End If
   
   
   
   
   
End Sub
clementbp
Posteur habitué
Posteur habitué
 
Message(s) : 236
Inscrit(e) le : 03 Fév 2010 à 16:42

Re: Recalculer tous les documents d'une vue

Messagepar Michael DELIQUE » 08 Août 2013 à 12:21

salut

vérifie si ton champ n'est pas calculé a la creation.

sinon tu as une méthode plus simple juste en formules :

@Command([RefreshHideFormulas]);
@Command([ViewRefreshFields]);
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

Re: Recalculer tous les documents d'une vue

Messagepar clementbp » 08 Août 2013 à 13:00

Je voudrais le faire en Back End - Un agent planifié sur le serveur
clementbp
Posteur habitué
Posteur habitué
 
Message(s) : 236
Inscrit(e) le : 03 Fév 2010 à 16:42

Re: Recalculer tous les documents d'une vue

Messagepar Michael DELIQUE » 08 Août 2013 à 13:02

ok

essais, histoire de voir si tu as le meme probleme !

sinon tu rajoute le calcul qui va pas en LS dans ton code
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

Re: Recalculer tous les documents d'une vue

Messagepar clementbp » 08 Août 2013 à 14:42

Bon après de trop nombreuses minutes de recherche, il semblerait que cela vienne du fait que mes champs étaient "Calculer après validation".
Donc voilà maintenant il semblerait que cela fonctionne.
clementbp
Posteur habitué
Posteur habitué
 
Message(s) : 236
Inscrit(e) le : 03 Fév 2010 à 16:42


Retour vers Développement

cron