Sunteți pe pagina 1din 15

Introduction aux systmes AS/400

Introduction lAS/400

AS/400 est une gamme de mini-ordinateurs IBM apparue dbut fvrier 1987. Dans linformatique de gestion dIBM, il existe trois gammes dordinateurs : les gros systmes (appels MainFrame), ES/9000, sous le systme d'exploitation MVS ou VM les dpartementaux ou mini-ordinateurs, AS/400, fonctionnant avec le systme d'exploitation OS400 les micro-ordinateurs, PS/2, sous OS/2

L'AS/400 est une architecture compose d'lments matriels et logiciels, comportant notamment une base de donnes et des lments de scurit avancs. La force de l'AS400 rside dans la modularit de ses lments constitutifs lui confrant un haut degr d'adaptabilit et de scurit.

En effet l'architecture AS/400 est une structure en couche sparant les lments matriels et logiciels. Le systme d'exploitation de l'AS/400 est appel OS/400. Il repose sur une couche appele MI (Machine Interface) charge de fournir un ensemble de fonctions (API, application programming interface) que les applicatifs doivent utiliser afin de s'interfacer avec le matriel.

Contrairement la plupart des systmes d'exploitation, la gestion de la plupart des composants matriels (mmoire, entres-sorties, gestion des processus, ...) est rgie par une couche indpendante, appele SLIC (System Licensed Internal Code), situe sous la couche MI. Ainsi l'architecture AS400 assure une relle indpendance entre le matriel, le systme d'exploitation et les applications. Applications OS/400 MI SLIC Matriel

Description du systme OS/400

Le systme dexploitation OS/400 est un systme multiutilisateur, cest --dire que plusieurs personnes peuvent travailler sur lordinateur simultanment, notamment grce un terminal reli l'AS/400. Celui-ci comprend un cran et un clavier. Les crans classiques de lAS/400 sont passifs, ils ne permettent donc pas une gestion de la souris ou de laffichage de nombreuses couleurs. Ce qui est affich lcran est appel un panneau. Il en existe plusieurs sortes : Les panneaux de type INFO : Ces panneaux affichent des informations. Les touches PGUP et PGDN permettent le dplacement vers les panneaux suivants ou prcdents. Les panneaux de type SAISIE permettent lutilisateur de remplir un ou plusieurs c hamps ; celui-ci peut passer dun champ lautre avec la touche TAB. Les panneaux de type MENU : Un menu est affich, lutilisateur choisit parmi les rubriques par lintermdiaire dune ligne de commande situe en bas de lcran. Laffichage respecte un standard, lArchitecture Unifie dApplications (AUP), afin davoir une cohrence dans la gamme des ordinateurs de gestion dIBM. Les panneaux de type LISTE servent travailler sur des ensembles dlments prsents sous forme dune liste, avec un lment par ligne. Certains champs de saisie sont rservs au traitement de llment sur chaque ligne. Lutilisateur indique loption quil a slectionne parmi les choix disponibles pour chacun des champs. Organisation des donnes

Dans AS/400 tout lment renfermant des informations et tant accessible via l'interface d'OS/400 est reprsent sous forme d'objet. Les donnes sont stockes selon une arborescence trois niveaux : bibliothque, objet, membre. Les objets

Pratiquement tout lment est considr comme un objet, que ce soit les programmes ou bien les fichiers de donnes. Un objet est compos de deux parties : un ensemble d'attributs le dcrivant et les donnes proprement dites. Les attributs de l'objet sont notamment son nom, son type, sa taille, sa date de cration ainsi qu'une partie description, et enfin la librairie laquelle l'objet appartient. Un objet est toujours rattach une bibliothque. La nature de lobjet est indique par son type. Les bibliothques

Les bibliothques sont des objets de type *LIB (library). Elles rfrencent les objets du systme et contiennent des informations sur ceux-ci, comme le type ou lemplacement physique o ils sont stocks sur le support physique. Une bibliothque nest pas limi te en nombre dobjets. Dans une bibliothque, deux objets de mme type ne peuvent pas avoir le mme nom. Par contre, ils le peuvent sils sont dans deux bibliothques diffrentes. Une bibliothque tant un objet, elle est rattache aussi une bibliothque. Il existe une bibliothque particulire, QSYS, dans laquelle toutes les bibliothques sont prsentes. QSYS contient le systme dexploitation (OS/400) et des informations pour celui-ci. Les membres

Les donnes contenues dans un fichier peuvent tre regroupes par bloc, les membres. Par exemple, dans un fichier AGENCE contenant le nom des agences dune banque rparties sur toute la France, un membre pourra regrouper tous les noms des agences dune rgion. Il y aura autant de membres que de rgions. Interaction avec le systme

Sans perdre ses informations, il est possible dinterrompre son travail pour effectuer des oprations et le reprendre ensuite. Lappel au systme, en tapant simultanment sur les touches SHIFT et ATTN sur les claviers AS/400 (ALTGR et IMPR pour les claviers 102 touches) puis ENTREE affiche un panneau avec un menu. Voici quelques options de ce menu : Sessions alternes : Cette premire option permet de lancer un nouveau travail sans arrter le premier. Pour passer de lun lautre, il suffit de taper APP/SYS 1. Un seul des travaux est actif, lautre est endormi. Cette option ne permet pas de lancer des travaux en tche de fond. Quand lun des travaux est arrt (par la commande SIGNOFF par exemple), lutilisateur retrouve lautre travail. Arrt dun programme : Cette seconde option arrte le programme qui tait actif.

Gestion des travaux : Cette troisime option affiche un nouveau menu qui regroupe les fonctions de gestion des travaux. Affichage des messages : Cette quatrime option affiche les messages de lutilisateur. Fin du travail : Loption 80 sauvegarde lenvironnement de lutilisateur, il sera restitu la prochaine session. Loption 90 arrte le travail (SIGNOFF).

Les commandes AS/400


Il existe environ un millier de commandes dans l'OS/400, regroupes sous le nom de Langage de Contrle . Un utilisateur pourra les lancer depuis la ligne Option ou Commande situe au bas de l'cran, quand celle-ci est disponible, comme dans un menu systme.

Comme sous DOS ou sous UNIX, ces commandes ont un nombre de paramtres et d'options qui peut varier. Grce une certaine harmonie dans le nom des commandes, il est ais de retrouver le nom d'une d'entre-elles. Le nom des commandes

Le nom d'une commande commence toujours par un verbe anglais, limit sur trois lettres. Ensuite, le type de l'objet sur lequel s'applique la commande est donn. Certaines commandes ont parfois un troisime terme.

Voici quelques exemples de commandes : afficher un message (display message) DSPMSG envoyer un message (send message) SNDMSG grer les travaux d'un utilisateur (work submit job) WRKSBMJOB Les paramtres des commandes

Les paramtres de la commande peuvent tre saisis dans la ligne de commande ou bien dans une interface d'aide, appele Invite de commande, accessible par la touche F4. Dans ce cas, un menu s'affiche, diffrent pour chaque commande, o les champs remplir correspondent aux paramtres. Si les indications l'cran ne suffisent pas, l'appui sur la touche F1 affiche des informations spcifiques au champ o se situe le curseur.

Les menus

Il est possible de retrouver le nom d'une commande dans l'arborescence des menus, partir du menu MAIN. Il suffit de naviguer dans les menus en choisissant les bonnes options. Pour accder plus rapidement au menu de la commande dsire, on peut taper GO CMD suivi de l'abrviation du verbe ou de l'objet dont on recherche la commande.

Par exemple GO CMDLIB affiche un menu dcrivant toutes les commandes ayant un rapport avec les bibliothques. Les messages utilisateurs

La communication entre le systme, les utilisateurs et les programmes se fait par messages. Ceux-ci sont stocks dans des files dattente de messages, objet de type *MSGQ. Cha que poste de travail a une file dattente qui lui est propre. Chaque profil utilisateur est rattach galement une file, celle-ci peut-tre prive ou partage avec dautres utilisateurs (les membres dune quipe de comptables ont une file dattente de me ssages commune). Une personne a accs deux files dattente, celle de son profil utilisateur et celle de son poste de travail.

Il existe une file dattente indispensable qui reoit les messages du systme, elle est nomme QSYSOPR. Les problmes tels que labsence de papier dans une imprimante sont indiqus dans un message stock dans cette file. Loprateur systme doit surveiller cette file avec la plus grande attention afin d'tre capable de rsoudre les incidents dans des dlais raisonnables. Le Mode de rception

Le mode de rception indique comment lutilisateur va tre inform de larrive de messages. Il existe trois modes : Break : Le message apparat immdiatement lcran. Le travail en cours est repris normalement sans perte dinformation aprs la lecture du message. Notify : Un Bip sonore informe lutilisateur de larrive dun message dans une de ses files dattente.

Hold : Le message est ajout la file dattente sans en informer lutilisateur. Envoi de messages

Pour envoyer un message, la commande utiliser est SNDMSG (send message). Si le message est une question, de type *INQ, il faudra prciser la file qui recevra la rponse. Pour quun message arrive avec le mode Break, il y a la commande SNDBRKMSG.

Exemple : Pour envoyer un avertissement tous les utilisateurs que le systme va tre arrt dans trente minutes il suffit de taper la commande suivante : SNDBRKMSG MSG(arret du systeme dans trente minutes) TOMSGQ(*ALLWS) *ALLWS signifie tous les postes de travail (all worksations). Affichage de messages

La commande DSPMSG affiche les messages stocks dans une file dattente. Le paramtre indique le contenu de la file afficher. Sans paramtre, la commande affiche les messages de la file de lcran et de la file du profil de lutilisateur (la touche APP/SYS 4 galement). Par exemple l'affichage de la file QSYSOPR se fait avec la commande suivante : DSPMSG MSGQ(QSYSOPR) Commandes usuelles DSPMSG DSPMSGD Affiche les messages dans la file d'attente Affiche la description des messages

WRKMSGF QCPFMSG Affiche le contenu de MONMSG WRKSBMJOB *JOB Affiche les travaux de la session en cours

WRKACTJOB Affiche tous les travaux actifs WRKUSRPRF Permet de travailler avec un profil utilisateur particulier WRKUSRJOB Affiche la liste des travaux sur lesquels l'utilisateur travaille WRKOBJ WRKSPLF Permet de travailler sur un objet Affiche les fichiers de la file d'attente

WRKOUTQ

Affiche des membres spcifiques de l'OUTQ

DSPLIB Affiche le contenu d'une librairie spcifique EDTLIBL Permet l'ajout et la suppression de librairies dans la liste Ajoute une librairie la liste

ADDLIBLE Nom_de_la_Librairie STRDBG ADDBKP RMVBKP ENDDBG STRDBU de donnes STRDFU modifier DSPFFD Dmarre le dbogage

Ajoute un point d'arrt dans le dbogueur Enlve un point d'arrt dans le dbogueur Termine le dbogage Dmarre DBU (Database Utility), permettant d'accder et de modifier la base

Dmarre DFU (Data File Utility), permettant d'accder aux fichiers et de les

Affiche les champs de description des fichiers

DSPFD Affiche les champs de description pour un fichier particulier DSPPFM DSPDBF Affiche les membres d'un fichier physique Affiche le contenu du fichier de base de donnes

DSPPGMREF Affiche les fichiers utiliss par un programme particulier, ainsi que les librairies avec lesquelles il a t compil WRKJOBSCDE Affiche les travaux planifis RUNQRY QRYFILE(LIB/FILE) Excute une requte sans paramtres sur un fichier DSPDBR LIB/FILE Montre les fichiers logiques associs un fichier physique

Bibliographie

Les commandes indispensables de lAS/400.


Vous trouverez ci-dessous une liste de commandes quil est bon de connatre quand on travaille sur un AS/400. Certaines de ces commandes sont plus utiles une personne soccupant dexploitation, dautres sont plus intressantes pour un programmeur, chacun de faire son petit march. Toutes

ces commandes sont documentes sur lAS/400. Il suffit, pour afficher laide, de taper la commande, puis de presser la touche F4 pour faire apparatre lcran de saisie paramtr, puis de presser la touche de fonction "F1" (ou la touche "Aide" quivalente) pour afficher laide correspondant la commande (prendre soin de placer le curseur au dessus du premier paramtre de la commande, sinon laide affiche correspondra au premier paramtre et non la commande elle-mme).

Liste des commandes. GO ASSIST : Menu dassistance pour utilisateurs dbutants GO LICPGM : Permet de connatre la liste des programmes installs sur un AS/400 WRKACTJOB : Gestion des travaux actifs WRKJOBQ : Gestion de toutes les files dattente de travaux WRKOUTQ : Gestion de toutes les files dattente en sortie WRKSYSSTS : Grer ltat du systme WRKCFGSTS : Grer tat de la configuration WRKSPLF : Gestion de tous les fichiers spoule WRKSBMJOB : Gestion des travaux soumis WRKUSRJOB : Gestion des travaux de lutilisateur WRKOBJPDM : Gestion des objets par PDM WRKQRY : Dmarrage de Query/400 RUNQRY : Lancer une analyse Query/400 STRSQL : Dmarrage de SQL/400 CHGPWD : Changer le mot de passe du profil utilisateur STRPDM : Gestionnaire de dveloppement - PDM AS/400 STRSEU : Dmarrer lditeur de source SEU STRPGMMNU : Dmarrer le menu programmeur DSPMSG : Afficher les messages DSPPFM : Afficher membre de fichier physique DSPLIB : Afficher une bibliothque SAVLIB/RSTLIB : Sauvegarder/Restaurer une bibliothque

SAVOBJ/RSTOBJ : Sauvegarder/Restaurer un objet SNDNETF : Envoyer un fichier au rseau WRKDSTQ : Gestion des files dattente de distribution WRKJOBSCDE : Grer les postes du planning de travaux WRKRPYLE : Grer postes liste de rponse SBMJOB : Soumettre un travail en file dattente de travaux RGZPFM : Rorganiser membre de fichier physique CALL QEZSNDMG : Envoi de message CALL QCMD : Entre de commande RTVCLSRC : Extraire un source CL dun programme CL STROBJCVN : Dmarrer la conversion dobjet DSPPGMREF : Afficher les rfrences programmes DSPFD : Afficher description fichier DSPFFD : Afficher description des zones DSPDBR : Afficher relations BD

Crez vos fonctions SQL.


Vous pouvez crer dans une base DB2, des fonctions spcifiques vos besoins ( user defined function ). Cest le sujet de cet article.

Il est bas sur un exemple rudimentaire, juste pour aborder le sujet. Les liens en fin darticle vous permetront daller plus avant.

Rappel

Une expression est :

un ensemble de variables (contenu dune colonne), de constantes de fonctions combines au moyen doprateurs.

Les expressions peuvent figurer :

en tant que colonne rsultat dun SELECT, dans une clause WHERE, dans une clause ORDER BY.

Une fonction :

retourne une valeur dpendant de ses arguments qui peuvent tre eux-mmes des expressions.

SQL offre un grand nombre de fonctions :

arithmtiques chaines de caractres dates conversions autres Procdons via un exemple concret.

Donnes servant lexemple

Une table t_article contient les articles et lunit de vente utilise. Par exemple larticle 0000001 reprsente un tissu.

Une table t_prix contient le prix des articles dans leur unit de vente par dfaut. Par exemple larticle 0000001 (du tissu) est vendu 20 Euros le mtre linaire. Une table t_unite contient les units de vente possibles pour un article. Par exemple larticle 0000001 (du tissu) peut tre vendu au mtre linaire, ou au rouleau, avec le coefficient arithmtique permettant de convertir une unit en une autre. Le prix au mtre linaire est de 20 Euros (stock dans t_prix) Un rouleau reprsente 50 mtres linaires (le coefficient 50 est stock dans t_unit)

Problme pos

Editer une liste des articles et des prix de vente au rouleau. Si le prix est stock au rouleau, il suffit de le rcuprer dans t_prix. Si le prix est stock au mtre linaire, il faut le rcuprer dans t_prix et y appliquer une rgle de trois pour passer du mtre linaire au rouleau.

1re solution

Dclarer un curseur qui lira les articles qui peuvent tres vendus au rouleau, louvrir, le lire Pour chaque article, traiter les units pour appliquer la rgle de trois.

2nde solution

Crer une fonction SQL qui sera charge de calculer le prix aprs rgle de 3, en fonction de larticle, et de lunit de vente passe en paramtre. Utiliser la fonction SQL pour construire votre requte.

Vous lavez devin (mais ce ntait pas difficile), cest cette seconde solution qui est traite dans cet article. Le code source de la fonction SQL

Commencez par crer une bibliothque sur votre systme AS400. Appelez la par exemple BIBSQLFUN. CRTLIB LIB(BIBSQLFUN) TEXT('Bib de fonctions SQL pour mon applicatif')

Cest dans cette bibliothque que le systme crera le programme de service correspondant votre fonction.

Crer la fonction REGLE3

1er paramtre : le code article. 2nd paramtre : lunit de vente souhaite. recherche du prix de larticle et de lunit de vente par dfaut dans t_prix si lunit de vente souhaite est gale lunit de vente par dfaut, le coefficient appliqu par la rgle de trois sera de 1. si lunit de vente souhaite est diffrente de lunit de vente par dfaut, le coefficient appliquer est cherch dans t_unite. la fonction retourne le prix de larticle, dans lunit de vente passe en paramtre. Je vous conseille dintgrer la cration de la fonction dans un script SQL que vous stockerez dans un membre source ou dans un programme de type rpg ile. CREATE FUNCTION BIBSQLFUN/REGLE3 ( VARTICLE CHAR(7) , VUNITEVTE CHAR(2) , ) RETURNS DECIMAL(20, 9) LANGUAGE SQL MODIFIES SQL DATA BEGIN DECLARE VPRIX DECIMAL(20, 9); DECLARE VCOEFF DECIMAL(20, 9);

DECLARE VUNITE CHAR(2);

SET VPRIX = 0 ; SET VCOEFF = 0 ;

SELECT prix, unite INTO VPRIX , VUNITE FROM t_prix WHERE article = VARTICLE ; END IF ;

IF VUNITEVTE = VUNITE THEN SET VCOEFF = 1 ; ELSE SELECT coeff INTO VCOEFF FROM t_unite WHERE article = VARTICLE AND unite = VUNITEVTE ; END IF ;

SET VPRIX = VPRIX * VCOEFF ;

RETURN VPRIX ;

END

Utiliser la fonction REGLE3

Il vous est impossible de passer une constante en paramtre de la fonction. Les paramtres sont le contenu dune colonne ou une variable hte. Vous devez indiquez SQL le schma (ici BIBSQLFUN) o aller chercher la fonction REGLE3. lexemple ci-dessous rcupre le prix arrondi deux dcimales, dans la variable hte prix pour larticle 0000001 (variable hte article) et lunit rouleau (variable hte unite). EXEC SQL SET OPTION SQLPATH = 'BIBSQLFUN' END-EXEC unite = 'RL' article = '0000001' prix = 0 EXEC SQL SELECT ROUND(REGLE3(a.article , :unite) , 2 ) INTO :prix FROM t_article a WHERE a.article = :article END-EXEC Comment voir les paramtres de la fonction cre SELECT ROUTINE_NAME,SPECIFIC_NAME,SPECIFIC_SCHEMA, IN_PARMS, OUT_PARMS, INOUT_PARMS FROM QSYS2/SYSROUTINES WHERE ROUTINE_NAME LIKE 'REGLE3%' Comment supprimer la fonction DROP SPECIFIC FUNCTION BIBSQLFUN/REGLE3 Vous narrivez pas tester la variable SQLSTATE ?

SQLSTATE nest pas une variable automatiquement dclare. Vous devez la dclarer sur une longueur de 5 charactres :

DECLARE SQLSTATE CHAR(5);

Pour tester si une lecture aboutie par exemple, vous pouvez utiliser SQLSTATE comme suite : IF SQLSTATE <> '02000' THEN SET FL1 = 'O' ; END IF;

S-ar putea să vă placă și