Skip to main content
Skip table of contents

Liste Partagée Objet (LPO)


Introduction

Une liste partagée objet est une table temporaire qui aura une durée de vie variable selon l’endroit où elle sera déclarée : le cadre d’exécution de la liste partagée objet.

Cette table sera accessible dans toutes les requêtes du cadre d’exécution.

Définition d’une LPO

Afin d’utiliser une LPO, il faut tout d’abord déclarer un modèle de liste paramétrée objet. Une LPO sera une instance du modèle de liste partagée objet. On pourra donc manipuler plusieurs LPO possédant le même modèle dans un cadre d’exécution donné.

La définition du modèle de liste partagée objet se trouve dans l’explorateur « Studio DIAPASON », dans la branche « DIALOG »

Localisation

Structure Générale

  • Référence: Référence du modèle.

  • Désignation: Désignation du modèle.

  • Propriétés: Les propriétés sont une liste d’informations qui pourront être renseignées sur une LPO.

Elles sont sélectionnable à partir du Drag & Drop lancé par le bouton.

Ces propriétés sont des variables spécifiques DIAPASON appelées « Variables Propriétés Objets (VPO).

  • Commentaire: Zone commentaire permettant de mettre des remarques diverses sur le modèle.

  • Méthode MAJ: Requête REB de mise à jour de la LPO. Requête dans laquelle on gèrera tous les opérations sur la LPO.

Depuis cette application on accède à la définition de la structure via la barre de commande ou le menu contextuel.

Définition structure modèle de liste partagée objet

  • Référence Info: Référence du champ de la structure

  • Désignation: Désignation du champ de la structure.

  • Numéro d’ordre: Numéro d’ordre dans la structure.

  • Type Trans.Type du champ :

    • Caractère

    • Date

    • Numérique

    • Logique

  • Format Info.: Format du champ, directement lié au type sélectionné précédemment.

A partir de la barre de commande ou du menu contextuel de cette application, on a accès à la définition des index

Définition Index du modèle de liste partagée objet

  • Index: Référence de l’index défini.

  • Désignation: Désignation de l’index défini

  • Primaire ? Logique permettant de définir si un index est primaire ou non. (Index défaut du modèle)Le modèle ne peut avoir qu’un seul index primaire.

  • Unique ? Logique permettant de définir si un index est unique ou non. Si il est unique on ne pourra définir deux modèles dont les valeurs des champs définis dans l’index sont identiques.

  • Définition: Définition des champs de l’index.

Utilisation

Définition d’une Liste Partagée Objet

Pour pouvoir utiliser une LPO dans une requête, il est nécessaire de la déclarer et de la définir sur la requête.

Cette déclaration se fait à partir de l’action « Listes Partagées Objet » du menu contextuel (ou de la barre de commandes) de l’application de définition des requêtes.

Cette action lance une application dans laquelle on définit les LPO qui seront utilisées dans la requête.

  • LPO: Référence de la LPO.

  • Modèle: Référence du modèle de la LPO. On définit ainsi la structure ainsi que les index de la LPO.

  • Désignation: Désignation de la LPO.

  • Type Variable: Type de la variable qui contient l’identifiant de connexion de la LPO. Sélection parmi les types de variables SCR, VAC, VBP, VCR, et XML.

  • Ref. Variable: Référence de la variable qui contient l’identifiant de connexion de la LPO. Sélection parmi les variables du type choisi sur la zone précédente (variables caractère).

  • Connexion: Mode de connexion automatique de la LPO lors du démarrage de la requête. Choix parmi :

[0] Connexion par requête

Il faut utiliser les instructions DIALOG dédiées (LPO-METHODE) pour connecter la LPO.

[1] Connexion effectuée par variable donnée

La variable donnée doit contenir l’instance valide d’une LPO ; dans ce cas elle est connectée automatiquement.

[2] Connexion effectuée par variable donnée (créée si ne peut être connectée)

Identique au cas ci-dessus, mais si la variable est vide ou ne contient pas une instance valide de LPO celle-ci est créée.

[3] Connexion créée systématiquement (mémorisée dans variable donnée)

Création d’une instance de LPO à chaque exécution de la requête.

Comportement

Paramètre le comportement de DIAPASON si à l’issue de la phase précédente la LPO n’est pas connectée. Choix parmi :

[0] Exécuter la requête sans LPO

Exécute la requête même si la LPO n’est pas connectée. Risqué car si une instruction accède à la LPO une erreur non désirée se déclenchera.

[1] Ne pas exécuter la requête (pas d’erreur)

La requête ne s’exécute pas si la LPO n’est pas connectée mais l’utilisateur ne sera pas averti.

[2] Ne pas exécuter la requête (erreur)

Identique au cas ci-dessus, mais un message d’erreur apparaît à l’écran.

Les paramètres recommandés pour une requête se répétant (RCT de contrôle local de tableur dynamique par exemple) sont « 2 » pour le mode de connexion (création de la LPO à la première exécution, puis connexion ensuite) et « 2 » pour le comportement.

Exemple : code DIALOG nécessaire pour connecter une LPO :

VLO.Contexte = VBP.CdeLigPri

VLO.RetFct = LPO-CONTEXTE( ACTION= ACCES-CONTEXTE , LPO= CdeLigPri , CONTEXTE= VLO.Contexte )

SI VLO.RetFct EXISTE ET <> ""

LC-Erreur = CLO."Impossible d'exécuter la requête car la LPO n'est pas disponible"

FIN_BLOC

Remplacé par :

Exemple

Dans cet exemple, nous créerons et alimenterons une LPO dans une requête REB, et récupèrerons les enregistrements dans une autre requête REB lancée en tant que procédure dans la première requête.

Définition de la LPO

On définit la structure et les index de la LPO.

Utilisation dans les requêtes

Sur les trois requêtes de notre exemple (DemLPO, DemLPO_2 et modeleLPOM pour la mise à jour de la LPO), on vient attacher la LPO modeleLPO.

Requête DemLPO

Requête DemLPO_2

Requête ModeleLPOM

Le résultat est le suivant :



JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.