Bien que cela soit documenté dans l'aide Designer, cependant celle-ci reste assez "rude" et on ose pas toujours la consulter pensant que cette littérature est réservée aux spécialistes du développement.===> la présence de documents profil dans une application est fortement conseillée et dès qu'une valeur littérale apparait dans une formule posez vous la question : "ne serait-elle pas mieux dans doc profil ou paramètre"exemple un nom de serveur, un nom de base, un nom de contact, un délai, etc...Dans les versions antérieures on passait par le notes.ini ou par une autre technique expliquée plus basps : le notes.ini dans les versions 3 était parfois une vraie "poubelle" mais nous n'avions pas trop le choix par moment ==> pour ceux qui ont connu cela....===> le jour où cela change, vous n'intervenez pas dans votre code et vous pouvez déléguer cette mise à jour des paramètres à un administrateur fonctionnel et ceci n'est pas vraiment expliqué dans la doc Designer surtout quand on débute en développement, en général on "claque" tout en "dur" et après c'est la panique quand on doit faire des modifications...1/ créer un masque "profil" permettant de saisir les paramètresexemple - Nom du serveur : p0Serveur- Nom de la base : p0Basevous pouvez habiller ce masque comme bon vous semble (couleurs, police, tableaux, etc...)dans ce masque y mettre deux boutons (Annuler, OK)* AnnulerFIELD SaveOptions:="0"; REM "quand on fait echap ça évite d'avoir la boîte de dialogue d'enregistrement";@Command([FileCloseWindow])* OK@Command([FileSave])2/ donner un nom au masquepar habitude je donne un alias aux masques que j'utilise et je préfixe les alias profil par la lettre p0.mes noms de champs commencent par l'alias du masque.==> cette technique me permet de repérer mes champs facilement quand mon application comportent plusieurs masques, on sait directement à quel masque appartient un champs quand la liste des champs est présentée dans la conception d'une vue, à la lecture des formules et des LS c'est aussi plus simple.Je mets toujours ces préfixes en minuscule. Pour chaque préfixe je prends deux caractères, exemple pour un masque client je prends "cl"...(voici au passage quelques bonnes règles de programmation)dans les propriétés du masque ne le pas faire figurer dans le menu création et dans les recherchesil ne doit pas être le masque par défaut4/ accès au masque en modification :- accès par formules @@Command([EditProfile];"p0");On y accède soit via un agent, soit un bouton de vue, soit via une action de navigateur, soit... (votre choix)Dans la LCA on peut y prévoir un rôle [Admin] et tester l'accès à ce dernier via @UserRoles pour autoriser l'accès au profil... au passage penser à @IsMember ou @IsNotMember et refuser l'accès par @Return(@Prompt([OK];"...";"...")) ==> là je vous renvoie à ldoc designer ou à votre demande je peux vous rédiger un exemple pour contrôler l'accès aux objets via l'utilisation des rôles (En @ et en LS).- LS

im w As NotesUIWorkspaceSet w=New NotesUIWorkspaceCall w.EditProfile("p0")5/ accès aux champsPour lire un champs/récupérer la valeur d'un champ- formules @P1:=@GetProfileField("p0" ; "p0Serveur");P1:=@GetProfileField("p0" ; "p0Base");- LS

im s As notessessionDim db As notesdatabaseDim profil As notesdocumentSet s=New notessessionSet db=s.currentdatabaseSet profil = db.GetProfileDocument( "p0" ) msgbox "nom du serveur " & profil.p0Serveur(0) & " nom de la base " & profil.p0Base(0)6/ mise à jour des champs- formules @@SetProfileField("p0" ; "p0Serveur" ; "ACSRV/CORPORATE" );@SetProfileField("p0" ; "p0Serveur" ; "TECHNIC.NSF" );- LS

im s As notessessionDim db As notesdatabaseDim profil As notesdocumentSet s=New notessessionSet db=s.currentdatabaseSet profil = db.GetProfileDocument( "p0" )profil.p0Serveur="ACSRV/CORPORATE"profil.p0Base="TECHNIC.NSF"call profil.save(true,false)Bien maintenant... vous savez tout ou presque tout sur la gestion des documents "profil". Cette notion est apparue avec la version 4 de Lotus Notes. Toutefois on peut se passer de cette technique et utiliser des documents de type standard. On y accède par le biais des vues et d'un mot clé. Pour cela on utilise le @DBLookup ou la méthode View.GetDocumentByKey(cle).Exemple :- Création d'un document comme celui ci-dessus ; celui-ci contient un autre champ texte p0Clef ; ce dernier aura pour valeur "p0" ; cette valeur est arbitraire mais elle doit être fixée au départ car elle sera utilisée comme cléf.- Création d'une vue pseudo VP0colonne 1 : p0Clefcollonne 2 : p0ServeurColonne 3 : p0BaseTri sur la colonne 1- il sera nécessaire de créer le document avec au minimum la clé p0Clef renseignée- la modification du document se fera via l'accès à une vue ; celle sera protégée par un accès via un navigateur (si besoin)en formules @ :srv:=@DBlookup("":"Nocache";"":"":"VP0";"p0";1);base:=@DBlookup("":"Nocache";"":"":"VP0";"p0";2);pour contrôler le bon déroulement du @DBLookup on utilisera @IsError(srv) ou @IsError(base)en LS

im s As notessessionDim db As notesdatabaseDim view as notesviewDim profil As notesdocumentSet s=New notessessionSet db=s.currentdatabaseSet view=db.getview("VP0")Set profil = view.GetDocumentByKey( "p0" )Rem *** vérification de la présence du document ***if not (profil is nothing) then profil.p0Serveur="ACSRV/CORPORATE" profil.p0Base="TECHNIC.NSF" call profil.save(true,false)end ifcette méthode permet de récupérer en LS la gestion de documents paramètres établis pour les versions antérieures à la V4...