Cegid XRP Ultimate  |  
I3   Actualisé le 06/10/2022
Fondations
GLDV - Listes de valeurs

   Les listes de valeurs sont liées à une requête SQL définie avec le module Query.

   La plupart des champs des transactions sont assistés par une liste de valeurs associée (via un identifiant et propriétaire).
Certains champs ne pointent pas sur la définition de la liste de valeurs, mais sur une équivalence de colonne. Des liens sont tissés indiquant que l'appel de la liste de valeurs pour un champ X, fonctionne de manière similaire à l'appel pour un champ Y.
D'une façon générale, on définit la portée de la liste de valeurs : associée à la colonne d'une table ou particulière à un champ donné d'une transaction précise.

   La requête SQL liée à la liste de valeurs accepte les jointures et un certain nombre de variables.
La liste de valeurs peut concerner un utilisateur ou tous les utilisateurs. Elle peut ramener de 1 à 5 champs résultats, dans la transaction appelante. De même, elle accepte comme critère de sélection, de 1 à 5 champs issus de la transaction appelante.

   Le nom et la taille des colonnes, ainsi que le titre de la liste de valeurs sont paramétrables.

Données

   Fonctionnalité
   La définition d'une liste de valeurs diffère selon son utilisation :
- Non liée (LDV) : requête de référence ;
- Pour un champ représentant une colonne d'une table (LDVC) : la liste de valeurs sur ce champ est toujours la même quelle que soit la transaction dans laquelle il se trouve ;
- Pour un champ particulier à une transaction (LDVT) : la liste de valeurs sur ce champ est spécifique à cette transaction ;
- Pour un champ en fonction de son utilisation dans le programme (LDVA) : dans une transaction, la liste de valeurs appelée sur ce champ n'est pas toujours la même. Cela dépend de la fonctionnalité du champ.

   Après avoir saisi les clauses de la requête ou après avoir recherché une requête pour la fonctionnalité "LDV : Non liée", dupliquer la ligne de données et choisir son utilisation.
La création d'une nouvelle requête se fait toujours pour la fonctionnalité "LDV : Non liée", ensuite il faut dupliquer la ligne de données et choisir son utilisation.

   Principe général de la recherche d'une liste de valeurs
   La recherche s'effectue selon l'ordre de priorité suivant :

   1 - Listes de valeurs particulières à une transaction pour la transaction courante, le bloc, le champ et l'utilisateur connecté.

   2 - Listes de valeurs particulières à une transaction pour la transaction courante, le bloc, le champ et l'utilisateur "*".

   3 - Si champ dans une transaction gérant une table (Gestion, Consultation) :
                3.1 - Listes de valeurs générales à une colonne pour la table, le champ et l'utilisateur connecté.
                3.2 - Listes de valeurs générales à une colonne pour la table, le champ et l'utilisateur "*".
                3.3 - Equivalence de colonnes pour la table et le champ.
                3.4 - Listes de valeurs générales à une colonne pour la table équivalente, le champ équivalent et l'utilisateur connecté.
                3.5 - Listes de valeurs générales à une colonne pour la table équivalente, le champ équivalent et l'utilisateur "*"

   4 - Si champ dans une transaction ne gérant pas une table (Soumission, Forme sélection) :
                4.1 - Listes de valeurs particulières à une transaction pour le champ et l'utilisateur connecté.
                4.2 - Listes de valeurs particulières à une transaction pour le champ et l'utilisateur "*".

   Listes de valeurs pour un champ représentant une colonne d'une table (LDVC)
   A créer pour :
- une colonne d'une table ;
- des requêtes n'ayant pas de variables en entrée ( ? dans la clause where) ;
- des requêtes ayant un seul champ en sortie.

   Pour cette fonctionnalité, il ne doit y avoir qu'une colonne d'une table par liste de valeurs et application.

   Indiquer si la "Confidentialité est gérée", si la "Recherche est automatique".

   Préciser la "Table" et la "Colonne" auxquelles la liste de valeurs doit être associée.

   Définir éventuellement la liste de valeurs pour un utilisateur particulier autre que "*" qui signifie que la liste de valeurs est définie pour tous les utilisateurs.

   Listes de valeurs pour un champ particulier à une transaction (LDVT)
   Cette fonctionnalité permet de lier une liste de valeurs à un champ précis, dans une transaction donnée.

   A créer pour :
- tous les champs n'étant pas associés à une colonne d'une table et pour tous les champs des soumissions ;
- les listes de valeurs ayant des variables en entrée ( ? dans la clause where) ;
- les listes de valeurs ayant plus d'un champ en sortie (ordre en sortie dans GTRVS renseigné).

   Si la liste de valeurs possède plusieurs champs en sortie (plusieurs ordres en sortie dans GTRVS) et/ou des variables en entrée (? dans la clause where), il faut les définir respectivement dans GTRVS et GTRVE.
Les variables en entrée doivent être de la forme BLOC:CHAMP.
Ce sont les valeurs issues des champs de la transaction appelante qui sont utilisés comme critères de sélection dans la requête SQL.

   Indiquer si la "Confidentialité est gérée", si la "Recherche est automatique".

   Préciser le "Champ", le "Bloc" et la "Transaction" auxquels la liste de valeurs doit être associée.

   Définir éventuellement la liste de valeurs pour un utilisateur particulier autre que "*" qui signifie que la liste de valeurs est définie pour tous les utilisateurs.

   Listes de valeurs pour un champ en fonction de son utilisation dans le programme (LDVA)
   A créer lorsque la liste de valeurs appelée, sur un même champ d'une transaction, est différente selon la fonctionnalité gérée par le programme.

   Généralement, saisir "*" dans le mnémonique pour que ce soit valable pour tous les mnémoniques de l'objet de la transaction, ou un mnémonique particulier si la liste de valeurs ne doit être utilisée que pour ce mnémonique.

   Indiquer si la "Confidentialité est gérée", si la "Recherche est automatique".

   Définir éventuellement la liste de valeurs pour un utilisateur particulier autre que "*" qui signifie que la liste de valeurs est définie pour tous les utilisateurs.

   Listes de valeurs pour les paramètres
   
Liste de valeurs pour un paramètre général (P=*) : la liste de valeurs est associée à un paramètre utilisé pour une seule colonne de table.

   Une requête SQL générale à ce type de paramètre a déjà été définie (QINFERENCEMAJLDV400/IFR).
Une liste de valeurs générale à une colonne existe pour le paramètre GTPAD, occurrence NULGTPAD.
Saisir une équivalence entre la table et la colonne et la table GTPAD et la colonne NULGTPAD.

   Liste de valeurs pour un paramètre particulier : la liste de valeurs est associée à un paramètre utilisé pour plusieurs colonnes de table.

   Une requête SQL générale à ce type de paramètre a déjà été définie (QINFERENCEMAJLDV369600/IFR).
Pour toutes les colonnes associées à des paramètres particuliers (exemple : P=ETA), ou pour les colonnes associées à un paramètre utilisé par une autre colonne, dupliquer cette requête et remplacer $COL par le nom du paramètre.
Pour toutes les colonnes associées au paramètre ETA, faire une équivalence avec GTPAD /ETAGTPAD.
Pour les soumissions ayant un champ portant sur un paramètre, il faut également faire la liste de valeurs pour ce paramètre. On ne peut pas utiliser $COL dans ce cas.

   Requête
   Identifiant de la requête SQL.

   Titre de la liste de valeurs
   Proposé par défaut égal au titre de la requête SQL, celui-ci est modifiable.

   Confidentialité gérée
   Permet de signifier si pour ce champ on veut appliquer ou non la confidentialité (accès à la vue ou à la table).
Si la case est cochée, tous les @ qui accompagnent le nom de la table dans la requête SQL seront remplacés par un "c" (accès à la vue).
Sinon, tous les @ dans la requête SQL seront enlevés sans être remplacés (accès à la table).

   Recherche auto.
   Détermine si lors de l'ouverture de la liste de valeurs, la recherche des valeurs doit s'effectuer automatiquement ou non.

   Propriétaire
   Propriétaire de la requête.
Seules les listes de valeurs dont le propriétaire est "IFR" et pour l'utilisateur "*" sont mises à disposition dans Cegid XRP Ultimate.
Celles dont le propriétaire est "*" ne sont pas disponibles, il s'agit de listes de valeurs développées pour des tests. Elles sont définies avec les mnémoniques GKLDVT ou GLDVT.

   Utilisateur
   Ce champ permet de définir une liste de valeurs pour un utilisateur en particulier, notamment pour tester une liste de valeurs lors de sa création.
"*" signifie que la liste de valeurs est définie pour tous les utilisateurs.

   Select
   Liste des champs sélectionnés, ils correspondent aux colonnes affichées dans la liste de valeurs.

   Attention : toutes les colonnes utilisées doivent être préfixées par le nom de la table ou son alias si défini (exemple : oetie.numoetie ou a.numoetie).

   Des mots-clés jokers internes au progiciel apportent plus de souplesse aux listes de valeurs :
$ets : substitué par l'établissement saisi dans le champ "établissement" de la transaction courante, à défaut celui de connexion. (exemple : gtpara.padgtpar='ROLQAPBP' and gtpara.numgtets='$ets') ;
$etscnx : substitué par l'établissement de connexion ;
$col : substitué par le nom du champ courant (exemple : gtpara.padgtpar='$col' and gtpara.numgtets='$ets') ;
ets$ : le $ est substitué par le nom de la table gérée par le bloc courant (exemple : ets$='etsocecr') ;
$ent : dans le titre et le where, substitué par l'entité confidentielle ;
$lan : substitué par la langue de l'utilisateur connecté ;
$usr ou $USER : remplacé par l'utilisateur connecté ;
? : substitué par la valeur d'un des champs de la transaction courante. On utilisera jusqu'à cinq mots-clés "?" qui seront associés dans le même ordre aux variables définies en entrée (GTRVE) dans la liste de valeurs particulière à une transaction (exemple : gttrb.numgttrb=? and gtobp.prmgtobp =? and gtobp.objgtobp = gttrb.objgttrb).

   From
   Liste des tables ou vues de la requête séparées par une virgule. Le mot-clé FROM ne doit pas être saisi.
La confidentialité est gérée en ajoutant au nom de la table le caractère @ pour accéder au nom de la vue de confidentialité correspondante.

   Where
   Code SQL des conditions de la requête. Le mot-clé WHERE ne doit pas être saisi.

   Group by
   Une fois les lignes de données analysées par la requête, il est parfois intéressant de les rassembler par une ou plusieurs informations identiques. Ce type de regroupement permet de calculer des sommes, des moyennes ou de trouver des maxima ou des minima. Le mot-clé GROUP BY ne doit pas être saisi.

   Having
   De la même façon qu'il est possible de sélectionner certaines lignes de données au moyen de filtres (where), il est possible dans une requête utilisant un regroupement (group by) de sélectionner certains groupes seulement. Le filtre de regroupement suit les mêmes règles que le filtre classique cependant, il ne peut porter que sur des caractéristiques du groupe : fonctions de groupe ou expression figurant dans la clause de regroupement.
La fonction de filtre de regroupement est spécifiée dans une clause particulière commençant par le mot-clé HAVING, celle-ci se place après la clause GROUP BY.
Le mot-clé HAVING ne doit pas être saisi.

   Order by
   Liste des colonnes pour trier la requête, séparées par une virgule. Le mot-clé ORDER BY ne doit pas être saisi.

   Paramètres standard

Boutons poussoirs

   Duplication liste de valeurs
   Duplication de tous les éléments composant une liste de valeurs.

   Tester
   A utiliser pour tester le fonctionnement de la requête SQL.

   Assistant
   Ouvre l'outil de saisie des requêtes SQL : Query.

Transactions associées
   CTLVQ - Identifiants des listes de valeurs

   GECL - Equivalence de colonnes

   GTLBR - Libellés des requêtes

   GTRVS - Variables en sortie des requêtes

   GTRVE - Variables en entrée des requêtes

Paramètres

   FONGTRFN - LDV

   FONGTRFN - LDVC

   FONGTRFN - LDVT

Personnalisation des listes de valeurs

   Pour personnaliser l'appel de la liste de valeurs sur un champ d'une transaction, effectuer une de ces actions :

   Si la liste de valeurs appelée sur le champ dépend du fonctionnement du programme (fonctionnalité "LDVA") :
- noter l'objet, le nom du champ en utilisant la personnalisation de la transaction, ainsi que les identifiants 3,4,5 pour l'objet (voir les objets concernés) ;
- ouvrir GKLDV/GLDV et rechercher pour la fonctionnalité LDVA, ce nom de champ et ces identifiants ;
- après recherche, soit remplacer l'identifiant de la requête par celui de la requête personnalisée, soit dupliquer la ligne de données trouvée en remplaçant l'identifiant de la requête et en précisant un mnémonique.

   Utiliser la "Personnalisation de la transaction", groupe "Champs", groupe "Saisie" ou "Affichage" ou "Critères", puis sélectionner le champ et modifier le numéro de la liste de valeurs dans les "Caractéristiques générales".

   Création ou modification de l'identifiant de la requête d'une liste de valeurs (GLDV) pour la fonctionnalité "LDVT" (Listes de valeurs pour un champ particulier à une transaction).

   Création ou modification de l'identifiant de la requête d'une liste de valeurs (GLDV) pour la fonctionnalité "LDVC" (Listes de valeurs pour un champ représentant une colonne d'une table).

   Création d'une équivalence de colonnes (GECL).