Bonjour, je développe une application .Net (C#) qui doit créer des rendez-vous (appointments) dans une base Lotus Notes.

J'y suis presque sauf que les rendez-vous créés par mon application ne sont pas visibles dans les vues "jours" et "semaines" (je ne peux les voir dans Lotus Notes que si je clique sur l'onglet "Réunions").

Je pense que c'est parce que je ne définie aucune vue au niveau de la création de ces rendez-vous. En effet je ne sais pas du tout comment faire cela en .Net. Il y a des exemples en VB6 mais aucun pour .Net et ils ne semblent pas du tout compatibles.

Quelqu'un aurait-il un exemple de code permettant de créer un rendez-vous dans Lotus Notes en l'incluant dans ces vues ?

Il y a très peu d'informations sur le net sur ce thème, je suis preneur de toute aide concernant la création de rendez-vous dans notes, à partir de .Net.

Pour information voici mon code actuel qui permet donc de créer le rdv mais ne l'affiche pas dans ces vues de Lotus Notes.

Merci par avance pour votre aide.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
 
namespace TestIntegrationDominoDotNet
{
    public partial class Form1 : Form
    {
        private Domino.NotesSession _oNotesSession = null;
        private Domino.NotesDatabase _oNotesDatabase = null;
        private string _sPassword = "monpassword";
        private string _sServerName = "nomdemonserveurnotes";
        private string _sDataBaseLotusNotes = @"mail\\mabase.nsf";
 
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            //§/Déclaration propriétés de connexion
            this.OuvrirSessionNotes();
 
 
        }
 
        private bool OuvrirSessionNotes()
        {
            //§/Permet de mémoriser qu'une erreur s'est produite
            bool bLocal_Erreur = false;
 
            try
            {
                //§/Création de l'objet session Notes
                this._oNotesSession = new Domino.NotesSession();
                //§/Initialiser cet objet session
                this._oNotesSession.Initialize(this._sPassword);
                //§/Définition de l'objet Database Lotus Notes qui va permettre de pointer sur
                //§/la base utilisateur
                //§/Remarque : le dernier paramètre est à false afin d'indiquer que si cette base utilisateur
                //§/           n'existe pas il ne faut pas la créer mais provoquer une erreur
                //§/           En effet cette base doit exister dans Lotus Notes
                this._oNotesDatabase = this._oNotesSession.GetDatabase(this._sServerName, this._sDataBaseLotusNotes, false);
 
                //§/Ouverture de cette base de données
                if (!this._oNotesDatabase.IsOpen)
                {
                    this._oNotesDatabase.Open();
                }
            }
            catch (Exception oLocal_Exception)
            {
                bLocal_Erreur = true;
                MessageBox.Show("Erreur" + oLocal_Exception.Message);
                //§/On appelle systématiquement ici la méthode de fermeture
                //§/de la session notes
                this.FermerSessionNotes();
            }
 
            //DEBUG
            if (!bLocal_Erreur)
            {
                MessageBox.Show("Connexion réussie");
            }
 
            //§/Retouner true si aucune erreur ne s'est produite
            return !bLocal_Erreur;
        }
 
        private void FermerSessionNotes()
        {
            this._oNotesSession =  null;
            this._oNotesDatabase = null;
            GC.Collect(); 
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            //§/Objet Notes Document
            Domino.NotesDocument oNotesDocument = null;
            Domino.NotesView oNotesView = null;
 
            //§/Si la session Notes peut être ouverte        
            if (OuvrirSessionNotes())
            {
 
                //§/Créer en mémoire le document dans la base de données serveur Notes
                oNotesView = this._oNotesDatabase.GetView("Agenda");
                oNotesDocument = this._oNotesDatabase.CreateDocument();
 
 
 
 
                //§/Définir dans des dates times les dates de début et de fin du rdv
                System.DateTime oDateTime_StartDate = new DateTime(2008, 11, 26);
                System.DateTime oDateTime_EndDate = new DateTime(2008, 11, 26);
 
                //§/Mise à jour des champs du document Notes
                oNotesDocument.ReplaceItemValue("Form", "Appointment");
                oNotesDocument.ReplaceItemValue("AppointmentType", "0");
                oNotesDocument.ReplaceItemValue("Subjet", "Ceci est le sujet de mon rendez-vous");
                oNotesDocument.ReplaceItemValue("StartDateTime", oDateTime_StartDate);
                oNotesDocument.ReplaceItemValue("EndDateTime", oDateTime_EndDate);
                oNotesDocument.ReplaceItemValue("StartDate", oDateTime_StartDate);
                oNotesDocument.ReplaceItemValue("MeetingType", "1");
                oNotesDocument.ReplaceItemValue("Body", "Ceci est le contenu du rendez-vous");
 
                oNotesDocument.ReplaceItemValue("Chair", this._oNotesSession.CommonUserName);
                oNotesDocument.ReplaceItemValue("AltChair", this._oNotesSession.CommonUserName);
                oNotesDocument.ReplaceItemValue("From", this._oNotesSession.CommonUserName);
                oNotesDocument.ReplaceItemValue("Principal", this._oNotesSession.CommonUserName);
 
                //§/Sauvegarde du rendez-vous
                //§/Valide le document
                //§/Dans l'aide Lotus Notes le rôle de cet appel - nécessaire - est :
                //§/"Validates a document by executing the default value, translation, and validation formulas, if any are defined in the document form"
                //§/Voir la page "http://www.wissel.net/blog/d6plinks/SHWL-6V65MG"
                //§/pour plus d'informations à ce sujet
                //§/Si cette validation s'est bien passée
                if (oNotesDocument.ComputeWithForm(true, false))
                {
                    //§/Sauvegarde le rendez-vous dans la base Notes
                    oNotesDocument.Save(true, false, false);
 
                    //§/DEBUG
                    MessageBox.Show("Normalement le rdv devrait être créé");
 
                }
                else //§/La validation du document à ajouter ne s'est pas bien passée
                {
                    //§/L'indiquer à l'utilisateur
                    MessageBox.Show("Le document ne peut être validé par le serveur Lotus Notes; sauvegarde impossible");
                }
                //§/FIN DEBUG
            }
            else //§/La session Notes ne peut être ouverte
            {
                //§/On affiche un message à l'utilisateur
                MessageBox.Show("Impossible d'ouvrir la session Notes; création du rdv impossible");
            }
 
            //§/Systématiquement nous supprimons ici tous les éléments Notes et fermons la session
            //§/Cela permet d'économiser la mémoire
            //§/Il est à noter qu'il est plus optimisé de supprimer tous les éléments locaux Notes
            //§/avant d'effectuer le this.FermerSessionNotes() car FermerSessionNotes() force le passage
            //§/du Garbage collector
 
            //§/Supprimer le document Notes désormais inutile
            oNotesDocument = null;
            //§/Et fermer la session Notes
            this.FermerSessionNotes();
        }
 
        private void button3_Click(object sender, EventArgs e)
        {
            //§/Si la session Notes peut être ouverte        
            if (OuvrirSessionNotes())
            {
 
            }
            else //§/La session Notes ne peut être ouverte
            {
                //§/On affiche un message à l'utilisateur
                MessageBox.Show("Impossible d'ouvrir la session Notes; affichage des rdv impossible");
            }
 
            //§/Systématiquement nous supprimons ici tous les éléments Notes et fermons la session
            //§/Cela permet d'économiser la mémoire
            //§/Il est à noter qu'il est plus optimisé de supprimer tous les éléments locaux Notes
            //§/avant d'effectuer le this.FermerSessionNotes() car FermerSessionNotes() force le passage
            //§/du Garbage collector
 
            //§/Fermer la session Notes
            this.FermerSessionNotes();
 
 
        }
    }