Agent OS/400 - Support du transfert de fichier
Si vous êtes un administrateur, ce document vous guidera pour utiliser le transfert de fichier avec un agent OS/400.
Vous devez toujours faire démarrer les agents OS/400 v9.00A ou ultérieure en tant que processus multithread pour utiliser le nouveau protocole de transfert de fichiers. Pour cela, il faut définir le paramètre ALWMLTTHD dans le JOBD de l'agent sur "YES".
Remarque : ce IFS n'est pris en charge que combiné au nouveau protocole de transfert de fichiers.
Important ! Le nouveau transfert de fichiers est traité dans des threads, ce qui implique que vous ne pouvez utiliser que les systèmes de fichiers suivants :
- "Root" (/)
- QOpenSys
- Défini par l'utilisateur
- QNTC
- QSYS.LIB
- ASP QSYS.LIB indépendant
- QOPT
- Système de fichiers réseau
- QFileSvr.400
Cette rubrique contient les sujets suivants :
Pour le nouveau protocole de transfert de fichiers :
-
On utilise les commandes SE CRTPF et ADDPFM pour transférer les fichiers. Cela signifie que désormais, vous pouvez spécifier les paramètres CRTPFdirectement dans les attributs de transfert de fichiers.
- CRTPF permet de créer un fichier. ADDPFM est traité lorsqu'un fichier existe déjà et que vous souhaitez ajouter un membre.
Si un transfert de fichiers n'est pas clair pour AE, une erreur se produit (telle que : "CPF0001 - Erreur sur commande ADDPFM"). Il peut s'agir d'une erreur qui s'est produite lors du traitement de la commande. Dans ce cas, vous trouverez des informations complémentaires à ce sujet dans le journal du job, qui est directement enregistré dans le SE.
Spécification des fichiers :
Système de fichiers QSYS
Les transferts de fichiers sont soumis à la syntaxe suivante :
Nom de la bibliothèque/nom du fichier(nom du membre)
Les caractères génériques "*" et "?" peuvent être utilisés dans les noms de fichiers et de membres. "*" remplace n'importe quel nombre de caractères et "?" remplace exactement un caractère.
Important ! Aucun nom de membre n'est requis si des caractères génériques sont utilisés dans le nom du fichier.
Vous trouverez de plus amples informations sur les caractères génériques au chapitre décrivant les transferts de fichiers partiellement qualifiés.
Par exemple :
Transférer tous les membres de fichier de TEST :
AE/TEST(*)
ou
AE/TEST()
Transférer tous les membres de fichier de TEST dont le nom commence par la lettre "A" :
AE/TEST(A*)
Transférer tous les membres de fichier de TEST dont le nom est composé de 3 caractères, commence par "A" et se termine par "B" :
AE/TEST(A?B)
Transférer le membre de fichier ABC de TEST :
AE/TEST(ABC)
Transférer tous les fichiers dont le nom commence par TEST :
AE/TEST*
Système de fichiers IFS
IFS (Integrated Filesystem) est un système de fichiers de type UNIX. Les fichiers IFS doivent toujours être indiqués avec le chemin absolu (à partir de la racine) et le nom de fichier final.
Si la spécification du fichier contient le caractère /, alors l'agent accepte qu'il s'agisse d'un fichier IFS.
Par exemple :
/home/AE/test.txt
Les caractères génériques "*" et "?" peuvent être utilisés pour traiter des transferts de fichiers partiellement qualifiés. Ils peuvent être utilisés si nécessaire dans le chemin d'accès et/ou le nom du fichier.
Dans un transfert de fichier individuel, le chemin et le nom du fichier ne respectent pas la casse. Les deux entrées suivantes sont donc identiques :
/home/AbC.txt
/HOME/ABC.txt
Les lettres majuscules ou minuscules ne sont pas différenciées dans les transferts de fichiers à caractères génériques. Les deux entrées suivantes sont donc différentes :
/home/AB*
/home/ab*
Remarque : Une exception est QOpenSys, où les chemins des événements de fichier à caractères génériques ne sont pas sensibles à la casse.
Attributs
Selon le système de fichiers, vous pouvez spécifier tous les attributs pris en charge par OS/400 pour la destination du transfert de fichier. Notez que plusieurs attributs doivent être séparés par une virgule. Les spécifications non valides sont ignorées.
Système de fichiers QSYS
L'agent OS/400 est capable de transférer les types de fichiers *FILE et SAVF. D'autres, tels que *PGM, *RPG, *CLLE, doivent être collectés dans les fichiers SAVF avant de pouvoir être transférés.
Pour les transferts de fichiers SAVF :
- Définir l'attribut reclen=528 dans le fichier source de l'objet Transfert de fichier
- Sélectionner la page de code UC_CODE dans le fichier source et de destination
Pour tous les autres fichiers :
- Si le fichier de destination n'existe pas encore, il sera créé. La commande CRTPF peut être utilisée à cet effet. Les attributs qui peuvent être spécifiés pour la destination du transfert de fichier sont donc les paramètres de cette commande.
Si aucun attribut n'est spécifié, le fichier sera créé avec une longueur d'enregistrement de 80 octets (par défaut). Dans les transferts de fichiers à caractères génériques, MAXMBRS(*NOMAX) est défini par défaut (cela signifie que le fichier n'a pas de limite de membre). Dans les transferts de fichiers individuels, la valeur par défaut du système est utilisée pour MAXMBRS. - Si le fichier de destination existe déjà, ses attributs ne peuvent être remplacés que si l'option "Conserver les attributs d'origine du fichier" est définie dans l'objet Transfert de fichier. Pour ce faire, on utilise la commande CHGPF. Vous pouvez spécifier ses paramètres comme attributs de destination dans l'objet Transfert de fichier.
Vous pouvez utiliser l'option Conserver les attributs d'origine du fichier dans l'objet Transfert de fichier, afin de transférer les attributs du fichier source pour le ou les fichiers de destination. Cela implique que l'agent source et l'agent de destination ont le même système d'exploitation (OS/400 dans ce cas) et Automation Engine v9.00A (ou ultérieur). Sinon, ce paramètre est ignoré.
Les attributs de fichiers pouvant être transférés sont les suivants :
- ACCPTHSIZ : Taille du chemin d'accès
- ALWUPD : Permet l'opération de mise à jour (ALWUPD). Si activé, la mise à jour des enregistrements n'est pas autorisée dans le fichier (*NO).
- ALWDLT : Permet l'opération de suppression (ALWDLT). Si activé, les enregistrements ne peuvent pas être supprimés du fichier (*NO).
- CCSID : ID du jeu de caractères codé
- EXPDATE : Date d'expiration pour les membres
- FRCACCPTH : Chemin d'accès verrouillé de force
- FRCRATIO : Enregistrements pour forcer une écriture
- LANGID : ID de langue
- MAINT : Chemin d'accès, maintenance
- MAXMBRS : Membres maximum
- PAGESIZE : Chemin d'accès, taille page logique
- RCDLEN : Longueur enregistrement, si pas de DDS, DDS contient le format complet de l'enregistrement (clés, champs, relations, etc.)
- REUSEDLT : Réutilise les enregistrements supprimés
- SHARE : Partage chemin données libres
- SIZE : Taille de membre, nombre initial d'enregistrements, incrément des enregistrements, maximum incréments
- TEXT : Texte de description
L'ordre des paramètres n'a pas d'importance.
Exemple
Cet exemple illustre un fichier créé avec une longueur d'enregistrements de 256 octets et le texte 'Fichier FT' comme description :
RCDLEN(256) TEXT('FT File')
Le second exemple illustre un fichier créé avec un nombre maximum de membres sans limite de taille et en réutilisant les enregistrements supprimés :
MAXMBRS(*NOMAX) SIZE(*NOMAX) REUSEDLT(*YES)
Vous pouvez également utiliser le paramètre spécifique TRIM=YES dans le champ Attributs de la source du transfert de fichier. Cette option n'est pas un vrai attribut de fichier, mais est une fonction spécifique à UC4. Elle supprime automatiquement les espaces vides utilisés en début et en fin de chaque ligne des fichiers à transférer. Cette option ne peut pas être combinée avec le système de fichiers IFS.
Vous pouvez également utiliser le paramètre spécifique TRIM=YES dans le champ Attributs de la source du transfert de fichier. Cette option n'est pas un vrai attribut de fichier, mais une fonction spécifique à AE. Elle supprime automatiquement les espaces vides utilisés en début et en fin de chaque ligne des fichiers à transférer. Cette option ne peut pas être combinée avec le système de fichiers IFS.
Système de fichiers IFS :
Les deux attributs de fichier IFS originaux suivants peuvent être utilisés dans le ou les fichiers de destination :
- ccsid : CCSID utilisé pour les données du fichier ou les attributs étendus du répertoire.
- codepage : Page de code dérivée du CCSID utilisé pour les données du fichier ou les attributs étendus du répertoire.
- readonly : Détermine si un fichier en lecture seule est créé.
L'exemple suivant illustre un fichier créé avec la page de code (ccsid) 550 ayant l'attribut READ-ONLY :
ccsid=550, readonly=YES
IFS : Vous pouvez également transmettre les attributs du fichier original au fichier cible, à condition que ce soit défini dans l'objet Transfert de fichier. Les attributs "readonly", "hidden", "system" et "archive" peuvent également être utilisé dans les plateformes ou à partir de fichiers Windows. Vous pouvez également remplacer ces attributs lorsque vous spécifiez le fichier cible. Les attributs "ccsid" et "codepage" ne s'appliquent qu'aux fichiers OS/400.