PREP_PROCESS_VAR et PREP_PROCESS_VAR_XML

Fonctions de script : Utilise des critères de sélection pour récupérer une liste de valeurs d'objets VARA et donne le résultat sous forme de liste interne (séquence de données) pour un traitement ultérieur. 

Syntaxe

PREP_PROCESS_VAR (Variable [,Key [,Value [, Column]]])
PREP_PROCESS_VAR_XML (Variable, Key ,Value)

Syntaxe

Description / format

Variable

Nom de l'objet variable dont les valeurs doivent être lues.
Format: Nom AE, littéral de script ou variable de script

Key

Filtre pour la colonne Clé.
Format : littéral de script ou variable de script
64 caractères maximum.
Valeur par défaut : "*"

Pour les variables dynamiques, la colonne clé est toujours la première colonne de valeurs. La colonne Résultat est créée une fois les entrées de variable récupérées.

Vous pouvez utiliser les caractères génériques "*" et "?". "*" signifie n'importe quelle chaîne de caractères et "?" exactement un caractère.

Value

Filtre pour la valeur.
Format : littéral de script ou variable de script
Format pour objet Variable XML : XPath (format : string)
64 caractères maximum.
Valeur par défaut : "*"

Vous pouvez utiliser les caractères génériques "*" et "?". "*" signifie n'importe quelle chaîne de caractères et "?" exactement un caractère.

Le format de l'objet de variable XML doit être le même pour les deux fonctions de script.

Column

Filtre pour colonne de valeur particulière d'un objet Variable.
Format : littéral de script, variable de script ou nombre sans guillemets.

Les caractères génériques ne doivent pas être utilisés.

Valeurs autorisées :
Objets VARA STATIC : "1" à "5"
Objets VARA XML statiques : "1"
Objets VARA dynamiques : "1" à x

Pour ne filtrer que la valeur, vous devez également mettre une virgule avant.

Exemple

:SET &HND# = PREP_PROCESS_VAR("DB.MAINTENANCE",,"CLIENT", 1)


Code retour

Référence de la séquence de données de l'objet variable.

Ces fonctions de script lisent la valeur d'un objet Variable. Vous pouvez limiter les valeurs à lire via les paramètres optionnels Key et Value. Vous pouvez également utiliser les caractères génériques "*" et "?" dans ces paramètres. La saisie est sensible à la casse.

Pour la fonction de script PREP_POCESS_VAR_XML, il faut spécifier les trois paramètres.

Value se réfère au contenu d'une colonne de valeurs. Column détermine le numéro de la colonne de valeurs qui doit être parcourue. La première colonne de valeurs est automatiquement utilisée si la colonne n'est pas indiquée. Les variables statiques possèdent 5 colonnes de valeurs. Le nombre de colonnes des variables dynamiques n'est pas limité et dépend de la source de données ou des paramètres dans l'objet variable.

La fonction de script PREP_PROCESS_VAR_XML ne peut être utilisée qu'avec l'objet de variable XML qui propose une seule colonne de valeur.

Le paramètre Colonne ne peut être utilisé que combiné à Valeur. La spécification d'une colonne n'est valide que si vous spécifiez le filtre Valeur.

Vous pouvez sélectionner certaines colonnes. Chaque entrée de variable sélectionnée et renvoyée contient les valeurs de toutes les colonnes (y compris la colonne clé ou résultat).

Notez que les caractères génériques ne sont pas autorisés dans Value si la variable est de type "Nombre". Cette fonction de script renvoie soit toutes les entrées soit celles affichant exactement la valeur spécifiée.

Une chaîne vide ("") utilisée pour définir le filtre équivaut à ("*"). Toutes les valeurs sont renvoyées.

Si vous ne spécifiez ni clé ni valeur, toutes les entrées de l'objet Variable sont renvoyées.

Le code retour de cette fonction de script est la référence d'une séquence de données. Elle est transmise en tant que paramètre de démarrage aux instructions de script :PROCESS et :ENDPROCESS. Si vous l'utilisez en combinaison avec la fonction de script GET_PROCESS_LINE, vous pouvez maintenant accéder à chacune des lignes de l'objet variable.

Aucun message d'erreur n'apparaît si l'objet variable ne contient pas les valeurs recherchées. Le traitement de la séquence de données, défini entre :PROCESS et :ENDPROCESS, n'est tout simplement pas lancé.

Les noms des objets VARA contenant une variable doivent être indiqués entre guillemets. Sinon, un message d'erreur s'affichera.

Aucune autre valeur ne peut être attribuée à la variable de script contenant la référence de la séquence de données. La séquence de données doit être supprimée via l'instruction de script CLOSE_PROCESS avant de pouvoir réutiliser la variable.

Remarque relative aux variables SQL (SQL, SQLI) : Le nombre de lignes renvoyées avec le paramètre SQLVAR_MAX_ROWS (UC_SYSTEM_SETTINGS - Paramètres système) est limité. Ainsi, lorsque vous spécifiez la valeur 1000, le système ne renvoie que les 1000 premières lignes.
Vous pouvez limiter les lignes renvoyées avec la clé, mais pas avec la valeur spécifiée. Cela signifie que lorsque vous définissez un filtre pour une certaine valeur en combinaison avec l'élément de script PREP_PROCESS_VAR, le système ne recherche cette valeur que dans le nombre de lignes maximum défini. Cependant, lorsque vous définissez une clé, elle est transmise à la base de données et utilisée pour la recherche. En présence de tables contenant de nombreuses entrées, filtrez par clé, plutôt que par valeur car sinon le système risque de ne renvoyer aucune entrée.

Exemples

L'objet Variable suivant est utilisé pour les exemples ci-après :

Dans l'exemple 1, le système extrait toutes les valeurs et, dans la boucle de traitement, les écrit dans le rapport d'activation via l'instruction de script :PRINT.

:SET &HND#=PREP_PROCESS_VAR(DATABASE_MAINTENANCE)
:
PROCESS &HND#
:   
SET &VK# = GET_PROCESS_LINE(&HND#,1)
:   
SET &VALUE# = GET_PROCESS_LINE(&HND#,2)
:   
PRINT "&VK# &VALUE#"
:
ENDPROCESS

:
CLOSE_PROCESS &HND#

Dans l'exemple 2, le système ne lit que les entrées dont la clé commence par "client".

:SET &HND#=PREP_PROCESS_VAR(DATABASE_MAINTENANCE,"Client*")
:
PROCESS &HND#
:   
SET &VK# = GET_PROCESS_LINE(&HND#,1)
:   
SET &VALUE# = GET_PROCESS_LINE(&HND#,2)
:   
PRINT "&VK# &VALUE#"
:
ENDPROCESS

:
CLOSE_PROCESS &HND#

Exemple d'utilisation de PREP_PROCESS_VAR_XML. Dans cet exemple, le système lit la valeur des lignes de séquence de données représentée par les variables de script &VALUE# et &GB#, entraînant la lecture des valeurs "A/B" de la clé "KEY01" de l'objet VARA XML "VARA.XML" :

:SET &HND# = PREP_PROCESS_VAR_XML(VARA.XML, "KEY01", "A/B")
:PROCESS &HND#
: SET &GB# = GET_PROCESS_LINE(&HND#,1)
: SET &VALUE# = GET_PROCESS_LINE(&HND#,2)
: PRINT "&GB# &VALUE#"
:ENDPROCESS

Voir aussi :

voiraussi

Eléments de script - Séquences de données