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 :

Stratégie de création de classe et objet


Sujet :

Designer

  1. #1
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 25
    Par défaut Stratégie de création de classe et objet
    Bonjour à tous,

    Je n'ai pas trouvé de sujet correspondant exactement à mon problème dans le forum donc j'en ouvre un nouveau. Si je me trompe, n'hésitez pas à rediriger le sujet au bon endroit ...

    En fait, je travaille ici sous Designer 6 et je souhaiterai savoir si il est possible de créer soit même des règles de création de classes et objets.
    En effet, il existe 2 stratégies disponibles:

    -Renommage par défaut: Crée des classes à partir des noms de tables et des objets à partir des noms de colonnes. Les caractères '_' sont remplacés par un espace.
    - Stratégie externe: classes et objets: Cette stratégie lie la structure de la base de données. Elle associe des tables avec des classes et des colonnes avec des objets.

    Par exemple, est-il possible de créer une stratégie disant: "Toutes les classes que je crée prennent le nom de la table et y rajoutent CLASS devant" ?

    Je parle réellement de stratégie pour CREER les classes sous Designer. Si cela n'est pas possible ce n'est pas grave mais je ne souhaite pas toucher aux tables sous Oracle après création des classes.

    Je vous remercie d'avance pour vos réponses

  2. #2
    Membre Expert
    Avatar de bastoonet
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Septembre 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 011
    Par défaut
    A ma connaissance c'est possible, tu devrais pouvoir renommer tes classes automatiquement...

    ...

    ni vu ni connu...

  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
    Bonjour,
    Il est tout à fait possible de créer ou modifier les stratégies externes utilisables dans Designer.

    Qu'est-ce qu'une stratégie externe ?
    C'est un script SQL (propre à chaque type de Base de Données) extérieur au fichier de l'univers (.unv) et structuré de telle façon que Designer puisse l'utiliser pour automatiser la création d'objets et de jointures lors de l'importation des tables.

    Où se trouve-t-il ?
    En version 5 dans le fichier .PRM
    En version 6 dans le fichier .STG
    En XI si quelqu'un peut vérifier ...

    Exemple pour Oracle et en version 6 de BO :
    C:\Program Files\Business Objects6\BusinessObjects Enterprise 6\dataAccess\RDBMS\connectionServer\oracle\oracle.stg

    Comment le modifier ?
    Utiliser un éditeur xml pour l'ouvrir.
    Repérer les sections présentes.
    Elles se définissent par :
    • le nom "nom de la stratégie"
    • le type JOIN OBJECT STRUCT
    • le sql
    le sql détermine les paramètres de sortie suivants sous forme d'un tableau de 9 colonnes :
    1 Table Name
    2 Column Name
    3 Class Name
    4 Object Name
    5 Select
    6 Where:
    7 Type de l’objet
    8 Description.
    9 Qualification D (Dimension), M (Indicateur), or I (Info)

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    </Strategy>
        <Strategy Name="Classes_and_Objects">
            <Type>OBJECT</Type>
            <SQL>SELECT 
           U1.table_name,'|', 
           U1.column_name,'|', 
           translate(initcap(U1.table_name),'_',' '),'|', 
           translate(initcap(U1.column_name),'_',' '),'|', 
           U1.table_name||'.'||U1.column_name,'|', 
           '  ','|', 
           decode(SUBSTR(U1.DATA_TYPE,1,1),'N','N','F','N','D','D','C'),'|', 
           SUBSTR(U2.comments,1,474),'|', 
           'O','|' 
    FROM USER_TAB_COLUMNS U1,USER_COL_COMMENTS U2 
    WHERE 
        U1.table_name=U2.table_name 
    and U1.column_name=U2.column_name 
    UNION 
    SELECT 
           S.SYNONYM_NAME,'|', 
           U1.column_name,'|', 
           translate(initcap(S.SYNONYM_NAME),'_',' '),'|', 
           translate(initcap(U1.column_name),'_',' '),'|', 
           S.SYNONYM_NAME||'.'||U1.column_name,'|', 
           '  ','|', 
           decode(SUBSTR(U1.DATA_TYPE,1,1),'N','N','F','N','D','D','C'),'|', 
           SUBSTR(U2.comments,1,474),'|', 
           'O','|' 
    FROM ALL_TAB_COLUMNS U1, ALL_COL_COMMENTS U2, ALL_OBJECTS O, USER_SYNONYMS S 
    WHERE 
          S.table_owner=O.owner 
    AND   S.table_name=O.object_name 
    AND   (O.OBJECT_TYPE='TABLE' OR O.OBJECT_TYPE='VIEW') 
    AND   O.owner=U1.owner 
    AND   O.object_name=U1.table_name 
    AND   U1.owner=U2.owner 
    AND   U1.table_name=U2.table_name 
    AND   U1.column_name=U2.column_name</SQL>
        </Strategy>
    Il devrait donc être possible de modifier la stratégie de nommage des classes (position 3 )de la façon suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    </Strategy>
         <Strategy Name="Classes_and_Objects">
             <Type>OBJECT</Type>
             <SQL>SELECT 
            U1.table_name,'|', 
            U1.column_name,'|', 
             'CLASS '||translate(initcap(U1.table_name),'_',' '),'|', 
            translate(initcap(U1.column_name),'_',' '),'|', 
            U1.table_name||'.'||U1.column_name,'|', 
            '  ','|', 
            decode(SUBSTR(U1.DATA_TYPE,1,1),'N','N','F','N','D','D','C'),'|', 
            SUBSTR(U2.comments,1,474),'|', 
            'O','|' 
     FROM USER_TAB_COLUMNS U1,USER_COL_COMMENTS U2 
     WHERE 
         U1.table_name=U2.table_name 
     and U1.column_name=U2.column_name 
     UNION 
     SELECT 
            S.SYNONYM_NAME,'|', 
            U1.column_name,'|', 
            'CLASS '||translate(initcap(S.SYNONYM_NAME),'_',' '),'|', 
            translate(initcap(U1.column_name),'_',' '),'|', 
            S.SYNONYM_NAME||'.'||U1.column_name,'|', 
            '  ','|', 
            decode(SUBSTR(U1.DATA_TYPE,1,1),'N','N','F','N','D','D','C'),'|', 
            SUBSTR(U2.comments,1,474),'|', 
            'O','|' 
     FROM ALL_TAB_COLUMNS U1, ALL_COL_COMMENTS U2, ALL_OBJECTS O, USER_SYNONYMS S 
     WHERE 
           S.table_owner=O.owner 
     AND   S.table_name=O.object_name 
     AND   (O.OBJECT_TYPE='TABLE' OR O.OBJECT_TYPE='VIEW') 
     AND   O.owner=U1.owner 
     AND   O.object_name=U1.table_name 
     AND   U1.owner=U2.owner 
     AND   U1.table_name=U2.table_name 
     AND   U1.column_name=U2.column_name</SQL>
         </Strategy>
    A essayer après avoir sauvegarder son fichier d'origine, car je n'ai pas pu le tester
    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 !!!"

  4. #4
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 25
    Par défaut
    Merci beaucoup pour vos réponses, je vais tester tout ça de ce pas ... je vous donnerai les résultats de mes tests =)

  5. #5
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 25
    Par défaut
    J'ai testé les modifications que tu m'as présenté Bruno2r, et je t'avoue que pour le moment je n'ai pas trop de succès

    Bon ceci dit je pense avoir compris le fonctionnement de ce fichier (ainsi que le oraclefr.stg qui gère l'affichage en français de la stratégie que l'on modifie).

    Pour le moment j'ai beau modifier la 3ème ligne de la stratégie, censée correspondre aux noms de classes, il n'y a aucune modification au moment de la pratique.

    Je continue de tester, il n'y a pas de raison que ça ne marche pas ... si vous avez le temps de réaliser quelques tests je suis preneur

    ++

    Edit: Ok je viens de comprendre que la modification de ce fichier fonctionnait bien mais dans le cadre d'une création d'univers.
    Dans le cas où je dispose déjà d'un univers, si je rajoute les classes alors cela me rajoute automatiquement la table correspondante ce qui me fait un doublon ...

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

Discussions similaires

  1. Définition et création des classes et objets
    Par Lana.Bauer dans le forum Contribuez
    Réponses: 6
    Dernier message: 11/02/2015, 11h15
  2. [Dojo] Création de class: attribut de type instance d'objet
    Par Zineb1987_UNI dans le forum Bibliothèques & Frameworks
    Réponses: 5
    Dernier message: 08/12/2009, 10h21

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