Studio 1.7.0
Runtime 2.8.0
REDY Pilot 1.0.0
Fournisseur de requête
Cet acteur permet de créer une source de curseur requêtes pour le pilote REDY. Il consomme un curseur de requête, demande son exécution au pilote REDY suivant des éventuels paramètres, et fournit les résultats dans son champ de dosnnées data.
🔧 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é?
Si activé, la requête est automatiquement rafraîchie à intervalle régulier.
Délai rafraîchissement
this.properties.autoRefreshDelay · number · défaut 30
Délai en seconde de rafraîchissement.
Le délai en secondes entre chaque rafraîchissement automatique de la requête.
Limit
this.properties.limit · number · défaut 10
Le nombre maximum de résultats à retourner par la requête.
Placez la valeur
-1pour ne pas appliquer de limite.
Mode
this.properties.mode · 'auto' | 'manual' · 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éthoderequest()ourequestDebounce().
Le mode d’exécution de la requête.
- Automatique : la requête est exécutée automatiquement à chaque modification des paramètres.
- Manuel : la requête n’est exécutée que lorsque la fonction
refreshourequestest déclenchée.
Offset
this.properties.offset · number · défaut 0
Le nombre de résultats à ignorer au début de la requête.
Requête SQL
this.properties.label · string ou null · défaut null
Le curseur de requête SQL à exécuter par le pilote REDY.
Paramètres de requête
Si le curseur de requête SQL utilise des paramètres, Studio propose de créer des additionnels pour les fournir.
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.
cursor
this.cursor · 🔒 lecture seule · Object ou null
Curseur défini dans le REDY (null avant la première requête).
data
this.data · any
Obtient ou définit la donnée exposée.
dataColumns
this.dataColumns · 🔒 lecture seule · Array<{key: string, type: string}> ou undefined
Colonnes du résultat (data.columns) : nom (key) et type (type) de chacune.
dataRows
this.dataRows · 🔒 lecture seule · Array<Object>
Lignes du résultat sous forme d’objets, une propriété par colonne ({ id: 1, name: 'Alice' }).
error
this.error · 🔒 lecture seule · String ou null
Erreur de requête.
hasError
this.hasError · 🔒 lecture seule · Boolean
Indique s’il y a eu une erreur de requête.
isFirstRequestDone
this.isFirstRequestDone · 🔒 lecture seule · boolean
Indique si la première requête a été faite.
isRequesting
this.isRequesting · 🔒 lecture seule · Boolean
Indique si la requête est en cours.
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.
totalRows
this.totalRows · 🔒 lecture seule · number
Nombre total de lignes du résultat (data.totalRows), 0 sans donnée.
Méthodes
getOptionsFromData(valuePath?, textPath?)
this.getOptionsFromData(valuePath?, textPath?) · renvoie string
Convertit les lignes du résultat en options pour une liste (JSON d’objets value et text).
valuePath: Colonne qui donne la valeur de chaque option.textPath: Colonne qui donne le texte de chaque option.
getParameters()
this.getParameters() · renvoie Object
Paramètres envoyés au curseur : les additionnelles de l’acteur qui portent le nom d’un paramètre du curseur, converties en texte ('1' ou '0' pour un booléen).
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.
Événements
Les évènements communs à tous les acteurs sont décrits avec l’acteur de base.
onDidGetCursor
Se produit lorsque le curseur a été récupéré du REDY, avant son exécution.
context : contexte d’évènement, avec en plus :
Membre de context | Type | Description |
|---|---|---|
cursor | Object ou null | Le curseur |
parameters | Object | Les paramètres envoyés au curseur |
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 |
Événement déclenché lorsque la requête est terminée et que les données sont disponibles.
Dans data, vous trouverez un objet avec les propriétés suivantes :
| Propriété | Type | Description |
|---|---|---|
| columns | Tableau de Colonnes | Tableau contenant les définitions des colonnes |
| rows | Tableau de tableaux | Les lignes de résultats, chaque ligne étant un tableau de valeurs correspondant aux colonnes, dans l’ordre |
| totalRows | Nombre | Le nombre total de lignes disponibles (avant application de la limite et du décalage) |
L’objet de Colonne contient les propriétés suivantes :
| Propriété | Type | Description |
|---|---|---|
| key | Chaîne | Le nom unique de la colonne |
| type | Chaîne | Le type de données de la colonne |
En cas d’erreur, un champ error est présent dans l’objet de contexte avec les informations de l’erreur.
Exemple de données retournées :
{
"columns": [
{ "key": "id", "type": "Integer" },
{ "key": "name", "type": "String" }
],
"rows": [
[1, "Alice"],
[2, "Bob"]
],
"totalRows": 50
}
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.
Usages
Ce fournisseur de requête peut être utilisé avec des acteurs consommateurs de curseur. Un bon exemple est la Liste de choix déroulante.
Imaginons que nous voulons remplir une liste déroulante avec les utilisateurs de la base de données.
- Créez un acteur Fournisseur de requête REDY Pilot avec la requête SQL suivante :
SELECT id AS value, name AS text FROM users ORDER BY name
- Créez un acteur Liste de choix déroulante.
- Dans la propriété Options de la liste déroulante, liez-la à la Liste des lignes dans les informations du fournisseur de requête.
- Ajouter la transformation de la liaison, et ajouter la transformation suivante :
return context.getActor("<clé du fournisseur de requête>").getOptionsFromData();
Cela remplira automatiquement la liste déroulante avec les utilisateurs de la base de données, en utilisant id comme valeur et name comme texte affiché.
Cela marche ici, parce que les colonnes de la requête SQL sont nommées
valueettext, ce qui correspond directement aux attentes de la liste déroulante pour ses options.Si la requête SQL n’a pas les bon noms de colonnes, dans la transformation, vous pouvez faire quelque chose comme ceci :
return context.getActor("<clé du fournisseur de requête>").getOptionsFromData("id", "name");où
idetnamesont les noms des colonnes dans les résultats de la requête SQL qui correspondent respectivement à la valeur et au texte des options.
Si la liste n’a pas vocation à changer, assurez-vous que la propriété Auto rafraîchissement du fournisseur de requête est désactivée.
