Fonction de script : utilise des critères de filtre pour récupérer ligne par ligne le contenu d'un fichier texte qui se trouve sur un ordinateur donné. Met le résultat à disposition comme liste interne (séquence de données) pour un traitement ultérieur.
PREP_PROCESS_FILE (Host, File, [Filter] [,"COL=Definition1, [Definition2]"], [UC_LOGIN=Login object])
Syntaxe |
Description / format |
---|---|
Hôte |
Ordinateur (nom de l'agent) sur lequel se trouve le fichier. |
Fichier |
Nom du fichier texte devant être lu. Le nom d'un fichier appartenant à un groupe de données peut être récupéré à l'aide de la fonction de script GET_FILESYSTEM. |
Filtre |
Filtre sur le contenu des lignes. La casse des caractères n'est pas prise en compte. |
Définition1 |
Définit si les lignes de la séquence de données doivent être réparties en colonnes. Valeurs autorisées : "NONE" (par défaut), "FILE", "LENGTH" ou "DELIMITER" "NONE" : pas de répartition en colonnes |
Définition2 |
Définit la taille et le nom des colonnes (facultatif) ou le délimiteur. Valeurs autorisées : "LENGTH_TAB" et "DELIMITER"
|
UC_LOGIN |
Nom d'un objet Login. |
Code retour |
---|
Référence à la séquence de données du fichier. |
La fonction de script PREP_PROCESS_FILE fournit le contenu d'un fichier texte, par exemple un fichier journal ou de trace, qui sera traité ultérieurement à l'aide des scripts AE.
Cette fonction de script lit une ligne complète d'une séquence de données. Vous pouvez aussi y accéder lorsque les lignes sont réparties en colonnes. Les règles suivantes s'appliquent :
Les colonnes peuvent aussi être définies dans le fichier lui même (première ligne).
Exemple :
COL=LENGTH,LENGTH_TAB='74=PATH,25=NAME,5=VALUE,2=STATUS,9=DATE,7=TIME'
GET_PROCESS_LINE permet d'accéder à chaque colonne.
Le paramètre facultatif UC_LOGIN permet d'assigner le nom d'un objet Login à la fonction de script. L'accès au fichier à lire et son transfert de l'hôte à l'Automation Engine sont exécutés à l'aide des données de connexions définies dans l'objet Login. Le privilège "Transfert de fichiers" est nécessaire : Exécuter sans indiquer l'ID utilisateur" si la fonction de script PREP_PROCESS_FILE doit être utilisée sans le paramètre UC_LOGIN.
Le code retour de la fonction de script est la référence à cette séquence de données. Elle est transmise en tant que paramètre de démarrage aux instructions de script :PROCESS et :ENDPROCESS. En combinaison avec la fonction de script GET_PROCESS_LINE, vous pouvez traiter chaque ligne et les colonnes correspondantes, de la séquence de données.
Aucun message d'erreur n'est affiché si le fichier ne contient pas le contenu requis. Le traitement de la séquence de données, défini entre :PROCESS et :ENDPROCESS, n'est tout simplement pas lancé.
Aucune nouvelle valeur ne peut être attribuée à la variable de script contenant la référence de la séquence de données. La variable ne peut être réutilisée que si vous supprimez explicitement la séquence de données avec l'instruction de script :CLOSE_PROCESS.
PREP_PROCESS_FILE n'est pris en charge que par des agents de système d'exploitation. Il ne peut pas être utilisé en relation avec des agents pour les bases de données, les applications Oracle, PeopleSoft, SAP, JMX ou Rapid Automation.
Notez que le traitement de fichiers très gros peut affecter les performances de l'agent.
L'instruction de script écrit toutes les transactions ouvertes du script dans la base de données AE.
Le premier exemple affiche toutes les lignes du fichier "\\FServer\UC4\BSP\INPUT.TXT" qui contiennent la chaîne de caractères "Start", dans le protocole d'activation.
:SET &HND#=PREP_PROCESS_FILE(WIN21,"\\FServer\UC4\BSP\INPUT.TXT","*Start*")
:PROCESS &HND#
: SET &LINE#=GET_PROCESS_LINE(&HND#)
: PRINT &LINE#
:ENDPROCESS
Le deuxième exemple lit toutes les lignes d'un fichier alors que le paramètre "COL=FILE" spécifie que le nom et la taille des colonnes sont définis dans le fichier lui-même. L'objet Login est utilisé pour la connexion.
:SET &HND = PREP_PROCESS_FILE(WIN21, "\\FServer\LOG.TXT", ,"COL=FILE",'UC_LOGIN=UC4FT')
Le troisième exemple est similaire à celui ci-dessus, cependant, le paramètre "COL=LENGTH" signifie que des définitions des colonnes sont spécifiées par le paramètre suivant. Les définitions de colonnes peuvent être une taille de colonne qui est attribuée à un nom de colonne ou une taille seulement. Les colonnes sans nom sont ignorées.
:SET &HND = PREP_PROCESS_FILE(WIN21, "\\FServer\UC4\DIALOG\TEMP\UCDJ_LOGG_01.TXT","*DB-INFO*","COL=LENGTH,LENGTH_TAB='8=DATE,1,6=TIME,7,200=TEXT'")
Dans l'exemple suivant, le paramètre "COL=DELIMITER" indique qu'un séparateur est spécifié avec le paramètre suivant : une tabulation. Le script affiche la troisième colonne.
:SET &HND# = PREP_PROCESS_FILE(UNIX01, "/uc4/test.txt",,"COL=DELIMITER,DELIMITER=*<TAB>*")
:PROCESS &HND#
: SET &LINE# = GET_PROCESS_LINE(&HND#,3)
: PRINT &LINE#
:ENDPROCESS
Rubriques connexes :
Elément de script | Description |
---|---|
Supprime une séquence de données inutile. |
|
Définissent une boucle pour le traitement par lignes d'une séquence de données, comme le contenu d'un fichier séquentiel ou le résultat de type texte d'une commande. |
|
Récupère le contenu de la ligne courante d'une séquence de données. |
Eléments de script - Séquences de données
Généralités sur les scripts
Eléments de script - Liste alphabétique
Eléments de script - Répartition fonctionnelle