Aller au contenu

MOVOBJ

Déplacer un objet

En bref

La commande MOVOBJ (Déplacer un objet) permet de retirer un objet de sa bibliothèque d'origine et de le placer dans une autre bibliothèque.

MOVOBJ se lit MOV (Déplacer) + OBJ. Sur IBM i, le nom d'une commande associe presque toujours un verbe et un objet.

Syntaxe minimale

MOVOBJ OBJ(…) OBJTYPE(…) TOLIB(…)

Paramètres

  • OBJ Objet obligatoire
  • OBJTYPE Type d'objet obligatoire
  • TOLIB Bibliothèque de destination obligatoire
  • ASPDEV Depuis l'unité ASP
  • TOASPDEV Vers l'unité ASP

Astuce : dans une session 5250, tapez MOVOBJ 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 : Oui

La commande MOVOBJ (Déplacer un objet) permet de retirer un objet de sa bibliothèque d'origine et de le placer dans une autre bibliothèque. Les informations de sauvegarde et de restauration sont enlevées de la description d'objet.

Remarque :La valeur du paramètre Droits pour objets créés (CRTAUT) indiqué dans la commande CRTLIB pour la bibliothèque de destination n'est pas utilisée. La propriété, ainsi que les droits publics et privés de l'objet restent identiques.

Si l'objet en cours de déplacement est journalisé, un poste est consigné dans le journal qui enregistre les modifications. Utilisez la commande DSPOBJD (Afficher la description de l'objet) pour afficher les informations de journalisation concernant l'objet.

Lorsque l'objet en cours de déplacement est admissible à la journalisation, deux méthodes existent pour qu'il démarre automatiquement la journalisation après son déplacement.

  1. Si la bibliothèque destination est journalisée, les règles d'héritage du journal pour la bibliothèque déterminent si la journalisation est lancées pour l'objet.
  2. Si la bibliothèque destination contient une zone de données nommée QDFTJRN, l'objet lance automatiquement la journalisation en fonction du contenu de la zone de données QDFTJRN.

    Remarque :La zone de données QDFTJRN supplante les règles d'état de la journalisation et d'héritage de journal de la bibliothèque destination.

    Remarque :La prise en charge de la zone de données QDFTJRN ne sera pas suivie dans les prochaines versions.

Utilisez la commande DSPLIBD (Afficher la description de la bibliothèque) pour afficher les informations journalisées sur la bibliothèque. Pour plus d'informations sur le lancement de la journalisation d'une bibliothèque, reportez-vous à la commande (STRJRNLIB) .

A part l'exception décrite ci-après concernant le déplacement d'un objet de QTEMP dans un ASP principal ou secondaire, si l'objet a été journalisé dans la bibliothèque d'origine, il continuera d'être journalisé dans la bibliothèque de destination.

Remarque :Pour en savoir plus sur la journalisation, reportez-vous au manuel Ensemble de rubriques Journal Management de l'IBM i Information Center, à l'adresse http://www.ibm.com/systems/i/infocenter/.

Restrictions :

  1. Pour un objet autre que *FILE, vous devez disposer des droits suivants :
    • Droits *OBJMGT sur l'objet à déplacer,
    • droits *DLT et *READ sur la bibliothèque à partir de laquelle l'objet sera déplacé, et
    • droits *ADD et *READ sur la bibliothèque dans laquelle l'objet sera déplacé.
  2. Pour un objet *FILE, vous devez disposer des droits suivants :
    • Droits *OBJMGT et *OBJOPR sur l'objet à déplacer,
    • droits *DLT, *ADD et *EXECUTE sur la bibliothèque à partir de laquelle l'objet sera déplacé, et
    • droits *ADD et *READ sur la bibliothèque dans laquelle l'objet sera déplacé.
  3. Les types d'objet suivants ne peuvent être déplacés : les bibliothèques, les profils utilisateur, les descriptions d'édition, les descriptions de ligne, les descriptions de contrôleur, les descriptions d'unité, les journaux et les récepteurs de journal.
  4. Les objets suivants ne peuvent être déplacés : la file d'attente de messages QSYSOPR de l'opérateur système, toutes les files d'attente de message des utilisateurs de postes de travail et l'historique du système QHST.
  5. La bibliothèque dans laquelle l'objet doit être déplacé ne doit pas déjà contenir un objet du même nom et type.
  6. La bibliothèque vers laquelle l'objet doit être déplacé ne peut pas être QTEMP.
  7. Les objets du domaine utilisateur *USRSPC (espace utilisateur), *USRIDX (index utilisateur) et *USRQ (file d'attente utilisateur) ne peuvent être déplacés que vers des bibliothèques admises par la valeur système QALWUSRDMN (admettre les objets du domaine utilisateur dans une bibliothèque). Toutefois, l'objet utilisateur n'est pas concerné par cette restriction s'il a été créé sous la forme d'un objet de domaine système.
  8. Généralement, un objet peut être déplacé vers une bibliothèque de destination uniquement s'ils se trouvent tous les deux dans le même ASP. Dans ce cas, un message d'erreur est envoyé. Il existe cependant quelques exceptions :
    • Vous pouvez déplacer des fichiers sauvegarde d'un ASP utilisateur de base vers les bibliothèques de l'ASP système (ASP 1) si la bibliothèque du fichier sauvegarde se trouve également sur l'ASP système.
    • Vous pouvez déplacer des objets d'un ASP secondaire vers l'ASP principal du même groupe d'ASP si la bibliothèque de destination est QRPLxxxxx (où 'xxxxx' est le numéro de l'ASP principal du groupe d'ASP.)
    • Vous pouvez déplacer un objet de QTEMP vers un ASP principal ou secondaire selon les critères suivants :
      • Le déplacement s'effectue au cours d'une opération de sauvegarde et de restauration.
      • La taille de l'objet doit être inférieure à 1 téraoctet (L'API QHSMMOVL n'impose pas de limite de taille.)
      • Si l'objet ne peut pas être rebaptisé, il ne peut pas être déplacé.
      • Dans le cas des files d'attente de données, des files d'attente de messages et des fichiers logiques, uniquement les descriptions d'objets sont déplacées. Le contenu des objets n'est pas déplacé.
      • Les droits privés sur les objets sont conservés.
      • Une fois l'objet déplacé, les attributs suivants sont différents de ceux de l'objet d'origine :
        • La date de la dernière utilisation est mise à blanc.
        • La date et l'heure de modification devient la date et l'heure en cours.
        • Le nombre de jours du compteur d'utilisation est remis à zéro.
        • La date de réinitialisation du compteur d'utilisation est mise à blanc.
        • La date et l'heure de restauration devient la date et l'heure en cours.
        • Lorsque l'objet en cours de déplacement est admissible à la journalisation, deux méthodes existent pour qu'il démarre automatiquement la journalisation.
          1. Si la bibliothèque destination est journalisée, les règles d'héritage du journal pour la bibliothèque déterminent si la journalisation est lancées pour l'objet.
          2. Si la bibliothèque destination contient une zone de données nommée QDFTJRN, l'objet lance automatiquement la journalisation en fonction du contenu de la zone de données QDFTJRN.

            Remarque :La zone de données QDFTJRN supplante les règles d'état de la journalisation et d'héritage de journal de la bibliothèque destination.

            Remarque :La prise en charge de la zone de données QDFTJRN ne sera pas suivie dans les prochaines versions.

          Si l'objet n'est pas automatiquement journalisé pour une opération de restauration pour le type d'objet, l'objet n'est pas journalisé même si l'objet d'origine a été journalisé.

          Remarque :Pour en savoir plus sur la journalisation, reportez-vous au manuel Ensemble de rubriques Journal Management de l'IBM i Information Center, à l'adresse http://www.ibm.com/systems/i/infocenter/.

Paramètres

Mot-clé Description Valeurs possibles Remarques
OBJ Objet Nom d'objet qualifié Obligatoire, positionnel 1
Qualificatif 1: Objet Nom
Qualificatif 2: Biblio Nom, *LIBL, *CURLIB
OBJTYPE Type d'objet *ALRTBL, *BNDDIR, *CHTFMT, *CLD, *CLS, *CMD, *CRQD, *CSI, *CSPMAP, *CSPTBL, *DTAARA, *DTAQ, *FCT, *FILE, *FNTRSC, *FNTTBL, *FORMDF, *FTR, *GSS, *IGCDCT, *IGCSRT, *JOBD, *JOBQ, *JRN, *JRNRCV, *LOCALE, *MEDDFN, *MENU, *MGTCOL, *MODULE, *MSGF, *MSGQ, *M36, *M36CFG, *NODGRP, *NODL, *OUTQ, *OVL, *PAGDFN, *PAGSEG, *PDFMAP, *PDG, *PGM, *PNLGRP, *PRDAVL, *PRDDFN, *PRDLOD, *PSFCFG, *QMFORM, *QMQRY, *QRYDFN, *RCT, *SBSD, *SCHIDX, *SPADCT, *SRVPGM, *SSND, *SVRSTG, *TBL, *USRIDX, *USRQ, *USRSPC, *VLDL, *WSCST Obligatoire, positionnel 2
TOLIB Bibliothèque de destination Nom, *CURLIB Obligatoire, positionnel 3
ASPDEV Depuis l'unité ASP Nom, *, *CURASPGRP, *SYSBAS Facultatif
TOASPDEV Vers l'unité ASP Nom, *ASPDEV, *, *CURASPGRP, *SYSBAS Facultatif

Objet (OBJ)

Indique l'objet à déplacer vers une autre bibliothèque.

Ce paramètre est obligatoire.

Qualificatif 1 : Objet

Indiquez le nom de l'objet à déplacer.

Qualificatif 2 : Biblio

*LIBL
La recherche porte sur toutes les bibliothèques de la liste des bibliothèques de l'unité d'exécution en cours jusqu'à ce que la première occurrence soit trouvée. Si l'invite Unité ASP (paramètre ASPDEV) est indiquée lorsque cette valeur est utilisée, ASPDEV(*) est la seule valeur admise.
*CURLIB
La recherche porte sur la bibliothèque en cours de l'unité d'exécution. Si aucune bibliothèque n'est définie comme bibliothèque en cours pour l'unité d'exécution, la recherche porte sur la bibliothèque QGPL. Si le paramètre Unité ASP (ASPDEV) est indiqué lorsque cette valeur est utilisée, la valeur ASPDEV(*) est la seule valeur admise.
nom
Indiquez le nom de la bibliothèque dans laquelle doit s'effectuer la recherche.

Type d'objet (OBJTYPE)

Indique le type de l'objet à déplacer.

Pour obtenir la liste complète des types d'objet, placez le curseur dans la zone de ce paramètre et appuyez sur F4 (Invite). Pour obtenir une description des types d'objet, reportez-vous à "Types d'objet" dans Rubriques CL de la catégorie Programmation de l'IBM i Information Center, à l'adresse http://www.ibm.com/systems/i/infocenter/.

Ce paramètre est obligatoire.

type-objet
Indiquez le type de l'objet à déplacer.

Bibliothèque de destination (TOLIB)

Indique la bibliothèque vers laquelle l'objet doit être déplacé. La bibliothèque QTEMP ne peut pas être indiquée pour cette option.

Ce paramètre est obligatoire.

*CURLIB
L'objet doit être placé dans la bibliothèque en cours du travail. Si la liste de bibliothèques de l'unité d'exécution en cours ne contient aucune bibliothèque en cours, la bibliothèque QGPL est utilisée.
nom
Indiquez le nom de la bibliothèque de destination de l'objet à déplacer.

Depuis l'unité ASP (ASPDEV)

Indique l'unité ASP dans laquelle de la mémoire est allouée à la bibliothèque contenant l'objet à déplacer. Si la bibliothèque est située dans un ASP qui ne fait pas partie de l'espace de nom de la bibliothèque associé à l'unité d'exécution, ce paramètre doit être indiqué pour être sûr que l'objet à déplacer est correct. Si ce paramètre est utilisé lorsque *LIBL ou *CURLIB est précisé pour le paramètre Biblio (OBJ), la valeur ASPDEV(*) est la seule valeur admise.

*
La recherche de la bibliothèque s'effectue dans tous les ASP présents dans l'espace de nom de bibliothèque de l'unité d'exécution. Il s'agit de l'ASP système (ASP 1), de tous les ASP utilisateur de base définis(ASP 2 à 32) et, si l'unité d'exécution dispose d'un groupe d'ASP, des ASP principaux et secondaires du groupe d'ASP de l'unité d'exécution.
*CURASPGRP
Si l'unité d'exécution dispose d'un groupe ASP, la recherche portera sur les ASP primaire et secondaire du groupe ASP de l'unité pour trouver la bibliothèque. La recherche ne s'effectue ni dans l'ASP système (ASP 1) ni dans les ASP utilisateur de base définis (ASP 2-32). Si aucun groupe d'ASP n'est associé à l'unité d'exécution, une erreur est signalée.
*SYSBAS
La bibliothèque est recherchée dans l'ASP système (ASP 1) et dans tous les ASP utilisateur de base définis (ASP 2-32). Les ASP principaux et secondaires ne sont pas concernés par cette recherche, même si l'unité d'exécution possède un groupe d'ASP.
nom
Indiquez le nom de l'ASP principal ou secondaire dans lequel rechercher la bibliothèque. L'ASP principal ou secondaire doit être activé (via la mise en fonction de l'unité ASP) et être à l'état 'Disponible'. La recherche ne s'effectue ni dans l'ASP système (ASP 1) ni dans les ASP utilisateur de base définis (ASP 2-32).

Remarque :Pour indiquer un nom d'ASP spécifique, vous devez disposer du droit d'utilisation (*USE) sur chaque ASP du groupe d'ASP.

Vers l'unité ASP (TOASPDEV)

Indique le nom de l'unité ASP possédant la mémoire nécessaire à la bibliothèque de destination indiquée pour le paramètre Bibliothèque de destination (TOLIB). Si la bibliothèque de destination est située dans un ASP qui ne fait pas partie de l'espace de nom de la bibliothèque associé à l'unité d'exécution, ce paramètre doit être indiqué pour être sûr que l'objet à déplacer est correct. Si ce paramètre est utilisé lorsque *CURLIB est indiqué pour le paramètre TOLIB, TOASPDEV(*) ou TOASPDEV(*ASPDEV) doit être précisé et le paramètre Depuis l'unité ASP (ASPDEV) doit avoir la valeur *.

*ASPDEV
La bibliothèque est recherchée dans l'unité ASP indiquée au paramètre ASPDEV.
*
La recherche de la bibliothèque s'effectue dans tous les ASP présents dans l'espace de nom de bibliothèque de l'unité d'exécution. Il s'agit de l'ASP système (ASP 1), de tous les ASP utilisateur de base définis(ASP 2 à 32) et, si l'unité d'exécution dispose d'un groupe d'ASP, des ASP principaux et secondaires du groupe d'ASP de l'unité d'exécution.
*CURASPGRP
Si l'unité d'exécution dispose d'un groupe ASP, la recherche portera sur les ASP primaire et secondaire du groupe ASP de l'unité pour trouver la bibliothèque. La recherche ne s'effectue ni dans l'ASP système (ASP 1) ni dans les ASP utilisateur de base définis (ASP 2-32). Si aucun groupe d'ASP n'est associé à l'unité d'exécution, une erreur est signalée.
*SYSBAS
La bibliothèque est recherchée dans l'ASP système (ASP 1) et dans tous les ASP utilisateur de base définis (ASP 2-32). Les ASP principaux et secondaires ne sont pas concernés par cette recherche, même si l'unité d'exécution possède un groupe d'ASP.
nom
Indiquez le nom de l'ASP principal ou secondaire dans lequel rechercher la bibliothèque. L'ASP principal ou secondaire doit être activé (via la mise en fonction de l'unité ASP) et être à l'état 'Disponible'. La recherche ne s'effectue ni dans l'ASP système (ASP 1) ni dans les ASP utilisateur de base définis (ASP 2-32).

Remarque :Pour indiquer un nom d'ASP spécifique, vous devez disposer du droit d'utilisation (*USE) sur chaque ASP du groupe d'ASP.

Exemples

Exemple 1 : Déplacement d'un objet de la bibliothèque générale

MOVOBJ   OBJ(QGPL/X)  OBJTYPE(*PGM)  TOLIB(MY)

L'objet programme X (*PGM) est recherché dans la bibliothèque générale (QGPL). Il est placé dans la bibliothèque MY. Une fois cette commande exécutée, l'objet programme X ne figure plus dans la bibliothèque QGPL.

Exemple 2 : Déplacement d'un objet d'une bibliothèque de la liste de bibliothèques

MOVOBJ   OBJ(*LIBL/Y)  OBJTYPE(*FILE)  TOLIB(Z)
 -ou-
MOVOBJ   Y  *FILE  Z

L'objet fichier Y est recherché dans la liste de bibliothèques (*LIBL). Si les bibliothèques composant la liste de bibliothèques contiennent plusieurs objets fichier du même nom, le premier objet fichier Y trouvé dans la liste de bibliothèques est placé dans la bibliothèque Z. Une fois cette commande exécutée, l'objet fichier Y ne figure plus dans la bibliothèque dans laquelle il a été trouvé.

Exemple 3 : Déplacement d'un objet d'une bibliothèque dans un pool de mémoire secondaire (ASP) indépendant vers une bibliothèque d'un ASP différent

MOVOBJ OBJ(INVENTORY/MONTHLY) OBJTYPE(*PGM)
       TOLIB(WINVENTORY) ASPDEV(SALES) TOASPDEV(WSALES)

L'objet programme MONTHLY est recherché dans la bibliothèque INVENTORY du pool de mémoire secondaire (ASP) indépendant SALES. L'objet programme MONTHLY est placé dans la bibliothèque WINVENTORY de l'ASP WSALES. Une fois cette commande exécutée, l'objet programme MONTHLY ne figure plus dans la bibliothèque INVENTORY de l'ASP SALES. L'ASP SALES et l'ASP WSALES doivent être activés (via la mise en fonction de l'unité ASP) et être à l'état Disponible.

Messages d'erreur

Messages *ESCAPE

CPFA030
Objet déjà en cours d'utilisation.
CPFB8ED
La description d'unité &1 est incorrecte pour l'opération.
CPF0601
Opération sur le fichier &1 de &2 non autorisée.
CPF0602
Le fichier &1 existe déjà dans la bibliothèque &2.
CPF0605
Fichier unité &1 dans &2 sauvegardé avec libération mémoire.
CPF0610
Fichier &1 de &2 non disponible.
CPF0678
Opération non effectuée pour nom de fichier &1 dans &2.
CPF1763
Impossible d'allouer une ou plusieurs bibliothèques.
CPF210F
L'opération n'a pas abouti pour &1, &2, type *&3.
CPF2105
Objet &1 de &2 type *&3 non trouvé.
CPF2110
Bibliothèque &1 non trouvée.
CPF2112
L'objet &1 de type *&3 existe déjà dans &2.
CPF2113
Impossible d'allouer la bibliothèque &1.
CPF2114
Impossible d'allouer objet &1 de &2 type *&3.
CPF2135
L'objet &1 de type *&3 existe déjà dans cette bibliothèque.
CPF2150
Erreur dans la fonction d'informations sur objet.
CPF2151
Erreur de l'opération sur &2 de &1 type *&3.
CPF2160
Objet de type *&1 incorrect pour la fonction demandée.
CPF216C
Valeur TOASPDEV non autorisée avec TOLIB(*CURLIB).
CPF2173
Valeur pour ASPDEV incorrecte avec valeur spéciale pour bibliothèque.
CPF218C
&1 n'est pas un ASP principal ou secondaire.
CPF2182
Non autorisé à utiliser la bibliothèque &1.
CPF2183
L'objet &1 ne peut pas être déplacé dans la bibliothèque &3.
CPF2189
Utilisation de l'objet &1 de &2, type *&3 non autorisée.
CPF2193
L'objet &1 ne peut être déplacé dans la bibliothèque &4.
CPF22BC
L'objet &1 type &3 n'est pas défini dans les programmes.
CPF2451
File d'attente de messages &1 allouée à un autre travail.
CPF2512
Opération non admise pour la file d'attente de messages &1.
CPF32CF
Erreur de fichier réparti. Code raison &3.
CPF32C3
Erreur au niveau du fichier réparti, identificateur de niveau de fichier non concordant
CPF320B
Opération incorrecte pour le fichier base de données &1.
CPF320C
Fichier &1 non admis dans la collection SQL &2.
CPF3201
Le fichier &1 existe déjà dans la bibliothèque &2.
CPF3202
Fichier &1 de &2 en cours d'utilisation.
CPF3203
Allocation de l'objet impossible pour le fichier &1 de &2.
CPF322D
Opération non effectuée pour fichier base de données &1.
CPF3220
Impossible d'effectuer l'opération sur le fichier &1 de &2.
CPF3224
Non autorisé à l'opération sur fichier &1.
CPF323C
Impossible d'allouer la bibliothèque QRECOVERY.
CPF323D
L'utilisateur ne dispose pas des droits appropriés.
CPF323F
Fichier &1 dans bibliothèque &2 ni déplacé ni rebaptisé.
CPF3231
Impossible de déplacer fichier &1 de bibliothèque &2.
CPF324B
Impossible d'allouer le dictionnaire pour le fichier &1.
CPF324C
Opération en cours sur dépositaire de droits ; déplacement, changement de nom ou restauration impossible.
CPF3245
Opération sur fichier &3 impossible : fichier &1, membre &6, endommagé.
CPF325D
Valeurs CCSID des zones incompatibles.
CPF327C
Déplacement du fichier &1 dans bibliothèque &4 impossible.
CPF327E
Le nom de remplacement attribué au fichier &1 n'est pas admis.
CPF329D
L'opération a échoué pour le fichier &1 de la bibliothèque &2.
CPF3323
La file d'attente de travaux &1 de &2 existe déjà.
CPF3330
Ressource nécessaire non disponible.
CPF3353
File d'attente en sortie &1 de &2 existe déjà.
CPF3373
File d'attente de travaux &1 de &2 non déplacée car utilisée.
CPF3374
File d'attente en sortie &1 de &2 non déplacée. En cours d'utilisation.
CPF3467
File d'attente en sortie &1 supprimée, puis recréée.
CPF3469
Opération non admise pour cette file d'attente en sortie.
CPF7003
Poste non journalisé dans &1. Code raison &3.
CPF7010
L'objet &1 de type *&3 existe déjà dans &2.
CPF7014
L'objet &1 ne peut pas être déplacé dans la bibliothèque &4.
CPF9807
Une ou plusieurs bibliothèques de la liste ont été supprimées.
CPF9808
Allocation impossible pour une ou plusieurs bibliothèques de la liste.
CPF9814
Unité &1 non trouvée.
CPF9825
Accès non autorisé à l'unité &1.
CPF9827
L'objet &1 ne peut pas être créé ou déplacé dans la bibliothèque &2.
CPF9833
*CURASPGRP ou *ASPGRPPRI indiqué et unité d'exécution en cours sans groupe d'ASP.
CPF9876
La bibliothèque protégée &2 ne peut pas être modifiée.

© Copyright IBM Corp. Texte d'aide reproduit à des fins de formation.