Agent sur la création de compte Lotus

Forum destiné aux questions sur le développement : Formules, LotusScript, Java ...

Agent sur la création de compte Lotus

Messagepar Chrono » 06 Mars 2011 à 21:44

Bonsoir à tous!

On m'a demandé de créer la fonctionnalité suivante: dès qu'un compte Lotus est créé avec adresse de messagerie pour quelqu'un, il faut que la personne soit incluse automatiquement dans plusieurs listes de diffusion. Et que cette personne soit retirée de ces listes dès qu'on désactive son compte.

Je ne pense pas qu'on me laissera modifier le names.nsf pour cette fonctionnalité donc je pensais créer une base avec un agent planifié qui irait vérifier périodiquement dans le names.nsf si un ou des comptes ont été créés depuis son dernier passage.

J'aurais besoin d'une vue qui liste les documents personne triés par date de création mais il me semble que cette vue n'existe pas dans le names.nsf.
Ma question est la suivante: y-a-t-il un autre moyen pour qu'un agent détecte si un compte Lotus a été créé depuis son dernier passage dans le names.nsf ?

Merci d'avance pour vos conseils. :D
Avatar de l’utilisateur
Chrono
Découvre Dominoarea
Découvre Dominoarea
 
Message(s) : 4
Inscrit(e) le : 04 Mars 2011 à 13:24

Messagepar jmm » 07 Mars 2011 à 09:37

Customiser le names n'est pas obligatoire (et chronophage en changement de version), tu peux faire un agent dans une autre base que le names. Cet agent stockera ses dates de run, et ira attaquer une vue standard du names contenant les personnes, et ne traiteraa que les documents créés depuis la dernière date de run. Evidemment il lira un pleu plus de données qu'avec une vue triée par date, mais ton traitement se fera sans doute la nuit, c'est donc peanuts en terme de perf.
Avatar de l’utilisateur
jmm
Posteur néophyte
Posteur néophyte
 
Message(s) : 82
Inscrit(e) le : 09 Jan 2007 à 10:21
Localisation : NIORT (79)

Messagepar roubech » 08 Mars 2011 à 00:54

comment tu définit à quel(s) groupe(s) un nouveaucompte doit être ajouté ?
si ça ne représente pas des centaines de cas de figure, tu peux créer des politique d'enregistrement. La personne qui créé le compte choisit alors la politique adéquate ...
Avatar de l’utilisateur
roubech
Modérateur
Modérateur
 
Message(s) : 4976
Inscrit(e) le : 01 Fév 2007 à 20:22
Localisation : Lille

Messagepar roubech » 08 Mars 2011 à 00:59

sinon, pour chaque compte mail créé tu peux voir passer une requete adminp dans la base statsrep.nsf et là tu dois avoir une vue triée par date

sinon, pour chaque compte avec un ID, une entrée est créé dans certlog.nsf

sinon, faire en sorte que la création des compte ne soit pas faite directement depuis le client d'admin mais à partir d'n formulaire perso qui s'inspire de la base registration.nsf qui doit être dans la SandBox de mémoire


qu'est-ce que tu entend pas "desactiver un compte". Si tu supprime un compte Notes, il y a une requete Adminp qui va se charger de retirer la personne des groupe (entre autre)
Avatar de l’utilisateur
roubech
Modérateur
Modérateur
 
Message(s) : 4976
Inscrit(e) le : 01 Fév 2007 à 20:22
Localisation : Lille

Messagepar Chrono » 15 Mars 2011 à 14:56

Pardon pour ce gros retard de réponses, la semaine passée a été chargée au niveau pro et perso!

jmm a écrit:Cet agent stockera ses dates de run, et ira attaquer une vue standard du names contenant les personnes, et ne traiteraa que les documents créés depuis la dernière date de run. Evidemment il lira un pleu plus de données qu'avec une vue triée par date, mais ton traitement se fera sans doute la nuit, c'est donc peanuts en terme de perf.

Comme tu me le conseillais je pensais créer un agent dans une base à part et il irait "attaquer" le names.nsf avec la fonction LS Database.Search avec en paramètre la date de dernière exécution de l'agent.

roubech a écrit:comment tu définit à quel(s) groupe(s) un nouveaucompte doit être ajouté ?

Je le déduis grâce à une règle de gestion que l'on me donne et qui est basée sur l'extension de l'adresse mail du compte Lotus.

roubech a écrit:sinon, pour chaque compte mail créé tu peux voir passer une requete adminp dans la base statsrep.nsf et là tu dois avoir une vue triée par date


roubech a écrit:sinon, pour chaque compte avec un ID, une entrée est créé dans certlog.nsf

statsrep.nsf et certlog.nsf sont des bases que l'on retrouve sur tous les serveurs Domino car je ne les ai pas trouvé? :?:

roubech a écrit:sinon, faire en sorte que la création des compte ne soit pas faite directement depuis le client d'admin mais à partir d'n formulaire perso qui s'inspire de la base registration.nsf qui doit être dans la SandBox de mémoire

Un collègue l'avait proposé mais apparemment, les admins préfèrent créer les comptes depuis le formulaire standard...

roubech a écrit:qu'est-ce que tu entend pas "desactiver un compte". Si tu supprime un compte Notes, il y a une requete Adminp qui va se charger de retirer la personne des groupe (entre autre)

Pour moi "désactiver" est équivalent à ne plus voir le compte Lotus visible dans le names.nsf.
Un admin m'a dit que la suppression d'un compte entraînait automatiquement son retrait dans les groupes mais que ça n'était pas systématique (par exemple quand on modifie le nom de la personne à la main) donc je vais quand même traiter ce cas par l'agent au cas où.

En y réfléchissant la semaine dernière je pense donc:
    * créer un agent planifié dans une base à part
    * l'agent irait vérifier toutes les nuits le names.nsf du serveur pour détecter des créations de compte depuis son dernier passage (avec un Database.Search et en paramètre la date de dernière exécution de l'agent)
    *S'il trouve un nouveau compte depuis son dernier passage, il créé dans sa base un document "Personne" avec son nom, prénom, adresse mail et les groupes où il a été ajouté

En ce qui concerne la suppression dans les groupes je pense utiliser les documents "Personne" que l'agent a créé dans sa base quand il détecte un nouveau compte Lotus.
    * L'agent parcourt donc une vue de ces documents "Personne" et avec l'adresse mail stockée dans les documents je vérifie son existence dans le names.nsf avec un GetDocumentByKey(<adresse_mail>) sur la vue ($EmailAddresses).
    * Si le GetDocumentByKey ne renvoie aucun document, je supprime la personne des groupes auxquels l'agent l'avait ajouté et je supprime le document "Personne" de la base de l'agent.
    * Il ajoute la personne aux groupes grâce à une règle de gestion


Qu'en pensez-vous?
Avatar de l’utilisateur
Chrono
Découvre Dominoarea
Découvre Dominoarea
 
Message(s) : 4
Inscrit(e) le : 04 Mars 2011 à 13:24

Messagepar jmm » 15 Mars 2011 à 17:54

Pour l'agent de création, ça me semble tenir la route. Pour la suppression, comme te le disait Roubech, pas la peine de te forcer, si au niveau de ta liste, tu as mis un champ nom, c'est la tâche adminp qui se chargera de supprimer les personnes sorties de l'annuaire.

Personnellement, je ferai un module qui peut refaire toutes tes listes en partant from scratch. Ce genre d'outil te servira toujours.
Avatar de l’utilisateur
jmm
Posteur néophyte
Posteur néophyte
 
Message(s) : 82
Inscrit(e) le : 09 Jan 2007 à 10:21
Localisation : NIORT (79)

Messagepar roubech » 16 Mars 2011 à 23:29

autant pour moi, les requetes adminp sont dans admin4.nsf , pas dans statrep.nsf
et j'ai jamais vu de serveur sans admin4.nsf et certlog.nsf
Avatar de l’utilisateur
roubech
Modérateur
Modérateur
 
Message(s) : 4976
Inscrit(e) le : 01 Fév 2007 à 20:22
Localisation : Lille


Retour vers Développement

cron