La création des formules de calcul des mesures est possible via les opérateurs courant tels que:

- '+' pour effectuer une addition

- '-' pour effectuer une soustraction

- '*' pour effectuer une multiplication

- '/' pour effectuer une division


Il existe également des FONCTIONS permettant d'effectuer toutes sortes de calcul sur les mesures.


Exemple:

Reprenons notre exemple précédent et changeons le paramétrage pour que le calcul du chiffre d'affaires soit arrondi à l'entier supérieur le plus proche.


En pratique:

- Regarder la vidéo de paramétrage d'une fonction spécifique

 

Pour aller plus loin:

Il existe plusieurs dizaines de formules dans ALLKEYME. Vous pouvez consulter le tableau ci-dessous pour connaître la liste des formules disponibles à ce jour ainsi que la syntaxe pour leur utilisation.


FONCTIONDESCRIPTIONEXEMPLECOMMENTAIRES
ANCESTORPermet de rechercher la valeur d'une mesure pour le step choisiANCESTOR(MAVALEUR#S;3)ici on recherche la valeur renseigné au step 3
ANCESTOREKEYVALRetourne la valeur d'une clef de filtre d'un ancetre=ANCESTORKEYVAL("CATWEB1#1";"label";5)

ANDRetourne la valeur 1 si tous les éléments passés en paramètre sont vrais. Retourne 0 dans le cas contraireAND(CABRUT#S>10;CABRUT#S<15)
AVGCalcule la moyenne des élements passés en paramètreAVG(CAMARS#S;CAAVRIL#S)Il s'agit d'une moyenne arithmétique simple
CHINESEZODIAC
Retourne le signe astral chinois
CHINESEZODIAC(date)

COLLECTPermet la collecte d'une information sur tous les éléments fils (= les éléments du step suivant)SUM(COLLECT(CABRUT#I))Ici on va collecter le CABRUT de tous les élements fils du niveau sur lequel on travaille.
La fonction COLLECT est souvent utilisée avec la fonction SUM.
Ex: SUM(COLLECT(CABRUT#I)) va permettre d'obtenir la somme des CABRUT du niveau sur lequel je travaille en faisant la somme de tous les niveaux inférieurs.
COMPARERANGEPermet de rechercher des doublons sur une plage de date=COMPARERANGE("PRODUCT#1";OFFER_BINKEY#I;"OPE#1|PRODUCT#1";MILE_PRICE_ACTIVE_START#I;MILE_PRICE_ACTIVE_END#I)

CONCATPermet d'assembler des éléments de texteCONCAT(TEXTE1#S;TEXTE2#S)Même principe que dans Excel
Attention pour concatener une mesure avec des guillemets, il faut créer la guillement comme une constante I ou S ou utiliser la fonction REGEX (cf. plus bas)
COSFonction mathématique "cosinus"COS(ANGLE#I)
COUNTCompte le nombre d'éléments valides
COUNT_DISTINCT
CROSSED


DATEADDPermet d'ajouter des années, des mois ou des jours à une date donnéeDATEADD(DATE_EXP#I;0;0;40)Ici, la date de départ est recherchée par rapport à une date dans une mesure (DATE_EXP) et on souhaite retourner cette date + 40 jours
DATEDIFFRetourne le nombre de jours entre une date de débu et une date de finDATEDIFF(01/01/2022;15/01/2022)
DAYPermet de retrouver le jour d'une dateDAY(date)
DIVIDEEffectue une division avec contrôle auto si diviseur = 0DIVIDE(CA#S;QTE#S)
EConstante d'EulerE(MAMESURE#S)
EMPTYRetourne 1 si la valeur est vide ou nulleEMPTY(MAMESURE#S)
EXPFormule mathématique "exponentielle"EXP(MAMESURE#I)
FALSETWINSIdentifier, pour des éléments similaires, une divergence de valeurs
=FALSETWINS("PRODUCT#1";OFFER_BINKEY#I;"OPE#1|PRODUCT#1";PRICE_PROMO_SP_NET#I;MILE_PRICE_ACTIVE_START#I;MILE_PRICE_ACTIVE_END#I)

FDVALPermet de retrouver la valeur d'un élément de codification grâce à son code courtFDVAL("STATUS#1";"OUV";"label")Ici je recherche dans la codif STATUS le libellé de l'élément dont le code court est OUV
FIRST
Retourne le premier élément d'une collection


FOLKS


FORCEDAYPermet de forcer un jour précis dans une dateFORCEDAY(MADATE#I;25)Pour obtenir le 25 du mois relatif à la date passée en premier paramètre
FROMAGGPermet de collecter un aggrégat sur une mesure depuis une période souhaitéeFROMAGG("CHRONO#3";CABRUT#S;"SUM";INDICE#I)Collect de la somme des CABRUT sur mon chrono 3 depuis l'indice de chrono.
NB: l'indice commence à 
FROMPERCENT
Force un texte % en nombre

IFRetourne une valeur en fonction du résultat d'une conditionIF(HA_N2_QTEHA#S<>0;(HA_N2_VALOHA#S/HA_N2_QTEHA#S);0)Peut être utilisé pour ne pas effectuer de division si le dénominateur est égal à 0 par exemple.
INHERITHérite de la valeur de la donnée parente (celle du step supérieur)INHERIT(CABRUT#S)
JOINPermet de concatener des champs entre eux et de spécifier le séparateur de concaténationJOIN("|";MES1#S;MES2#S;MES3#S)A noter, si un des champs est vide, on n'en tient pas compte et on ne cherche pas à le concatener
KEYLISTPermet d'afficher une liste de valeur de champs complémentaires pour les différents éléments d'une codificationKEYLIST("MECA#1";"THRESHOLD";"label";"<br/>")

KEYVAL
Permet la  collecte de la valeur d'une propriété appartenant à une codification
KEYVAL("CLUSTER#2";"valor")
CLUSTER = correspond à un code court d'une codification
- NivCodif = 2 car la codification CLUSTER présente plusieurs niveaux et on veut récupérer la valeur pour le niveau 2 de cette codification
ProprieteDeLaCodif = valor  - permet de récupérer la valeur donnée à la codification.
NB: d'autres paramètres par défaut existent pour récupérer les différentes propriétés de la codification:
- shortCode = pour récupérer le code court
- parentCode = pour récupérer le code parent
- label = pour récupérer le libellé
- externalCode = pour récupérer le code externe
- externalParentCode = pour récupérent le code parent externe
- description = pour récupérer la description
- icon = pour récupérer l'image

- createTime = date de création

- updateTime = date modification

- createBy = créateur

- updateBy = modificateur
Attention: tous ces paramètres sont case sensitive.

Voir paramétrage KEYVAL1 à la suite du tableau
KEYVAL("CLUSTER#2";"NBOF")NBOF = Code d'une propriété (d'un champ) de la codification
Voir paramétrage KEYVAL2 à la suite du tableau 
KEYVAL("OPE#1";"FLUX@JAL_EXP_END")NivCodif = 1 car la codification OPE ne comporte qu'un seul niveau
ProprieteDeLaCodif = FLUX@JAL_EXP_END
Permet de récupérer pour le champ complémentaire FLUX, la valeur du champ JAL_EXP_END qui est lui même en champ complémentaire d'une autre codification
Voir paramétrage KEYVAL3 à la suite du tableau 
KEYVALPermet la collecte de la valeur d'une propriété appartenant à un chronocodeKEYVAL("CHRONO#2";"endDate")

LASTRetourne le dernier élément d'une collection
LASTINDEXOFRetourne la dernière date pour laquelle il y a une valeur pour la mesure passée en paramètre
=LASTINDEXOF("CHRONO#3";STK_TY_QTESTKDEPDISPO#S)

LASTVALUEOFRetourne la dernière valeur connue pour la mesure passée en paramètre=LASTVALUEOF("CHRONO#3";STK_TY_QTESTKDEPDISPO#S)

LEFTPermet d'extraire la partie gauche d'un texteLEFT(MAVALEUR#S;5)Récupère les 5 caractères de gauche de ma valeur
LIST
LOGFormule mathématique "logarithme"LOG(MAMESURE#I)
MANDATORYRetourne la valeur 1 si la valeur n'est ni vide ni nulleMANDATORY(MAMESURE#I)
MAXRetourne la valeur maximale parmi les éléments passés en paramètreMAX(CANETN1#S;CANETN2#S)
MINRetourne la valeur minimale parmi les éléments passés en paramètreMIN(CANETN1#S;CANETN2#S)
MONTHPermet de retrouver le mois dans une dateMONTH(date)
NBCHARRetourne le nombre de caractères d'un texteNBCHAR(MONTEXTE#S)
NOT
Inverse le résultat d'un booléenNOT(EMPTY(MAVALEUR#S))
NOW
Retourne la date du moment
NOW(1)Utile pour alimenter la valeur par défaut d'une mesure
ORRetourne la valeur 1 si au moins un des éléments passé en paramètre est vrai. Retourne 0 dans le cas contraire.OR(CABRUT#S>100;CABRUT#S<150)
PARENTKEYVAL


PIPiPI(MAMESURE#I)
POWPasse le nombre 1 à la puissance du nombre 2POW(MESURE1#S;MESURE2#S)
PREFERRetourne la 1ère des 2 valeurs qui existePREFER(CANET#S;CAOBJ#I)Permet par exemple de retourne la valeur S si elle a été reçue par flux, sinon on retourne la valeur I qui est une projection calculée pour le futur
RANDOM

REGEXPermet d'échapper les caractères spécifiques. Pour mettre des guillements on met \"=CONCAT(REGEX("\"");MAMES#I;REGEX("\""))

REPLACEPermet de remplacer une chaîne d'un texte par une autre chaîneREPLACE(MAVALEUR#S;"9";"8")Remplacement des 9 par des 8 dans mon texte
Cas particulier: pour emplacer des guillemets (par le caractère + par exemple), la synthaxe est la suivante:
=REPLACE(PIM_TITREWEBFR#I;"\"";"+")
REQUIREDPermet de tester l'existence d'une collection de mesuresREQUIRED(MES1#I;MES2#I)
RIGHTPermet d'extraire la partie droite d'un texteRIGHT(MAVALEUR#S;8)Récupère les 8 caractères de droite de ma valeur
ROUNDPermet d'arrondir un nombre selon la décimale spécifiéeROUND(CABRUT#S;0)
ROUNDDOWNPermet d'arrondir à l'entier inférieurROUNDDOWN(CABRUT#S)
ROUNDUPPermet d'arrondir à l'entier supérieurROUNDUP(CABRUT#S)
SERIES
SINFonction mathématique "sinus"SIN(ANGLE#I)
SISTERS


SLIDEAGGPermet la collecte glissante d'une mesure à partir d'une date donnée pour une période donnée=SLIDEAGG("CHRONO#3";VTE_TY_CANET#S;"SUM";0;-3)Souvent utilisé avec la fonction SUM. Exemple:
SLIDEAGG("CHRONO#3";VTE_TY_CANET#S;"SUM";0;-3)
Ici:
- CHRONO#3 correspond à ma semaine dans la définition des steps de la vision
-Mesure à estimer
- fonction d'agrégat
- IndiceDepart = 0 => je recherche le les ventes depuis la semaine dernière
- NbElementACollecter = -3  => Je recherche 3 périodes en arrière
SPLITVentile la valeur du parent vers les enfants en fonction de leur poidsSPLIT(Mesure;Poids)
SQRTRacine carréeSQRT(MAMESURE#S)
SUBCOLLECTPermet de sommer sur un step les valeurs enregistrées sur des steps filsSUM(SUBCOLLECT(CABRUT#S;3))Ici je souhaite récupérer la somme des CABRUT du step 3.
La formule doit être paramétrée en type T pour le step sur lequel je souhaite consolider (donc ici pour le step 1 par ex)
SUBSTRPermet d'extraire une chaîne de caractèresSUBSTR(MAMESURE#S;0;2)ici, je récupère les 2 premiers caractères
SUMFait la somme des éléments en paramètreSUM(CAHT#S;MTTVA#S)
TANFonction mathématique "tangente"TAN(ANGLE#I)
THRESHOLDPermet de retourner une valeur selon des paliersTHRESHOLD("THR";"SEUIL";"VALEUR";MES_CATTCMAGOBJ#T)
THR = code de la codification dans laquelle on paramètre les seuils
SEUIL = args de cette codification dans lequel on stock la valeur palier
VALEUR = args de cette codification dans lequel on stocke la valeur à retourner
MES = mesure de comparaison pour les euils
TODATEPermet de créer une date à partir des éléments fournis en paramètreTODATE(2023;12;24)Retourne 24/12/2023
TODAYRetourne la date du jourTODAY(1)Il est obligatoire de mettre une valeur de paramètre. Mais que l'on mette TODAY(1) ou TODAY(2), cela ne change pas le résultat retourné (il s'agira toujours de la date du jour).
TRIMSupprime les espaces en début et en fin de texteTRIM(MAVALEUR#S)
WHORetourne le login d'un utilisateur connectéWHO(1)
YEARPermet de retrouver l'année dans une dateYEAR(date)
ZODIAC
Retourne le signe astralZODIAC(date)



KEYVAL 1:


KEYVAL 2:


KEYVAL3:

La codif OPE comporte un champ complémentaire FLUX paramétré comme type de données= OBJECT et comme source = OPE_KIND#1