Les traitements de données de type « formule » ne sont pas toujours évidents à comprendre et à utiliser. Pour une prise en main plus facile, nous vous présentons ici quelques exemples que vous pouvez utilisez.
Pour créer une formule, séléctionnez la baguette magique sur la source que vous souhaitez transformer, puis choisissez la transformation « Formule » :
Formule sur des dates (formules « moment »)
Les formats de date sont souvent affichés sous 2 formats:
- Format date ISO YYYY-MM-DDTHH:mm:ss.011Z (ex: 2018-02-19T10:46:37.950Z)
- Format date timestamp XXXXXXXXXX (ex: 1519037225)
Quelques exemples
moment()
= date courante (restitué au formatYYYY-MM-DDTHH:mm:ss.011Z
)
Dans certains cas, il est nécessaire ouutile de préciser le format attendu ou souhaité.
Exemples :
moment().format("YYYY MM DD")
= YYYY MM DD (ex: 2018 02 19)moment().format("DD/MM HH:mm")
= DD/MM HH:mm (ex: 19/02 11:40)
Savoir si une date est déjà passée
Vous souhaitez filtrer un jeu de données pour récupérer, par exemple, uniquement des évÚnements à venir ?
Utiliser la formule moment().isAfter(moment({{votre champ}}))
ou moment().isBefore(moment({{votre champ}}))
afin de savoir si oui, ou non, votre date est dépassée. Vous recevrez un « true » ou un « false » comme résultat dans le nouveau champ crée pour votre formule.
Vous pourrez à partir de ce moment effectuer un filtre afin de récupérer uniquement les données nécessaires, en filtrant sur « true » ou « false ».
Calculer le temps passée depuis une date
moment().to(moment({{votreChamp}}, "DD/MM/YYYY"))
Pensez à adapter le nom de votre champ et son format (selon la donnée de votre champ)
Comparer la valeur dâune source de donnĂ©e avec la date du jour
exemple : je souhaite savoir le nombre de jours écoulés entre la date de ma source de donnée et la date du jour.
moment().diff(moment({{votreChamp}}),'days')
Pensez à ajouter le format aprÚs votre champ si cela ne fonctionne pas (cf. formule précédente)
Convertir les formats date en nombre (en ms)
- Maintenant en nombre:
NUMBER(moment())
(ex: 1519036887 â timestamp en ms) - {{champ}} en nombre:
NUMBER(moment({{champ}}))
Formules sur des chiffres
Arrondir un chiffre
- Arrondir Ă lâentier:
round({{champ}})
- Arrondir à 2 décimales:
round({{champ}},2)
Pensez Ă remplacer {{champ}}
par le champ de la source parente sur laquelle vous souhaitez appliquer la formule.
Exemple : vous rĂ©cupĂ©rez via une API la tempĂ©rature dâune ville avec des valeurs trĂšs prĂ©cises (ex :19,68) et souhaitez lâarrondir pour afficher 20°C sur le walboard.
Ăcrivez la formule : ROUND({{nom_de_la_colonne}})
Pensez Ă la tester, puis Ă la sauvegarder.
Votre nouvelle source « traitée » affichera donc la valeur 20.
SĂ©parer les milliers / millions / milliards dâun chiffre
REPLACE(''+ {{champ}}, '/([0-9]{3})/g', ' $1')
Pensez Ă remplacer {{champ}}
par le champ de la source parente sur laquelle vous souhaitez appliquer la formule.
Autres formules
RĂ©duire le nombre de caractĂšres dâune donnĂ©e « texte »
- RĂ©duire Ă 350 caractĂšres en partant de la droite :
SUBSTR({{champ}},0,350)
- RĂ©duire Ă 10 caractĂšres en partant de la gauche:
SUBSTR({{champ}},10,0)
- Ajout de points de suspension:
length({{champ}})>200 && « ⊠» || « »
Pensez Ă remplacer {{champ}}
par le champ de la source parente sur laquelle vous souhaitez appliquer la formule.
Remplacer un caractĂšre
Il arrive que certains caractĂšres rĂ©cupĂ©rĂ©s dans Pingview ne soient pas ceux que vous souhiatez afficher Ă lâutilisateur final du wallboard.
Si mon caractĂšre est ïżœ (caractĂšre spĂ©cial) et que je souhaite le remplacer par un e:
REPLACE({{champs}},"/ïżœ/g","e")
Pensez Ă remplacer {{champs}}
par le champ de la source parente sur laquelle vous souhaitez appliquer la formule.
RĂ©cupĂ©rer les donnĂ©es Ă partir dâun mot dĂ©finit
Récupérer les données à partir de demain : MATCH({{champ}}, '\demain.*')
Pensez Ă remplacer {{champ}}
par le champ de la source parente sur laquelle vous souhaitez appliquer la formule.
Interaction Ă©phĂ©mĂšre (utile pour les interactivitĂ©s avec redirection dâURL)
Limiter la durĂ©e dâinteractivitĂ© Ă 5s: NUMBER({{timestamp}})+5000 >= NUMBER(moment())
Pensez Ă remplacer {{timestamp}}
par le champ de la source parente sur laquelle vous souhaitez appliquer la formule.