Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Business Objects > Deski
Deski Forum d'entraide Deski (client lourd)
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 10/10/2006, 15h14   #1
Invité de passage
 
Inscription : octobre 2006
Messages : 4
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 4
Points : 2
Points : 2
Par défaut Utiliser un fichier externe dans une condition

J'utilise Business Objects (5.1 ou 6.0) pour requêter dans des gisements de données.

Il m'arrive souvent de disposer d'une liste de valeurs (numéros de client ou références) pour lesquelles j'ai besoin d'aller chercher des détails dans mes bases.

Avec BO, si je n'ai que quelques valeurs dans ma liste, je la copie colle dans une condition :
numéro de client dans liste "CLI001;CLI543;CLI865;CLI665"

Par contre, si j'ai 85000 valeurs dans ma liste, comment faire? Est-il possible de puiser les données de ma liste dans un fichier externe?

Autre question similaire : je peux utiliser Web Intelligence pour requêter dans mes bases. J'ai le sentiment qu'il pourrait y avoir davantage de souplesse pour automatiser la construction d'une requête à partir d'un fichier externe. Partant de mon fichier de 85000 valeurs, ça me construirait automatiquement la condition :

numéro de client dans liste "CLI00001;CLI00002;CLI00003;...;CLI00249;CLI00250"
ou
numéro de client dans liste "CLI00251;CLI00252;CLI00253;...;CLI00499;CLI00500"
ou
numéro de client dans liste "CLI00501;CLI00502;CLI00503;...;CLI00749;CLI00750"
ou
etc...

Je n'ai bien entendu pas accès au mode "SQL" de mon BO, dommage...

Merci d'avance s'il existe une solution!
jpl56 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/10/2006, 15h46   #2
Membre Expert
 
Avatar de nuke_y
 
Inscription : mai 2004
Messages : 1 812
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 1 812
Points : 1 609
Points : 1 609
Tu peux utiliser ton fichier comme une 2e source de données et laisser BO faire ce qu'on appelle une lookup table.

Regarde ici pour un fichier excel (mais tu peux utiliser ce que tu veux, par exemple un csv) : http://www.developpez.net/forums/sho...d.php?t=206052
__________________
Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes.

Mon combat pour les droits des consommateurs face aux abus des grandes marques.
nuke_y est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2006, 11h09   #3
Membre Expert
 
Avatar de nuke_y
 
Inscription : mai 2004
Messages : 1 812
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 1 812
Points : 1 609
Points : 1 609
Puisque ça ne marche pas, explorons d'autres pistes.

Si j'ai bien compris ton problème, ta solution serait de mettre cette liste de valeur dans la base de données qui contient tes données.

Quelle est l'architecture de la base dans laquelle tu vient prendre tes données principales ?
__________________
Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes.

Mon combat pour les droits des consommateurs face aux abus des grandes marques.
nuke_y est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2006, 22h59   #4
Invité de passage
 
Inscription : octobre 2006
Messages : 4
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 4
Points : 2
Points : 2
Hélas non, je ne peux pas (du moins je ne pense pas pouvoir) rajouter des données dans cette base d'entreprise (si tout le monde le faisait, ce serait vite le boxon ).

Par contre, ce que je pourrais faire, c'est faire une requête englobante, une requête qui ne renvoie pas toute la base (y'a du monde...), mais qui en renvoie un sous ensemble contenant les 85000 valeurs (dans mon exemple) que je n'aurais qu'à mettre dans la table que je lie...

Une autre solution serait que je me fasse un automate Windows (je m'en suis déjà fait un dans un tout autre domaine) avec un outil comme Wintask. Le script prendrait ma liste par paquets de 250 et construirait la requête que j'ai mise dans mon exemple par émulation de clics de souris/manipulation d'objets windows.
jpl56 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/10/2006, 10h24   #5
Membre Expert
 
Avatar de nuke_y
 
Inscription : mai 2004
Messages : 1 812
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 1 812
Points : 1 609
Points : 1 609
Le gros problème que je vois c'est surtout que 85000 valeurs en condition ça va te faire mal en terme de délais.

Si tu veux VRAIMENT essayer avec ces 85000 valeurs en condition, tu peux soit modifier le code SQL de BO à la main soit créer un objet dans l'univers qui retourne 1 mais qui ajoute à la clause WHERE un filtre sur tes 85000 valeurs.

Maintenant je ne connais pas la limite en terme de nombre de caractères d'un objet BO (ni d'une requête).

La meilleure solution reste quand même pour moi le fait de ramener un sous-ensemble de tes données globales qui comprend les 85000 valeurs, puis de filtrer dans BO.

Pour te rassurer, on a souvent ce genre de problème avec les outils de reporting, mais on les règle souvent avec un Datawarehouse.

Tiens d'ailleurs pendant que j'y pense : pourquoi ne pas ramener tes données sous Access (s'il n'y en a pas trop),créer une table dans Access qui contient tes 85000 lignes puis faire ton rapport BO sur Access et plus sur ta base de production de société ?

C'est le principe d'un datawarehouse, donc je pense que ça peut faire l'affaire.
__________________
Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes.

Mon combat pour les droits des consommateurs face aux abus des grandes marques.
nuke_y est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h18.


 
 
 
 
Partenaires

Hébergement Web