Canalblog
Suivre ce blog Administration + Créer mon blog

Initiation AS400

3 novembre 2022

Découvrir les commandes de AS400

 

3 - Découvrir les commandes

Présentation

Les commandes de l’OS400 peuvent être comparées en quelques sortes aux commandes que l’on trouve dans les fichiers batch de windows. Ces commandes sont le langage de programmation de l’OS. Ces commandes sont utilisables en ligne de commande mais elles peuvent aussi être mise dans des programmes qui seront compilés. Le langage est appelé CL = control langage. Un programme CL compilé sera un objet de type *PGM ayant comme attribut CLP

 

Les commandes sont construites (le plus généralement) sous la forme de 3 groupes de 3 lettres

  • Un verbe abrégé en un groupe de 2 ou 3 lettres
  • Un sujet abrégé en un groupe de 2 ou 3 lettres
  • Un complément facultatif, toujours abrégé en un groupe de 2 ou 3 lettres

 

Voici quelques exemples de verbes :

  • WRK : WORK pour gérer (ou travailler avec)
  • CHG : CHANGE
  • DLT : DELETE
  • DSP : DISPLAY
  • STR : START
  • ADD :
  • CPY : COPY

 

Voici quelques objets pèle mêle : 

  • OBJ : pour objet
  • JOB
  • SPL  : spoule
  • LIB  :  library
  • LIC  :  licence
  • MSG : message
  • LCK : lock
  • DEV : device

 

Voici quelques contre exemples à la règle des 3 lettres : 

  • F :  pour file
  • PF :  pour physical file
  • PFM : pour physical file member
  • FFD : pour file field description
  • HOST
  • SCDE : pour schedule
  • OUTQ : pour file d’attente en sortie

 

Chaque commande possède ses propres paramètres qu’il faut renseigner pour que la commande s’exécute correctement.

Par exemple la commande pour gérer (ou travailler avec …) les objets est la commande :     _ _ _ _ _ _

  • GEROBJ  ??
  • OBJMANAGE ??
  • MANOBJ ??
  • WRKOBJ ??
  • WRKTHING ??

Pour chaque commande (sauf si vous connaissez la syntaxe par cœur) vous devez faire WRKOBJ + F4 :

Le prompt apparait avec les paramètres obligatoires en blanc et les valeurs par défaut. Sur les lignes terminées .... vous pouvez à nouveau faire F4 pour avoir toutes les valeurs.

F4 est disponible pour chaque zone pour obtenir la liste des valeurs possibles

Vous renseignez les paramètres avec les valeurs qui vous conviennent et vous faites Entrée.

Aide

Pour toutes les commandes de l’OS400 après avoir fait F4 vous pouvez positionner le curseur sur le titre de l’écran :

Si vous faites F1 (par défaut c’est la touche Aide) vous obtenez une aide en français qui vous explique la commande, sa fonction et ses paramètres.

F1 sur une zone de paramètre vous donnera de l’aide sur l’utilisation de la zone.

Remarque : une grande partie de l’aide est en français mais pas forcément pour les commandes les plus rares.

Il existe plus de 2000 commandes standard sur un IBM i, sachant que cela va dépendre de la version de l’OS et qu’il est possible de créer en plus autant de commandes que l’on veut... Pas facile de s’y retrouver.

L’OS400 vous propose une fonction de recherche contextuelle de commandes.

Par exemple : vous recherchez les commandes qui utilisent le verbe DSP, vous pouvez accéder à la liste de ces commandes par :

GO CMDDSP : la liste exhaustive de ces commandes apparait et vous pouvez accéder à chaque commande.

Essayez GO CMDJOB

Essayez aussi GO MAJOR

Touche Attn

Un petit détour vers la touche Echap qui historiquement s’appelait touche Attention ou ATTN (comme attention) sur les claviers IBM. Contrairement à Windows cette touche ne casse pas un travail mais elle a plusieurs fonctions possibles. Par défaut elle affiche un écran de service mais on peut demander à cette touche d’être inactive ou lui attribuer un programme spécifique.

Pour modifier la valeur de l’affectation de la touche Echap c’est la commande SETATNPGM : ce qui signifie ??

 Une fonction plus intéressante est celle de session alternée.

Si vous faites Shift + Echap + 1 vous voyez apparaitre en bas de l’écran :

Les autres fonctions de cette combinaison de touches sont visibles si vous faites shift + Echap + Entrée

+ 2 : interromps une tâche en cours (cf echap)   = Commande ENDRQS

+3 : Affiche les infos du travail   = Commande DSPJOB

+4 : Affiche les messages  = Commande DSPMSG

+5 : Envoie un message  = Commande SNDMSG

+6 : Affiche les messages systèmes

+7 : Affichage de l’utilisateur du poste  = Commande DSPWSUSR

+80 : déconnecte le job (toujours actif)  = Commande DSCJOB

+90 : fin de session  = commande SIGNOFF

 

Exercice :

  • Créez vos bibliothèques avec comme convention :« W » + 1 lettre Initiale prénom + 3 premières lettres nom + « SRCP»
    « W » + 1 lettre Initiale prénom + 3 premières lettres nom + « PGMP»
    « W » + 1 lettre Initiale prénom + 3 premières lettres nom + « FICP»
    « W » + 1 lettre Initiale prénom + 3 premières lettres nom + « SRCT»
    « W » + 1 lettre Initiale prénom + 3 premières lettres nom + « PGMT»
    « W » + 1 lettre Initiale prénom + 3 premières lettres nom + « FICT»

 

  • Ajoutez vos noms et prénom dans la description de la bib

Les bib en P pour vos objets en « production »
Les bib en T pour vos objets en test

Les bib SRC contiendront les sources
Les bib PGM contiendront les sources
Les bib SRC contiendront les sources

  • Créez dans chacune de vos bibliothèques de types SRC trois fichiers source de 112 caractères de long : 

QRPGSRC : contiendra les sources programmes

QDDSSRC : contiendra les sources fichiers

 QCLSRC  : contiendra les sources CL

  • Quelle est la commande pour gérer les travaux actifs du système ? wrkactjob
  • Quelle est la commande pour afficher le contenu de votre bib SRCP ?
  • Quelle est la commande pour imprimer le contenu de votre bib SRCP ?
  • Quelle est la commande pour gérer vos spoules ?

Spoule : Nom commun. (Anglicisme informatique) Programme chargé d'acheminer le spoule dans l'imprimante via un tampon appelé file d'impression.

 

*.LIBL *.PGM *.CURLIB ce sont des variables systèmes.

F4 pour avoir toutes les valeurs de la commande,

F3 pour terminer un programme

F12 pour revenir en arrière

F9 Refaire la commande précédente

 

GO CMDDSP : Afficher la liste des commandes

GO CMDJOB commande travail

clicher verbe transitif TECHNIQUE

Fabriquer une empreinte pour la reproduction de.

  1.  

GO CMDDSP : la liste exhaustive de ces commandes apparaît et vous pouvez accéder à chaque commande.

Essayez GO CMDJOB

Essayez aussi GO MAJOR

4 - Gérer les spoules 

Sur un système centralisé multi-utilisateurs, multi-tâches et possédant des dizaines d’imprimantes le tout réparti sur des sites situés en plusieurs endroits la gestions des éditions peut s’avérer un problème complexe … Voir très complexe.

Par exemple un utilisateur du service compta peut être au siège de Grenoble et imprimer une facture sur son imprimante.

En parallèle le service commercial peut utiliser la même imprimante.

Pendant que le comptable de Paris imprime une balance sur son imprimante

Les objets permettant de gérer les spoules et les imprimantes sont donc les suivants :

Le Spoule (SPLF) ; c’est une représentation visible (ou non), plus ou moins complète de ce qui va être imprimé….
Un seul travail peut produire de 0 à n spoules.

La file d’attente en sortie (OUTQ) , c’est une file d’attente (soit FIFO soit numéroté par le système) qui va contenir les spoules de 1 à n utilisateurs.

Envoyer un spoule à une OUTQ ne veut pas dire imprimer un état mais produire un objet spoule qui va être stocké dans cette file…

Une OUTQ peut être reliée à une imprimante physique ou ne pas être reliée.

Si elle est reliée les spoules pourront être imprimés directement sur l’imprimante (ce n’est pas une obligation nous verrons cela plus loin).

Pour imprimer une édition (un spoule) il faut donc …. une imprimante

 

Une imprimante est un objet de type DEVICE comme tout ce qui se connecte derrière un IBM i (écran, ligne réseau).

Comme toute unité réseau active la device a donc une adresse IP et un nom.

Comme sur un PC la device doit être activée pour être vue par le système.

Nous avons donc d’un côté des OUTQ qui  contiennent des spoules prêts à être imprimés et de l’autre des imprimantes (DEV) qui peuvent faire ce job.

Cependant il n’est pas concevable d’avoir autant d’imprimantes que d’utilisateurs il faut donc pouvoir faire un « lien logique » entre ces imprimantes et ces OUTQ.

C’est la notion de writer (WTR) qui sert à cela.
Il faut donc démarrer une imprimante en lui indiquant à quelle OUTQ elle doit être rattachée.

 En théorie vous avez des spoules, une OUTQ, une device celle-ci est démarrée tout est donc paré pour que vous puissiez imprimer vos états, vos factures, vos courriers ?

 En êtes vous certains ?

Peut-être ….

 En effet si vous imprimez une facture celle-ci sera peut-être sur un format de papier différent que celui qui est dans le tiroir de l’imprimante

L’IBM i ne sait pas quel est le papier dans le tiroir….. par contre il sait quel est le type de papier du dernier spoule que vous avez demandé d’imprimer.

 Du coup si vous lancez un nouveau spoule sur une imprimante (via un OUTQ et un WTR bien sur)

Si le dernier spoule que vous aviez imprimé sur cette imprimante avait un format de papier différent de celui qu’il voit arriver, l’IBM i va bloquer l’impression et vous envoyer un message :

« Monter papier type XXXXX sur l’imprimante YYY »

Tant que vous n’aurez pas répondu toute la OUTQ (FIFO) sera bloquée …..

 Remarques :

1 -  la production de spoule peut vite occuper de l’espace disque sachant qu’en plus des éditions que vous produisez le système peut générer des logs en quantités.

Il faut donc régulièrement faire du ménage dans vos éditions.

2 – les spoules ne sont pas sauvegardés (en tout cas pas facilement et pas avec tous leurs attributs) il est donc recommandé de prévoir des procédures de rééditions

 Gérer les spoules : prtf

Un spoule est un fichier de type particulier (SPLF) notamment les objets spoules sont stockés dans une seule bibliothèque QSPL

Rappel : Q* signifie que cela appartient au système.

Les spoules sont le résultat d’une impression

Pour produire une édition il faut utiliser un objet de type fichier appelé PRTF pour type de fichier impression.

Certains fichiers sont fournis par le système

Vous avez déjà pu observer QPDSPLIB

Ou QSYSPRT qui sont des objets fichiers de type PRTF fournis en standard par le système.

Exercice : créez un fichier PRTF dans votre bibliothèque portant comme nom W + initiale Prénom + 2 initiales Noms + PRTF

Pensez à bien dérouler la liste des paramètres ….

Largeur  enregistrement 132

WRKACTJOB <=> Gestionnaire des tâches de Windows

L’IBM i est un système multi-tâches et multi utilisateurs, donc sur le même principe que pour les éditions les ressources doivent être organisées afin de permettre d’optimiser les performances.

Par défaut la mémoire est organisée en 4 pools :

............................................. - Système (ou *Machine)

............................................ - Socle Commun (ou*Base)

............................................ - Les travaux interactifs (ou *Interact)

............................................ - La gestion des impression (ou*Spool)

 

On distingue les travaux batch (qui se déroulent en fond de tâche sans verrouillage d’écran) des travaux interactifs qui correspondent à un écran.

Les besoins ne sont pas les même, un travail interactif va consommer peu de ressource (s’il est bien écrit) mais va nécessiter une réponse immédiate

Un travail batch peut consommer beaucoup de ressources (nombreux accès en base de données) mais il n’a pas besoin d’être exécuté immédiatement.

Ainsi la mémoire est-elle partagée en 4 pools.

Mais comme vous vous en doutez ce serait trop simple si cela s’arrêtait ici…

Ces pools de mémoire sont eux-mêmes affectés à des sous-systèmes.

Un sous-système est un objet physique (SBS).Lorsqu’un nouveau travail entre dans le système (se logue, démarre, commence) il porte un drapeau (donnée de routage) qui va permettre au système de l’orienter vers le bon sous-système.

D’où vient l’information de routage ?

Celle-ci est une variable stockée dans un objet de type Description de travail (*JOBD).

 

Oui mais la JOBD ou est-elle spécifiée ???

C’est simple :
Tout travail qui entre dans le système DOIT être rattaché à une JOBD pour que l’OS sache comment l’exécuter….

 

La JOBD est donc un élément capital pour déterminer comment le travail va s’exécuter.

En plus des données de routage la JOBD contient quantités d’autres informations comme par exemple la liste des bibliothèques, les files d’attentes de  travaux

 

On trouve par exemple les informations de paramétrage des logs du job.

Celles-ci permettent d’avoir plus ou moins de log suivant le besoin :

Consignation des messages:       LOG                   

   Niveau . . . . . . . . . . . .                 4      è 4 niveau maximum 

   Filtre de gravité  . . . . . .             00    è toutes les erreurs sont consignées

   Texte  . . . . . . . . . . . .                   *NOLIST  è peu de détail

 

Consigner cdes programme CL  .*YES : chaque commande CL sera tracée

 

Comme pour les spoules, les jobs doivent s’exécuter dans une file d’attente de travaux ou JOBQ.

Celle-ci est déterminée par défaut par la JOBD mais elle peut être changée avant démarrage d’un job (c’est le cas assez souvent pour les travaux batch).

Les paramètres des JOBQ sont basiques à la création,

 

Cependant ….

Il faut ensuite indiquer au système ou attribuer la JOBQ que vous venez de créer.

Pour cela on en revient au sous-système, c’est à ce niveau qu’on va indiquer quelles jobq seront affectées à quels sous-système.

 

Pour cela voir la commande « Gérer la description d’un sous-système »

 

Pour afficher la liste des tâches du système (comme le gestionnaire des tâches Windows) il existe une commande :

Gérer les travaux actifs :  ___ ___ ___

Attention un bémol sur cette commande elle reste active en mémoire même lorsque vous en êtes sortis, c’est visible car le temps écoulé est incrémenté lorsque vous rappelez la commande

 

Comprendre les Jobs : exercice

-Citer différentes possibilités pour changer la file d’attente en sortie pour un travail.

-Comment voir les attributs du travail en cours ?

- Comment afficher les travaux soumis ?

-Comment casser un travail batch ?

-Quelle est la différence entre suspendre un travail et l’arrêter ?

-Comment planifier un travail batch pour demain matin 8 heures ?

-Quel outil pour planifier les travaux (planifier = schedule en anglais) ?

-Ajoutez un job planifié qui imprime le contenu de votre bib les dimanches à 7:00

 

Library in AS400  

 

  • When we execute a command or call a program, the AS/400 must know where to find the command or program and the answer is library.
  • A Library is a collection of objects.
  • QSYS is the only library that contains other library.
  • A library contain the object name, type, and the address
  • QSYS is the root library where the entire user defined/ system defined library is created.
  • System library is the library that contains the objects that was created at the time OS400 was installed.
  • System supplied libraries begin with the letter "Q" or "#".
  • When you logon the first library to be load is QSYS. The system library is loaded at the first time.

 

Library list types in AS400

 

  • System library: All IBM supplied library e.g. QSYS, QHLPSYS, QUSRSYS…
  • Product Library: Whenever Ibm product is used it is added to the library automatically and is removed itself when    the job completes.
  • Current Library: Current library is the working library i.e. all the work done by you is stored in current library. If you want that all the things done by you should be stored in your personal library ‘AMINEM’ , then just change the current library as your personal library.

To change current library to your personal library AMINEM: CHGCURLIB    AMINEM

  • User Library: Non-IBM supplied i.e. created by the user.

 

 

 

 

Library commands in AS400

 

 

      I.        Display Library List (DSPLIBL)

 

To display all types of libraries, we can use the command:

In the below snapshot we can see different types of library in the library list

e.g. SYS(system), CUR(current), USR(user) library.

 

                              Display Library List                             

                                                             System:   SYSTEM09

Type options, press Enter.                                                    

   5=Display objects in library                                                

                                                                                

                            ASP                                                

 Opt  Library     Type      Device      Text                                   

      QSYS        SYS                   System Library                         

      QSYS2       SYS                   System Library for CPIs               

      QHLPSYS     SYS                                                          

      QUSRSYS     SYS                   System Library for Users               

      AMINEM      CUR                                                          

      QGPL        USR                   General Purpose Library                

      QTEMP       USR                                                           

      LOAD        USR                   Future Three - LOAD Procedure & Update 

                                                                        More...

 F3=Exit   F12=Cancel   F17=Top   F18=Bottom 

 

 

 

Publicité
Publicité
3 novembre 2022

Conception objet et Les bibliothèques

 

Touche échap : écran de service

F12 : revenir à l'écran principal

Conception objet

Tous les constituants (fichiers, programmes, écrans et autres) d’un système IBM i sont considérés comme un objet. 

Chaque objet sera qualifié par trois propriétés qui le rendront unique sur un même OS :

  • Son Nom
  • Sa Bibliothèque
  • Son Type

Le nom fait en général 10 caractères pour les objets OS400 mais ce n’est pas une règle. La bibliothèque correspond par analogie à Windows à un répertoire (sans notion de sous-répertoire). Le type qualifie l’objet.

Le type conditionne la façon dont l’objet sera manipulé par le système.C’est une notion importante. Par exemple plusieurs objets ayant le nom TEST peuvent être stockés dans la bibliothèque W3F. Par contre il ne pourra y avoir qu’un seul objet de type fichier qui pourra cohabiter avec un seul objet TEST de type programme….

A noter aussi que cette orientation objet a comme avantage non négligeable d’offrir une meilleure protection aux virus. En effet, pour introduire un virus il se cache souvent derrière des données puis se « métamorphose » en programme exécutable. Avec cette orientation objet il est impossible de transformer un objet, cela permet donc une meilleure protection.

On ne peut pas changer le type d'un fichier dans IBM,

Les bibliothèques

D’une façon générale et par convention tous les objets dont le nom commencent par la lettre Q sont des objets liés au système, il est donc très fortement déconseillé d’utiliser le Q en première lettre..

L’organisation des emplacements appelés Bibliothèque (library) sur l’IBM i n’est pas hiérarchique (par opposition à l’environnement Windows). Par contre l’espace disque est structuré sous forme de liste de  bibliothèques triées. Cette liste et son ordre étant déterminés selon les critères que vous choisissez.

Exemple de liste : 

  • 10 Mabib
  • 20 TaBib
  • 30 SaBib 

Lorsque vous exécutez une commande le système recherchera les objets nécessaires en premier dans Mabib, puis Tabib puis Sabib.

Il y a 3 niveaux de bibliothèque dans la liste de bibliothèque.

  • Le premier est le niveau système, il est donc commun à toute personne qui se logue sur la machine et tout travail qui commence. Il est identifié comme *SYSLIBL. C’est une valeur système (par analogie à Windows on pourrait appeler cela une clé de registre) qui s’appelle QSYSLIBL.
  • Le second niveau est celui de la bibliothèque courante, il est identifié comme *CURLIB. Ce paramétrage peut se changer et il va dépendre de votre profil utilisateur (entre autres). 
  • La dernière partie est la partie utilisateur de la liste des bibliothèques. Elle sera donc définie pour un utilisateur (ou un travail) et pourra être changée en cours de session. Comme pour la partie système de la liste des bibliothèques elle est prédéfinie dans une variable système qui est nommé QUSRLIBL

Une application intéressante de cette liste de bibliothèque est la mise en ligne d’un environnement de production ou de test. Par exemple vous avez une bibliothèque de production pour les programmes qui va s’appeler PRODPGM, puis une bibliothèque de production pour les fichiers qui va s’appeler PRODFIC.

Vous pouvez créer une bibliothèque de test pour les fichiers TESTFIC qui contiendra la réplication des fichiers de données de PRODFIC. A l’exécution de votre programme de test si vous mettez en priorité la biblio TESTFIC c’est les données de test qui seront impactées.

 

DSLIBL : bibliothèque système

31 octobre 2022

On saisie STRPDM devant le Pour afficher la

 

 

On saisie STRPDM devant le 

Pour afficher la fenêtre Gestionnaire de Développement (PDM).

 

On tape le numéro correspondant à l'option choisie. Par exemple l'option N°1 affiche La Gestion des Bibliothèques :

L'option N°2 affiche La Gestion des Objets :

 

L'option N°3 affiche La Gestion des Membres :

 

 

 

 

Publicité
Publicité
Initiation AS400
Publicité
Archives
Publicité