Page 1 sur 2

Générer mail automatique en LS

MessagePublié: 13 Août 2010 à 07:19
par lebanner
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

MessagePublié: 13 Août 2010 à 07:45
par roubech
pour le RichText, faut pas l'enregistrer une fois pour que ça passe ?

MessagePublié: 13 Août 2010 à 07:49
par lebanner
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

MessagePublié: 13 Août 2010 à 07:53
par stloje
Ton courriel, tu veux qu'il soit créé automatiquement dans une base de courriers ou qu'il soit distribué?

MessagePublié: 13 Août 2010 à 08:03
par lebanner
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.

MessagePublié: 13 Août 2010 à 09:16
par stloje
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)

MessagePublié: 13 Août 2010 à 09:30
par lebanner
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

MessagePublié: 13 Août 2010 à 09:53
par stloje
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?

MessagePublié: 13 Août 2010 à 10:50
par lebanner
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.

MessagePublié: 13 Août 2010 à 10:55
par lebanner
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

MessagePublié: 13 Août 2010 à 14:27
par LSong
au lieux de

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

peux-tu esseyer

Set rtitem = maildoc.createRichTextItem("Body" )

MessagePublié: 20 Sep 2010 à 17:12
par lebanner
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 !!!

MessagePublié: 21 Sep 2010 à 15:51
par Gillou13
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.

MessagePublié: 21 Sep 2010 à 17:39
par lebanner
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

MessagePublié: 29 Sep 2010 à 07:02
par lebanner
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