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

EPM (Hyperion) Discussion :

Recherche des membres contenant une chaine


Sujet :

EPM (Hyperion)

  1. #1
    Membre régulier
    Homme Profil pro
    Consultant SI
    Inscrit en
    Février 2011
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Consultant SI
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2011
    Messages : 63
    Points : 92
    Points
    92
    Par défaut Recherche des membres contenant une chaine
    Bonjour,

    Dans un calc script, je voudrais écrire un FIX qui me placerait sur certains membres contenant une chaine.

    Disons que j'ai 3 années (2008 à 2010) de 12 mois.

    Disons que je veux faire un FIX sur les mois de janvier.

    Donc le fix portera au final sur 2008_jan , 2009_jan et 2010_jan.

    Il y aurait pas un moyen d'écrire : "Les membres dont le nom contient "jan"" ?


    Merci d'avance,

  2. #2
    Candidat au Club
    Inscrit en
    Mai 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Sauf erreur de ma part, il existe une fonction @SUBSTRING qui permet d'extraire une partie du nom du membre mais cela t'obligerai a non pas faire un FIX mais plutot a utiliser le IF(@SUBSTRING(Année,6,3)="Jan" mais je ne suis pas sur que cela soit tres performant. J'opterai plutot pour la solution de creer une dimension Annees et une dimension Mois afin de croiser plus facilement les données...
    Bien cordialement

  3. #3
    Membre régulier
    Homme Profil pro
    Consultant SI
    Inscrit en
    Février 2011
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Consultant SI
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2011
    Messages : 63
    Points : 92
    Points
    92
    Par défaut
    En fait quand j'utilise un IF dans mon FIX, j'ai l'erreur essbase suivante :

    Error: 1012061 The CALC command [IF] can only be used within a CALC Member Block


    PS : Et j'ai la même erreur si j'utilise le IF seul.

  4. #4
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 281
    Points : 11 737
    Points
    11 737
    Par défaut
    Citation Envoyé par jsonline Voir le message
    Donc le fix portera au final sur 2008_jan , 2009_jan et 2010_jan.

    Il y aurait pas un moyen d'écrire : "Les membres dont le nom contient "jan"" ?
    Code Calc Script : Sélectionner tout - Visualiser dans une fenêtre à part
    fix(@match(dim_temps, "????_jan"))
    Antoun
    Expert Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

  5. #5
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 281
    Points : 11 737
    Points
    11 737
    Par défaut
    Citation Envoyé par bulgom Voir le message
    ...
    IF(@SUBSTRING(Année,6,3)="Jan" mais je ne suis pas sur que cela soit tres performant.
    Citation Envoyé par jsonline Voir le message
    En fait quand j'utilise un IF dans mon FIX, j'ai l'erreur essbase suivante :

    Error: 1012061 The CALC command [IF] can only be used within a CALC Member Block
    Le IF n'est permis que dans les formules... ou dans leur équivalent en script, le calc member block. Supposons que tu veuilles calculer ton indicateur TOTO, la syntaxe à utiliser pour t'autoriser le IF est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    TOTO (
      TOTO = IF (@SUBSTRING(Année,6,3) == "Jan") blabla ;
    )
    Mais le FIX est préférable à tous points de vue.

    PS : attention aussi au double égal == à utiliser pour les comparaisons.
    Antoun
    Expert Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

  6. #6
    Membre régulier
    Homme Profil pro
    Consultant SI
    Inscrit en
    Février 2011
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Consultant SI
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2011
    Messages : 63
    Points : 92
    Points
    92
    Par défaut
    fix(@match(Année, "????_jan")) compile bien.

    Je lancerais le script demain matin, et je vous dis si cela fait bien ce qui est attendu.

    Par la voie du IF, j'ai une nouvelle erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    En écrivant :
    MY_INDICATOR (
      MY_INDICATOR = IF (@SUBSTRING(Année,6,3) == "Jan") 
             blabla ;
    )
    Error: 1200354 Error compiling formula for [MY_INDICATOR] (line 25): expected type [NUMBER] found [STRING] ([@SUBSTRING]) in function [operator @EQ]

    avec MY_INDICATOR : le nom de mon indicateur.


    J'ai l'impression qu'il considére l'année en number alors que c'est (évidemment) du text au niveau mois.

    Ca se confirme d'ailleurs car si je tente :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    MY_INDICATOR (
      MY_INDICATOR = IF (Année == "Jan") 
             blabla ;
    )
    Il me répond :

    Error: 1200354 Error compiling formula for [MY_INDICATOR] (line 24): expected type [NUMBER] found [STRING] (["Jan"]) in function []

  7. #7
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 281
    Points : 11 737
    Points
    11 737
    Par défaut
    Oui, en fait le IF travaille toujours sur la valeur des membres, jamais sur des métadonnées. Suite à la suggestion de bulgom, je me suis dit que le @SUBSTRING devrait arriver à le forcer, mais non.
    Antoun
    Expert Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

  8. #8
    Membre régulier
    Homme Profil pro
    Consultant SI
    Inscrit en
    Février 2011
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Consultant SI
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2011
    Messages : 63
    Points : 92
    Points
    92
    Par défaut
    Pas grave.

    En tous cas je te confirme que ton :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fix(@match(Année, "????_jan"))
    marche bien et je marche donc résolu.

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

Discussions similaires

  1. [XL-2003] Recherche d'une cellule contenant une chaine de caractere..
    Par visto94 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 17/09/2010, 13h28
  2. Réponses: 1
    Dernier message: 24/01/2008, 17h30
  3. Réponses: 3
    Dernier message: 12/10/2006, 13h23
  4. Recherche cellule contenant une chaine
    Par the java lover dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 14/11/2005, 15h37

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