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 :

Création d'objet avec Si.Alors.Sinon en Designer [Vxi3]


Sujet :

Designer

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 72
    Points : 47
    Points
    47
    Par défaut Création d'objet avec Si.Alors.Sinon en Designer
    Bonjour,

    Dans Deski, je me suis créé une variable "Actif O/N" définissant si un client est actif Oui/Non quand sa Date de dernière facture (objet déjà existant) est vieille de plus de 365 jours.
    Ceci par "ACTIF O/N" : = Si JoursEntre(<Date Dernière Facture> , DateActuelle())>365 Alors "N" Sinon"O"

    Mais voilà t'y pas que nos commerciaux veulent un fichier Excel de leur fichier Client avec la mention O ou N en champ Actif . Et évidemment cette information n'existe pas dans l'univers.
    Comme l'exportation dans Deski n'est possible qu'à partir du gestionnaire des données (c'est à dire d'un fournisseur de donnée comportant des objets d'univers mais excluant par définition les variables créées en Deski) , je me vois contraint de créer dans DESIGNER un nouvel objet Dimension équivalent à ce que je sais faire en Deski par la formule ci-dessus.

    Mais c'est là que je sèche dans la création de l'objet "Actif O/N" dans Designer où la syntaxe de la formule et les fonctions à disposition sont différentes de Deski.

    Si quelqu'un pouvait m'aider à créer dans Designer mon objet "Actif O/N" équivalent à la formule Deski ci-dessus, où m'orienter vers un bon support, Tutorial, FAQ de creation d'objet en Designer.

    Merci d'avance

  2. #2
    Membre averti

    Inscrit en
    Juillet 2007
    Messages
    391
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 391
    Points : 443
    Points
    443
    Par défaut
    Hello,

    au risque de dire une grosse c..., Deski en XI 3.1 (mais aussi en 3 sauf erreur) permet d'enregistrer un rapport ou un onglet au format Excel, pas besoin de passer par un export du fournisseur de données ...

    cela résoudrai ton problème.

    sinon, dans le designer, la codif dépend du type de SGBD qu'il y a derrière : Oracle, SQL Server, etc ...

  3. #3
    Rédacteur
    Avatar de TomDuBouchon
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juin 2009
    Messages
    3 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 343
    Points : 5 848
    Points
    5 848
    Par défaut
    Comme l'exportation dans Deski n'est possible qu'à partir du gestionnaire des données
    Tu as pensé à faire "Fichier > Enregistrer sous" et sélectionner dans l'extension "Fichier Microsoft Excel (.xls)"
    Pensez à consulter les FAQs BI, les Tutoriels BI et à effectuer des Recherches.
    Un message vous a aidé ? Votez en cliquant sur
    Votre problème est résolu ? Merci de l'indiquer en cliquant sur le bouton

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 72
    Points : 47
    Points
    47
    Par défaut
    Bonsoir,

    J'avais pas pensé à "enregistrer sous" et je m'en souviendrai car çà doit servir régulièrement.

    Par contre dans le cas de mon état actuel, j'utilise trois lignes d'en-tête de colonne (donc 3 champs superposés par colonne) pour faire tenir toute les infos clients en 1 seule largeur de page. Et donc excel ramène aussi 3 données différentes superposées par colonne , ce qui ne sera pas utilisable par les commerciaux (tris, ...).

    Je vais donc bien devoir écrire ma formule en langage Oracle dont je connais déjà un bout : DateDerFact > to_char(sysdate-365,'YYYYMMDD')

    J'espere revenir demain avec ma formule sous le bras.
    Bonne soirée à vous.

  5. #5
    Rédacteur
    Avatar de TomDuBouchon
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juin 2009
    Messages
    3 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 343
    Points : 5 848
    Points
    5 848
    Par défaut
    Effectivement ta formule me semble correcte... Mais je ne vois pas pourquoi tu dois la créer dans le designer... Etant donné qu'il faudra de toute façon que tu fasses un nouveau rapport pour faire apparaitre toutes les en-têtes en une seule ligne.
    Pensez à consulter les FAQs BI, les Tutoriels BI et à effectuer des Recherches.
    Un message vous a aidé ? Votez en cliquant sur
    Votre problème est résolu ? Merci de l'indiquer en cliquant sur le bouton

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 72
    Points : 47
    Points
    47
    Par défaut
    Si j'arrive à créer cette variable en Designer, alors l'extraction Excel via Deski / Gestion des Données / bouton "Exporter", crée un fichier excel avec une colonne par objet du fournisseur (sans tenir compte d'aucun rapport contrairement à un 'Enregistrer sous' format excel).

    Malheureusement je n'arrive toujours pas à définir dans Designer mon objet 'Actif O/N' en langage Oracle 10g

    voir fichier attaché

    et si quelqu'un connaissait la bonne syntaxe pour faire ma comparaison de Date de Dernière Facture avec la date du jour pour ramener 'O' ou 'N' en utilisant les commandes CASE ou bien DECODE ou une autre plus adequate, alors j'arrêterais de tourner en rond entre les virgules, parenthèses, expression manquante,....

    SELECT CLT.DRN_FAC,
    CASE WHEN CLT.DRN_FAC > to_char(sysdate-365,'YYYYMMDD') THEN 'O'
    WHEN CLT.DRN_FAC > to_char(sysdate-365,'YYYYMMDD') THEN 'N'
    ELSE 'Z' AS "Actif O/N"
    END
    FROM CLT;

    je croise les doigts...
    Images attachées Images attachées  

  7. #7
    Rédacteur
    Avatar de TomDuBouchon
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juin 2009
    Messages
    3 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 343
    Points : 5 848
    Points
    5 848
    Par défaut
    OK, effectivement ça sera plus simple comme ça...
    Pour ta formule, ça doit donner quelquechose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CASE WHEN CLT.DRN_FAC > to_char(sysdate-365,'YYYYMMDD') THEN 'O' ELSE 'N' END
    Inutile de mettre un 'AS', BO prendra le nom de l'objet comme libellé de colonne.

    Par contre, faire une comparaison de date en alphanumérique c'est assez moyen... Je serais personnellement plutôt partisan d'appliquer la formule suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CASE WHEN to_date(CLT.DRN_FAC,'YYYYMMDD') > to_date(to_char(sysdate-365,'YYYYMMDD'),'YYYYMMDD') THEN 'O' ELSE 'N' END
    Pensez à consulter les FAQs BI, les Tutoriels BI et à effectuer des Recherches.
    Un message vous a aidé ? Votez en cliquant sur
    Votre problème est résolu ? Merci de l'indiquer en cliquant sur le bouton

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 72
    Points : 47
    Points
    47
    Par défaut
    Je viens de créer mon objet dans Designer suivant ta deuxième formule (en date) et l'analyse de l'objet est un succès dans Designer.

    Mais pas de bol, alors que je m'apprétais à applaudir après avoir ramené l'objet dans mon fournisseur Deski, voilà que l'exécution de la requète de ce fournisseur coince : Exception: DBD, ORA-01843: ce n'est pas un mois valide
    State: N/A !!!

    Je vais donc essayer la solution en alpha (bien que boîteuse).

    Si tu as une idée sur la raison de cet échec ou une proposition équivalente en date avec DECODE() ?

    Merci Tom

  9. #9
    Rédacteur
    Avatar de TomDuBouchon
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juin 2009
    Messages
    3 343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 343
    Points : 5 848
    Points
    5 848
    Par défaut
    C'est un problème de format de date... Sous quel format est renseigné CLT.DRN_FAC dans ta BDD ?
    Pensez à consulter les FAQs BI, les Tutoriels BI et à effectuer des Recherches.
    Un message vous a aidé ? Votez en cliquant sur
    Votre problème est résolu ? Merci de l'indiquer en cliquant sur le bouton

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 72
    Points : 47
    Points
    47
    Par défaut
    Tu avais raison Tom ma donnée était format DATE et DDMMYYYY .
    Cà marche maintenant avec :
    CASE WHEN CLT.DRN_FAC > to_date(to_char(sysdate-365,'DDMMYYYY'),'DDMMYYYY') THEN 'O' ELSE 'N' END

    Avec mes remerciement, j'en profite pour te demander :

    J'ai 2 tables à lier. Le champ clé de la première se trouve être la concaténation des 2 champs clés de la seconde table.
    Est-il possible dans Designer de créer un champ additionnel dans ma seconde table (seulement 40 enregistrements) qui soit le résultat de la concaténation des 2 champs de cette même table. Ceci pour ne plus avoir à faire qu'une liaison simple ?

    A moins que tu trouves plus judicieux de le faire en amont dans l'ETL ?

    PS: Y a-t-il un moyen de suggérer la mise en FAQ d'un sujet de discution 'résolu' ?
    Je ne pense pas aux miens mais à un ou deux qui m'ont bien servi et me semblent utiles.

    Sur ce, je vous souhaite à toute l'équipe un excellent WE !

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 72
    Points : 47
    Points
    47
    Par défaut
    J'ai finalement résolu avec une jointure complexe de type CONCAT()
    Merci

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

Discussions similaires

  1. [1.x] Création d'objets avec Embeded form
    Par Adesfire dans le forum Symfony
    Réponses: 4
    Dernier message: 08/01/2010, 16h07
  2. création objet avec l ouverture d un fichier excel
    Par levac dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 30/07/2007, 15h51
  3. SQL Server : ISNULL avec Si/Alors/Sinon
    Par Goldorak2 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 16/06/2006, 16h36

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