Studio 1.7.0

Runtime 2.8.0

REDY Pilot 1.0.0

Sommaire

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 -1 pour 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éthode request() ou requestDebounce().

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 refresh ou request est 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.

  1. 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
  1. Créez un acteur Liste de choix déroulante.
  2. Dans la propriété Options de la liste déroulante, liez-la à la Liste des lignes dans les informations du fournisseur de requête.
  3. 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 value et text, 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ù id et name sont 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.