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.
Format : littéral de script ou variable de script

File

Nom du fichier texte devant être lu.
Format : littéral de script ou variable de script

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.

Format : littéral de script ou variable de script
Valeur par défaut : "*"

Definition1

Définit si les lignes de la séquence de données doivent être réparties en colonnes.
Format : littéral de script ou variable de script

Valeurs autorisées : "NONE" (par défaut), "FILE", "LENGTH" ou "DELIMITER"

"NONE" : pas de colonnes
"FILE" : les colonnes sont définies dans le fichier
"LENGTH" : taille spécifiée des colonnes. Requiert LENGTH_TAB= dans Definition2
"DELIMITER" : les colonnes sont séparées par un délimiteur. Requiert DELIMITER= dans Definition2.

Definition2

Définit la taille et le nom des colonnes (optionnel) ou le délimiteur.
Format : littéral de script ou variable de script

Valeurs autorisées : "LENGTH_TAB" et "DELIMITER"

  • "LENGTH_TAB"

    La taille et le nom des colonnes (optionnel) sont indiqués sous la forme suivante : Taille de colonne=[nom de colonne]. La taille de la colonne est définie par un nombre de caractères. Les colonnes doivent être séparées par des virgules (22 colonnes maximum). Des apostrophes doivent apparaître avant la première et après la dernière définition de colonne. Si des guillemets sont utilisés pour Definition2 comme littéral de script, les apostrophes doivent être utilisées pour les spécifications et vice versa.

    Exemple

    "COL=LENGTH,LENGTH_TAB='3=drive,100=file name'"
  • "DELIMITER"

    Le caractère de séparation est indiqué sous la forme *Délimiteur*.
    "*" : caractère de séparation libre.
    Délimiteur
    : chaîne de 10 caractères maximum, séparant les colonnes. Si des apostrophes sont utilisés comme délimiteurs, la phrase complète COL=Definition1[,Definition2] doit être entre guillemets et vice versa.

    Valeur par défaut : Point-virgule (;)

    Exemple

    "COL=DELIMITER,DELIMITER=*'*"

    'COL=DELIMITER,DELIMITER=@"@'


    Les tabulations peuvent également être définies comme séparateurs :

    'DELIMITER=<TAB>'

UC_LOGIN

Nom d'un objet Login.
Format : littéral de script ou variable de script


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 :

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 :

voiraussi

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