Les formules

image

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 » :

image


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 format YYYY-MM-DDTHH:mm:ss.011Z)

:warning: 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"))

:warning: 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')

:warning: 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)

:warning: Pensez à remplacer {{champ}} par le champ de la source parente sur laquelle vous souhaitez appliquer la formule.

Séparer les milliers / millions / milliards d’un chiffre

REPLACE(‘ ‘ + {{champ}}, ‘/([0-9]{3})/g’, ‘ $1’)

:warning: 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 && « … » || « »

:warning: 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")

:warning: 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.*')

:warning: 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())

:warning: Pensez à remplacer {{timestamp}} par le champ de la source parente sur laquelle vous souhaitez appliquer la formule.