Gestion des valeurs “UNKNOWN” dans un cbase

UNKNOWN indique une valeur qui ne peut pas être calculée. Voici quelques façons d'obtenir une valeur inconnue dans Spectre :

Opérations numériques non calculables.

Par exemple, 1/0, log(-1), arcsin(10).

Opérations de date ou de période non calculables.

Par exemple, jour(null).

Erreurs de format ou d'analyse.

Par exemple, parse_integer("badnum"), date("2015 Jan", "M-D-YYYY").

Arguments non valides.

Par exemple, period("badcalendarname", "2015 Jan"), extract(date("2015/01/01"), "badinterval").

À de très rares exceptions près, chaque expression rencontrant une inconnue renvoie UNKNOWN. Elle n'est jamais traitée comme une valeur normale car il est impossible de déterminer quelle valeur normale s'applique.

Vous pouvez vérifier l'inconnue avec la fonction is_unknown() et utiliser la fonction catch() pour substituer des valeurs alternatives à UNKNOWN.

Affichage et plongée sur NULL et UNKNOWN

Dans les champs Somme, c'est-à-dire les colonnes sans Dimension, NULL et UNKNOWN s'affichent tous deux sous forme de valeurs vides.
Dans les colonnes de Dimension, NULL est la valeur vide et UNKNOWN s'affiche sous la forme <UNKNOWN>.

Débogage des valeurs <UNKNOWN>

Pour déterminer la source du problème qui conduit à avoir des valeurs <UNKNOWN>, le plus simple est de :

  • construire le cbase avec le champ incriminé en chaine de caractères (type string) afin de déceler d’éventuels problèmes de formatage de certaines valeurs
  • plonger sur <UNKNOWN> pour identifier les causes
  • décider du remède :
    • traitement additionnel sur le champ ou changement de type, par exemple de integer à fixed100
    • annuler le champ
    • garder le <UNKNOWN>