[RESOLU] Le code s'execute 2 fois (sans raison)

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

[RESOLU] Le code s'execute 2 fois (sans raison)

Messagepar cyberscooty » 03 Fév 2014 à 15:34

j'ai un bout de code dans le masque "Memo" dans le sub "postsend" qui permet de créer une copie (très) cachée vers un autre destinataire lors d'envoi de mail

ça marche bien mais je reçois 2 fois le mail...j'ai l'impression que le code s’exécute 2 fois de suite et envoi 2 mails (c'est le dernier bug a régler avant mise en production GGGRRRR)
J'ai testé plusieurs choses mais à chaque fois je reçois 2 mails (tests sur 2 bases mails différentes)
Est ce que ça relève du bug ou ai-je mal fait quelque chose?

Ci dessous le code:

Code : Tout sélectionner
Sub Postsend(Source As Notesuidocument)
   
   If Not source Is Nothing Then
      Dim DocMail As NotesDocument     
      Dim Session As New NotesSession
      Dim rtItem As NotesrichTextItem
      Dim destinataire As String   
      Dim destinataireinitial As String
      Dim destinataireinitialtronque As String
      
           '================================================================      
      'Changer la valeur ci dessous - ne pas changer le reste du code   
      destinataire = "toto@domaine.com"
           '================================================================      
      
      Set DocMail = Session.CurrentDatabase.CreateDocument
      Call DocMail.ReplaceItemValue("Form","memo")
      destinataireinitial = Source.FieldGetText("SendTo")
      destinataireinitialtronque = Left$(destinataireinitial, 100)
      Call DocMail.ReplaceItemValue("Sendto",destinataire)
      Call DocMail.ReplaceItemValue("Subject" ,"[Redirect envoyé à " + destinataireinitialtronque + "] " + Source.FieldGetText("Subject") )
      Set rtItem = Source.Document.GetFirstItem("Body")
      Call rtItem.AppendText(" ")
      rtItem.AppendText(Chr(13) + "======================================" + Chr(13) + "Mail envoyé à : " + destinataireinitial)
      Call DocMail.CopyItem(rtItem,"")
      Call DocMail.Send(False)
      
   End If   
End Sub
Dernière édition par cyberscooty le 03 Fév 2014 à 17:00, édité 1 fois.
cyberscooty
Posteur habitué
Posteur habitué
 
Message(s) : 236
Inscrit(e) le : 03 Mai 2007 à 08:49
Localisation : Alsace

Re: Le code s'execute 2 fois (sans raison)

Messagepar Jérôme Deniau » 03 Fév 2014 à 16:01

Si ton postSend envoie un mail tu repasses dans l'événement postsend.
Solution mets un flag au premier passage dans le document et fais un test dessus et réinitialise ce flag dans le postopen etc....
Avatar de l’utilisateur
Jérôme Deniau
Maître-posteur
Maître-posteur
 
Message(s) : 497
Inscrit(e) le : 08 Mars 2013 à 09:52
Localisation : Rennes (Bretagne à l'Ouest de la France)

Re: Le code s'execute 2 fois (sans raison)

Messagepar cyberscooty » 03 Fév 2014 à 16:47

uhm...effectivement j'avais pas pensé à ça, merci.

J'ai testé de créer une variable genre passe=0 puis qui passe à 1 dans le code mais celle ci semble se réinitialiser la 2eme fois (donc même problème)
Comment créer une variable (globale) qui ne se réinitialise pas ?
cyberscooty
Posteur habitué
Posteur habitué
 
Message(s) : 236
Inscrit(e) le : 03 Mai 2007 à 08:49
Localisation : Alsace

Re: Le code s'execute 2 fois (sans raison)

Messagepar Jérôme Deniau » 03 Fév 2014 à 16:54

Definir la variable dans globals dim vPostSend as integer (par exemple),
dans le postopen, mettre cette variable à 0 vPostSend=0
dans le postSend tester if vPostSend=0 then ..... 'pas envoyé on fait le boulot, et on metvPostSend=1

cela devrait le faire, sinon passer par un champ et le gérer dans le postSave pour le réinitialiser par exemple... tout dépend de ce que doit faire le PostSend, à quel moment et pourquoi....
Avatar de l’utilisateur
Jérôme Deniau
Maître-posteur
Maître-posteur
 
Message(s) : 497
Inscrit(e) le : 08 Mars 2013 à 09:52
Localisation : Rennes (Bretagne à l'Ouest de la France)

Re: Le code s'execute 2 fois (sans raison)

Messagepar cyberscooty » 03 Fév 2014 à 16:59

J'avais fait comme ça la 1ere fois mais ça ne marchait pas. En effet je n'avais pas déclaré dans globals (je débute un peu en script, désolé)
Bref, 2 minutes de recherche sur gooooogle, j'ai trouvé.
1. Click (Globals) on the Objects tab.
2. Select (Options), (Declarations), Initialize, or Terminate from the Objects tab.
3. Enter your LotusScript variable or subroutine in the Script area.
4. Refer to the subprogram or variable in any script in the application.


donc dans (Globals) j'ai créé une variable type booléen à False, dans le code je la passe à True avec le if qui va bien, etc........ça MARCHE!!!!

Merci, merci Jérôme!!!! :D :D :D
cyberscooty
Posteur habitué
Posteur habitué
 
Message(s) : 236
Inscrit(e) le : 03 Mai 2007 à 08:49
Localisation : Alsace

Re: [RESOLU] Le code s'execute 2 fois (sans raison)

Messagepar d.bugger » 03 Fév 2014 à 18:41

Hmmm... Moi, je modifierais jamais le modèle mail. Sauf s'il n'y a pas d'autre possibilité.

As-tu pensé à activer Mail Journaling?
Avatar de l’utilisateur
d.bugger
Modérateur
Modérateur
 
Message(s) : 849
Inscrit(e) le : 15 Juin 2006 à 09:19
Localisation : Drôme, France

Re: [RESOLU] Le code s'execute 2 fois (sans raison)

Messagepar Jérôme Deniau » 04 Fév 2014 à 09:32

Plutôt une règle de copie dans une base, car le mail journaling il faut l'accord de l'entreprise et définir qui peut voir quoi......
Avatar de l’utilisateur
Jérôme Deniau
Maître-posteur
Maître-posteur
 
Message(s) : 497
Inscrit(e) le : 08 Mars 2013 à 09:52
Localisation : Rennes (Bretagne à l'Ouest de la France)

Re: [RESOLU] Le code s'execute 2 fois (sans raison)

Messagepar d.bugger » 04 Fév 2014 à 09:47

Veux-tu dire que l'espionnage se fait sans accord de l'entreprise ?? :shock:
Avatar de l’utilisateur
d.bugger
Modérateur
Modérateur
 
Message(s) : 849
Inscrit(e) le : 15 Juin 2006 à 09:19
Localisation : Drôme, France

Re: [RESOLU] Le code s'execute 2 fois (sans raison)

Messagepar Jérôme Deniau » 04 Fév 2014 à 10:01

Moi je ne sais pas, faut demander au posteur... (cyberscooty).
Avatar de l’utilisateur
Jérôme Deniau
Maître-posteur
Maître-posteur
 
Message(s) : 497
Inscrit(e) le : 08 Mars 2013 à 09:52
Localisation : Rennes (Bretagne à l'Ouest de la France)

Re: [RESOLU] Le code s'execute 2 fois (sans raison)

Messagepar cyberscooty » 04 Fév 2014 à 11:46

je l'accorde c'est un peu litigieux mais c'est un VIP qui le demande alors bon!
Créer une règle me dérange un peu car l'utilisateur peut la voir dans sa base
Le mail journaling je ne connais pas vraiment....mais pour moi c'était pour capter TOUS les messages de TOUS les utilisateurs, ce qui est inutile...

Merci a tous pour vos posts :D
cyberscooty
Posteur habitué
Posteur habitué
 
Message(s) : 236
Inscrit(e) le : 03 Mai 2007 à 08:49
Localisation : Alsace

Re: [RESOLU] Le code s'execute 2 fois (sans raison)

Messagepar Michael DELIQUE » 04 Fév 2014 à 12:04

dans ce cas je te conseil vivement d'avoir une trace écrite et l'accord de ton responsable. sinon en cas de pb ça va te péter a la figure
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: [RESOLU] Le code s'execute 2 fois (sans raison)

Messagepar d.bugger » 04 Fév 2014 à 14:35

Du bon conseil ça !

Et quant au mail journaling : c'est invisible et paramétrable. Il faut
1/ créer la base,
2/ l'activer dans le serveur (doc Config, Routeur, Avancé) et
3/ régler le captage avec des règles (doc Config, Routeur, Restr & Contr, Règles).
Avatar de l’utilisateur
d.bugger
Modérateur
Modérateur
 
Message(s) : 849
Inscrit(e) le : 15 Juin 2006 à 09:19
Localisation : Drôme, France

Re: [RESOLU] Le code s'execute 2 fois (sans raison)

Messagepar roubech » 04 Fév 2014 à 19:46

l'archivage au niveau de la boite mail a vocation de sauvegarde / récupération de place
alors que la journalisation a plutot vocation de tracabilité en cas de litige (archivage legal)
Avatar de l’utilisateur
roubech
Modérateur
Modérateur
 
Message(s) : 4976
Inscrit(e) le : 01 Fév 2007 à 20:22
Localisation : Lille

Re: [RESOLU] Le code s'execute 2 fois (sans raison)

Messagepar d.bugger » 04 Fév 2014 à 23:10

:? Oui... vrai... mais pourquoi dis-tu ?
Avatar de l’utilisateur
d.bugger
Modérateur
Modérateur
 
Message(s) : 849
Inscrit(e) le : 15 Juin 2006 à 09:19
Localisation : Drôme, France


Retour vers Développement

cron