Page 1 sur 2

Lien vers une vue dans un mail

MessagePublié: 22 Sep 2010 à 15:27
par clementbp
Bonjour,

J'aurais besoin de créer un agent planifié qui tous les soirs envoie un mail qui contienne un lien qui lorsqu'on clique dessus, ouvre la vue "Relance".
Je n'ai pas d'idée de la manière dont je pourrais faire.

Pourriez vous m'aider.

Merci

MessagePublié: 22 Sep 2010 à 15:31
par Michael DELIQUE
salut

vue web ou vue sur le client lourd ?

MessagePublié: 22 Sep 2010 à 15:35
par clementbp
C'est une vue sur client lourd !!
Aucune utilisation Web

MessagePublié: 22 Sep 2010 à 15:40
par Michael DELIQUE
re,

dans ton agent (LS) tu créé un richtext (Body) et tu insers dedans via Call notesRichTextItem.AppendDocLink( linkTo, comment$ [, HotSpotText$ ] )
ta vue, linkto étant un objet Notesview, au click ça ouvrira la base et la vue

MessagePublié: 22 Sep 2010 à 15:41
par nemrod93
Bonjour,

regarde du côté de la classe notesrichtextitem

Syntax
Call notesRichTextItem.AppendDocLink( linkTo, comment$ [, HotSpotText$ ] )

Parameters
linkTo

NotesDatabase, NotesView, or NotesDocument. The database, view, or document to which you want to link.

MessagePublié: 22 Sep 2010 à 15:42
par nemrod93
@mickaël

t'as été plus rapide que moi :D :D :D

MessagePublié: 22 Sep 2010 à 16:45
par clementbp
J'ai créé un agent par contre j'ai deux problèmes :
- le premiere et que le lien vers la vue n'apparait pas dans le mail
- le deuxieme est que quand j'execute l'agent , il ne marche pas tant que je le fais pas avec le débogage de lotus.

Voici mon code, si vous avez une idée :

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


'///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 = "DBB : Relances"

Set rtitem = New NotesRichTextItem( maildoc, "Body" )
Call rtitem.AddNewLine (2)
Call rtitem.AppendText ("Bonjour,")
Call rtitem.AddNewLine (2)
Call rtitem.AppendText ("Merci de bien vouloir cliquer sur le lien pour afficher la vue des workflows à relancer")
Call rtitem.AddNewLine (2)

maildoc.SendTo = "clement.PEQUIGNET@jurafiltration.fr"

Call oWks.Editdocument (True, maildoc)

Dim LinkTo As NotesView
Call rtitem.AppendDocLink( linkTo, "CBP-vDBBTousVuePourRelance" )



End Sub

MessagePublié: 22 Sep 2010 à 19:46
par Michael DELIQUE
re,

il ne faut pas passer le nom de la vue mais l'objet NotesView

MessagePublié: 23 Sep 2010 à 01:22
par roubech
si tu veux planifier ton agent, il faut virer tout ce qui est UI
Dim oWks As NotesUIWorkspace
Set oWks = New NotesUIWorkspace()
Set uidoc = oWks.CurrentDocument
Call oWks.Editdocument (True, maildoc)

uidoc, tu t'en sert pas et pour l'agent planifié j'imagine que tu va envoyer le mail directemet plutot que de l'afficher à l'écran

MessagePublié: 23 Sep 2010 à 09:23
par clementbp
Bonjour,


j'ai esayé d'apporter les modifications décrites plus haut.
Mais bon il y a toujours un problème.

Voici le code:

Sub Initialize
'////Déclaration des variables
Dim db As NotesDatabase
Dim rtitem As Variant
Dim LinkTo As NotesView


'///Préparation du mail pour le commercial
Dim maildb As New NotesDatabase( "", "" )
Call maildb.OpenMail
Set maildoc = New NotesDocument( maildb )
maildoc.Subject = "DBB : Relances"

Set rtitem = New NotesRichTextItem( maildoc, "Body" )
Call rtitem.AddNewLine (2)
Call rtitem.AppendText ("Bonjour,")
Call rtitem.AddNewLine (2)
Call rtitem.AppendText ("Merci de bien vouloir cliquer sur le lien pour afficher la vue des workflows à relancer")
Call rtitem.AddNewLine (2)

Dim view As NotesView
Set view = db.GetView( "CBP-vDBBTousVuePourRelance" )
Call rtitem.AppendDocLink( linkTo, view )

maildoc.SendTo = "toto@tata.com"


End Sub

MessagePublié: 23 Sep 2010 à 09:27
par Michael DELIQUE
re

quelle est le pb ?

MessagePublié: 23 Sep 2010 à 09:41
par nemrod93
Bonjour,
déjà je remplacerais le

maildoc.SendTo = "toto@tata.com"

par

maildoc.Send = "toto@tata.com"

MessagePublié: 23 Sep 2010 à 09:45
par Michael DELIQUE
re Nemrod

sendto pour renseigné le destinataire

mais pour l'envois c'est send. j'aime pas mélanger les deux.

et puis la comme on c'est pas qu'elle est le pb...

MessagePublié: 23 Sep 2010 à 09:52
par nemrod93
re

:boul02:

j'vais boire un kfé, là c'est impératif

MessagePublié: 23 Sep 2010 à 10:56
par clementbp
Bon alors j'ai fais plusieurs test et j'ai essayé de modifier mon code pour qu'il soit le plus simple possible.

Mon premier problème et que je n'arrive pas a mettre une zone de texte riche dans le corps du texte. Pourriez vous me dire la syntaxe qu'il faut utilisé.

Je suppose aussi que la ligne qui correspond au lien vers la vue ne sera pas correct mais pour le moment je ne peut pas faire de test.

Merci de votre aide.

Voici mon code :

Sub Initialize


Dim session As New NotesSession
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim rtitem As NotesRichTextItem

Set db = session.CurrentDatabase
Set doc = New NotesDocument( db )
doc.Form = "Memo"
doc.SendTo = "clement.PEQUIGNET@jurafiltration.fr"
doc.Subject = "DBB : Relances"

Set rtitem = New NotesRichTextItem (doc, "CorpsDuMail")
Call rtitem.AddNewLine (2)
Call rtitem.AppendText ("Bonjour,")
Call rtitem.AddNewLine (2)
Call rtitem.AppendText ("Merci de bien vouloir cliquer sur le lien pour afficher la vue des workflows à relancer")
Call rtitem.AddNewLine (2)
Call rtitem.AppendDocLink( linkTo, "CBP-vDBBTousVuePourRelance" )


Doc.Body = CorpsDuMail
Call doc.Send( False )

End Sub