Utilisation des API Lotus Notes dans Visual Basic

KRL - 26 oct. 2000 à 20:21
cs_JoBleu Messages postés 91 Date d'inscription dimanche 18 août 2002 Statut Membre Dernière intervention 21 février 2015 - 31 déc. 2010 à 17:19
Je recherche activement des exemples de codes sur l'utilisation des classes Notes dans visual Basic.
(notemment l'utilisation des propriétes de la classe NotesDocument)

Merci de votre aide

KRL

9 réponses

Je rencontre egalement des difficultes à utiliser des classes de lotus notes (aide insuffisante de lotus)

Néanmoins je vais te donner qq trucs que j'ai trouver, pour envoyer un mail à partir de visual basic :

Toutes les classes de lotus notes doivent etre declare en object sinon VB ne les reconnait pas.

Dim session As Object 'NOTESSESSION
Dim doc As Object 'NOTESDOCUMENT
Dim db As Object 'NOTESDATABASE

Set session = CreateObject("Notes.NotesSession") 'Ouvre unje session lotus notes
Set db = session.GETDATABASE("", "C:data
otesautomail.nsf") 'ouvre la base de donnée automail

Set doc = db.CREATEDOCUMENT()

doc.Form = "SENT" 'Ouvre la page SENT
doc.Subject = "Transfert de courrier" 'sujet du mail
doc.Body = "Bonjour ce mail a été envoyé automatiquement" 'Contenu du mail
doc.sendto = "Dupond@truc.com" 'destinataire du mail
Call doc.Save(True, True) 'sauvegarde le mail

Call doc.SEND(True) 'envois le mail

Voila ce que j'ai trouvé sur les classes de notes.
Actuellement je suis en train de plancher sur l'envoi d'un mail avec fichier attaché, j'ai réussi à découvrir la class et la méthode à utiliser , gros hic, lotus notes attend un argument de type string alors que vb
envois un argument de type integer...

Set rtitem = doc.CREATERICHTEXTITEM("Body")
Set Obj = rtitem.EMBEDOBJECT _
(EMBED_ATTACHMENT, "", "C: emp oto.xls", "toto")

EMBED_ATTACHMENT est une constante de type string qu'attend lotus notes alors que vb envois un argument de type integer...

J'espere que je t'ai un peu aide
@+++++++++++
0
Le premier argument de la fonction EMBEDOBJECT peut être de 3 types :
- EMBED_ATTACHMENT
- EMBED_OBJECT
- EMBED_ OBJECTLINK
et à chacun de ces types est associé un code de type entier :

- EMBED_ATTACHMENT : 1454
- EMBED_OBJECT : 1453
- EMBED_ OBJECTLINK : 1452.

Dans le code on obtient donc :

Set rtitem = doc.CREATERICHTEXTITEM("body")
Call rtitem.EMBEDOBJECT(1454, "", "c:\essai\test.txt", "")

J'espère que cela résout vos problèmes.
0
cs_alexmel Messages postés 13 Date d'inscription lundi 30 juin 2003 Statut Membre Dernière intervention 13 novembre 2008
30 juin 2003 à 17:13
Bonjour,

JE viens d'essayer le code ci dessous.
Juste un petit soucis : J'ai le message d'erreur suivant
"Erreur d'exécution : objet requis" sur la ligne de commande Call rtitem.EMBEDOBJECT(1454, "", "c:\essai\test.txt", "").

Voici le code du bouton :

Private Sub CommandButton4_Click()

ActiveWorkbook.Save

Dim session As Object 'NOTESSESSION
Dim doc As Object 'NOTESDOCUMENT
Dim db As Object 'NOTESDATABASE

Set session = CreateObject("Notes.NotesSession") 'Ouvre une session lotus notes
Set db = session.GETDATABASE("", "C:\PassageUrgence.nsf") 'ouvre la base de donnée automail"

Set doc = db.CREATEDOCUMENT()

doc.Form = "SENT" 'Ouvre la page SENT
doc.Subject = "Passage en urgence" 'sujet du mail
doc.Body = "Veuillez trouver ci-joint le fichier Passage en urgence.xls" 'Contenu du mail
doc.sendto = "Alexandra.Poujade@asf.fr" 'destinataire du mail

Call rtitem.embedobject(1454, "", "C:\PASSAGE EN URGENCE.xls", "")

Call doc.Save(True, True) 'sauvegarde le mail

Call doc.SEND(True) 'envois le mail

End Sub

=> et je cherche également à envoyer des mail depuis la base notes déjà ouverte, quel est le code à utiliser ?
et aussi mettre une personne en copie à ce message ?

Je sais je suis exigeante !!! :o)
T'en qu'à faire, vous n'auriez pas une docs complète ?

Merci à tous et bonne soirée !!
0
cs_tonio8 Messages postés 1 Date d'inscription mardi 7 septembre 2004 Statut Membre Dernière intervention 7 septembre 2004
7 sept. 2004 à 16:36
Pour ma part j'ai un problème lors de l'execution de la ligne Set session = CreateObject("Notes.NotesSession") c'est à dire à l'ouverture de session Lotus.
J'ai le message suivant : "un composant ActiveX ne peut pas créer d'objet".
J'ai cherché sur des tas de sites, je ne parviens pas à trouver la solution.
Faut-il ajouter des réfèrences à des bibliothèques ?
Merci à tous pour votre aide.

PS : Lotus Notes 5.0.6a est installé sur mon pc.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_titan1234 Messages postés 2 Date d'inscription dimanche 27 juillet 2003 Statut Membre Dernière intervention 12 septembre 2004
16 sept. 2004 à 21:56
bonjour,
je ne sais pas si cela pourra t'aider car je viens en touriste sur cette page en effet je cherche un moyen de visualiser les destinataires cacher sur un mail lotus notes.

Mais bon bref pour revenir a ton bléme j' ai le même probléme sur une appli qui appelle word et qui plante tant que word n'est pas ouvert bien qu'a mon avis toute les reference soient la.

Il doit manquer un truc du genre:
Application lotus.activate

Si tu as la soluce tiens moi au courant merci.[mailto: chri2la@free.fr]
0
SebOfBorg Messages postés 94 Date d'inscription dimanche 29 septembre 2002 Statut Membre Dernière intervention 26 août 2009
23 sept. 2004 à 10:42
Bonjour,
Pour Tonio8
Session doit être un mot réservé !!
Donc on affecte rien sur un mot réservé.

Essai de renommer ton session en objSession par exemple.

A plus
SebOfBorg
0
Derrick soft Messages postés 97 Date d'inscription jeudi 10 mai 2001 Statut Membre Dernière intervention 20 juin 2005
20 juin 2005 à 19:01
Bonjour,



Si vous avez des pb sous Lotus Notes Développement et Administration vous pouvez aller sur le site http://www.dominoarea.org

Cordialement

Stéphane Maillard

Site : www.dominoarea.org
-------------------------------------------------------
0
cs_JoBleu Messages postés 91 Date d'inscription dimanche 18 août 2002 Statut Membre Dernière intervention 21 février 2015
31 déc. 2010 à 17:14
EmbedObject sert à ajouter une pièce jointe dans la collection des pièces jointes.

Pour ma part, de même qu'en VB on ne peut exploiter un nouveau contrôle ajouté par code qu'après avoir mis à jour la collection des contrôles (par Refresh, si je me rappelle bien ?), de même sous Lotus Notes il faut rafraîchir la collection après avoir ajouté des pièces jointes :

Call workspace.EDITDOCUMENT(True, beDoc).FIELDSETTEXT("Attachment", bodyAtt)

Etant entendu qu'on appelle beDoc le document où on veut insérer une pièce jointe, et bodyAtt la collection de pièces jointes constituée à l'aide de EmbedObject.
Set Obj = rtitem.EMBEDOBJECT _
(EMBED_ATTACHMENT, "", chemindufichier, "toto")

Et si on fait une faute d'orthographe dans "toto", jusque là je ne sais pas comment l'utilisateur peut s'en rendre compte.

JoBleu
0
cs_JoBleu Messages postés 91 Date d'inscription dimanche 18 août 2002 Statut Membre Dernière intervention 21 février 2015
31 déc. 2010 à 17:19
C'est possible d'éditer un message ?

Encore, quand je dis "pour ma part" et que plus loin j'oublie d'enchaîner par "je n'ai pu voir ma pièce jointe qu'après avoir mis à jour la collection", c'est une faute de style mais on comprend.

Mais quand, pour illustrer comment j'obtiens bodyAtt, je tape une instruction qui retourne Obj au lieu de bodyAtt, il faut avouer qu'il y a de quoi être troublé.


JoBleu
0
Rejoignez-nous