DimTemps() – Remplacer les données manquantes d’un historique sous Web Intelligence

Dans ce tutoriel vous apprendrez comment utiliser la fonction DimTemps afin de remplacer les valeurs manquantes d’un historique par des valeurs nulles sous SAP Web Intelligence.

Prérequis :

Contexte :

Vous avez exécuté une requête sous SAP Web Intelligence vous permettant de récupérer le tableau suivant listant les dates de transactions d’un produit avec la quantité achetée pour chacune des dates :

Des transactions n’ont eu lieu que certains jours donc toutes les autres dates n’apparaissent pas. Cela vous empêche de réaliser certaines opérations, par exemple calculer une moyenne des quantités vendues de ce produit par jour incluant les jours sans ventes, ou bien afficher un histogramme des ventes avec les dates régulièrement espacées sur l’axe des abscisses.

Solution :

En utilisant la fonction DimTemps() dans une variable de type dimension vous pouvez construire, à partir des dates existantes de la dimension [Transaction Date], une dimension [Transaction date 2] prenant pour valeurs toutes les dates manquantes de [Transaction Date]. Par défaut les dates manquantes sont reconstruites à partir de celles qui existent selon une période de un jour :

Insérez la variable [Transaction Date 2] dans votre tableau. Toutes les dates manquantes sont affichées à partir d’incréments successifs de un jour en partant des dates existantes :

Vous pouvez maintenant créer une variable [Quantity per Transaction 2] de type indicateur afin d’afficher la valeur 0 à la place des valeurs de quantités vides obtenues pour les dates générées :

Insérez votre nouvelle dimension de date avec votre nouvel indicateur de quantité vendue afin d’obtenir un tableau indiquant les quantité vendues pour chacun des jours, incluant les jours ou rien n’a été vendu :

Par défaut la période proposée par la fonction DimTemps() est de 1 jour, mais vous pouvez aussi la personnaliser. Pour celà ajoutez un paramètre et écrivez « Période.. » vous pourrez ainsi voir les différentes possibilités de période. Ci – dessous nous avons choisit une période de une semaine :

Vous savez désormais comment utiliser la fonction DimTemps afin de remplacer les valeurs manquantes d’un historique par des valeurs nulles sous SAP Web Intelligence.

11 commentaires

  1. Jean-Charles Morel Répondre

    Bonjour,

    Avez-vous une idée pour créer une dimension temporelle sur l’heure, la minute ?
    Merci.

    Cordialement.

    • Romain CARRETERO Répondre

      Bonjour,

      Vous pouvez utiliser la fonction DimTemps() avec les opérateurs PériodeHeure ou PériodeMinute.

      Bonne journée,

  2. Christophe Répondre

    Bonjour, J’ai un message d’erreur (l’expression à la position 10 dans la fonction DimTemps utilise un type de données non valide (IES 100037), pourtant j’utilise une dimension Date (mais par défaut de type chaine) c’est sans doute là le prb, il faut un format de type date ?

    • Romain CARRETERO Répondre

      Bonjour,

      En effet, il faut que votre données Date soit au format Date pour pouvoir être utilisé avec la fonction DimTemps(). Pour palier à votre problème, vous pouvez utiliser la fonction AlaDate() qui définira votre dimension en type Date (exemple d’utilisation : ALaDate([VotrDate]; »dd/MM/yyyy ») ), ce qui vous permettra ensuite d’utiliser la fonction DimTemps.

      • joussot

        Bonjour,
        j’essaye d’utiliser DimTemps avec PeriodeHeure mais ca ne fonctionne jamais (L’expression …n’est pas valide (IES 10036)).
        Je le fais à partir d’une dimension Date/Heure, pourriez vous donner un exemple ?

      • Romain CARRETERO

        Bonjour,

        Il n’est pas possible d’utiliser « PériodeHeure » pour cette fonction. Les opérateurs de période disponible sont indiqués dans la documentation de la fonction et sont les suivants :
        -PériodeJour
        -PériodeMois
        -PériodeTrimestre
        -PériodeAnnée

  3. joussot virginie Répondre

    Ah ok mais pourquoi disiez vous l’inverse qq posts plus hauts ?
    comment faire alors si on souhaite faire des statistiques, par ex, par heure, sur une journée ?

    • William MARCY Répondre

      Voici le détail de son utilisation : DimTemps([Type de date]; Type de période)

      La période [TypePériode] pour les résultats, à partir des valeurs suivantes :
      PériodeJour
      PériodeMois
      PériodeSemestre
      PériodeAnnée
      Quand aucune valeur n’est sélectionnée, PériodeJour est utilisé par défaut. Cet objet doit être un objet de fournisseur de données disponible à partir des objets de rapport. Il ne peut s’agir d’une variable.

      ça ne fonctionne pas sur les niveaux en dessous de Jour. Pour cela, il faut utiliser « FormatDate » pour extraire les heures et minute par exemple.

  4. NGO Répondre

    Bonjour,

    Est ce que vous avez une idée pour utiliser la fonction dimtemps() dans une variable type détail ?

    La dimension date dans mon cas est utilisée comme type détail sur une dimension fusionnée.
    J’en ai besoin pour faire l’axe de temps d’un graphique cumulé.

    Merci

    • Romain CARRETERO Répondre

      Bonjour,
      Si vous ne parvenez pas à utiliser la fonction avec un objet de type détail, vous pouvez créer une variable de type dimension ayant comme expression le nom de l’objet de type détail.
      Exemple : MaVariable = [MonDétail]
      Je vous invite à vérifier également que le format de données est bien de type date. Si c’est en chaîne de caractère utiliser la fonction ForamtDate() pour transformer le type de données en date.

  5. JEROMEHEJ Répondre

    Bonjour,

    J’ai dans une variable la formule
    =DimTemps([X-PAI-AVCE_R].[Date de paiement effective];PériodeMois)

    et la variable affiche 7 lignes dont 5 « #VALEURMULTI », 1 date et 1 vide.

    Pouvez vous m’aider svp ?

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *