Utiliser les expressions CASE

Découvrez le format et les composants des expressions CASE et certaines expressions CASE fréquemment utilisées que vous pouvez générer afin de créer des champs calculés dans Rapports.

Fonctionnement

Une expression CASE est une expression conditionnelle qui vous permet de modifier le mode de représentation des données. Les expressions CASE permettent à une instruction de retourner un ou plusieurs résultats possibles en fonction des diverses conditions qui sont analysées comme vraies.

Vous pouvez créer des champs calculés à l'aide des expressions CASE au moyen du générateur de formules Simple.

Pour plus d’informations, consultez la section Création de champs calculés.

Format d'expression CASE

Le format d'une expression CASE est le suivant :

CASE
WHEN c'est vrai THEN retourne ceci
WHEN c'est vrai THEN retourne ceci
...
ELSE retourne ceci
END

Composants de l'expression CASE

Composant Description
CASE le composant initial dans une expression CASE
WHEN

définit une condition telle que WHEN Problème clos ? Est égal à 0

Une expression CASE peut contenir plusieurs composants WHEN. Les composants WHEN doivent précéder le composant ELSE.

THEN

Crée un lien avec le composant WHEN et indique à Rapports la valeur à retourner lorsque la condition est respectée

Par exemple, WHEN Problème clos ? Est égal à 0 THEN 'Problème ouvert'

ELSE Un composant est utilisé pour indiquer à Rapports ce qu'il doit effectuer lorsqu'aucune des conditions WHEN ne sont respectées
END

Définit la fin de l'expression CASE

Pour que l'expression CASE soit valide, vous devez ajouter END.

Ordre d'exécution de l'expression CASE

Les expressions CASE sont exécutées de gauche à droite. Si un champ correspond à plusieurs conditions WHEN, il retourne le résultat de la première condition.

Par exemple, si vous disposez d'un projet intitulé Projet X et d'un champ calculé avec la logique suivante, le champ affiche « SOX » :

CASE
WHEN Nom du projet = Projet X THEN 'SOX'
WHEN Nom du projet N'est pas nul THEN 'Paie'
ELSE 'Déplacements et loisirs'
END

Expression CASE fréquemment utilisées

Le tableau ci-dessous fournit une liste des expressions CASE fréquemment utilisées que vous pouvez générer à l'aide du générateur de formules simples :

Remarque

L'heure du serveur de Rapports est UTC et le champ Date du jour s'affiche au format UTC. UTC est une échelle de temps mondiale ayant remplacé l'heure moyenne de Greenwich (GMT). Dans la plupart des cas, les deux échelles sont équivalentes. Dans le cas des données DateHeure UTC, si la conversion en UTC franchit la ligne de changement de date dans un sens ou dans l'autre, la date est ajustée d'une journée.

Nom du champ calculé Expressions CASE Description Autres considérations

Testing_Status

CASE WHEN Préparateur du test de contrôle IS NOT NULL AND examinateur détail du test de contrôle IS NOT NULL AND examinateur général du test de contrôle IS NOT NULL THEN 'Terminé'

WHEN Préparateur du test de contrôle IS NOT NULL OR Examinateur détail du test de contrôle IS NOT NULL OR Examinateur général du test de contrôle IS NOT NULL THEN 'En cours' ELSE 'Non démarré' END

Affiche un résumé de test de contrôle avec un statut de test calculé
  • Ajouter un filtre et une section = nom du projet
  • supprimer les doublons de Nom de l'objectif, URL de l'objectif, et État du contrôle
  • appliquer une fonction d'agrégation distincte de compte dans ID SYS de contrôle
  • appliquer une mise en forme conditionnelle pour afficher des couleurs spécifiques aux statuts de test (Rouge = Non démarré, Jaune = En cours, Vert = Terminé)
  • Total intermédiaire avec agrégation du compte au niveau du champ Nom de l'objectif

Control_Tested

Control_Passed

Control_Failed

CASE WHEN Contrôle effectif ? IS NOT NULL THEN 1 ELSE 0 END

CASE WHEN Contrôle effectif ? = 1 THEN 1 ELSE 0 END

CASE WHEN Contrôle effectif = 0 THEN 1 ELSE 0 END

Affiche un résumé du test de contrôle qui indique si le contrôle s'est déroulé correctement ou a échoué.
  • Utiliser la vue Travail de terrain
  • Utiliser les filtres Nom de projetdans la liste et Nom du projet ne figurant pas dans la liste
  • Exécuter un total intermédiaire pour le champ Nom du projet
  • Supprimer les champs doublons
Is_Overdue

CASE WHEN Problème clôturé ? = 1 THEN 'Clôturé' 

WHEN Problème clôturé IS NULL THEN ''

WHEN Date du jour < Problème corrigé THEN 'Non' ELSE 'Oui' END

  • Indique si la remédiation du problème a du retard ou non
  • identique à Not_Yet_Due

Les conditions s'exécutent de gauche à droite. Si un champ correspond à plusieurs conditions WHEN, il retourne le résultat de la première condition.

Is_Overdue_Aging

CASE WHEN Issue Closed = 0 AND Days To Remediate < 0 THEN Days to Remediate * 1 ELSE 0 END

affiche le nombre de jours restant jusqu'au délai de remédiation
  • Jours jusqu'à la remédiation est un champ disponible qui indique le nombre (positif) de jours qu'il reste jusqu'à la délai de remédiation.
  • Les problèmes échus sont associés à des nombres négatifs.
  • Si le problème n'est pas échu, affichez 0.
Is_Overdue_Bucket

CASE WHEN Problème clos = 0 AND Jours jusqu'à la remédiation <= -1 AND Jours jusqu'à la remédiation >= -30 THEN '0-30'

WHEN Problème fermé = 0 AND Jours disponibiles jusqu'à la remédiation <= -31 AND Jours disponibles jusqu'à la remédiation >= -60 THEN '31-60'

WHEN Problème fermé = 0 AND Jours disponibiles jusqu'à la remédiation <= -61 AND Jours disponibles jusqu'à la remédiation >= -90 THEN '61-90'

WHEN Problème clos = 0 AND Jours jusqu'à la remédiation <= -91 '91+ ELSE 'Actuel' END

Affecte des tranches d'âge au nombre de jours de retard du problème.
  • Affecte des problèmes aux tranches en fonction du nombre de jours
  • Si aucune de ces conditions ne s'applique, « Actuel » est retournée.
Not_Yet_Due

CASE WHEN Problème clos = 0 AND Date du jour < Problème remédié AND Problème remédié IS NOT NULL THEN 1

WHEN Problème fermé = 0 AND Problème remédié IS NULL THEN 0

WHEN Problème fermé = 0 AND Problème remédié <= Date du jour AND Problème remédié IS NOT NULL THEN 0

WHEN Problème clos = 1 THEN 0 ELSE 9999 END

Identique à Is_Overdue

Gère les conditions suivantes :

  • Le problème n'est pas clos AND la date du jour est antérieure à la date de remédiation AND la date de remédiation n'est pas vide, alors 1 (considéré comme pas encore de retard).
  • Le problème n'est pas clos AND la date de remédiation est vide Then 0 (pas pris en compte, date d'échéance inconnue).
  • Le problème n'est pas clos AND la date de remédiation n'est pas vide et est antérieure ou identique à la date du jour, Then 0 (pas prise en compte, en retard)
  • Le problème est clos Then 0 (pas pris en compte, ne s'applique pas)
  • Si aucune condition n'est vraie, la valeur 9999 est retournée.