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

SAP Business Objects Discussion :

dupliquer des classes avec critère [BO Info]


Sujet :

SAP Business Objects

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 169
    Points : 76
    Points
    76
    Par défaut dupliquer des classes avec critère
    Bonjour,

    je bosse sous Bo BI 4.Sur le designer , je cherche à dupliquer une classe mais avec des filtres (sans pour autant modifier l'univers , ou le package d'alimentation).
    Supposons une classe "vendeur" avec toutes les coordonnées (adresse , tel , chiffre affaire,voiture ....).Ces vendeurs sont regroupés par type (homme, femme , ou alien).
    Je cherche à cloner cette classe en 3 classes distinctes : vendeurs homme , vendeurs femmes , vendeurs alien.
    L'idée est de garder la classe "vendeur" globale , qui servira de tronc commun autres 3 autres . Est ce possible ?

    merci pour votre aide.

  2. #2
    Expert confirmé
    Avatar de doc malkovich
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2008
    Messages
    1 884
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 884
    Points : 4 285
    Points
    4 285
    Billets dans le blog
    1
    Par défaut
    Hello,

    Un vendeur alien ... lol, tu regardes trop american dad

    A ma connaissance il n'y a pas de moyen simple, comme un héritage direct.
    Tu peux faire qu'un objet est la copie d'un autre objet en mettant dans la formule Select la fonction @select() et le nom de l'objet copié en paramètre. C'est ce qui est fait via l'éditeur de formule quand tu sélectionnes un objet de l'univers en bas. Quand l'objet "père" change, l'objet "fils" change aussi. Mais il faut modifier tous les objets manuellement ...
    Tu peux aussi mettre des filtres prédéfinis "vendeur homme", "vendeur femme" et "vendeur alien". C'est ce que je ferais, avec une seule classe. Après si tu persistes dans la multiplication des classes, il y a une option sur le filtre prédéfini pour qu'il s'applique automatiquement à un dossier, même s'il n'est pas pris. Pratique pour ne pas avoir à copier/coller le filtre dans toutes les clauses where.

    Doc

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 169
    Points : 76
    Points
    76
    Par défaut
    Bonjour,

    merci du retour ; et bien vu pour American dad
    Mais avec la solution proposée je n'arrive pas à mes fins . Le but est que , supposons que j'ai une classe "ventes" ; je voudrais que pour une vente(surlaquelle on peut avoir max 3 vendeurs différents), je puisse afficher tous les vendeurs qui ont contribué à cette vente , et sur une seule ligne avec le webi .

    en espérant avoir été clair

  4. #4
    Expert confirmé
    Avatar de doc malkovich
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2008
    Messages
    1 884
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 884
    Points : 4 285
    Points
    4 285
    Billets dans le blog
    1
    Par défaut
    Ok mais je ne comprends pas

    Pourquoi faire une classe vendeur homme, une pour femme et une pour alien alors ?
    J'imagine qu'une vente peut être fait par plusieurs vendeurs homme non ?
    Dans ta solution tu auras une ligne par vendeur homme.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 169
    Points : 76
    Points
    76
    Par défaut
    parceque le métier souhaite , pour ses analyses, pouvoir disposer des informations relatives a chaque type de vendeurs (ex : adresse , age ,tel , pays residence, couleurs voiture .....) indépendemment .
    Donc a la place de la classe vendeurs qui regroupe tt le monde , avec leurs données (adresse , age ,tel , pays residence, couleurs voiture .....) , on doit la diviser en 3 parties.
    D'abord je pensais pouvoir en clonant la classe vendeursen 3 clones , puis mettre un filtre (une condition) par type sur chacun des 3 clones . Mais ça n'a pas l'air de marcher.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 169
    Points : 76
    Points
    76
    Par défaut
    Je pensais qu'il y a avait sous BO la notion d'héritage de classes (un peu comme en JAVA) .

  7. #7
    Expert confirmé
    Avatar de doc malkovich
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2008
    Messages
    1 884
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 884
    Points : 4 285
    Points
    4 285
    Billets dans le blog
    1
    Par défaut
    Pour info il n'y a pas de garbage collector dans BO, faut tout nettoyer tout seul

    Bon alors tu peux faire des alias, si tu prends ta table vendeur tu en fais des alias (essayes le copier/coller), que tu renommes en vendeur_homme, vendeur_femme et vendeur_alien. Les alias c'est comme les instanciations, c'est la même table derrière mais tu en as 3 instances différentes.
    Après tu crées des dossiers/objets pour chaque alias.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 169
    Points : 76
    Points
    76
    Par défaut
    Ok merci doc . Donc si je suit ton raisonnement , une fois les 3 alias crées ,nommées HOMME/FEMMES/ALIEN
    Faut il recréer les liens avec les autres tables de l'univers , comme c'était déjà fait pour la table vendeur ? ou bien je lie mes nouveaux alias à la table vendeur ?
    Car la table vendeur a pas mal de liens (jointures et cardinalités) avec d'autres tables .Ta solution implique pas mal de modifs dans l'univers non ?

  9. #9
    Expert confirmé
    Avatar de doc malkovich
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2008
    Messages
    1 884
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 884
    Points : 4 285
    Points
    4 285
    Billets dans le blog
    1
    Par défaut
    Il faut voir ton modèle, mais en effet il faut reproduire les jointures ... sur des alias !

    Exemple :
    Tu as la table ventes liée à vendeur liée à magasin
    Si tu ajoutes des alias à vendeur il faut aussi ajouter un alias à magasin
    Cela donnerait
    ventes -- vendeur_homme -- magasin_homme
    ventes -- vendeur_femme -- magasin_femme

    par contre si tu as beaucoup plus de jointures sur vendeur ce n'est pas forcément la meilleure solution.

    Ce n'est pas forcément la meilleure solution, je ne comprends pas le besoin utilisateur pour te répondre au mieux, mais d'après ce que tu veux faire il faut faire comme ça ...

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 169
    Points : 76
    Points
    76
    Par défaut
    OK ; je ferai des alias de la table vendeur, je ne vois pas d'autres choix.
    Apres je dupliquerai la classe vendeur avec tous ses objets en 2 exemplaires , puis renommerai les 3 en :
    vendeur homme - vendeur femmes - vendeurs aliens
    Ensuite je poserai des filtres sur que chaque classe par type (homme , femme , alien) et modifierai la source des objets en fonction des alias créées.
    Ça ne va pas être simple , trop de jointures à recréer, avec d'autres alias a créer (genre produits , magasin etc....) ; et au moins 30 objets dans la classe vendeur.

    Merci Doc

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 169
    Points : 76
    Points
    76
    Par défaut
    les tables dérivées ne resoudraient pas mon problème ?

  12. #12
    Expert confirmé
    Avatar de doc malkovich
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2008
    Messages
    1 884
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 884
    Points : 4 285
    Points
    4 285
    Billets dans le blog
    1
    Par défaut
    Je ne pense pas. Les tables dérivées c'est comme des vues d'une base de données. C'est plus pour faire des trucs complexes sous BO, comme un min ou un max.

    Bon, reprenons, tu veux quoi exactement comme résultat ?

    Moi j'ai compris un truc comme :
    date op mt vendeur homme vendeur femme vendeur alien
    20/11/2016 500€ john jane jojo
    ...

    Dans ce cas, oui il faut passer par des alias. Sinon tu peux aussi faire un tableau croisé, mais c'est moins simple pour l'utilisateur.
    Autre méthode, sous oracle tu as la fonction listagg(), tu peux l'utiliser et tu auras john/jane/jojo dans la même cellule.

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 169
    Points : 76
    Points
    76
    Par défaut
    J'ai résolu mon problème en passant par des tables dérivés (pour la classe vendeurs avec une clause "where" ; pas possible avec des alias apparemment) et des alias pour les autres tables (produits ...).
    Merci à toi Doc Malcovich; et bonne continuation !!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [LINQ TO SQL] ajout attributs à des classes avec le concepteur
    Par sdicay dans le forum Framework .NET
    Réponses: 0
    Dernier message: 09/03/2010, 21h37
  2. Tri des resultats avec critères
    Par junglist.kirss dans le forum Requêtes
    Réponses: 5
    Dernier message: 14/12/2009, 10h50
  3. Pb pour copier des lignes avec critères
    Par vally74 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 14/05/2008, 12h20
  4. Réponses: 6
    Dernier message: 29/03/2008, 20h01
  5. Réponses: 1
    Dernier message: 04/06/2007, 10h41

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