Page 1 sur 1

lien document vers agenda

MessagePublié: 05 Oct 2012 à 14:04
par steph1708
Bonjour,
J'ai encore besoin de vos précieuses lumières.

J'ai une masque rv ou les users renseignent des informations tels que date du rv, la personne qu'ils vont voir, qui va à ce rdv....
Ensuite ils cliquent sur un bouton qui permet de créer ce rdv dans leur agenda notes, ce qui permet de renseigner dans l'agenda , la date la personne, la société...
je souhaiterai ajouter dans le champ body, le lien du document courant, mais n'étant pas super à l'aise avec lotusscript, je me permets donc vous demandez un petit coup de main.

Voici le code qui est derrière le bouton création RV Agenda

'Creation d'un rv dans l'agenda suite à un rv dans la base co
Sub Click(Source As Button)
Dim Session As New NotesSession
Dim ws As New NotesUIWorkspace
Set uiDoc = ws.CurrentDocument

Dim db As New NotesDatabase("","")
Dim curdoc As NotesDocument
Dim Icon As NotesItem

'Creation du document agenda dans la base mail
Set curdoc = ws.CurrentDocument.Document
db.openmail

'Récupération des données du masque rendez-vous vers le masque agenda

Dim dest(1 To 6 ) As String
'dest(1 ) = Session.UserName
dest(2 ) = curdoc.consrv2(0)
dest(3 ) = curdoc.consrv3(0)
dest(4 ) = curdoc.ccrv(0)
dest(5) = curdoc.participantrv(0)
dest(6) = curdoc.CTemail(0)

Dim Task As NotesDocument
'Dim MailDB As New NotesDatabase("","")
Dim startdt As NotesDateTime, enddt As NotesDateTime
Dim UIDocAgenda As NotesUIDocument

Set startdt = New NotesDatetime(curdoc.daterv(0) & " " & curdoc.heurerv(0))
Set enddt = New NotesDatetime(curdoc.daterv(0) & " " & curdoc.heurefin(0))

'Call MailDB.OpenMail
Set Task = db.CreateDocument

Task.Principal = Session.UserName
Task.Chair = Session.UserName
Task.Form = "Appointment"
Task.ApptUNID = curdoc.UniqueDocID

Set Task.StartDateTime = startdt
Set Task.StartDate = startdt
Set Task.StartTime = startdt
Set Task.EndDateTime = enddt
Set Task.EndDate = enddt
Set Task.EndTime = enddt
Set Task.CalendarDateTime = startdt

Task.AppointmentType = "3"
Call Task.ReplaceItemValue("_ViewIcon", 158)

Task.Subject = curdoc.libellerv(0) & " - " & curdoc.NomSteHerite(0) & " - " & curdoc.CTrv (0)
Call Task.ReplaceItemValue("$PublicAccess", "1")
'Call Task.Send(False, dest)
Task.EnterSendTo = dest
Call Task.ComputeWithForm(True, False)
'Affichage de l'entrée d'agenda
Set UIDocAgenda = ws.EditDocument(True,Task)

Call Task.remove(True)
Call UIDocAgenda.save
id_agenda = UIDocAgenda.document.UniversalID
Call UIDocAgenda.close

'Call Task.save(False, False)

curdoc.IDDocAgenda = id_agenda


Call UIDoc.save
Call UIDoc.close

Messagebox "Le RDV a été crée", 64,"RDV Agenda"
End Sub


Je vous remercie par avance de votre aide

Re: lien document vers agenda

MessagePublié: 05 Oct 2012 à 14:14
par Michael DELIQUE
salut

mon client est bloqué pour l'instant, mais regarde dans l'aide en ligne a NotesRichtextItem.appenddoclink

Re: lien document vers agenda

MessagePublié: 05 Oct 2012 à 14:54
par steph1708
Merci de ta réponse rapide. Je vais regarder ça de suite.
En espérant que je m'en sorte toute seule, sinon je reviendrai vous voir.

encore merci

Re: lien document vers agenda

MessagePublié: 05 Oct 2012 à 16:09
par steph1708
bon, j'ai rajouté 2/3 choses à mon script, mais visiblement, j'ai pas du bien comprendre comment ça fonctionnait car je n'ai toujours pas de lien doc dans body (agenda). Qqu peut il m'aider ? Merci d'avance pour votre aide

Creation d'un rv dans l'agenda suite à un rv dans la base co
Sub Click(Source As Button)
Dim Session As New NotesSession
Dim ws As New NotesUIWorkspace
Set uiDoc = ws.CurrentDocument

Dim db As New NotesDatabase("","")
Dim curdoc As NotesDocument
Dim Icon As NotesItem
Dim rtitem As NotesRichTextItem

'Creation du document agenda dans la base mail
Set curdoc = ws.CurrentDocument.Document
db.openmail

'Récupération des données du masque rendez-vous vers le masque agenda

Dim dest(1 To 6 ) As String
'dest(1 ) = Session.UserName
dest(2 ) = curdoc.consrv2(0)
dest(3 ) = curdoc.consrv3(0)
dest(4 ) = curdoc.ccrv(0)
dest(5) = curdoc.participantrv(0)
dest(6) = curdoc.CTemail(0)

Dim Task As NotesDocument
'Dim MailDB As New NotesDatabase("","")
Dim startdt As NotesDateTime, enddt As NotesDateTime
Dim UIDocAgenda As NotesUIDocument

Set startdt = New NotesDatetime(curdoc.daterv(0) & " " & curdoc.heurerv(0))
Set enddt = New NotesDatetime(curdoc.daterv(0) & " " & curdoc.heurefin(0))


'Call MailDB.OpenMail
Set Task = db.CreateDocument

Task.Principal = Session.UserName
Task.Chair = Session.UserName
Task.Form = "Appointment"
Task.ApptUNID = curdoc.UniqueDocID

Set Task.StartDateTime = startdt
Set Task.StartDate = startdt
Set Task.StartTime = startdt
Set Task.EndDateTime = enddt
Set Task.EndDate = enddt
Set Task.EndTime = enddt
Set Task.CalendarDateTime = startdt
Set rtitem = New NotesRichTextItem (curdoc, "Body")

Task.AppointmentType = "3"
Call Task.ReplaceItemValue("_ViewIcon", 158)

Task.Subject = curdoc.libellerv(0) & " - " & curdoc.NomSteHerite(0) & " - " & curdoc.CTrv (0)
Call Task.ReplaceItemValue("$PublicAccess", "1")
'Call Task.Send(False, dest)
Task.EnterSendTo = dest
Call rtitem.AppendDocLink (curdoc, db.Title)
Call Task.ComputeWithForm(True, False)

'Affichage de l'entrée d'agenda
Set UIDocAgenda = ws.EditDocument(True,Task)
Call Task.remove(True)
Call UIDocAgenda.save
id_agenda = UIDocAgenda.document.UniversalID
Call UIDocAgenda.close

'Call Task.save(False, False)

curdoc.IDDocAgenda = id_agenda


Call UIDoc.save
Call UIDoc.close

Messagebox "Le RDV a été crée", 64,"RDV Agenda"
End Sub

Re: lien document vers agenda

MessagePublié: 05 Oct 2012 à 23:24
par roubech
Si c'est dans l'agenda que tu veut ajouter le lien doc , c'est task qu'il faut passer quand tu créé le rtitem.
Et il faut que curdoc ai été enregistré au moins une fois avant le appenddoclink

Re: lien document vers agenda

MessagePublié: 09 Oct 2012 à 10:05
par steph1708
Bonjour, c'est encore moi, bon visiblement j'ai du raté qqchose. J'arrive à écrire dans le champ Body, mais toujours pas de liendoc. Quelqu'un peut m'aider svp ?
Merci d'avance pour votre aide.

'Creation d'un rv dans l'agenda suite à un rv dans la base co
Sub Click(Source As Button)
Dim Session As New NotesSession
Dim ws As New NotesUIWorkspace
Set uiDoc = ws.CurrentDocument

Dim db As New NotesDatabase("","")
Dim curdoc As NotesDocument
Dim Icon As NotesItem

'Creation du document agenda dans la base mail
Set curdoc = ws.CurrentDocument.Document
db.openmail

'Récupération des données du masque rendez-vous vers le masque agenda

Dim dest(1 To 6 ) As String
'dest(1 ) = Session.UserName
dest(2 ) = curdoc.consrv2(0)
dest(3 ) = curdoc.consrv3(0)
dest(4 ) = curdoc.ccrv(0)
dest(5) = curdoc.participantrv(0)
dest(6) = curdoc.CTemail(0)

Dim Task As NotesDocument
'Dim MailDB As New NotesDatabase("","")
Dim startdt As NotesDateTime, enddt As NotesDateTime
Dim UIDocAgenda As NotesUIDocument
Dim Body As NotesRichTextItem

Set startdt = New NotesDatetime(curdoc.daterv(0) & " " & curdoc.heurerv(0))
Set enddt = New NotesDatetime(curdoc.daterv(0) & " " & curdoc.heurefin(0))
Set Body = New NotesRichTextItem (curdoc, "Body")

'Call MailDB.OpenMail
Set Task = db.CreateDocument

Task.Principal = Session.UserName
Task.Chair = Session.UserName
Task.Form = "Appointment"
Task.ApptUNID = curdoc.UniqueDocID

Set Task.StartDateTime = startdt
Set Task.StartDate = startdt
Set Task.StartTime = startdt
Set Task.EndDateTime = enddt
Set Task.EndDate = enddt
Set Task.EndTime = enddt
Set Task.CalendarDateTime = startdt

Task.AppointmentType = "3"
Call Task.ReplaceItemValue("_ViewIcon", 158)
Call curdoc.Save (True, True)
Task.Subject = curdoc.libellerv(0) & " - " & curdoc.NomSteHerite(0) & " - " & curdoc.CTrv (0)
Task.Body = curdoc.libellerv(0)
Call Task.ReplaceItemValue("$PublicAccess", "1")
Call Body.AppendDocLink (curdoc, "")
'Call Task.Send(False, dest)
Task.EnterSendTo = dest

Call Task.ComputeWithForm(True, False)

'Affichage de l'entrée d'agenda
Set UIDocAgenda = ws.EditDocument(True,Task)
Call Task.remove(True)
Call UIDocAgenda.save
id_agenda = UIDocAgenda.document.UniversalID

Call UIDocAgenda.close
'Call Task.save(False, False)
curdoc.IDDocAgenda = id_agenda

Call UIDoc.save
Call UIDoc.close

Messagebox "Le RDV a été crée", 64,"RDV Agenda"
End Sub

Re: lien document vers agenda

MessagePublié: 09 Oct 2012 à 10:23
par Michael DELIQUE
salut

si je regarde ton code

Set Body = New NotesRichTextItem (curdoc, "Body")

Call Body.AppendDocLink (curdoc, "")

tu essais de mettre dans ton doc un lien sur lui-meme... a mon avis tu n'utilise pas le bonne objet

ah et il est préférable de rajouter un commentaire genre le titre du doc ou le nom de la database ou se trouve le doc (ça marche mieux)

Re: lien document vers agenda

MessagePublié: 09 Oct 2012 à 13:58
par steph1708
Re
effectivement je prenais le même objet ça ne risque pas de fonctionner
en revanche même avec autre chose ça ne fonctionne toujours pas, je n'ai toujours pas de lien doc
tant pis, je laisse tomber, mais je tenais à vous remercier pour votre aide
A+

Re: lien document vers agenda

MessagePublié: 10 Oct 2012 à 02:03
par roubech
est-ce que tu as vu ma précédente réponse : est-ce que ton doc Task a été sauvé au moins une fois avant de le passer en argument de appendDoclink ?

Re: lien document vers agenda

MessagePublié: 11 Oct 2012 à 14:43
par steph1708
oui, mais du coup j'ai une autre erreur qui est "variable d'objet non défini"

Re: lien document vers agenda

MessagePublié: 11 Oct 2012 à 14:51
par Michael DELIQUE
a quelle ligne ?

Re: lien document vers agenda

MessagePublié: 11 Oct 2012 à 15:13
par steph1708
au moment du save du doc Task

Re: lien document vers agenda

MessagePublié: 11 Oct 2012 à 15:14
par Michael DELIQUE
la réponse est dans l'erreur, passe ton code en mode debug pas à pas et reagrde ce qui se passe