Bonjour,

Mon objectif est le suivant :
Avec des données client tirée d'un DB sur un serveur AS/400, je recréé une liste de contact, et dans cette liste, j'ajoute des listes de distribution regroupant certains de ses contacts (chaque contact à sa liste de distribution)

J'utilise un script VBS

Les différentes étapes sont :
==> Récupération des données via requête SQL ==> record set "rs"
==> Logon à une session de type MAPI.Session
==> parcours les dossiers publics pour atteindre un dossier de contacts
Dossiers publics > Tous les dossiers publics > DEVContact Société
==> dans ce dossier de contacts, je prends les objets Messages
==> suppression des contacts (objet messages) dans le but de réinjecter tous les contacts présent dans la DB

Voici un extrait du code

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
 
SaveRCO = ""
cpt = 1
saveListDist = ""
While Not rs.EOF
	snom = Trim(rs.Fields(0).Value)
	snosuc = Trim(rs.Fields(1).Value)
	scnrco = Trim(rs.Fields(2).Value)
	slang = Trim(rs.Fields(3).Value)
	stype = Trim(rs.Fields(4).Value)
	sadrs = Trim(rs.Fields(5).Value)
	spost = Trim(rs.Fields(6).Value)
	sloc = Trim(rs.Fields(7).Value)
	sger = Trim(rs.Fields(8).Value)
	stel = Trim(rs.Fields(9).Value)
	scnfax = Trim(rs.Fields(10).Value)
	scngsm = Trim(rs.Fields(11).Value)
	scsmtp  = Trim(rs.Fields(12).Value)
 
	ListDist	= "Regroupement " & scnrco & slang & stype
	RCO 		= scnrco & slang & stype
	if RCO <> SaveRCO then
		cpt = 1
	end if
 
	if cpt > 80 then
		ListDist = ListDist & "(" & (Round(cpt/80)+1) & ")"
	end if
 
 
	if saveListDist <> ListDist then 
                'ICI je créé une liste de Distribution (et elle se créé bien)
		Set objList  = objFols.Add
		objList.Type = "IPM.DistList"
		objList.Fields.item(FullName) = ListDist
		objList.Fields.item(Classedans) = ListDist
	end if
 
	Set objContact = objFols.Add
	if scsmtp <> "" then 
		'Ici j'ai créé un contact (message dont le type est IPM.contact)
 
		ContactInfo = Right("00000"& snosuc,5) & " - " & snom & " - MAIL"
		SaveEmail = scsmtp
		objContact.Update
 
		Set objMemb = objList.members.Add (ContactInfo & " <" & SaveEmail & ">")
 
		objList.update
		cpt = cpt + 1
	end if
 
	saveListDist = ListDist
		SaveRCO = RCO 
 
	rs.MoveNext
Wend
Et sur la ligne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Set objMemb = objList.members.Add (ContactInfo & " <" & SaveEmail & ">")
Le script plante et me dit "Object doesn't support this property or method: 'objList.members' " avec le Code 800A01B6


Toutes les recherches effectuées semblent indiquer c'est bien la collection de données à utiliser, mais il refuse.

Je n'ai pas de connaissances poussées sur la structure d'Exchange (pour information c'est un 5.5), je suis un donc un peu perdu. L'existant semble bien indiquer que les listes de distribution sont des objets message, mais même là, je ne peux trouver la bonne collection de données (et Members ne fonctionne pas non plus)

Merci donc, de bien vouloir m'orienter, et éventuellement m'expliquer où est-ce que je me trompe. Et comment réussir à remplir correctement mes listes de distribution.


Salutations cordiales,
Stéphane