PREP_PROCESS_FILE
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.
Syntaxe
PREP_PROCESS_FILE (Host, File,[ Filter] [, "COL=Definition1[, Definition2]"][, UC_LOGIN=Login object])
Syntaxe |
Description / format |
---|---|
Host |
Ordinateur (nom de l'agent) sur lequel se trouve le fichier. |
File |
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. |
Filter |
Critère de filtre pour le contenu des lignes. Insensible à la casse. |
Definition1 |
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 colonnes |
Definition2 |
Définit la taille et le nom des colonnes (optionnel) ou le délimiteur. Valeurs autorisées : "LENGTH_TAB" et "DELIMITER"
|
UC_LOGIN |
Nom d'un objet Login. |
Code retour |
---|
Référence de 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 :
- 22 colonnes maximum d'une longueur totale de 2 048 octets
- Largeur de colonne de 255 caractères maximum et
- Nom de colonne de 32 caractères maximum.
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 optionnel 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. L'utilisateur doit avoir le privilège "Transfert de fichiers : 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 de 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'apparaît, si le rapport ne contient pas le contenu recherché. 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. Pour plus d'informations, voir Traitement du script.
Exemples
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 rapport 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
Voir aussi :