Aller au contenu principal

Dupliquer une requête ou un connecteur

La page Connecteurs de Liberty propose trois dispositifs de duplication, chacun avec une portée différente. Ils se ressemblent — boutons Cloner juxtaposés — mais touchent des fichiers différents et demandent des saisies différentes. Mieux vaut choisir le bon : chacun écrit plus ou moins de choses.

DispositifPortéeFichiers touchés
Duplication par requêteUne seule requête.Le fichier connecteur uniquement.
Dupliquer une tableLes quatre requêtes CRUD d'une table.Le fichier connecteur uniquement.
Dupliquer l'applicationLe connecteur entier + tout ce qui en dépend.Fichier connecteur + dictionnaire + écrans + menu + tableaux de bord + graphiques.

Chacun est détaillé ci-dessous avec ses cas d'usage.


Vue d'ensemble​

monthly_revenue← RetourFind usagesRenommerChanger le typeDéplacerClonerSupprimerSELECT date_trunc('month', invoice_date) AS MONTH, SUM(total) AS REVENUE FROM invoices GROUP BY 1Cloner la requêteNouveau nom pour la copie de « monthly_revenue » :monthly_revenue_copyAnnulerClonerBoutons de la requêterenommer, déplacer, cloner…Clonermême SQL, params, variantesNouveau nom<nom>_copy proposé

Duplication par requête​

Un bouton Cloner se trouve en haut à droite de l'éditeur de requête unique (vues Requêtes, Séquences et Lookups). Le clic :

  1. Demande un nouveau nom (par défaut <original>_copy).
  2. Copie en profondeur la requête — seul le nom diffère ; SQL, params, writable, label, description, map SQL par dialecte, chaque champ imbriqué est cloné en JSON et indépendant.
  3. Ajoute la copie à la liste des requêtes du connecteur.
  4. Sélectionne la copie, prête à être modifiée.

La page est alors modifiée — appuyez sur Enregistrer dans la barre d'outils du haut pour persister.

Quand l'utiliser​

MotifPourquoi dupliquer
Une variante d'une requête existante — même forme, filtre différent.La copie conserve les params et les variantes SQL ; seule la clause WHERE reste à modifier.
Un _v2 d'une requête, l'ancienne restant en place.Permet à un écran de continuer à utiliser l'ancienne requête pendant qu'un nouvel écran câble la nouvelle.
Un essai.La copie se modifie librement, l'original reste intact.

Ce qui change — et ce qui ne change pas​

IdentiqueModifié
SQL, params, writable, label, description, map par dialecte.Seul le name.
Les références multi-fichiers vers l'original — elles continuent de pointer sur l'original. La copie est une toute nouvelle requête que personne ne référence encore.

Pour reporter les références sur la copie, il faut un Renommer, pas une Duplication (et le Renommage est destructif — il supprime l'ancien nom une fois les références reportées).


Dupliquer une table​

Quand le volet droit est en mode Tables, chaque ligne porte une icône Cloner (l'icône de copie à droite des badges d'emplacement CRUD). Le clic :

  1. Demande un nouveau nom de base (par défaut <base>_copy).
  2. Copie en profondeur chaque emplacement CRUD de la table — <base>_get → <copy>_get, <base>_put → <copy>_put, etc. Seuls les emplacements présents sont dupliqués (une table en lecture seule avec seulement _get produit une seule copie de requête).
  3. Ajoute les copies à la liste des requêtes.
  4. Sélectionne le nouveau nom de base dans la liste Tables.

Quand l'utiliser​

MotifPourquoi
Deux écrans qui partagent une même forme de table mais nécessitent des filtres ou listes de colonnes différents.Dupliquez, modifiez la clause SELECT du _get sur la copie. Les deux écrans restent indépendants.
Version bac à sable d'une table de production.Dupliquez vers <base>_sandbox, pointez sur un schéma bac à sable, les écrans conservent l'original.
Variante par locataire en mode multi-tenant.Dupliquez par locataire, échangez le nom de schéma dans chacun. (Pour un identifiant de locataire unique passé à l'exécution, utilisez plutôt des paramètres :placeholder sur une requête partagée — voir Liaison de paramètres.)

La duplication est une copie ponctuelle — les éditions futures de l'original ne se propagent pas. Pour « une définition, plusieurs invocations », utilisez le SQL par dialecte (même pool de connecteur, bases différentes) ou des params partagés (une requête, valeurs liées différentes).


Dupliquer l'application — l'application entière​

La plus grosse des trois. Accessible depuis :

  • Le bouton Cloner dans l'onglet Paramètres du volet droit quand un connecteur de classe Applications est sélectionné, ou
  • Ce même bouton Dupliquer pour n'importe quel connecteur — la fenêtre permet de choisir lequel dupliquer.

La fenêtre demande trois valeurs :

ChampRôle
Connecteur sourceLe connecteur à copier. Par défaut, celui qui était sélectionné.
Nouveau nomLa nouvelle clé de connecteur (minuscules, commence par une lettre — mêmes règles d'identifiant qu'ailleurs).
PoolLe pool sur lequel le nouveau connecteur doit s'exécuter. Doit déjà exister dans Liberty Next → Administrer → Pools.

Cliquer sur Cloner déclenche une copie multi-fichiers via un endpoint dédié. Liberty :

  1. Copie l'entrée du connecteur vers la nouvelle clé, avec le nouveau pool câblé.
  2. Copie la surcouche dictionnaire du connecteur (le bloc [connectors.<source>] du dictionnaire).
  3. Copie les écrans de ce connecteur.
  4. Copie le menu de ce connecteur.
  5. Copie les tableaux de bord et graphiques rattachés au connecteur.
  6. Recharge le framework pour que la nouvelle application apparaisse immédiatement dans le sélecteur du haut.

La bannière de statut indique le nombre d'entrées copiées ; d'éventuels avertissements (par ex. clé d'application de menu non renommée) accompagnent le message.

Quand l'utiliser​

MotifExemple
Déploiement parallèle pour tests.Dupliquez nomasx1 vers nomasx1b, pointez sur un pool de base fraîche, exécutez les tests de régression sur la copie.
Instance par client.Dupliquez l'application de base par locataire ; chacun obtient son propre pool, sa surcouche dictionnaire et son menu.
Version majeure d'une application.Dupliquez crm vers crm_v2, faites des refontes destructives sur crm_v2, gardez l'ancien en service jusqu'à la bascule.

Contraintes​

ContraintePourquoi
Le nouveau pool doit déjà exister.La duplication ne crée pas de bases — câblez d'abord le pool via Liberty Next → Administrer → Pools.
Le connecteur source ne doit pas comporter de modifications non enregistrées.La duplication lit depuis le disque ; les modifications locales non enregistrées seraient manquées. Le bouton est désactivé dans l'état modifié, avec une infobulle explicative.
Le nouveau nom ne doit pas entrer en collision.Le framework rejette les clés de connecteurs en doublon ; la fenêtre valide avant soumission.

Côte à côte​

Vous voulez…Utilisez
Une copie d'une requête (filtre différent, variante SQL).Duplication par requête.
Une copie de chaque emplacement CRUD d'une table.Dupliquer une table.
Une copie de chaque requête + entrées de dictionnaire + écrans + menu + tableaux de bord + graphiques.Dupliquer l'application.
Une nouvelle requête avec le même nom pointant ailleurs.Ne dupliquez pas — renommez l'existante et créez-en une nouvelle.
La même requête s'exécutant sur une autre base.Ne dupliquez pas — changez le pool du connecteur dans Liberty Next → Administrer → Pools, ou utilisez une map SQL par dialecte.

Et ensuite​