Ca y'est, j'ai résolu mon problème... à force de patience
J'ai repris un à un les champs remplis dans les documents "Appointment" et "Notice".
J'ai remplis ceux-ci mais en laissant le champ SendTo de l'Appointment vide.
Voici donc mon code :
- Code : Tout sélectionner
Sub Click(Source As Button)
On Error Goto ErrorRoutine
Dim s As New NotesSession
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim mdoc As NotesUIDocument
Dim db As New NotesDatabase("","")
Dim doc As NotesDocument, cdoc As NotesDocument, notice As NotesDocument
Dim NTRange As NotesDateRange
Set NTRange = s.CreateDateRange()
Dim User As String, Subject As String
Set uidoc = ws.CurrentDocument
If uidoc.isnewdoc Then Call uidoc.save
Set doc = uidoc.Document
If doc.MeetDate(0) = "" Then
Messagebox "You must fill in a meeting date before you mail it.", 64, "Incomplete Information"
Call uidoc.gotofield("MeetDate")
Exit Sub
End If
If doc.MeetTime(0) = "" Then
Messagebox "You must fill in a meeting time before you mail it.", 64, "Incomplete Information"
Call uidoc.gotofield("MeetTime")
Exit Sub
End If
If doc.SendTo(0) = "" Then
Messagebox "You must fill in the Invitees for this meeting before you mail it.", 64, "Incomplete Information"
Call uidoc.gotofield("SendTo")
Exit Sub
End If
If doc.mailed(0) = "1" Then
what = Messagebox("This document has already been mailed to the invitees. Do you want to mail it again?", 36, "Unexpected Condition")
If what = 7 Then Exit Sub
End If
Call uidoc.fieldsettext("mailed", "1")
Call uidoc.save
User = s.UserName
Subject = doc.MeetingYear(0) & "-" & doc.MeetingMonth(0) & "-" & doc.MeetingType(0)
Call db.OpenMail
Set cdoc = db.CreateDocument
Call cdoc.ReplaceItemValue("Form","Appointment")
Call cdoc.ReplaceItemValue("AppointmentType", "3")
Call cdoc.ReplaceItemValue("_ViewIcon", 158)
Call cdoc.ReplaceItemValue("CHAIR", User)
Call cdoc.ReplaceItemValue("PRINCIPAL", User)
Call cdoc.ReplaceItemValue("From", User)
Call cdoc.ReplaceItemValue("tmpChairPerson", User)
Call cdoc.ReplaceItemValue("TMPOWNER", User)
Call cdoc.ReplaceItemValue("tmpSentBy", User)
Call cdoc.ReplaceItemValue("$PrevBusyName", User)
Call cdoc.ReplaceItemValue("$BusyName", User)
Call cdoc.ReplaceItemValue("$UpdatedBy", User)
Call cdoc.ReplaceItemValue("DocAuthors", User)
Call cdoc.ReplaceItemValue("Subject", Subject)
Call cdoc.ReplaceItemValue("Body", "This is just a test")
Call cdoc.ReplaceItemValue("ROOM", doc.Location(0))
Call cdoc.ReplaceItemValue("tmpRoom", doc.Location(0))
Call cdoc.ReplaceItemValue("tmpRoom1", doc.Location(0))
Call cdoc.ReplaceItemValue("SEQUENCENUM", 1)
Call cdoc.ReplaceItemValue("ExcludeFromView", "D")
Call cdoc.ReplaceItemValue("$BusyPriority", "1")
Call cdoc.ReplaceItemValue("$ExpandGroups", "3")
Call cdoc.ReplaceItemValue("OrgConfidential", "1")
Call cdoc.ReplaceItemValue("ORGTABLE", "C0")
Call cdoc.ReplaceItemValue("RoomRequired", "1")
Call cdoc.ReplaceItemValue("RoomSpecific", "1")
Call cdoc.ReplaceItemValue("REQUIREDATTENDEES", doc.SendTo)
Call cdoc.ReplaceItemValue("SendTo", "")
Call cdoc.ReplaceItemValue("tmpSendTo", "")
Call cdoc.ReplaceItemValue("OPTIONALATTENDEES", doc.CopyTo)
Call cdoc.ReplaceItemValue("CopyTo", "")
'Start
Set domDateTime = s.CreateDateTime(doc.MeetDate(0) & " " & doc.MeetTime(0))
Call cdoc.ReplaceItemValue("CalendarDateTime", domDateTime.LSLocalTime)
Call cdoc.ReplaceItemValue("StartDate",domDateTime.LSLocalTime)
Call cdoc.ReplaceItemValue("StartDateTime", domDateTime.LSLocalTime)
Set NTRange.StartDateTime = domDateTime
'End
Set domDateTime = s.CreateDateTime(doc.MeetDate(0) & " " & doc.MeetTime(1))
Call cdoc.ReplaceItemValue("EndDateTime", domDateTime.LSLocalTime)
Call cdoc.ReplaceItemValue("$NoPurge",domDateTime.LSLocalTime)
Set NTRange.EndDateTime = domDateTime
Call cdoc.ReplaceItemValue("TimeRange", NTRange)
Call domDateTime.SetNow
Call cdoc.ReplaceItemValue( "PostedDate", domDateTime.LSLocalTime )
Call cdoc.save(True, False, False)
'Envoi invitation
Set notice = db.CreateDocument
Call notice.ReplaceItemValue("Form","Notice")
Call notice.ReplaceItemValue("_ViewIcon", 133)
Call notice.ReplaceItemValue("RoomToReserve", doc.Location(0))
Call notice.ReplaceItemValue("TMPAPPTFLAGS", "3")
Call notice.ReplaceItemValue("tmpAttendeesList", doc.SendTo)
Call notice.ReplaceItemValue("tmpFrom", User)
Call notice.ReplaceItemValue("tmpOriginator", User)
Call notice.ReplaceItemValue("tmpLabel", "Invitation")
Call notice.ReplaceItemValue("TOPIC", Subject)
Call notice.ReplaceItemValue("tmpTopic", Subject)
Call notice.ReplaceItemValue("NoticeType", "I")
Call notice.ReplaceItemValue("$Orig", cdoc.UniversalId)
Call notice.ReplaceItemValue("APPTUNID", cdoc.UniversalId)
notice.UniversalId = cdoc.UniversalId
Call notice.ReplaceItemValue("AppointmentType", cdoc.GetItemValue("AppointmentType"))
Call notice.ReplaceItemValue("$ExpandGroups", cdoc.GetItemValue("$ExpandGroups"))
Call notice.ReplaceItemValue("$NoPurge", cdoc.GetItemValue("$NoPurge"))
Call notice.ReplaceItemValue("$UpdatedBy", cdoc.GetItemValue("$UpdatedBy"))
Call notice.ReplaceItemValue("$NoPurge", cdoc.GetItemValue("$NoPurge"))
Call notice.ReplaceItemValue("Body", cdoc.GetItemValue("Body"))
Call notice.ReplaceItemValue("CHAIR", cdoc.GetItemValue("CHAIR"))
Call notice.ReplaceItemValue("DocAuthors", cdoc.GetItemValue("DocAuthors"))
Call notice.ReplaceItemValue("EndDateTime", cdoc.GetItemValue("EndDateTime"))
Call notice.ReplaceItemValue("ExcludeFromView", cdoc.GetItemValue("ExcludeFromView"))
Call notice.ReplaceItemValue("From", cdoc.GetItemValue("From"))
Call notice.ReplaceItemValue("ORGCONFIDENTIAL", cdoc.GetItemValue("ORGCONFIDENTIAL"))
Call notice.ReplaceItemValue("PostedDate", cdoc.GetItemValue("PostedDate"))
Call notice.ReplaceItemValue("PRINCIPAL", cdoc.GetItemValue("PRINCIPAL"))
Call notice.ReplaceItemValue("REQUIREDATTENDEES", cdoc.GetItemValue("REQUIREDATTENDEES"))
Call notice.ReplaceItemValue("ROOM", cdoc.GetItemValue("ROOM"))
Call notice.ReplaceItemValue("RoomRequired", cdoc.GetItemValue("RoomRequired"))
Call notice.ReplaceItemValue("RoomSpecific", cdoc.GetItemValue("RoomSpecific"))
Call notice.ReplaceItemValue("SEQUENCENUM", cdoc.GetItemValue("SEQUENCENUM"))
Call notice.ReplaceItemValue("StartDate", cdoc.GetItemValue("StartDate"))
Call notice.ReplaceItemValue("StartDateTime", cdoc.GetItemValue("StartDateTime"))
Call notice.ReplaceItemValue("TimeRange", cdoc.GetItemValue("TimeRange"))
Call notice.ReplaceItemValue("tmpRoom", cdoc.GetItemValue("tmpRoom"))
Call notice.ReplaceItemValue("tmpEndDate", cdoc.GetItemValue("EndDateTime"))
Call notice.ReplaceItemValue("tmpStartDate", cdoc.GetItemValue("StartDateTime"))
Call notice.ReplaceItemValue("NewTimeRange", cdoc.GetItemValue("TimeRange"))
Call notice.ReplaceItemValue("NewDate", cdoc.GetItemValue("StartDateTime"))
Call notice.ReplaceItemValue("SendTo", doc.SendTo)
Call notice.ReplaceItemValue("CopyTo", doc.CopyTo)
Call notice.ReplaceItemValue("Subject", cdoc.GetItemValue("Subject"))
Call notice.Send(False)
Call uidoc.close
Exit Sub
ErrorRoutine:
Messagebox "Error " & Err() & ": " & Error()
Exit Sub
End Sub
En espérant que ça puisse aider quelqu'un.
Merci pour vos réponses.
A++