Page 1 sur 1
Mail de l'administrateur d'un groupe

Publié:
17 Déc 2003 à 17:54
par MAURILLE Nicolas
Bonjour,Je cherche, via un bouton, à envoyer un mail aux administrateurs des groupes auxquels l'utilisateurs du client appartient.Mais je n'arrive pas à récupérer les adresses mail des administrateurs des groupes.Est-cue quelu'un pourrait me guider.Merci.
Re: Mail de l'administrateur d'un groupe

Publié:
18 Déc 2003 à 09:57
par PhilippeG
Bonjour,c'est le champ LocalAdmin dans le carnet d'adresse (form = Group)
Re: Mail de l'administrateur d'un groupe

Publié:
18 Déc 2003 à 11:28
par MAURILLE Nicolas
Merci,Mais comment faut-il faire pour récupérer le champ d'une form d'une autre base?
Re: Mail de l'administrateur d'un groupe

Publié:
18 Déc 2003 à 15:03
par PhilippeG
Voila un peu de code à adapter a tes besoins.Les hypothèses sont les suivantes- le carnet d'adresse est à la racine du serveur qui heberge ta base- Les groupes d'utilisateur sont accéssibles dans la vue Groups et la premère colonne classée de cette vue contient le noms des groupes- Les noms de groupes sont en majusculesServeur := @Subset(@DbName;1);Chemin := "names.nsf";Vue := "Groups";GroupeChoisi := @UpperCase(@Prompt([OKCANCELEDIT];"Choix Groupe";"Indiquez le nom du groupe";""));GroupeAdmin := @DbLookup("":"";Serveur:Chemin;Vue;GroupeChoisi;"LocalAdmin");@If(@IsError(GroupeAdmin);@Do(@Prompt([OK];"Rejet";"Le groupe choisi n\'existe pas ");@Return(""));@MailSend(GroupeAdmin;"";"";"Sujet";"texte"))
Re: Mail de l'administrateur d'un groupe

Publié:
18 Déc 2003 à 18:24
par AdminExpert
OK avec ta solution mais ça suppose un chgt de structure pour la vue groups... car par défaut le champ LocalAdmin n'est pas affichéje préfère de loin une solution LS on a un meilleur contrôle sur l'envoi du message.si ça t'intéresse je te fais le code dans une base Notes et je te le mail c'est plus simple, à toi de l'implémenter par la suite.A partir de quel genre de document souhaites-tu envoyer le msg à l'administrateur ?si c'est pas urgent je peux te le faire pour fin de semaine
Re: Mail de l'administrateur d'un groupe

Publié:
19 Déc 2003 à 11:31
par MAURILLE Nicolas
Salut, Je te remercie d'avance pour ton aide, je veux bien que tu me fasse le code. Je souhaite envoyer le message à l'administrateur à partie d'une 'from' afin de l'avertir de l'ajout d'une entrée dans la base.Merci.
Re: Mail de l'administrateur d'un groupe

Publié:
19 Déc 2003 à 13:57
par AdminExpert
si je comprends bien,dès qu'une personne ajoute qqun dans groupe tu souhaites avertir l'administrateur de ce groupe ??? est-ce bien cela et ça doît être fait automatiquement ou par une action de la personne qui vient d'ajouter un membre ?ces personnes sont des utilisateurs qui possèdes des droits editeur dans nab ?j'avoue (ou je suis dur de la feuille) que je ne comprends pas très bien le contexte et l'évenement précis de cette intention de message...si c'est ce que je viens de demander... c'est bcp plus délicat mais pas impossibleil faut intervenir dans la structure du carnet d'adresses Notes et détecter au moment du querysave l'ajout d'une nouvelle personne...bon y a+sieur manières de procéder... et il faut travailler par comparaisonpour aller au bout des choses il faut faire un matching des modifcations comparer la liste à l'ouverture et sauvegarde et constater les différences...bon on restera simple pour un premier dévet je présume que tu souhaiterais la même chose si un membre est supprimé d'un groupe ???"dites madame Lotus, ça serait que ce genre de fonctions soient présentes dans les futures version de notes...."permettre le "tracking" des modifications avec alertes aux administrateurs"merci madame Lotus"(et de plus ils ont les moyens EUX ! avec leurs API C)peux-tu donc confirmer le raisonnement que j'ai proposé au début du ce post ?
Re: Mail de l'administrateur d'un groupe

Publié:
19 Déc 2003 à 23:49
par AdminExpert
bon le voici, cependant je peux te filer (email ?) la base dans laquelle je l'ai développé. (no risks, no spams)si tu souhaites tester ma base, n'oublies pas de changer le nom de l'administrateur Local, car celui qui y figure est bidon.1. Principe-------------A priori il me semble dangereux d'effectuer cette modification dans le modèle de base fourni par Lotus (pubnames.ntf). Il faut donc que tu réalise un modèle entreprise personnalisé.1.1 réalisation du modèle personnalisé entreprise---------------------------------------------------------------- à l'aide de ton client Notes, tu copies ton names.nsf de la manière suivante :- règlage de la LCA de ournames.ntf (laisser le minium et defaut à pas d'accès) - se base sur la LCA de la base pubnames.ntf (modèle standard)- onglet structure des propriétés de la base ournames.ntf! - surtout tu laisses l'option Hérite de la structure du modèle ; en effet en cas de mise à jour du modèle par Lotus, ton modèle bénéficieras automatiquement des mises à jour de structure du modèle Lotus. (d'où l'intérêt de ne jamais modifier le modèle Lotus)Le modèle personnalisé entrerprise est donc réalisé, il faut désormais faire pointer ton names.nsf (en production) sur le nouveau modèle logique personnalisé entreprise. Pour ceci :- sélectionner le carnet d'adresses names.nsf! remarque : cette modification doit être faite après validation du code sur une base de test afin de ne pas perturber la production, et je recommande une "mini recette" si tu as du temps avec un groupe "pilote".1.2 Réalisation des modifications de structure dans la base ournames.ntf---------------------------------------------------------------------------------------------ouvrir le masque Groupe1.2.0 - section (globals) declaration---------------------------------------------ajouterDim Members_1 As Variant1.2.1 - section Option---------------------------ajouter la ligneUse "ClassMail"1.2.2 - section postopen du masque----------------------------------------------ajouter le code Dim db As NotesDatabase Dim doc As NotesDocument Dim uidoc As notesuidocument Dim w As New NotesUIWorkspace Dim s As New NotesSession Set db = s.CurrentDatabase Set uidoc=w.currentdocument Set doc = uidoc.document '--- on sauvegarde le contenu du champ Members Members_1=doc.Members1.2.4 - section querysave--------------------------------ajouter à la fin de procédureCall CheckGroup1.2.5 - section (global)----------------------------ajouter la procédureSub CheckGroup Dim db As NotesDatabase Dim doc As NotesDocument Dim uidoc As notesuidocument Dim w As New NotesUIWorkspace Dim s As New NotesSession Dim MailAdmin As Mail Dim Obj As String Dim n1 As Integer Dim n2 As Integer Dim n As Integer Dim Members_2 As Variant Set db = s.CurrentDatabase Set uidoc=w.currentdocument Set doc = uidoc.document Members_2=Doc.Members n1=Ubound(Members_1) n2=Ubound(doc.Members) If n2=0 And Trim$(doc.Members(0))<>"" Then n2=1 n=n1- n2 If n<> 0 Then Print "Des modifications ont été constatées dans la liste des membre du groupe..." '--- On prépare l'objet du message If n<0 Then Obj=Cstr(n * -1) + " Ajout(s) dans le groupe " + doc.ListName(0) Else Obj=Cstr(n) + " Suppression(s) dans le groupe " + doc.ListName(0) End If Obj=Obj + " par " + s.CommonUserName '--- Message d'alerte Set MailAdmin=New Mail MailAdmin.Subject=Obj Call MailAdmin.SetBody("Voici la liste des modifications :") Call MailAdmin.SetBody("") Call MailAdmin.SetColor(COLOR_DARK_GREEN) Call MailAdmin.SetBody("Liste des membres avant la modification :") Forall m1 In Members_1 Call MailAdmin.SetBody("- " & m1) End Forall Call MailAdmin.SetBody("") Call MailAdmin.SetColor(COLOR_RED) Call MailAdmin.SetBody("Liste des membres après la modification :") Forall m2 In Members_2 Call MailAdmin.SetBody("- " & m2) End Forall Call MailAdmin.SetRecipients(Doc.LocalAdmin,Null,Null) Call MailAdmin.Send(False) Delete MailAdmin End If End Sub1.3 - création de la bliothèque CallMail-------------------------------------------------Cette bibliothèque exite dans ce forum, il suffit de la reprendre telle quelle est de la nommer ClassMailet oufff enfin c'est fini y a plus qu'à valider tout ceci...Je l'ai testé sur mon serveur à domicile, ça fonctionne GOOD, on peut améliorer encore, mais comme je t'ai c'est du brut de fonderie.J'espère répondre à ton besoin.