IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Designer Discussion :

Restriction objet en fonction du login utilisateur


Sujet :

Designer

  1. #1
    Nouveau candidat au Club
    Inscrit en
    Août 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 2
    Par défaut Restriction objet en fonction du login utilisateur
    Bonjour à tous,

    je fais appel à votre savoir et vos solutions...

    Environnement :
    Solution de Business Intelligence: BO XI, utilisé principalement pour restituer des informations en provenance du Datawarehouse à destination du personnel du siège (services généraux et commerciaux).
    Certains états sont utiles aux de magasins (environ 400 pour le moment).Ces états sont génériques et paramétrables par magasin et date. Jusqu’à aujourd’hui, ces états sont rafraichis à l’aide d’une macro VB et envoyés au format PDF sur l’ordinateur central du magasin.

    Or, les magasins se développant par grand nombre, cette opération est de plus en plus couteuse et ne permet pas d’optimiser la mise à disposition d’informations au travers de nouveaux états.

    Nous allons donc créer un second portail Infoview destinés uniquement aux magasins.


    La contrainte principale de ce projet, est la restriction des informations selon l’utilisateur.
    Je m’explique : les états BO sont identiques pour tous les magasins mais chaque magasin ne doit pouvoir consulter que ses informations. Pour ne pas démultiplier les états autant de fois qu’il y a de magasin (avec un filtre en dur dans la requête…pffff !!!).
    Je souhaiterais variabiliser la condition de restriction sur le code_magasin en fonction du login utilisateur qui exécute le rafraichissement.Pour faciliter les choses, je pourrais créer un login comprenant le code_magasin (par exemple M_874)

    Je fais donc appel à vous : qu’en pensez-vous ?
    - Est-ce la meilleure solution en termes de maintenance et évolution ? sinon quelle serait votre proposition ?
    - comment créer un objet dans mon univers qui récupère le login de connexion de l’utilisateur ?


    Merci de votre aide !

    ***CNE***

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 95
    Par défaut
    Bonjour,

    tu peux créer des groupes correspondant à tes magasins et inclure les utilisateurs dans ces groupes. Ensuite au niveau de l'univers tu crée une restriction sur la table ou l'objet et tu l'appliques au groupe.

    Groupe :
    magasin 1
    -utilisateur 0, utilisateur 1

    restriction : table.colonne = 'Magasin 1'
    et tu appliques cette restriction sur le groupe magasin 1

    et donc quand l'utilisateur lance la requête automatiquement la restriction sur le groupe s'applique.

  3. #3
    Rédacteur
    Avatar de Bruno2r
    Homme Profil pro
    Exploitation des données
    Inscrit en
    Décembre 2006
    Messages
    2 566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Exploitation des données
    Secteur : Santé

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 566
    Par défaut
    Bonsoir,
    L'idée de jsaviola est bonne mais ne répond que partiellement au besoin.
    Explication :

    Commençons par l'utilisation du login utilisateur que tu envisageais.

    En version 5 & 6

    1) On peut utiliser la fonction @Variable qui permet de récupérer les variables système BUSINESSOBJECTS : BOUSER ou BOPASS.
    (nom d’utilisateur et mot de passe).
    Cette fonction peut être utilisée dans la clause Where d'une définition d'objet.
    Table.ChampUtilisateur = @Variable(BOUSER)
    Encore faut-il avoir un tel champ.

    2) Sinon il peut effectivement être tentant d'utiliser les possibilités de restriction d'accès aux lignes d'une ou plusieurs tables. (proposition de jsaviola ).
    Cette restriction peut s'appliquer par groupes ou utilisateurs.
    Si elle héritée du groupe, elle ne peut être modifié par utilisateur de ce groupe.
    Comment faire :
    • Après avoir sélectionné le groupe ou l'utilisateur, dans l'onglet Univers, double clic ou clic droit sur l'univers choisi puis Propriétés.
    • Dans la boite de dialogue aller sur l'onglet Lignes
    • Ajouter
    • Dans a boîte de dialogue Nouvelle restriction de ligne
    • Saisir le nom de la table ou (utiliser Parcourir >> choisir la table et OK)
    • Saisir la clause SQL Where ou cliquer sur le bouton Parcourir pour afficher la boite de dialogue Définition de la clause Where.
    Cette solution parait idéale ... permettant par exemple de limiter l'accès au magasin 1
    Pourtant elle ne répond au besoin que si l'objet Magasin est présent dans la requête de l'utilisateur.
    En choisisant Exercice et Montant des commandes la clause where ne s'appliquera pas puisque le champ Magasin de la table n'est pas dans le Select.

    3) En version 5 & 6 toujours, le plus efficace serait de créer autant d'alias de tables que de magasins, chacune dotée d'une autojointure restrictive de type Magasin = M_874
    On pourrait ensuite mettre en œuvre la technique de Correspondance de table (dernier onglet à droite de la boite de dialogue Propriété de l'univers indiquée ci-dessus).
    • Ajouter
    • Saisir le nom de la table d'origine
    • Saisir le nom de la table de remplacement
    • OK
    Comme la clause Where est sur la table Alias, elle s'appliquera quelque soit le Select.

    En Version XIR2 :
    Ces techniques de restriction et remplacement ont été portées dans les Paramètres de l'Univers (Designer)
    Précisez la VERSION !
    Un message vous a aidé ? Votez en cliquant sur Pensez au bouton
    Tutoriels BO et FAQ BO
    "A vouloir repousser ses limites ... On risque d'en prendre connaissance !!!"

Discussions similaires

  1. Réponses: 9
    Dernier message: 22/10/2013, 13h50
  2. [VxiR2] Rapports s'actualisant en fonction du login de l'utilisateur
    Par kfmystik dans le forum Deski
    Réponses: 3
    Dernier message: 10/03/2009, 18h02
  3. Réponses: 9
    Dernier message: 13/07/2007, 14h40
  4. Méthode ou fonction pour connaitre utilisateur
    Par Madmac dans le forum Administration système
    Réponses: 6
    Dernier message: 23/09/2004, 17h47
  5. Réponses: 4
    Dernier message: 15/09/2004, 16h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo