SUPPRESSION-CTX
BUT
Cette fonction permet de supprimer dynamiquement le contexte d’une ou plusieurs variables d’un type donné en identifiant le nom de ces variables sous la forme de variables. La suppression n’est effective qu’après l’exécution de la requête. Le type de variable correspond au type DIAPASON (VCR, VBP, VBA, …) pouvant être initialisé dans le type de la requête (PSD, GCQ, …).
Cette fonction est disponible uniquement pour les requêtes de type GCA, GCL, GCQ, PSD, RN1, RN2 et RN5, et ne concerne que certains types de variables DIAPASON qui ne sont pas des tableaux.
TYPE
CARACTERE (rubrique fonction de gestion).
SYNTAXE
Variable = SUPPRESSION-CTX (TYPE-VARIABLE = (Type suivant contexte),
ACTION = SUPPRESSION-DE-TOUTES-LES-VARIABLES
Ou SUPPRESSION-VARIABLES-DE-LA-LISTE
Ou CONSERVATION-VARIABLES-DE-LA-LISTE
LISTE-VARIABLES = Liste chainée variables à traiter
)
PARAMETRES
Paramètre | E/S | O | Type | Description |
TYPE-VARIABLE | E | Oui | Caractère | Type contextuel de variable DIAPASON. Les valeurs possibles dépendent du type de requête et sont données par DIALOG. Exemple requête PSD: les types possibles sont VBP, VCR ou VSD. Exemple requête GCA, GCL, GCQ, RN1, RN2 et RN5: les types possibles sont VBP ou VBA. |
ACTION | E | Oui | Caractère | SUPPRESSION-DE-TOUTES-LES-VARIABLES : toutes les variables du type précédemment sélectionné vont être supprimées du contexte d’exécution de la requête SUPPRESSION-VARIABLES-DE-LA-LISTE : les variables du type précédemment sélectionné et dont le nom est défini dans le paramètre suivant LISTE-VARIABLE vont être supprimées du contexte d’exécution de la requête CONSERVATION-VARIABLES-DE-LA-LISTE : les variables du type précédemment sélectionné et dont le nom n’est pas défini dans le paramètre suivant LISTE-VARIABLE vont être supprimées du contexte d’exécution de la requête |
LISTE-VARIABLES | E | Oui | Caractère | Liste des noms de variables utilisées pour l’action précédemment sélectionnée ; cette liste est donnée sous forme de liste chainée, avec pour séparateur le caractère «,» (virgule). Cette information peut être donnée sous forme de constante, de variable locale ou de variable contextuelle. |
EXEMPLE
VLO.Fct = SUPPRESSION-CTX( TYPE-VARIABLE=VBP, ACTION= SUPPRESSION-DE-TOUTES-LES-VARIABLES )
L’instruction ci-dessus permet de supprimer toutes les variables partagées VBP du contexte d’exécution à la fin de cette requête.
VLO.Liste = CLO.’Article,Client’
VLO.Fct = SUPPRESSION -CTX( TYPE-VARIABLE=VBP, ACTION= SUPPRESSION-VARIABLES-DE-LA-LISTE , LISTE-VARIABLES= VLO.Liste)
Les 2 instructions ci-dessus permettent de supprimer les variables partagées VBP.Article et VBP.Client du contexte d’exécution à la fin de cette requête.
VLO.Liste = CLO.’Article,Client’
VLO.Fct = SUPPRESSION -CTX( TYPE-VARIABLE=VBP, ACTION= CONSERVATION-VARIABLES-DE-LA-LISTE , LISTE-VARIABLES= VLO.Liste)
Les 2 instructions ci-dessus permettent de supprimer toutes les variables partagées du contexte d’exécution à la fin de cette requête, sauf les variables VBP.Article et VBP.Client.
NOTES
La fonction retourne dans la variable résultat la valeur *INC lors de toute anomalie d’exécution et la valeur vide pour toute exécution correcte.
La suppression du contexte signifie pour DIAPASON que la variable n’a jamais été utilisée auparavant dans le contexte d’exécution applicatif dans lequel il se trouve ; si ce contexte d’exécution est par la suite partagé avec un autre contexte applicatif, ce dernier disposera de la valeur défaut (si variable utilisée) ou inconnue (VAR-CTX) pour chaque variable ayant fait l’objet de la suppression de contexte.
Après l’exécution de cette fonction, DIAPASON mémorise la liste des variables à conserver ou supprimer. La suppression n’étant effective qu’après l’exécution de la requête, ces variables restent accessibles avec leurs valeurs jusqu’à la fin de la requête.
Cette instruction n’a pas d’effet dans la requête GCA-I en mode *INI si utilisation par la fonction ENR-ACT-ENT.
DIAPASON mémorise pour chaque type de variable l’action de mise à jour à exécuter ; si cette instruction est utilisée à plusieurs reprises pour le même type de variable, c’est la dernière instruction rencontrée lors de l’exécution qui sera réalisée effectivement.
Si cette instruction est rencontrée et qu’une instruction de sortie directe de requête est exécutée par la suite (du type QUITTER ou SUIVANT) dans le bloc principal de la requête, l’instruction SUPPRESSION-CTX ne sera pas exécutée.