Pour nos reportings et analyses, que ce soit sur des données réelles ou prévisionnelles, nous utilisons le plus souvent des cubes dédiés aux reportings qui ont été alimentés à partir d’autres cubes, voire de requêtes SQL d’interrogation et extraction.

Planning Analytics offre la possibilité de pré-programmer des chemins d’analyse exploratoire vers plus de détails, les fameux Drill-Through.

Il va falloir pour cela :

  • Indiquer à Planning Analytics que l’on veut créer ces accès au détail
  • Développer un Processus d’accès au détail (Source=SQL ou Vue de Cube)
  • Définir quelles cellules du cube origine seront exposées à cet accès au détail

Posons préalablement un cas de figure qui nous servira d’exemple :

Nous allons alimenter dans un cube, les quantités et chiffres d’affaires de vente, par Mois et par Produit puis allons décrire une règle de Drill-Throug qui nous permettra de consulter le détail de toutes les lignes de ventes correspondant à la valeur d’une cellule donnée.

Nous allons nous inspirer d’une base SQL d’exemple : la base SqlServer GOSALES, bien connue de nos utilisateurs Cognos Analytics.

Création et alimentation d’une dimension « Dim_Produit »

L'accès au détail, ou Drill Through dans Planning Analytics

Par utilisation d’une extraction SQL

select
Cast( PRO.Product_Number as varchar(10) ),
PRONAME.Product_name,
Cast( PRO.product_brand_code as varchar(10) ),
BRD.Product_brand_fr
From
[gosales].[PRODUCT] PRO
Join [gosales].[PRODUCT_NAME_LOOKUP] PRONaME On ( PRO.Product_number=PRONAME.Product_number and PRONAME.product_language='FR')
Join [gosales].[PRODUCT_BRAND] BRD On (PRO.product_brand_code=BRD.product_brand_code)

Création et alimentation du Cube Cube_Ventes_Reelles

L'accès au détail, ou Drill Through dans Planning Analytics

Alimentation par extraction SQL

Select
Cast(Year(ship_date) as varchar) Annee,
Substring(Convert(Varchar, ship_date, 101),1,2) Mois,
Cast (Product_Number as Varchar) Product_nUMBER,
Sum(Quantity) as Qte,
Sum(Quantity * Unit_Sale_Price) as CA
From
[gosales].[ORDER_DETAILS]
Group By
Cast(Year(ship_date) as varchar),
Substring(Convert(Varchar, ship_date, 101),1,2) ,
Product_Number

Avec, bien-sûr, un résultat qui dépasse nos espérances les plus folles !

L'accès au détail, ou Drill Through dans Planning Analytics

Création de l’accès au détail

Nous désirons visualiser toutes les lignes de ventes présentes dans la base de données qui ont contribué à la valeur d’une cellule.

La requête SQL devra être du genre :

Select Ventes.*
from
[gosales].[ORDER_DETAILS] Ventes
Join [gosales].[PRODUCT] PRO On (PRO.Product_Number = Ventes.Product_number)
Join [gosales].[PRODUCT_NAME_LOOKUP] PRONaME On ( PRO.Product_number=PRONAME.Product_number and PRONAME.product_language='FR')
Join [gosales].[PRODUCT_BRAND] BRD On (PRO.product_brand_code=BRD.product_brand_code)
Where
Filtre Annee (celle de la cellule)
Filtre Mois (celui de la cellule)
Filtre Produit (celui de la cellule)

Réfléchissons aux filtres :

Selon si notre vue de cube affiche le code ou le libellé, nous pourrons avoir :

Dim_Produit : Code ou Libellé Produit , Code ou Libellé Branche
Ventes.Product_Number = Dim_Produit
Ventes.Product_Number + ' ' +ProName.Product_Name= Dim_Produit
PRO.product_brand_code = Dim_Produit
PRO.product_brand_code + ' ' + BRD.Product_brand_fr = Dim_Produit
Dim_Annee
Year(ship_date) = Dim_Annee
Dim_Mois : Le code (01,02,03, …) ou le libellé (Janvier, Février, Mars, …)
UPPER( (Format( Ship_Date, 'MMM', 'fr-FR')) ) = Upper(Dim_Mois)
Month(Ship_Date) = Dim_Mois

Allons-y !

La création du processus d’accès au détail

Sur le cube_Ventes_Reelles : Clique Droit > Explorer > Créer un processus de détail

L'accès au détail, ou Drill Through dans Planning Analytics

Que nous appellerons « Lignes_Ventes » et qui aura une requête SQL comme source de données.

L'accès au détail, ou Drill Through dans Planning Analytics

Jetons un coup d’œil aux paramètres : Nous verrons que nous avons déjà, automatiquement, tout ce qu’il nous faut.

L'accès au détail, ou Drill Through dans Planning Analytics

À des fins de simplification des tests, nous allons renseigner nos propres valeurs par défaut.

L'accès au détail, ou Drill Through dans Planning Analytics

Écrivons ensuite la requête :

Select Ventes.*
from
[gosales].[ORDER_DETAILS] Ventes
Join [gosales].[PRODUCT] PRO On (PRO.Product_Number = Ventes.Product_number)
Join [gosales].[PRODUCT_NAME_LOOKUP] PRONaME On ( PRO.Product_number=PRONAME.Product_number and PRONAME.product_language='FR')
Join [gosales].[PRODUCT_BRAND] BRD On (PRO.product_brand_code=BRD.product_brand_code)
Where
Year(ship_date) = '?Dim_Annee?'
And (
Ventes.Product_Number = '?Dim_Produit?'
OR
Cast(Ventes.Product_Number as Varchar) + ' ' +ProName.Product_Name = '?Dim_Produit?'
OR
PRO.product_brand_code = '?Dim_Produit?'
OR
Cast(PRO.product_brand_code as Varchar) + ' ' +BRD.Product_brand_fr = '?Dim_Produit?'
)
ANd UPPER( (Format( Ship_Date, 'MMMM', 'fr-FR')) ) = Upper('?Dim_Mois?')

Lorsque nous effectuons un aperçu, la requête fonctionne.

L'accès au détail, ou Drill Through dans Planning Analytics

Et nous pouvons apercevoir, dans l’Epilog, l’instruction sibylline :

L'accès au détail, ou Drill Through dans Planning Analytics

Définition des cellules soumises au Drill-through

L'accès au détail, ou Drill Through dans Planning Analytics

Sur le cube_Ventes_Reelles : Clique Droit > Explorer > Créer des règles de détail

 Il n’y a plus qu’à tester !

L'accès au détail, ou Drill Through dans Planning Analytics

 La liste des lignes de ventes s’affiche, que vous pouvez même exporter en .csv !

L'accès au détail, ou Drill Through dans Planning Analytics

Et voilà, vous savez tout ! Merci d’avoir suivi ce tuto et à bientôt pour de nouvelles découvertes !

Vous souhaitez bénéficier d'experts, de développeurs, ou d'une formation sur Planning Analytics ? Rendez-vous sur la page Contact !