Compétences Business Objects - 2014



Documents pareils
Département Génie Informatique

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

Bases de données relationnelles

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

SQL Historique

Les bases de données

Bases de Données relationnelles et leurs systèmes de Gestion

SAP BusinessObjects Web Intelligence (WebI) BI 4

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

BD51 BUSINESS INTELLIGENCE & DATA WAREHOUSE

TP Contraintes - Triggers

A QUOI SERVENT LES BASES DE DONNÉES?

Le Langage De Description De Données(LDD)

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

SQL. Oracle. pour. 4 e édition. Christian Soutou Avec la participation d Olivier Teste

Prise en main du BusinessObjects XI R2 Service Pack 2/ Productivity Pack

Le Langage SQL version Oracle

Introduction à Business Objects. J. Akoka I. Wattiau

Introduction : présentation de la Business Intelligence

Notes de cours : bases de données distribuées et repliquées

TP3 : Creation de tables 1 seance

Langage SQL : créer et interroger une base

DEVAKI NEXTOBJET PRESENTATION. Devaki Nextobjects est un projet sous license GNU/Public.

Modélisation et Gestion des bases de données avec mysql workbench

Création et Gestion des tables

Auto-évaluation Oracle: cours de base

Historisation des données

Objectif. Participant. Prérequis. Oracle BI Suite EE 10g R3 - Développer des référentiels. 5 Jours [35 Heures]

Intégrité des données

Magasins et entrepôts de données (Datamart, data warehouse) Approche relationnelle pour l'analyse des données en ligne (ROLAP)

Olivier Mondet

Devoir Data WareHouse

Le langage SQL (première partie) c Olivier Caron

Procédures Stockées WAVESOFT ws_sp_getidtable Exemple : ws_sp_getnextsouche Exemple :... 12

Application web de gestion de comptes en banques

CREATION WEB DYNAMIQUE

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

AGRÉGATION «ÉCONOMIE ET GESTION»

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

Partie 0 : Gestion des tablespace et des utilisateurs... 3

Master Exploration Informatique des données DataWareHouse

SQL sous SqlServer OLIVIER D. DEHECQ Olivier 0

SQL SERVER 2008, BUSINESS INTELLIGENCE

CATALOGUE DE FORMATIONS BUSINESS INTELLIGENCE. Edition 2012

Bases de Données Avancées

MANAGEMENT DES SERVICES INFORMATIQUES

I. MySQL : Serveur et SGBD

Introduction au Système de Gestion de Base de Données et aux Base de Données

Gestion des utilisateurs et de leurs droits

A.E.C. GESTION DES APPLICATIONS TECHNOLOGIE DE L'INFORMATION LEA.BW

Le "tout fichier" Le besoin de centraliser les traitements des fichiers. Maitriser les bases de données. Historique

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

PHP 5. La base de données MySql. A. Belaïd 1

Construction d un EDD avec SQL 2008 R2. D. Ploix - M2 Miage - EDD - Création

Gestion de base de données

OpenPaaS Le réseau social d'entreprise

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010

Introduction à la B.I. Avec SQL Server 2008

Partie II Cours 3 (suite) : Sécurité de bases de données

Cours Bases de données 2ème année IUT

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

Cours: Administration d'une Base de Données

1 Position du problème

A QUOI SERVENT LES BASES DE DONNÉES?

Pour les débutants. langage de définition des données

Théories de la Business Intelligence

I4 : Bases de Données

Cours SQL. Base du langage SQL et des bases de données

CATALOGUE DE FORMATIONS SAP BUSINESS OBJECTS. Edition 2012

ETL Extract - Transform - Load

INSTITUT NATIONAL DES TELECOMMUNICATIONS CONTROLE DES CONNAISSANCES. 2. Les questions sont indépendantes les unes des autres.

1. Base de données SQLite

NF26 Data warehouse et Outils Décisionnels Printemps 2010

Gestion des transactions et accès concurrents dans les bases de données relationnelles

Administration des bases de données. Jean-Yves Antoine

CATALOGUE DE FORMATIONS SAP BUSINESS OBJECTS. Edition 2013

Business Intelligence simple et efficace

SQL Server 2012 Implémentation d'une solution de Business Intelligence (Sql Server, Analysis Services...)

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

Offre Décisionnel / CONSEIL, SOLUTIONS DE TRANSFORMATION ET SERVICES IT. Offre Décisionnel

Plan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO S2-IO2 Bases de données: Jointures, Transactions

Skills Technology Software PARTENAIRE TECHNOLOGIQUE DE VOTRE DÉVELOPPEMENT

CRÉER UNE BASE DE DONNÉES AVEC OPEN OFFICE BASE

Projet Business Object

2 Serveurs OLAP et introduction au Data Mining

La Geo-Business Intelligence selon GALIGEO avec 26/10/2005 1

1 Introduction. Business Intelligence avec SharePoint Server 2010

Plan. Bases de Données. Sources des transparents. Bases de SQL. L3 Info. Chapitre 4 : SQL LDD Le langage de manipulation de données : LMD

LANDPARK ACTIVE DIRECTORY OPEN/LDAP

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes

MODE OPERATOIRE CORIM PROGRESS / SECTION MEI. Exploitation Informatique

Cours 3. Développement d une application BD. DBA - Maîtrise ASR - Université Evry

Architecture de la plateforme SBC

Transcription:

Compétences Business Objects - 2014 «Mars-Juin 2014. Réf : Version 1 Page 1 sur 34

Sommaire CONTEXTE DE LA REMISE A NIVEAU EN AUTOFORMATION... 3 1. MODELISATION... 4 1.1 DESCRIPTION FONCTIONNEL DE L'APPLICATION 'AEROCLUB'... 4 1.2 CONSTRUCTION D'UN CONTEXTE BO... 5 1.3 CONSTRUCTION D'UN ALIAS... 8 1.4 CONSTRUCTION D'UN OBJET... 12 2. REPORT DESKTOP INTELLIGENCE... 13 2.1 SECTIONS MAITRE/DETAIL... 13 2.2 PROCESSUS D'EDITION... 14 3. CUBE OLAP... 23 3.1 CONSTRUCTION DU MODELE... 23 3.2 CONSTRUCTION DES HIERARCHIES... 32 3.3 CONSTRUCTION D'UN ETAT OLAP... 33 4. ANNEXE... 34 Réf : Version 1 Page 2 sur 34

CONTEXTE DE LA REMISE A NIVEAU EN AUTOFORMATION Ce document a pour but de recenser les notions fondamentales d'un processus de flux Business Objects avec la partie Designer et la partie Report Desktop Intelligence. La version de BO choisie est la Edge 3.0, appliquée à une Database Oracle 11g. Parmi les notions fondamentales, il convient de tester : - La modélisation dans un Univers - L'optimisation par la suppression de boucle à l'aide des Alias et Contextes notamment - La construction de nouveaux objets et classes - La construction de requêtes - La mise en place de sections et de cumul par critère - La mise en place de hiérarchies - Construction d'un modèle OLAP, Cube Réf : Version 1 Page 3 sur 34

1. MODELISATION Le cas fonctionnel analysé sera celui d'un Aéroclub possédant des appareils à disposition d'instructeurs ayant des adhérents à former. 1.1 DESCRIPTION FONCTIONNEL DE L'APPLICATION 'AEROCLUB' Liste des tables : Adhérent : L'ensemble des adhérents. Un adhérent est autonome pour certains types d'engin. Il a un interlocuteur privilégié (son instructeur suiveur). Un adhérent paye des vols à bord d'un avion. S'il n'est pas autonome, il doit alors être dirigé par un instructeur compétent pour ce vol. Un adhérent peut aussi être un instructeur. Dans ce cas, il n'est pas suivi par un collègue. Il doit être compétent pour certains types d'engins. Sa compétence est incluse dans son autonomie. Avion : L'ensemble des avions. Correspond à la flotte de l'aéro-club. Instructeur : L'ensemble des instructeurs. Un instructeur dirige les vols pour lesquels les adhérents ne sont pas autonomes et qui rentrent dans sa compétence. Il suit aussi des adhérents. Il a un salaire mensuel fixe et aussi un supplément de salaire en fonction de la direction des vols du mois dernier. Type Engin : Les types d'engins disponibles pour les vols et qui rentrent dans l'autonomie des adhérents et dans la compétence des instructeurs. Vol : L'ensemble des vols effectués à bord d'un avion de l'aéro-club par un adhérent sous la direction éventuelle d'un instructeur. IndVol : L'ensemble des vols effectués à bord d'un avion de l'aéro-club par un adhérent sous la direction éventuelle d'un instructeur. Réf : Version 1 Page 4 sur 34

1.2 CONSTRUCTION D'UN CONTEXTE BO Contextes: EXPLOITATION, EST_AUTONOME_POUR, EST_QUALIFIE_POUR EST_AUTONOME_POUR : Il s'agit des avions de l'autonomie d'un adhérent suivi par un instructeur suiveur. EST_QUALIFIE_POUR : Il s'agit des avions de la qualification d'un instructeur. EXPLOITATION : Il s'agit de l'avion concerné par le vol. Réf : Version 1 Page 5 sur 34

Au moment de l'insertion des tables du modèle Oracle, Business Objects génère lui-même une multiplicité de jointures, qui provoquent la génération de boucles multiples. AVANT : La relation instructeur.numadherent/est_autonome_pour.numadherent est inutile APRES, adaptation des relations du contexte EST_AUTONOME_POUR : Réf : Version 1 Page 6 sur 34

Résultats : résolution des boucles 153, 156, etc...sur 500 boucles Suppression des jointures parasites générées par BO : AVANT : Réf : Version 1 Page 7 sur 34

APRES : il reste 1 boucle sur 122 et non plus 500 1.3 CONSTRUCTION D'UN ALIAS Construction de l'alias Histo_vols donnant l'historique complet des vols d'un adhérent Réf : Version 1 Page 8 sur 34

construction du contexte avec l'alias résolution de la dernière boucle avec le contexte histo_vols_adh venant de l'alias histo_vols : Réf : Version 1 Page 9 sur 34

visualiser le contenu : résultat de la visualisation rapide : Réf : Version 1 Page 10 sur 34

construction d'un report simple, possible par l'éditeur de requête : Réf : Version 1 Page 11 sur 34

1.4 CONSTRUCTION D'UN OBJET Objets : TEMPO_VOLS, ANNEE_VOL Table temporaire des vols TEMPO_VOLS : vols avec bonne date vols autonome ou vol dirige par instructeur qualifie Uniquement les adhérents non instructeurs Table des vols ANNEE_VOLS : Les indicateurs annuels des vols dont l'agrégation du nombre de vols par an Remarque : pour l'année, on peut passer par la fonction trunc (date_table, 'YEAR') Ici, il s'agissait de créer 2 objets pour préparer une hiérarchie de temps, mais ces objets doivent normalement être créés sur Oracle sous forme de tables à insérer ensuite dans BO. cf. partie 3 sur le Cube OLAP Réf : Version 1 Page 12 sur 34

2. REPORT DESKTOP INTELLIGENCE 2.1 SECTIONS MAITRE/DETAIL Maitre : Numéro d'instructeur. Réf : Version 1 Page 13 sur 34

2.2 PROCESSUS D'EDITION Réf : Version 1 Page 14 sur 34

Sélection de l'univers ou de la requête SQL SQL : Univers : Réf : Version 1 Page 15 sur 34

Enregistrement en Excel : Construction d'un Etat : drag and drop du select et du where : Réf : Version 1 Page 16 sur 34

double clic de l'opérateur : choix de l'opérande : Réf : Version 1 Page 17 sur 34

soit la requête : OK mais ajout du numéro instructeur donne KO Réf : Version 1 Page 18 sur 34

raison numinstructeur de la classe Histo_vols : l'objet est unknown résolution : réallocation de la bonne table pour cet objet soit la table VOL Réf : Version 1 Page 19 sur 34

Faire 'visualiser le SQL' puis enregistrer Actualiser les données : Réf : Version 1 Page 20 sur 34

format de cellule (ici en numérique) : Réf : Version 1 Page 21 sur 34

possibilité de créer un état maitre/détail : Réf : Version 1 Page 22 sur 34

3. CUBE OLAP Il s'agit de faire une analyse multidimensionnelle du cas aéroclub. Pour cette analyse OLAP, on ne s'intéresse qu'à l'exploitation de l'aéroclub. Le plus petit niveau de détail temporel est la semaine. 3.1 CONSTRUCTION DU MODELE Modélisation en étoile du schéma normalisé Filtrages des données par la création et l'alimentation de la table TEMPO_VOLS. Tables des dimensions : DIM_ENGIN, DIM_ADH et DIM_TEMPS. Table des faits : FAITS_VOLS Tables agrégées : AGG_TOUT_VOLS(id,nbvols,dureecumulee,cainduit,couttotal,marge) Les indicateurs portent sur l'ensemble du recensement des vols. AGG_ANNEE_VOLS(annee,nbvols,dureecumulee,cainduit,couttotal,marge) Les indicateurs annuels des vols. AGG_TYPE_VOLS(typeavion,nbvols,dureecumulee,cainduit,couttotal,marge) Déclinaison des indicateurs par type d'avion. AGG_SUIVEUR_VOLS(numinstructeur,nbvols,dureecumulee,cainduit,couttotal,marge) Déclinaison des indicateurs par instructeur suiveur. AGG_SUIVEUR_VOLS(numinstructeur,nbvols,dureecumulee,cainduit,couttotal,marge) Déclinaison des indicateurs par instructeur suiveur. Réf : Version 1 Page 23 sur 34

Modèle Physique Oracle 11g : DROP TABLE FAITS_VOLS; DROP TABLE DIM_ENGIN; DROP TABLE DIM_ADH; DROP TABLE DIM_TEMPS; CREATE TABLE DIM_ENGIN( numavion VARCHAR(32) CONSTRAINT dim_engin_pkey PRIMARY KEY, typeavion VARCHAR(32) NOT NULL) ; CREATE TABLE DIM_ADH( numadherent NUMBER(6) CONSTRAINT dim_adh_pkey PRIMARY KEY, numinstructeur NUMBER(6) NOT NULL, nomcompletadherent VARCHAR(32) NOT NULL, nomcompletinstructeur VARCHAR(32) NOT NULL ); CREATE TABLE DIM_TEMPS( idtps NUMBER(6) CONSTRAINT dim_temps_pkey PRIMARY KEY, semaine VARCHAR(2) not null, libelle_semaine VARCHAR(32) not null CONSTRAINT sem_uq UNIQUE, mois VARCHAR(2) not null, libelle_mois VARCHAR(32) not null, mois_en_lettre VARCHAR(32) not null, annee VARCHAR(4) not null ); Réf : Version 1 Page 24 sur 34

DROP TABLE TEMPO_VOLS; CREATE TABLE TEMPO_VOLS( NumVol NUMBER(6) not null CONSTRAINT tempo_vols_pkey PRIMARY KEY, NumInstructeur NUMBER(6) null, NumAdherent NUMBER(6) not null, NumAvion VARCHAR(32) not null, DateVol date not null, DureeVol NUMBER(6) not null, CAInduit NUMBER(15,2) not null, CoutTotal NUMBER(15,2) not null, Marge NUMBER(15,2) not null ); DELETE FROM TEMPO_VOLS; INSERT INTO TEMPO_VOLS(NumVol,NumInstructeur,NumAdherent,NumAvion,DateVol,DureeVol,CAIndu it,couttotal,marge) SELECT Numvol,NumInstructeur,NumAdherent,NumAvion,DateVol,DureeVol,CAInduit,CoutTotal,Mar ge FROM IndVol WHERE NumAdherent NOT IN ( ; AND ( NumVol IN ( OR NumVol IN ( ) DROP TABLE FAITS_VOLS; SELECT NumAdherent FROM Instructeur ) SELECT NumVol FROM VOL,AVION WHERE VOL.NumAvion=AVION.NumAvion AND DateVol>=DateMiseEnService AND VOL.NumAdherent IN( SELECT NumAdherent FROM EST_AUTONOME_POUR WHERE TypeAvion=AVION.TypeAvion ) ) SELECT VOL.NumVol FROM VOL,AVION WHERE VOL.NumAvion=AVION.NumAvion AND DateVol>=DateMiseEnService AND (VOL.NumInstructeur) IN ( SELECT NumInstructeur FROM EST_QUALIFIE_POUR WHERE TypeAvion=AVION.TypeAvion ) ) Réf : Version 1 Page 25 sur 34

CREATE TABLE FAITS_VOLS( idtps NUMBER(6), numadherent NUMBER(6), numavion VARCHAR(32), CONSTRAINT faits_vols_pkey PRIMARY KEY(idtps,numavion,numadherent), CONSTRAINT idtps_fkey FOREIGN KEY(idtps) REFERENCES dim_temps(idtps), CONSTRAINT numadh_fkey FOREIGN KEY(numadherent) REFERENCES dim_adh(numadherent), CONSTRAINT numeng_fkey FOREIGN KEY(numavion) REFERENCES dim_engin(numavion), nbvols NUMBER(6) not null, dureecumulee NUMBER(6) not null, cainduit NUMBER(15,2) not null, couttotal NUMBER(15,2) not null, marge NUMBER(15,2) not null ); DROP TABLE AGG_ANNEE_VOLS; CREATE TABLE AGG_annee_VOLS( annee VARCHAR(4) not null, nbvols NUMBER(6) not null, dureecumulee NUMBER(6) not null, cainduit NUMBER(15,2) not null, couttotal NUMBER(15,2) not null, marge NUMBER(15,2) not null ); DROP TABLE AGG_TYPE_VOLS; CREATE TABLE AGG_TYPE_VOLS( typeavion VARCHAR(32) NOT NULL, CONSTRAINT agg_t_vols_pkey PRIMARY KEY(typeavion), nbvols NUMBER(6) not null, dureecumulee NUMBER(6) not null, cainduit NUMBER(15,2) not null, couttotal NUMBER(15,2) not null, marge NUMBER(15,2) not null ); DROP TABLE AGG_SUIVEUR_VOLS; CREATE TABLE AGG_SUIVEUR_VOLS( numinstructeur NUMBER(6), CONSTRAINT agg_s_vols_pkey PRIMARY KEY(numinstructeur), nbvols NUMBER(6) not null, dureecumulee NUMBER(6) not null, cainduit NUMBER(15,2) not null, couttotal NUMBER(15,2) not null, marge NUMBER(15,2) not null ); DROP TABLE AGG_TOUT_VOLS; CREATE TABLE AGG_TOUT_VOLS( Réf : Version 1 Page 26 sur 34

id NUMBER(6), CONSTRAINT agg_tout_vols_pkey PRIMARY KEY(id), nbvols NUMBER(6) not null, dureecumulee NUMBER(6) not null, cainduit NUMBER(15,2) not null, couttotal NUMBER(15,2) not null, marge NUMBER(15,2) not null ); -- Uniquement des adherents non instructeurs DELETE FROM DIM_ADH; INSERT INTO DIM_ADH(numadherent,numinstructeur,nomcompletadherent,nomcompletinstructeur) SELECT A1.numadherent,A1.numinstructeur,concat(concat(A1.prenomadherent,' '),A1.nomadherent),concat(concat(A2.prenomadherent,' '),A2.nomadherent) FROM ADHERENT A1,INSTRUCTEUR, ADHERENT A2 WHERE A1.NumInstructeur=Instructeur.NumInstructeur AND Instructeur.NumAdherent=A2.NumAdherent ; DELETE FROM DIM_TEMPS; CREATE SEQUENCE idtps_seq START WITH 1000 INCREMENT BY 1 NOCACHE NOCYCLE; DROP SEQUENCE idtps_seq; CREATE SEQUENCE idtps_seq START WITH 1 INCREMENT BY 1; INSERT INTO DIM_TEMPS(idtps,semaine,libelle_semaine,mois,libelle_mois,mois_en_lettre,annee) SELECT idtps_seq.nextval, b.* from (select distinct to_char(to_date(datevol),'ww'), concat(to_char(to_date(datevol),'ww'),to_char(to_date(datevol),'year')),to_char(to_d ate(datevol),'mm'), concat(to_char(to_date(datevol),'month'),to_char(to_date(datevol),'year')),'janvier', to_char(to_date(datevol),'yyyy') FROM TEMPO_VOLS GROUP BY to_char(to_date(datevol),'ww'), concat(to_char(to_date(datevol),'ww'),to_char(to_date(datevol),'year')), to_char(to_date(datevol),'mm'), concat(to_char(to_date(datevol),'month'), to_char(to_date(datevol),'year')),'janvier',to_char(to_date(datevol),'yyyy') ORDER BY to_char(to_date(datevol),'ww'), concat(to_char(to_date(datevol),'ww'),to_char(to_date(datevol),'year')), to_char(to_date(datevol),'mm'), concat(to_char(to_date(datevol),'month'), to_char(to_date(datevol),'year')),'janvier',to_char(to_date(datevol),'yyyy') ) b ; Réf : Version 1 Page 27 sur 34

UPDATE DIM_TEMPS SET mois_en_lettre='fevrier' WHERE mois=2; UPDATE DIM_TEMPS SET mois_en_lettre='mars' WHERE mois=3; UPDATE DIM_TEMPS SET mois_en_lettre='avril' WHERE mois=4; UPDATE DIM_TEMPS SET mois_en_lettre='mai' WHERE mois=5; UPDATE DIM_TEMPS SET mois_en_lettre='juin' WHERE mois=6; UPDATE DIM_TEMPS SET mois_en_lettre='juillet' WHERE mois=7; UPDATE DIM_TEMPS SET mois_en_lettre='aout' WHERE mois=8; UPDATE DIM_TEMPS SET mois_en_lettre='septembre' WHERE mois=9; UPDATE DIM_TEMPS SET mois_en_lettre='octobre' WHERE mois=10; UPDATE DIM_TEMPS SET mois_en_lettre='novembre' WHERE mois=11; UPDATE DIM_TEMPS SET mois_en_lettre='decembre' WHERE mois=12; -- Pas de filtre particulier, on prend tous les avions! DELETE FROM DIM_ENGIN; INSERT INTO DIM_ENGIN (NumAvion,typeavion) SELECT NumAvion,TypeAvion FROM Avion ; INSERT INTO FAITS_VOLS(idtps,numadherent,numavion,nbvols,dureecumulee,cainduit,CoutTotal,marge) SELECT TPS.idtps,TV.numadherent,TV.numavion,count(*),sum(TV.DureeVol),sum(TV.CAInduit),sum (TV.CoutTotal),(sum(TV.CAInduit)-sum(TV.CoutTotal))/sum(TV.CAInduit) FROM DIM_TEMPS TPS,TEMPO_VOLS TV WHERE tps.semaine=to_char(to_date(tv.datevol),'ww') and tps.mois=to_char(to_date(tv.datevol),'mm') and tps.annee=to_char(to_date(tv.datevol),'yyyy') GROUP BY tps.idtps,tv.numadherent,tv.numavion ; DELETE FROM AGG_tout_VOLS; INSERT INTO AGG_tout_VOLS(id,nbvols,dureecumulee,cainduit,couttotal,marge) SELECT 1,count(*),sum(DureeVol),sum(CAInduit),sum(CoutTotal),(sum(CAInduit)- sum(couttotal))/sum(cainduit) FROM TEMPO_VOLS ; Réf : Version 1 Page 28 sur 34

DELETE FROM AGG_annee_VOLS; INSERT INTO AGG_annee_VOLS(annee,nbvols,dureecumulee,cainduit,couttotal,marge) SELECT to_char(to_date(datevol),'yyyy'),count(*),sum(dureevol),sum(cainduit),sum(couttotal),( sum(cainduit)- sum(couttotal))/sum(cainduit) FROM TEMPO_VOLS GROUP BY to_char(to_date(datevol),'yyyy') ; DELETE FROM AGG_type_VOLS; INSERT INTO AGG_type_VOLS(typeavion,nbvols,dureecumulee,cainduit,couttotal,marge) SELECT TypeAvion,count(*),sum(DureeVol),sum(CAInduit),sum(CoutTotal),(sum(CAInduit)- sum(couttotal))/sum(cainduit) FROM TEMPO_VOLS,DIM_ENGIN WHERE TEMPO_VOLS.NumAvion=DIM_ENGIN.NumAvion GROUP BY TypeAvion; DELETE FROM AGG_SUIVEUR_VOLS; INSERT INTO AGG_SUIVEUR_VOLS(numinstructeur,nbvols,dureecumulee,cainduit,couttotal,marge) SELECT DIM_ADH.numinstructeur,count(*),sum(DureeVol),sum(CAInduit),sum(CoutTotal),(sum(CAIn duit)-sum(couttotal))/sum(cainduit) FROM TEMPO_VOLS,DIM_ADH WHERE TEMPO_VOLS.NumAdherent=DIM_ADH.NumAdherent GROUP BY DIM_ADH.numinstructeur ; Réf : Version 1 Page 29 sur 34

raccordement des objets informations aux objets des dimensions associées : construction des dimensions avec les fonctions @ Réf : Version 1 Page 30 sur 34

résultats des constructions des dimensions avec les fonctions @ exemple pour le nombre de vols dans la classe 'Faits Vols' : fonction @Agregate_aware @Aggregate_Aware(sum(AGG_TOUT_VOLS.nbvols),sum(AGG_ANNEE_VOLS.nbvols),su m(agg_type_vols.nbvols),sum(agg_suiveur_vols.nbvols),sum(faits_vols.nbvol s)) Réf : Version 1 Page 31 sur 34

3.2 CONSTRUCTION DES HIERARCHIES Les adhérents sont décrits selon la hiérarchie suivante : 'Nom de l'adhérent'->'nom de l'instructeur'. La dimension Avion supporte la hiérarchie 'Numéro d'immatriculation de l'avion'->'type de l'avion' La dimension Temps supporte la hiérarchie temporelle 'Semaine dans l'année'->'mois dans l'année'->'année' La classe 'Faits Vols' permet de regrouper tous les indicateurs concernant les vols. Mois de l'année en français (Dimension Temps) : @Select(Dimension Temps\mois en francais) @Select(Dimension Temps\annee) Concaténation du nom du mois en français avec l'année. Permet de spécifier complètement un mois. Utilisation d'objet concaténé par Business Object avec uniquement des fonctions de concaténation du SGBD. Réf : Version 1 Page 32 sur 34

3.3 CONSTRUCTION D'UN ETAT OLAP Croisements de la dimension Temps avec la dimension 'Faits Vols' afin d'obtenir les indicateurs de Vols par année. Possibilité ensuite de décliner par mois puis par semaine donc. Résultats en report : Réf : Version 1 Page 33 sur 34

Autre état avec mise en place : d'une formule d'agrégat en somme des vols pouvant s'appliquer sur chaque dimension d'un tableau croisé de diagrammes graphiques 4. ANNEXE http://business-intelligence.developpez.com/faq/business-objects/?page=2.4 http://bruno-roman-ruiz.developpez.com/tutoriels/business-objects/fonctions-date/ Ouvrage ENI - Business Objects versions 6.5 et XI - conception, mise en oeuvre, déploiement, maintenance d'univers http://infocentre.pleiade.education.fr/migbcp/docs/univers/support/supportbcp_v6.pdf http://www.club-business-intelligence.fr/ (( http://www.tutoriel-businessobjects.fr/webi-calculer-la-difference-en-pourcentage-entre-2- colonnes-numeriques-dun-tableau/ http://taslimanka.developpez.com/tutoriels/bi/#liii-l http://taslimanka.developpez.com/tutoriels/bi/ )) Réf : Version 1 Page 34 sur 34