Créer une LPA sur LPO
On commence par choisir la méthode de chargement !
Condition simple, multiple, requête.. que choisir dans notre cas ?🧐
Dans ce nouvel exemple on change tout par rapport aux cas précédents
Créer une LPA avec une condition simple Créer une LPA avec une condition multiple Créer une LPA avec requête
Le besoin est d’avoir une liste sur l’ergonomie d'une ligne de commande commerciale qui affiche la liste des articles standards présent dans la nomenclature de cette ligne (les composants standards).
Les nomenclatures sont stockées dans des tables ayant des structures peu propices à l’utilisation directe. La très grande majorité du temps on parcours les nomenclatures via des mot-clés et fonctions qui permettent une utilisation beaucoup plus facile.
Pour la réaliser, on pourrait faire une LPA sur requête dans laquelle les informations à afficher seraient toutes déposées dans les champs banalisés de WfEntSel puis repris par une REB d’affichage pour être placées dans des VAC. Visuellement ce serait OK mais les inconvénients seraient les suivants :
Toutes les colonnes seraient des VAC donc non filtrables ➡️ très gênant à l’utilisation pour ce genre de liste potentiellement volumineuse
Le chargement est répartie sur 2 REB où l’info transite dans les champs banalisé de WfEntSel ➡️ manque un peu de lisibilité en maintenance
➡️ La LPA sur LPO va nous permettre de charger la LPA avec une seule REB qui alimente une liste (LPO) à la manière d’un tableur dynamique. Les colonnes de la LPA seront filtrables.
Voilà à quoi ressemblerait la liste que nous souhaitons afficher :
A retenir concernant les méthodes de chargement d’une LPA :
Filtre uniquement sur la table principale ➡️ LPA sur condition simple
Filtre sur la table principale + une autre table ➡️ LPA sur condition complexe
Filtre plus complexe mais les enregistrements à afficher correspondent à une table ➡️ LPA sur requête
Filtre complexe sur des entités Diapason avec un gros volume (problème de perf) ➡️ LPA sur liste sur entité
Les éléments que l’on souhaite mettre dans la LPA sont le fruits d’une consolidation réalisée par requête (comme un tableur dynamique) ➡️ LPA sur LPO
Créer la LPO
On dit parfois que les LPO sont “des VBP sous forme de liste”.
L’entête de la LPO est créé dans le menu suivant :
L’action “Gestion structure” permet définir les champs contenus dans la LPO ➡️ ce sont les champs que l’on affichera dans la LPA.
On peut définir des indexs sur les LPOs comme on le fait pour les tables physiques. En général on en créé un seul qui permettra de définir le l’ordre de tri que l’on veut voir dans la LPA.
L’action “Index” donne accès à l'écran de définition des indexs :
Une fois créée la LPO doit être générée via l’action ci-dessous :
La génération doit être également effectuée après toute modification de la structure.
Créer la requête d’extraction
On a pas encore créé notre liste paramétrée, ce sera dans une étape suivante.
Dans la mesure du possible, faire en sorte que la liste paramétrée et la requête d’extraction aient le même nom.
On commence par créer la requête d’extraction parmi les REB.
Quand l’entête de requête est créé on utilise l’action “Listes partagées objet” pour indiquer à qu’elles LPO la requête aura accès.
On peut ensuite saisir le contenu de la requête :
Créer la liste paramétrée
On commence par aller dans le Studio>Listes Paramétrées:
Et créer une nouvelle liste:
On va ensuite la remplir de la manière suivante:
Onglet Généralités | |
Onglet Définition |
|
Onglet Actions |
|
Ajouter les champs dans la liste paramétrée (“gestion structure”)
Une fois qu’on a créé notre liste paramétrée, il faut venir définir quelles colonnes on souhaite afficher dans cette liste !
Pour cela, on fait clic droit sur notre liste, puis “Gestion structure”:
On accède alors à la liste suivante, qui est pour l’instant vide, et on clique sur “Sélection”, pour venir chercher les colonnes à afficher dans notre liste !
On va ensuite venir sélectionner dans la liste de gauche les colonnes qu’on souhaite avoir dans notre liste ( on peut en sélectionner plusieurs en même temps), et les transvaser dans la liste de droits en cliquant sur les >> au milieu.
Dans le cas d’une LPA sur LPO, les colonnes disponibles sont celles de la LPO plus les éventuelles VAC qui auraient été alimentées dans la requête d’affichage.
➡️ Dans la colonne de droite ce sera toutes les colonnes qu’on aura dans notre liste paramétrée, et elles apparaissent dans l’ordre dans lequel elles apparaitront dans la liste paramétrée !
On peut ensuite valider… et la structure de notre liste s’affiche alors, avec notamment le nom et le format de chaque champs !
On peut d’ailleurs modifier les caractéristiques des champs qu’on souhaite en sélectionnant le champs et en cliquant sur “Car.Colonne” en bas de page:
On peut modifier le libellé de la colonne, son format, sa largeur et sa couleur ! On peut ensuite valider ! |
Une fois que tout est OK, on valide notre liste !
Générer la liste paramétrée
Notre liste est créée.. mais si on ne la génère pas il ne va rien se passer !
On voit que notre liste est à générer car il y a la coche “ A Gen”:
Et pour la générer, on fait clic droit, “Génération”, puis on choisit “Listes sélectionnées” pour générer uniquement la ou les listes qu’on a sélectionnées :
On valide ensuite l'écran suivant :
On peut aussi cliquer sur “Génération” et “Listes à générer” pour générer toutes les listes qui sont à générer !
Tester la liste paramétrée
Et enfin, il ne reste plus qu'à tester !
Dans beaucoup de cas, l’action “Test Liste Paramétrée” permet de vérifier son fonctionnement (voir les 3 exemples précédents Créer une LPA avec une condition simple Créer une LPA avec une condition multiple Créer une LPA avec requête )
Dans notre exemple, la liste est prévue pour fonctionner sur une ergonomie donc pour pouvoir la tester il faut l’ajouter dans l’ergonomie.
C’est expliqué ici.