Générer mail automatique en LS

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

Générer mail automatique en LS

Messagepar lebanner » 13 Août 2010 à 07:19

Bonjour,

Je suis en train de créer un agent qui me permet de générer un mail automatique avec des données.

Le seul problème :
Quand je lance l'agent, un mail est générer automatiquement mais aucune données ne se trouve dans ce mail.

SI je lance l'agent en débug, le mail est généré et les données sont correctement insérées dans le corps du message.

Est ce quelqu'un aurait-il une idée car je ne comprend pas ?

Merci d'avance

Cordialement.

Voici le code de mon agent :
Code : Tout sélectionner
Sub Initialize
   '////Déclaration des variables
   Dim oSession As notesSession
   Dim oWks As notesUIWorkspace
   Dim db As NotesDatabase
   Dim doc As NotesDocument
   Dim rtitem As Variant
   Dim tableau () As String
   
   '///Initialisation
   Set oSession = New notesSession()
   Set oWks = New notesUIWorkspace()
   Set db = oSession.CurrentDatabase
   Set uidoc = oWks.CurrentDocument
   Set doc = uidoc.Document
   
   recupAdresse = doc.AdresseClient_rc(0)
   recupCP = doc.CPClient_rc(0)
   recupVille = doc.VilleClient_rc(0)
   recupTel = doc.TelClient_rc(0)
   recupAC1 = doc.ContactAC1_rc(0)
   recupAC2 = doc.ContactAC2_rc(0)
   recupAC3 = doc.ContactAC3_rc(0)
   recupAC4 = doc.ContactAC4_rc(0)
   recupAC5 = doc.ContactAC5_rc(0)
   recupAC6 = doc.ContactAC6_rc(0)
   recupAC7 = doc.ContactAC7_rc(0)
   recupAC8 = doc.ContactAC8_rc(0)
   recupAC9 = doc.ContactAC9_rc(0)
   recupAC10 = doc.ContactAC10_rc(0)
   recupComAC1 = doc.ComContactAC1_rc(0)
   recupComAC2 = doc.ComContactAC2_rc(0)
   recupComAC3 = doc.ComContactAC3_rc(0)
   recupComAC4 = doc.ComContactAC4_rc(0)
   recupComAC5 = doc.ComContactAC5_rc(0)
   recupComAC6 = doc.ComContactAC6_rc(0)
   recupComAC7 = doc.ComContactAC7_rc(0)
   recupComAC8 = doc.ComContactAC8_rc(0)
   recupComAC9 = doc.ComContactAC9_rc(0)
   recupComAC10 = doc.ComContactAC10_rc(0)
   
      '///Préparation du mail pour le commercial
   Dim maildb As New NotesDatabase( "", "" )   
   Call maildb.OpenMail
   Set maildoc   = New NotesDocument( maildb )            
   maildoc.Form = "Memo"
   maildoc.Subject = "Réclamation Client : " & doc.DesiClient_rc(0)
   
   Set rtitem = New NotesRichTextItem( maildoc, "Body" )
   Call rtitem.AddNewLine( 1 )
   Call rtitem.AppendText _
   ("Bonjour,")
   Call rtitem.AddNewLine( 2 )
   Call rtitem.AppendText _
   ("Réclamation du client : " & doc.DesiClient_rc(0))
   Call rtitem.AddNewLine( 1 )
   Call rtitem.AppendText _
   ("Adresse : " & recupAdresse & " " & recupCP & " " & recupVille & "")
   If recupTel <> "" Then
      Call rtitem.AddNewLine( 1 )
      Call rtitem.AppendText _
      ("Téléphone : " & recupTel & ".")
   End If
   Call rtitem.AddNewLine( 2 )
   Call rtitem.AppendText _
   ("Problème(s) constaté(s) : ")
   If recupAC1 <> "" Then
      Call rtitem.AddNewLine( 1 )
      Call rtitem.AppendText _
      (recupAC1 & " ==> Commentaire : " & recupComAC1 & ".")
   End If
   If recupAC2 <> "" Then
      Call rtitem.AddNewLine( 1 )
      Call rtitem.AppendText _
      (recupAC2 & " ==> Commentaire : " & recupComAC2 & ".")
   End If   
   If recupAC3 <> "" Then
      Call rtitem.AddNewLine( 1 )
      Call rtitem.AppendText _
      (recupAC3 & " ==> Commentaire : " & recupComAC3 & ".")
   End If   
   If recupAC4 <> "" Then
      Call rtitem.AddNewLine( 1 )
      Call rtitem.AppendText _
      (recupAC4 & " ==> Commentaire : " & recupComAC4 & ".")
   End If   
   If recupAC5 <> "" Then
      Call rtitem.AddNewLine( 1 )
      Call rtitem.AppendText _
      (recupAC5 & " ==> Commentaire : " & recupComAC5 & ".")
   End If   
   If recupAC6 <> "" Then
      Call rtitem.AddNewLine( 1 )
      Call rtitem.AppendText _
      (recupAC6 & " ==> Commentaire : " & recupComAC6 & ".")
   End If
   If recupAC7 <> "" Then
      Call rtitem.AddNewLine( 1 )
      Call rtitem.AppendText _
      (recupAC7 & " ==> Commentaire : " & recupComAC7 & ".")
   End If   
   If recupAC8 <> "" Then
      Call rtitem.AddNewLine( 1 )
      Call rtitem.AppendText _
      (recupAC8 & " ==> Commentaire : " & recupComAC8 & ".")
   End If   
   If recupAC9 <> "" Then
      Call rtitem.AddNewLine( 1 )
      Call rtitem.AppendText _
      (recupAC9 & " ==> Commentaire : " & recupComAC9 & ".")
   End If   
   If recupAC10 <> "" Then
      Call rtitem.AddNewLine( 1 )
      Call rtitem.AppendText _
      (recupAC10 & " ==> Commentaire : " & recupComAC10 & ".")
   End If   
   Call rtitem.AddNewLine( 2 )
   Call rtitem.AppendText _
   ("Une fois le problème résolu avec le client, merci de faire ........")
   
   maildoc.SendTo = doc.RecupMailCommercial_rc(0)
   
   Call oWks.Editdocument (True, maildoc)
   
End Sub
Dernière édition par lebanner le 29 Sep 2010 à 08:21, édité 1 fois.
lebanner
Roi des posts
Roi des posts
 
Message(s) : 683
Inscrit(e) le : 19 Juin 2008 à 09:43
Localisation : Lille

Messagepar roubech » 13 Août 2010 à 07:45

pour le RichText, faut pas l'enregistrer une fois pour que ça passe ?
Avatar de l’utilisateur
roubech
Modérateur
Modérateur
 
Message(s) : 4976
Inscrit(e) le : 01 Fév 2007 à 20:22
Localisation : Lille

Messagepar lebanner » 13 Août 2010 à 07:49

Je ne sais pas j'ai toujours fais comme ça.

Qu'est ce que tu ferais ?
Ou tu mettrai le save du rtitem ?

Je suis en congés ce soir et il ne me reste plus que cela à faire pour la nouvelle base tourne nickel

Merci

Cordialement
lebanner
Roi des posts
Roi des posts
 
Message(s) : 683
Inscrit(e) le : 19 Juin 2008 à 09:43
Localisation : Lille

Messagepar stloje » 13 Août 2010 à 07:53

Ton courriel, tu veux qu'il soit créé automatiquement dans une base de courriers ou qu'il soit distribué?
Et vive le cambouis! Si t'en as jusque sous les bras, c'est parce que tu as cherché longuement la solution ou tout simplement parce que tu t'es vautré!
Avatar de l’utilisateur
stloje
Posteur expérimenté
Posteur expérimenté
 
Message(s) : 335
Inscrit(e) le : 09 Sep 2008 à 13:18
Localisation : Orléans

Messagepar lebanner » 13 Août 2010 à 08:03

stloje a écrit:Ton courriel, tu veux qu'il soit créé automatiquement dans une base de courriers ou qu'il soit distribué?


Je ne comprend pas ce que tu veux dire ?

Moi l'objectif c'est qu'un mail auto s'ouvre avec toutes les données renseignées et que l'utilisateur n'a plus qu'à cliquer sur le bouton "envoyer" pour que le message parte.
lebanner
Roi des posts
Roi des posts
 
Message(s) : 683
Inscrit(e) le : 19 Juin 2008 à 09:43
Localisation : Lille

Messagepar stloje » 13 Août 2010 à 09:16

Tu as essayé avec la méthode "Refresh"

Code : Tout sélectionner
dim uiDoc as NotesUIDocument
set uiDoc = oWks.Editdocument (True, maildoc)
call uiDoc.Refresh (True)
Et vive le cambouis! Si t'en as jusque sous les bras, c'est parce que tu as cherché longuement la solution ou tout simplement parce que tu t'es vautré!
Avatar de l’utilisateur
stloje
Posteur expérimenté
Posteur expérimenté
 
Message(s) : 335
Inscrit(e) le : 09 Sep 2008 à 13:18
Localisation : Orléans

Messagepar lebanner » 13 Août 2010 à 09:30

stloje a écrit:Tu as essayé avec la méthode "Refresh"

Code : Tout sélectionner
dim uiDoc as NotesUIDocument
set uiDoc = oWks.Editdocument (True, maildoc)
call uiDoc.Refresh (True)


Je viens de tester et il me dit que je ne peux pas insérer du texte dans ce type de champ. Le curseur est placé sur le champ SendTo

Je ne comprend pas, d'habitude cela fonctionne parfaitement bien.

J'ai recréé l'agent deux fois mais rien n'y fais. J'ai fais des copier-coller avec des agents existant qui fonctionnent et rien.

Merci
lebanner
Roi des posts
Roi des posts
 
Message(s) : 683
Inscrit(e) le : 19 Juin 2008 à 09:43
Localisation : Lille

Messagepar stloje » 13 Août 2010 à 09:53

Ah, oui! Je pense savoir d'où vient l'erreur : tu créés un document de type "Memo" à partir d'une base de courrier, donc, lorsque tu l'ouvre en édition, il ne faut pas oublier que tous les événements d'ouverture s'activent et je pense que le masque courrier Notes fait un "clean up" avant de l'ouvrir.

Lorsque tu passes en Debug, tu as remarqué si tu déclanche les événements liés au masque?
Et vive le cambouis! Si t'en as jusque sous les bras, c'est parce que tu as cherché longuement la solution ou tout simplement parce que tu t'es vautré!
Avatar de l’utilisateur
stloje
Posteur expérimenté
Posteur expérimenté
 
Message(s) : 335
Inscrit(e) le : 09 Sep 2008 à 13:18
Localisation : Orléans

Messagepar lebanner » 13 Août 2010 à 10:50

stloje a écrit:Ah, oui! Je pense savoir d'où vient l'erreur : tu créés un document de type "Memo" à partir d'une base de courrier, donc, lorsque tu l'ouvre en édition, il ne faut pas oublier que tous les événements d'ouverture s'activent et je pense que le masque courrier Notes fait un "clean up" avant de l'ouvrir.

Lorsque tu passes en Debug, tu as remarqué si tu déclanche les événements liés au masque?


Je viens de vérifier en debug et il n'y a pas d'événement qui se déclenche.
lebanner
Roi des posts
Roi des posts
 
Message(s) : 683
Inscrit(e) le : 19 Juin 2008 à 09:43
Localisation : Lille

Messagepar lebanner » 13 Août 2010 à 10:55

Je rempli 3 champ :
SendTo ==> fonctionne
Subject ==> fonctionne
Body ==> ne fonctionne pas

Du coup, le problème provient du rtitem

Si quelqu'un à une idée, je suis preneur

Merci
lebanner
Roi des posts
Roi des posts
 
Message(s) : 683
Inscrit(e) le : 19 Juin 2008 à 09:43
Localisation : Lille

Messagepar LSong » 13 Août 2010 à 14:27

au lieux de

Set rtitem = New NotesRichTextItem( maildoc, "Body" )

peux-tu esseyer

Set rtitem = maildoc.createRichTextItem("Body" )
LSong
Posteur expérimenté
Posteur expérimenté
 
Message(s) : 353
Inscrit(e) le : 07 Nov 2007 à 14:27
Localisation : Ile de france

Messagepar lebanner » 20 Sep 2010 à 17:12

LSong a écrit:au lieux de

Set rtitem = New NotesRichTextItem( maildoc, "Body" )

peux-tu esseyer

Set rtitem = maildoc.createRichTextItem("Body" )


J'ai exactement le même problème. Si je lance en direct j'ai rien par contre dès que je lance l'agent en debug il m'affiche toutes les données.

Je ne comprend rien.

Je reviens de faire un text, je viens de copier un agent qui fait exactement le même, j'ai remplacé les variables et ça ne marche pas.

C'est bizarre !!!
lebanner
Roi des posts
Roi des posts
 
Message(s) : 683
Inscrit(e) le : 19 Juin 2008 à 09:43
Localisation : Lille

Messagepar Gillou13 » 21 Sep 2010 à 15:51

Et si tu essayai de déclacer ta variable ainsi au lei de variant?

dim rtitem As NotesRichTextItem


Je ne croi pas que ca va changer grand chose mais je ne vois rien d'autre à faire pour le moment.
Gillou13
Posteur expérimenté
Posteur expérimenté
 
Message(s) : 368
Inscrit(e) le : 15 Avr 2005 à 09:49
Localisation : lyon

Messagepar lebanner » 21 Sep 2010 à 17:39

Gillou13 a écrit:Et si tu essayai de déclacer ta variable ainsi au lei de variant?

dim rtitem As NotesRichTextItem


Je ne croi pas que ca va changer grand chose mais je ne vois rien d'autre à faire pour le moment.


Oui, j'ai également testé avec ce type de déclaration mais cela ne change rien.

Si vous avez d'autres idées, je suis preneur !!
Merci
Cordialement
lebanner
Roi des posts
Roi des posts
 
Message(s) : 683
Inscrit(e) le : 19 Juin 2008 à 09:43
Localisation : Lille

Messagepar lebanner » 29 Sep 2010 à 07:02

Bonjour a tous,

J'ai toujours le même problème, je n'arrive pas à le résoudre.

Est ce que vous avez d'autres idées ? une autre façon simple de le faire ?

Merci d'avance

Cordialement
lebanner
Roi des posts
Roi des posts
 
Message(s) : 683
Inscrit(e) le : 19 Juin 2008 à 09:43
Localisation : Lille

Suivant

Retour vers Développement