Fournisseur de variable

Acteur qui permet de communiquer avec une variable WOS d’un REDY. Le fournisseur s’occupe de récupérer la variable déterminée par la propriété Chemin et va la placer dans le champ d’information Donnée. Il est possible d’indiquer plutôt un champ de la variable à placer dans la donnée de l’acteur.

Aussi, l’acteur permet de définir la manière avec laquelle la variable est récupérée et rafraîchie et d’activer ou pas l’écriture dans sa valeur pour l’enregistrer dans le REDY.

La donnée récupérée est disponible pour les liaisons ou par script.

L’acteur sert de fournisseur de base aux éventuels fournisseurs de variable relative ou liaisons de type fournisseur de variable qui pointeraient dessus.

Sommaire

🔧 propriété · ℹ️ information · ⚙️ méthode · ⚡ évènement · 🔒 lecture seule

Propriétés

Auto rafraîchissement

this.properties.autoRefresh · boolean · défaut true

Auto rafraîchissement activé?

Cette propriété active/désactive l’auto rafraîchissement de la variable ciblée.

Champ

this.properties.fieldName · string · défaut ''

Nom du champ qui sera récupéré et placé dans le champ data.

Il sera pris en priorité même si le path contient un champ.

Par défaut, c’est la variable toute entière qui est récupérée et placée dans le champ Donnée. Si vous voulez récupérer une partie de la variable, vous pouvez indiquer le nom du champ à récupérer parmi les possibilités suivantes :

Libellé Studio Champ Type Description
Lecture? this.data.canRead Boolean Si la variable est accessible par l’utilisateur actuelle en lecture. Tiens compte des groupes et du du niveau de l’utilisateur.
Écriture? this.data.canWrite Boolean Si la variable est accessible par l’utilisateur actuelle en écriture. Tiens compte des groupes et du du niveau de l’utilisateur.
  this.data.childLabels 🔒   Libellés des enfants chargés de la variable (Set).
Nb. d’enfant this.data.childrenSize 🔒 Number Le nombre d’enfant de la variable REDY.
ID de classe this.data.classID   L’ID de la classe de la variable REDY.
Date this.data.date   La date de la dernière mise à jour de la variable REDY.
  this.data.deviceID   Identifiant REDY de l’équipement de la variable.
  this.data.groupsID   Identifiants REDY des groupes de la variable.
URL de l’icône this.data.iconUrl String L’URL de l’icône de la variable REDY. Directement exploitable par exemple dans une liaison vers un acteur image.
  this.data.id Number ou string Clé primaire.
Label this.data.label String Le label REDY de la variable du REDY. Par exemple : R00003 ou RunCount.
Nom this.data.name String Le nom de la variable REDY. Par exemple : Compteur 1.
Chemin this.data.path 🔒 String Le chemin entier de la variable REDY. Par exemple : :easy.RESS.R00001 ou même :easy.RESS.R00001.Output.
ID this.data.redyID   L’ID interne de la variable REDY.
État this.data.state String L’état si la variable est une ressource. Ce sera le texte de l’état comme défini dans le REDY. Par exemple : "Veille", "En Marche".
Valeur this.data.value any La valeur de la variable. Par exemple : true, "un texte" ou bien 23 en fonction du type de la variable.
  this.data.zoneID   Identifiant REDY de la zone de la variable.

Champs de l’objet Variable WOS, accessibles par script dans la donnée (this.data) quand aucun champ n’est choisi. Le champ suivant est calculé par le fournisseur :

  • Enfants Le liste des enfants de la variable REDY.

Choisissez Valeur si vous voulez écrire dans ce champ. Ainsi, en vous liant avec l’écriture activée à la donnée de l’acteur, vous pourrez écrire dans la variable REDY et envoyer cette valeur automatiquement si la propriété Écriture au changement est activée. Sinon par script.

Chemin

this.properties.path · string · défaut ''

Chemin de la variable WOS.

Il peut contenir le champ en ajoutant : et son nom. C’est l’ancienne écriture qui va être abandonnée au profit du champ properties.fieldName qui est préféré.

Cette propriété va contenir un chemin vers la variable à récupérer. C’est un chemin au sens REDY, par ex : :easy.RESS.R00001 ou même :easy.RESS.R00001.Output.

Un explorateur de paramétrage de REDY aide à saisir le chemin.

SynApps

Délai rafraîchissement

this.properties.autoRefreshDelay · number · défaut 30

Délai en seconde de rafraîchissement.

Cette propriété définit le délai de rafraîchissement (en seconde) de la variable ciblée lorsque l’auto rafraîchissement est activé.

Évitez de définir des délais de rafraîchissement trop court. En dessous de 10 secondes, il faut vraiment s’interroger sur la pertinence d’un tel choix.

Écriture au changement

this.properties.writeOnChange · boolean · défaut false

Écriture dès changement de la donnée activée?

Cette propriété active/désactive l’enregistrement de la valeur d’une variable dans le REDY si la donnée est modifiée par liaison ou par script. Il bien entendu que le ce soit le champ Valeur qui soit inscrit dans la donnée.

Mode

this.properties.mode · 'auto' | 'manual' | 'relative' · défaut 'auto'

Mode de requête de la donnée.

  • auto : Récupération de la donnée à l’initialisation et possibilité de rafraîchir automatiquement,
  • manual: Les requêtes doivent être commandées par script avec la méthode request() ou requestDebounce(),
  • relative: Le comportement est automatique dès que des sources relatives sont attachées à cet acteur.

Cette propriété permet de définir le comportement de l’acteur à son arrivée dans la scène ou lorsque le chemin ou le champ de la variable cible sont modifiés.

  • Automatique Si toutes les conditions sons réunis, l’acteur va récupérer automatiquement la variable et la placer elle ou le champ dans la donnée.
  • Manuel L’acteur attend qu’on change de mode ou qu’un script le demande pour récupérer la variable et la placer elle ou le champ dans la donnée.
  • Relatif L’acteur se comportera comme dans le mode automatique dès qu’il a des fournisseurs de variable relative ou liaisons de type fournisseur de variable qui pointent dessus.

Dans tous les cas, ceci est complètement indépendant du mode de rafraîchissement de l’acteur.

Informations

Accessibles par script, via this dans un script de l’acteur ou context.getActor('clé') depuis un autre acteur.

autoRefreshing

this.autoRefreshing · 🔒 lecture seule · Boolean

Indique si le rafraîchissement automatique est actif.

Donnée

this.data · any

Obtient ou définit la donnée exposée.

Vous trouverez dans ce champ la variable ou le champ de variable désigné par l’acteur.

Une liaison avec l’écriture activée permet de modifier la valeur de la variable REDY si l’acteur la désigne.

Quand aucun champ n’est choisi, la donnée est un objet Variable WOS.

error

this.error · 🔒 lecture seule · String ou null

Erreur de requête.

fullPath

this.fullPath · 🔒 lecture seule · string

Obtient le chemin complet vers la variable.

hasError

this.hasError · 🔒 lecture seule · Boolean

Indique s’il y a eu une erreur de requête.

Première requête réalisée ?

this.isFirstRequestDone · 🔒 lecture seule · boolean

Indique si la première requête a été faite.

Cette information sera vrai après avoir effectuer une première requête.

Requête en cours ?

this.isRequesting · 🔒 lecture seule · Boolean

Indique si la requête est en cours.

Cette information permet de savoir si l’acteur est en train de réaliser une requête.

Liez la visibilité d’une acteur sur cette information pour le visualiser lorsqu’il est en train de réaliser une requête.

isValorized

this.isValorized · 🔒 lecture seule · boolean

Indique si la donnée a été valorisée.

lastRequestDate

this.lastRequestDate · 🔒 lecture seule · String ou null

Date de la dernière requête (ISO 8601), null avant la première.

Méthodes

refresh()

this.refresh()

Effectue un rafraîchissement de la donnée.

request()

this.request() · renvoie Promise<Any>

Effectue une requête.

requestDebounce()

this.requestDebounce() · renvoie Promise<any>

Effectue une requête retardée. Si une requête est déjà en cours, elle part à sa fin.

write()

this.write() · renvoie Promise<any>

Effectue une requête d’écriture.

writeAll()

this.writeAll()

Effectue une requête d’écriture de la variable, puis de celles de tous ses fournisseurs relatifs.

Événements

Les évènements communs à tous les acteurs sont décrits avec l’acteur de base.

onRequestDone

Se produit lorsque la requête s’est terminée.

context : contexte d’évènement, avec en plus :

Membre de context Type Description
error String ou Object ou null Une erreur éventuelle
data any La donnée

L’évènement onRequestDone est déclenché à chaque fois que l’acteur a réaliser une requête pour obtenir ou rafraîchir la variable et le champ souhaité.

onWriteDone

Se produit lorsque la requête d’écriture s’est terminée.

context : contexte d’évènement, avec en plus :

Membre de context Type Description
error String ou Object ou null Une erreur éventuelle
data any La donnée

L’évènement onWriteDone est déclenché à chaque fois que l’acteur a réaliser une écriture vers le REDY.

Hérite de

Outre ce qui est décrit ici, l’acteur a tout ce que décrit l’acteur de base : propriétés communes (taille, disposition, aspect, texte, bordures, effets…), évènements communs (cycle de vie, souris, clavier…) et membres accessibles par script.

Il hérite aussi de :

  • DataSource : Classe de base pour fournisseur de donnée. Permet de paramétrer les requêtes et d’exposer une donnée pour des liaisons ou accessible par script.
  • Requesterable (comportement) : Attribut la possibilité à un acteur de réaliser des requêtes.

Usage

Il est possible de créer des fournisseurs dans vos scènes ou composites. Vous pouvez également les créer de manière globale dans la sous-section Projet / Fournisseurs de variable pour en faire profiter toute votre synapp.

Essayez de mutualiser les fournisseurs de variable dans vos scènes et composites. Rappelez-vous que des requêtes de données sont réalisées pour chaque fournisseur de variable. Ce qui est responsable d’un trafic de données qui pourrait être important pour l’équipement qui exécute votre synapp. Ceci est particulièrement sensible pour les équipements nomades comme les smartphones et tablettes.