[ Resolu ] : Problème de boucle lors d'un mailing
Bonjour,
J'ai créé un agent qui envoie un mail à partir de documents stockés dans une vue. Chaque document peut avoir de 1 à n destinataires.
Voici le code :
Et voici mon problème :
Si par exemple j'ai 3 documents dans ma vue, l'agent est sensé envoyer au moins un mail par document.
Or, seul le premier document de la vue est traité.
Les mails sont envoyés tout à fait normalement.
Voici ma vue après l'envoi du premier message ( il en reste donc 2 sur 3 ) :
La vue est catégorisée et triée seulement sur la première colonne ( Enseigne )
Dès que la boucle passe au deuxième document, l'agent plante avec le message suivant :
Entry not found in index
Le problème se situe au niveau du Set doc = Vue.GetNextDocument(doc)
Je n'arrive pas à comprendre ce qui cloche ...
Est-ce quelqu'un peut m'aider ?
D'avance, merci !
J'ai créé un agent qui envoie un mail à partir de documents stockés dans une vue. Chaque document peut avoir de 1 à n destinataires.
Voici le code :
- Code : Tout sélectionner
Sub Initialize
'===========================================================================
' EnvoiQuestion
' Envoi des mails créés avec le masque Question
'===========================================================================
' =============================================================
' = Déclaration des variables
' =============================================================
Dim Session As NotesSession
Dim db As NotesDatabase
Dim Vue As NotesView
Dim entry As NotesViewEntry
Dim doc As NotesDocument
Dim docProc As NotesDocument
Dim counter As Integer
Dim DebAg As String
Dim Destinataires_Mail As Integer
Set Session = New NotesSession
Set db = Session.CurrentDatabase
DebAg="Ma Base - EnvoiQuestion : "
Print DebAg"Début Agent"
' =============================================================
' = Envoi des mails
' =============================================================
Set Vue = db.GetView("vwMail_Confirm") ' Vue des nouvelles questions à prendre en compte
Set doc = Vue.GetFirstDocument
'=============================================================
' = Vérification : Si la vue vwMail_Confirm est vide = PAS DE TRAITEMENT
' = Sinon on continue
' =============================================================
Dim vc As NotesViewEntryCollection
Set vc = Vue.GetAllEntriesByKey("Question")
Print DebAg"Nombre de questions à envoyer = " vc.Count
' La vue correspond aux mails a envoyer
If vc.Count = 0 Then
Print DebAg"Il n'y a aucun document dans la vue ... Pas d'envoi de mails"
Goto sortie
Else
While Not(doc Is Nothing)
Envoi_Mail=False
Dim Compteur As Integer
Dim ValeurFin As Integer
' Permet d'envoyer des mails quelque soit le nombre de destinataires remontés
ValeurFin = doc.NbreDest(0) - 1
Print DebAg" Valeur fin calculée ( pour la boucle de choix des destinataires ) = "ValeurFin
For Compteur = 0 To ValeurFin
Print DebAg" Envoi du mail n° "Compteur" pour le destinataire "doc.Destinataires(Compteur)
Set docMemo = New NotesDocument(db)
docMemo.Form = "Memo"
docMemo.Subject="Vous avez reçu la question '" & doc.Subject(0) & "'"
docMemo.SendTo = doc.Destinataires(Compteur)
Set rtitem = New NotesRichTextItem( docMemo, "Body" )
Call rtitem.AppendText( "Bonjour,")
Call rtitem.AddNewLine(2)
Call rtitem.AppendText( "Vous avez reçu la question '" & doc.Subject(0) & "'sur notre forum." )
Call rtitem.AddNewLine(1)
Call rtitem.AppendText( "Merci d'apporter une réponse au plus tot." )
Call rtitem.AddNewLine(2)
Call rtitem.AppendText( "Vous pouvez accéder au document en cliquant ici: " )
Call rtitem.AppendDocLink( doc, db.Title )
Call rtitem.AddNewLine(2)
Call rtitem.AppendText( "Ceci est une notification automatique." )
Call docMemo.Send( False )
Envoi_Mail=True
Next ' Fin de la boucle pour les envois de mails multi-destinataires
doc.FLAG="OUI"
doc.Save True, True
Set doc = Vue.GetNextDocument(doc)
Wend
End If
sortie:
Print DebAg"Fin Agent"
End Sub
Et voici mon problème :
Si par exemple j'ai 3 documents dans ma vue, l'agent est sensé envoyer au moins un mail par document.
Or, seul le premier document de la vue est traité.
Les mails sont envoyés tout à fait normalement.
Voici ma vue après l'envoi du premier message ( il en reste donc 2 sur 3 ) :
La vue est catégorisée et triée seulement sur la première colonne ( Enseigne )
Dès que la boucle passe au deuxième document, l'agent plante avec le message suivant :
Entry not found in index
Le problème se situe au niveau du Set doc = Vue.GetNextDocument(doc)
Je n'arrive pas à comprendre ce qui cloche ...
Est-ce quelqu'un peut m'aider ?
D'avance, merci !