Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Business Objects > Designer
Designer Forum d'entraide Designer (création d'univers, etc.)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/09/2011, 10h54   #1
Membre expérimenté
 
Inscription : juillet 2008
Messages : 757
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 757
Points : 545
Points : 545
Par défaut Borne du smalldatetime dans BO

Bonjour,

En voulant creer un nouvelle univers, je suis bloquée par un probleme que je n'avais pas encore eu
smalldatetime.gif

Pour le moment, dans cet univers, il y a une seule et unique vue qui comporte 2 champs de date.

La fenetre d'erreur apparait des que je veux visualiser le contenu de la table dans le designer
Je ne peux pas faire juste tourner toute la vue en sql parce qu'elle est trop grosse (au final, la vue ramene les prix de tout les articles, pour tout les clients, a toutes les dates. Ce qui est énorme. Et je voudrais l'attaquer avec bo pour récuperer a une date donnée, pour un client donné les prix d'une série d'articles), mais normalement, le designer devrait tronquer quand je lui demande de visualiser le contenu de la table non?

J'ai fais la vue moi meme en SQL et le format de date utilisé en sql est du smalldatetime.
En sql, quand je test la vue, elle fonctionne et je n'ai pas de soucis de conversion.
J'ai testé en prenant le meme code de la vue mais en faisant des select distinct et en gardant que les champs date et j'ai uniquement des dates valides

Est-ce que le smalldatetime de SQL 2005 (01/01/1900 -> 06/06/2079) n'a pas les memes bornes que le smalldatetime de BO?

Pourquoi est-ce qu'il me parle de char? les données sotn déja en tant que date dans SQL, pourquoi est-ce qu'elles passeraient en char a un moment?

Est-ce que quelqu'un aurait une idée?

Merci d'avance

Emmanuelle
EmmanuelleC est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 11h03   #2
Modérateur
 
Avatar de djam21
 
Homme
Consultant en Business Intelligence
Inscription : janvier 2006
Messages : 560
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Luxembourg

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

Informations forums :
Inscription : janvier 2006
Messages : 560
Points : 862
Points : 862
Envoyer un message via Skype™ à djam21
Salut,

Je ne connais trop SQL Server. Mais il semble qu'il ne s'agisse pas d'une erreur BO mais dans ta DB...

Va sur Toad par exemple et fais un Select de ton champ pour voir...

S'il y a une erreur, c'est qu'il y a des enregistrements KO dans ta DB...
djam21 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 12h49   #3
Membre expérimenté
 
Inscription : juillet 2008
Messages : 757
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 757
Points : 545
Points : 545
Je ne sais pas faire ca facilement parce que c'est trop gros, j'ai un time out

En gros, un prix chez nous peut venir de 8 sources différentes (le tarif ou 7 types de remise différentes). Je fais une view pour chacunes de 8 sources et puis une vue qui fait l'union

La masse vient du tarif (la vue doit etre capable de calculer pour chaque client, chaque date et chaque n° d'article le prix)

Par contre, si je fais
Code :
1
2
3
SELECT mon_champ
FROM ma_vue
WHERE un_client_en_particulier
la j'ai les bien les prix du client (pour tout les articles a toutes les dates, et ca donne un résultat de l'ordre de 140 k lignes par client pour 8s de temps d'exécution)

Qu'est-ce que j'ai comme méthode pour essayer de comprendre ou est le probleme?

Normalement, les dates viennent de l'erp (qui impose que ca soit effectivement une date) et j'ai les des recherches dans les 8 sources, je ne trouve plus de date hors borne (il y avait des dates qui allaient jusqu'a 2100, mais j'ai changé ca)
EmmanuelleC est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 13h23   #4
Modérateur
 
Avatar de djam21
 
Homme
Consultant en Business Intelligence
Inscription : janvier 2006
Messages : 560
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Luxembourg

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

Informations forums :
Inscription : janvier 2006
Messages : 560
Points : 862
Points : 862
Envoyer un message via Skype™ à djam21
Tu fais un Select date from matable

Tu vois comment il réagit... Si çà ne passe pas, tu as des dates KO.

Si çà passe, regarde comment est ta date par défaut. Lorsque le champ n'est pas alimenté, qu'y met-on ? La valeur vide ? Si oui voilà l'erreur.

BO s'attend à un champ date. Si par défaut c'est à vide, BO plante.
djam21 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 15h00   #5
Membre expérimenté
 
Inscription : juillet 2008
Messages : 757
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 757
Points : 545
Points : 545
Je viens de vérifier, il n'y a pas de date nulle (c'est des remises, elles ne sont normalement pas supposée pouvoir s'appliquer sans date, il doit théorie avoir systématiquement une date de début et une date de fin). Dommage, ca m'aurait bien arrangée que ca soit ca le probleme


J'ai découpé le probleme en plus petits troncons
J'ai mis les view intermedaire dans BO et j'ai le probleme sur la view tarif et sur la view abonnement.

La view tarif est trop grosse mais la view abonnement est plus petite

Dans la view abonnement, j'ai copié le code qui s'occupe de la date et j'en ai fait une view tres simple
Code :
1
2
3
SELECT DISTINCT CONVERT(smalldatetime, '01/01/' + CONVERT(varchar, annee)) AS du, CONVERT(smalldatetime, '31/12/' + CONVERT(varchar, annee)) AS au
FROM        ABON
WHERE     (annee>= 1997)
Si je met cette vue bidon dans BO, j'ai déja le probleme

Si par contre je fais select * sur cette view en sql, ca marche parfaitement (je peux utiliser les fonctions qui manpules les dates)

La view tarif et la view abonnement on en commun que je dois manipuler la date (dans abonnement, je la crée a partir de l'année et dans tarif, si la date est >=31/12/2050, je met 31/12/2050 a ma place)

C'est surement ma facon de les manipuler qui pose probleme a BO, mais pourquoi
Et comment est-ce que je peux manpiluer les date en sql pour que ca convienne au designer?
EmmanuelleC est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2011, 16h24   #6
Modérateur
 
Avatar de djam21
 
Homme
Consultant en Business Intelligence
Inscription : janvier 2006
Messages : 560
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Luxembourg

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

Informations forums :
Inscription : janvier 2006
Messages : 560
Points : 862
Points : 862
Envoyer un message via Skype™ à djam21
As-tu essayé de transformer tes smalldatetime en date tout court ?

Regardes si çà marche...

C'est peut-être juste çà... Ca a déjà fonctionné avec SmallDateTime sur BO ?
djam21 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 09h39   #7
Membre expérimenté
 
Inscription : juillet 2008
Messages : 757
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 757
Points : 545
Points : 545
Ca a déja fonctionné avec des tables qui ont des colones en smalldatetime mais j'ai l'impression que c'est pas la meme chose pour bo une view ou une table : j'ai testé en faisant un table bidon avec juste un champ date que je rempli avec un update en utilisant convert comme pour ma view et ca fonctionne

C'est bien possible que ca soit la premiere fois que j'essaie de faire pointer bo sur une view ou j'ai transformé des dates.

Avec sql server 2005 j'ai apparement acces aux datetime et au smalldatetime uniquement et ca ne marche avec aucun des deux (toujours en testant avec ma petite vue ultra blasique)

je vais finir par stocker mes dates en format varchar et par reconvertir en Bo si ca continue
EmmanuelleC est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 11h18   #8
Membre expérimenté
 
Inscription : juillet 2008
Messages : 757
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 757
Points : 545
Points : 545
J'ai finalement contourné mon probleme.

Il y avait 2 view qui manipulaient des dates, je m'en suis servie pour faire des tables intermédaire ou je stock mes dates et puis je pars de ces tables intermédaires pour faire la suite du boulot et la BO est d'accord

Pour une raison qui m'échape completement, le designer refuse de traiter une view avec des dates recomposées.
Et le pire, c'est que quand j'ajoute la view, il détecte correctement que les champs sont des dates, donc je ne vois vraiment pas pourquoi il s'emmele les pinceaux

Mais bon, ca marche c'est le principal

Merci beaucoup djam21 pour ton aide
EmmanuelleC est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2011, 13h51   #9
Modérateur
 
Avatar de djam21
 
Homme
Consultant en Business Intelligence
Inscription : janvier 2006
Messages : 560
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Luxembourg

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

Informations forums :
Inscription : janvier 2006
Messages : 560
Points : 862
Points : 862
Envoyer un message via Skype™ à djam21
Bizarre effectivement... enfin tu as solutionné ton problème. C'est le principal...

@+
djam21 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2011, 14h44   #10
Membre expérimenté
 
Inscription : juillet 2008
Messages : 757
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 757
Points : 545
Points : 545
Pour information, on me souffle dans l'oreillette que BO n'aime pas les vues qui utilisent des fonctions parce que ces dernieres sont tres consomatrices en ressources (si j'ai bien compris l'explication, au lieu de pouvoir utiliser les index, il est obligé de calculer toutes les fonctions d'abbord)

Reste juste a penser a mettre en message d'erreur en rapport avec la choucroute
EmmanuelleC est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2011, 14h46   #11
Responsable Business Intelligence
 
Avatar de TomDuBouchon
 
Homme Thomas Cochin
Consultant en Business Intelligence
Inscription : juin 2009
Messages : 3 281
Détails du profil
Informations personnelles :
Nom : Homme Thomas Cochin
Âge : 29
Localisation : France, Seine et Marne (Île de France)

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

Informations forums :
Inscription : juin 2009
Messages : 3 281
Points : 5 703
Points : 5 703
C'est sûr que les appels aux fonctions ce n'est pas super conseillé... Le mieux restant effectivement de générer une table avec les valeurs souhaitées directement via l'ETL ou les scripts d'alimentation.
__________________
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
Vous souhaitez contribuer à la rubrique BI ? Contactez-moi ou un autre responsable de l'équipe BI par MP.
TomDuBouchon est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/10/2011, 09h13   #12
Membre expérimenté
 
Inscription : juillet 2008
Messages : 757
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 757
Points : 545
Points : 545
Le probleme c'est que j'essayais de réduire le plus possible le nombre de table a maintenir par la suite (et comme je pars de table existantes utilisées dans des process d'autres personnes, je ne peux pas trop les bidouiller)

Donc je suis passée un min et max de date en faisant une jointure sur base de l'année avec ma table calendrier

Pour BO (ou pour sql?), c'est moins lourd de faire une agrégation sur 365 jours que de faire un convert?
EmmanuelleC est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h48.


 
 
 
 
Partenaires

Hébergement Web