Aller au contenu principal

Requêtes — vue d'ensemble

Une requête dans Liberty est une instruction SQL nommée rattachée à un connecteur (lui-même rattaché à un pool, c'est-à-dire à une base de données). Les écrans, tableaux de bord, graphiques, recherches et séquences du dictionnaire et l'assistant IA consomment tous des requêtes — ajouter une requête est donc la modification la plus fréquente dans l'interface Paramètres.

La page qui gère les requêtes est Paramètres → Connecteurs. Cette vue d'ensemble en dresse la carte ; les pages suivantes détaillent chaque chemin d'ajout.


La page Connecteurs en un coup d'œil

Paramètres · Connecteurs+ ConnecteurAnnulerEnregistrerAPPLICATIONS▣ crm▣ nomajde▣ nomasx1SOURCES DE DONNÉES⛁ default⛁ jdedwards⛁ reporting[connectors.crm] · sqlParamètresTablesNon classéesSéquencesRecherches+ TablecustomersClients du portefeuilleGETPUTPOSDELdealsAffaires ouvertesGETPUTPOSDELactivitiesNotes et appelsGETPUTPOSDEL

Trois zones :

ZoneContenu
Barre d'outils hauteActions globales — + Connecteur, Annuler, Enregistrer. Le bouton Enregistrer écrit le fichier connecteur et déclenche un rechargement à chaud — aucun redémarrage de processus n'est nécessaire.
Navigation gaucheDeux groupes : Applications (connecteurs dotés d'un menu — ce sont les applications visibles dans le sélecteur du haut) et Sources de données (connecteurs qui alimentent en données mais n'apparaissent pas dans le sélecteur). Cliquer sur un nom l'ouvre à droite.
Volet droitL'éditeur du connecteur sélectionné. Une barre de modes en haut permet de choisir l'une des cinq vues — Paramètres, Tables, Non classées, Séquences, Recherches.

Les quatre types de requêtes

Chaque requête porte un type qui indique à la page à quel onglet elle appartient :

OnglettypeContenu
TablestableRequêtes qui suivent la convention de nommage CRUD — <base>_get, <base>_put, <base>_post, <base>_delete. La page les regroupe par nom de base et affiche une ligne par table avec quatre badges d'emplacement (GET / PUT / POS / DEL).
Non classéescustomRequêtes isolées non liées à un jeu CRUD de table — opérations en masse, requêtes métier, rapports. Exemple : monthly_revenue, purge_old_logs.
SéquencessequenceRequêtes qui génèrent la valeur suivante pour une règle [sequences.*] du dictionnaire. Corps typique : SELECT COALESCE(MAX(<col>), 0) + 1 FROM <table>.
RechercheslookupRequêtes qui fournissent des paires valeur + libellé pour une règle [lookups.*] du dictionnaire. Corps typique : SELECT <value>, <label> FROM <table>.

L'onglet dans lequel tombe la requête est déterminé par son type — pas par son nom. Une requête nommée customer_balance typée custom se trouve dans Non classées ; la même nommée typée lookup se trouve dans Recherches.


Les boutons d'ajout — un par onglet

L'ajout est propre à chaque onglet, car chaque type suit son propre flux de création.

OngletBouton d'ajoutCe qui s'ouvre
Tables+ Ajouter une tableUne fenêtre de choix : Générer depuis la base (l'Assistant CRUD — il introspecte le pool et génère les quatre requêtes) ou Modèle vide (demande un nom de base et crée un modèle <base>_get vide).
Non classées+ Ajouter une requêteUne saisie de nom — crée une requête custom vide à compléter à la main.
Séquences+ Ajouter une séquenceLa fenêtre Scaffold — sélectionnez une table, sélectionnez une colonne clé, obtenez un aperçu SQL en direct, enregistrez (écrit la requête et l'entrée correspondante du dictionnaire).
Recherches+ Ajouter une rechercheLa fenêtre Scaffold — sélectionnez une table, sélectionnez une colonne valeur et une colonne libellé, filtre WHERE optionnel, enregistrez (écrit la requête et l'entrée du dictionnaire).

Les pages suivantes détaillent chaque chemin.


Ce que porte une requête

Le formulaire d'éditeur (onglets Non classées / Séquences / Recherches) reflète la forme de QueryDef :

ChampRequisRôle
nameOuiUnique au sein du connecteur. La chaîne de permission de cette requête est sql:<connector>:<name>. En lecture seule dans l'éditeur — passez par le bouton Renommer (renommage multi-fichiers).
typeNontable / custom / sequence / lookup — détermine l'onglet où apparaît la requête. Vide, le système retombe sur une déduction à partir du nom.
sqlOuiL'instruction SQL avec ses paramètres :placeholder. Peut être une chaîne unique ou une map par dialecte { default = "…", oracle = "…" }. La variante default est obligatoire dans une map.
writableNon (défaut false)Quand false, seul SELECT est autorisé. Passer à true pour INSERT / UPDATE / DELETE / CALL.
paramsNonListe des paramètres déclarés (name, label, default) — donne à chaque :placeholder un champ de formulaire.
labelNonNom court affiché dans les listes déroulantes et les listages.
descriptionNonTexte plus long — affiché dans la liste Tables sous le nom de base. Sert à expliquer ce que la requête retourne.

Enregistrer et recharger — ce que fait un clic

L'enregistrement de cette page est atomique sur deux fichiers quand c'est nécessaire :

Action effectuéeCe qui est écrit
Création ou édition d'une requête sous Tables / Non classéesLe fichier connecteur.
Utilisation du Scaffold pour une séquence ou une rechercheLe fichier connecteur et le fichier dictionnaire (nouvelle entrée sous [connectors.<name>.sequences] ou [connectors.<name>.lookups]).
Duplication d'un connecteur (application entière)Une écriture multi-fichiers qui copie le surcouche du dictionnaire, les écrans, le menu, les graphiques et les tableaux de bord sous le nouveau nom. Passe par un endpoint dédié.
Renommage d'un connecteur, d'une requête ou d'une tableUne mise à jour multi-fichiers qui touche chaque référence (écrans, menus, dictionnaire, graphiques, tableaux de bord). Refuse de s'exécuter quand des modifications locales ne sont pas enregistrées.

Après chaque enregistrement, le framework lance automatiquement un rechargement à chaud. La nouvelle requête est appelable immédiatement — pas de redémarrage, pas de déconnexion.


Ce que vous faites concrètement — carte rapide

ObjectifÀ lire
Générer les quatre requêtes CRUD à partir d'une table réelle de la base.Créer depuis une table de base — le parcours par assistant, recommandé quand la table existe.
Écrire une requête personnalisée (isolée, manuelle).Créer une requête personnalisée.
Faire une copie d'une requête existante ou de toute une application.Dupliquer une requête ou un connecteur.
Ajouter une séquence (prochain id) ou une recherche (source de liste déroulante).Séquences et recherches.
Passer des valeurs à une requête — littérales ou liées (#LOGIN_USER#, colonnes source…).Liaison de paramètres.
Livrer un SQL différent pour Postgres et Oracle.Variantes SQL par dialecte.

Et ensuite