Page 1 sur 1

exécuter un agent écrit en formule depuis du code LotusScrip

MessagePublié: 23 Juil 2003 à 10:04
par clémentine
Bonjour,Je débute et je voudrais savoir s'il est possible d'éxécuter un agent écrit en formule depuis un code en LotusScript, par exemple depuis QuerySave, et de quelle façon.Merci de votre aide.

Re: exécuter un agent écrit en formule depuis du code LotusS

MessagePublié: 23 Juil 2003 à 10:12
par Droad
dim session as new notessessiondim db as notesdatabasedim agent as notesagentset db = session.CurrentDatabaseset agent = db.getAgent("monagent")call agent.run() ' ou bien agent.runOnServer()[%sig%]

Re: exécuter un agent écrit en formule depuis du code LotusS

MessagePublié: 23 Juil 2003 à 10:15
par clémentine
Merci !

Re: exécuter un agent écrit en formule depuis du code LotusS

MessagePublié: 23 Juil 2003 à 10:33
par clémentine
J'ai essayé ce que tu m'a dit avec à titre d'exemple l'agent :FIELD monchamp := "ok";@Command([FileSave]);@Alloù monchamp est un champ du document depuis lequel on éxécute le code LotusScript dans QuerySave.Le champ n'est pas rempli.Peux tu me dire pourquoi?Merci.

Re: exécuter un agent écrit en formule depuis du code LotusS

MessagePublié: 23 Juil 2003 à 10:50
par Droad
Tu ne peux pas utiliser des @Command dans un agent lancé par la méthode run.[%sig%]

Re: exécuter un agent écrit en formule depuis du code LotusS

MessagePublié: 23 Juil 2003 à 10:58
par clémentine
y a t-il une façon de faire pour que je puisse utiliser des @Command et des @ fonctions?Merci.

Re: exécuter un agent écrit en formule depuis du code LotusS

MessagePublié: 23 Juil 2003 à 11:02
par clémentine
en fait, il faudrait que je puisse utiliser uniquement les fonctions @.

Re: exécuter un agent écrit en formule depuis du code LotusS

MessagePublié: 23 Juil 2003 à 12:04
par clémentine
voici ce que j'ai :dans l'agent :FIELD essai := "ok"; @Allj'ai choisi "jamais" dans quand exécuter l'agent et "les documents nouveaux et modifiés" dans quel document doit il traité.Dans PostSave de mon masque j'ai le code suivant :Sub Postsave(Source As Notesuidocument) Dim session As New notessession Dim db As notesdatabase Dim agent As notesagent Dim ws As NotesUIWorkspace Dim iudoc As NotesUIDocument Set ws = New NotesUIWorkspace Set iudoc = ws.CurrentDocument Set db = session.CurrentDatabase Set agent = db.getAgent("agentpostsave") Call agent.runOnServer() Call iudoc.Reload End Subet quand j'enregistre le document j'ai l'erreur suivante : "une autre copie de ce document a été enregistré pendant que vous l'éditez. Voulez-vous enregistré ces modifications sous forme d'un document en conflit?"Est ce que quelqu'un aurrait une explication svp?

Re: exécuter un agent écrit en formule depuis du code LotusS

MessagePublié: 23 Juil 2003 à 13:52
par Droad
1) Si tu choisi "Les documents nouveaux et modifiés", TOUS les documentsnouveaux et modifiés de la base seront traités (je n'ai pas l'impression que c'est le résultat que tu cherches)2) Normal: Lorsque tu lances l'agent avec run, celui-ci s'éxécute dans son propre contexte, exactement comme ci un utilisateur autre que toi l'avait lancémanuellement. Donc, ce qui se passe c'est:- tu ouvre le doc en édition- un autre utilisateur (l'agent) ouvre et enregistre le même doc- tu enregistres le doc -> Notes détecte qu'il à été modifié entre temps par un autre utilisateur et te propose de créer un conflit d'enregistrement (ta version du doc lié au doc d'origine par un lien parent-réponse). 3) Tu devrais effectuer toutes tes opérations en LS, ça serait plus cohérent.[%sig%]

Re: exécuter un agent écrit en formule depuis du code LotusS

MessagePublié: 23 Juil 2003 à 14:20
par clémentine
Merci de tes explications ca m'aide beaucoup.

Re: exécuter un agent écrit en formule depuis du code LotusS

MessagePublié: 31 Juil 2003 à 09:16
par clémentine
Bonjour à tous,encore quelques questions :Si je lance dans un code en formule, un agent écrit en formule, dans quel cas l'agent sera considéré comme un autre utilisateur?Est-ce si j'enregistre à la fois dans mon agent et dans le code en formule?Et si j'utilise @PostedCommand est-ce que je pourrais éviter les conflits d'enregistrement?De manière plus générale, et si j'ai bien compris, si deux utilisateurs (rééls) ouvrent le même document, font des modifications différentes sur ce document et l'enregistre, ca fera un conflit d'enregistrement. Comment gérer ça?Merci.