Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Business Objects > Webi
Webi Forum d'entraide Webi (client léger)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/02/2011, 11h09   #1
Nouveau Membre du Club
 
Inscription : mai 2006
Messages : 83
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 83
Points : 34
Points : 34
Par défaut Affichage conditionnel d'invites selon l'utilisateur connecté

Bonjour,

J'aimerais savoir s'il est possible d'afficher ou non des invites selon les droits des utilisateurs :

Imaginons : user1 est directeur et user2 simple utilisateur. Ils ont accès au même rapport sous Webi.
User1 doit pouvoir filtrer sur plusieurs objets (par exemple, choisir un utilisateur dans une liste et afficher le rapport de cet utilisateur) tandis que User2 ne peut voir que les données qui le concernent (il n'a pas le droit de voir un autre utilisateur que lui-même). Par contre, on peut imaginer que les deux auront la possibilité de choisir une période.
Le nombre de "profils" étant conséquent, est-il possible de jouer sur l'affichage d'invites plutôt que de refaire le même rapport pour chaque profil?

Merci d'avance!
tinwul est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2011, 11h41   #2
Modérateur
 
Avatar de Julien59
 
Julien Lizzul
Inscription : mars 2008
Messages : 1 103
Détails du profil
Informations personnelles :
Nom : Julien Lizzul
Âge : 25
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : mars 2008
Messages : 1 103
Points : 1 295
Points : 1 295
Bonjour,

A ma connaissance, on ne peut pas, sur un même objet (filtre) appliquer 2 restrictions différentes.
Il existe tout de même un moyen mais il s'appliquera dans tous les rapports.
Il s'agit des surcharges.
J'ai un user1 et un user2.
User1 ne doit avoir accès qu'à son profil et user2 a une invite.
Il faut aller dans les restrictions d'accès au niveau du designer > Nouveau.
Dans l'onglet lignes, Ajouter.
On arrive alors à une liste de table avec une clause where à appliquer.
Je prends par exemple la table employés.
Code :
1
2
TABLE : Employés
WHERE : Employés.ID = @variable('BOUSER')
Ma Première restriction est créée pour user1 (pas sûr à 100% de la syntaxe pour BOUSER)

Il faut créer la seconde restriction pour user2 :
restrictions d'accès > Nouveau.
Dans l'onglet lignes, Ajouter.
Code :
1
2
TABLE : Employés
WHERE : Employés.ID = @prompt('quel employé ?','A','ClasseEmploye\ID',multi,free,)
Ma 2ème restriction est créée.
Maintenant, il faut appliquer les restrictions aux utilisateurs :

restrictions d'accès > Ajouter un utilisateur ou un groupe
On ajoute l'utilisateur ou le groupe, on clique sur la restriction souhaitée pour cet utilisateur ou groupe, et on applique.

Dorénavant, lorsque user1 se connectera à un rapport qui pointera sur la table Employé, il ne verra que ce qui le concerne, lorsque user2 se connectera aus mêmes rapports, il aura une invite lui demandant quels employés ils souhaitent visualiser.

N'hésite pas si tu as des questions sur cette méthode.

Bon courage
__________________
  • Pensez à consulter la FAQ BO
  • Quand votre problème est solutionné, n'oubliez pas de cliquer sur le bouton
Julien59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2011, 16h10   #3
Nouveau Membre du Club
 
Inscription : mai 2006
Messages : 83
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 83
Points : 34
Points : 34
Salut Julien,

Merci pour ta réponse. Je n'ai pas abandonné le sujet et j'ai bien étudié ta solution même si je ne ne te réponds que maintenant.
J'ai testé ta solution mais elle ne convient pas car le directeur ne veut pas avoir à choisir un employé à chaque fois qu'il ouvre le rapport.
Je m'explique : la hiérarchie est de ce type : société --> groupe --> lieu --> equipe --> utilisateur
Pour ces rapports, il y a une invite par hiérarchie (quelle(s) société(s)? quel(s) groupe(s)? etc.).

l'utilisateur basique, c'est simple, ne peut voir que ce qui le concerne : même s'il ne renseigne rien, le rapport s'actualise sur ses données. Je dis même s'il ne renseigne rien car il ne veut pas avoir à renseigner toutes les invites à chaque fois qu'il ouvre son rapport.

le directeur, quant à lui, peut faire tout ce qu'il veut : renseigner les différents niveaux de hiérarchies ou non (dans ce cas, il a l'ensemble des données du niveau). En gros, s'il ne renseigne rien, il a toutes les sociétés, tous les groupes etc.

Je m'en suis finalement sortie en créant une table de gestion des différents profils qui contient, pour chaque profil, l'ensemble des données auquel il a droit pour chacun des niveaux.

Par exemple :

Code :
1
2
3
4
5
Profil  	Societe	Groupe	Lieu     	Equipe	Utilisateur
Directeur	Soc_A	Grp_A1	Paris     	Eqp_A1	User1
Directeur	Soc_A	Grp_A2	Versailles	Eqp_A2	User1
Directeur	Soc_B	Grp_B1	Lyon     	Eqp_B1	User1
Employe 	Soc_A	Grp_A1	Paris     	Eqp_A1	User2
Dans les restrictions, j'ajoute ensuite une requête du type "where societe in (select societe from gestion_profil where profil = @variable('BOUSER') " et ce pour les 5 dimensions de la hiérarchie.
J'affecte cette restriction à tous les utilisateurs et le tour est joué : chaque utilisateur voit ce à quoi il a droit, qu'il renseigne ou non les différentes invites. Et s'il veut renseigner les invites, la liste de valeurs ne contient que les données autorisées.
Le seul bémol est que si le directeur répond Soc_A à l'invite 1 (quelle(s) société(s)?), la liste des valeurs de l'invite 2 (quel(s) groupe(s)?) contiendra Grp_A1, Grp_A2, Grp_B1 au lieu de ne contenir que les deux premières

En fait, ta solution répondait bien à ma question, c'est moi qui ai été trop simpliste dans mon explication.


Voilà, c'était pour apporter plus de détails et te faire un retour sur ta solution, je laisse le sujet ouvert encore un peu, au cas où qq a une solution sur le petit bémol
tinwul est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2011, 16h48   #4
Modérateur
 
Avatar de Julien59
 
Julien Lizzul
Inscription : mars 2008
Messages : 1 103
Détails du profil
Informations personnelles :
Nom : Julien Lizzul
Âge : 25
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : mars 2008
Messages : 1 103
Points : 1 295
Points : 1 295
Merci pour le retour

Bien sûr que ma solution répondait à ta question
Plus sérieusement, je pense que tu y gagnerais à passer par des surcharges. Tu peux gérer tous les cas indépendamment les uns des autres et plus facilement qu'au travers d'une table.
Concernant ton problème des groupes pour le directeur, il suffit de faire une invite en cascade.

N'oublie pas de cliquer sur
__________________
  • Pensez à consulter la FAQ BO
  • Quand votre problème est solutionné, n'oubliez pas de cliquer sur le bouton
Julien59 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h11.


 
 
 
 
Partenaires

Hébergement Web