LPO-CONTEXTE
BUT
Les listes gérées par DIALOG peuvent être partagées entre requêtes au sein d’un même objet applicatif ou bien entre objets applicatifs. Ces listes sont à définir comme des Listes Partagées Objet (LPO) au niveau de la définition de chaque requête les utilisant et seront considérées comme des tables temporaires par Diapason. Chaque liste de ce type doit être rattachée à la requête utilisatrice et dispose d’une référence permettant de l’identifier dans plusieurs requêtes.
Cette fonction permet de gérer le partage de ces listes entre requêtes DIALOG.
Lors de la création du contexte d’utilisation, une référence lui est affectée et permet de l’identifier par la suite. Cette référence de liste partagée peut être utilisée dans une requête ultérieure pour parcourir et maintenir le contenu de cette liste.
Cette fonction peut être utilisée dans les requêtes de type GCQ, PSD, RCT, REB et RN5.
TYPE
Caractère (rubrique fonction gestion).
SYNTAXE
Variable = LPO-CONTEXTE( ACTION=Action
, LPO = Nom_Liste_Partagée_Objet,
, E-S :CONTEXTE = Référence_Contexte)
PARAMETRES
Paramètre | E/S | O | Type | Description |
ACTION | E | Oui | Paramètre | Ce paramètre permet d'indiquer l'action effectuée à par la fonction; les actions possibles sont :
|
LPO | E | Oui | Paramètre | Ce paramètre permet d’identifier la liste partagée qui va être créée ou vérifiée au niveau existence; la liste des valeurs de LPOs présentées correspond à celle définie sur la requête (action LPO sur l'application de définition des requêtes) et présente les noms des listes qui seront utilisés dans la requête. |
E-S :CONTEXTE | E-S | Oui | Caractère | Paramètre donné sous forme de variable locale ou variable contextuelle. - Pour l'action CREATION-CONTEXTE, la fonction retourne une variable contenant l'identifiant de la liste qui pourra être utilisé dans d'autres requêtes pour utiliser cette même liste. - Pour l'action DISPONIBILITE-CONTEXTE, la fonction reçoit en entrée une variable contenant l'identifiant de la liste à utiliser dans la requête et qui a été auparavant défini avec l'option CREATION-CONTEXTE dans une autre requête. |
EXEMPLE
La liste partagée objet dont la référence est "Famille" a été rattachée à une requête. L'instruction ci-dessous permet de créer cette liste partagée objet pour l'utiliser dans cette requête (Action CREATION-CONTEXTE) et lui donner une référence (contenue dans la variable critère VCR.Reference_LPO) pour l'utiliser dans une autre requête :
VLO.Fonction = LPO-CONTEXTE( ACTION= CREATION-CONTEXTE , LPO= Famille , E-S:CONTEXTE= VCR.Reference_LPO )
Si VLO.Fonction = CLO.""
...
La liste partagée objet dont la référence est "Famille" a été rattachée à une requête. L'instruction ci-dessous permet d'indiquer à la requête d'utiliser cette liste partagée objet (Action DISPONIBILITE-CONTEXTE) pour l'utiliser dans la requête (cette LPO a été créée dans une autre requête et sa référence est définie dans la variable critère CVR.Reference_LPO) :
VLO.Fonction = LPO-CONTEXTE( ACTION= ACCES-CONTEXTE , LPO= Famille , E-S:CONTEXTE= VLO.Reference_LPO )
Si VLO.Fonction = CLO.""
...
NOTES
La fonction retourne dans la variable résultat une valeur non nulle ou non vide lors de toute anomalie d’exécution. Si le code retour de la fonction n'est pas utilisé pour tester l'exécution des instructions suivantes qui utilisent la liste partagée objet, des anomalies d'exécution seront générées lors de l'exécution des instructions de parcours et de gestion de la liste.
Le rattachement des listes partagées objet est nécessaire dans toutes les requêtes où elles sont utilisées, que ces requêtes soient principales ou procédures ; ces instructions doivent être utilisées dans chaque procédure.
Une liste partagée objet est visible au sein de toutes les requêtes interactives d'un objet applicatif l'ayant créé. Par exemple, si une LPO est créée dans la requête d'initialisation du tableur dynamique, celle-ci est visible dans toutes les requêtes de ce tableur dynamique, sauf dans la requête de validation si celle-ci est exécutée en mode désynchronisé batch.
La visibilité de la liste partagée objet ainsi gérée est liée à celle de l'objet applicatif dans lequel cette liste a été créée. Exemple : soit un tableur dynamique 1 (TD1) qui lance sur une action un tableur dynamique 2 (TD2), ce dernier (TD2) lançant sur une action un autre tableur dynamique 3 (TD3) ; si une LPO est créée dans la requête d'initialisation de TD2 par exemple, cette LPO est visible et utilisable dans les requêtes interactives de TD2 et dans toutes les requêtes de TD3, mais pas dans les requêtes de TD1.