CVTDLSNAM
Convertir un nom DLS
En bref
La commande CVTDLSNAM s'utilise avant ou après une modification du CCSID utilisé par défaut pour les noms d'objet EBCDIC par QDLS.
CVTDLSNAM se lit CVT
(Convertir) + DLSNAM.
Sur IBM i, le nom d'une commande associe presque toujours un verbe et un objet.
Syntaxe minimale
CVTDLSNAM OBJ(…)
Paramètres
-
OBJObjet obligatoire -
SUBTREEBranche du répertoire -
ACTIONAction -
PREVIEWPrévision des résultats -
FROMCCSIDCCSID d'origine -
TOCCSIDCCSID de destination
Astuce : dans une session 5250, tapez CVTDLSNAM puis F4 pour
l'invite de saisie, et F1 sur un paramètre pour son aide.
Aide IBM i de la commande
Texte du F1, IBM i 7.5 en français
(bibliothèque QSYS)
Où s'exécute : Tous les environnements (*ALL)
Compatible multitâche : Non
La commande CVTDLSNAM s'utilise avant ou après une modification du CCSID utilisé par défaut pour les noms d'objet EBCDIC par QDLS. Elle permet d'identifier les noms d'objet QDLS qui peuvent avoir changé en raison de la modification de CCSID, et de rebaptiser ces objets QDLS de sorte qu'ils conservent leurs noms d'origine. Vous pouvez également utiliser cette commande pour corriger des noms d'objet modifiés lors de leur copie entre QDLS et un autre système de fichiers. Cette commande imprime un rapport avec le fichier spoule en sortie du travail dans lequel figurent la liste des objets sélectionnés et les opérations dont ils ont fait l'objet.
Lors de la conversion de noms d'objet vers ou à partir de EBCDIC, QDLS utilise le CCSID par défaut du travail à moins de l'existence de la zone QUSRSYS/QODEC500, auquel cas QDLS utilise le CCSID 500 (cette zone de données permet un retour au comportement des versions précédentes de QDLS). Le CCSID utilisé par QDLS est alors modifié par la création ou la suppression de la zone de données ou la modification du CCSID par défaut du travail si cette zone de données n'existe pas.
Le CCSID affecte la vue des noms d'objet QDLS par les clients du système de fichiers intégré de QDLS, lesquels doivent convertir les noms d'objet vers et à partir de EBCDIC. Ces clients incluent :
- les commandes du système de fichiers intégré (par exemple, DSPLNK, CPY, MOV et RNM)
- des interfaces de programmation de type UNIX fournies par le système de fichiers intégré (exemple : access, open, rename et unlink)
- IBM i Access for Windows
Le CCSID n'affecte pas les clients de QDLS qui gèrent directement les noms d'objet EBCDIC, c'est-à-dire :
- Les commandes relatives aux documents et dossiers (CRTDOC, CPYDOC, WRKDOC, CRTFLR, WRKFLR, DLTDLO et RNMDLO, par exemple)
- Les interfaces de programmation HFS (QHFDLTSF, QHFOPNDR, QHFOPNSF et QHFRNMSF, par exemple)
Même pour les clients du système de fichiers intégré de QDLS, le CCSID importe peu, à l'exception des objets qui sont également utilisés par les clients EBCDIC. Dans ce cas, les noms d'objets QDLS peuvent apparaître différents pour les clients si ces noms contiennent des caractères variables et que les clients utilisent différents CCSID (les clients du système de fichiers intégré utilisent le CCSID comme indiqué plus haut, et les clients EBCDIC utilisent plutôt le CCSID par défaut du travail).
Restrictions :
- Vous devez disposer du droit *R (lecture) sur le répertoire contenant les liens d'objet et du droit *X (exécution) sur les autres répertoires du chemin.
- Les restrictions de droits supplémentaires de la commande RNM s'appliquent lorsqu'il s'agit de rebaptiser des objets.
Paramètres
| Mot-clé | Description | Valeurs possibles | Remarques |
|---|---|---|---|
| OBJ | Objet | Values (jusqu'à 300 répétitions): Chemin d'accès | Obligatoire, positionnel 1 |
| SUBTREE | Branche du répertoire | *OBJ, *DIR, *ALL | Facultatif |
| ACTION | Action | *LIST, *RENAME | Facultatif |
| PREVIEW | Prévision des résultats | *NO, *YES | Facultatif |
| FROMCCSID | CCSID d'origine | 1-65535, 500, *JOB, *SYSVAL, *HEX | Facultatif |
| TOCCSID | CCSID de destination | 1-65535, *JOB, *SYSVAL, *HEX | Facultatif |
Objet (OBJ)
Indique les objets à traiter. Vous pouvez indiquer jusqu'à 300 chemins d'accès ; cependant, tous les chemins doivent appartenir au même système de fichiers. Un nom de chemin d'accès peut être soit un nom simple soit un nom qualifié du nom du répertoire contenant l'objet. Vous pouvez utiliser un masque dans la dernière partie du nom de chemin : un astérisque (*) représente tout nombre de caractères et un point d'interrogation (?) représente un caractère unique. Un nom de chemin qualifié ou contenant un masque doit être indiqué entre apostrophes (').
Pour obtenir de plus amples informations relatives à la spécification des noms de chemin, reportez-vous à "Object naming rules" dans la rubrique Rubriques CL de la catégorie Programmation de l'IBM i Information Center, à l'adresse http://www.ibm.com/systems/i/infocenter/.
La commande CVTDLSNAM est un client du système de fichiers intégré de QDLS. Sa vue des noms d'objet peut donc être différente de celle des clients EBCDIC. Vous devez en tenir compte lorsque vous indiquez des noms d'objet. Il est généralement plus sûr d'utiliser des caractères génériques au lieu de caractères variables (ainsi, il vaut mieux indiquer X?X que X§X comme nom d'objet).
Branche du répertoire (SUBTREE)
Indique les branches de répertoire traitées.
- *OBJ
- Seuls les objets correspondant aux noms de chemin indiqués sont traités. S'il s'agit d'un nom de répertoire, les objets de ce dernier ne sont pas traités.
- *DIR
- Les objets du premier niveau de chaque répertoire correspondant à un nom de chemin donné sont traités.
- *ALL
- La branche entière de chacun des répertoires correspondant à un nom de chemin donné est traitée.
Action (ACTION)
Indique l'action à effectuer sur les objets sélectionnés.
- *LIST
- Dans le cas de QDLS, cette valeur affiche la liste des objets sélectionnés dont le nom semble différent si l'ancienne valeur du CCSID utilisé par défaut par QDLS pour les noms d'objet EBCDIC est remplacée par la nouvelle valeur indiquée. Pour les autres systèmes de fichiers, cette valeur affiche la liste des objets sélectionnés qui pourraient porter un nom inattendu après avoir été copiés depuis QDLS et aucun CCSID n'est utilisé dans ce cas.
- *RENAME
- Corrige les noms des objets sélectionnés. Si la valeur *RENAME est utilisée plusieurs fois pour un même objet, les résultats ne seront probablement pas significatifs.
Certains objets peuvent ne pas avoir été rebaptisés au moment voulu, comme si le nouveau nom existait déjà. Cependant, la commande ne s'arrête pas immédiatement ; elle continue de traiter les objets restants.
Dans le cas de QDLS, *RENAME modifie les noms de sorte que, après le remplacement par la nouvelle valeur indiquée, de l'ancienne valeur du CCSID utilisé par défaut par QDLS pour les noms d'objet EBCDIC, ces noms d'objets reprennent leur valeur initiale avant leur copie vers les clients du système intégré de fichiers de QDLS.
Pour les autres systèmes de fichiers, les objets indiqués sont supposés avoir été créés avec l'ancienne valeur de CCSID indiquée et implicitement rebaptisés lors de leur copie de QDLS par un client du système intégré de fichiers de QDLS au moyen du nouveau CCSID. *RENAME modifie les noms d'objet de sorte qu'ils soient identiques à ceux des objets QDLS d'origine.
Remarque :Lorsqu'un objet a été rebaptisé, il est possible d'annuler cette action en inversant les valeurs de CCSID. Par exemple, si l'objet a été baptisé à l'aide de FROMCCSID(500) et TOCCSID(273), il est possible de lui redonner son nom d'origine en indiquant FROMCCSID(273) et TOCCSID(500).
Prévision des résultats (PREVIEW)
Permet d'obtenir un aperçu des résultats de l'action sélectionnée.
- *NO
- Exécute l'action sélectionnée.
- *YES
- Arrête l'action sélectionnée et présente un rapport des résultats possibles. Cette valeur n'est admise que si *RENAME est indiqué au paramètre ACTION.
CCSID d'origine (FROMCCSID)
Indique le CCSID d'origine du nom d'objet EBCDIC. Cette valeur est ignorée pour le traitement d'objets dans des systèmes de fichiers autres que QDLS si ACTION a pour valeur *LIST.
- 500
- Le CCSID 500 est utilisé. Il s'agit du CCSID utilisé par les versions précédentes de QDLS.
- *JOB
- Le CCSID par défaut du travail en cours est utilisé.
- *SYSVAL
- Le CCSID indiqué dans la valeur système QCCSID est utilisé.
- *HEX ou 65535
- Le CCSID actuellement employé par défaut par QDLS pour les noms d'objet EBCDIC est utilisé.
- 1-65535
- Indiquez le CCSID à utiliser. Pour plus d'informations sur les CCSID admis, reportez-vous au manuel Rubriques Internationalisation de l'i5/OS dans l'IBM i Information Center, à l'adresse http://www.ibm.com/systems/i/infocenter/.
CCSID de destination (TOCCSID)
Indique le CCSID de destination utilisé par défaut par QDLS pour les noms d'objet EBCDIC. Cette valeur est ignorée pour le traitement d'objets dans des systèmes de fichiers autres que QDLS si ACTION a pour valeur *LIST.
- *JOB
- Le CCSID par défaut du travail en cours est utilisé.
- *SYSVAL
- Le CCSID indiqué dans la valeur système QCCSID est utilisé.
- *HEX ou 65535
- Le nouveau CCSID est inconnu, comme si différents travaux utilisaient des CCSID différents. Cette valeur n'est pas admise si ACTION a pour valeur *RENAME.
- 1-65535
- Indiquez le CCSID à utiliser. Pour plus d'informations sur les CCSID admis, reportez-vous au manuel Rubriques Internationalisation de l'i5/OS dans l'IBM i Information Center, à l'adresse http://www.ibm.com/systems/i/infocenter/.
Exemples
Exemple 1 : affichage d'objets QDLS affectés par une modification du CCSID
Une nouvelle édition du système d'exploitation est installée, et QDLS utilise le CCSID par défaut du travail et non le CCSID 500 pour les noms d'objets EBCDIC. Le CCSID du travail est actuellement paramétré sur 37. La commande suivante est utilisée pour identifier les objets ayant effectivement de nouveaux noms pour les clients du système de fichiers intégré de QDLS. Remarque : les paramètres ACTION, FROMCCSID et TOCCSID peuvent avoir été omis de cette commande, car ils spécifient alors les valeurs par défaut.
CVTDLSNAM OBJ('/QDLS') SUBTREE(*ALL) ACTION(*LIST)
FROMCCSID(500) TOCCSID(37)
Vous pouvez obtenir une sortie similaire à ce qui suit :
/QDLS/FLRA/X| --> X§ /QDLS/FLRB/X§ --> X!
Chaque ligne indique deux noms pour un objet, comme ce que verraient des clients utilisant CCSID 500 et CCSID 37 (le deuxième nom ne s'affichera pas si TOCCSID est *HEX). La sortie montre que deux objets sont affectés par la modification du CCSID utilisé. L'objet connu avant la modification comme X| par les clients du système de fichiers intégré est ensuite connu sous le nom de X§, et X§ est rebaptisé X!.
Le nom X§ semble plus correct que X| ou X!, et on suppose dans les deux cas que X§ est le nom adéquat. Dans le premier cas, le nouveau nom est souhaitable ; on suppose que l'objet a été créé en tant que X§ par un client utilisant le CCSID 37. Dans le second cas, le nouveau nom n'est pas souhaitable ; on suppose que l'objet a été créé par un client utilisant un CCSID 500.
Exemple 2 : changement de nom d'un objet QDLS pour l'ajuster à une modification de CCSID
Le second nom d'objet de l'exemple précédent est corrigé en utilisant la commande suivante. Pour cet exemple, le CCSID du travail est 500 (nécessaire pour garantir une reconnaissance correcte du nom d'objet X§). Il est probable qu'un nom générique (tel que * ou X? et non X§) soit utilisé dans des situations similaires, ce qui élimine le besoin d'ajustement du CCSID du travail.
CVTDLSNAM OBJ('/QDLS/FLRB/X§') ACTION(*RENAME)
FROMCCSID(500) TOCCSID(37)
Vous pouvez obtenir cette sortie :
/QDLS/FLRB/X§ --> X|
A nouveau, chaque ligne affiche deux noms pour un objet, mais cette fois, les deux noms correspondent à ce qu'un client du CCSID 500 verrait. La sortie indique que X§ est renommé X|. Le nouveau nom peut sembler incorrect à un client du CCSID 500 (X|), mais apparaît comme voulu à un client du CCSID 37 (X§).
Messages d'erreur
Messages *STATUS
- CPI8A22
- &1 en cours de traitement
Messages *ESCAPE
- CPF8AC0
- La commande &1 a échoué.
© Copyright IBM Corp. Texte d'aide reproduit à des fins de formation.