47 F2 80UR REV02 - Support On Line
Transcription
47 F2 80UR REV02 - Support On Line
Bases de données (IQS) Bull DPS 7000 IQS-V4 Guide de l'administrateur GCOS 7 Logiciel Sujet : Description des tâches incombant à l'administrateur pour la préparation et l'exploitation du système d'information relationnel IQS. Observations : La révision 01 reste valable pour les utilisateurs d'IQS-V4 disposant de versions antérieures de GCOS 7. Versions du logiciel : GCOS 7-V8 TS8560. Date : Juin 1998 Bull Electronics Angers S.A. CEDOC Atelier de reprographie 331, Avenue Patton 49004 ANGERS Cedex 01 FRANCE 47 F2 80UR Rev02 Bull HN Information Systems Inc. Publication Order Entry FAX: (508) 294-7411 MA02/423S Technology Park Billerica, MA 01821 U.S.A. Copyright Bull S.A., 1995, 1997, 1998 Toutes les marques citées sont la propriété de leurs titulaires respectifs. Vos suggestions sur la forme et le fond de ce manuel seront les bienvenues. Une feuille destinée à recevoir vos remarques se trouve à la fin du présent manuel. La loi du 11 mars 1957, complétée par la loi du 3 juillet 1985, interdit les copies ou reproductions destinées à une utilisation collective. Toute représentation ou reproduction intégrale ou partielle faite par quelque procédé que ce soit, sans consentement de l'auteur ou de ses ayants cause, est illicite et constitue une contrefaçon sanctionnée par les articles 425 et suivants du code pénal. Ce document est fourni à titre d'information seulement. Il n'engage pas la responsabilité de Bull S.A. en cas de dommages résultant de son application. Des corrections ou modifications au contenu de ce document peuvent intervenir sans préavis ; des mises à jour ultérieures les signaleront éventuellement aux destinataires. 47 F2 80UR Rev02 Préface OBJET DU MANUEL Ce manuel décrit les diverses tâches d'administration qu'impliquent la configuration et l'utilisation efficaces du système d'information relationnel IQS. La maîtrise d'un tel système suppose la connaissance du système d'exploitation GCOS 7, de même qu'un bon niveau de formation aux produits IDS/II, GAC, UFAS et GCL, qui ne sont pas présentés ici. Elle implique également la connaissance des catalogues, des bibliothèques, de la gestion des fichiers et des commandes, ainsi qu'une bonne appréhension des fonctions d'administration plus générales. L'administrateur IQS a un rôle important et accomplit un grand nombre de tâches. Telle qu'elle est envisagée dans ce manuel, sa fonction inclut la définition et la maintenance des vues standard et des structures de fichiers, ainsi que la réservation de place pour les fichiers de saisie. La définition des grilles utilisateur appartient quant à elle davantage au cycle de développement ; elle est donc traitée dans le Guide de l'utilisateur expert IQS-V4. Certaines tâches de l'administrateur IQS interviennent en dehors d'IQS et d'autres à l'intérieur d'IQS ; certaines sont autonomes et d'autres non. C'est pourquoi les différents sujets ne peuvent pas être abordés dans le cadre d'un plan rigoureusement structuré. Pour replacer les principales responsabilités de l'administrateur IQS dans leur contexte général, voir le chapitre 1. Enfin, le contenu précis des tâches de l'administrateur IQS dépend du site où il travaille ; ce manuel ne doit donc pas être pris dans un sens restrictif. Par exemple, sur les sites importants, la gestion des données sera probablement prise en charge par l'administrateur des données. De même, dans le cadre d'un centre d'expertise, la définition de l'environnement de chaque utilisateur et la définition des droits d'accès pourront incomber au responsable de ce centre. On trouvera des précisions sur l'implication des utilisateurs et une introduction à l'environnement de type centre d'expertise au chapitre 2. Il faut donc considérer ce manuel davantage comme la présentation de différentes tâches d'administration que comme la délimitation précise du rôle de chaque intervenant. 47 F2 80UR Rev02 iii IQS-V4 Guide de l'administrateur UTILISATEURS CONCERNES Ce manuel s'adresse aux professionnels de l'informatique dont les responsabilités incluent l'administration d'une base de données IQS. Sa bonne compréhension implique l'expérience du système d'exploitation GCOS 7 ainsi que des produits et utilitaires exploités en relation avec IQS. Une expérience d'administration de systèmes plus générale constitue d'autre part un atout important. STRUCTURE DU MANUEL Chapitres 1 à 13 iv Chapitre 1 Principales responsabilités de l'administrateur d'une base de données IQS-V4. Chapitre 2 Problèmes posés par l'informatique individuelle et rôle d'IQS dans le cadre d'un centre d'expertise. Chapitre 3 Personnalisation du système IQS livré et définition des droits d'accès et des déclencheurs. Chapitre 4 Informations de référence sur le langage de description des données (DDL). Chapitre 5 Compilation des schémas DDL origine au moyen de MNDD/DDPROC pour obtenir des schémas DDL résultants. Chapitre 6 Lancement du processeur IQS au moyen du GCL ou du JCL, en mode interactif et en traitement par lots. Chapitre 7 Compilation des schémas DDL résultants pour obtenir des schémas utilisables par IQS. Chapitre 8 Vues standard et exemples, traités étape par étape, de définition, mise à jour, sauvegarde et visualisation. Chapitre 9 Structures et exemples, traités étape par étape, de définition, mise à jour, sauvegarde et visualisation. Chapitre 10 Types de fichiers utilisés par IQS, et noms de fichiers ; définition, personnalisation et utilisation des fichiers de saisie. Chapitre 11 Utilisation pendant une session IQS de la métabase IQS (dictionnaire de données en ligne). Chapitre 12 Réponse à des questions concernant la recompilation (quand et comment elle doit être effectuée). Chapitre 13 Informations complémentaires sur le système : fichiers sous GAC, attente prolongée, blocage du traitement et gestion des tampons. 47 F2 80UR Rev02 Préface Annexes A à E Annexe A Création d'un modèle de système IQS. Annexe B Recommandations concernant les index secondaires. Annexe C Utilisation de GT-WRITER pour diriger les sorties IQS sur un terminal d'impression à distance. Annexe D Possibilités de manipulation des données en fonction de l'organisation des fichiers. Annexe E Tables des données du schéma SCH-CUSTOMERS. Exemples : Ce manuel comporte de nombreux exemples. Si certains sujets paraissent justifier des exemples supplémentaires, veuillez nous le faire savoir. Si des exemples précis semblent pouvoir compléter utilement le texte existant, prière de nous les communiquer, accompagnés de la feuille de remarques qui se trouve à la fin de ce manuel. BIBLIOGRAPHIE Le diagramme ci-dessous représente l'ensemble de la documentation IQS-V4 et indique les manuels destinés à chaque catégorie d'usagers. 47 F2 80UR Rev02 v IQS-V4 Guide de l'administrateur R esp o n sa b le s d u se rvice in fo rm a tiq u e IQ S -V 4 P ré s e n ta tio n g é n é ra le d u s ys tè m e 47 F2 71UR A dm in istra teu rs IQ S In itia tio n à IQ S -V 4 47 F2 72UR IQ S -V 4 IQ S -V 4 G u id e d e l'a d m in is ta te u r 47 F 2 8 0 U R B u lle tin d e lo g ic ie l 47 F2 70UR Développeurs IQ S -V 4 G u id e d e l'u tilis a te u r e xp e rt 47 A2 76UR IQ S -V 4 /T D S G u id e d e l'u tilis ate u r 47 F 2 8 1 U R IQ S -V4 G uide du p rogram m eur 47 F 2 79U R IQ S -V 4 M anuel de ré fé re n ce V o lu m e 1 47 F2 77UR IQ S -V 4 M a n u el d e réfé re n c e V o lu m e 2 47 F2 78U R U tilisa te u rs e xp erts D o cu m e n tation W IL In itia tio n a u la n g a ge d e re q u ê te s 47 F2 74UR vi U tilisa te u rs n o vice s T o us utilisa te urs IQ S -V 4 G uid e d e l'u tilis a te u r n o v ic e 4 7 A 2 73 U R IQ S -V 4 G uid e p ra tiq u e 47 F2 75UR IQ S -V 4 In d e x 47 F2 82UR 47 F2 80UR Rev02 Préface Les références des autres manuels IQS-V4 figurent dans la liste ci-dessous. Pour avoir la liste complète des manuels GCOS 7 généraux, on se reportera au Bulletin de logiciel GCOS 7. Cette bibliographie est fournie à titre indicatif. Pour plus de précisions (disponibilité du manuel, numéro de révision, indice de mise à jour, veuillez vous adresser à CEDOC ou éventuellement consulter le fascicule "Documents nouveaux" (référence 00 F4 7210) Documentation IQS IQS-V4 - Bulletin de logiciel..............................................................................47 F2 70UR IQS-V4 Software Release Bulletin .................................................................. 47 A2 70UR IQS-V4 - Présentation générale du système....................................................47 F2 71UR IQS-V4 Quick Tour.......................................................................................... 47 A2 71UR Initiation à IQS-V4 ............................................................................................47 F2 72UR Getting started with IQS-V4 ............................................................................ 47 A2 72UR IQS-V4 - Guide de l'utilisateur novice ..............................................................47 F2 73UR IQS-V4 - End User's Guide ............................................................................. 47 A2 73UR Initiation au langage de requêtes .....................................................................47 F2 74UR Getting started with Query .............................................................................. 47 A2 74UR IQS-V4 - Guide pratique...................................................................................47 F2 75UR IQS-V4 - Quick Reference Handbook ............................................................. 47 A2 75UR IQS-V4 - Guide de l'utilisateur expert...............................................................47 F2 76UR IQS-V4 - Advanced User's Guide ................................................................... 47 A2 76UR IQS-V4 - Manuel de référence - Volume 1.......................................................47 F2 77UR IQS-V4 - Reference Manual Volume 1............................................................ 47 A2 77UR IQS-V4 - Manuel de référence - Volume 2.......................................................47 F2 78UR IQS-V4 - Reference Manual Volume 2............................................................ 47 A2 78UR IQS-V4 - Guide du programmeur .....................................................................47 F2 79UR IQS-V4 - Programmer's Guide ........................................................................ 47 A2 79UR IQS-V4 - Guide de l'administrateur ..................................................................47 F2 80UR IQS-V4 - Administrator's Guide ....................................................................... 47 A2 80UR IQS-V4/TDS - Guide de l'utilisateur..................................................................47 F2 81UR IQS-V4/TDS User's Guide .............................................................................. 47 A2 81UR IQS-V4 - Index .................................................................................................47 F2 82UR IQS-V4 Index................................................................................................... 47 A2 82UR Dans ce manuel, les références sont citées sous forme abrégée (4 derniers caractères alphanumériques). 47 F2 80UR Rev02 vii IQS-V4 Guide de l'administrateur CONVENTIONS D'ECRITURE APPLICABLES AU DDL Les conventions d'écriture utilisées dans ce manuel pour la syntaxe du langage de description des données sont les suivantes : • Une clause peut comporter des mots en majuscules et en minuscules ainsi que des symboles et des caractères spéciaux. • Les mots en majuscules soulignés sont des mots-clés, dont la présence est obligatoire dans le format. Exemple : SCHEMA NAME IS nom-schéma. • Les mots en majuscules non soulignés sont facultatifs. C'est le cas, dans l'exemple ci-dessus, de NAME et IS. • Les mots en minuscules sont des termes génériques, qui doivent être remplacés par les noms ou valeurs appropriés. Ainsi, dans l'exemple ci-dessus, "nom-schéma" doit être remplacé par le nom de schéma défini par l'utilisateur. • Les symboles spéciaux sont utilisés comme suit : a [ b ] c Valeur facultative. maximum. a { b } c Valeur obligatoire. Une occurrence et une seule. || a || || b || || c || Aucune occurrence ou une au Valeur obligatoire. Une occurrence au moins et une de chaque au maximum. • Les points de suspension (...) indiquent que l'élément qui précède ou la totalité du contenu des crochets ou accolades précédentes peut être répété une ou plusieurs fois. viii 47 F2 80UR Rev02 Préface CONVENTIONS D'ECRITURE APPLICABLES AU GCL Les conventions d'écriture utilisées dans ce manuel pour la syntaxe des commandes GCL (voir chapitre 6) sont les suivantes : ELEMENT Les majuscules indiquent un nom ou un mot-clé, à introduire tel quel. élément Les minuscules indiquent une valeur à fournir par l'utilisateur. En général, le type et la longueur maximale de la valeur sont spécifiés : déc3 = nombre entier décimal de trois chiffres maximum car105 = chaîne de 105 caractères alphanumériques maximum hexa2 = valeur hexadécimale ne pouvant pas dépasser FF nom31 = nom de 31 caractères maximum bib78 = nom de bibliothèque de 78 caractères maximum fic78 = nom de fichier de 78 caractères maximum ast31 = profil de nom de 31 caractères maximum, régi par la convention astérisque Dans certains cas, le format de la valeur est précisé : a= un seul caractère alphabétique nnn = nombre de trois chiffres hh.mm = heures et minutes Dans d'autres cas, il s'agit d'une simple description de la valeur : classe-appareils condition caractères quelconques {élément} {élément} {élément} Une colonne d'éléments entre accolades indique que l'un d'eux doit être sélectionné. [élément] Les crochets indiquent un élément facultatif. ELEMENT Un élément souligné représente une valeur implicite. C'est la valeur que le système retient lorsqu'aucune autre n'est spécifiée. bool Valeur booléenne, c'est-à-dire 0 ou 1. Si l'utilisateur introduit simplement un mot-clé, la valeur du paramètre booléen est implicitement égale à 1. Si le mot-clé est précédé d'un 'N', le paramètre prend la valeur 0. élément... Les points de suspension indiquent que l'élément qui précède peut être répété une ou plusieurs fois. +=,()'/.$*- Caractères spéciaux, à introduire tels quels. -------- Les paramètres figurant sous une ligne de tirets ne figurent pas dans les guidages GCL. 47 F2 80UR Rev02 ix IQS-V4 Guide de l'administrateur CONVENTIONS D'ECRITURE APPLICABLES A IQS 10 ELEMENT Les majuscules indiquent un mot-clé à introduire tel quel. ELEMENT Un élément souligné représente la valeur implicite. Lorsqu'un choix entre plusieurs valeurs est possible (liste verticale), la valeur implicite, s'il y en a une, est soulignée. A ne pas confondre avec l'entrée utilisateur. Voir "Exemples" ci-dessous. <valeur> Valeur (ou chaîne) à fournir par l'utilisateur. A noter que dans les exemples, les valeurs correspondant à des minuscules peuvent être en majuscules. Voir "Exemples" cidessous. élément Elément dont la valeur est connue. [élément] Les crochets indiquent un élément facultatif. { a } { b } { c } Une valeur et une seule. || a || || b || || c || Une occurrence au moins. Une occurrence de chaque au maximum. ... Les points de suspension signifient que la syntaxe qui précède peut être répétée une ou plusieurs fois. Si la syntaxe est à l'intérieur de crochets coudés, c'est la totalité du contenu des crochets qui peut être répétée. + = , () ' / . $ - Caractères spéciaux à introduire tels quels. Ils sont obligatoires si la partie du format dans laquelle ils apparaissent doit être fournie. Exemples Par convention, l'entrée utilisateur est toujours soulignée. Elle est également en MAJUSCULES sauf dans le cas où la chaîne contient des caractères minuscules. 47 F2 80UR Rev02 Table des matières 1. Introduction ........................................................................................................... 1-1 1.1 RESPONSABILITES D'ORDRE GENERAL .............................................................. 1-1 1.2 RESPONSABILITES SPECIFIQUES ......................................................................... 1-3 2. IQS et les utilisateurs novices....................................................................... 2-1 2.1 INTRODUCTION......................................................................................................... 2-1 2.2 L'INFORMATION DISPONIBLE POUR TOUS .......................................................... 2-2 2.3 INFORMATIQUE INDIVIDUELLE .............................................................................. 2-3 2.4 LE CONCEPT DE CENTRE D'EXPERTISE............................................................... 2-4 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 Fixation et suivi des objectifs .................................................................................. Options d'installation................................................................................................ L'investissement nécessaire en formation............................................................. Contrôle et préparation ............................................................................................ Mise en oeuvre .......................................................................................................... Résumé ...................................................................................................................... 2-4 2-4 2-5 2-5 2-6 2-6 47 F2 80UR Rev02 xi IQS-V4 Guide de l'administrateur 3. Accès et protection ............................................................................................ 3-1 3.1 CONCEPTS DE BASE ............................................................................................... 3-2 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 Environnements ........................................................................................................ Familles de commandes........................................................................................... Projets ........................................................................................................................ Accessibilité et visibilité des commandes ............................................................. Droits opérateur ........................................................................................................ 3-2 3-3 3-3 3-3 3-4 3.2 PERSONNALISATION DU DOMAINE IQS................................................................ 3-5 3.2.1 3.2.2 3.2.3 3.2.4 3.2.5 Commande MODIFY_ACCESS................................................................................. LIST_ACCESS............................................................................................................ RESET ........................................................................................................................ Paramètres de MODIFY_ACCESS............................................................................ Utilisation de MODIFY_ACCESS.............................................................................. 3-5 3-6 3-6 3-6 3-7 3.3 DROITS D'ACCES AUX OBJETS IQS....................................................................... 3-9 3.3.1 3.3.2 3.3.3 3.3.4 3.3.5 3.3.6 Etablissement des droits d'accès............................................................................ GRANT et REVOKE ................................................................................................... Prise en compte des droits d'accès ........................................................................ SYSADMIN ................................................................................................................. Propriétaire ................................................................................................................ Contrôle des droits d'accès ..................................................................................... 3-9 3-9 3-10 3-11 3-12 3-13 3.4 DECLENCHEURS ...................................................................................................... 3-14 3.4.1 3.4.2 3.4.2.1 3.4.2.2 Déclencheurs niveau session.................................................................................. Déclencheurs niveau base de données et niveau requête ................................... @NEXT-QUERY et @NEXT-SCRIPT ........................................................................ Définition et suppression des déclencheurs................................................................ 3-14 3-17 3-17 3-18 3.4.3 3.4.4 Déclencheurs niveau transaction (TDS) ................................................................. Déclencheur @TRIGGER-ERROR ........................................................................... 3-19 3-19 3.5 VARIABLES SYSTEME ............................................................................................. 3-20 3.5.1 3.5.2 3.5.3 3.5.4 3.5.4.1 3.5.4.2 Gestion de la consommation des ressources........................................................ Contrôle de la consommation des ressources ...................................................... Priorité d'exécution................................................................................................... Dépassement des limites ......................................................................................... @TRIGGER-ERROR .................................................................................................. @TRIGGER-CODE-ERROR ...................................................................................... 3-20 3-21 3-21 3-22 3-22 3-22 3.6 DISPLAY STATUS ..................................................................................................... 3-24 3.6.1 3.6.2 Exemple en mode ligne ............................................................................................ Informations obtenues ............................................................................................. 3-24 3-25 xii 47 F2 80UR Rev02 Table des matières 4. Définition des schémas .................................................................................... 4-1 4.1 INTRODUCTION......................................................................................................... 4-1 4.2 UTILISATEURS DE FICHIERS IDS/II ........................................................................ 4-2 4.3 COMPOSANTES D'UN SCHEMA DDL ..................................................................... 4-3 4.3.1 4.3.2 4.3.3 4.3.3.1 4.3.3.2 Format origine DDL................................................................................................... Jeu de caractères DDL.............................................................................................. Ponctuation DDL ....................................................................................................... Délimiteurs .................................................................................................................. Séparateurs................................................................................................................. 4-3 4-4 4-5 4-5 4-5 4.3.4 4.3.4.1 4.3.4.2 4.3.4.3 4.3.4.4 4.3.4.5 Mots DDL ................................................................................................................... Mots réservés.............................................................................................................. Noms ........................................................................................................................... Représentation synonymique des noms ..................................................................... Unicité des noms......................................................................................................... Nombre maximum de noms........................................................................................ 4-6 4-6 4-6 4-7 4-7 4-7 4.3.5 4.3.5.1 4.3.5.2 4.3.5.3 Littéraux ..................................................................................................................... Littéraux alphanumériques.......................................................................................... Littéraux numériques................................................................................................... Littéraux hexadécimaux .............................................................................................. 4-8 4-8 4-8 4-9 4.3.6 4.3.7 4.3.8 4.3.8.1 4.3.8.2 Commentaires ........................................................................................................... Noms de données ..................................................................................................... Identificateurs de données....................................................................................... Indiçage....................................................................................................................... Qualification................................................................................................................. 4-9 4-10 4-10 4-10 4-10 4.3.9 4.3.9.1 4.3.9.2 4.3.9.3 4.3.9.4 4.3.9.5 4.3.9.6 Conditions ................................................................................................................. Format général d'une condition................................................................................... Alternative ................................................................................................................... Condition simple.......................................................................................................... Condition relationnelle................................................................................................. Utilisation des parenthèses ......................................................................................... Exemples de conditions .............................................................................................. 4-11 4-11 4-11 4-11 4-12 4-14 4-14 4.4 SYNTAXE DDL ........................................................................................................... 4-15 4.4.1 4.4.2 4.4.3 4.4.4 4.4.5 4.4.6 4.4.7 4.4.8 4.4.9 Ordre des rubriques.................................................................................................. Description des rubriques........................................................................................ Rubrique SCHEMA .................................................................................................... Rubrique AREA.......................................................................................................... Rubrique RECORD.................................................................................................... Clause RECORD NAME ............................................................................................ Clause WITHIN........................................................................................................... Clause KEY ................................................................................................................ Clause RECORD-TYPE ............................................................................................. 4-15 4-16 4-16 4-17 4-18 4-19 4-19 4-20 4-22 47 F2 80UR Rev02 xiii IQS-V4 Guide de l'administrateur 4.4.10 4.4.11 4.4.12 4.4.13 4.4.14 4.4.15 4.4.16 4.4.17 4.4.18 4.4.19 Clause CHECK (sous-rubrique article) ................................................................... Clause nom-donnée.................................................................................................. Clause TYPE .............................................................................................................. Clause OCCURS ........................................................................................................ Clause CHECK (sous-rubrique zone)...................................................................... Rubrique SET ............................................................................................................ Clause SET NAME ..................................................................................................... Clause OWNER.......................................................................................................... Clause MEMBER ....................................................................................................... Rubrique END-SCHEMA ........................................................................................... 4-23 4-24 4-25 4-28 4-30 4-32 4-34 4-34 4-35 4-35 4.5 EXEMPLE ................................................................................................................... 4-36 4.6 MOTS RESERVES DU LANGAGE DDL.................................................................... 4-38 5. Compilation d'un schéma par MNDD ......................................................... 5-1 5.1 INTRODUCTION......................................................................................................... 5-1 5.2 MAINTAIN_DATA_DESCRIPTION (MNDD) .............................................................. 5-2 5.3 LANCEMENT DE MNDD PAR L'INTERMEDIAIRE DE DDPROC ............................ 5-3 5.4 COMMANDE TRANSLATE DE MNDD ...................................................................... 5-4 6. Lancement d'IQS ................................................................................................. 6-1 6.1 INTRODUCTION......................................................................................................... 6-1 6.2 BIBLIOTHEQUES UTILISEES PAR IQS ................................................................... 6-2 6.3 CREATION DES BIBLIOTHEQUES .......................................................................... 6-4 6.4 CREATION D'UN SCHEMA ....................................................................................... 6-5 6.5 COMPILATION DU SCHEMA POUR FICHIER UFAS PAR MNDD (DDPROC) ....... 6-5 6.6 APPEL DU PROCESSEUR IQS ................................................................................. 6-6 6.6.1 6.6.2 6.6.3 6.6.4 6.6.4.1 6.6.4.2 6.6.4.3 Exécution de la commande IQS en interactif ......................................................... Exécution de la commande IQS via une unité de bibliothèque............................ Création d'une procédure GCL................................................................................ Méthodes de lancement d'une session IQS ........................................................... Exécution d'une procédure GCL ................................................................................. Exécution d'une commande GCL ............................................................................... Exécution d'une séquence JCL................................................................................... 6-6 6-12 6-13 6-17 6-17 6-17 6-19 xiv 47 F2 80UR Rev02 Table des matières 6.7 UTILISATION D'IQS EN TRAITEMENT PAR LOTS.................................................. 6-21 6.7.1 6.7.1.1 6.7.1.2 Soumission sous forme d'une procédure GCL...................................................... COMFILE .................................................................................................................... PRTFILE...................................................................................................................... 6-22 6-23 6-23 6.7.2 6.7.2.1 6.7.2.2 6.7.2.3 6.7.2.4 Soumission sous forme d'un travail JCL ............................................................... COMFILE .................................................................................................................... PRTFILE...................................................................................................................... STATUS et code SEV ................................................................................................. Traitement de STATUS en mode par lots................................................................... 6-24 6-24 6-24 6-25 6-26 7. Compilation des schémas sous IQS .......................................................... 7-1 7.1 GENERALITES........................................................................................................... 7-1 7.2 NOUVEAUX SCHEMAS ............................................................................................. 7-3 7.3 SCHEMAS EXISTANTS ............................................................................................. 7-3 8. Vues standard ...................................................................................................... 8-1 8.1 INTRODUCTION......................................................................................................... 8-1 8.1.1 8.1.2 8.1.3 8.1.4 Bases de données et vues standard ....................................................................... Autres types de vues ................................................................................................ Vue dynamique.......................................................................................................... Remarques à l'intention des utilisateurs TDS........................................................ 8-2 8-3 8-3 8-3 8.2 ARTICLE LOGIQUE ................................................................................................... 8-4 8.3 ZONE LOGIQUE......................................................................................................... 8-6 8.4 CONCEPTION ET CREATION D'UNE VUE STANDARD ......................................... 8-7 8.4.1 8.4.2 8.4.3 8.4.4 8.4.5 Généralités................................................................................................................. Exemples de vues standard..................................................................................... Clés primaires et secondaires ................................................................................. Définition de la vue MY-CUSTOMERS .................................................................... Définition de la vue MAKE-ORDERS ....................................................................... 8-7 8-9 8-10 8-13 8-15 47 F2 80UR Rev02 xv IQS-V4 Guide de l'administrateur 8.5 MISE A JOUR D'UNE VUE STANDARD ................................................................... 8-18 8.5.1 8.5.2 8.5.3 8.5.4 8.5.5 8.5.6 Droits d'accès............................................................................................................ Remarques à propos d'IDS/II ................................................................................... Mise à jour des attributs d'une vue ......................................................................... Mise à jour d'un article logique ............................................................................... Mise à jour d'une zone logique................................................................................ Nouvelle sauvegarde de la vue................................................................................ 8-18 8-19 8-19 8-20 8-20 8-22 8.6 MISE A JOUR DE DONNEES PAR L'INTERMEDIAIRE D'UNE VUE....................... 8-23 8.6.1 8.6.2 8.6.3 Sélection d'une vue standard pour la mise à jour ................................................. Protection contre la mise à jour au niveau vue ..................................................... Protection contre la mise à jour au niveau zone ................................................... 8-23 8-23 8-23 8.7 VISUALISATION D'INFORMATIONS SUR UNE VUE............................................... 8-24 8.7.1 8.7.2 8.7.3 8.7.4 8.7.5 8.7.6 8.7.7 8.7.8 Sous-menu DISPLAY VIEW ...................................................................................... Visualisation d'informations sur un article ............................................................ Visualisation d'informations sur une zone............................................................. Listage des articles d'une vue ................................................................................. Visualisation d'informations sur les ensembles d'une vue .................................. Listage des schémas sous-jacents ......................................................................... Visualisation de la liste des zones d'un article ...................................................... Listage des noms de projet...................................................................................... 8-24 8-24 8-25 8-25 8-25 8-26 8-26 8-26 8.8 VISUALISATION D'INFORMATIONS SUR LES SCHEMAS..................................... 8-27 8.8.1 8.8.2 8.8.3 8.8.4 8.8.5 Sous-menu DISPLAY SCHEMA................................................................................ Listage des aires d'un schéma ................................................................................ Visualisation des clés d'un article........................................................................... Listage des articles d'une aire ................................................................................. Retour au sous-menu DISPLAY VIEW .................................................................... 8-27 8-27 8-28 8-28 8-28 9. Structures............................................................................................................... 9-1 9.1 INTRODUCTION......................................................................................................... 9-1 9.1.1 9.1.2 9.1.3 9.1.4 Attributs des structures............................................................................................ Attributs des zones ................................................................................................... Définition.................................................................................................................... Utilisation ................................................................................................................... 9-2 9-2 9-2 9-3 xvi 47 F2 80UR Rev02 Table des matières 9.2 DEFINITION D'UNE STRUCTURE ............................................................................ 9-4 9.2.1 9.2.2 9.2.3 9.2.4 Définition manuelle d'une structure........................................................................ Définition d'une structure à partir d'un article de la vue courante ...................... Définition d'une structure à partir d'une ou plusieurs grilles............................... Définition implicite d'une structure......................................................................... 9-4 9-6 9-7 9-7 9.3 MISE A JOUR D'UNE STRUCTURE.......................................................................... 9-10 9.3.1 9.3.2 9.3.3 Mise à jour des attributs d'une structure................................................................ Modification de la liste des zones ........................................................................... Mise à jour d'une zone de structure........................................................................ 9-10 9-11 9-12 9.4 VISUALISATION D'INFORMATIONS SUR LES STRUCTURES .............................. 9-14 9.4.1 9.4.2 9.4.3 9.4.4 9.4.5 Sous-menu DISPLAY STRUCTURE......................................................................... Visualisation des attributs d'une structure ............................................................ Visualisation de toutes les zones d'une structure................................................. Visualisation d'une zone de structure .................................................................... Visualisation des droits d'accès à la structure ...................................................... 9-14 9-14 9-15 9-16 9-17 10. Fichiers IQS ........................................................................................................... 10-1 10.1 FICHIERS BASE DE DONNEES................................................................................ 10-1 10.2 FICHIERS CLASSIQUES ........................................................................................... 10-2 10.3 AFFECTATION DES FICHIERS IQS.......................................................................... 10-3 10.3.1 10.3.2 10.3.3 10.3.4 10.3.5 Noms de fichiers ....................................................................................................... Affectation de noms de fichiers externes............................................................... Affectation de noms de fichiers internes................................................................ Relations entre les différents noms ........................................................................ Remarque complémentaire sur les noms de fichiers IQS..................................... 10-3 10-4 10-4 10-4 10-5 10.4 FICHIERS D'IMPRESSION ........................................................................................ 10-6 10.4.1 10.4.2 Utilisation de sous-fichiers ...................................................................................... Fichiers d'impression en traitement par lots ......................................................... 10-6 10-6 10.5 FICHIERS DE SAISIE ................................................................................................. 10-7 10.5.1 10.5.2 10.5.3 10.5.4 10.5.5 10.5.6 10.5.7 Introduction ............................................................................................................... Sécurité ...................................................................................................................... Caractéristiques implicites ...................................................................................... Possibilités offertes .................................................................................................. Exemple d'utilisation des fichiers de saisie ........................................................... Objectif de l'exemple ................................................................................................ Réalisation ................................................................................................................. 10-7 10-7 10-7 10-8 10-10 10-11 10-11 47 F2 80UR Rev02 xvii IQS-V4 Guide de l'administrateur 11. Utilisation de la métabase IQS ...................................................................... 11-1 11.1 INTRODUCTION......................................................................................................... 11-1 11.2 ACCES A LA METABASE.......................................................................................... 11-2 11.2.1 11.2.2 Accès en langage non procédural........................................................................... Accès en langage procédural .................................................................................. 11-2 11-2 11.3 TACHES DE L'ADMINISTRATEUR ........................................................................... 11-3 11.4 EXEMPLES................................................................................................................. 11-4 12. Recompilation ...................................................................................................... 12-1 12.1 INTRODUCTION......................................................................................................... 12-1 12.2 PROCEDURE DE MODIFICATION DES SCHEMAS ................................................ 12-2 13. Environnement GCOS 7 ................................................................................... 13-1 13.1 ACCES CONCURRENTS........................................................................................... 13-1 13.1.1 13.1.2 13.1.2.1 13.1.2.2 Unité de consolidation.............................................................................................. Consolidation en traitement par lots et sous IOF.................................................. Consolidation automatique.......................................................................................... Consolidation manuelle ............................................................................................... 13-2 13-3 13-3 13-3 13.1.3 Consolidation sous IQS/TDS ................................................................................... 13-4 13.2 PARTAGE DE FICHIERS ........................................................................................... 13-5 13.2.1 13.2.1.1 13.2.1.2 Fichiers aires UFAS .................................................................................................. Fichiers catalogués ..................................................................................................... Fichiers non catalogués .............................................................................................. 13-5 13-5 13-5 13.2.2 13.2.3 13.2.4 13.2.5 Aires IDS/II.................................................................................................................. Fichiers de travail...................................................................................................... Fichiers contrôlés par TDS ...................................................................................... Fichiers protégés par journalisation ....................................................................... 13-5 13-6 13-6 13-6 13.3 PARTAGE DE RESSOURCES................................................................................... 13-7 13.3.1 13.3.2 Blocage du traitement .............................................................................................. Attente prolongée...................................................................................................... 13-7 13-9 13.4 OPTIMISATION ET PERFORMANCES ..................................................................... 13-10 13.4.1 13.4.2 13.4.3 13.4.4 Paramètre SIZE.......................................................................................................... Paramètre POOLSIZE................................................................................................ Groupe de paramètres DEFn (NBBUF) ................................................................... Groupe de paramètres DEFn (BUFPOOL) .............................................................. 13-11 13-11 13-12 13-12 13.5 IQS SANS GAC-EXTENDED...................................................................................... 13-12 xviii 47 F2 80UR Rev02 Table des matières Annexes A. Exemple de création d'un système IQS .................................................... A-1 A.1 INTRODUCTION......................................................................................................... A-1 A.2 REPERTOIRE ............................................................................................................. A-2 A.2.1 A.2.2 A.2.3 Sous-répertoire.......................................................................................................... Répertoire de référence............................................................................................ Informations sur le contenu d'un répertoire .......................................................... A-2 A-2 A-2 A.3 DESCRIPTION DU SYSTEME ................................................................................... A-3 A.3.1 A.3.2 A.3.3 Bibliothèques utilisées ............................................................................................. Fichiers de données utilisés .................................................................................... Fichiers de travail utilisés ........................................................................................ A-3 A-3 A-3 A.4 ORDRE D'EXECUTION DES COMMANDES ............................................................ A-4 A.4.1 A.4.2 A.4.3 A.4.4 A.4.5 A.4.6 A.4.7 A.4.8 A.4.9 Création du répertoire .............................................................................................. Création des bibliothèques et des fichiers............................................................. Définition des bibliothèques de travail ................................................................... Description des schémas......................................................................................... Appel d'IQS ................................................................................................................ Compilation d'un schéma sous IQS........................................................................ Création d'une base de données séquentielle indexée......................................... Création d'une base de données séquentielle ....................................................... Suppression du contenu de la base de données .................................................. A-4 A-4 A-5 A-5 A-8 A-10 A-10 A-14 A-16 B. Sauvetage des index secondaires ............................................................... B-1 B.1 INTRODUCTION......................................................................................................... B-1 B.2 SAUVETAGE DES INDEX SECONDAIRES .............................................................. B-2 B.3 INFORMATIONS COMPLEMENTAIRES................................................................... B-2 47 F2 80UR Rev02 xix IQS-V4 Guide de l'administrateur C. Utilisation de GT-WRITER sous IQS ........................................................... C-1 C.1 INTRODUCTION......................................................................................................... C-1 C.1.1 C.1.2 Utilisation du dispositif AUTO de SYS.TW.OUT .................................................... Création d'une unité dans la bibliothèque IQS SLLIB ........................................... C-1 C-2 D. Opérations possibles en fonction de l'organisation des données D-1 E. Schéma SCH-CUSTOMERS : tables des données ................................ E-1 Glossaire .................................................................................................................................. g-1 Index xx ................................................................................................................................... i-1 47 F2 80UR Rev02 Table des matières Illustrations Figures 3-1 4-1 4-2 5-1 7-1 8-1 8-2 8-3 8-4 8-5 8-6 8-7 8-8 10-1 10-2 10-3 12-1 A-1 A-2 A-3 A-4 A-5 A-6 B-1 D-1 Utilisateurs, projets et environnements ....................................................................... 3-4 Schéma SCH-CUSTOMERS ...................................................................................... 4-36 Description origine du schéma SCH-CUSTOMERS ................................................... 4-37 Commande TRANSLATE ........................................................................................... 5-4 Compilation des schémas pour utilisation sous IQS ................................................... 7-2 Types de vues standard .............................................................................................. 8-8 Schéma SCH-CUSTOMERS ...................................................................................... 8-9 Vue linéaire MY-CUSTOMERS................................................................................... 8-9 Vue arborescente MY-ORDERS ................................................................................. 8-9 Vue linéaire MY-ITEMS............................................................................................... 8-10 Schéma SCH-CUSTOMERS avec clés primaires et secondaires.............................. 8-11 Vue linéaire MY-CUSTOMERS avec son origine........................................................ 8-12 Vue MAKE-ORDERS avec son origine ....................................................................... 8-16 Relations entre nfe, nfi et nom de fichier IQS ............................................................. 10-5 Déroulement d'une session de saisie.......................................................................... 10-9 Vue V-PROMO avec son origine................................................................................. 10-17 Recompilation.............................................................................................................. 12-3 DDL du schéma origine IND ....................................................................................... A-6 DDL du schéma origine SEQ ...................................................................................... A-7 Création d'une procédure GCL d'appel d'IQS ............................................................. A-9 Création d'un fichier séquentiel indexé : requête IND-CREATE ................................. A-11 Données introduites à l'exécution de IND-CREATE (1/2) ........................................... A-12 Création d'un fichier séquentiel : requête SEQ-CREATE ........................................... A-15 Clés secondaires dans le schéma SCH-CUSTOMERS ............................................. B-3 Opérations possibles pour chaque organisation ......................................................... D-2 47 F2 80UR Rev02 xxi IQS-V4 Guide de l'administrateur Tableaux 4-1 4-2 4-3 4-4 4-5 4-6 6-1 6-2 6-3 6-4 9-1 9-2 E-1 E-2 E-3 E-4 22 Jeu de caractères DDL ............................................................................................... Limites DDL................................................................................................................. Opérateurs de comparaison........................................................................................ Comparaison de deux identificateurs de données ...................................................... Comparaison d'un identificateur de données et d'un littéral........................................ Correspondance entre les types de données DDL et COBOL.................................... Bibliothèques IQS........................................................................................................ Relations entre messages d'erreur IQS, niveaux d'erreur IQS et #STATUS.............. Interprétation de #STATUS au niveau commande ..................................................... #STATUS et #SEV à la fin de l'étape.......................................................................... Niveaux d'utilisation de DEFINE STRUCTURE .......................................................... Niveaux d'utilisation de UPDATE STRUCTURE......................................................... Table CUSTOMERS ................................................................................................... Table ORDER ............................................................................................................. Table ORDER-LINES.................................................................................................. Table ITEMS ............................................................................................................... 4-4 4-7 4-12 4-13 4-13 4-27 6-3 6-29 6-29 6-29 9-9 9-13 E-1 E-2 E-3 E-4 47 F2 80UR Rev02 1. Introduction 1.1 RESPONSABILITES D'ORDRE GENERAL L'administrateur IQS est avant tout responsable : • de la mise en oeuvre technique de l'environnement base de données IQS, • du fonctionnement au jour le jour de la base de données IQS et des règles concernant son utilisation. Ces responsabilités étant très étendues, il n'est plus possible de les confier à plusieurs personnes d'une organisation sans risquer de provoquer des incohérences. Dans un environnement base de données de complexité moyenne, la gestion et le contrôle doivent être effectués par un seul groupe d'administrateurs : par exemple, pour une base de données IQS, l'administrateur IQS associé à l'administrateur des données de l'entreprise. Le propos de ce guide n'est pas de présenter les tâches et responsabilités les plus générales de l'administrateur IQS. Pour toutes informations sur le DDL, MNDD, IDS/II, UFAS, GAC, les catalogues, le GCL, le JCL, l'administration sous IOF, etc., se reporter à la documentation GCOS 7 appropriée. L'éventail des tâches qui peuvent incomber à l'administrateur IQS est le suivant : • Application de la politique de gestion de la base de données définie par l'organisation et établissement de conventions relatives à l'utilisation et à l'évolution de cette base. L'administrateur doit également s'assurer que les utilisateurs adhèrent à la politique et aux conventions définies et les observent. • Conception de la base de données IQS de façon à ce qu'elle puisse répondre aux besoins présents et futurs le plus efficacement possible. Définition d'un système de priorités applicable aux utilisateurs. • Définition de contrôles de validité des données dans les schémas origine. Mise en oeuvre de tous les verrous et restrictions d'accès nécessaires. Autorisation d'accès à des données spécifiques. Détection et élimination de tous les problèmes de sécurité éventuels. • Vérification de l'adéquation entre les applications existantes et les besoins des utilisateurs. Recherche d'éventuelles applications nouvelles dérivées de celles-ci. Vérification de la conformité de toutes les applications aux règles de conception en vigueur pour la base de données IQS de l'organisation. 47 F2 80UR Rev02 1-1 IQS-V4 Guide de l'administrateur • Définition de normes et de règles techniques rigoureuses. Définition, organisation et représentation des données en vue de permettre leur utilisation concurrente et leur exploitation par de multiples applications. Définition de règles d'accès aux données, de saisie et de mise à jour destinées aux utilisateurs et aux développeurs. • Surveillance et contrôle continus de l'environnement base de données. Garantie de l'adéquation entre la spécification et la conception des extensions, services et utilitaires exploités dans l'environnement base de données et les besoins et objectifs définis au départ. Mise en place de procédures visant à assurer la sécurité, la confidentialité et l'intégrité des données ainsi que leur reconstitution en cas d'incident. • Prise en charge de la formation interne des utilisateurs concernés, en fonction de leurs besoins spécifiques. Fourniture aux utilisateurs des parties de la documentation IQS-V4 qui les concernent. • Assistance technique aux personnels suivants : - administrateur des données (chargé de la gestion des données de l'entreprise : analyse, définition, impact des mises à jour, duplication, archivage, etc.), - directeur du centre d'expertise, chargé d'aider les utilisateurs à développer leurs propres applications, - chefs de projet, chargés de planifier, contrôler et gérer les projets de développement d'applications, - développeurs, chargés d'analyser, concevoir, programmer, tester et mettre en oeuvre les applications. Tous ces personnels dépendent dans une plus ou moins grande mesure de l'administrateur IQS, qui centralise tous les problèmes relatifs à l'administration de la base de données IQS. 1-2 47 F2 80UR Rev02 Introduction 1.2 RESPONSABILITES SPECIFIQUES Ce manuel contient des informations destinées à aider l'administrateur de base de données IQS dans les tâches suivantes : • Création et personnalisation des profils utilisateur, procédures de lancement, projets, environnements et menus (voir chapitre 3). • Définition des droits d'accès au niveau projet GCOS 7 (voir chapitre 3). • Création et gestion des déclencheurs (voir chapitre 3). • Définition de schémas DDL origine (voir chapitre 4). • Compilation des schémas DDL origine au moyen de MNDD (voir chapitre 5). • Lancement du processeur IQS par différents moyens, en mode interactif et traitement par lots ; personnalisation des procédures IQS (voir chapitre 6). • Compilation des schémas DDL sous IQS au moyen de la commande COMPILE SCHEMA pour rendre les schémas exploitables sous IQS (voir chapitre 7). • Définition, mise à jour et personnalisation des vues standard ; définition des droits d'accès aux articles (et zones d'article) de ces vues (voir chapitre 8). • Définition, mise à jour et personnalisation des structures ; définition des droits d'accès aux articles et zones d'article de ces structures (voir chapitre 9). Utilisation des structures et des vues standard (voir chapitres 8 et 9). • Utilisation des fichiers IQS. Définition de fichiers de saisie et intégration de ces fichiers à des vues standard (voir chapitre 10). • Utilisation de la métabase IQS (voir chapitre 11). • Recompilation des objets IQS (quand et comment - voir chapitre 12). • Contrôle des accès concurrents et du partage des fichiers et des ressources ; optimisation de la gestion des tampons (voir chapitre 13). • Création d'un système IQS (voir annexe A). • Sauvetage des index secondaires (voir annexe B). • Utilisation de GT-WRITER sous IQS (voir annexe C). 47 F2 80UR Rev02 1-3 IQS-V4 Guide de l'administrateur Les autres tâches incombant à l'administrateur de bases de données IQS sont les suivantes : • Gestion des fichiers de travail et d'impression nécessaires aux utilisateurs ; résolution de tout conflit relatif aux volumes ou aux désignations, aux longueurs fixes ou variables, etc. • Gestion de l'utilisation des requêtes IQS sous IOF, TDS ou en traitement par lots. • Gestion de l'utilisation des scénarios. • Gestion des versions d'IQS en langues étrangères. • Communication des règles de formation des noms d'objets IQS et contrôle de leur application. 1-4 47 F2 80UR Rev02 2. IQS et les utilisateurs novices 2.1 INTRODUCTION Ce manuel s'adresse aux spécialistes d'IQS susceptibles de participer à une équipe d'assistance aux utilisateurs ou à un centre d'expertise au sein de l'entreprise. Il s'adresse également à l'administrateur IQS, chargé de coordonner les activités de l'équipe ou du centre d'expertise. Les tâches à accomplir au sein d'une organisation de ce type sont généralement plus variées que celles effectuées dans le cadre d'un service informatique classique. Le langage IQS permettant des cycles de prototypage et de développement relativement rapides, il est possible de créer un véritable "service clients" en interne, capable de répondre aux problèmes des utilisateurs de la compagnie. Le présent chapitre fournit uniquement des indications sur la création et la gestion d'un centre d'expertise informatique interne. Il appartient à chaque installation de trouver la solution qui lui convient. 47 F2 80UR Rev02 2-1 IQS-V4 Guide de l'administrateur 2.2 L'INFORMATION DISPONIBLE POUR TOUS Il existe de nombreux langages de quatrième génération (L4G). Bien qu'aucun standard n'ait encore été établi, la plupart des L4G disposent des composants ci-dessous : • un dictionnaire de données (la metabase IQS), • un utilitaire de dessin de grilles (le processeur de grilles IQS), • un générateur d'états perfectionné (le processeur/générateur d'états IQS), • des outils de prototypage et de gestion de données (le langage de commande IQS). Les attributs suivants permettent également de qualifier IQS de L4G: • facilité d'apprentissage (quelques jours suffisent à un programmeur pour devenir opérationnel), • une interface en mode menu (et une interface en mode ligne pour les programmeurs), • un langage procédural permettant de générer des requêtes (le langage de requêtes IQS), • des outils permettant aux programmeurs de développer des applications de traitement transactionnel (interface IQS/TDS), • des possibilités de gestion de réseau, • l'élimination de la redondance et de la duplication des données par la création d'un système de gestion de base de données souple et adaptable. Mais IQS n'est pas uniquement un L4G. Il comporte un ensemble d'outils qui en font un véritable environnement de quatrième génération (E4G). Dans cet environnement, tous les utilisateurs de l'entreprise ont accès à l'information et peuvent extraire et mettre en forme les données nécessaires à l'exercice de leur activité. IQS est un outil à la fois puissant et facile à utiliser qui est complètement intégré au système d'exploitation Bull GCOS 7. Il interface directement avec UFAS, IDS/II, TDS, l'éditeur plein écran (FSE), l'éditeur ligne (TEXT EDITOR), l'utilitaire FORMS, les bibliothèques, le GCL, le JCL et GAC, et peut être relié à d'autres produits de type base de données ou tableur via IQS-Link et WIL. IQS dispose également de ses propres outils de traitement et constitue donc un environnement de développement complet sous GCOS 7, tout en offrant les possibilités d'un solide système d'information. 2-2 47 F2 80UR Rev02 IQS et les utilisateurs novices 2.3 INFORMATIQUE INDIVIDUELLE Un centre d'expertise doit avant tout être au service des utilisateurs pour les aider à utiliser au mieux les outils et les ressources techniques à leur disposition. Autrement dit, il assure non seulement la formation mais aussi le pilotage et le contrôle des activités. Le centre d'expertise devra donc faire une campagne d'information et de promotion, surtout si aucune structure de ce type n'existait dans l'entreprise. Cette campagne devra s'adresser aux trois principaux types d'utilisateurs d'IQS (sans compter les spécialistes), c'est-à-dire : • Décideurs (personnel d'encadrement) : ils ont besoin d'obtenir des résultats rapidement, sans perdre du temps à élaborer ou tester eux-mêmes des applications. Ils utilisent généralement des requêtes ou des scénarios prédéfinis, et font éventuellement des demandes ponctuelles et urgentes auprès de l'équipe d'assistance informatique. • Utilisateurs novices : ce sont en général, les plus nombreux. Ils ont fréquemment recours au système, mais exécutent des tâches relativement simples pour IQS. Ils utilisent des scénarios et des requêtes personnalisés et peuvent être amenés à écrire eux-mêmes des requêtes simples, voire des requêtes paramétrables pas trop complexes. Ils peuvent être autorisés à exécuter un sous-ensemble de commandes IQS, en particulier celles concernant la saisie des données, la consultation de la base de données par l'intermédiaire des vues standard et l'extraction de données. • Utilisateurs experimentés : sans être des spécialistes, ils connaissent bien les systèmes informatiques et peuvent utiliser les fonctions IQS de base. Ils constituent souvent une source d'information et d'assistance pour les autres utilisateurs. Outre les tâches énumérées précédemment, ils peuvent écrire des requêtes relativement complexes et créer des descriptions d'état. 47 F2 80UR Rev02 2-3 IQS-V4 Guide de l'administrateur 2.4 2.4.1 LE CONCEPT DE CENTRE D'EXPERTISE Fixation et suivi des objectifs Avant de mettre en place un centre d'expertise et de lui affecter des ressources, il est nécessaire de définir des objectifs réalistes et d'effectuer une étude de faisabilité sérieuse. Si ces conditions ne sont pas respectées, le centre d'expertise risque de générer plus de problèmes qu'il n'en résoudra. Après une période de rodage du centre, il suffit de contrôler si le nombre de problèmes de maintenance et de développement système à traiter a diminué pour apprécier l'intérêt d'une telle organisation. 2.4.2 Options d'installation Trois solutions sont possibles pour installer un centre d'expertise en interne : 1. Dans une grande entreprise disposant déjà de systèmes de production centralisés, il est préférable de créer une unité d'assistance IQS séparée, c'est-à-dire non intégrée au service informatique. Cette unité sera ainsi bien identifiée et les ressources qui lui seront affectées ne risqueront pas d'être utilisées pour développer des applications générales. 2. Dans les entreprises où des systèmes d'information ont déjà été mis en place, il est possible d'y intégrer le centre d'expertise IQS. 3. La dernière solution consiste à organiser les opérations de traitement de l'information autour du centre d'expertise. Ce dernier bénéficie alors du soutien de l'ensemble de l'organisation, tout en étant à la disposition des clients, c'est-à-dire des utilisateurs. La solution à adopter dépend d'un certain nombre de critères, entre autres : • le niveau d'engagement et de coopération du personnel d'encadrement, • la politique informatique interne, • la planification et la justification des ressources, • le nombre de personnes disponibles, leur profil, les besoins en formation, leur évolution de carrière, • l'équipement, les installations et la documentation interne, • les heures ouvrables. 2-4 47 F2 80UR Rev02 IQS et les utilisateurs novices 2.4.3 L'investissement nécessaire en formation La création d'un centre d'expertise nécessite un important investissement humain. Les programmeurs et développeurs devront apprendre les nouvelles techniques liées aux langages de quatrième génération comme IQS. Cela suppose des compétences en analyse et en prototypage ainsi que la capacité de concevoir et rédiger des requêtes et des procédures efficaces et lisibles. Sans oublier l'aptitude à travailler en équipe qui conditionne largement la réussite du centre. Du côté des utilisateurs novices, il est conseillé d'organiser d'abord une courte formation interne (de deux jours environ) pour les futurs utilisateurs d'IQS. Utiliser, par exemple, le Manuel d'introduction au langage de requêtes IQS-V4 comme point de départ et présenter des tâches simples ; l'Initiation à IQS-V4 peut également servir de lecture générale. Il est indispensable de prévoir des ressources suffisantes en temps et en personnel pour mener à bien cette période de familiarisation. 2.4.4 Contrôle et préparation Le concept de centre d'expertise est également un moyen de contrôler la prolifération de l'informatique individuelle. Des utilisateurs de toutes catégories sont désormais équipés de micros et de stations de travail et réclament de plus en plus d'outils d'aide à la décision. Une approche globale de l'informatique individuelle permet au service informatique de garder un certain contrôle sur ce phénomène. Le travail de préparation ne doit pas non plus être négligé. L'administrateur IQS et son équipe doivent étudier tous les aspects de gestion des fichiers et des données traités dans ce manuel : cela comprend, par exemple, la duplication quotidienne d'une base de données mise à jour, sur les sites utilisant une machine spécialisée pour l'informatique individuelle. Mais la formation n'est pas toujours suffisante pour encourager les utilisateurs novices à se servir d'un système. Il est donc conseillé de prévoir une "interface" conviviale qui rendra le système attractif (voir le Guide du programmeur IQS-V4 qui fournit quelques indications sur le sujet). Il est également recommandé de présenter les requêtes utilisables sous forme de menus. Le centre d'expertise doit proposer des solutions aux problèmes soumis par les utilisateurs. Il peut aussi aider ces derniers à devenir plus autonomes en leur fournissant les moyens de résoudre eux-mêmes des problèmes similaires. L'équilibre entre ces deux orientations est à déterminer dans les objectifs de départ. L'utilisation de systèmes comme IQS est tout à fait adaptée aux centres d'expertise informatique. IQS permet surtout aux utilisateurs de gérer leurs propres sorties. La saisie des données et le traitement des fichiers, par contre, restent centralisés. En outre, l'administrateur IQS peut décider ce qui est mis à la disposition des utilisateurs, en accordant ou non des droits d'accès et en créant des déclencheurs "avant" niveau session. 47 F2 80UR Rev02 2-5 IQS-V4 Guide de l'administrateur 2.4.5 Mise en oeuvre La mise en oeuvre d'une équipe d'assistance aux utilisateurs ou d'un centre d'expertise doit s'effectuer dans le cadre d'une application pilote. Il est essentiel de disposer d'un système de consignation des appels/demandes des utilisateurs. Il doit également y avoir un suivi des procédures utilisées pour résoudre les problèmes posés. Enfin, une enquête périodique peut être menée auprès des utilisateurs afin de planifier les besoins à venir. 2.4.6 Résumé Le rôle d'un centre d'expertise peut être résumé comme suit : • identifier et promouvoir l'informatique individuelle au sein de l'entreprise, dans les domaines fournissant un retour d'investissement valable et servant les objectifs commerciaux de la compagnie, • permettre aux utilisateurs novices d'atteindre une autonomie maximum tout en contrôlant le développement des applications en interne ; aider les utilisateurs à se débrouiller seuls, proposer des solutions à leurs problèmes, augmenter la productivité, • faciliter l'accès des utilisateurs à l'information, aux outils et aux ressources spécialisées ; assurer la protection et l'intégrité des données au sein du système d'information IQS, • identifier et gérer les risques inhérents à un environnement d'informatique individuelle (qui sont souvent sous-estimés) ; estimer les bénéfices obtenus. Ces recommandations d'ordre général sont uniquement fournies à titre indicatif. Il appartient à chaque entreprise d'effectuer, en collaboration étroite avec l'administrateur IQS, une étude rigoureuse sur la politique à adopter en matière d'informatique individuelle. 2-6 47 F2 80UR Rev02 3. Accès et protection L'administrateur IQS dispose d'un certain nombre de fonctions pour gérer l'accès des utilisateurs à IQS et assurer la protection et la confidentialité des données IQS. Il peut : • interdire certaines commandes IQS à certains utilisateurs, • ne faire figurer que certaines commandes dans les menus, • restreindre l'accès aux objets IQS en établissant des droits d'accès, • optimiser et contrôler les sessions IQS par l'intermédiaire de déclencheurs, • vérifier l'état des sessions IQS au moyen de la commande DISPLAY STATUS, • restreindre l'accès aux données au moyen des vues standard, • demander la gestion des accès concurrents aux données IQS par GAC, • protéger les fichiers au moyen du dispositif GCOS 7 de journalisation, • contrôler les accès aux fichiers au moyen des catalogues, • contrôler l'accès au système au moyen des identifications utilisateur et des mots de passe. De ces différentes possibilités, ne sont traitées ici que les cinq premières. L'utilisateur trouvera des informations sur les vues standard et sur GAC dans le reste de ce manuel. Les autres points relèvent des responsabilités générales d'un administrateur (se reporter à la documentation correspondante). 47 F2 80UR Rev02 3-1 IQS-V4 Guide de l'administrateur 3.1 CONCEPTS DE BASE La création des environnements, la définition des droits d'accès et l'adaptation et le contrôle réguliers de ces éléments font partie des tâches de base d'un administrateur. L'administrateur IQS doit déjà savoir comment créer l'environnement de travail d'un utilisateur, comment définir des séquences de lancement projet et utilisateur, comment établir la relation entre projets et environnements, comment définir des droits d'accès aux commandes qui sont livrées dans la bibliothèque SYS.HBINLIB. Si ce n'est pas le cas, il devra étudier le manuel de l'administrateur correspondant à la version de GCOS dont il dispose. Pour GCOS 7-V5, par exemple, consulter le Manuel de l'administrateur du système GCOS 7-V5 et en particulier : • le chapitre 2 qui décrit les principaux concepts : projet, répertoire, catalogue, environnement, • les chapitres 10 et 11 qui traitent des environnements et de leur usage, des familles, des droits d'accès et de la visibilité utilisateur. Il y apprendra comment créer et supprimer des environnements, comment associer projets et environnements, comment rendre une commande visible, occultée ou inaccessible dans un environnement donné, comment définir la présentation des menus et comment associer des droits opérateur aux projets dans SITE.CATALOG, • l'annexe A qui décrit le processeur MAINTAIN_CATALOG, • l'annexe B qui donne la liste des familles de commandes livrées avec le système, • l'annexe C qui illustre par des exemples certaines tâches de l'administrateur (transformation d'une commande inaccessible en commande accessible, occultation d'une commande, création d'un nouvel environnement). En ce qui concerne l'administration d'IQS, une brève introduction aux principaux concepts impliqués est fournie ci-dessous. 3.1.1 Environnements Un environnement est un ensemble de familles de commandes (256 maximum). Un environnement permet de définir : • quelles sont les commandes devant figurer dans le menu d'un utilisateur, et • quelles sont celles auxquelles il ne doit pas avoir accès. Dans un environnement donné, chaque commande peut être : • accessible et visible dans un menu, • accessible et occultée dans le menu, • inaccessible. 3-2 47 F2 80UR Rev02 Accès et protection L'administrateur peut créer des environnements adaptés aux différents types d'utilisateur ou aux différents types d'activités au moyen de la commande ENVT. L'utilisateur peut changer d'environnement en cours de session au moyen de la directive MWENVT ou en modifiant la valeur de la variable système #ENVT. 3.1.2 Familles de commandes Les familles sont définies implicitement par la création des environnements et l'établissement de droits d'accès aux commandes. Elles permettent de gérer l'accès aux commandes par l'intermédiaire des environnements. Les commandes d'une même famille ont toujours des caractéristiques fonctionnelles communes. Les familles auxquelles appartient une commande sont l'un des éléments de la définition de la commande. Par conséquent, les commandes livrées avec IQS appartiennent déjà à des familles. L'administrateur peut rendre des commandes inaccessibles dans certaines familles au moyen de la commande MODIFY_ACCESS avec le paramètre NO_ACCESS (voir plus loin). 3.1.3 Projets La relation entre utilisateurs et environnements est établie par l'intermédiaire des projets. L'administrateur peut spécifier quels environnements doivent être accessibles aux utilisateurs travaillant sous un projet donné au moyen de la commande PROJ de MAINTAIN_COMMAND. Pour spécifier les utilisateurs travaillant sous un projet donné, il faut utiliser la commande CRU de MAINTAIN_CATALOG. La figure 3-1 illustre les relations entre utilisateurs, projets et environnements. 3.1.4 Accessibilité et visibilité des commandes Les menus IQS sont créés à partir des commandes du domaine IQS, en fonction des différents environnements. L'accessibilité d'une commande et sa visibilité dans un environnement donné peuvent être déterminées dynamiquement par l'administrateur, sous MAINTAIN_COMMAND, au moyen des paramètres NO_ACCESS et HIDE de la commande MODIFY_ACCESS. L'emplacement des commandes visibles dans les menus peut également être déterminé par l'administrateur, au moyen du paramètre PRTY de la commande MODIFY_ACCESS. 47 F2 80UR Rev02 3-3 IQS-V4 Guide de l'administrateur 3.1.5 Droits opérateur Les droits opérateur constituent un moyen de contrôle supplémentaire. Ils sont associés aux projets dans le catalogue de site et pris en compte pour déterminer l'accessibilité et la visibilité des commandes. Toutefois le contrôle mis en oeuvre par le biais des familles a la priorité sur le contrôle des droits opérateur. L'administrateur IQS peut modifier dynamiquement les droits opérateur, sous MAINTAIN_COMMAND, au moyen des paramètres NO_OPACC et OPHID de la commande MODIFY_ACCESS. Ces contrôles d'accès ne s'appliquent que si l'utilisateur travaille dans un environnement lui donnant accès à la commande considérée. UTILISATEUR 1 PROJET 1 (implicite) ENVT 1 (implicite) ENVT 2 ENVT 3 PROJET 2 UTILISATEUR 2 ENVT 4 (implicite) PROJET 3 (implicite) Figure 3-1. Utilisateurs, projets et environnements • Un utilisateur ne peut travailler que sous un seul projet à la fois. • Un projet peut donner accès à plusieurs environnements, le premier de la liste constituant l'environnement implicite du projet. • Un utilisateur peut changer d'environnement à la connexion ou en cours de session (MWENVT ou #ENVT). 3-4 47 F2 80UR Rev02 Accès et protection 3.2 PERSONNALISATION DU DOMAINE IQS Les commandes IQS sont livrées sous forme d'un domaine appelé IQS. Ce dernier contient toutes les commandes de la version considérée d'IQS ; il figure dans la bibliothèque SYS.HBINLIB. Implicitement, toutes les commandes IQS sont présentées dans les menus par ordre alphabétique et sont accessibles et visibles pour toutes les familles. Elles ne sont disponibles que pour les utilisateurs dont le projet dispose du droit opérateur 4 (opérateurs GCL standard en interactif). L'administrateur doit personnaliser le domaine IQS standard afin que chaque type d'utilisateur n'ait accès qu'aux commandes dont il a besoin. En général, l'administrateur définit au moins trois grandes catégories d'utilisateurs : usagers, développeurs d'applications et administrateurs par exemple. Puis il décide du type de commandes nécessaire pour chaque catégorie. Ces opérations peuvent être effectuées progressivement jusqu'à ce que les différents projets et applications soient définis. Après avoir déterminé les besoins de chaque type d'utilisateur, l'administrateur peut commencer à personnaliser les environnements en fonction de ces besoins et des exigences du site en ce qui concerne le sécurité et la confidentialité des données. La personnalisation du domaine IQS s'effectue au moyen de la commande MODIFY_ACCESS qui n'est utilisable que sous le projet SYSADMIN. 3.2.1 Commande MODIFY_ACCESS La commande GCL MODIFY_ACCESS (MDA) permet : • de modifier les droits d'accès à une commande, à savoir : - de l'occulter pour certaines familles et/ou certains types d'opérateurs, - de la rendre inaccessible pour certaines familles et/ou certains types d'opérateurs, • de modifier la priorité d'une commande, qui détermine son emplacement dans les menus. Les effets des commandes MODIFY_ACCESS sont cumulatifs. Pour des informations de référence complètes sur MODIFY_ACCESS, se reporter au Manuel de l'administrateur du système et au Manuel de référence de l'utilisateur IOF. Les commandes MODIFY_ACCESS ne prennent effet qu'après une relance du système. Il est recommandé de garder la trace des modifications effectuées en les enregistrant dans un sous-fichier. 47 F2 80UR Rev02 3-5 IQS-V4 Guide de l'administrateur 3.2.2 LIST_ACCESS La commande LIST_ACCESS (LSA) permet de visualiser la priorité et les droits d'accès en vigueur pour les différentes commandes. Ces informations sont affichées sous forme de tableau contenant des signes plus (+), moins (-) et des zones à blanc. Le signe + indique que la commande est accessible et visible dans le menu. Le signe - indique que la commande est accessible, mais occultée. Une zone à blanc indique que la commande est inaccessible. 3.2.3 RESET La commande RESET permet de restaurer la priorité et les droits d'accès d'origine d'une commande. Elle annule donc toutes les modifications effectuées au moyen de MODIFY_ACCESS depuis la livraison. 3.2.4 Paramètres de MODIFY_ACCESS PROC Ce paramètre spécifie le nom de la procédure définissant la commande. Dans le domaine IQS, ce nom est identique à celui de la commande. PRTY Ce paramètre spécifie la nouvelle priorité à attribuer à la commande, cette priorité déterminant son emplacement dans les menus par rapport aux autres commandes. La valeur de PRTY doit être comprise entre 0 et 255 inclus, 0 étant la priorité la plus élevée et 255 la priorité la plus faible. Dans le menu, les commandes sont listées par ordre de priorité, en commençant par la plus élevée. Les commandes ayant la même priorité sont fournies dans l'ordre alphabétique. NO_ACCESS Ce paramètre spécifie la liste des familles (32 maximum) pour lesquelles la commande doit devenir inaccessible. Chaque famille est identifiée par un nombre compris entre 1 et 256 inclus. 3-6 47 F2 80UR Rev02 Accès et protection HIDE Ce paramètre spécifie la liste des familles (32 maximum) pour lesquelles la commande doit devenir occultée. A noter que si l'une des familles de la liste figure également dans NO_ACCESS, sa présence dans HIDE ne sera pas prise en compte. Chaque famille est identifiée par un nombre compris entre 1 et 256 inclus. La commande doit être accessible pour les familles spécifiées (ces dernières doivent figurer dans le paramètre ACCESS de la définition de la commande). NO_OPACC Ce paramètre spécifie les types d'opérateurs pour lesquels la commande doit devenir inaccessible. Actuellement les valeurs autorisées sont 1, 4, 5 et 6. La valeur 4 rend la commande inaccessible pour tout le monde. Pour la signification de chaque valeur, se reporter au Manuel de l'administrateur du système. Le contrôle des droits opérateur s'applique après celui mis en oeuvre par le biais des familles ; par conséquent, ce sont d'abord les restrictions imposées par le paramètre ACCESS des définitions des commandes et par les modifications ultérieures de ces dernières qui sont prises en compte. Les droits opérateurs sont associés aux projets dans le catalogue de site. Un utilisateur n'aura accès à une commande que si les droits opérateur du projet sous lequel il travaille l'y autorisent, à condition bien sûr que cette commande soit disponible dans son environnement. OPHID Ce paramètre spécifie les types d'opérateurs pour lesquels la commande doit devenir occultée. Si l'une des valeurs spécifiée ici figure également dans NO_OPACC, elle n'est pas prise en compte. 3.2.5 Utilisation de MODIFY_ACCESS Pour modifier les droits d'accès aux commandes, l'administrateur doit : • appeler le processeur MAINTAIN_COMMAND (MNCMD), • spécifier SYS.HBINLIB dans BINLIB, • spécifier IQS dans DOMAIN, • utiliser MODIFY_ACCESS (MDA) pour chaque commande afin de redéfinir sa priorité et ses droits d'accès, les modifications effectuées devant aller dans le sens d'une restriction par rapport à la définition d'origine de la commande sur laquelle elles prennent le pas. 47 F2 80UR Rev02 3-7 IQS-V4 Guide de l'administrateur Les modifications peuvent être effectuées ponctuellement comme dans l'exemple ci-après ou globalement au moyen d'une procédure GCL créée sur le site. Cela prend souvent du temps. Pour garder la trace des modifications effectuées, l'administrateur peut les enregistrer dans un sous-fichier. Exemple : Personnalisation des commandes IQS au moyen de MODIFY_ACCESS Se connecter sous SYSADMIN. Après appel du processeur MAINTAIN_COMMAND et spécification de BINLIB et DOMAIN, plusieurs commandes sont modifiées une par une. Il aurait également été possible d'écrire une procédure GCL pour modifier plusieurs commandes à la fois. S: MNCMD; >>>17:41 MNCMD 20.00 28 -2 C: BINLIB SYS.HBINLIB; BINLIB: SYS.HBINLIB$CAT (HFSOP1:MS/B10) C: DOMAIN IQS; C: MDA CLOSE PRTY=0001 NO_ACCESS= (1-200, 208-256) -: HIDE= (1-205) OPHID=4; IQS (NOV 02, 1989 13:23) C: MDA PROC=AUTO PRTY=0100 NO_ACCESS=(1-256) -: NO_OPACC=(4); IQS (NOV 02, 1989 13:23) C: MDA PROC=OPEN PRTY=0001 NO_ACCESS= (1-200, 208-256) -: HIDE=(1-205); IQS (NOV 02, 1989 13:24) C: MDA CMSC PRTY=5 NO_ACCESS=(101,102,139) HIDE=124 OPHID=1 IQS (NOV 02, 1989 13:24) C: LSA CLOSE; Ici, quatre commandes sont modifiées : CLOSE, AUTO, OPEN et COMPILE SCHEMA. Puis LIST_ACCESS est employée pour vérifier les priorités et les droits d'accès de CLOSE (le résultat n'est pas montré dans l'exemple). 3-8 47 F2 80UR Rev02 Accès et protection 3.3 DROITS D'ACCES AUX OBJETS IQS IQS-V4 offre une protection supplémentaire : l'utilisateur connecté sous SYSADMIN peut restreindre l'accès de certains utilisateurs aux objets IQS, en utilisant un nom de projet GCOS 7. Le mécanisme de protection disponible dans les versions antérieures d'IQS est toujours utilisé pour empêcher la mise à jour des articles et/ou zones d'articles. Se reporter au chapitre traitant des vues standard. 3.3.1 Etablissement des droits d'accès Pour définir les droits d'accès aux vues, schémas et structures (ainsi qu'aux requêtes associées), la procédure est la suivante : • créer un projet GCOS 7 pour une catégorie d'utilisateurs donnée. Pour ce faire, utiliser la commande CREATE_PROJECT, sous le processeur MAINTAIN_CATALOG, qui permet de définir les caractéristiques d'un projet. Les utilisateurs travaillant sous le projet ainsi créé peuvent uniquement exploiter les schémas, vues, structures et requêtes autorisés pour ce projet. • pour chaque objet IQS, accorder (commande IQS GRANT) des droits d'accès à un ou plusieurs projets GCOS 7. Les commandes IQS accordant implicitement le droit d'accès à tous les projets sont les suivantes : • COMPILE SCHEMA. • DEFINE VIEW. 3.3.2 GRANT et REVOKE Les commandes GRANT et REVOKE permettent d'accorder ou de supprimer les droits d'accès à un objet IQS pour un ou plusieurs projets GCOS 7. Exemple : Pour accorder au projet SD3 des droits d'accès à la vue standard MY-CUSTOMERS (qui vient d'être définie et sauvegardée), il faut d'abord supprimer les droits d'accès de tous les projets à cette vue (valeur implicite), puis accorder les droits d'accès au projet SD3. C: REVOKE MY-CUSTOMERS * C: GRANT MY-CUSTOMERS SD3 47 F2 80UR Rev02 3-9 IQS-V4 Guide de l'administrateur Il est possible d'utiliser la convention astérisque, mais il faut le faire avec précaution. Par exemple, en cas d'émission successive des commandes ci-dessous : C: GRANT MY-CUSTOMERS SD* C: REVOKE MY-CUSTOMERS SD3 Les utilisateurs travaillant sous le projet SD3 pourront toujours accéder à la vue MY-CUSTOMERS en vertu de la convention astérisque. 3.3.3 Prise en compte des droits d'accès Toutes les commandes permettant d'accéder aux objets prennent en compte les droits d'accès en vigueur. Ces commandes sont les suivantes : • DISPLAY SCHEMA • DISPLAY STRUCTURE • DISPLAY VIEW • • • • DROP QUERY DROP SCHEMA DROP STRUCTURE DROP VIEW • • • • LIST QUERY LIST SCHEMA LIST STRUCTURE LIST VIEW • PRINT SCHEMA • PRINT STRUCTURE • PRINT VIEW • RECOMPILE VIEW • REPLACE QUERY • SELECT • UPDATE STRUCTURE • UPDATE VIEW Dans tous les cas, si l'utilisateur ne possède pas de droits d'accès valables pour l'objet considéré, IQS émet le message suivant : " *** Access right violation , command denied" (violation du droit d'accès, commande refusée). Remarque : 3-10 Un utilisateur ayant des droits d'accès sur une vue peut l'exploiter, même s'il n'est pas autorisé à accéder au schéma sous-jacent. 47 F2 80UR Rev02 Accès et protection 3.3.4 SYSADMIN L'utilisateur connecté sous le projet SYSADMIN peut accéder à tous les objets IQS quels que soient les droits d'accès définis. Toutes les commandes sans exception sont également utilisables. A noter que les droits d'accès aux objets IQS s'appliquent uniquement sous IQS et pas sous les autres processeurs (MAINTAIN_LIBRARY, par exemple). Le projet SYSADMIN peut changer le propriétaire d'une vue, comme suit : C: REVOKE C: GRANT C: GRANT <NOM-VUE> * <NOM-VUE > SYSADMIN <nouveau-nom-projet> <NOM-VUE> * Ou utilisez, sous SYSADMIN, le script : C: *Exemple de script pour changer le propriétaire d'une vue : C: ld npj C: ^,$1 10 : &PJ (nom du nouveau projet propriétaire) 20 : &VW (pour la vue) 30 : # vous devez être SYSADMIN pour changer le propriétaire d'une vue 40 : revoke &VW * 50 : grant &VW SYSADMIN &PJ 60 : grant &VW * 70 : Display view &VW 80 : DACR 90 : / C: C: start NPJ list nom du nouveau projet propriétaire : QWERTY pour la vue : VIEW-DACR-01 C1:# vous devez être SYSADMIN pour changer le propriétaire d'une vue C1:revoke VIEW-DACR-01 * C1:grant VIEW-DACR-01 SYSADMIN QWERTY C1:grant VIEW-DACR-01 * C1:Display view VIEW-DACR-01 P1:DACR ACCESS RIGHTS OF VIEW : VIEW-DACR-01 : * * QWERTY ALBERT OW SYSADMIN * SY P1:/ Script NPJ terminated, at level : 1 C: ... C: start NPJ nom du nouveau projet propriétaire : YTREZA pour la vue : VIEW-DACR-01 ACCESS RIGHTS OF VIEW : VIEW-DACR-01 : * * SYSADMIN * SY YTREZA ALBERT OW 47 F2 80UR Rev02 3-11 IQS-V4 Guide de l'administrateur C: start NPJ nom du nouveau projet propriétaire : AZER* pour la vue : VIEW-DACR-01 ACCESS RIGHTS OF VIEW : VIEW-DACR-01 : * * AZER* ALBERT OW SYSADMIN * SY C: ... C: auto 10 : print @project 20 : / C: go AZERTY C: recompile view view-dacr-01 *** Access right violation , command denied C: 3.3.5 Propriétaire Le propriétaire d'un objet est la personne qui le crée. Lors de l'affichage des droits d'accès, le propriétaire est identifié par le sigle OW (pour owner). Pour les objets créés sous une version antérieure à IQS-V4, le premier utilisateur qui émet une commande COMPILE SCHEMA ou DEFINE VIEW devient propriétaire de l'objet concerné. Seul le propriétaire (ou l'utilisateur sous SYSADMIN) peut accorder (GRANT) ou supprimer (REVOKE) les droits d'accès à cet objet. 3-12 47 F2 80UR Rev02 Accès et protection 3.3.6 Contrôle des droits d'accès Pour connaître les projets ayant le droit d'accéder à un objet, utiliser la sous-commande DISPLAY ACCESS RIGHT (DACR). Cette sous-commande est disponible sous les processeurs de vues et de structures ainsi que sous les commandes DISPLAY SCHEMA, DISPLAY STRUCTURE et DISPLAY VIEW. Se reporter aux exemples fournis dans les chapitres sur les vues et les structures. En l'absence de droits d'accès définis, IQS émet le message suivant lorsque la sous-commande DACR est utilisée : " * No access right defined " (aucun droit d'accès n'est défini). Lors de l'émission d'une commande DISPLAY SCHEMA, DISPLAY STRUCTURE ou DISPLAY VIEW, si l'utilisateur travaille sous un projet n'ayant pas le droit d'accès à l'objet spécifié, IQS affiche le message suivant : " *** Access right violation, command denied" (violation du droit d'accès, commande refusée). Lorsque le propriétaire supprime l'accès à un objet IQS au moyen d'une commande REVOKE <objet> *, seul l'utilisateur connecté sous SYSADMIN peut émettre une commande DACR (DISPLAY ACCESS RIGHT) concernant cet objet. Le propriétaire ne peut visualiser le résultat au moyen d'une commande DACR que si les droits d'accès ont été redéfinis (par lui-même ou par l'utilisateur SYSADMIN) au moyen d'une commande GRANT. Il est également possible de vérifier les droits d'accès à un objet par l'intermédiaire de la métabase. Par exemple, l'article SYS-PROJECT est un article détail de l'article racine SYS-DD. Chaque occurrence de SYS-PROJECT identifie un projet ayant le droit d'accéder à un schéma (de type SDD) ou à une vue standard (de type VDD) figurant dans l'article SYS-DD. 47 F2 80UR Rev02 3-13 IQS-V4 Guide de l'administrateur 3.4 DECLENCHEURS Un nouveau concept, celui de déclencheur (trigger), existe sous IQS-V4. Un déclencheur est une requête compilée se trouvant dans la bibliothèque binaire appropriée et qui est exécutée lorsque certaines conditions sont réunies. Cette requête peut contenir n'importe quelle instruction exécutable du langage de requêtes. La création et la gestion des déclencheurs sont du ressort de l'administrateur IQS ou d'un responsable équivalent. Le type de déclencheurs utilisés est fonction de l'environnement d'exploitation. Sous IOF et en traitement par lots : • déclencheurs niveau session, • déclencheurs niveau base de données et niveau requêtes. Sous TDS : • déclencheurs niveau transaction. La variable système @TRIGGER-ERROR spécifie également un déclencheur exécutable automatiquement lorsque certaines limites préalablement définies sont atteintes. 3.4.1 Déclencheurs niveau session Les déclencheurs niveau session permettent à l'administrateur IQS de spécifier et contrôler les points suivants, avant et/ou après la session IQS courante : • limites de consommation des ressources pour chaque utilisateur en termes d'E/S et de temps CPU, • priorités d'exécution, • limites globales implicites de consommation des ressources. Les déclencheurs niveau session peuvent être exécutés sous IOF ou en traitement par lots. Ils sont lancés à partir de la procédure GCL d'appel d'IQS (voir chapitre 6) et sont exécutables soit avant, soit après la session. Ils se divisent donc en deux catégories : • les déclencheurs "avant" (TRIGGER BEFORE ou TRB), • les déclencheurs "après" (TRIGGER AFTER ou TRA). La requête spécifiée par TRIGGER BEFORE (TRB), si elle existe, est activée juste après l'initialisation du processeur IQS. La requête spécifiée par TRIGGER AFTER (TRA), si elle existe, est activée juste avant l'arrêt du processeur IQS. A noter que, une fois lancées, les requêtes ne sont plus modifiables pendant la session IQS en cours. 3-14 47 F2 80UR Rev02 Accès et protection Un déclencheur "avant" niveau session peut, en fait, gérer la totalité de la session IQS. Il permet d'orienter chaque utilisateur ou projet selon un itinéraire d'accès prédéfini, de lancer des scénarios automatiquement, d'exécuter des requêtes ou d'autoriser l'émission de certaines commandes (en fonction des droits d'accès de l'utilisateur ou du projet). Un déclencheur "avant" (TRB) est constitué de l'une des manières suivantes : • • • • une requête, une requête, plus @NEXT-QUERY (chaînage), une requête, plus @NEXT-SCRIPT, une requête, plus @NEXT-QUERY, plus @NEXT-SCRIPT. @NEXT-QUERY et @NEXT-SCRIPT sont exécutés dynamiquement dans l'ordre. A noter que dans le cas d'un déclencheur "après" (TRA), @NEXT-QUERY and @NEXTSCRIPT ne sont pas pris en compte. Exemple de déclencheur "avant" niveau session : Cette requête illustre la gestion de plusieurs sessions utilisateur. Les caractéristiques de la future session sont définies et visualisées par l'intermédiaire d'une grille. 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 170 180 190 200 210 220 230 240 250 260 270 280 290 300 310 320 DEFINE WK-RECORD , 2 WK-DATE CHARACTER 12, 2 WK-TIME CHARACTER 8, 2 WK-NAME CHARACTER 12, 2 WK-MAXCPU CHARACTER 14, 2 WK-MAXELAPS CHARACTER 14 IF @USER="ALBERT" THEN EXEC TRG-B-ALBERT RETURN END IF @USER="QUERYST4" OR @USER="QUERYST5" THEN EXEC ROS-TRB-SESSION RETURN END IF @USER="QUERYST8" THEN EXEC ROS-TRB-SESSION RETURN END LET $MAX-CPU = 3600000 LET $MAX-CPU-PER-COMMAND = 300000 LET @TRIGGER-CODE-ERROR = "10110000" IF @USER = "HOARE" THEN LET @NEXT-SCRIPT = "PSCRIPT" ELSE LET WK-RECORD = " " LET WK-DATE = @DATE LET WK-TIME = @TIME LET WK-NAME = @USER LET WK-MAXCPU = SUBSTR(@MAX-CPU,1,12) LET WK-MAXELAPS = SUBSTR(@MAX-ELAPSE,1,12) DISPLAY WK-RECORD THRU FM-TRIG IF @USER = "SMITH" THEN LET @NEXT-SCRIPT = "GABET-DATABASE" END END 47 F2 80UR Rev02 1 3-15 IQS-V4 Guide de l'administrateur Exemple de déclencheur "après" niveau session : Cette requête demande l'activation de déclencheurs "après" pour certains utilisateurs. Définition des informations à visualiser par l'intermédiaire d'une grille, à la fin de la session. 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 170 180 190 200 210 220 DEFINE 1 WK-RECORD 2 WK-CPUSED CHARACTER 14, 2 WK-NBRIO CHARACTER 9, 2 WK-NBRLINE CHARACTER 9, 2 WK-MAXCPU CHARACTER 14, 2 WK-MAXELAPSE CHARACTER 14 IF @USER="ALBERT" THEN EXEC TRG-A-ALBERT RETURN END IF @USER="QUERYST4" OR @USER="QUERYST5" THEN EXEC ROS-TRIGA RETURN END LET SUBSTR(WK-CPUSED,1,12) = @USED-CPU LET SUBSTR(WK-MAXCPU,1,12) = @MAX-CPU LET SUBSTR(WK-MAXELAPSE,1,12) = @MAX-ELAPSE LET WK-NBRIO = $USED-IO LET WK-NBRLINE = $USED-LINES IF $MAX-CPU LE $USED-CPU THEN DISPLAY WK-RECORD THRU TRIGGERF ELSE DISPLAY WK-RECORD THRU TRIGGERA END En mode ligne, les déclencheurs sont déclarés au moyen de deux nouveaux paramètres qui viennent compléter la syntaxe existante : IQS [ DDLIB SLLIB BINLIB [ CULIB = = = = .... ] .... .... .... ] [ TRB = <déclencheur-avant> ] [ TRA = <déclencheur-après> ] Pour la syntaxe complète, se reporter au chapitre 6. En mode menu, la déclaration des déclencheurs s'effectue par l'intermédiaire d'une nouvelle grille de paramètres occultée. 3-16 47 F2 80UR Rev02 Accès et protection 3.4.2 Déclencheurs niveau base de données et niveau requête Les déclencheurs niveau base de données et niveau requête peuvent être exécutés sous IOF ou en traitement par lots. Ils permettent à l'administrateur IQS (ou à toute autre personne autorisée) d'effectuer les opérations suivantes : • définir un déclencheur avant traitement à activer à la suite de l'émission d'une commande SELECT (déclencheur avant niveau base de données), • définir un déclencheur après traitement à activer à la suite de l'émission d'une commande TERM ou du caractère "/" au niveau V: (déclencheur après niveau base de données), • définir un déclencheur avant traitement à activer avant l'exécution de chaque requête, pendant la session IQS (déclencheur avant niveau requête), • définir un déclencheur après traitement à activer après l'exécution de chaque requête, pendant la session IQS (déclencheur après niveau requête), • modifier la valeur de certaines variables système IQS, • définir le traitement des erreurs liées aux déclencheurs (en cas de dépassement des limites implicites de la session), par l'intermédiaire de la variable système @TRIGGER-ERROR. 3.4.2.1 @NEXT-QUERY et @NEXT-SCRIPT L'ordre d'exécution des requêtes et des scénarios spécifiés dans @NEXT-QUERY et @NEXT-SCRIPT dépend du type de déclencheur (voir ci-dessous). Dans le cas des déclencheurs "après", la valeur de @NEXT-QUERY est ignorée, mais celle de @NEXT-SCRIPT est chargée et exécutée. Dans le cas des déclencheurs "avant" niveau base de données (BEFORE DBS), @NEXT-QUERY et @NEXT-SCRIPT sont exécutés dynamiquement, dans cet ordre. Dans le cas des déclencheurs "avant" niveau requête (BEFORE QRY), @NEXT-QUERY et @NEXT-SCRIPT ne sont pas exécutés dynamiquement. L'ordre d'exécution est le suivant : R-TRB-QY requête @NEXT-QUERY R-TRA-QY @NEXT-SCRIPT (déclencheur avant niveau requête) (déclencheur après niveau requête) L'ordre d'exécution des déclencheurs, requêtes et scénarios est illustré dans l'exemple ci-après. 47 F2 80UR Rev02 3-17 IQS-V4 Guide de l'administrateur Exemple : Déclencheur "avant" niveau requête (ordre d'exécution) Les déclencheurs suivants ont été définis : R-TRB-DB R-TRA-DB R-TRB-QY R-TRA-QY (déclencheur (déclencheur (déclencheur (déclencheur "avant" "après" "avant" "après" niveau niveau niveau niveau base de données) base de données) requête) requête) Les variables système suivantes sont définies dans le déclencheur "avant" niveau requête : LET @NEXT-QUERY = QRY-NEXT LET @NEXT-SCRIPT = SCR-NEXT L'ordre d'exécution par rapport aux commandes introduites est indiqué à droite : Commande..............Ordre d'exécution C: SELECT SELECT EXEC TRB-DB V: EXEC <requête> EXEC TRB-QY EXEC <requête> EXEC QRY-NEXT EXEC TRA-QY START SCR-NEXT V: TERM TERM EXEC TRA-DB Remarque : 3.4.2.2 Lorsque la valeur des variables système @NEXT-QUERY et/ou @NEXT-SCRIPT est modifiée dans <requête>, la requête et/ou le scénario spécifiés sont exécutés à la place de ceux spécifiés dans le déclencheur avant niveau requête. Définition et suppression des déclencheurs La définition et la suppression des déclencheurs s'effectue au niveau commande (C:), au moyen de deux nouvelles commandes IQS : DEFINE TRIGGER CLEAR TRIGGER La commande DEFINE TRIGGER définit une requête constituant un déclencheur. Il peut y avoir une seule commande DEFINE TRIGGER par type de déclencheur, toute nouvelle commande DEFINE TRIGGER remplaçant la commande de même type précédemment définie. Une fois la commande émise, la requête constituant le déclencheur ne peut pas être compilée, chargée, remplacée ou supprimée. La commande CLEAR TRIGGER supprime l'activation d'un déclencheur précédemment défini au moyen de la commande DEFINE TRIGGER. Pour pouvoir compiler, charger, remplacer ou supprimer une requête constituant un déclencheur (commandes COMPILE QUERY, LOAD, REPLACE QUERY et DROP QUERY), il faut d'abord supprimer l'activation de ce dernier au moyen de CLEAR TRIGGER. 3-18 47 F2 80UR Rev02 Accès et protection Pour connaître les déclencheurs en vigueur, utiliser la commande DISPLAY STATUS. Exemples : Définition d'un déclencheur avant niveau base de données appelé R-TRB-DB : C: DFTG BEFORE DBS ACTION R-TRB-DB Définition d'un déclencheur après niveau requête appelé R-TRA-QY : C: DFTG AFTER QRY ACTION R-TRA-QY Remarque : 3.4.3 Si le contenu de l'espace de travail origine a été modifié sans être sauvegardé, les déclencheurs "avant" et "après" ne sont pas activés. Déclencheurs niveau transaction (TDS) Les déclencheurs niveau transaction sont similaires aux déclencheurs avant et après niveau session, mais ils sont uniquement applicables aux sessions IQS/TDS. Se reporter au Guide de l'utilisateur IQS-V4/TDS. 3.4.4 Déclencheur @TRIGGER-ERROR Cette variable système spécifie un déclencheur à activer automatiquement lorsque certaines limites préalablement définies sont atteintes. Voir "Variables système" et "DISPLAY STATUS" plus loin. 47 F2 80UR Rev02 3-19 IQS-V4 Guide de l'administrateur 3.5 VARIABLES SYSTEME Un certain nombre de variables système ont été créées sous IQS-V4 pour contrôler la consommation des ressources. Il suffit d'utiliser l'instruction LET pour leur affecter des valeurs. En outre, la variable $PRIORITY permet de réduire la priorité d'exécution de la session IQS en cours. L'administrateur peut spécifier le type de traitement à effectuer lorsque les limites définies pour les ressources sont atteintes, en positionnant les indicateurs de la variable système @TRIGGER-CODE-ERROR. Lorsque ces limites sont atteintes, une requête spéciale, spécifiée dans la variable système @TRIGGER-ERROR, est automatiquement activée. Les nouvelles variables système sont indiquées ci-après. Pour une description détaillée de l'ensemble de ces variables, se reporter au Manuel de référence IQS-V4. A noter que certaines zones peuvent être définies soit avec le type décimal ou binaire, soit avec le type CHARACTER (alphanumérique). La commande DISPLAY STATUS permet de visualiser la valeur des variables système. 3.5.1 Gestion de la consommation des ressources $MAX-CPU @MAX-CPU (UNSIGNED UNPACKED DECIMAL 8 en millisecondes) (CHARACTER 12 as HH:MM:SS:ccc) Spécifie le temps CPU maximum autorisé jusqu'à la fin de la session IQS en cours. Pas encore disponible sous IQS/TDS. Valeur implicite : 86399000. $MAX-CPU-PER-COMMAND (UNSIGNED UNPACKED DECIMAL 8) Spécifie le temps CPU maximum autorisé pour l'exécution d'une commande ou d'une requête. Pas encore disponible sous IQS/TDS. $MAX-ELAPSE @MAX-ELAPSE (UNSIGNED UNPACKED DECIMAL 8 en millisecondes) (CHARACTER 12 as HH:MM:SS:ccc) Spécifie la durée maximum autorisée pour la session IQS. Pas encore disponible sous IQS/TDS. $MAX-IO (BINARY 31) Spécifie le nombre maximum d'entrées/sorties IQS autorisées jusqu'à la fin de la session IQS en cours. $MAX-IO-PER-COMMAND (BINARY 31) Spécifie le nombre maximum d'entrées/sorties IQS autorisées pour chaque commande ou requête exécutée. Pas encore disponible sous IQS/TDS. $MAX-LINES (BINARY 31) Spécifie le nombre maximum de lignes imprimables jusqu'à la fin de la session IQS. 3-20 47 F2 80UR Rev02 Accès et protection $MAX-LINES-PER-COMMAND (BINARY 31) Spécifie le nombre maximum de lignes imprimables pour chaque commande ou requête exécutée. Pas encore disponible sous IQS/TDS. $MAX-PAGES (BINARY 31) Spécifie le nombre maximum de pages à imprimer pour le fichier de description d'état. La valeur spécifiée peut être remplacée par celle fournie sous le processeur d'états. 3.5.2 Contrôle de la consommation des ressources $USED-CPU @USED-CPU (BINARY 31 en millisecondes) (CHARACTER 12 as HH:MM:SS:ccc) Indique le temps CPU utilisé depuis le début de la session IQS en cours. Pas encore disponible sous IQS/TDS. $USED-ELAPSE @USED-ELAPSE (BINARY 31 en millisecondes) (CHARACTER 12 as HH:MM:SS:ccc) Indique le temps écoulé depuis le début de la session IQS en cours. Pas encore disponible sous IQS/TDS. $USED-IO (BINARY 31) Indique le nombre d'entrées/sorties IQS effectuées depuis le début de la session IQS en cours. $USED-IO-PER-COMMAND (BINARY 31) Indique le nombre d'entrées/sorties IQS effectuées depuis le lancement de l'exécution de la commande ou de la requête courante. Pas encore disponible sous IQS/TDS. $USED-LINES (BINARY 31) Indique le nombre de lignes imprimées depuis le début de la session IQS en cours. $USED-LINES-PER-COMMAND (BINARY 31) Indique le nombre de lignes imprimées depuis le lancement de l'exécution de la commande ou de la requête courante. Pas encore disponible sous IQS/TDS. 3.5.3 Priorité d'exécution $PRIORITY (BINARY 15) Spécifie la priorité d'exécution de la session IQS en cours. La valeur de $PRIORITY s'ajoute à la priorité GCOS 7 en vigueur. Par conséquent, l'affectation d'une valeur supérieure à 0 diminue la priorité relative de la session IQS. Pas encore mis en oeuvre sous IQS/TDS. 47 F2 80UR Rev02 3-21 IQS-V4 Guide de l'administrateur 3.5.4 Dépassement des limites Lorsque les limites définies pour la session sont atteintes, le message suivant est émis : * Max <type de limite> limit is reached , session is stopped Le déclencheur "après" niveau session est alors exécuté (s'il existe) et la session IQS prend fin. Deux variables système spéciales permettent de traiter les erreurs liées aux déclencheurs, intervenant lorsque les limites de consommation des ressources sont atteintes. Elles sont décrites ci-dessous. 3.5.4.1 @TRIGGER-ERROR La variable système @TRIGGER-ERROR spécifie une requête à activer automatiquement lorsque les limites définies pour l'exécution d'une commande ou d'une requête sont atteintes. La requête doit se trouver dans la bibliothèque BINLIB appropriée. Exemple : LET @TRIGGER-ERROR = "R-TRG-ERR" 3.5.4.2 @TRIGGER-CODE-ERROR La variable système @TRIGGER-CODE-ERROR détermine le type de traitement à effectuer automatiquement lorsque les limites définies pour l'exécution d'une commande ou d'une requête sont atteintes. La variable @TRIGGER-CODE-ERROR comprend huit positions binaires, chacune ayant une signification particulière. Exemple : LET @TRIGGER-CODE-ERROR = "01111000" La signification de chaque position est la suivante : 3-22 1. ANSWER FLAG (reprise sur demande) : si cet indicateur est positionné à 1, la question "Do you want to stop?" (Voulez-vous arrêter?) s'affiche chaque fois qu'une limite définie pour l'exécution d'une commande ou d'une requête est atteinte. Si l'utilisateur répond affirmativement (Y), l'exécution de la tâche est interrompue. S'il répond négativement (N), l'exécution se poursuit avec les mêmes limites par commande. 2. AUTOMATIC PURSUIT FLAG (reprise automatique) : si cet indicateur est positionné à 1, chaque fois qu'une limite définie pour l'exécution d'une commande ou d'une requête est atteinte, l'exécution de la commande courante est relancée à l'endroit où elle s'était arrêtée. La variable contenant la limite utilisée est remise à zéro, mais la limite maximum définie pour la commande reste la même. 47 F2 80UR Rev02 Accès et protection 3. AUTOMATIC CHANGE OF PRIORITY (changement automatique de priorité) : si cet indicateur est positionné à 1, la valeur courante de $PRIORITY est automatiquement augmentée de 1. Voir la restriction ci-dessous lorsque la valeur atteint 3. 4. AUTOMATIC STOP TASK ON PRIORITY MAX (arrêt automatique de tâche sur priorité maximum) : si cet indicateur est positionné à 1, la tâche est interrompue lorsque la valeur de $PRIORITY atteint 3. Pour que la tâche se poursuive, il faut obligatoirement réduire la valeur de $PRIORITY. 5. SILENT (mode "silencieux") : si cet indicateur est positionné à 1, la tâche s'exécute en mode SILENT et aucun message n'est envoyé au terminal. 6., 7. et 8. : réservées à un usage ultérieur. Positions actuellement initialisées à "0". Certains indicateurs sont incompatibles. Dans ce cas, un message d'erreur (précédé de ***) est envoyé au terminal. La commande DISPLAY STATUS permet de visualiser les indicateurs positionnés à 1 (voir ci-dessous). 47 F2 80UR Rev02 3-23 IQS-V4 Guide de l'administrateur 3.6 DISPLAY STATUS La commande DISPLAY STATUS (abréviation DSTS), accessible à tous les utilisateurs, permet de visualiser des informations concernant la session en cours. Ces informations sont les suivantes : • le contenu actuel de l'espace de travail, • les ressources affectées et utilisées (paramètre COUNTERS), • les valeurs de paramètres de la session IQS (paramètre PARAMETERS), • les fichiers et aires actuellement affectés (paramètre FILES), • les déclencheurs niveau requête actuellement définis ainsi que la requête pour le traitement des erreurs relatives aux déclencheurs (paramètre TRIGGERS). 3.6.1 Exemple en mode ligne C: DSTS >>>PARAMETERS IQS VERSION: 40 STATUS: 32 SYSLEVEL: V500/5240 SIZE: 240 POOLSIZE: 50 LANG: 0 TERMINAL ID: GA14MP00 TERMINAL TYPE: VIP7804 SCREEN SIZE: 23 * 80 DDLIB1: DDLIB2: DDLIB3: SLLIB : BINLIB: CULIB : #BLIB : QUERY.TEST.BINDD *** LIBRARY NOT ASSIGNED *** LIBRARY NOT ASSIGNED QUERY.TEST.SLREQ QUERY.TEST.BINREQ QUERY.TEST.CUREQ QUERY.TEST.BINREQ >>>FILES AND AREAS: AREA : INVIND ORG =IND/MBJ STATUS = OP/INPUT EFN = QUERY.TEST.INVIND PRINTFILE: PRINTER ASSIGNED TO TERM WORKFILE : ALB ORG =SEQ STATUS = CLOSED EFN = QUERY.TEST.ALB >>>COUNTERS: USED ELAPSED: 13312193 USED CPU: 103557 USED IOS: 16 USED LINES: 2501 >>>TRIGGERS: TRIGGER BEFORE DATA BASE : TRIGGER AFTER DATA BASE : TRIGGER BEFORE QUERY : TRIGGER AFTER QUERY : ALLOWED ELAPSED: 2147483547 ALLOWED CPU: 3600000 ALLOWED IOS: 1000000000 ALLOWED LINES: 1000000000 Q-TRB-DB Q-TRA-DB Q-TRB-QY Q-TRA-QY >>>TRIGGERS ERROR MANAGEMENT: >>> TRIGGER ERROR : Q-TRG-ERR - 3-24 AUTOMATIC PURSUIT AUTOMATIC CHANGE OF PRIORITY AUTOMATIC TASK STOP , WHEN MAX PRIORITY REACHED SILENT 47 F2 80UR Rev02 Accès et protection 3.6.2 Informations obtenues >>>PARAMETERS: IQS VERSION Version courante d'IQS. STATUS Etat technique courant de la version d'IQS. SYSLEVEL Niveau et état technique courant de GCOS 7. SIZE Valeur du paramètre SIZE spécifiée lors de l'activation d'IQS. POOLSIZE Valeur de POOLSIZE spécifiée lors de l'activation d'IQS. LANG Valeur courante de la variable #LANG. TERMINAL ID Identification du terminal. TERMINAL TYPE Valeur courante de la variable #TTYPE. SCREEN SIZE Nombre de lignes de l'écran * nombre de colonnes de l'écran (#PL * #PW). DDLIB1 Nom de la bibliothèque affectée à DDLIB1 (ou message "*** LIBRARY NOT ASSIGNED." - bibliothèque non affectée). DDLIB2 Nom de la bibliothèque affectée à DDLIB2 (ou message "*** LIBRARY NOT ASSIGNED." - bibliothèque non affectée). DDLIB3 Nom de la bibliothèque affectée à DDLIB3 (ou message "*** LIBRARY NOT ASSIGNED." - bibliothèque non affectée). SLLIB Nom de la bibliothèque affectée à SLLIB (ou message "*** LIBRARY NOT ASSIGNED." - bibliothèque non affectée). BINLIB Nom de la bibliothèque affectée à BINLIB (ou message "*** LIBRARY NOT ASSIGNED." - bibliothèque non affectée). CULIB Nom de la bibliothèque affectée à CULIB (ou message "*** LIBRARY NOT ASSIGNED." - bibliothèque non affectée). BLIB Valeur courante de la variable #BLIB. 47 F2 80UR Rev02 3-25 IQS-V4 Guide de l'administrateur >>>FILES AND AREAS: Nom de toutes les aires affectées (ou message "THERE IS NO ASSIGNED AREA" - il n'y a pas d'aire affectée). Nom de tous les fichiers (de travail ou d'impression) affectés. Pour les fichiers comme les aires : nom de fichier externe (EFN), organisation (ORG), informations sur le mode de partage et les journaux et statut (STATUS). ORG= IND - INDEXED (indexée) SEQ - SEQUENTIAL (organisation séquentielle) REL - RELATIVE (organisation relative) LKQ - LINKED QUEUED (organisation cloisonnée chaînée) IDS - IDS/II Plus éventuellement : 3-26 M - SHARE=MONITOR (GAC SHARE=MONITOR) BJ - BEFORE JOURNAL (journal Avant) AJ - AFTER JOURNAL (journal Après) J - BEFORE and AFTER JOURNAL (journal Avant et Après) STATUS= OP/UPDATE - UPDATE (traitement en mode mise à jour). OP/INPUT - INPUT (traitement en mode entrée). OP/OUTPUT - OUTPUT (traitement en mode sortie). OP/APPEND - APPEND (traitement en mode adjonction). CLOSED - Closed (fichier fermé). >>>COUNTERS: Valeurs courantes des compteurs pour les variables système. Le temps CPU et la durée du traitement sont exprimés en millisecondes. >>>TRIGGERS: Nom du ou des déclencheurs et des requêtes de traitement des erreurs correspondantes (si elles existent). Les déclencheurs niveau session ne sont visualisables que sous SYSADMIN. Les noms des options de la variable @TRIGGER-CODEERROR positionnées à 1 sont indiqués. Dans l'exemple précédent, la valeur de @TRIGGER-CODE-ERROR est "01111000". 47 F2 80UR Rev02 4. Définition des schémas 4.1 INTRODUCTION Tous les fichiers utilisés par IQS doivent faire l'objet d'une description. IQS nécessite en effet certaines informations concernant chaque fichier et ses articles, et doit connaître le nom des zones constituant les articles ainsi que les relations entre articles (ensembles). La description d'une série de fichiers IQS est appelée schéma. Elle est écrite en langage de description des données (DDL) ; pour pouvoir être reconnue par le processeur IQS, la description (également appelée schéma origine) doit ensuite être compilée (traduite) au moyen de MNDD (MAINTAIN_DATA_DESCRIPTION) pour le GCL ou DDPROC pour le JCL. Le résultat obtenu (schéma résultant) doit lui-même être compilé au moyen d'une commande IQS (voir chapitre 7). Un schéma décrit : • une base de données IDS/II (constituée d'aires IDS/II), ou • une base de données virtuelle constituée d'une combinaison quelconque de : - fichiers UFAS séquentiels, fichiers UFAS indexés, fichiers UFAS relatifs, sous-fichiers de bibliothèque SL. Une aire se compose d'un type d'article ou plus, mais un type d'article ne peut pas s'étendre sur plus d'une aire (excepté sous IDS/II). Les articles peuvent être liés entre eux par des relations qui déterminent des ensembles (mis en oeuvre par des pointeurs physiques sous IDS/II et des pointeurs logiques sous UFAS). Les articles d'un fichier relatif ne peuvent pas faire partie d'une hiérarchie et ne peuvent donc pas être liés à d'autres articles via des ensembles. La description origine du schéma UFAS indexé SCH-CUSTOMERS est fournie à titre d'exemple à la fin de ce chapitre. Ce schéma décrit la base de données CUSTOMERS, bien connue des utilisateurs IQS. 47 F2 80UR Rev02 4-1 IQS-V4 Guide de l'administrateur 4.2 UTILISATEURS DE FICHIERS IDS/II Ce chapitre concerne uniquement le DDL utilisable pour les fichiers UFAS. Pour la création de schémas IDS/II, voir la documentation IDS/II Etendu (FULL IDS/II). Noter cependant qu'un schéma IDS/II Etendu résultant produit par MNDD ne doit pas être recompilé par MNDD. En effet, les objets IDS/II sont directement compilables au moyen de la commande IQS "COMPILE SCHEMA" (voir chapitre 7). Les anciens schémas résultants (IDS/II V2) produits par DDLPROC doivent être convertis sous MNDD, en spécifiant l'option CONVERT. Ils doivent être rangés dans une bibliothèque binaire distincte, pour ne pas les mélanger avec les autres schémas. Il est également possible d'effectuer la conversion en dynamique, au moyen de primitives IDS, lors de l'émission d'une commande SELECT, mais la méthode précédemment citée est plus efficace. Il est recommandé de conserver les anciens schémas dans une bibliothèque séparée afin de protéger les autres applications qui les utilisent. 4-2 47 F2 80UR Rev02 Définition des schémas 4.3 COMPOSANTES D'UN SCHEMA DDL Un schéma DDL comporte cinq types de rubriques : • une rubrique SCHEMA identifiant le schéma, • une ou plusieurs rubriques AREA définissant le ou les fichiers, • une ou plusieurs rubriques RECORD définissant le ou les articles et leurs zones constitutives et indiquant leur aire de rangement, • une ou plusieurs rubriques SET définissant les relations entre articles, • une rubrique END-SCHEMA marquant la fin du schéma. La syntaxe à employer pour chacune de ces rubriques est présentée dans la suite de ce chapitre. 4.3.1 Format origine DDL Le DDL est un langage utilisable en format libre : il n'existe pas de zones spéciales pour la numérotation des lignes, le repérage des commentaires ou l'identification des programmes. Toutefois, la fin de ligne est considérée comme un séparateur lorsqu'elle n'est pas située à l'intérieur d'une chaîne protégée (voir plus loin). Les rubriques de description d'entrées et les unités de bibliothèque contenant du DDL doivent être de type DATA ou DATASSF pour pouvoir être acceptées par le traducteur DDL. 47 F2 80UR Rev02 4-3 IQS-V4 Guide de l'administrateur 4.3.2 Jeu de caractères DDL Le jeu de caractères DDL se compose de 52 caractères incluant les majuscules de l'alphabet latin, les chiffres et certains symboles. Ces caractères sont tous utilisables dans un schéma origine. Tableau 4-1. Jeu de caractères DDL Caractère 0,1,...,9 A,B,...,Z + , ; . " ( ) ' $ / * = > < Nom Chiffres Lettres Espace ou blanc Signe "plus" Signe "moins" ou tiret Virgule Point-virgule Point ou marque décimale Guillemet Parenthèse gauche Parenthèse droite Apostrophe Symbole monétaire Barre oblique Astérique Signe "égal à" Signe "supérieur à " Signe "inférieur à " D'autres caractères du jeu DPS 7000 peuvent être utilisés dans les chaînes protégées (littéraux non numériques, commentaires) ou dans les représentations synonymiques de noms (voir plus loin). 4-4 47 F2 80UR Rev02 Définition des schémas 4.3.3 4.3.3.1 Ponctuation DDL Délimiteurs Un délimiteur sert à marquer le début et la fin d'une chaîne protégée. Une chaîne protégée est un ensemble quelconque de caractères du jeu DPS 7000 encadré par des délimiteurs. Un caractère délimiteur peut être utilisé dans le corps d'une chaîne à condition d'être doublé. Les délimiteurs sont : • les guillemets, qui s'utilisent pour délimiter les littéraux alphanumériques ou hexadécimaux et les commentaires, • les apostrophes, qui s'utilisent pour délimiter la forme synonymique des noms. 4.3.3.2 Séparateurs Un séparateur s'utilise pour distinguer les mots et les littéraux et pour indiquer certaines constructions du langage. Dans une chaîne protégée, un séparateur n'a pas de signification. S'il est représenté par un caractère, il devient partie intégrante de la chaîne. S'il est représenté par une fin de ligne, il est ignoré. Les séparateurs sont : L'espace Un ou plusieurs espaces constituent un séparateur. Un ou plusieurs espaces sont utilisables pour compléter tout autre séparateur ; dans ce cas, ils peuvent être placés indifféremment avant ou après celui-ci. La virgule La virgule est un séparateur obligatoire entre les indices dans les identificateurs de données. Ailleurs, elle est facultative. Le point-virgule Un point-virgule peut s'employer comme un espace. Il est traité comme tel. Le point Le point suivi d'un espace ou d'une fin de ligne doit être employé pour marquer la fin d'une rubrique ou d'une sousrubrique. Les parenthèses Les parenthèses (gauche et droite) sont nécessaires pour délimiter les indices dans un identificateur de donnée. Elles s'utilisent également dans l'écriture des conditions. La fin de ligne La fin de ligne a les mêmes effets et obéit aux mêmes règles que l'espace. 47 F2 80UR Rev02 4-5 IQS-V4 Guide de l'administrateur 4.3.4 Mots DDL Un mot DDL est une suite de 1 à 30 caractères. Les caractères autorisés sont les lettres de A à Z, les chiffres de 0 à 9 et le tiret (-). Le tiret ne doit pas être le premier ou le dernier caractère d'un mot. Exemples : Correct A, A-B Z9999 4.3.4.1 Incorrect -A A$B, A+B Mots réservés Les mots réservés sont des mots qui ne peuvent pas être employés comme noms définis par l'utilisateur. Ils recouvrent les mots-clés et les mots facultatifs. Le mot-clé est un mot qui doit obligatoirement apparaître chaque fois que le format dans lequel il est inclus est utilisé. Dans les formats, les mots-clés sont représentés en majuscules soulignées. Le mot facultatif est un mot que l'utilisateur peut, au choix, spécifier ou non. Dans les formats, il est représenté en majuscules non soulignées. Les fautes d'orthographe ou le remplacement par un autre mot sont interdits. La liste complète des mots réservés DDL figure en fin de chapitre. Il est préférable de ne pas utiliser les mots clés et abréviations IQS en raison du risque d'interférence avec les fonctions polyglottes. Pour cela il est conseillé de compiler le schéma, sous IQS, dans les différentes langues sous lesquelles il sera utilisé (par exemple : #LANG1 et 2). 4.3.4.2 Noms Un nom est un mot commençant par une lettre. Dans le présent chapitre, le terme "nom" recouvre : • nom-donnée, • nom-rubrique, et le terme "nom-rubrique" recouvre : • • • • • 4-6 nom-schéma, nom-aire, nom-article, nom-clé, nom-ensemble. 47 F2 80UR Rev02 Définition des schémas 4.3.4.3 Représentation synonymique des noms Un nom peut avoir un synonyme sous forme d'une chaîne de 30 caractères maximum, choisis dans le jeu de caractères DPS 7000 et délimités par des apostrophes. Le caractère apostrophe lui-même peut être inclus dans la chaîne, à condition d'être doublé. Exemples : 'WORK.SCHEMA', 'O''CLOCK' Lorsqu'un nom défini par l'utilisateur est identique à un mot réservé, il doit toujours être spécifié sous sa forme synonymique. Exemple : SCHEMA NAME IS 'SCHEMA'. 4.3.4.4 Unicité des noms Les règles à observer sont les suivantes : 4.3.4.5 1. Il ne doit pas exister de noms-rubrique en double. Par exemple, deux aires ne peuvent avoir le même nom, ou une aire ne peut porter le même nom que le schéma, qu'un article, ou qu'un ensemble. 2. Un nom-rubrique ne doit pas être identique à un nom-donnée. 3. Il ne doit pas exister de noms-donnée en double dans une rubrique RECORD. 4. Deux zones ou deux agrégats peuvent porter le même nom, à condition de figurer dans deux rubriques RECORD différentes. Nombre maximum de noms Pour chaque type, le nombre maximum de noms pouvant être définis est le suivant : Tableau 4-2. Limites DDL Type de nom nom-aire nom-article nom-clé nom-ensemble nom-donnée dans un type d'article Nombre maximum 2048 2048 2048 2048 2048 Pour IQS, la limite est inférieure à 2048 dans tous les cas. Le nombre maximum de noms dépend de la longueur de chaque nom. Le nombre maximum d'articles est limité à 837. 47 F2 80UR Rev02 4-7 IQS-V4 Guide de l'administrateur 4.3.5 Littéraux Un littéral est une chaîne de caractères représentant une valeur. En DDL IQS, il existe trois types de littéraux : • les littéraux alphanumériques, • les littéraux numériques, • les littéraux hexadécimaux. 4.3.5.1 Littéraux alphanumériques Un littéral alphanumérique est une chaîne de 256 caractères maximum, choisis dans le jeu de caractères DPS 7000 et délimités par des guillemets. Il a pour valeur les caractères représentés, et pour longueur le nombre de ces caractères. Si un caractère guillemet fait partie intégrante de la chaîne, il doit être doublé mais ne compte qu'une fois pour la détermination de la longueur de la chaîne. Exemples : 4.3.5.2 "1er JANVIER" valeur = 1er JANVIER longueur = 11 "CODE ""4""" valeur = CODE "4" longueur = 8 Littéraux numériques Un littéral numérique représente un nombre. La seule forme de littéral numérique autorisée est le littéral décimal à marque décimale fixe. Les caractères admis sont : • les chiffres de 0 à 9, • les signes "plus" (+) et "moins" (-), • la marque décimale (le point). Un littéral numérique a pour valeur la valeur algébrique conventionnelle représentée. Sa longueur maximum est de 30 chiffres. Lorsqu'il comporte la marque décimale, celle-ci doit être suivie d'au moins un chiffre. Exemples : Correct : Incorrect : 4-8 1 1.0 122. +322 +0.004 -5789.333 -.005 +32.1A4 47 F2 80UR Rev02 Définition des schémas 4.3.5.3 Littéraux hexadécimaux Un littéral hexadécimal est une chaîne de 512 caractères maximum, choisis parmi : • les chiffres de 0 à 9, • et les lettres de A à F. Il est délimité par des guillemets. Le guillemet de fin doit être suivi du caractère X. Le nombre de caractères de la chaîne doit être pair. La valeur représentée est l'équivalent EBCDIC de chaque paire de caractères de la chaîne. La longueur de la chaîne est son nombre de caractères divisé par deux. Il est possible d'utiliser une chaîne hexadécimale pour représenter des caractères pour lesquels un symbole externe n'existe pas ou n'est pas disponible sur l'appareil d'entrée. Exemple : "948199A2"X 4.3.6 valeur = mars longueur = 4 Commentaires Il est possible d'incorporer des commentaires dans le DDL pour clarifier la programmation du schéma. Leur insertion est admise dès qu'un espace peut être utilisé comme séparateur. Un commentaire comporte : • le mot réservé COMMENT, • 0 à n espaces, • et le texte du commentaire, délimité par des guillemets ou par /* et */. Si un caractère "guillemet" figure dans le corps du commentaire, il doit être doublé. Exemple : COMMENT "*********************** * SCHEMA INVENTAIRE * ***********************" SCHEMA NAME IS INVENTAIRE. 02 QTE TYPE DEC 6. /* Quantité commandée */ 02 SEX TYPE CHAR 1. COMMENT "VALEUR ""M"" VALEUR ""F"" 47 F2 80UR Rev02 si Masculin si Féminin" 4-9 IQS-V4 Guide de l'administrateur 4.3.7 Noms de données Un nom de donnée (nom-donnée) est un nom défini par l'utilisateur pour désigner une zone simple ou un agrégat. 4.3.8 Identificateurs de données Un identificateur de donnée permet de citer une zone de données (simple ou faisant partie d'un agrégat) déclarée dans le schéma. Il se compose d'un nom-donnée suivi, le cas échéant, par la combinaison syntactiquement correcte d'indices et de qualificateurs nécessaire au respect de la règle d'unicité des noms. Dans certains formats, la qualification n'est pas nécessaire si le contexte supprime tout risque d'ambiguïté (règles de syntaxe spécifiques). Le format d'un identificateur de donnée est le suivant : nom-donnée [(entier-1 [,entier-2]...)] [{OF|IN} nom-article] 4.3.8.1 Indiçage Les indices sont utilisés uniquement pour identifier une zone de données à l'intérieur d'un vecteur ou d'un groupe répétitif. L'indice doit toujours être un entier. La plus petite valeur possible d'un indice est 1 ; elle renvoie à la première occurrence du nom-donnée cité. La plus grande valeur d'un indice est 32767. Lorsque plusieurs indices sont nécessaires, ils doivent être écrits de gauche à droite dans l'ordre croissant des numéros de niveau des agrégats. Le nombre d'indices est limité à 3 (limite COBOL). 4.3.8.2 Qualification Lorsque le même nom-donnée est déclaré dans plus d'une rubrique RECORD, son utilisation comme identificateur de donnée peut nécessiter une qualification, afin de respecter la règle d'unicité des noms. Les règles de syntaxe précisent si la qualification est nécessaire ou non. Un nom peut toujours être qualifié, même si ce n'est pas nécessaire. 4-10 47 F2 80UR Rev02 Définition des schémas 4.3.9 Conditions Dans les formats généraux, le mot condition représente une expression dont la valeur ("vrai" ou "faux") est testée par IQS lors de l'exécution. 4.3.9.1 Format général d'une condition De façon générale, une condition se compose d'une ou plusieurs alternatives reliées par la conjonction OR : alternative-1 [OR alternative-2]... La condition est vraie si l'une quelconque des alternatives spécifiées (et éventuellement plusieurs, la conjonction OR n'étant pas exclusive) est vraie. Sinon, elle est fausse. 4.3.9.2 Alternative Une alternative consiste en une ou plusieurs conditions simples reliées par la conjonction AND : condition-simple-1 [AND condition-simple-2]... L'alternative est vraie si toutes les conditions simples qui la composent sont vraies. Sinon, elle est fausse. 4.3.9.3 Condition simple Une condition simple a le format suivant : { condition-relationnelle-1 } { [NOT] (condition-1) } La condition simple est vraie : • soit si "condition-relationnelle-1" est vraie, • soit si NOT est omis et "condition-1" est vraie, • soit si NOT est spécifié et "condition-1" est fausse. Dans tous les autres cas, la condition simple est fausse. 47 F2 80UR Rev02 4-11 IQS-V4 Guide de l'administrateur 4.3.9.4 Condition relationnelle Une condition relationnelle se compose de deux opérandes qui peuvent être des identificateurs de données ou des littéraux séparés par un opérateur de comparaison. { {LT} } {id-donnée-1} {littéral-1 { { { { { { { } { { { { { { { { {< } } } {LE} } {<=} } } {EQ} } {= } } } {GE} } {>=} } } {GT} } {> } } } {NE} } {id-donnée-2} {littéral-2 } Tableau 4-3. Opérateurs de comparaison Opérateur LT ou < LE ou <= EQ ou = GE ou >= GT ou > NE Signification inférieur à inférieur ou égal à égal à supérieur ou égal à supérieur à différent de La condition est vraie si la relation entre les opérandes est vérifiée, et fausse dans le cas contraire. Le tableau 4-4 indique les cas où la comparaison de deux identificateurs de données est admise, et le tableau 4-5 les cas où la comparaison d'un identificateur de donnée et d'un littéral est admise. Si les opérandes sont de type numérique, il ne doit y avoir aucune perte de chiffres non nuls (à gauche de la partie entière et à droite de la partie décimale) lorsque le littéral est converti au format de l'identificateur. La comparaison s'effectue en utilisant la valeur algébrique des données. Si les opérandes sont de type alphanumérique, la comparaison s'effectue selon l'ordre de classement EBCDIC. Les opérateurs <, <=, =, >= et > doivent toujours être précédés et suivis d'un espace. Les deux caractères qui composent les opérateurs <= et >= doivent figurer sur la même ligne et ne peuvent être séparés par un espace. 4-12 47 F2 80UR Rev02 Définition des schémas Dans les deux tableaux ci-après, m et m' représentent le nombre de chiffres significatifs, et p et p' le nombre de chiffres après la virgule (pour plus de détails, voir la clause TYPE). Tableau 4-4. Comparaison de deux identificateurs de données TYPE identificateur - 1 DECIM AL m TYPE identificateur - 2 DECIMAL m' DECIM AL m ,p (p = 0) BINAIRE CARACTERE OUI D E C IM A L m ',p ' (p = 0 ) OUI OUI (si p' = p) B IN A IR E OUI OUI CARACTERE OUI Tableau 4-5. Comparaison d'un identificateur de données et d'un littéral TYPE identificateur TYPE littéral D E C IM A L s igné /no n s ign é en tier/no n en tier 47 F2 80UR Rev02 DECIMAL m ,p OUI BINAIRE CARACTERE OUI A LP H A N U M E R IQ U E OUI H E X A D E C IM A L OUI 4-13 IQS-V4 Guide de l'administrateur 4.3.9.5 Utilisation des parenthèses Dans le cas d'une condition sans parenthèses, chaque alternative est testée, puis les valeurs obtenues (vrai ou faux) sont utilisées pour déterminer si la condition complète est vérifiée ou non. Dans le cas d'une condition avec parenthèses, les expressions entre parenthèses sont testées en premier, puis les valeurs obtenues (vrai ou faux) sont utilisées pour déterminer si la condition complète est vérifiée ou non. Dans une condition avec parenthèses emboîtées, l'ordre d'évaluation va de la plus intérieure à la plus extérieure. A une parenthèse gauche doit toujours correspondre une parenthèse droite. 4.3.9.6 Exemples de conditions TAUX-REMISE = 0.10 AGE >= 25 NOT (AGE < 25) DATE-NAISSANCE LE DATE-DECES MOIS = "JANVIER" AND JOUR <= 31 OR MOIS = "FEVRIER" AND JOUR <= 29 SEXE = "M" AND NOM-JEUNE-FILLE = " " OR SEXE = "F" AND NOT (NOM-JEUNE-FILLE = " ") RTYPE = "1" AND (SUBTYPE = "1" OR SUBTYPE = "2") OR RTYPE = "2" AND ((SUBTYPE = "1" AND QTE < 1000) OR (SUBTYPE = "2" AND QTE >= 1000)) OR RTYPE = "3" 4-14 47 F2 80UR Rev02 Définition des schémas 4.4 SYNTAXE DDL Comme indiqué au début du paragraphe 4.3, un schéma origine DDL comporte cinq types de rubriques : • une rubrique SCHEMA identifiant le schéma, • une ou plusieurs rubriques AREA définissant le ou les fichiers de la base de données, • une ou plusieurs rubriques RECORD définissant le ou les articles et leurs zones constitutives et indiquant leur aire de rangement, • une ou plusieurs rubriques SET définissant les relations entre articles, • une rubrique END-SCHEMA marquant la fin du schéma. 4.4.1 Ordre des rubriques A chaque aire, article et ensemble existant dans le schéma doit correspondre une rubrique distincte. Les règles ci-dessous définissent l'ordre dans lequel doivent apparaître les différents types de rubriques. • La rubrique SCHEMA doit être la première rubrique. • Une rubrique AREA doit précéder toutes les rubriques RECORD décrivant les articles contenus dans l'aire considérée. • Une rubrique RECORD doit précéder toute rubrique SET décrivant un ensemble auquel appartient l'article considéré. • Une rubrique RECORD doit comprendre une sous-rubrique article suivie d'une ou plusieurs sous-rubriques zone. Noter qu'il ne peut pas exister d'articles de longueur nulle dans UFAS alors que cette possibilité existe dans IDS/II. • Une rubrique SET doit comprendre une sous-rubrique ensemble suivie d'une ou plusieurs sous-rubriques détails. • La rubrique END-SCHEMA doit être la dernière rubrique du schéma. Une rubrique ou une sous-rubrique se compose d'une ou plusieurs clauses décrivant des attributs. Les clauses peuvent être écrites dans n'importe quel ordre à condition que la première désigne la rubrique ou la sous-rubrique. Toutes les rubriques et sousrubriques doivent se terminer par un point, suivi d'un espace ou d'une fin de ligne. 47 F2 80UR Rev02 4-15 IQS-V4 Guide de l'administrateur 4.4.2 Description des rubriques Dans ce chapitre, la description de chaque rubrique ou sous-rubrique se présente comme suit : • Fonction. • Format général (présenté selon les conventions d'écriture exposées dans la préface). • Règle(s) de syntaxe. • Règle(s) générale(s). Les clauses sont subdivisées en locutions, qui doivent être écrites dans l'ordre indiqué. La structure d'un schéma DDL origine est la suivante : Rubrique SCHEMA Rubrique AREA ... Rubrique RECORD ... [Rubrique SET] ... Rubrique END-SCHEMA Chaque type de rubrique est décrit dans les pages qui suivent. 4.4.3 Rubrique SCHEMA Fonction Spécifie le nom du schéma. C'est le nom qui s'utilisera pour toutes les références ultérieures à ce schéma. Cette rubrique est obligatoire. Format général SCHEMA NAME IS nom-schéma. Règles de syntaxe 1. Cette rubrique doit être la première du schéma. 2. "nom-schéma" doit être unique dans le schéma concerné. 3. "nom-schéma" doit être un nom de sous-fichier valide, car il sera utilisé en tant que tel à la création du schéma résultant. 4. "nom-schéma" peut comporter jusqu'à 30 caractères. Règle générale Le schéma désigné par "nom-schéma" est constitué de toutes les rubriques DDL qui apparaissent entre SCHEMA et END-SCHEMA. 4-16 47 F2 80UR Rev02 Définition des schémas 4.4.4 Rubrique AREA Fonction Spécifie le nom d'une aire (fichier) du schéma et indique son organisation. Format général AREA NAME IS nom-aire { SEQUENTIAL } [ORGANIZATION IS { RELATIVE }]. { INDEXED USING nom-clé } Règles de syntaxe 1. "nom-aire" doit être unique dans le schéma concerné. 2. Il doit y avoir une rubrique AREA par aire. 3. Si la clause ORGANIZATION n'est pas spécifiée, le fichier est considéré comme séquentiel. 4. "nom-clé" est le nom logique de la clé primaire d'un fichier indexé. Ce nom est repris dans la description de chaque article, avec indication des zones constituant la clé. 5. Le nom choisi pour nom-clé doit être parlant, car c'est lui qui permet de faire référence à la clé lors de la définition de vues standard ou de l'utilisation de l'instruction RETRIEVE...VIA <nom-clé>. 6. Si les aires doivent être exploitées sous TDS, leur nom ne doit contenir ni trait de soulignement (_), ni tiret (-). 7. "nom-aire" peut comporter jusqu'à 30 caractères (les 8 premiers caractères seulement étant utilisés pour le nom de fichier interne). Si l'aire doit être exploitée sous IQS/TDS, la longueur maximum autorisée est de 23 caractères. 8. Les hiérarchies ne sont pas autorisées dans le cas de fichiers à organisation relative. Les articles d'un fichier relatif ne peuvent pas faire partie d'une rubrique SET NAME. Règle générale Les aires déclarées dans un schéma peuvent avoir des organisations différentes. 47 F2 80UR Rev02 4-17 IQS-V4 Guide de l'administrateur 4.4.5 Rubrique RECORD Fonction Spécifie le nom des articles et des zones qui les constituent à l'intérieur d'une aire (fichier) et en précise certaines caractéristiques. Format général sous-rubrique article sous-rubrique zone ... Règle générale La longueur maximum d'un article est de 32767 octets. Format général d'une sous-rubrique article RECORD NAME IS nom-article { nom-aire } [WITHIN { }] { AREA OF OWNER } { ASCENDING } [KEY nom-clé IS { } id-donnée [id-donnée]... { DESCENDING } { LAST } DUP[LICATES] ARE { }]... { NOT ALLOWED } [RECORD-TYPE DEFINED BY CHECK ON id-donnée [id-donnée]...] [CHECK IS condition]... . Format général d'une sous-rubrique zone [numéro-niveau-1] nom-donnée-1 { { { {UNPACKED} } { { { } } { { [UNSIGNED] {[PACKED]} } { { { } } { { {PACKED-2} } DECIMAL entier-1 { { } [entier-2] { { {UNPACKED} } { { { } } [TYPE IS { { SIGNED {[PACKED]} } { { [SIGNED] BINARY {15} { {31} { { CHARACTER entier-3 { [OCCURS entier-4 TIMES [DEPENDING ON identificateur-donnée-3] } } } } } } } } } }] } } } } } } ] [CHECK IS VALUE [NOT] littéral-1 [THRU littéral-2] ...] . 4-18 47 F2 80UR Rev02 Définition des schémas 4.4.6 Clause RECORD NAME Fonction Spécifie le nom d'un article du schéma (ce nom désigne toutes les occurrences de cet article dans le fichier (aire)). Format général RECORD NAME IS nom-article Règles de syntaxe 4.4.7 1. "nom-article" doit être unique dans le schéma concerné. C'est le nom utilisé par RETRIEVE, RETAIN, REVIEW, EXTRACT. 2. Le schéma doit comporter au minimum un nom-article. Clause WITHIN Fonction Spécifie l'aire (fichier) dans laquelle se trouvent les occurrences de l'article considéré. Format général {nom-aire } WITHIN { } {AREA OF OWNER} Règle de syntaxe "nom-aire" est le nom d'une aire pour laquelle une rubrique AREA a été spécifiée dans le schéma. Règles générales 1. La clause WITHIN n'est obligatoire que lorsque le schéma compte plus d'une aire. 2. Lorsque "nom-aire" est spécifié, les occurrences de l'article sont rangées dans l'aire désignée. 3. Lorsque AREA OF OWNER est spécifié, l'article doit être défini comme article détail dans une rubrique SET ; ses occurrences sont rangées dans la même aire que celles de son article maître. 47 F2 80UR Rev02 4-19 IQS-V4 Guide de l'administrateur 4.4.8 Clause KEY Fonction Spécifie une clé de tri pour l'article considéré et indique les zones dont elle se compose. Format général KEY nom-clé IS { ASCENDING } { } id-donnée { DESCENDING } [id-donnée]... { LAST } DUP[LICATES] ARE { } { NOT ALLOWED } Règles de syntaxe 1. Les zones de données spécifiées par "id-donnée..." doivent être déclarées dans la rubrique RECORD considérée. 2. Une zone ne peut figurer qu'une seule fois dans la liste des zones constituant la clé. 3. Les zones constituant la clé doivent être contiguës et déclarées dans l'ordre où elles figurent dans l'article. 4. Une zone de clé ne doit pas être un élément d'un vecteur ou d'un groupe répétitif à nombre d'occurrences variable. 5. La longueur totale de la clé doit être inférieure à 256 octets. 6. "nom-clé" doit être unique dans la rubrique RECORD considérée. Règles générales 1. Les identificateurs de données doivent être déclarés par ordre d'importance décroissante (de la clé majeure à la clé mineure). 2. Toutes les rubriques RECORD d'une même aire doivent spécifier les mêmes noms de clé (dans les clauses KEY). 3. Pour une même clé, les clauses KEY des différentes rubriques RECORD d'une même aire doivent être identiques en ce qui concerne : - 4-20 l'ordre de classement (ASCENDING/DESCENDING), l'option choisie pour DUPLICATES (LAST/NOT), la position dans l'article de la première zone spécifiée, le nombre de zones spécifiées, la longueur et le type des zones de même rang dans la clé. 47 F2 80UR Rev02 Définition des schémas 4. Des articles n'appartenant pas à la même aire ne peuvent présenter le même nom de clé. 5. Les articles d'une aire SEQUENTIAL ne peuvent comporter qu'une seule clé de tri. 6. Les articles d'une aire INDEXED doivent présenter une description de la clé primaire (spécifiée dans la clause ORGANIZATION de la rubrique AREA). Les clauses KEY correspondantes doivent comporter les options ASCENDING et DUPLICATES NOT. 7. Lorsque la locution DUPLICATES ARE NOT ALLOWED est spécifiée, IQS refuse toute modification d'un article si, après l'opération, il présente la même valeur de clé qu'un autre article du fichier. 8. Lorsque la locution DUPLICATES ARE LAST est spécifiée, les articles modifiés sont insérés après les articles existants ayant la même valeur de clé. 9. Lorsqu'un article comporte plusieurs clés, celles-ci ne doivent pas commencer par la même zone. 10. L'accès direct aux données s'effectue d'abord en utilisant la clé majeure, puis les clés mineures. La commande IQS PRINT SCHEMA affiche les clés permettant un accès direct. 47 F2 80UR Rev02 4-21 IQS-V4 Guide de l'administrateur 4.4.9 Clause RECORD-TYPE Fonction Spécifie les zones de données dont la valeur indique le type de l'article. Format général RECORD-TYPE DEFINED BY CHECK ON id-donnée [id-donnée]... Règles de syntaxe 1. Les zones de données désignées par "id-donnée..." doivent être déclarées dans la rubrique RECORD considérée. 2. Une même zone ne peut apparaître qu'une seule fois dans la liste des zones. 3. Les "id-donnée" ne doivent pas être indicés, c'est-à-dire qu'il ne doivent pas désigner une zone faisant partie d'un vecteur ou d'un groupe répétitif. 4. La clause RECORD-TYPE n'est obligatoire que dans le cas d'une aire comportant plus d'un article. Règles générales 1. Les zones de données spécifiées dans cette clause doivent avoir une valeur constante. Les sous-rubriques zone correspondantes doivent comporter la clause : CHECK VALUE littéral-unique garantissant que la zone ne peut prendre qu'une seule valeur. La constante "littéral-unique" doit faire partie de l'ensemble des valeurs autorisées pour la zone. 2. Les zones spécifiées dans les clauses RECORD-TYPE des différents articles d'une même aire SEQUENTIAL ou INDEXED doivent être identiques en nombre, position dans l'article, type et longueur. Remarque : 4-22 MNDD ne vérifie pas que les constantes associées aux zones spécifiées dans RECORD-TYPE permettent d'identifier l'article sans ambiguïté. 47 F2 80UR Rev02 Définition des schémas 4.4.10 Clause CHECK (sous-rubrique article) Fonction Spécifie le contrôle à effectuer sur certains éléments d'un article avant sa modification. Format général CHECK IS condition-1 [OR condition-2]... Règles de syntaxe 1. Tous les identificateurs de données utilisés comme arguments de la condition doivent désigner des zones de données spécifiées dans la rubrique RECORD. 2. Un identificateur ne doit pas désigner un élément de vecteur ou de groupe répétitif à nombre d'occurrences variable. Règles générales 1. La condition est testée chaque fois que l'un quelconque de ses arguments intervient lors de la création ou de la modification d'une occurrence de l'article concerné. 2. Si la condition n'est pas vérifiée, IQS signale une erreur et l'article n'est pas créé/modifié. 3. Chaque condition peut comporter plusieurs sous-conditions reliées par la conjonction AND : sous-condition-1 [AND sous-condition-2]... 4. Une sous-condition se présente comme suit : {zone-1 } { } [NOT] {littéral} 5. { { { { { { { { { { { { { { {> } } {GT} } } {>=} } {GE} } } {< } } {LT} } } {<=} } {LE} } } {= } } {EQ} } {zone-2 } { } {littéral} Les conditions doivent figurer entre parenthèses, afin de bien distinguer leur signification : Exemple : (REF = "A" AND BNO >=2 AND BNO <8) OR (REF = "B" AND BNO = 1) OR (REF = "C" AND BNO GT 7) 47 F2 80UR Rev02 4-23 IQS-V4 Guide de l'administrateur 4.4.11 Clause nom-donnée Fonction Désigne une zone de données (simple ou appartenant à un vecteur/à un groupe répétitif ou non) et indique son niveau dans la structure de l'article. Format général [numéro-niveau] nom-donnée Règles de syntaxe 1. "nom-donnée" doit être unique dans la rubrique RECORD considérée et ne peut pas être un nom de rubrique. 2. "numéro-niveau" est un entier décimal non signé compris entre 01 et 99 inclus. 01 correspondant implicitement au nom de l'article, le premier numéro de niveau à donner est en fait 02. Règles générales 4-24 1. Le contenu d'un article se définit au moyen d'une ou plusieurs sous-rubriques zone. 2. Une zone simple est décrite par une sous-rubrique zone contenant une clause TYPE, mais pas de clause OCCURS. 3. Un vecteur est décrit par une sous-rubrique zone contenant une clause TYPE et une clause OCCURS. 4. Un groupe répétitif est décrit par une sous-rubrique zone contenant une clause OCCURS, mais pas de clause TYPE. 5. Un groupe non répétitif est décrit par une sous-rubrique zone qui ne contient ni clause TYPE, ni clause OCCURS. 6. Si une sous-rubrique zone définit un groupe (répétitif ou non), elle doit être suivie d'une ou plusieurs sous-rubriques zone portant des numéros de niveau plus élevés. 7. Si une sous-rubrique zone contient une clause OCCURS avec l'option DEPENDING, elle ne peut être suivie que par d'autres sous-rubriques zone portant des numéros de niveau plus élevés. 8. Le nombre maximum de groupes répétitifs et de vecteurs emboîtés est de 3. 9. Le nombre maximum de niveaux est de 48 (règle COBOL). 47 F2 80UR Rev02 Définition des schémas 4.4.12 Clause TYPE Fonction Décrit les caractéristiques d'une zone de données (simple ou faisant partie d'un vecteur/d'un groupe répétitif ou non). Format général { { { { { { TYPE IS { { { { { { { {UNPACKED} } { [UNSIGNED] {[PACKED]} } { {PACKED-2} } { } DECIMAL entier-1 { {UNPACKED} } [entier-2] { SIGNED { } } { {[PACKED]} } [SIGNED] BINARY {31} {15} CHARACTER entier-3 } } } } } } } } } } } } Règles de syntaxe 1. "entier-1" et "entier-3" doivent être des constantes décimales non signées et de valeur supérieure à 0. Leur valeur maximum varie en fonction du type de donnée (voir Règles générales). 2. "entier-2" est une constante décimale signée. Règles générales 1. La clause TYPE définit une zone numérique (DECIMAL ou BINARY) ou alphanumérique (CHARACTER). 2. DECIMAL définit une zone numérique décimale. correspondent au modèle PIC 9 du COBOL. 3. "entier-1" spécifie le nombre de chiffres significatifs à conserver pour toutes les valeurs de la zone. La valeur maximum de "entier-1" est 30. 4. Lorsqu'il est spécifié, "entier-2" indique le nombre de chiffres après la virgule dans la zone. "entier-2" peut prendre n'importe quelle valeur comprise entre -29 et 30 inclus. Les zones DECIMAL Lorsque "entier-2" est négatif, la marque décimale est placée "entier-2" positions à droite du chiffre le plus à droite (DECIMAL 4,-1 équivaut à PICTURE 9999P en COBOL). Lorsque "entier-2" est positif, la marque décimale est placée "entier-2" positions à gauche du chiffre le plus à droite (DECIMAL 4,1 équivaut à PICTURE 999V9 en COBOL). 47 F2 80UR Rev02 4-25 IQS-V4 Guide de l'administrateur Lorsque "entier-2" est égal à zéro ou n'est pas spécifié, la marque décimale est placée immédiatement à droite du chiffre le plus à droite. Dans les tableaux 4-4 et 4-5, m et m' représentent "entier-1", et p et p' "entier-2". 5. Le nombre total de chiffres induit par "entier-1" et "entier-2" ne doit pas, pour des raisons d'affichage, dépasser 30, même si les données ne sont jamais affichées. 6. Les mots-clés SIGNED/UNSIGNED, PACKED/PACKED-2/UNPACKED définissent le format interne de la zone. Leurs équivalents COBOL sont indiqués dans le tableau 4-6. 7. BINARY spécifie une zone numérique binaire. Les équivalents COBOL sont COMP-1 et COMP-2. Les zones de ce type contiennent des entiers signés sur deux octets (15 bits plus bit de signe) ou sur quatre octets (31 bits plus bit de signe). 8. CHARACTER spécifie une zone alphanumérique. L'équivalent COBOL est PIC X. Une zone alphanumérique est supposée contenir des caractères du jeu EBCDIC et toutes les comparaisons s'effectuent selon l'ordre de classement EBCDIC. 9. "entier-3" donne la longueur de la zone alphanumérique. Sa valeur maximum est 32767. 10. Le tableau 4-6 récapitule les correspondances entre les types de données DDL et COBOL. 11. Au niveau de l'article, toutes les zones sont alignées à l'octet. Exemple : RECORD NAME IS nom-article-1... 02 donnée-alphanumérique-1 TYPE IS CHARACTER 3. 02 donnée-décimale-2 TYPE IS SIGNED PACKED DECIMAL 5,+2. 02 donnée-binaire-3 TYPE IS SIGNED BINARY 31. Remarques : 1. "donnée-alphanumérique-1" occupera dans l'article trois octets EBCDIC de huit bits. 2. "donnée-décimale-2" occupera cinq positions pour les chiffres en décimal condensé plus une position pour le signe, soit un total de six positions ou trois octets de huit bits. Le nombre de chiffres après la virgule sera de deux, ce qui correspond en COBOL à : PIC S999V99 USAGE COMP. 4-26 3. "donnée-binaire-3" occupera quatre octets de huit bits à partir du début de l'octet suivant. 4. Pour plus de précisions sur la représentation des différents types de données sous IQS, voir le Manuel de référence IQS-V4. 47 F2 80UR Rev02 Définition des schémas Tableau 4-6. Correspondance entre les types de données DDL et COBOL CO BOL DDL IM A G E m S9(m) D E C IM A L E C LA T E m ,p S IG N E m >p S9(m-p)V9(p) m =p SV9(m) m <p SP(p-m)9(m) m,-p m { m ,p m ,-p S9(m)P(p) com m e D E C IM A L E C LA T E N O N S IG N E { D E C IM A L CO NDENSE S IG N E D E C IM A L m,p N O N S IG N E m,-p m D E C IM A L C O N D E N S E -2 { m ,p m ,-p N O N S IG N E 9(m-p)V9(p) m =p V9(m) m <p P(p-m)9(m) 9(m)P(p) com m e D E C IM A L E C LA T E N O N S IG N E COMP { m { m ,p m ,-p m >p { D E C IM A L CONDENSE N O N S IG N E COMP 9(m) m E C LA T E U TILIS ATIO N com m e D E C IM A L E C LA T E N O N S IG N E COMP-8 15 COMP-1 31 COMP-2 B IN A IR E S IG N E CARACTERE n 47 F2 80UR Rev02 X(n) 4-27 IQS-V4 Guide de l'administrateur 4.4.13 Clause OCCURS Fonction Définit un vecteur ou un groupe répétitif en spécifiant combien de fois se répète la zone ou le groupe de zones dans un article ou un groupe répétitif. Format général OCCURS entier-4 TIMES [DEPENDING ON identificateur-donnée-3] Règles de syntaxe 1. L'option DEPENDING n'est pas autorisée dans les sous-rubriques qui décrivent une zone faisant partie d'un groupe répétitif (c'est-à-dire dépendant d'une zone décrite avec la clause OCCURS). 2. La zone spécifiée par "identificateur-donnée-3" doit : 3. a. être décrite dans la rubrique RECORD considérée ; b. être décrite dans une sous-rubrique précédente ; c. être un entier (sa clause TYPE doit spécifier BINARY ou DECIMAL et un nombre de chiffres après la virgule inférieur ou égal à zéro). La zone spécifiée par "identificateur-donnée-3" ne doit pas être indicée, c'est-à-dire qu'elle ne peut faire partie d'un vecteur ou d'un groupe répétitif. Règles générales 1. Le nombre de répétitions de la zone ou du groupe est spécifié par la valeur de "entier-4", qui doit être comprise entre 1 et 32767 inclus. 2. La clause OCCURS définit un vecteur lorsque la clause TYPE est spécifiée ou un groupe répétitif lorsqu'elle est omise. 3. Lorsque l'option DEPENDING est utilisée, le nombre d'occurrences du vecteur ou du groupe répétitif (voir le point 2 ci-dessus) est variable. Cette sous-rubrique ne peut être suivie que par d'autres sous-rubriques zone portant des numéros de niveau plus élevés. Dans ce cas, "entier-4" représente le nombre maximum d'occurrences du vecteur ou du groupe répétitif, leur nombre réel étant indiqué par la valeur de "identificateur-donnée-3". 4-28 47 F2 80UR Rev02 Définition des schémas Exemple 1 : vecteur 02 EDX TYPE BINARY 31 OCCURS 10. Exemple 2 : groupes répétitifs 02 EDAB OCCURS 18. 03 EDA TYPE CHARACTER 20. 03 EDB OCCURS 8. 04 EDBX... 04 EDBY... 04 EDBZ... EDAB et EDB sont des identificateurs de groupe. 47 F2 80UR Rev02 4-29 IQS-V4 Guide de l'administrateur 4.4.14 Clause CHECK (sous-rubrique zone) Fonction Spécifie le contrôle à exécuter avant modification d'une valeur ou enregistrement d'une nouvelle donnée. Format général CHECK IS VALUE [NOT] littéral-1 [THRU littéral-2] Règles de syntaxe 1. La sous-rubrique zone contenant cette clause CHECK doit également comporter une clause TYPE. 2. La clause CHECK n'est pas autorisée dans les sous-rubriques zone (d'un vecteur ou d'un groupe répétitif) dont le nombre d'occurrences est variable. 3. Le type de "littéral-1" et "littéral-2" doit concorder avec le type de la zone, comme indiqué dans le tableau 4-5. 4. Dans le cas de données alphanumériques, les littéraux doivent être spécifiés dans l'ordre de classement EBCDIC croissant. Dans le cas de données numériques, ils doivent être spécifiés en ordre algébrique croissant. Un littéral ne peut donc pas avoir la même valeur qu'un autre littéral, ni être compris dans une plage de valeurs spécifiée dans la même clause. De même, les plages de valeurs spécifiées dans la même clause ne doivent pas se chevaucher. Règles générales 4-30 1. Le contenu de la zone est comparé aux valeurs ou plages de valeurs spécifiées dans la clause. Une valeur est spécifiée par un littéral. Une plage de valeurs est spécifiée par deux littéraux séparés par THRU. 2. Dans le cas de valeurs individuelles, la zone satisfait au test si elle est égale à l'une des valeurs de "littéral-1". Dans le cas d'une plage de valeurs, elle satisfait au test si elle est supérieure ou égale au premier littéral (qui indique la valeur la plus basse de la plage) et inférieure ou égale au deuxième littéral (qui indique la valeur la plus haute de la plage). 3. Le test est positif si la zone remplit la condition lorsque NOT est omis, ou si elle ne la remplit pas lorsque NOT est spécifié. 4. Le contrôle est exécuté avant chaque modification (instruction MODIFY) ou chaque enregistrement d'une nouvelle donnée (instruction INSERT). 47 F2 80UR Rev02 Définition des schémas 5. Si le test est négatif, une erreur est signalée et la zone n'est pas modifiée ou enregistrée. 6. Si la valeur est un identificateur-donnée spécifié dans une clause RECORD-TYPE DEFINED BY CHECK ON, il doit s'agir d'un littéral unique comme indiqué précédemment dans la clause RECORD-TYPE. Exemples de clauses CHECK : CHECK IS VALUE "1" CHECK IS VALUE NOT 1000 CHECK IS VALUE "A" "B" "C" CHECK IS VALUE 20 THRU 30 50 THRU 60 CHECK IS VALUE NOT 0 THRU 200 47 F2 80UR Rev02 4-31 IQS-V4 Guide de l'administrateur 4.4.15 Rubrique SET Fonction Définit un ensemble exprimant la relation entre deux ou plusieurs articles. Format général SET NAME IS nom-ensemble OWNER IS nom-article-1 . MEMBER IS nom-article-2 ... . [MEMBER IS nom-article-3.] ... Règles générales 1. Une occurrence d'ensemble est un groupe d'occurrences d'articles associées par la relation dont le nom est spécifié dans la clause SET. Une occurrence d'ensemble se compose d'une occurrence de l'article maître et des occurrences (éventuelles) des articles détails qui lui sont liés. Les occurrences détails suivent immédiatement leur occurrence maîtresse. 2. Un ensemble ne peut être défini qu'à l'intérieur d'une même aire ; autrement dit, l'article maître et ses articles détails doivent se trouver dans la même aire ("nomarticle-2" doit être déclaré dans la même aire que son article maître "nom-article1"). La définition sous IQS de liens entre des articles appartenant à des aires différentes ne peut s'effectuer qu'au moyen des vues standard. 3. Seule les structures hiérarchique et arborescente sont possibles, c'est-à-dire qu'un même article ne peut pas être article détail de plusieurs ensembles. La structure en réseau n'est pas acceptée, sauf sous IDS/II. Les articles de fichiers relatifs ne peuvent pas faire partie d'une rubrique SET NAME. 4. Les ensembles récursifs, directs ou indirects, ne sont pas acceptés sous UFAS : - un même article ne peut être à la fois maître et détail (récursivité directe), - les relations entre articles d'ensembles associés ne doivent pas former une boucle fermée (récursivité indirecte). Deux ensembles sont associés si l'article maître de l'un est article détail dans l'autre. La récursivité indirecte est autorisée sous IDS/II. 4-32 47 F2 80UR Rev02 Définition des schémas 5. Dans l'organisation UFAS indexée, la structure de la clé primaire reflète les relations hiérarchiques entre les articles. Pour définir un ensemble associant deux articles, les conditions suivantes doivent être remplies : - la clé primaire doit contenir au moins une zone pour chaque article de la hiérarchie, - l'ordre des zones (de gauche à droite) doit refléter l'ordre de la hiérarchie, - la ou les zones de droite de la clé de l'article maître (zones significatives des articles détails) doivent être des constantes de valeur espace lorsqu'elles sont alphanumériques ou zéro lorsqu'elles sont numériques. Ces constantes sont définies par la clause CHECK VALUE. - chacune des zones constituant la clé doit avoir les mêmes caractéristiques (type et longueur) dans l'article maître et dans l'article détail. 47 F2 80UR Rev02 4-33 IQS-V4 Guide de l'administrateur 4.4.16 Clause SET NAME Fonction Spécifie le nom d'un ensemble du schéma, c'est-à-dire un nom regroupant toutes les occurrences d'un ensemble dans une aire. Format général SET NAME IS nom-ensemble Règle de syntaxe "nom-ensemble" doit être unique dans le schéma. Règle générale Un ensemble décrit la hiérarchie des articles d'un fichier séquentiel ou séquentiel indexé. Chaque occurrence de l'article maître est suivie de toutes les occurrences de son article détail. 4.4.17 Clause OWNER Fonction Spécifie le nom d'un article, chaque occurrence de celui-ci déterminant une occurrence de l'ensemble spécifié dans la rubrique SET considérée. Format général OWNER IS nom-article-1. Règles de syntaxe 1. "nom-article-1" doit avoir été préalablement déclaré dans une rubrique RECORD. 2. "nom-article-1" doit être différent des noms d'articles détails spécifiés dans la rubrique SET considérée. Règles générales 4-34 1. La clause OWNER spécifie l'article qui est maître dans l'ensemble décrit. Chaque occurrence de l'article maître implique une occurrence de l'ensemble décrit. 2. Il ne peut y avoir qu'un seul maître dans une occurrence d'ensemble donnée. 47 F2 80UR Rev02 Définition des schémas 4.4.18 Clause MEMBER Fonction Spécifie le nom d'un article dont les occurrences sont détails dans les occurrences de l'ensemble spécifié dans la rubrique SET considérée. Format général MEMBER IS nom-article-2 [MEMBER IS nom-article-3.] ... Règles de syntaxe 1. La clause MEMBER est obligatoire pour chaque article pouvant être détail de l'ensemble décrit. 2. Un ensemble peut comporter plusieurs articles détails. 3. Un article ne peut être détail que d'un seul ensemble. 4. "nom-article-2" doit être différent du nom de l'article maître ("nom-article-1" de la clause OWNER) et du nom des autres articles détails de l'ensemble considéré. En d'autres termes, "nom-article-2" doit être unique dans la rubrique SET. Règle générale Chaque occurrence d'article ne peut figurer que dans une seule occurrence de l'ensemble dont elle est détail, c'est-à-dire quelle ne peut être reliée qu'à une seule occurrence de l'article maître de cet ensemble. 4.4.19 Rubrique END-SCHEMA Fonction Marque la fin d'une description de schéma. Format général END-SCHEMA . Règle générale Cette rubrique est automatiquement générée en cas d'omission. 47 F2 80UR Rev02 4-35 IQS-V4 Guide de l'administrateur 4.5 EXEMPLE La description origine ci-dessous est celle du schéma UFAS séquentiel indexé SCH-CUSTOMERS. Comme le montre la figure 4-1, SCH-CUSTOMERS contient quatre articles réels. Chacun de ces articles porte un nom unique (par exemple ORDERS), qui permet de l'identifier et d'y accéder. Chaque article comporte un certain nombre de zones, qui constituent l'unité élémentaire d'accès à l'information. L'article ORDERS en comporte ainsi cinq : ORD-TYPE ORD-CODE ORD-FILLER ORD-CU-CODE ORD-DATE La hiérarchie des articles réels est définie par des relations appelées ensembles. Dans la figure 4-1, les ensembles sont représentés par des flèches. Ainsi, l'article ORDERS est lié à l'article ORDER-LINES par l'ensemble ORDER-TO-LINE. ORDERS est donc l'article maître de ORDER-LINES et ORDER-LINES l'article détail de ORDERS. SCH-CUSTOMERS est le schéma utilisé dans presque toute la documentation IQS. C'est à partir de ce schéma qu'est définie la vue MY-CUSTOMERS (voir chapitre 8) qui est employée pour les exemples des divers guides utilisateur IQS. CUSTOMERS ORDERS ITEMS C U -C O D E C U -N A M E C U -S T R E E T C U -C IT Y O R D -T YP E O R D -C O D E O R D -F IL LE R O R D -C U -C O D E O R D -D A T E IT-C O D E IT-N AM E IT-S TO C K IT-P R IC E ensemble ORDER-TO-LINE ORDER-LINES LI-T Y P E LI-O R D -C O D E LI-IT -C O D E LI-C U -C O D E LI-Q T Y Figure 4-1. Schéma SCH-CUSTOMERS 4-36 47 F2 80UR Rev02 Définition des schémas S C H E M A N A M E IS S C H -C U S T O M E R S . A R E A N A M E IS A -C U S T O R G A N IZ A T IO N IS IN D E X E D U S IN G K E Y -C U S T . A R E A N A M E IS A -O R D E R O R G A N IZ A T IO N IS IN D E X E D U S IN G K E Y -O R D E R . A R E A N A M E IS A -IT E M O R G A N IZ A T IO N IS IN D E X E D U S IN G K E Y-IT E M . R E C O R D N A M E IS C U S T O M E R S K E Y K E Y -C U S T IS A S C E N D IN G C U -C O D E D U P LIC A T E S N O T K E Y K E Y -C IT Y IS A S C E N D IN G C U -C IT Y D U P LIC A T E S LA S T W IT H IN A -C U S T . 02 C U -C O D E T Y P E IS C H A R A C T E R 6. 02 C U -N A M E T Y P E IS C H A R A C T E R 15. 02 C U -S T R E E T T Y P E IS C H A R A C T E R 20. 02 C U -C IT Y T Y P E IS C H A R A C T E R 15. R E C O R D N A M E IS O R D E R S K E Y K E Y -O R D E R IS A S C E N D IN G O R D -C O D E , O R D -F ILLE R D U P LIC A T E S N O T K E Y K E Y -C U -C O D E IS A S C E N D IN G O R D -C U -C O D E D U P LIC A T E S LA S T K E Y K E Y -IT -C O D E IS A S C E N D IN G O R D -F ILLE R D U P LIC A T E S LA S T R E C O R D -T Y P E D E F IN E D B Y C H E C K O N O R D -T Y P E W IT H IN A -O R D E R . 02 O R D -T Y P E T YP E IS C H A R A C T E R 1 C H E C K IS V A LU E "O ". 02 O R D -C O D E T YP E IS C H A R A C T E R 7. 02 O R D -F ILLE R T Y P E IS C H A R A C T E R 4 C H E C K IS V A LU E " ". 02 O R D -C U -C O D E T Y P E IS C H A R A C T E R 6. 02 O R D -D A T E T Y P E IS C H A R A C T E R 6. R E C O R D N A M E IS O R D E R -LIN E S K E Y K E Y -O R D E R IS A S C E N D IN G LI-O R D -C O D E , LI-IT -C O D E D U P LIC A T E S N O T K E Y K E Y -C U -C O D E IS A S C E N D IN G LI-C U -C O D E D U P LIC A T E S LA S T K E Y K E Y -IT -C O D E IS A S C E N D IN G LI-IT -C O D E D U P LIC A T E S LA S T R E C O R D -T Y P E D E F IN E D B Y C H E C K O N LI-T Y P E W IT H IN A -O R D E R . 02 LI-T Y P E T Y P E IS C H A R A C T E R 1 C H E C K IS V A LU E "L". 02 LI-O R D -C O D E T Y P E IS C H A R A C T E R 7. 02 LI-IT -C O D E T Y P E IS C H A R A C T E R 4. 02 LI-C U -C O D E T Y P E IS C H A R A C T E R 6. 02 LI-Q T Y T Y P E IS U N S IG N E D U N P A C K E D D E C IM A L 5. R E C O R D N A M E IS IT E M S K E Y K E Y -IT E M IS A S C E N D IN G IT -C O D E D U P LIC A T E S N O T W IT H IN A -IT E M . 02 IT -C O D E T Y P E IS C H A R A C T E R 4. 02 IT -N A M E T Y P E IS C H A R A C T E R 20. 02 IT -S T O C K T Y P E IS U N S IG N E D U N P A C K E D D E C IM A L 5. 02 IT -P R IC E T YP E IS U N S IG N E D U N P A C K E D D E C IM A L 6 2. S E T N A M E IS O R D E R -T O -LIN E O W N E R IS O R D E R S . M E M B E R IS O R D E R -LIN E S . E N D -S C H E M A . Figure 4-2. Description origine du schéma SCH-CUSTOMERS 47 F2 80UR Rev02 4-37 IQS-V4 Guide de l'administrateur 4.6 MOTS RESERVES DU LANGAGE DDL ACCESS-CONTROL ACTUAL AFTER ALL ALLOWED ALTER ALWAYS AND ANY APPLICATION ARE AREA AREA-ID ASC ASCENDING AUTO AUTOMATIC BEFORE BIN BINARY BIT BY CALC CALC-KEY CALL CHAR CHARACTER CHECK CLOSE COMMENT COMPLEX CONSTRAINT COPY CURRENT DATA-BASE-KEY DBKEY DEC DECIMAL DECODING DEFINED DELETE 4-38 DEPENDING DESC DESCENDING DIRECT DISPLAY DUP DUPLICATES DURING DYNAMIC ENCODING END END-SCHEMA EQ EQUAL ERROR EXCL EXCLUSIVE FIND FIRST FIXED FLOAT FOR GE GET GT IDENTIFIED IN INDEX INDEXED INSERT INSERTION IS KEY KEYS LAST LE LINKED LOC LOCATION LOCK LOCKS LT MAND MANDATORY MANUAL MEMBER MEMBERS MEMBERSHIP MODE MODIFY NAME NE NEXT NEXCL NONEXCLUSIVE NONNULL NOT NULL OCCURS OF ON ONLY OPEN OPT OPTIONAL OR ORDER ORGANIZATION OWNER PACKED PACKED-2 PERMANENT PIC PICTURE POSTPONED PRIOR PROC PROCEDURE PROCESSABLE PROT PROTECTED RANGE REAL RECORD RECORD-TYPE REMOVE RESULT RETENTION RETR RETRIEVAL SCHEMA SEARCH SELECTION SEQUENCE SEQUENTIAL SET SIGNED SORTED SOURCE STORE STRUCTURAL SYSTEM SYSTEM-DEFAULT TEMP TEMPORARY THEN THIS THROUGH THRU TIMES TO TYPE UNPACKED UNSIGNED UPDATE USING VALUE VIA VIRTUAL WHERE WITHIN 47 F2 80UR Rev02 5. Compilation d'un schéma par MNDD 5.1 INTRODUCTION Le processeur MaintaiN_Data_Description (MNDD) permet de compiler (traduire) le schéma DDL origine, qui devient ainsi un schéma DDL résultant. MNDD est activé soit en interactif (commande GCL), soit en traitement par lots (JCL de lancement de DDPROC). Ce chapitre décrit la syntaxe de : • la commande GCL MNDD, • le JCL de lancement de DDPROC (en traitement par lots), • la commande TRANSLATE de MNDD. La compilation des schémas IDS/II est un cas particulier, qui n'est pas traité dans ce manuel. En effet, outre la description DDL, un schéma IDS/II comporte une description DMCL (langage de gestion des supports) qui décrit les caractéristiques physiques de la base et fournit des informations quantitatives sur cette dernière. Pour plus de précisions, se reporter au Manuel de référence IDS/II Etendu, Volume 1 qui comporte un chapitre sur le processeur MNDD. Un schéma IDS/II résultant qui existe déjà peut être compilé directement au moyen de la commande COMPILE SCHEMA. 47 F2 80UR Rev02 5-1 IQS-V4 Guide de l'administrateur 5.2 MAINTAIN_DATA_DESCRIPTION (MNDD) Objet Le processeur MNDD permet de traduire (et de lister) la description DDL et de générer un objet résultant. Il permet également de convertir un ancien schéma (IDS/II V2) en schéma IDS/II étendu. La commande TRANSLATE est décrite dans ce chapitre. Pour les autres fonctions de MNDD, se reporter à la documentation IDS/II étendu et IOF. Format { MAINTAIN_DATA_DESCRIPTION | MNDD } [ COMFILE = fic78 ] [ COMMAND = car156] [ SLLIB = bib78 ] [ DDLIB = bib78 ] [ DDINLIB = (bib78 [bib78] [bib78]) ] [ PRTFILE = fic78 ] Les commandes de MNDD peuvent être introduites soit directement à la suite du motclé COMMAND, soit indirectement par l'intermédiaire du fichier spécifié par COMFILE. Paramètres 5-2 COMFILE Spécifie un fichier contenant les commandes à exécuter. Il s'agit soit d'une unité de bibliothèque de type DATASSF, soit d'un fichier séquentiel. COMMAND Indique que les commandes sont à introduire directement. SLLIB Bibliothèque origine (SL) contenant la description origine. La valeur implicite est celle spécifiée dans la variable #SLIB ; si celle-ci ne contient aucune valeur, la bibliothèque SL n'est pas affectée. DDLIB Bibliothèque binaire de sortie. La valeur implicite est celle spécifiée dans la variable #BLIB ; si celle-ci ne contient aucune valeur, la bibliothèque BIN de sortie n'est pas affectée. DDINLIB Spécifie une ou plusieurs bibliothèques binaires d'entrée. La valeur implicite est celle spécifiée dans la variable #BINLIB ; si celle-ci ne contient aucune valeur, aucune bibliothèque BIN d'entrée n'est affectée. PRTFILE Spécifie le fichier de sortie. Il peut s'agir d'une unité de bibliothèque ou d'un fichier séquentiel. La valeur implicite est le fichier SYSOUT public. 47 F2 80UR Rev02 Compilation d'un schéma par MNDD 5.3 LANCEMENT DE MNDD PAR L'INTERMEDIAIRE DE DDPROC Objet Le processeur MNDD peut également être appelé en traitement par lots, par l'intermédiaire du JCL de lancement de DDPROC décrit ci-dessous. Format STEP H_DDPROC SYS [options-activité] ... { OPTIONS = ' {commande} ...'; } } { } { ; ASSIGN COMFILE {*rubrique-description-entrées } } { {description-fichier-séquentiel };} [ ASSIGN SLLIB bib78 ; ] [ ASSIGN DDLIB bib78 ; ] [ ASSIGN DDINLIB1 bib78 ; ] [ ASSIGN DDINLIB2 bib78 ; ] [ ASSIGN DDINLIB3 bib78 ; ] [ ASSIGN PRTFILE fic78 ; ] ENDSTEP; Description Le format ci-dessus est assez proche du format GCL utilisé pour appeler directement le processeur MNDD. Les différences sont les suivantes : • le mot-clé COMMAND du GCL est remplacé par la chaîne OPTIONS, • le mot-clé DDINLIB du GCL est remplacé par la clause ASSIGN DDINLIBn, • il n'y a pas de valeurs implicites pour l'affectation des bibliothèques. 47 F2 80UR Rev02 5-3 IQS-V4 Guide de l'administrateur 5.4 COMMANDE TRANSLATE DE MNDD TR AN S LA TE F ILE so us-fich ier O B JE C T so us-fich ier so us-fichier D D LIB S LL IB Figure 5-1. Commande TRANSLATE Objet La commande TRANSLATE permet de compiler (traduire) le schéma origine et de générer un schéma résultant. Format Le format ci-dessous est uniquement applicable au DDL origine d'un schéma UFAS (TYPE=FILE). TRANSLATE TYPE = FILE SOURCE = sous-fichier [OBJECT = {1 | 0}] [REPLACE = {0 | 1}] [CHECK = {COBOL | IQS}] [XREF = {0 | 1}] 5-4 47 F2 80UR Rev02 Compilation d'un schéma par MNDD Paramètres TYPE=FILE Identifie un schéma DDL origine UFAS. SOURCE Spécifie l'unité de bibliothèque contenant le DDL origine. OBJECT OBJECT=1 (valeur implicite) indique qu'un schéma résultant doit être généré. REPLACE REPLACE=1 signifie que le nouveau schéma compilé peut remplacer un schéma de même nom dans la bibliothèque de sortie. REPLACE=0 (valeur implicite) signifie que le nouveau schéma ne doit pas remplacer un éventuel schéma de même nom. S'il en existe un, la compilation échoue. CHECK Si le schéma est à exploiter sous IQS, il faut spécifier CHECK=IQS. Dans ce cas, MNDD vérifie que les noms figurant dans le schéma résultant (nom du schéma, des aires, articles, ensembles, zones et clés) ne sont pas des mots réservés et qu'ils peuvent être utilisés comme identificateurs sous IQS. Si CHECK est omis, aucun contrôle n'est effectué. Le contrôle n'est effectué que pour les mots réservés correspondant à #LANG 0. XREF XREF=1 demande la génération d'une liste des références croisées pour les noms définis par l'utilisateur. Si XREF=0 (valeur implicite), la liste n'est pas générée. 47 F2 80UR Rev02 5-5 IQS-V4 Guide de l'administrateur 5-6 47 F2 80UR Rev02 6. Lancement d'IQS 6.1 INTRODUCTION Ce chapitre décrit les commandes GCL utilisées pour créer, compiler et enregistrer un schéma, et pour exécuter une application IQS. Il présente également les bibliothèques utilisées tout au long du processus. Les informations fournies concernent l'environnement IOF ; les éventuelles différences existant en traitement par lots sont précisées séparément. Dans ce chapitre, tous les fichiers utilisés sont considérés comme permanents et catalogués ; ils ne sont donc cités que par leur nom (le nom de volume et la classe d'appareils de chaque fichier étant automatiquement recherchés dans le catalogue par le système). Les commandes GCL et les données utilisées pour créer un système IQS sont fournies en annexe A. Bibliographie • Pour toute information sur les catalogues, voir le Guide utilisateur de gestion des catalogues. • Pour toute information sur les bibliothèques, voir le Manuel de référence et le Guide utilisateur relatifs à la maintenance des bibliothèques. • Pour tout ce qui concerne les noms de fichiers, se reporter au chapitre 10 du présent manuel. • Pour tout ce qui concerne le GCL, voir les Manuels IOF. • Pour tout ce qui concerne le JCL, voir le Manuel de référence JCL et le Guide utilisateur JCL. • Pour toute information sur les éditeurs de texte, voir le Guide utilisateur TEXT EDITOR et le Guide utilisateur FSE. Pour la liste complète des références bibliographiques, se reporter au Bulletin de logiciel GCOS 7. A noter que les informations concernant l'enregistrement d'une séquence de commandes IQS qui figuraient en fin de chapitre pour la version IQS-V3 ont été supprimées. En effet, le processeur de scénarios disponible sous IQS-V4 permet d'enregistrer facilement des séquences de commandes en vue de leur exécution ultérieure et/ou répétée. Pour plus de détails, se reporter au Manuel de référence IQSV4, Volume 1. 47 F2 80UR Rev02 6-1 IQS-V4 Guide de l'administrateur 6.2 BIBLIOTHEQUES UTILISEES PAR IQS Pour utiliser IQS, seulement deux bibliothèques sont nécessaires : une bibliothèque origine (SL) et une bibliothèque binaire (BIN). Il est néanmoins recommandé de définir en outre une bibliothèque de description des données (DD). La bibliothèque DD est également de type binaire, mais pour faciliter l'exploitation, il est préférable de la définir séparément. Une bibliothèque d'unités compilées (CU) est également nécessaire lorsque IQS/TDS est utilisé, pour les requêtes résultantes compilées. Les bibliothèques sont utilisées comme suit : • La bibliothèque SL permet d'enregistrer les requêtes, les macros, les descriptions d'états et les schémas en langage origine. Lorsqu'elle n'est pas spécifiée, le système tente d'utiliser la bibliothèque origine de sortie implicite (#SLIB), définie au moyen de la commande MWLIB SL. En cas d'impossibilité, il signale une erreur. • La bibliothèque BIN permet d'enregistrer les requêtes, les macros, les descriptions d'états, les formats et les grilles en langage résultant, ainsi que les procédures GCL utilisateur compilées. Lorsqu'elle n'est pas spécifiée, le système tente d'utiliser la bibliothèque binaire de sortie implicite (#BLIB), définie au moyen de la commande MWLIB BIN. En cas d'impossibilité, il signale une erreur. • La bibliothèque DD permet d'enregistrer les schémas, les vues et les structures en langage résultant. Dans tous les exemples de ce chapitre, on considère que ces trois bibliothèques existent, sont cataloguées, et que leurs noms sont les suivants : MY.SL1 MY.BIN1 MY.DDL1 pour la bibliothèque origine pour la première bibliothèque binaire pour la bibliothèque de description de données En GCL, il est possible de déclarer des bibliothèques de travail pour toute la durée de la session. Celles-ci sont utilisées implicitement par les processeurs lorsqu'aucune autre bibliothèque n'a été spécifiée lors de leur appel. Cette possibilité vaut également pour IQS ; elle peut donc être utilisée pour simplifier l'appel du processeur IQS. Les bibliothèques de sortie sont déclarées au moyen de la commande GCL MWLIB, et les bibliothèques d'entrée au moyen de la commande GCL MWINLIB. Par exemple, les trois bibliothèques citées ci-dessus peuvent être déclarées au moyen des commandes suivantes : S: S: S: MWLIB SL MY.SL1; MWLIB BIN MY.BIN1; MWINLIB BIN (MY.DDL1, MY.BIN1); Pour ne pas avoir à introduire ces commandes au début de chaque session, il est possible de les intégrer à la séquence de lancement GCL. 6-2 47 F2 80UR Rev02 Lancement d'IQS Tableau 6-1. Bibliothèques IQS Nom de fichier interne D D LIB 1 D D LIB 2 D D LIB 3 Les v ues, les structures et les schém as résultants sont enregistrés dans D D LIB 1. L'itinéraire de recherche des objets utilisés en entrée est D D LIB 1, D D LIB 2, D D LIB 3. S eule D D LIB 1 est utilisée en sortie. S LLIB Les requêtes, m acros, descriptions d'états et scénarios origine sont enregistrés dans S LLIB . B IN LIB Les requêtes, m acro et descriptions d'états et form ats résultants sont enregistrés dans B IN LIB . C U LIB Les requêtes com pilées à utiliser sous T D S sont enregistrés dans C U LIB . Variables GCL #S LIB B ibliothè que im plicite pour S LLIB : contient tous les objets origines. #B LIB B ibliothè que im plicite pour B IN LIB : contient les grille s résultante et les pro cédures G C L utilisateur com p ilées. #B IN LIB 1 #B IN LIB 2 #B IN LIB 3 L'itiné raire de recherche des g rilles et procédures G C L résultantes u tilisées e n entrée, est #B LIB , #B IN LIB 1, #B IN LIB 2, #B IN LIB 3 . #C LIB B ibliothè que im plicite pour C U LIB . 47 F2 80UR Rev02 6-3 IQS-V4 Guide de l'administrateur 6.3 CREATION DES BIBLIOTHEQUES La commande BUILD_LIBRARY permet de créer les bibliothèques nécessaires à l'utilisation d'IQS. Sa syntaxe est donnée dans le Manuel de référence de l'utilisateur IOF, Volume 2. La création des trois bibliothèques mentionnées dans ce chapitre est illustrée dans les exemples qui suivent. S: BUILD_LIBRARY LIB= MY.SL1:MYVOL1:MS/D500 SIZE= 10 MEMBERS= 500 INCRSIZE= 2; Cet exemple illustre la création de la bibliothèque SL cataloguée MY.SL1 dans le volume MYVOL de classe d'appareils MS/D500. Sa taille initiale est de 10 cylindres, sa taille d'incrément de 2 cylindres et son répertoire est prévu pour 500 unités. Les paramètres FILESTAT et TYPE sont omis car leurs valeurs implicites (FILESTAT=CAT et TYPE=SL) conviennent. S: BUILD_LIBRARY LIB= MY.BIN1:MYVOL1:MS/D500 SIZE= 10 MEMBERS= 500 TYPE= BIN INCRSIZE= 2; Cette commande crée la bibliothèque BIN cataloguée MY.BIN1 dans le volume MYVOL de classe d'appareils MS/M452. A l'exception de son type, ses caractéristiques sont les mêmes que celles de MY.SL1. S: BUILD_LIBRARY LIB= MY.DDL1:MYVOL1:MS/D500 SIZE= 10 MEMBERS= 500 TYPE= BIN INCRSIZE= 2; Cette commande crée une deuxième bibliothèque BIN cataloguée MY.DDL1 dans le volume MYVOL1 de classe d'appareils MS/D500. 6-4 47 F2 80UR Rev02 Lancement d'IQS 6.4 CREATION D'UN SCHEMA Avant de compiler un schéma, il faut avoir enregistré sa version origine dans une unité de la bibliothèque SL. L'éditeur utilisé peut être TEXT EDITOR ou FSE. L'exemple ci-dessous illustre l'utilisation de TEXT EDITOR. (1) EDIT; (2) I (3) saisie du schéma XXX XXX XXX (4) / (5) W SCHEMA-NAME (6) / Cet exemple est commenté ligne par ligne dans le tableau qui suit. Numéro de ligne 1 2 3 4 5 6 Description Appel de l'éditeur TEXT EDITOR de GCOS 7. Demande des fonctions de saisie de TEXT EDITOR. Saisie du schéma origine (voir chapitre 4). Fin de saisie indiquée par une barre oblique (/) au début de la ligne. Ecriture du contenu de l'espace de travail de TEXT EDITOR dans l'unité SCHEMA-NAME de la bibliothèque origine MY.SL1 (bibliothèque SL de travail), c'est-à-dire enregistrement du schéma origine. Sortie de TEXT EDITOR. Les fonctions de TEXT EDITOR permettent également de corriger les erreurs qui ont pu se produire lors de la saisie du schéma origine. 6.5 COMPILATION DU SCHEMA POUR FICHIER UFAS PAR MNDD (DDPROC) Une fois enregistré, le schéma origine doit être compilé par MNDD (DDPROC), comme indiqué au chapitre 5. Un schéma résultant DDL est alors produit, puis enregistré dans une bibliothèque binaire afin qu'IQS puisse y accéder. La préparation d'un schéma résultant en vue de son exploitation sous IQS est décrite au chapitre 7. Remarque : 47 F2 80UR Rev02 Lorsqu'un schéma a déjà été compilé par MNDD (DDPROC) et n'a pas été modifié depuis, il n'est pas nécessaire de le recompiler. C'est généralement le cas pour les utilisateurs IDS/II. 6-5 IQS-V4 Guide de l'administrateur 6.6 APPEL DU PROCESSEUR IQS Le processeur IQS peut être appelé de plusieurs façons : • soit en introduisant directement la commande GCL IQS et ses paramètres en interactif (en omettant les paramètres dont la valeur implicite convient), • soit en enregistrant la commande IQS et ses paramètres dans une unité de bibliothèque, puis en l'exécutant au moyen d'une directive GCL ALTER_INPUT (abréviation AI), • soit en créant une procédure GCL (avec ou sans introduction de paramètres au moment de l'exécution), appelée en frappant son nom. Ces trois possibilités sont présentées dans les pages qui suivent. 6.6.1 Exécution de la commande IQS en interactif La commande GCL IQS doit être exécutée au niveau système (S:). En mode menu, elle doit être sélectionnée dans le menu approprié. En mode ligne, elle doit être introduite avec tous ses paramètres suivis de leur valeur ou bien être introduite avec un point d'interrogation (IQS?) afin d'obtenir des guidages pour les paramètres (dans ce cas, la variable système #NOVICE doit être égale à 0 et la variable système #MENU à 1). La syntaxe de la commande IQS est la suivante : IQS [DDLIB=(bib-78 [bib-78 [bib-78]])] [SLLIB=bib-78] [BINLIB=bib-78] [CULIB=bib-78] [ {FILE1 | AREA1} =nom-8] [ASG1=(paramètres-affectation-fichier)] [ALC1=(paramètres-réservation-espace)] [DEF1=(paramètres-définition-fichier)] [OUT1=(paramètres-édition-sorties)] . . . [ {FILE8 | AREA8} =nom-8] [ASG8=(paramètres-affectation-fichier)] [ALC8=(paramètres-réservation-espace)] [DEF8=(paramètres-définition-fichier)] [OUT8=(paramètres-édition-sorties)] ---------------------------------------------------------------- 6-6 47 F2 80UR Rev02 Lancement d'IQS [ {FILE9 | AREA9} =nom-8] [ASG9=(paramètres-affectation-fichier)] [ALC9=(paramètres-réservation-espace)] [DEF9=(paramètres-définition-fichier)] [OUT9=(paramètres-édition-sorties)] . . . [ {FILE21 | AREA21} =nom-8] [ASG21=(paramètres-affectation-fichier)] [ALC21=(paramètres-réservation-espace)] [DEF21=(paramètres-définition-fichier)] [OUT21=(paramètres-édition-sorties)] { TRB } [ { } = déclencheur-avant-niveau-session] { TRIGGER_BEFORE } { TRA [ { { TRIGGER_AFTER } } = déclencheur-après-niveau-session] } { 240 } [ SIZE = { } ] { déc-8 } { 50 } [ POOLSIZE = { } ] { déc-8 } { 200 } [ NUMLOCK = { } ] { déc-8 } { 16384 } [ DDSIZE = { } ] { déc-5 } { 16384 } [ SLSIZE = { } ] { déc-5 } { 16384 } [ BINSIZE = { } ] { déc-5 } { 16384 } [ CUSIZE = { } ] { déc-5 } { 16 } [ DDNB = { } ] { déc-2 } { 32 } [ SLNB = { } ] { déc-2 } 47 F2 80UR Rev02 6-7 IQS-V4 Guide de l'administrateur { 64 } [ BINNB = { } ] { déc-2 } { 7 } [ CUNB = { } ] { déc-2 } [PRTFILE=fic-78 [COMFILE=fic-78] [LINES=déc-8] [CPTIME=déc-8] [ELAPTIME=déc-4] [REPEAT=bool] [SORTSIZE=déc-3] [SORTFILE=fic-78] {RESIDENT} [ SORTVOL={ } ] {vol-20 } Paramètres Certains des paramètres d'appel du processeur IQS sont également décrits en détail dans le Manuel de référence de l'utilisateur IOF. Les paramètres du format figurant en dessous de la ligne pointillée sont cachés. Pour obtenir les guidages correspondants, frapper + dans le champ action. 6-8 IQS Nom de la commande d'appel du processeur IQS. Lorsqu'un point d'interrogation est introduit après la commande, le système fournit des guidages pour chaque option, à concurrence de huit fichiers. DDLIB Identification des bibliothèques binaires (trois au maximum) contenant les schémas, les vues standard et les structures IQS. Lorsque cette option est omise, le système utilise les bibliothèques d'entrée implicites (#BINLIBn) définies par la commande MWINLIB BIN ; si ces bibliothèques n'ont pas été définies, il signale une erreur. A noter que DDLIB1 est utilisée comme bibliothèque de sortie pour ranger les schémas, les vues et les structures IQS ; elle doit donc être affectée explicitement si des structures ou des vues standard doivent être sauvegardées au cours de la session IQS. SLLIB Identification de la bibliothèque source contenant les requêtes, les scripts, les macros et les rapports. Lorsque cette option est omise, le système utilise la bibliothèque de sortie implicite (#SLIB) définie par MWLIB SL ; si cette bibliothèque n'a pas été définie, il signale une erreur. BINLIB Identification de la bibliothèque binaire contenant les objets IQS autres que les schémas, les vues standard et les structures. Lorsque cette option est omise, le système utilise la bibliothèque de sortie implicite (#BLIB) définie par MWLIB BIN ; si cette bibliothèque n'a pas été définie, il signale une erreur. 47 F2 80UR Rev02 Lancement d'IQS CULIB Identification de la bibliothèque CU dans laquelle sont enregistrées les requêtes compilées ou de laquelle elles sont extraites. Lorsque cette option est omise, le système utilise la bibliothèque CU de sortie implicite (#CLIB) définie par MWLIB CU ; si cette bibliothèque n'a pas été définie, il signale une erreur. FILEn AREAn Nom de fichier interne (nfi) soit d'un fichier de données réel décrit par un schéma, soit d'un fichier utilisateur (utilisé par la Gestion des fichiers IQS), soit d'un fichier SYSOUT (utilisé par PRINT). Pour ces fichiers, le paramètre ASGn est obligatoire et les paramètres ALCn, DEFn et OUTn facultatifs. ASGn Description du fichier auquel est affecté le nom de fichier interne spécifié dans FILEn ou AREAn. Ce groupe de paramètres spécifie le nom de fichier externe, le mode d'accès et le mode de partage du fichier, ainsi que les options de montage des volumes. ALCn Groupe de paramètres de réservation de place pour le fichier désigné par FILEn. DEFn Groupe de paramètres qui définit plus précisément le fichier affecté et les options de traitement. L'option pouvant être utilisée pour IQS est JOURNAL=BEFORE, en association avec l'option SHARE=MONITOR du groupe de paramètres ASGn et l'option REPEAT. Voir également les paramètres NBBUF et BUFPOOL au chapitre 13. OUTn Groupe de paramètres d'édition des sorties pour les fichiers SYSOUT associés aux fichiers FILEn. TRB Spécifie une requête à activer juste après l'initialisation du processeur IQS. La requête constitue un déclencheur "avant" niveau session. Ce paramètre n'a pas de valeur implicite. TRA Spécifie une requête à activer juste après l'arrêt du processeur IQS. La requête constitue un déclencheur "après" niveau session. Ce paramètre n'a pas de valeur implicite. SIZE Espace d'exécution de l'activité IQS (en Ko). Valeur conseillée = POOLSIZE + 150. Valeur implicite = 240. POOLSIZE Taille maximum (en Ko) du pool de tampons UFAS associé à l'activité IQS. La valeur de POOLSIZE ne peut pas dépasser celle de SIZE ; elle est implicitement de 50. 47 F2 80UR Rev02 6-9 IQS-V4 Guide de l'administrateur 6-10 NUMLOCK Nombre maximum de verrous à utiliser pour chaque commande ou requête IQS. Le nombre implicite est 200. Un verrou = un CI. Les verrous s'appliquent à tous les fichiers du groupe de process. Pour déterminer la valeur de NUMLOCK, il faut donc comptabiliser le nombre de verrous utilisés par tous les fichiers du groupe de process. Pour ce faire, additionner toutes les valeurs "n" fournies dans le JOR par le message GAC01. MAXLOCKCOUNT=n. Si le nombre de verrous spécifiés dans NUMLOCK est insuffisant, il y arrêt prématuré avec émission du message d'erreur COUNTOV. DDSIZE Taille, en octets, de chaque segment à utiliser pour les schémas, les vues standard et les structures. Valeur maximum = 32767. Valeur implicite = 16384. SLSIZE Taille, en octets, de chaque segment à utiliser pour les requêtes, macros , scénarios et descriptions d'états origine. Valeur maximum = 32767. Valeur implicite = 16384. BINSIZE Taille, en octets, de chaque segment à utiliser pour les requêtes, macros, descriptions d'états et formats résultants. Valeur implicite = 16384. CUSIZE Taille, en octets, de chaque segment à utiliser pour les requêtes compilées. Valeur maximum = 32767. Valeur implicite = 16384. DDNB Nombre maximum de segments utilisable pour le chargement des schémas, vues et structures. Valeur maximum = 64. Valeur implicite = 16. SLNB Nombre maximum de segments utilisable pour le chargement des requêtes, macros, scénarios et descriptions d'états origine. Valeur maximum = 64. Valeur implicite = 32. BINNB Nombre maximum de segments utilisable pour le chargement des requêtes, macros, descriptions d'états et formats résultants. Valeur maximum = 64. Valeur implicite = 64. CUNB Nombre maximum de segments utilisable pour la chargement des requêtes compilées exploitables sous IQS/TDS. Valeur maximum = 7. Valeur implicite = 7. SARF Non utilisé sous IQS-V4. VERSION Non utilisé sous IQS-V4. 47 F2 80UR Rev02 Lancement d'IQS Les paramètres ci-dessous définissent les ressources utilisées lorsque le système fonctionne en traitement par lots : PRTFILE Fichier à utiliser pour les sorties. COMFILE Fichier contenant les commandes ou instructions IQS à exécuter. LINES Nombre maximum d'articles pouvant être écrits dans chaque fichier SYSOUT par le processeur IQS. Si le nombre spécifié dans LINES est dépassé, il y a arrêt anormal du processeur, avec émission du code retour ERLMOV. Implicitement, le nombre d'articles est illimité. CPTIME Temps CPU maximum alloué au processeur IQS (en millièmes de minutes). En cas de dépassement, il y a arrêt anormal du processeur avec émission du code retour ERLMOV. Implicitement, le temps CPU réservé au processeur IQS est illimité. ELAPTIME Temps maximum autorisé pour le processeur IQS, exprimé en minutes. En cas de dépassement, il y a arrêt anormal du processeur avec émission du code retour ERLMOV. Implicitement, aucune limite de temps n'est fixée. REPEAT Si REPEAT = 0 (valeur implicite), le processeur IQS ne comporte aucun point de synchronisation et ne peut donc pas être relancé. Les appels aux points de reprise sont alors considérés comme fictifs. Si REPEAT = 1, le processeur IQS utilise les fonctions de relance sur point de reprise. Un point de synchronisation est prévu, généralement en début de programme ou à un point de reprise. La relance est donc possible en cas d'arrêt anormal du processeur. Les paramètres ci-dessous définissent les caractéristiques du fichier de tri utilisé par les commandes IQS SORT, WRITE et EXTRACT (et les instructions équivalentes du langage de requêtes). SORTSIZE Nombre de cylindres utilisés comme espace de travail pour le tri. Si SORTSIZE=0, l'espace de travail est en mémoire principale. SORTFILE Fichier de travail utilisé pour le tri. SORTVOL Volume dans lequel l'espace de travail doit être réservé. Implicitement, la réservation s'effectue sur un disque résidant. 47 F2 80UR Rev02 6-11 IQS-V4 Guide de l'administrateur Exemple d'utilisation de la commande IQS : S: IQS FILE1=IND-A ASG1=.IND-DATA; Cette commande appelle le processeur IQS et affecte un fichier de données. Aucune bibliothèque n'ayant été spécifiée (omission des paramètres DDLIB, SLLIB et BINLIB), le système utilisera les bibliothèques implicites, c'est-à-dire les bibliothèques de travail qui ont été présentées au paragraphe 6.2. DDLIB1 n'étant pas affectée explicitement, il sera impossible d'y enregistrer des objets IQS (vues, structures) au cours de la session IQS. 6.6.2 Exécution de la commande IQS via une unité de bibliothèque Au lieu d'introduire directement la commande IQS au niveau système (S:), il est possible de l'enregistrer avec tous ses paramètres dans une unité de bibliothèque SL, au moyen de TEXT EDITOR ou de FSE. La commande peut ensuite être exécutée au moyen de la directive ALTER_INPUT (abréviation AI). Le résultat est le même que si elle avait été introduite directement au niveau S:. Cette méthode est particulièrement adaptée lorsque les bibliothèques et/ou fichiers à utiliser sous IQS sont spécifiques à une application. Exemple : (1) EDIT; (2) I (3) IQS DDLIB= MY.OWN.DD1 SLLIB= MY.OWN.SL1 BINLIB= MY.OWN.BIN1 FILE1= IND1 FILE2= IND2 FILE3= IND3 ... (4) (5) (6) (7) ASG1= MY.OWN.DATA1 ASG2= MY.OWN.DATA2 ASG3= MY.OWN.DATA3 / W (DAT) MYIQS1 / AI MYIQS1 LIB= MY.SL1 LIST=1; Appel de l'éditeur TEXT EDITOR de GCOS 7 avec MY.SL1 comme bibliothèque SL implicite. Le texte est saisi, sauvegardé sous MYIQS1 et exécuté. La directive ALTER_INPUT est décrite dans la documentation IOF. Si vous exécutez IQS avec d'autres bibliothèques et/ou fichiers de données, créez une unité de bibliothèque similaire pour chaque appel d'IQS. Vous pouvez alors exécuter l'unité appropriée chaque fois que vous appelez IQS. Vous vous épargnez la saisie d'une longue liste de fichiers/bibliothèques à chaque fois. Pour une installation, il peut y avoir plusieurs bibliothèques et/ou fichiers exploitables avec IQS. Une unité de bibliothèque peut être créée pour chaque appel IQS requerrant différents objets. Chaque utilisateur, groupe d'utilisateurs ou projet peut ainsi avoir une commande adaptée à ses besoins spécifiques. 6-12 47 F2 80UR Rev02 Lancement d'IQS 6.6.3 Création d'une procédure GCL Au lieu de placer la commande IQS et ses paramètres dans une unité de bibliothèque, vous pouvez créer une procédure GCL. Ces procédures sont créées et gérées par le processeur MAINTAIN_COMMAND, présenté plusieur fois dans la documentation IOF. Les procédures GCL peuvent soit être saisies au moyen de TEXT EDITOR, compilées puis enregistrées dans une bibliothèque binaire, soit être saisies au moyen d'un éditeur ligne simplifié (LEDIT), puis directement sauvegardées dans une bibliothèque binaire. Si vous le souhaitez, vous pouvez définir ces procédures de sorte que l'utilisateur soit invité à indiquer la valeur des paramètres au moment de l'exécution. Les exemples ci-dessous illustrent les différentes façons de créer une procédure GCL. Les numéros de ligne entre parenthèses permettent de se référer aux explications qui suivent, mais ne font pas partie des exemples. Le paramètre GCLFORM est considéré comme ayant la valeur FREE dans tous ces exemples. Exemple de création d'une procédure personnalisée (1) : (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16) (17) 47 F2 80UR Rev02 S: MNCMD; >>>10:24 MNCMD 20.00 14 C: EDIT; R: A I: PROC I: NAME=(OUR-IQS IQS6) I: PROMPT='Lancement du processeur IQS'; I: CALL IQS I: DDLIB=MY.DDL1 I: BINLIB=MY.BIN1 I: SLLIB=MY.SL1 I: FILE1=IND-A ASG1=MY.IND-DATA I: FILE2=SEQ-A ASG2=MY.SEQ-DATA I: FILE3=IDS-A ASG3=MY-IDS-DATA I: FILE4=WF1 ASG4=MY.WF1; I: ENDPROC; I: / R: ^,$J R: W(CMD)OUR-IQS R: / C: DOMAIN IOF; C: COMPILE OUR-IQS BRIEF; OUR-IQS (NOV 16, 1988 10:30) C: / <<<10:31 S: 6-13 IQS-V4 Guide de l'administrateur Numéro de ligne 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Description Appel du processeur MAINTAIN_COMMAND, qui utilise une bibliothèque origine de sortie et une bibliothèque binaire de sortie. Dans cet exemple, il utilise les bibliothèques implicites (#SLIB et #BLIB). Appel de l'éditeur de texte (EDIT) de GCOS 7. Début du mode saisie. Début de la procédure GCL. Nom et pseudonyme de la procédure. Définition du texte explicatif à visualiser dans le menu où figure la procédure. Première commande de la procédure. Spécification des paramètres de la commande (désignation des bibliothèques et fichiers). Fin de la commande, signalée par un point-virgule. Fin de la procédure. Fin du mode saisie. Renumérotation de l'espace de travail. Sauvegarde de l'espace de travail dans une unité de bibliothèque origine. Sortie de EDIT. Définition du domaine IOF à partir duquel la procédure est exécutée. Compilation de la procédure et enregistrement dans la bibliothèque binaire (#BLIB, c'est-à-dire MY.BIN1). Sortie du processeur MAINTAIN_COMMAND. La procédure est maintenant exploitable, tant que la bibliothèque MY.BIN1 où elle est enregistrée est l'une des bibliothèques d'entrée implicites (#BINLIB - Voir plus loin). Exemple de menu de commandes GCL dans le domaine IOF : 1/12 1 COMPILE_LINK 2 COMPOSE_IOF 3 EXECUTE_PROG 4 IQS_TITLE_HELPS IQS 5 MAINTAIN_SM_PRIVE 6 OUR-IQS IOF CONK COPOF E546 TIQS Compilation et édition de liens d'un programme COBOL Rédaction d'un manuel de l'utilisateur de terminal IOF Exécution d'un programme COBOL édité Procédure personnalisée de formatage des textes HELP MSP IQS6 Modification / Configuration / Chargement SM Lancement du processeur IQS La procédure GCL OUR-IQS (pseudonyme IQS6) a été ajoutée à la liste des procédures disponibles dans le domaine IOF. 6-14 47 F2 80UR Rev02 Lancement d'IQS Exemple de création d'une procédure personnalisée (2) : Il est également possible de créer des procédures GCL au moyen de la commande CREATE du processeur MAINTAIN_COMMAND. L'exemple ci-dessous déclare l'utilisation du journal Avant, de fichiers gérés par GAC, et contient une commande IQS LET permettant à l'utilisateur de travailler en mode menu sous IQS (même si les variables système GCL #MENU et #NOVICE sont à zéro dans son profil). Sample procedure set-up (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) (14) (15) (16) (17) 47 F2 80UR Rev02 S: S: >>> C: MWLIB BIN .IQS.BLIB-O MNCMD; 11:07 MNCMD 20.00 22 -1 CREATE; 10:PROC UP-IQS PROMPT='Lancement projet IQS' LOCK=1; 20:IQS SLLIB=.IQS.SLLIB-0 DDLIB=.IQS.DDLIB-0 BINLIB=.IQS.BINLIB-0 FILE1=BLIB ASG1=.IQS.BLIB-0 FILE2=A-CUST ASG2= (.IQS.CUSTOMERS,SHARE=MONITOR) DEF2=(JOURNAL=BEFORE) FILE3=A-ORDER ASG3= (.IQS.ORDERS,SHARE=MONITOR) DEF3=(JOURNAL=BEFORE) FILE4=A-ITEM ASG4=(.IQS.ITEMS, SHARE= MONITOR) DEF4=(JOURNAL=BEFORE); 29:LET #NOVICE VALUE=1; 30:ENDPROC; 40:/ C: DOMAIN IOF; C: SAVE; C: / <<<11:14 S: MWINLIB BIN .IQS.BLIB-0 S: UP-IQS; 6-15 IQS-V4 Guide de l'administrateur Numéro de ligne 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 6-16 Description Déclaration de la bibliothèque binaire de sortie. La procédure créée y sera enregistrée. Appel du processeur MAINTAIN_COMMAND. CREATE permet de saisir directement la procédure. La commande PROC donne le nom de la procédure. Le paramètre PROMPT définit le texte explicatif à visualiser dans le menu où figure la procédure. LOCK=1 signifie que l'accès à la procédure n'est autorisé, sous MAINTAIN_COMMAND, qu'à celui qui l'a créée. Première commande de la procédure. Identification de la bibliothèque origine et de la bibliothèque de schémas résultants. Identification de la bibliothèque binaire. FILE1 définit la bibliothèque BLIB devant contenir les grilles utilisateur et les procédures GCL. A-CUST est un nom de fichier interne identifiant un fichier de données. Ce nom est celui d'une aire déclarée dans le schéma. ASG2 déclare le nom de fichier externe d'un fichier disque. Ce fichier est géré par GAC (SHARE=MONITOR). Remarque : Ceci implique que la rubrique de catalogue correspondant au fichier comporte SHARE=MONITOR ou SHARE=UNSPEC. Les informations inscrites au catalogue prévalent toujours en cas de conflit (pour plus de précisions sur les catalogues, voir le Guide de gestion des catalogues). Protection du fichier par le journal Avant. L'utilisateur peut travailler directement en mode menu. Fin de la procédure. Fin du mode saisie. Définition du domaine dans lequel la procédure doit être utilisée, en l'occurrence IOF. Sauvegarde de la procédure dans la bibliothèque binaire de sortie. Déclaration de la bibliothèque binaire d'entrée. La procédure est donc utilisable au niveau S:. Lancement de la procédure. 47 F2 80UR Rev02 Lancement d'IQS 6.6.4 Méthodes de lancement d'une session IQS Toutes les méthodes utilisables pour lancer une session IQS, y compris le JCL, sont présentées ci-dessous. • Exécution d'une procédure GCL, définie comme suit : PROC NAME=.....; IQS ...... ..........; ENDPROC; • Exécution d'une commande GCL (4 possibilités) : EXEC_PG H_IQS ..... ; IQS? (des écrans de guidage s'affichent) IQS <chaîne-de-paramètres> AI <sous-fichier-IQS> • Exécution d'une séquence JCL : STEP H_IQS ... ; .............. .............. ENDSTEP; (mode traitement par lots) Les diverses possibilités sont présentées ci-après de manière générale. 6.6.4.1 Exécution d'une procédure GCL L'utilisation des procédures GCL a déjà été expliquée plus haut dans ce chapitre. Une procédure GCL : • est créée et compilée sous le processeur MAINTAIN_COMMAND de GCOS 7 ; • peut être appelée en interactif sous IOF ; • apparaît dans le menu IOF comme toute autre commande utilisateur. 6.6.4.2 Exécution d'une commande GCL Le lancement d'IQS peut être demandé de l'une des deux façons suivantes : • en exécutant le module chargeable H_IQS ; • en exécutant la commande IQS directement ; 47 F2 80UR Rev02 6-17 IQS-V4 Guide de l'administrateur Exemple d'exécution du module chargeable H_IQS : Dans ses grandes lignes, le processus est le suivant : E X E C _P G H _IQ S F ILE 1= S LLIB FILE2=DDLIB1 FILE3=BINLIB FILE4=BLIB FILE5=nfi LIB=SYS.HLMLIB SIZE=n POOLSIZE=n ASG1=(FILENAME=nom,SHARE=DIR) ASG2= ASG3= ASG4= ASG5=('nfe',ACCESS=..., SHARE..........) FILEn= . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FILEp=nfi ASGn=(nom:supports:classe-d'appareils) ASGq=(.GHPRINT..OUT1) ; FILEq= ABCD SELECT vue OPEN ASG PRT PF TO ABCD ASG PRT PR1 TO SYSO UT (SYSOUT privé) (S Y S O U T stan dard) etc. Notez que : ABCD est un nom de fichier interne. PF est un nom de fichier logique IQS SYSOUT est un nom de fichier réservé. Exemple d'exécution directe de la commande IQS : La commande IQS peut être introduite en mode menu, ou enregistrée dans une bibliothèque SL. IQS DDLIB=<bib> BINLIB=<bib> SLLIB=<bib> FILE1=<nfi> ASG1=....; IQS? Dans les deux cas, son exécution peut être lancée par la directive ALTER_INPUT (abréviation AI) : AI <nom-unité-bib> <nom-bib-SL> 6-18 47 F2 80UR Rev02 Lancement d'IQS 6.6.4.3 Exécution d'une séquence JCL Les séquences JCL sont enregistrées dans une bibliothèque SL. Exemple de séquence JCL : STEP H_IQS SYS; SIZE n POOLSIZE=n; ASSIGN SLLIB nom SHARE=DIR; (bibliothèques IQS) ASSIGN DDLIB1 nom SHARE=DIR; ASSIGN BINLIB nom SHARE=DIR; ASSIGN BLIB nom SHARE=DIR; ASSIGN aire nfe ACCESS=..........; (fichiers bdd IQS) ......................; ENDSTEP; SELECT vue OPEN USE FORM nom ON RECORD nom ....................... Exemple d'activité JCL avec utilisation de fichiers permanents et du fichier SYSOUT : STEP H IQS SYS; .................... ASSIGN A-CUST .IQS.CUSTOMERS ACCESS=READ; ............................. A S S IG N A -O R D .IQ S .O R D E R S S H A R E = O N E W R IT E A C C E S S = R E A D ; ................... ASSIGN FSEQ SEQFLE MD=nom-vol DVC=cl-app ; (fichiers permanents) { A S S IG N F P R .LIB P R T S U B F ILE = O U T -1 S H A R E = D IR ; S Y S O U T F P R M D = nom -v ol D V C = cl-app W H E N = D E F E R N A M E = E 1; (S Y S O U T perm anent) ENDSTEP; S E L E C T v ue O PEN ASSIGN PRT PRINT1 TO FPR ASSIGN FILE1 TO FSEQ U S E F O R M C U S -F M O N R E C O R D C U S T O M E R S U S E F O R M O R D -F M O N R E C O R D O R D E R S Remarque : Dans une requête, il est possible d'insérer les instructions suivantes : WRITE... TO FILE1 (écriture dans le fichier permanent SEQFLE) PRINT... [TO PRINTER] (visualisation à l'écran) PRINT... TO PRINT1 (envoi dans le SYSOUT permanent OUT-1) A noter que les grilles utilisateur peuvent uniquement être employées en mode menu. 47 F2 80UR Rev02 6-19 IQS-V4 Guide de l'administrateur Exemple de séquence JCL utilisant des fichiers IDS/II : $JOB IQSXXX HOLDOUT; OUTVAL CLASS=B; STEP H_IQS SYS.HLMLIB OPTIONS='DDSIZE=10240 DDNB=16 SLSIZE=10240 SLNB=32 BINSIZE=10240 BINNB=64 SORTSIZE=20 SORTVOL=EROS:MS/D500 '; SIZE 900 POOLSIZE=650; ASSIGN DDLIB1 DDS.BINLIB; ASSIGN BINLIB FAST.BINIQS; ASSIGN SLLIB FAST.IQS; ASSIGN AREA1 DDS.AREA1 ACCESS=READ; DEFINE AREA1 READLOCK=STAT; ASSIGN AREA2 DDS.AREA2 ACCESS=READ; DEFINE AREA2 READLOCK=STAT; ASSIGN AREA3 DDS.AREA3 ACCESS=READ; DEFINE AREA3 READLOCK=STAT; ASSIGN AREA4 DDS.AREA4 ACCESS=READ; DEFINE AREA4 READLOCK=STAT; ASSIGN SORTFILE TEMP.SORTFILE FILESTAT=TEMPRY DVC=MS/D500 MD=EROS; ALLOCATE SORTFILE SIZE=1O INCRSIZE=2 UNIT=CYL; SORTWORK WKDISK=(SIZE=20 DVC=MS/D500 MD=EROS); ASSIGN IDSOPT FAST.JCL SUBFILE=IQS-IDSOPT; ASSIGN PRTFILE FAST.PROG SUBFILE=IQS-PRT; ASSIGN COMFILE *IQS; ENDSTEP; $INPUT IQS; ASSIGN SORTFILE TO IFN SORTFILE SELECT ITEM OPEN GO ITEM-LIST EXPLIST QUIT $ENDINPUT; $ENDJOB; 6-20 47 F2 80UR Rev02 Lancement d'IQS 6.7 UTILISATION D'IQS EN TRAITEMENT PAR LOTS Les requêtes utilisateur peuvent : • nécessiter l'accès exclusif à des fichiers exploitables par d'autres applications, • provoquer une surcharge au niveau des ressources système, • ne pas exiger un traitement immédiat, • monopoliser le terminal pendant des périodes prolongées. Traiter ces travaux par lots élimine ces problèmes : les tâches sont exécutées en arrière-plan pendant la journée, ou pendant la nuit, sans perturber les activités courantes. La directive GCL ENTER_JOB_REQ (abréviation EJR ou EJ) permet d'exécuter la commande IQS en traitement par lots. Elle est décrite dans la documentation IOF. EJ soumet un travail en traitement par lots sous la forme d'un travail JCL, ou sous la forme d'une procédure GCL. Si vous spécifiez EJ MEMBERS=<nom-unité-bibliothèque>, le JCL contenu dans <nomunité-bibliothèque > est soumis comme travail en traitement par lots. Si vous spécifiez EJ PROC=<nom-procédure>, la procédure GCL <nom-procédure> est exécutée en mode absent (en traitement par lots). Les commandes IQS à exécuter (qui sont normalement introduites directement au terminal) sont placées dans un fichier de commandes (fichier séquentiel ou unité de bibliothèque SL) dont le nom est spécifié par le paramètre COMFILE. 47 F2 80UR Rev02 6-21 IQS-V4 Guide de l'administrateur 6.7.1 Soumission sous forme d'une procédure GCL La procédure GCL devant lancer IQS est créée et compilée sous le processeur MAINTAIN_COMMAND. Il est possible de l'appeler comme suit : EJ PROC=<nom-procédure> [nom-bibliothèque]; Exemple de procédure GCL : PROC NAME=(IQS-X) PROMPT='IQS en traitement par lots'.....; IQS DDLIB=....... BINLIB=...... SLLIB=....... FILE1=...... ASG1=..... FILEn=...... ASGn=..... PRTFILE = MY.SL..RESULTS (pour les sorties de la session IQS) COMFILE = MY.SL..IQS-COM ; (requêtes à exécuter, etc.) ENDPROC; S: EJ PROC=IQS-X; Remarque : En cas d'omission du paramètre SYSOUT standard qui est utilisé. Les (nombre d'exemplaires, informations etc.) peuvent alors être spécifiées PRTOUT. PRTFILE, c'est le fichier caractéristiques des sorties figurant dans la bannière, au moyen du paramètre Si la bibliothèque n'est pas cataloguée, le format de COMFILE ou PRTFILE est le suivant : COMFILE/PRTFILE = <bib-sl>..<nom-unité>:support:cl-app$UNCAT 6-22 47 F2 80UR Rev02 Lancement d'IQS 6.7.1.1 COMFILE Les commandes IQS à exécuter doivent être placées dans un fichier de commandes, spécifié par le paramètre COMFILE dans la procédure GCL : créez une unité dans une bibliothèque SL, comme suit : COMFILE = MY.SL1..<nom-unité-bibliothèque> Exemple de contenu d'un fichier COMFILE : (1) (2) (3) (4) (5) (6) (7) (8) (9) (10) (11) (12) (13) SELECT STUDENT-SEQ OPEN AUTO ACCEPT @NAME RETRIEVE STUDENT WHERE S-NAME = @NAME PRINT STUDENT SHORT END / GO STEVENSON EXEC MULLER QUIT Les numéros de ligne entre parenthèses permettent de se référer aux explications qui suivent, mais ne font pas partie des exemples. Numéro de ligne 1 et 2 3 4à7 8 9 10 11 12 13 6.7.1.2 Description Sélection du schéma STUDENT-SEQ et ouverture de ses aires. Spécification du mode de saisie AUTO pour l'introduction des instructions en langage de requêtes. Texte de la requête (demande d'introduction du nom d'un étudiant et impression de l'article correspondant). Sortie du mode de saisie AUTO et retour au niveau commande (V:). Compilation et exécution de la requête. Introduction de données pour l'instruction ACCEPT. Deuxième exécution de la requête (sans compilation, puisque celle-ci est déjà faite). Introduction de données pour l'instruction ACCEPT. Fin de la session IQS. PRTFILE Le paramètre PRTFILE permet de spécifier un fichier de sortie utilisateur dans lequel consigner les résultats de la session IQS. Exemple : PRTFILE= MY.SL1..IQS-OUT Les résultats de la session IQS sont rangés dans l'unité IQS-OUT de la bibliothèque SL MY.SL1. 47 F2 80UR Rev02 6-23 IQS-V4 Guide de l'administrateur 6.7.2 Soumission sous forme d'un travail JCL Le lancement d'IQS peut être effectué par une séquence d'ordres JCL enregistrés : • soit dans une bibliothèque SL, • soit dans une rubrique de description d'entrées. La séquence JCL peut être appelée comme suit : EJ MEMBERS=<nom-unité-bibliothèque> <nom-bibliothèque>; 6.7.2.1 COMFILE Les commandes IQS à exécuter doivent être placées dans un fichier de commandes (COMFILE), comme précédemment pour la procédure GCL. Exemple : Une unité est créée dans une bibliothèque SL et sauvegardée sous le nom de IQSCOM. Le fichier de commandes est déclaré dans le JCL comme suit : ASSIGN COMFILE *IQS-COM; ou ASSIGN COMFILE 6.7.2.2 .mysl, SUBFILE=IQS-COM; PRTFILE Le paramètre PRTFILE permet de spécifier un fichier de sortie utilisateur dans lequel consigner les résultats de la session IQS, comme précédemment pour la procédure GCL. Affectation du fichier PRTFILE dans le JCL : ASSIGN PRTFILE .mysl SUBFILE=RESULTS; (SYSOUT privé) ou SYSOUT PRTFILE; 6-24 (SYSOUT public) 47 F2 80UR Rev02 Lancement d'IQS 6.7.2.3 STATUS et code SEV En traitement par lots, l'exécution d'une commande prend fin lorsque se produit une erreur IQS de gravité 3 (***). Cette erreur n'interrompt pas l'étape IQS et la commande suivante du fichier COMFILE est exécutée. A la fin de l'étape, IQS définit le code STATUS de fin d'étape comme suit : Niveau maximal d'erreur IQS pas erreur * ** *** STATUS 0 100 1000 2000 SEV 0 1 2 2 Vous pouvez modifier la séquence d'exécution JCL via l'instruction JCL JUMP. Ce qui permet de tester le code d'état défini par l'étape IQS. Par exemple : STEP H_IQS ... ... ENDSTEP; comment 'Abort IQS step on *** error'; JUMP ER3 STATUS EQ 2000; ... ER3: LET SEV 3; ... 47 F2 80UR Rev02 6-25 IQS-V4 Guide de l'administrateur 6.7.2.4 Traitement de STATUS en mode par lots IQS-V4.2 et antérieures Un message d'erreur IQS commence par zéro, un, deux ou trois astérisques (*). Le nombre d'astérisques est proportionnel à la gravité de l'erreur. Au début de la session IQS, la variable #STATUS est réinitialisée à zéro. Une variable IQS interne reçoit le plus haut niveau de gravité des erreurs détectées au cours d'une session IQS en mode BATCH. A l'issue de l'étape, cette valeur détermine la valeur #STATUS ou #SEV résultante : #STATUS 0 100 1000 2000 #SEV 0 1 2 2 signification pas d'erreur ( ) observation (*) avertissement (**) erreur (***) et une instruction JCL $JUMP peut le tester. Remarque : La gestion des bases de données ou de la mémoire peut générer des erreurs fatales, arrêtant prématutément la session IQS. Les erreurs fatales ne sont pas examinées ici. Lorsqu'une erreur (***) est détectée par une commande, la séquence globale peut être correcte. Par exemple, la séquence : DROP QUERY <nom-requête> BIN COMPILE QUERY <nom-requête> EXEC <nom-requête>DROP QUERY <nom-requête> BIN COMPILE QUERY <nom-requête> EXEC <nom-requête> peut être correcte lorsque la commande DROP édite l'erreur : *** <nom-requête> not found in binary library. Mais la séquence est incorrecte si l'erreur est éditée par la commande EXEC. 6-26 47 F2 80UR Rev02 Lancement d'IQS IQS-V4.3 et ultérieures Ce qui suit a été introduit à partir de IQS-V4.3 pour assurer la compatibilité.ascendante Il s'agit d'un niveau "erreur grave" générant un SEV3 en fin d'étape. L'utilisateur peut également interrompre l'exécution de COMFILE lorsqu'une erreur grave est détectée. La variable GCL #STATUS est gérée par IQS sur détection d'erreur, et peut être traitée par l'utilisateur. A l'issue de l'exécution de chaque commande (aux niveaux C: et V:), IQS lit #STATUS et met à jour la variable IQS interne contenant le plus haut niveau de gravité des erreurs. Cas 1 L'utilisateur peut arrêter prématurément l'étape IQS (SEV3) : Lorsqu'une erreur (***) est détectée au cours de la session IQS après exécution d'une commande (au niveau C: ou V:) ou d'une instruction : LET @MESSAGE = "SYSOPT ERROR SEV3" IQS force à 10 000 la valeur de #STATUS (#SEV = 3) à l'issue de l'étape IQS, et l'étape est interrompue prématurément. Remarque : L'option "SYSOPT ERROR SEV3" transforme une erreur de niveau (***) en "erreur grave". Cas 2 L'utilisateur peut arrêter l'exécution de comfile et arrêter prématurément l'étape IQS : Lorsqu'une erreur (***) est détectée après exécution d'une commande ou d'une instruction : LET @MESSAGE = "SYSOPT ERROR SEV3 STOP" Les commandes suivantes (au niveau C: ou V:) du fichier COMFILE ne sont pas exécutées et IQS force à 10000 la valeur de #STATUS à l'issue de l'étape. Remarque : 47 F2 80UR Rev02 Les commandes non exécutées sont imprimées sur PRTFILE. 6-27 IQS-V4 Guide de l'administrateur Cas 3 L'utilisateur et IQS gèrent la variable GCL #STATUS : • Un utilisateur peut lire la variable GCL #STATUS, au cours d'une session IQS en mode BATCH : LET @MESSAGE = "READVAR #STATUS" lit #STATUS, la variable @MESSAGE contient le résultat de READVAR, et une requête peut la tester. Une requête peut également changer la valeur de #STATUS : LET @MESSAGE = "MODVAR #STATUS 12345" ou, plus généralement : LET @MESSAGE = CONC( "MODVAR #STATUS " , @VAL-STATUS ) Ceci est enregistré par IQS (voir ci-après) avant exécution de la commande suivante (au niveau C: ou V:). • Lorsque IQS édite un message d'erreur, la variable GCL #STATUS est mise à jour. Pour déterminer la nouvelle valeur de la variable GCL #STATUS, IQS tient compte de la valeur actuelle de #STATUS et du niveau maximal de gravité de toutes les erreurs détectées (voir tableau 6-2). • Lorsqu'IQS lit la commande suivante de COMFILE (au niveau C: ou V:), IQS lit la variable GCL #STATUS, interprète sa valeur (voir tableau 6-3) et met à jour la variable IQS interne contenant le niveau d'erreur le plus élevé. IQS peut arrêter l'exécution de la commande si une commande ou une instruction précédente : LET @MESSAGE = "SYSOPT ERROR SEV3 STOP " a été exécutée et que #STATUS est supérieur ou égal à 10 000. Le tableau 6-4 indique la valeur de #STATUS à l'issue de l'étape IQS. Ceci dépend des événements générés pendant la session IQS en mode BATCH. Remarque : 6-28 La valeur #STATUS est réinitialisée à zéro lorsqu'une commande appelle le processeur EDIT, FSE ou FORMGEN, ou qu'une directive GCL est exécutée. #STATUS peut également être réinitialisé à zéro par l'utilisateur. Cette action est sans incidence sur la fin de l'étape. Seule la variable IQS interne contenant le niveau d'erreur le plus élevé est utilisée pour définir la variable #STATUS à la fin de l'étape. 47 F2 80UR Rev02 Lancement d'IQS Tableau 6-2. Relations entre messages d'erreur IQS, niveaux d'erreur IQS et #STATUS Message IQS pas d'erreur (ex Fast start) * observ ** avertissement *** erreur *** erreur & SYSOPT ERROR SEV3 Niveau d'erreur IQS 0 1 2 3 10 STATUS IQS 0 100 1000 2000 10000 Chaque message IQS détermine un niveau de gravité d'erreur. Une variable globale interne à IQS contient le niveau d'erreur le plus élevé. Sa valeur détermine une valeur "IQS STATUS". La nouvelle valeur de #STATUS est la valeur maximale entre "IQS STATUS" et le #STATUS actuel. Tableau 6-3. Interprétation de #STATUS au niveau commande GCL #STATUS 0<= valeur < 100 100<= valeur < 1000 1000<= valeur <10000 10000<=valeur Niveau d'erreur IQS 0 1 2 10 Signification observation avertissement erreur grave Ce tableau permet de mettre à jour la variable IQS interne contenant le niveau d'erreur le plus élevé. Tableau 6-4. #STATUS et #SEV à la fin de l'étape Niveau de gravité d'erreur le plus élevé 0 1 2 3 3 10 47 F2 80UR Rev02 SYSOPT ERROR SEV3 #STATUS SEV inutilisé inutilisé inutilisé non oui inutilisé 0 100 1000 2000 10000 10000 SEV0 SEV1 SEV2 SEV2 SEV3 SEV3 6-29 IQS-V4 Guide de l'administrateur 6-30 47 F2 80UR Rev02 7. Compilation des schémas sous IQS 7.1 GENERALITES Pour qu'un schéma puisse être utilisé sous IQS, il doit avoir été compilé sous IQS au moyen de la commande COMPILE SCHEMA. Un schéma est inutilisable sous IQS tant que cette opération n'a pas été effectuée. Les schémas ayant été modifiés doivent également être de nouveau compilés au moyen de COMPILE SCHEMA pour être utilisables. A ce sujet, voir le chapitre 12 qui traite de la recompilation. La commande COMPILE SCHEMA utilise en entrée un schéma résultant (voir la remarque ci-dessous) issu de la compilation par MNDD et produit en sortie un schéma résultant IQS (type SDD). Ce dernier est enregistré dans la bibliothèque DDLIB1 et de là peut être utilisé par des commandes et des requêtes IQS au cours d'une session IQS. COMPILE SCHEMA permet d'établir des droits d'accès sur le schéma. Si aucun nom de projet n'est spécifié, tous les projets peuvent accéder au schéma (valeur implicite) mais l'utilisateur qui émet la commande devient propriétaire du schéma. Il peut alors supprimer les droits d'accès implicites au moyen de la commande REVOKE *, puis accorder les droits d'accès à un projet particulier (commande GRANT). Se reporter au chapitre 3. Remarque : 47 F2 80UR Rev02 Le type d'objet est fonction du type de schéma : TYPE=DD pour un schéma compilé par H_DDLPROC ; TYPE=DD3 pour un schéma UFAS compilé sous MNDD ; TYPE=DD2 pour un schéma IDS/II compilé sous MNDD ; TYPE=DD4 pour un sousschéma IDS/II compilé sous MNDD 7-1 IQS-V4 Guide de l'administrateur S chém a non utilisable sous IQ S (type DD ) S o rtie d e MNDD ou DD PRO C Commande COMPILE SCHEMA S chém a utilisable sous IQ S (type S D D ) requêtes IQS commandes IQS Figure 7-1. Compilation des schémas pour utilisation sous IQS La compilation d'un schéma sous IQS n'est possible que si sa compilation par MNDD a abouti. Lorsqu'un schéma est modifié et recompilé par MNDD, il doit également être recompilé sous IQS. Lorsqu'un schéma est recompilé, toutes les vues et requêtes qui y font référence sont invalidées et doivent à leur tour être recompilées même si le schéma n'a pas été modifié. Par contre, en cas d'émission d'une commande GRANT ou REVOKE, la recompilation des vues et requêtes associées au schéma est inutile. 7-2 47 F2 80UR Rev02 Compilation des schémas sous IQS 7.2 NOUVEAUX SCHEMAS Lorsqu'un nouveau schéma a été créé, l'utilisateur doit procéder comme suit : 7.3 1. Compilation du schéma origine par MNDD pour obtenir un schéma résultant. 2. Compilation du schéma résultant produit au point 1 au moyen de la commande IQS COMPILE SCHEMA pour obtenir un schéma résultant utilisable sous IQS. SCHEMAS EXISTANTS Lorsqu'un schéma existant a été modifié, l'utilisateur doit procéder comme suit : 1. Recompilation du schéma origine par MNDD pour obtenir un nouveau schéma résultant. 2. Recompilation du schéma résultant (type DD) produit au point 1 au moyen de la commande IQS COMPILE SCHEMA pour obtenir un schéma résultant utilisable sous IQS. 3. Recompilation de toutes les vues faisant référence au schéma au moyen de la commande IQS RECOMPILE VIEW. 4. Recompilation de toutes les requêtes qui font référence au schéma ou à l'une des vues recompilées au point 3, au moyen de la commande IQS RECOMPILE QUERY. Les commandes COMPILE SCHEMA, RECOMPILE VIEW, RECOMPILE MACRO et RECOMPILE QUERY sont décrites en détail dans le Manuel de référence IQS-V4, Volume 1. La recompilation des vues est traitée au chapitre 12 du présent manuel. 47 F2 80UR Rev02 7-3 IQS-V4 Guide de l'administrateur 7-4 47 F2 80UR Rev02 8. Vues standard 8.1 INTRODUCTION Les vues standard (également appelées vues enregistrées ou vues statiques) offrent aux utilisateurs un accès aisé, mais néanmoins contrôlé aux données de production. Dans la plupart des cas, ces données sont organisées sous forme d'un ensemble de fichiers IDS/II intégrés et/ou de fichiers UFAS. En fait, il existe cinq organisations possibles pour les données IQS : • UFAS séquentiel, • UFAS séquentiel indexé, • UFAS relatif, • IDS/II intégré, • unité de bibliothèque SL. Dans ce chapitre sont présentées certaines des possibilités offertes par le processeur de vues et notamment : • la définition d'une vue standard, • la mise à jour d'une vue standard, • la définition de droits d'accès pour protéger des zones, des articles ou la totalité d'une vue, • la définition de jointures et de zones additionnelles, • la visualisation d'informations sur une vue et sur le ou les schémas sous-jacents. Tous les exemples sont présentés en mode ligne. 47 F2 80UR Rev02 8-1 IQS-V4 Guide de l'administrateur 8.1.1 Bases de données et vues standard Une vue standard est une description logique et relationnelle d'une base de données. Les bases de données peuvent être : • réelles (IDS/II), • virtuelles (fichiers UFAS décrits par un schéma). Toute base de données est décrite par un schéma qui représente les données telles qu'elles sont enregistrées. Les schémas sont parfois appelés vues primaires car ils constituent la source de données physique sous-jacente. Les vues standard : • peuvent être adaptées aux besoins des utilisateurs, • sont indépendantes de la structure physique des données, • assurent l'indépendance entre les opérations effectuées par des requêtes et celles effectuées par des commandes IQS d'une part, et entre les requêtes et l'implantation physique des données d'autre part, • sont définies par l'administrateur IQS (ou par tout autre utilisateur autorisé). Une vue standard peut être utilisée comme un schéma en la sélectionnant au niveau C:. Lorsqu'une vue standard est le reflet d'une vue relationnelle d'une base de données CODASYL (IDS/II), seule l'extraction de données est autorisée. Pour la mise à jour d'une base de données CODASYL, il faut utiliser une requête associée au schéma. Pour extraire des données d'une base de données CODASYL, deux solutions sont possibles : • préparer des requêtes et les compiler après sélection de la vue standard ou du schéma correspondant, • émettre une commande REVIEW? du langage non procédural, en spécifiant le paramètre RETRIEVAL, afin de consulter la vue en mode extraction uniquement. Les vues standard permettent d'établir des jointures sur égalité de valeurs entre des bases de données distinctes (c'est-à-dire entre des zones décrites par des schémas différents). 8-2 47 F2 80UR Rev02 Vues standard 8.1.2 Autres types de vues Une vue courante est un objet ayant été sélectionné pour utilisation au cours de la session IQS au moyen de commandes SELECT et OPEN. Ces commandes sont décrites dans les guides utilisateur IQS. A noter que la vue courante peut être un schéma, une vue standard ou une structure (une structure étant un schéma monoarticle, voir chapitre 9). 8.1.3 Vue dynamique Une vue dynamique est le résultat obtenu à l'issue de commandes REVIEW, RETAIN, INCLUDE et CLEAR (langage non procédural) ou de boucles RETRIEVE ... WHERE ...END (langage procédural). Elle n'est jamais enregistrée et représente un "instantané" du travail effectué. 8.1.4 Remarques à l'intention des utilisateurs TDS Les vues standard peuvent être utilisées pour l'accès aux données de production et leur modification à partir d'applications IQS/TDS. Les informations à ce sujet figurent dans le guide de l'utilisateur IQS-V4/TDS. Les vues standard définies sous IQS sont utilisables aussi bien sous IOF que sous TDS. Pour être accessibles sous IQS/TDS, elles doivent seulement être déclarées dans le programme de génération de TDS. 47 F2 80UR Rev02 8-3 IQS-V4 Guide de l'administrateur 8.2 ARTICLE LOGIQUE Une vue standard se compose d'un ou plusieurs articles logiques, eux-mêmes constitués d'une ou plusieurs zones logiques. Un article logique : • a pour origine un ou plusieurs articles réels (dérivation), • peut définir de nouvelles relations entre des articles par spécification de l'égalité de valeur de deux zones (jointure), • peut définir un ensemble simple ou complexe de critères pour restreindre la visibilité des données (condition restrictive). Exemple : Jointure sur égalité de valeur Ici, deux articles réels (CUSTOMERS et ORDERS) sont à l'origine d'un article logique (CUS-ORD) de la vue. CUSTOMERS et ORDERS peuvent provenir du même schéma ou de deux schémas différents. CUS-ORD se compose de zones provenant ou non du schéma, mais seules les occurrences définies par la jointure sur égalité de valeurs sont retenues. CUSTOMERS CU-CODE ORDERS jo inture ORD-CU-COD CUS-ORD La jointure permet de ne retenir que les occurrences dans lesquelles les valeurs des zones CU-CODE et ORD-CU-CODE sont identiques : W HERE C U -C O D E = O R D -C U -C OD E jointure Le choix des jointures est important pour de bonnes performances du système IQS. Les deux zones sur lesquelles est établie la jointure doivent avoir le même type et la même longueur. 8-4 47 F2 80UR Rev02 Vues standard Exemple : Condition restrictive W HERE C U -C O DE = O R D -C U-C O D E AND C U-C ITY = "LO N D O N " jo intu re co nditio n restric tiv e Le format général d'une condition WHERE est le suivant : WHERE <zone-1> <opérateur> <zone-2> • zone-1 doit être une clé UFAS ou une clé CALC IDS/II, • il y a optimisation du traitement, c'est-à-dire accès direct si : - pour IDS/II, la clé n'est spécifiée qu'avec l'opérateur =, - pour UFAS indexé, la clé, ou une partie de la clé, est spécifiée avec les opérateurs =, BEGINS, BETWEEN, <, <=, > ou >=, - les conditions ne sont pas reliées par OR. Des jointures ne doivent être établies que lorsqu'elles sont nécessaires. Par exemple, dans la vue MAKE-ORDERS définie plus loin dans ce chapitre, il n'est pas utile de définir de jointure entre les zones dérivées des articles ORDERS et ORDER-LINES puisque ces deux articles sont déjà reliés par un ensemble dans le schéma. Pour plus de détails sur la condition WHERE, se reporter aux descriptions de la commande RETAIN et de l'instruction RETRIEVE qui figurent respectivement dans le Volume 1 et Volume 2 du Manuel de référence IQS-V4. Voir également le chapitre 2 de ces deux volumes pour les règles concernant les expressions. La définition d'une vue doit toujours commencer par la définition de son article racine. 47 F2 80UR Rev02 8-5 IQS-V4 Guide de l'administrateur 8.3 ZONE LOGIQUE Les zones logiques : • peuvent être constituées à partir des zones réelles provenant des articles réels à l'origine de l'article logique, • peuvent être réordonnées, • peuvent être des zones réelles renommées, • peuvent être de nouvelles zones (zones additionnelles) dont la valeur est définie ou calculée. Exemple : Zone additionnelle La zone IT-AMOUNT est obtenue par calcul sur la valeur de deux zones réelles. IT-A M O U N T = LI-QTY * IT-P R IC E zo n e ad ditio nn elle calc u l Exemple : Zone renommée La zone IT-CODE est identique à la zone réelle LI-IT-CODE. IT-C O D E nouv ea u no m 8-6 = LI-IT-C O D E nom d e la zone réelle 47 F2 80UR Rev02 Vues standard 8.4 8.4.1 CONCEPTION ET CREATION D'UNE VUE STANDARD Généralités Une vue standard peut être : • une vue "plate" ou monoarticle, c'est-à-dire constituée d'un seul article logique, • une vue linéaire dont les articles sont organisés selon une hiérarchie verticale, • une vue arborescente comportant un ou plusieurs articles racines. Une vue standard ne peut pas être : • une vue en réseau de structure complexe comme cela est possible sous IDS/II. Par exemple, un article détail ne peut pas être subordonné à deux articles maîtres. Cette restriction a pour but de faciliter l'accès aux données sous IQS. La figure 8-1 illustre trois types de vues standard définies à partir de schémas et de structure. Le nombre de schémas/structures à partir desquels peut être définie une vue doit être compris entre 1 et 15. 47 F2 80UR Rev02 8-7 IQS-V4 Guide de l'administrateur Schéma A Schéma B Structure i Schéma n dérivation Article racine 1 Article logique unique VIEW-1 = vue "plate" Ensemble Ensemble m p Article détail et maître Article détail Article racine 2 Ensemble z Article détail Ensemble q Article détail et maître Ensemble v Article détail VIEW-2 = vue arborescente (avec 2 articles racines) Ensemble y Article détail Article logique 1 Ensemble a Article logique 2 Ensemble b Article logique 3 VIEW-3 = vue linéaire Figure 8-1. Types de vues standard Usage d'une vue monoarticle Les vues monoarticles sont généralement employées lorsqu'aucune mise à jour n'est nécessaire. Elles constituent une bonne solution lorsque la totalité des zones réelles sous-jacentes doivent être consultées. Usage d'une vue linéaire Les vues linéaires sont utilisées pour la mise à jour. Elles sont idéales pour les applications ne devant accéder qu'à certaines parties des articles sous-jacents. Usage d'une vue arborescente Les vues arborescentes sont souvent utilisées pour conserver les structures de données sous-jacentes afin de faciliter l'accès à des applications plus complexes. 8-8 47 F2 80UR Rev02 Vues standard 8.4.2 Exemples de vues standard Les figures ci-dessous illustrent des vues pouvant être définies pour répondre à différents besoins. La figure 8-2 illustre la base de données décrite par le schéma SCH-CUSTOMERS. CUSTOMERS ORDERS ITEMS ORDER-LINES Figure 8-2. Schéma SCH-CUSTOMERS Bien que relativement simple, ce schéma offre plusieurs possibilités. Ci-dessous en sont donnés trois exemples. La figure 8-3 illustre la vue linéaire MY-CUSTOMERS. Cette vue permet par exemple : CUSTOMERS - d'isoler les commandes de certains clients par ville ORDERS - d'analyser les commandes par numéro de client ORDER-LINES & ITEMS - d'effectuer des statistiques sur les commandes des clients Figure 8-3. Vue linéaire MY-CUSTOMERS La figure 8-4 illustre la vue arborescente MY-ORDERS. ORDERS Cette vue permet par exemple : - d e rech erch er le s com m a n des p ass é es à ou a v an t une d ate d onn ée (av e c les info rm atio ns clien t e t/ou prod u it co rresp ond an te s) ORDER-LINES & ITEMS CUSTOMERS - d'analyser les commandes Figure 8-4. Vue arborescente MY-ORDERS 47 F2 80UR Rev02 8-9 IQS-V4 Guide de l'administrateur La figure 8-5 illustre la vue linéaire MY-ITEMS. ITEMS C ette vue perm et par exem ple : ORDER-LINES & ITEMS de rechercher les clients ayant com m andé un produit donné CUSTOMERS d'effectuer une analyse des produits Figure 8-5. Vue linéaire MY-ITEMS Autres exemples d'utilisation des vues Pour retrouver les clients de Londres ayant commandé le produit numéro 1001, il est possible d'utiliser la vue : 8.4.3 MY-CUSTOMERS pour accéder directement à l'information recherchée via une clé (nom de ville, par exemple) MY-ITEMS pour accéder directement à l'information recherchée via une clé (numéro de produit, par exemple). Clés primaires et secondaires Les clés sont d'une grande importance lors de la conception des vues standard. La clé primaire d'un article est la clé principale sur laquelle s'effectuent l'organisation des occurrences et l'accès à ces dernières. Elle est unique. Elle peut se composer d'une ou plusieurs des zones de l'article. Pour les clés primaires, les valeurs en double sont interdites. Les clés secondaires sont également utilisées pour l'organisation des occurrences et l'accès à ces dernières mais elles ne sont pas uniques : chaque article peut comporter plusieurs clés secondaires. Les zones faisant partie d'une clé secondaire peuvent également faire partie de la clé primaire. Pour les clés secondaires, les valeurs en double sont autorisées. Sous IQS, il est conseillé de n'établir des jointures qu'entre des zones de clé afin d'obtenir de meilleures performances. Ces zones doivent bien sûr avoir le même type et la même longueur. Pour une efficacité optimale, les jointures doivent être établies sur la ou les zones constituant la partie la plus à gauche des clés primaires. 8-10 47 F2 80UR Rev02 Vues standard La figure 8-6 reprend le schéma SCH-CUSTOMERS en indiquant les clés. P Aire : A-CUST Aire : A-ORD Aire : A-ITEM CUSTOMERS ORDERS ITEMS C U-C O D E O R D -TYP E IT-C O D E O R D -C O D E IT-N AM E C U-ST RE E T O R D -FILLE R IT-S TO C K C U-C ITY O R D -C U -C O D E C U-N A M E S P P IT-P R IC E S O R D -D A TE E N S EM BLE O R D E R -TO -LIN E ORDER-LINES LI-TYP E P { LI-O R D -C O D E S LI-IT-C O D E LI-C U -C O D E S LI-Q TY Aire : A-ORD P Clé primaire S Clé secondaire Jointure primaire Jointure secondaire (une jointure prim aire existant déjà dans la m êm e hiérarchie) Figure 8-6. Schéma SCH-CUSTOMERS avec clés primaires et secondaires 47 F2 80UR Rev02 8-11 IQS-V4 Guide de l'administrateur La vue MY-CUSTOMERS utilise les possibilités de jointures offertes par le schéma comme le montre la figure 8-7. C U S TO M E R S C U -C O D E C U -N A M E C U -S TR E E T C U -C ITY Origine dans le schéma CUSTOMERS Ensemble CU-ORD ORDERS O R D -C O D E O R D -D A T E ORDERS W H ER E O R D -C U -C O D E = C U -C O D E Ensemble ORD-IT ITEMS IT -C O D E IT -N A M E IT -Q T Y IT -P R IC E IT -A M O U N T O R D E R -LIN E S , IT E M S W HERE IT -C O D E =LI-IT-C O D E Figure 8-7. Vue linéaire MY-CUSTOMERS avec son origine 8-12 47 F2 80UR Rev02 Vues standard 8.4.4 Définition de la vue MY-CUSTOMERS Il est conseillé au lecteur de lire d'abord le chapitre 8 du Manuel de référence IQS-V4, Volume 1. Il y trouvera les principes de définition des vues ainsi que la syntaxe des sous-commandes du Processeur de vues. La suite de ce paragraphe montre comment a été définie la vue MY-CUSTOMERS. Définition des attributs de la vue Action L'utilisateur doit émettre une commande DEFINE VIEW (DFVW) au niveau IQS (C:). "view privacy" Droits d'accès de l'ensemble de la vue. FACULTATIF. "view description" Description de la vue. Texte de 60 caractères maximum qui sera visualisé à l'émission d'une commande DISPLAY VIEW ou PRINT VIEW. Egalement accessible par l'intermédiaire de la métabase. FACULTATIF. "list project(s)" Liste des projets ayant le droit d'accéder à la vue. La valeur implicite est *, c'est-à-dire tous les projets. IQS ne vérifie par la validité des noms de projets à ce stade. FACULTATIF. "schema names" Liste des schémas/structures (rangés dans les bibliothèques DDLIB1, DDLIB2 et DDLIB3) sur lesquels repose la vue. Minimum 1, maximum 15. OBLIGATOIRE. Résultat Le Processeur de vues est appelé et le guidage W: est visualisé. Exemple : Définition de la vue MY-CUSTOMERS C: DEFINE VIEW MY-CUSTOMERS view privacy (0 RETRIEVAL 1 UPDATE) (0) : view description : Vue de la base CUSTOMERS + list project(s) (*) : SD3 + schema names : SCH-CUSTOMERS W: 47 F2 80UR Rev02 0 8-13 IQS-V4 Guide de l'administrateur Création d'un article logique Action L'utilisateur doit émettre une sous-commande CREATE RECORD (CR) en spécifiant le nom de l'article logique à créer. C'est ce nom qui sera utilisé dans des instructions RETRIEVE et dans des commandes RETAIN et REVIEW. "set where record is member" Nom de l'ensemble déterminant la relation entre l'article logique et son article maître. OBLIGATOIRE SI L'ARTICLE N'EST PAS UN ARTICLE RACINE. "owner record name" Nom de l'article qui est maître de l'article logique. OBLIGATOIRE SI L'ARTICLE N'EST PAS UN ARTICLE RACINE. "record derivation" Origine de l'article, c'est-à-dire article(s) réel(s) dont est dérivé l'article logique. OBLIGATOIRE. "item list" Liste des zones devant composer l'article logique, dérivées des articles réels qui en constituent l'origine. Si rien n'est spécifié, toutes les zones des articles à l'origine de l'article logique sont retenues. FACULTATIF. "record privacy" Droits d'accès de l'article logique. Ils doivent être compatibles avec ceux définis pour la vue. FACULTATIF. "record description" Description de l'article. FACULTATIF. Résultat Chaque article logique créé est conservé en mémoire jusqu'à ce que la vue soit sauvegardée. Exemple : Création des articles logiques CUSTOMERS, ORDERS et ITEMS. W: CR CUSTOMERS + record derivation : CUSTOMERS item list (CUSTOMERS) : record privacy (0 RETRIEVAL 1 UPDATE 2 INSERT/DELETE) (0) : record description : Infos clients W: W: CR ORDERS set where record is member : CU-ORD owner record name : CUSTOMERS + record derivation : ORDERS WHERE ORD-CU-CODE = CU-CODE item list (ORDERS) : ORD-CODE,ORD-DATE record privacy (0 RETRIEVAL 1 UPDATE 2 INSERT/DELETE) (0) : record description : Code et date commande W: W: CR ITEMS set where record is member : ORD-IT owner record name : ORDERS + record derivation : ORDER-LINES, ITEMS -: WHERE IT-CODE=LI-IT-CODE item list (ORDER-LINES, ITEMS) : IT-CODE, IT-NAME, -: IT-QTY=LI-QTY, IT-PRICE, IT-AMOUNT=LI-QTY*IT-PRICE record privacy (0 RETRIEVAL 1 UPDATE 2 INSERT/DELETE) (0) : record description : Infos produit par code W: 8-14 47 F2 80UR Rev02 Vues standard Sauvegarde de la vue Action L'utilisateur doit émettre une sous-commande SAVE VIEW (SV) une fois tous les articles logiques créés. Résultat Si la définition de la vue ne comporte pas d'incohérences, la vue est sauvegardée dans la bibliothèque affectée à DDLIB1. Sinon, l'utilisateur doit corriger les erreurs avant de sauvegarder de nouveau. Exemple : W: SV 8.4.5 Définition de la vue MAKE-ORDERS La vue MAKE-ORDERS illustre l'importance des clés et des jointures. C'est une vue linéaire composée de deux articles dont l'objectif est de permettre l'accès aux données par produit, puis par commande concernant ce produit. La figure 8-8. montre comment la vue est créée à partir du schéma sous-jacent. 47 F2 80UR Rev02 8-15 IQS-V4 Guide de l'administrateur SCH-CUSTOMERS Jo inture su r C U -C O D E O R D -C U -C O D E CUSTOMERS ORDERS ITEMS ORDER-LINES Jointure sur IT-C O D E LI-IT-C O D E PRODUCT E nsem ble P R -O R ORDER-PREP MAKE-ORDERS O rig in e d e s zo n e s Dérivées de ORDER-LINES: LI-QTY ORD-CODE Dérivées de ORDERS: Dérivées de CUSTOMERS: C U -C O D E C U -N A M E C U -C IT Y Figure 8-8. Vue MAKE-ORDERS avec son origine A noter les points suivants à propos de la figure 8-8 : • La vue est optimisée car les jointures sont établies sur des zones de clé. • L'article ORDER-PREP a pour origine trois articles réels. • Les jointures entre CUSTOMERS et ORDERS et entre ORDER-LINES et ITEMS sont spécifiées à la création de l'article ORDER-PREP (voir ci-dessous). • Il n'est pas nécessaire d'établir de jointure entre les articles ORDERS et ORDER-LINES car ils sont déjà reliés dans un ensemble au niveau du schéma (voir figure 8-6). 8-16 47 F2 80UR Rev02 Vues standard La définition de la vue MAKE-ORDERS est la suivante : C: DEFINE VIEW MAKE-ORDERS view privacy (0 RETRIEVAL 1 UPDATE) (0) : view description : Vue pour préparation de commandes + schema names : SCH-CUSTOMERS W: CR PRODUCT + record derivation : ITEMS item list (ITEMS) : PR-CODE=IT-CODE, PR-DESC=IT-NAME, -: PR-NO-IN-STOCK=IT-STOCK record privacy (0 RETRIEVAL 1 UPDATE 2 INSERT/DELETE) (0) : record description : Produits en stock et quantité disponible W: W: CR ORDER-PREP set where record is member : PR-OR owner record name : PRODUCT + record derivation : ORDER-LINES,ORDERS,CUSTOMERS -: WHERE LI-IT-CODE=IT-CODE -: AND CU-CODE=ORD-CU-CODE item list (ORDER-LINES, ORDERS, CUSTOMERS) : -: OR-ORD-CODE=ORD-CODE, OR-QTY=LI-QTY, OR-CU-CODE=CU-CODE, -: OR-CU-NAME=CU-NAME, OR-CU-LOCATION=CU-CITY record privacy (0 RETRIEVAL 1 UPDATE 2 INSERT/DELETE) (0) : record description : Préparation des commandes W: SV W: / 47 F2 80UR Rev02 8-17 IQS-V4 Guide de l'administrateur 8.5 MISE A JOUR D'UNE VUE STANDARD Lors de la mise à jour d'une vue au moyen de UPDATE VIEW, il n'est pas possible : • d'ajouter un article maître, • d'ajouter ou de supprimer un schéma ou une structure sous-jacents. Si un schéma sous-jacent à une vue doit être modifié, l'utilisateur doit se reporter au chapitre 12 qui traite de la recompilation. Dans ce cas, une nouvelle vue doit être définie à partir du schéma modifié. UPADTE VIEW permet : • de mettre à jour une vue standard existante, • de créer une nouvelle vue à partir d'une vue existante. 8.5.1 Droits d'accès La sécurité et l'intégrité des données IQS est assurée comme suit : • les fichiers sous-jacents doivent être accessibles en écriture (droit spécifié dans le GCL ou le JCL), • les droits d'accès aux vues standard IQS peuvent être contrôlés par l'intermédiaire de noms de projet GCOS 7, • les droits d'accès à une vue peuvent être "lecture" ou "mise à jour", • les droits d'accès à un article de vue peuvent être "lecture", "mise à jour" ou "insertion/suppression", • les droits d'accès à une zone d'article de vue peuvent être "lecture" ou "mise à jour", • les droits d'accès doivent être compatibles avec ceux définis au niveau nom de projet. Pour plus de détails sur les droits d'accès, voir le chapitre 3 du Guide de l'utilisateur expert, • les valeurs affectables à une zone peuvent être limitées si une clause CHECK a été définie pour la zone dans le schéma (voir chapitre 4). Remarque : 8-18 Pour la mise à jour ou l'insertion de données, les zones d'article logique doivent correspondre exactement à des zones d'article réel afin d'éviter la création d'occurrences de données hors structure. 47 F2 80UR Rev02 Vues standard 8.5.2 Remarques à propos d'IDS/II Les commandes IQS (en mode ligne et en mode menu) permettent de lire des données IDS/II (base IDS/II ou IDS/II + UFAS) via une vue, mais non de les mettre à jour. La mise à jour de données IDS/II (base IDS/II pur ou IDS/II + UFAS) n'est possible qu'au moyen du langage de requêtes, par l'intermédiaire d'un schéma. En principe, les requêtes de mise à jour sont écrites par le personnel informatique. Pour plus de détails sur les différentes opérations de manipulation des données, se reporter à l'annexe D. 8.5.3 Mise à jour des attributs d'une vue Action L'utilisateur doit émettre une commande UPDATE VIEW (UPVW) au niveau IQS (C:), à moins que le Processeur de vues n'ait déjà été appelé. Puis, au niveau W:, il doit émettre une sous-commande UPDATE VIEW ATTRIBUTES (UVA). "view privacy" Nouveaux droits d'accès de la vue. FACULTATIF. "view description" Nouvelle description de la vue. FACULTATIF. Remarque : La liste des schémas sur lesquels repose la vue ne peut pas être modifiée. Exemple : Création d'une nouvelle vue à partir d'une vue existante C: UPDATE VIEW MY-CUSTOMERS NEW NEW-CUSTOMERS W: UVA view privacy (0 RETRIEVAL 1 UPDATE) (0) : 1 view description (Vue de la base CUSTOMERS) : 47 F2 80UR Rev02 8-19 IQS-V4 Guide de l'administrateur 8.5.4 Mise à jour d'un article logique Action L'utilisateur doit émettre une sous-commande UPDATE RECORD (UR) au niveau W:. A noter qu'il est impossible de changer le nom de l'article. "record derivation" Nouvelle origine de l'article. FACULTATIF. "item list" Nouvelle liste des zones. FACULTATIF. "record privacy" Nouveaux droits d'accès de l'article. Ils doivent être compatibles avec ceux de la vue. FACULTATIF. "record description" Nouvelle description de l'article. FACULTATIF. Exemple : Mise à jour d'un article logique W: UR CUSTOMERS + record derivation (CUSTOMERS) : item list (CUSTOMERS) : record privacy (0 RETRIEVAL 1 UPDATE 2 INSERT/DELETE) (0) : 2 record description (Infos clients) : Nouvelles infos clients 8.5.5 Mise à jour d'une zone logique Au départ, les attributs des zones d'un article logique sont définis automatiquement à la création de l'article. Si l'utilisateur ne spécifie rien dans "item list", les zones logiques sont identiques aux zones réelles dont elles prennent les attributs. Ces attributs peuvent être modifiés ultérieurement au moyen de la sous-commande UPDATE ITEM. 8-20 Action L'utilisateur doit émettre une sous-commande UPDATE ITEM (UI) au niveau W:. "item privacy" Droits d'accès de la zone. Ils doivent être compatibles avec ceux de l'article et de la vue. A noter que le Processeur de vues ne vérifie pas si la zone correspondante du schéma sous-jacent est une clé primaire ; si c'est le cas, les demandes de mise à jour (RETRIEVE UPDATE ... MODIFY ou RETRIEVE ... MODIFY END par exemple) n'aboutiront pas. FACULTATIF. "item description" Description de la zone. FACULTATIF. Résultat Les nouveaux attributs sont affectés à la zone de manière permanente dès la sauvegarde de la vue. 47 F2 80UR Rev02 Vues standard Exemple : Mise à jour des droits d'accès d'une zone logique Si les droits d'accès de l'article sont RETRIEVAL (lecture), la mise à jour de ses zones est interdite. W: UI ORD-DATE OF ORDERS item privacy (0 RETRIEVAL 1 UPDATE) (0) : 1 *** Privacy UPDATE forbidden item privacy (0 RETRIEVAL 1 UPDATE) (1) : 0 item description : W: Exemple : Mise à jour d'une zone constituant une clé primaire Il est possible de spécifier les droits d'accès UPDATE (mise à jour) pour une zone logique dérivée d'une zone réelle qui constitue une clé primaire pour un fichier indexé dans le schéma mais toute tentative ultérieure de modification de cette zone sera rejetée. C: V: V: V: V: R: R: SELECT NEW-CUSTOMERS OPEN UPDATE REVIEW UPDATE F CUSTOMERS CUSTOMERS CU-CODE : 12890G CU-NAME : JIM ROACH CU-STREET : 12 SUTTON ROW CU-CITY : GLASGOW R: R: MODIFY CU-CODE = "13888G" *** Updating of primary key forbidden 47 F2 80UR Rev02 8-21 IQS-V4 Guide de l'administrateur Exemple : Mise à jour des droits d'accès d'une zone logique Les zones d'un article dont les droits d'accès sont UPDATE (mise à jour) ou INSERT/DELETE (insertion/suppression) peuvent être protégées individuellement en leur attribuant les droits d'accès RETRIEVAL (lecture). C: UPDATE VIEW NEW-CUSTOMERS W: DV P: DVA DESCRIPTION : Vue de la base CUSTOMERS PRIVACY (0 RETRIEVAL 1 UPDATE) : 1 P: DRD CUSTOMERS DERIVATION : CUSTOMERS PRIVACY (0 RETRIEVAL 1 UPDATE 2 INSERT/DELETE) : 2 DESCRIPTION : Nouvelles infos clients P: / W: UI CU-STREET OF CUSTOMERS item privacy (0 RETRIEVAL 1 UPDATE) (1) : 0 item description : Modification de la zone interdite W: W: Do W: W: C: C: V: V: R: / you want to save ? : yes SV / SELECT NEW-CUSTOMERS OPEN UPDATE REVIEW UPDATE F CUSTOMERS CUSTOMERS CU-CODE : 12890G CU-NAME : JIM ROACH CU-STREET : 12 SUTTON ROW CU-CITY : GLASGOW R: MODIFY CU-STREET = "3 THE RIDINGS" *** Update of CU-STREET forbidden R: MODIFY CU-NAME = "JAMES T ROACH" R: La zone CU-NAME peut être modifiée mais non la zone CU-STREET. 8.5.6 8-22 Nouvelle sauvegarde de la vue Action Après avoir modifié tous les articles, ou à tout autre moment, l'utilisateur doit émettre une sous-commande SAVE VIEW (SV) pour sauvegarder la vue. Résultat Si la vue est cohérente, elle est sauvegardée dans la bibliothèque affectée à DDLIB1. Sinon, l'utilisateur doit corriger les erreurs et essayer de sauvegarder de nouveau. 47 F2 80UR Rev02 Vues standard 8.6 MISE A JOUR DE DONNEES PAR L'INTERMEDIAIRE D'UNE VUE Les usagers des applications IQS ne doivent pas avoir toute liberté d'accès aux schémas. Ils ne doivent pouvoir effectuer des mises à jour, des suppressions et des insertions que par l'intermédiaire de vues standard. Seuls les administrateurs et certains utilisateurs autorisés doivent avoir accès aux schémas. 8.6.1 Sélection d'une vue standard pour la mise à jour Action L'utilisateur doit émettre une commande SELECT au niveau IQS (C:) en spécifiant le nom d'une vue standard. Il doit ensuite émettre une commande OPEN UPDATE puis une commande REVIEW UPDATE pour l'article à mettre à jour. Exemple : Mise à jour de l'article CUSTOMERS de la vue NEW-CUSTOMERS C: SL NEW-CUSTOMERS V: OP UPDATE V: RV UPDATE R: INSERT + record name : CUSTOMERS CUSTOMERS CUSTOMERS CU-CODE : 98765H CU-NAME : TERRY HORTH CU-STREET : 177 AVONDALE DR CU-CITY : HORNCHURCH 8.6.2 Protection contre la mise à jour au niveau vue Exemple : Tentative de mise à jour sur une vue accessible en lecture uniquement (RETRIEVAL) C: SL MY-CUSTOMERS V: OPEN UPDATE *** UPDATE mode forbidden on view MY-CUSTOMERS V: 8.6.3 Protection contre la mise à jour au niveau zone Comme l'a montré le dernier exemple du paragraphe 8.5.5, il est possible d'interdire la mise à jour d'une zone même si l'article et la vue dont elle fait partie sont accessibles en mise à jour. 47 F2 80UR Rev02 8-23 IQS-V4 Guide de l'administrateur 8.7 8.7.1 VISUALISATION D'INFORMATIONS SUR UNE VUE Sous-menu DISPLAY VIEW Il est possible de visualiser diverses informations sur les vues en appelant le sous-menu DISPLAY VIEW et en y choisissant la sous-commande appropriée. Action L'utilisateur doit émettre une sous-commande DISPLAY VIEW (DV) au niveau W:. Résultat La liste des sous-commandes de DISPLAY VIEW peut être obtenue au niveau P:. Exemple : Sous-menu DISPLAY VIEW W: DISPLAY VIEW P: ? DISPLAY DISPLAY DISPLAY DISPLAY DISPLAY DISPLAY DISPLAY DISPLAY DISPLAY DISPLAY DISPLAY DISPLAY QUIT ITEM RECORD ITEMS SCHEMA SCHEMAS VIEW ATTRIBUTES RECORDS SETS MEMBERS OF RECORD OWNERS OF RECORD SETS OF RECORD ACCESS RIGHT DISPLAY VIEW DI Display the attributes of an item DRD Display the attributes of a record DRI Display the items of a record DS Display an underlying schema DSS Display the schema selection of the view DVA Display the attributes of the view DRE Display the records of the view DSE Display the sets of the view DMR Display the members of a record DOR Display the owners of a record DSR Display the sets of a record DACR Display the access rights Q Exit from IQS P: 8.7.2 Visualisation d'informations sur un article Action L'utilisateur doit émettre une sous-commande DISPLAY RECORD (DRD) au niveau P:. Résultat Les attributs de l'article sont visualisés. Exemple : Visualisation des attributs d'un article P: DRD ITEMS SET NAME : ORD-IT OWNER RECORD NAME : ORDERS DERIVATION : ORDER-LINES, ITEMS WHERE IT-CODE=LI-IT-CODE PRIVACY (0 RETRIEVAL 1 UPDATE 2 INSERT/DELETE) : 0 DESCRIPTION : Infos produit par code P: 8-24 47 F2 80UR Rev02 Vues standard 8.7.3 Visualisation d'informations sur une zone Action L'utilisateur doit émettre une sous-commande DISPLAY ITEM (DI) au niveau P:. Résultat Les attributs de la zone sont visualisés. Exemple : Visualisation des attributs d'une zone P: DI IT-QTY OF ITEMS TYPE : UNPACKED UNSIGNED LENGTH : 5,0 PRIVACY (0 RETRIEVAL 1 UPDATE) : 0 8.7.4 Listage des articles d'une vue Action L'utilisateur doit émettre une sous-commande DISPLAY RECORDS (DRE) au niveau P:. Résultat Les noms des articles de la vue sont listés. Exemple : Listage des articles de la vue P: DRE RECORDS OF MY-CUSTOMERS : CUSTOMERS ORDERS ITEMS 8.7.5 Visualisation d'informations sur les ensembles d'une vue Action L'utilisateur doit émettre une sous-commande DISPLAY SETS (DSE) au niveau P:. Résultat Les noms des ensembles de la vue sont visualisés, avec le nom de leur article maître et de leur article détail. Exemple : Visualisation d'informations sur les ensembles de la vue P: DSE . SET NAME : CU-ORD OWNER RECORD MEMBER RECORD . SET NAME : ORD-IT OWNER RECORD MEMBER RECORD 47 F2 80UR Rev02 : CUSTOMERS : ORDERS : ORDERS : ITEMS 8-25 IQS-V4 Guide de l'administrateur 8.7.6 Listage des schémas sous-jacents Action L'utilisateur doit émettre une sous-commande DISPLAY SCHEMAS (DSS) au niveau P:. Résultat La liste des schémas sur lesquels repose la vue est visualisée. Exemple : Listage des schémas sous-jacents à la vue P: DSS SCHEMAS OF MY-CUSTOMERS : SCH-CUSTOMERS 8.7.7 Visualisation de la liste des zones d'un article Action L'utilisateur doit émettre une sous-commande DISPLAY ITEMS (DRI) au niveau P:. Résultat Les noms des zones de l'article sont visualisés, avec, pour les zones additionnelles et les zones renommées, leur origine. Exemple : Visualisation des zones d'un article P: DRI ITEMS ITEM LIST : IT-CODE,IT-NAME,IT-QTY=LI-QTY, IT-PRICE, IT-AMOUNT=LI-QTY*IT-PRICE 8.7.8 Listage des noms de projet Action L'utilisateur doit émettre une sous-commande DISPLAY ACCESS RIGHT (DACR) au niveau P:. Résultat La liste des noms de projets ayant le droit d'accéder à la vue est visualisée. Exemple : Listage des noms de projets P: DACR ACCESS RIGHTS OF VIEW : V-VIEW: * SD3 SYSADMIN 8-26 * HOARE * OW SY 47 F2 80UR Rev02 Vues standard 8.8 VISUALISATION D'INFORMATIONS SUR LES SCHEMAS A l'intérieur du Processeur de vues, l'utilisateur peut non seulement obtenir des informations sur les vues standard mais aussi sur les schémas sur lesquels elles reposent et ce, au moyen de la sous-commande DISPLAY SCHEMA qui lui donne accès à un ensemble de sous-commandes. Pour plus de détails sur ces sous-commandes, se reporter au Manuel de référence IQS-V4,Volume 1. 8.8.1 Sous-menu DISPLAY SCHEMA Il est possible de visualiser diverses informations sur les schémas sous-jacents à une vue en appelant le sous-menu DISPLAY SCHEMA et en y choisissant la souscommande appropriée. Action L'utilisateur doit émettre une sous-commande DISPLAY SCHEMA (DS) au niveau P:, en spécifiant un nom de schéma si la vue repose sur plusieurs schémas. Résultat La liste des sous-commandes de DISPLAY SCHEMA peut être obtenue au niveau P:. Exemple : Sous-menu DISPLAY SCHEMA P: DS P: ? DISPLAY DISPLAY DISPLAY DISPLAY DISPLAY DISPLAY DISPLAY DISPLAY DISPLAY DISPLAY DISPLAY DISPLAY QUIT 8.8.2 ITEM DI ITEMS DRI RECORDS DRE AREAS DA KEYS OF RECORD DKR SETS DSE RECORDS OF AREA DRA AREAS OF RECORD DAR MEMBERS OF RECORD DMR OWNERS OF RECORD DOR SETS OF RECORD DSR ACCESS RIGHT DACR Q DISPLAY SCHEMA Display the attributes of an item Display the items of a record Display the records of the schema Display the areas of the schema Display the keys of a record Display the sets of the schema Display the records of an area Display the areas of a record Display the members of a record Display the owners of a record Display the sets of a record Display access rights Exit from IQS Listage des aires d'un schéma Action L'utilisateur doit émettre une sous-commande DISPLAY AREAS (DA) au niveau P:. Résultat Les noms des aires du schéma sont listés. Exemple : Listage des aires du schéma P: DA AREAS OF SCH-CUSTOMERS : A-CUST A-ORDER A-ITEM 47 F2 80UR Rev02 8-27 IQS-V4 Guide de l'administrateur 8.8.3 Visualisation des clés d'un article Action L'utilisateur doit émettre une sous-commande DISPLAY KEYS OF RECORD (DKR) au niveau P: en spécifiant le nom de l'article. Résultat Les clés de l'article sont visualisées avec à gauche leur nom tel qu'il figure dans le schéma, au centre leur type (primaire, secondaire, ...) et à droite le nom de la ou des zones du schéma qui constituent la clé. Exemple : Visualisation des clés d'un article P: DKR ORDER-LINES KEYS OF ORDER-LINES : KEY-ORDER PRIMARY LI-ORD-CODE LI-IT-CODE KEY-CU-CODE SECONDARY LI-CU-CODE KEY-IT-CODE SECONDARY LI-IT-CODE Remarque : 8.8.4 Pour les clés primaires, les zones qui contiennent des valeurs constantes (CHECK) ne sont pas visualisées par DKR (ni par PRINT SCHEMA) si elles constituent la partie droite de la clé. Listage des articles d'une aire Action L'utilisateur doit émettre une sous-commande DISPLAY RECORDS OF AREA (DRA) au niveau P: en spécifiant le nom de l'aire. Résultat Les noms des articles de l'aire sont listés. Exemple : Listage des articles d'une aire P: DRA A-CUST RECORDS OF A-CUST : CUSTOMERS 8.8.5 Retour au sous-menu DISPLAY VIEW Action 8-28 L'utilisateur doit introduire une barre oblique (/) pour quitter le niveau DISPLAY SCHEMA et revenir au niveau DISPLAY VIEW. Le guidage de ces deux niveaux est P:. 47 F2 80UR Rev02 9. Structures 9.1 INTRODUCTION Une structure est la description d'un fichier séquentiel monoarticle qui peut être un fichier UFAS ou une unité de bibliothèque. Les structures se trouvent dans une ou plusieurs des bibliothèques de description de données (DDLIB1, DDLIB2 et DDLIB3) connues d'IQS. Les structures sont enregistrées dans DDLIB1. Chaque structure comporte la liste des zones composant l'article du fichier qu'elle décrit. Un fichier de type monoarticle peut être décrit par l'intermédiaire d'un schéma avant de commencer la session IQS. Sinon, l'utilisateur peut affecter le fichier, définir la description de fichier et la sauvegarder comme structure pendant la session IQS. Dans ce cas, il peut ensuite émettre une commande REVIEW ou écrire une requête associée au fichier (ou à un autre fichier pour lequel aucun schéma n'a été défini) sans avoir à quitter IQS. Les droits d'accès à une structure peuvent être accordés au moyen d'une commande GRANT ou supprimés au moyen d'une commande REVOKE. La sous-commande DISPLAY ACCESS RIGHT permet de visualiser le nom des projets ayant le droit d'accéder à la structure. Les informations de référence sur les structures IQS figurent dans le Manuel de référence IQS-V4, Volume 1. 47 F2 80UR Rev02 9-1 IQS-V4 Guide de l'administrateur 9.1.1 Attributs des structures Une structure a les attributs suivants : • nom (30 caractères maximum), • droits d'accès (RETRIEVAL, UPDATE ou INSERT/DELETE), • description (commentaire facultatif), • nom d'aire (nom de l'aire contenant le fichier décrit), • nom d'article (nom de l'article du fichier décrit). 9.1.2 Attributs des zones Chaque zone décrite par la structure a les attributs suivants : • nom (30 caractères maximum), • type (BINARY, DECIMAL ou CHARACTER par exemple), • longueur, • nombre de chiffres après la virgule (zones de type DECIMAL uniquement). 9.1.3 Définition Une structure peut être définie implicitement ou explicitement. Elle est définie implicitement lors de la création d'un fichier temporaire à l'exécution d'une commande WRITE, EXTRACT, COPY, SORT ou MERGE. Elle est définie explicitement en appelant le Processeur de structures ou en utilisant le langage de requêtes. Avec le processeur de structures, une structure peut être définie : • automatiquement à partir d'un article de la vue courante, • automatiquement à partir d'une ou plusieurs grilles utilisateur (contiguës), • manuellement, zone par zone, en indiquant le nom et le type de chaque zone. 9-2 47 F2 80UR Rev02 Structures Avec le langage de requêtes, c'est l'instruction DEFINE qui est utilisée pour créer une structure zone par zone ou à partir d'une structure ou d'un article existants. Avec l'instruction WRITE, une structure est implicitement définie lors de la création d'un fichier temporaire. Des exemples concernant l'emploi des structures avec le langage de requêtes sont fournies dans le Guide du programmeur IQS-V4. La structure qui a été définie, implicitement ou explicitement, peut être sauvegardée au moyen de SAVE STRUCTURE (ou de REPLACE STRUCTURE si elle remplace une structure du même nom). 9.1.4 Utilisation Une structure IQS peut être utilisée de deux façons : • en tant que description de fichier. Dans ce cas, l'utilisateur doit émettre une commande USE STRUCTURE au niveau IQS (C:) ou au niveau vue (V:) pour associer la structure à un fichier pour la session courante (cette association pouvant être annulée au moyen de la commande CANCEL STRUCTURE). • en tant que vue courante. Dans ce cas, l'utilisateur doit sélectionner la structure au moyen d'une commande SELECT au niveau IQS (C:). La structure est alors considérée comme un schéma séquentiel monoarticle et, en tant que tel, peut servir de base à une vue. Remarque : 47 F2 80UR Rev02 Ce deuxième type d'utilisation présente deux avantages : contrairement à un schéma, une structure n'a pas à être décrite en langage DDL, ni à être compilée par MNDD et COMPILE SCHEMA. 9-3 IQS-V4 Guide de l'administrateur 9.2 DEFINITION D'UNE STRUCTURE Les quatre méthodes de définition d'une structure au moyen de commandes IQS sont présentées ci-dessous. 9.2.1 9-4 Définition manuelle d'une structure Action L'utilisateur doit émettre une commande DEFINE STRUCTURE (DFST) au niveau IQS (C:) ou au niveau vue (V:) en donnant le nom de la structure à définir. Il est conseillé d'inclure dans ce nom le préfixe ST- ou le suffixe -STR. "structure privacy" Droits d'accès de la structure. A noter qu'ils ne s'appliquent que si la structure est sélectionnée comme vue courante. Si elle est utilisée pour décrire un fichier (commande USE STRUCTURE ... ON ... puis commande FILE), les droits d'accès au fichier sont INSERT/DELETE (insertion/suppression). FACULTATIF. "structure description" Description de la structure. Texte de 60 caractères maximum qui sera visualisé à l'émission d'une commande DISPLAY STRUCTURE ou PRINT STRUCTURE. FACULTATIF. "area name" Nom de l'aire contenant l'article du fichier décrit par la structure. La valeur implicite est WORK. Il est conseillé de fournir un nom car WORK est également le nom implicite des fichiers d'extraction. FACULTATIF MAIS RECOMMANDE. "record name" Nom de l'article du fichier décrit par (30 caractères maximum). OBLIGATOIRE. "item names" Noms des zones composant l'article, séparés par une virgule. Chaque nom fourni est ensuite visualisé (ITEM NAME) suivi de guidages demandant le type et la longueur (avec, éventuellement, le nombre de chiffres après la virgule) de la zone. Un nom minimum, 999 noms maximum. OBLIGATOIRE. la structure 47 F2 80UR Rev02 Structures "item type" Type de la zone. Les valeurs admises sont les suivantes : DEC : décimal (implicitement UPS, c'est-à-dire éclaté signé) CHAR : caractère BIN : binaire Pour le type décimal, il est possible de préciser : UNPACKED UNSIGNED (UPK) pour du décimal éclaté non signé et UNPACKED SIGNED (UPS) pour du décimal éclaté signé PACKED UNSIGNED (PK2) pour du décimal condensé non signé et PACKED SIGNED (PKS) pour du décimal condensé signé. Voir "Remarques". OBLIGATOIRE pour chaque zone spécifiée dans la liste. "item length" Longueur de la zone. Pour les zones de type binaire, la longueur doit être 15 ou 31. Pour les zones de type décimal, il est possible de spécifier le nombre de chiffres après la virgule. OBLIGATOIRE pour chaque zone spécifiée dans la liste. Résultat Le guidage du Processeur de structures (R:) est visualisé. Il est alors possible de modifier la structure, ou de la sauvegarder au moyen de la sous-commande SAVE STRUCTURE (SS). Remarques : 47 F2 80UR Rev02 1. Les noms de zones, le nom d'aire et le nom d'article doivent être uniques. 2. Une zone déclarée avec UNSIGNED PACKED est générée avec le type PK2. Si le type doit être PAK, il faut définir une grille avec une zone COMP-3 et définir la structure à partir de cette grille. Il est également possible de définir la structure directement à partir d'un article du schéma contenant une zone de type PAK. 9-5 IQS-V4 Guide de l'administrateur Exemple : Définition manuelle d'une structure Ici, la structure MY-STR est définie pas à pas, puis sauvegardée, et, après sortie du Processeur de structures, listée. C: DFST MY-STR structure privacy (0 RETRIEVAL 1 UPDATE 2 INSERT/DELETE) (0): 2 structure description : Définition structure area name (WORK) : MY-AREA + record name : MY-REC + item names : MY-CUS-NAME, MY-CUS-CODE, MY-CUS-TOWN -: MY-CUS-ORDER, MY-CUS-DATE ITEM NAME : MY-CUS-NAME + item type : CHAR + item length : 15 ITEM NAME : MY-CUS-CODE + item type : CHAR + item length : 6 ITEM NAME : MY-CUS-TOWN + item type : CHAR + item length : 15 ITEM NAME : MY-CUS-ORDER + item type : CHAR + item length : 7 ITEM NAME : MY-CUS-DATE + item type : CHAR + item length : 6 R: SS R: / C: LSST MY-STR DDLIB1 -NAME-----------------CREATED------------UPDATED--------NBLKSMY-STR C: 9.2.2 89/02/13 16:19 89/02/13 16:19 13 Définition d'une structure à partir d'un article de la vue courante Action L'utilisateur doit émettre une commande DEFINE STRUCTURE ... AS RECORD au niveau vue (V:) et donner le nom de la structure et, si la vue comporte plusieurs articles, le nom de l'article à utiliser comme modèle. Résultat La structure est sauvegardée automatiquement dans DDLIB1 et le guidage V: est de nouveau visualisé. Exemple : Définition de la structure NEW-STR à partir de l'article CUSTOMERS C: V: V: SELECT MY-CUSTOMERS DFST NEW-STR AS RECORD CUSTOMERS (la structure est sauvegardée automatiquement) 9-6 47 F2 80UR Rev02 Structures 9.2.3 Définition d'une structure à partir d'une ou plusieurs grilles Action L'utilisateur doit émettre une commande DEFINE STRUCTURE ... AS FORM au niveau IQS (C:) ou au niveau vue (V:) et spécifier le nom de la structure et le nom d'une ou plusieurs grilles. Les zones des grilles sont concaténées pour constituer la structure. A noter que si les grilles ont été définies avec des noms de zones implicites, ce sont ces noms qui seront utilisés pour la structure ; ils pourront être modifiés ultérieurement en émettant une commande UPDATE STRUCTURE suivie d'une sous-commande USD. Toutefois, il est préférable d'attribuer dès le départ des noms appropriés aux zones de la grille. Les grilles spécifiées doivent exister dans les bibliothèques affectées à #BLIB, #BINLIB1, #BINLIB2 ou #BINLIB3. Résultat La structure est sauvegardée automatiquement dans DDLIB1 et le guidage C: ou V: est de nouveau visualisé. Exemple : Définition de la structure GH-FM-STR à partir de grilles C: DFST GH-FM-STR AS FORM GH-FM, CUS-FM C: LSST GH-FM* DDLIB1 -NAME-----------------CREATED------------UPDATED--------NBLKSGH-FM-STR C: 9.2.4 89/02/20 11:12 89/02/20 11:12 13 Définition implicite d'une structure Une structure IQS peut être générée implicitement comme suit : • en exécutant une commande EXTRACT, WRITE, COPY, SORT ou MERGE puis en sauvegardant la structure implicite obtenue au moyen de la commande SAVE STRUCTURE (SVST), • en exécutant une requête qui crée dynamiquement une structure pour un fichier et en sauvegardant cette structure au moyen de la commande SAVE STRUCTURE (SVST). 47 F2 80UR Rev02 9-7 IQS-V4 Guide de l'administrateur Exemple : Génération d'une structure implicite via la commande EXTRACT Utilisation de EXTRACT pour enregistrer des données dans un fichier de travail et générer une structure implicite, sauvegarde de cette structure puis association ultérieure de cette dernière au fichier de travail. C: C: V: V: V: F: R: R: R: F: F: ASSIGN MY-FILE SL MY-CUSTOMERS OPEN RT CU-NAME,CU-CODE,CU-CITY FROM CUSTOMERS XT FROM CUSTOMERS,ORDERS TO MY-FILE 20 records extracted RV RETRIEVAL F 1 CU-NAME : JIM ROACH CU-CODE : 12890G CU-CITY : GLASGOW ORDERS ORD-CODE : 2958310 ORD-DATE : 880302 N 2 CU-NAME : JAMES TAYLOR CU-CODE : 29883M CU-CITY : MANCHESTER ORDERS ORD-CODE : 2310210 ORD-DATE : 880204 / SVST MY-STR / V: V: F: R: USST MY-STR ON MY-FILE FILE MY-FILE RV F MY-REC 1 MY-CUS-NAME : JIM ROACH MY-CUS-CODE : 12890G MY-CUS-TOWN : GLASGOW MY-CUS-ORDER : 2958310 MY-CUS-DATE : 880302 R: N MY-REC 2 MY-CUS-NAME : JAMES TAYLOR MY-CUS-CODE : 29883M MY-CUS-TOWN : MANCHESTER MY-CUS-ORDER : 2310210 MY-CUS-DATE : 880204 R: / F: 9-8 47 F2 80UR Rev02 Structures Exemple : Génération d'une structure implicite via une requête Utilisation d'une requête pour rechercher certaines occurrences et les placer dans un fichier de travail avec génération d'une structure pour ce fichier à partir d'une structure existante, au moyen de DEFINE. La structure obtenue peut être sauvegardée et utilisée. V: ^,$L 10 : 20 : 30 : 40 : V: GO V: FILE F: RV R: F 1 DEFINE B-STR IDEM MY-STR RETRIEVE CUSTOMERS, ORDERS WRITE CU-NAME,CU-CODE,CU-CITY,ORD-CODE,ORD-DATE TO WORK END CU-NAME : JIM ROACH CU-CODE : 12890G CU-CITY : GLASGOW ORD-CODE : 2958310 ORD-DATE : 880302 R: / F: SVST B-STR F: Tableau 9-1. Niveaux d'utilisation de DEFINE STRUCTURE Commande D E FIN E S T R U C T U R E AS RECORD Niveau C: Non utilisable Niveau V: C réation et sauvegarde dynam iques de la structure. L'article doit provenir de la vue courante. D E F IN E S T R U C TU R E (définition m anuelle) A p p e l d u p ro ce sse u r d e stru ctu re s p o u r cré e r la stru ctu re p a s à p a s. U n e sa u ve g a rd e e xp licite , a u m o ye n d e la so u s-co m m a n d e S A V E -S T R U C T U R E (S S ), e st n é ce ssa ire . D E F IN E S T R U C TU R E AS FO RM C ré atio n e t sa u ve ga rd e dyn a m iq u e s d e la stru cture (d an s D D L IB 1 ) à p a rtir d 'u n e o u p lu sie u rs g rille s se trou va n t da n s # B L IB , # B IN L IB 1 , # B IN L IB 2 o u # B IN LIB 3 . 47 F2 80UR Rev02 9-9 IQS-V4 Guide de l'administrateur 9.3 MISE A JOUR D'UNE STRUCTURE La commande UPDATE STRUCTURE permet de : • mettre à jour une structure existante, • créer une nouvelle structure à partir d'une structure existante. Après appel du processeur de structures au moyen de UPDATE STRUCTURE, il est possible : • d'utiliser la sous-commande UPDATE STRUCTURE DEFINITION pour modifier les droits d'accès de la structure, sa description, le nom d'aire, le nom d'article ou la liste des zones (par adjonction, suppression ou modification de zones). Le type et la longueur des zones ajoutées ou modifiées doivent être spécifiés, • d'utiliser la sous-commande UPDATE ITEM pour modifier le type, la longueur, les droits d'accès et la description d'une zone donnée. Pour qu'une structure puisse être mise à jour, toutes ses zones doivent être des scalaires (zones élémentaires). Par conséquent, une structure contenant des zones de différents niveaux ne peut pas être mise à jour. Cette règle s'applique, par exemple, aux structures ayant été définies directement à partir d'un article de vue standard : de telles structures comportent toujours un niveau 02 représentant le nom d'article, les zones d'articles étant subordonnées à ce niveau. De même, une structure ayant été définie avec des zones faisant partie de groupes, de structures ou de vecteurs ne peut pas être mise à jour au moyen de UPDATE STRUCTURE. Pour la définition des termes "groupe", "structure" et "vecteur", se reporter à la description de l'instruction DEFINE dans le Manuel de référence IQS-V4, Volume 2. 9.3.1 9-10 Mise à jour des attributs d'une structure Action L'utilisateur doit émettre une commande UPDATE STRUCTURE (UPST) avec le nom de la structure, pour appeler le Processeur de structures, puis, au niveau R:, émettre une commande UPDATE STRUCTURE DEFINITION (UPST). "structure privacy" Nouveaux droits d'accès de la structure. Rappel : ces droits d'accès ne s'appliquent que si la structure est sélectionnée comme vue courante en tant que schéma monoarticle. FACULTATIF. "structure description" Nouvelle description de la structure. FACULTATIF. "nom d'aire" Nouveau nom d'aire. FACULTATIF MAIS NECESSAIRE SI LA STRUCTURE DOIT MAINTENANT ETRE UTILISEE EN TANT QUE SCHEMA. Voir chapitre 10. "record name" Nouveau nom d'article. FACULTATIF. 47 F2 80UR Rev02 Structures 9.3.2 Modification de la liste des zones Action L'utilisateur doit procéder comme indiqué ci-dessus pour la mise à jour des attributs de la structure. Lorsque le guidage "+ item names:" apparaît, il doit fournir une nouvelle liste (voir ci-dessous). "item names", "item type", "item length" Pour chaque nouvelle zone spécifiée dans la liste (item names) apparaissent des guidages demandant leur type et leur longueur (avec, pour les zones décimales, le nombre de chiffres après la virgule). Si des zones existantes sont conservées dans la liste, elles gardent leur type et leur longueur (qui pourront être modifiés au moyen de UPDATE ITEM, voir plus loin). Toutes les zones de la structure dont le nom n'est pas repris dans la nouvelle liste sont exclues de la structure modifiée (si elle est sauvegardée). FACULTATIF. Si rien n'est introduit à la suite du guidage "item names", la précédente liste des zones est reprise dans sa totalité. Résultat La structure modifiée doit être sauvegardée au moyen de la sous-commande SAVE STRUCTURE (SS). Exemple : Mise à jour de la structure MY-STR La structure MY-STR comporte 5 zones. Elle est modifiée de façon à ne plus contenir qu'une seule zone dont le type et la longueur sont définis. Ses droits d'accès sont également modifiés : ils deviennent RETRIEVAL (lecture). C: UPST MY-STR R: USD structure privacy (0 RETRIEVAL 1 UPDATE 2 INSERT/DELETE) (2): 0 structure description (Définition structure) : Mise à jour area name (MY-AREA) : + record name (MY-REC) : MY-NEW-REC + item names (MY-CUS-NAME, MY-CUS-CODE, MY-CUS-TOWN, MY-CUSORDER, MY-CUS-DATE) : MY-DEC-ITEM ITEM NAME : MY-DEC-ITEM + item type : PACKED DECIMAL + item length : 10,2 R: Exemple : Création d'une nouvelle structure à partir d'une structure existante V: UPST MY-STR NEW TEST-STR 47 F2 80UR Rev02 9-11 IQS-V4 Guide de l'administrateur 9.3.3 Mise à jour d'une zone de structure La sous-commande UPDATE ITEM permet de modifier le type, la longueur et, dans le cas d'une zone décimale, le nombre de chiffres après la virgule, d'une zone de structure. Action L'utilisateur doit émettre une sous-commande UPDATE ITEM (UI) au niveau R: en spécifiant le nom de la zone à modifier. "item type" Nouveau type de la zone. FACULTATIF. "item length" Nouvelle longueur de la zone, avec éventuellement, pour une zone décimale, le nombre de chiffres après la virgule. FACULTATIF. "item privacy" Nouveaux droits d'accès de la zone. Ils doivent être compatibles avec ceux définis au niveau supérieur (en l'occurrence avec ceux de la structure). FACULTATIF. "item description" Nouvelle description de la zone. FACULTATIF. Résultat Les modifications effectuées sont conservées en mémoire jusqu'à ce que l'utilisateur sauvegarde la structure au moyen de la sous-commande SAVE STRUCTURE (SS). Exemple : Modification du type d'une zone et vérification C: UPST MY-STR R: UI MY-CUS-DATE item type (CHARACTER) : DECIMAL item length (6) : item privacy (0 RETRIEVAL 1 UPDATE) (1) : item description : Donnée décimale de longueur 6 R: DS P: DI MY-CUS-DATE TYPE : UNPACKED SIGNED LENGTH : 6,0 PRIVACY (0 RETRIEVAL 1 UPDATE) : 1 DESCRIPTION : Donnée décimale de longueur 6 P: / R: UI MY-CUS-DATE item type (UNPACKED SIGNED) : UNPACKED UNSIGNED item length (6, 0) : ; R: SS 9-12 47 F2 80UR Rev02 Structures Tableau 9-2. Niveaux d'utilisation de UPDATE STRUCTURE Commande Niveau C: et V: UPDATE STRUCTURE A p pe l d u p roc esse u r d e structure s po u r m o d ifier un e stru cture . U n e sa u ve ga rd e e xplicite , a u m o yen de la so u s-com m an d e S A V E S T R U C T U R E (S S ), e st n éc essa ire p ou r re m p lac er l'an cie nn e ve rsion d e la stru cture p a r la n ou ve lle . UPDATE STRUCTURE... NEW... A p p el du p ro ce sse u r d e stru ctu re s p o u r cré e r u n e n o uve lle stru ctu re à p artir d 'u n e stru ctu re e xis ta nte . U ne sa uve g a rd e e xp licite d e la n o u ve lle stru ctu re , a u m o yen de la sou s-c om m an d e S A V E S T R U C T U R E (S S ), e st né ce ssa ire . La stru ctu re e xistan te n'es t p a s a ffe ctée . Remarques : 47 F2 80UR Rev02 1. Les méthodes ci-dessus peuvent être employées pour mettre à jour des structures, qu'elles aient été définies à partir d'articles ou de grilles ou non. 2. Une structure ayant été définie à partir d'un article peut être mise à jour même si cet article n'est pas l'article courant. 3. Une structure ayant été définie à partir de grilles peut être mise à jour même si ces grilles ne sont pas disponibles. 9-13 IQS-V4 Guide de l'administrateur 9.4 9.4.1 VISUALISATION D'INFORMATIONS SUR LES STRUCTURES Sous-menu DISPLAY STRUCTURE Une fois à l'intérieur du Processeur de structures, il est possible de visualiser des informations sur les structures au moyen des sous-commandes qui figurent dans le sous-menu DISPLAY STRUCTURE. Action L'utilisateur doit émettre la sous-commande DISPLAY STRUCTURE (DS) au niveau V:. Résultat La liste des sous-commandes de DISPLAY STRUCTURE peut être obtenue au niveau P:. Exemple : Appel du sous-menu DISPLAY STRUCTURE V: DSST MY-STR P: ? DISPLAY DISPLAY DISPLAY DISPLAY QUIT 9.4.2 ITEM ITEMS STRUCTURE ATTRIBUTE ACCESS RIGHT DISPLAY STRUCTURE DI Display the attributes of an item DRI Display the items of the structure DSA Display the attributes of the structure DACR Display access rights Q Exit from IQS Visualisation des attributs d'une structure Action L'utilisateur doit émettre une sous-commande DISPLAY STRUCTURE ATTRIBUTES (DSA) au niveau P:. Résultat Les droits d'accès, la description, le nom d'aire et le nom d'article de la structure sont visualisés. Exemple : Visualisation des attributs d'une structure P: DSA PRIVACY (0 RETRIEVAL 1 UPDATE 2 INSERT/DELETE) : 2 DESCRIPTION : Définition structure AREA NAME : MY-AREA RECORD NAME : MY-REC P: 9-14 47 F2 80UR Rev02 Structures 9.4.3 Visualisation de toutes les zones d'une structure Action L'utilisateur doit émettre une sous-commande DISPLAY ITEMS (DRI) au niveau P:. Résultat Les zones de la structure sont visualisées sous forme d'un tableau dont les colonnes sont les suivantes : ORD Position relative de la zone. LEV Niveau de la zone. Rappel : une structure contenant des zones de différents niveaux ne peut pas être mise à jour. ITEM NAME Nom de la zone. TYP Type de la zone. Ce peut être : CHR BIN PAK PKS PK2 UPK UPS (CHARACTER) (BINARY) (PACKED UNSIGNED) (PACKED SIGNED) (PACKED-2 UNSIGNED) (UNPACKED UNSIGNED) (UNPACKED SIGNED) LENGTH Longueur (et nombre de chiffres après la virgule) de la zone. PRV Droits d'accès de la zone : R=RETRIEVAL (lecture), U=UPDATE (modification) OCC Toujours 1. ADD Sans objet. 47 F2 80UR Rev02 9-15 IQS-V4 Guide de l'administrateur Exemples : P : DRI ORD LE V 1 2 3 4 5 2 2 2 2 2 ITE M N A M E T Y P E LE N G TH PR V O C C A D D M Y-C U S-N AM E M Y-C U S-C O D E M Y-C U S-TO W N M Y-C U S-O R D E R M Y-C U S-D ATE CHR CHR CHR CHR CHR 15 6 15 7 6 U U U U U 1 1 1 1 1 V : D SS T IT-STR P : DRI 9.4.4 ORD LEV ITE M N AM E TYP E LE N G TH PR V O C C A D D 1 2 3 4 5 2 2 2 2 2 IT-C O D E IT-N A M E IT-Q TY IT-P R IC E IT-A M O U N T CHR CHR U PK U PK U PS 4 20 5,0 6,2 1 1,2 U U U U U 1 1 1 1 1 Visualisation d'une zone de structure Action L'utilisateur doit émettre une sous-commande DISPLAY ITEM (DI) au niveau P:. Résultat Le type, la longueur et les droits d'accès de la zone sont visualisés. Exemple : P: DI IT-AMOUNT TYPE : UNPACKED SIGNED LENGTH : 11,2 PRIVACY (0 RETRIEVAL 1 UPDATE) : 1 P: DI IT-QTY TYPE : UNPACKED UNSIGNED LENGTH : 5,0 PRIVACY (0 RETRIEVAL 1 UPDATE) : 1 9-16 47 F2 80UR Rev02 Structures 9.4.5 Visualisation des droits d'accès à la structure Action L'utilisateur doit émettre une sous-commande DISPLAY ACCESS RIGHT (DACR) au niveau P:. Résultat La liste des noms de projets ayant le droit d'accéder à la structure est visualisée. Exemple : Visualisation des droits d'accès à la structure L'utilisateur HOARE accorde au projet SD3 le droit d'accéder à la structure ST-1 ; aucun droit d'accès n'est défini pour la structure ST-2. C: GRANT ST-1 SD3 C: UPST ST-2 R: DS P: DACR * No access right defined P: / R: / C: UPST ST-1 R: DS P: DACR ACCESS RIGHTS OF STRUCTURE : SD3 * SD3 HOARE SYSADMIN * P: / R: / C: DSST ST-1 P: DACR ACCESS RIGHTS OF STRUCTURE : etc......etc........ 47 F2 80UR Rev02 ST-1 : OW SY ST-1 : 9-17 IQS-V4 Guide de l'administrateur 9-18 47 F2 80UR Rev02 10. Fichiers IQS Il existe plusieurs types de fichiers IQS. Tout d'abord, il convient de distinguer les fichiers pour lesquels un schéma IQS a été défini, dits "fichiers base de données", et les fichiers pour lesquels aucun schéma IQS n'existe, dits "fichiers classiques". Dans cette deuxième catégorie, il est possible de distinguer les "fichiers de saisie", qui sont des fichiers temporaires ou permanents associés à une structure de fichier. Les fichiers de saisie permettent à l'utilisateur d'enregistrer ses propres données, qui peuvent être entièrement indépendantes de la base de données de production, ou bien qui peuvent être utilisées ou fusionnées avec les données de la base d'une façon ou de l'autre. Les fichiers de saisie peuvent être intégrés à une vue standard au moyen de leur structure. Si cette structure est utilisée en tant que schéma monoarticle, l'accès aux données se fait par l'intermédiaire de l'aire associée à la structure du fichier. La façon dont un fichier est utilisé dépend de la façon dont il est affecté (voir plus loin). Les différents types de fichiers IQS sont présentés ci-dessous. 10.1 FICHIERS BASE DE DONNEES Les différents types de fichiers pour lesquels des schémas peuvent être définis sont les suivants : • • • • UFAS séquentiel indexé, UFAS séquentiel, UFAS relatif, IDS/II. Ces fichiers sont des fichiers permanents qui constituent des "aires" IQS. Chaque aire peut correspondre à plusieurs fichiers mais un fichier ne peut pas correspondre à plusieurs aires (sauf sous IDS/II). Pour avoir accès aux données de la base, IQS ouvre et ferme les aires la constituant. Un même schéma ne peut pas décrire des données provenant à la fois de fichiers UFAS et de fichiers IDS/II. Les données IQS peuvent également être enregistrées dans des sous-fichiers de bibliothèques origine SL (ces dernières étant des fichiers cloisonnés-chaînés). 47 F2 80UR Rev02 10-1 IQS-V4 Guide de l'administrateur 10.2 FICHIERS CLASSIQUES Un fichier classique peut être : • un fichier de travail, • un fichier d'impression, • un fichier de saisie. Le fichier de travail standard d'IQS s'appelle WORK. Il est utilisé implicitement par les commandes et instructions générant ou traitant des fichiers de travail. A la fin de la session IQS au cours de laquelle il a été créé, le contenu du fichier WORK est perdu, à moins qu'il n'ait été copié dans un fichier permanent. Le contenu du fichier WORK est également perdu en cas de lancement d'un autre process IQS qui crée un fichier appelé WORK. D'autres fichiers de travail peuvent être affectés dynamiquement au cours de la session IQS au fur et à mesure des besoins. Leur contenu est également perdu en fin de session ou de process (voir plus haut). IQS associe une structure implicite ou explicite à chaque fichier de travail. Les fichiers d'impression sont utilisés pour enregistrer les sorties de la session en vue d'une impression ultérieure. Les fichiers de saisie peuvent être employés par les utilisateurs pour se constituer une "base de données personnelle" (voir à ce sujet les guides utilisateur IQS) qu'ils peuvent garnir et modifier à leur gré. Les fichiers de saisie sont indépendants de la base de données (les opérations sur ces fichiers n'affectent pas le contenu de la base) mais ils peuvent être créés à partir des structures de la base. Ainsi, plusieurs utilisateurs peuvent enregistrer des données dans plusieurs fichiers de saisie, puis le contenu de ces derniers peut être fusionné, trié et préparé en vue de l'édition d'un rapport. Il peut également être combiné à des données de la base IQS en définissant des vues dérivées à la fois d'un ou plusieurs des fichiers de saisie (via leur structure) et des schémas. Ce cas est illustré par un exemple plus loin dans ce chapitre. L'administrateur IQS définit, affecte et supprime les fichiers de saisie. 10-2 47 F2 80UR Rev02 Fichiers IQS 10.3 10.3.1 AFFECTATION DES FICHIERS IQS Noms de fichiers Sous IQS, il existe trois types de noms de fichiers : • nom de fichier externe (nfe) : il s'agit du nom d'un fichier réel (physique) auquel de l'espace sur disque a été affecté, • nom de fichier interne (nfi) : il s'agit du nom utilisé par IQS pour désigner un fichier, ce nom étant mis en correspondance avec un nom de fichier externe. La longueur maximum d'un nfi est de 8 caractères. Si le fichier doit être utilisé sous IQS/TDS, le nfi ne doit contenir ni tiret (-), ni caractère souligné (_), • nom de fichier IQS : il s'agit du nom utilisé au cours d'une session IQS par des instructions du langage de requêtes et des commandes IQS. Ces trois types de noms sont associés les uns aux autres afin qu'à la fois IQS et GCOS 7 sachent à quels fichiers il est fait référence. Les associations ont lieu à deux niveaux : GCL Le groupe de paramètres FILEn (ou son équivalent AREAn) comporte un nom de fichier interne. Lorsque ce dernier est utilisé par IQS, GCOS 7 le met en rapport avec le nom de fichier externe du groupe de paramètres ASGn correspondant. IQS La commande IQS ASSIGN et l'instruction du langage de requêtes ASSIGN associent un nom de fichier IQS (valide uniquement pour la durée de la session) à un nom de fichier interne ou externe. En principe, les noms de fichiers IQS sont associés à des noms de fichiers internes au cours de la session IQS et les noms de fichiers internes sont associés à des noms de fichiers externes dans la procédure GCL de lancement d'IQS. Si nécessaire, l'utilisateur peut se reporter au Guide de l'utilisateur expert. 47 F2 80UR Rev02 10-3 IQS-V4 Guide de l'administrateur 10.3.2 Affectation de noms de fichiers externes Elle s'effectue au moyen des groupes de paramètres suivants du GCL : FILEn=<nfi> ASGn=<nfe> Pour plus de détails, se reporter au Manuel de référence de l'utilisateur IOF. La syntaxe complète des nfe peut être obtenue en consultant les textes en ligne TUTORIAL. Pour ce faire, introduire $$TEACH? au niveau S: ($$TEACH au niveau C: sous IQS), puis choisir l'un des textes CATALOGED_FILES, UNCATALOGED_FILES ou TEMPORARY_FILES. L'affectation des nfe, si elle n'a pas été faite dans la procédure GCL, peut également être effectuée en cours de session IQS. Dans ce cas, l'utilisateur doit employer la commande ASSIGN avec le format suivant : C: ASSIGN <nom-fichier-IQS> TO FILE <nfe> ou l'instruction du langage de requêtes ASSIGN avec le format suivant : ASSIGN <nom-fichier-IQS> TO <nfe> Lorsqu'un nom de fichier IQS est affecté directement à un nom de fichier externe, un nom de fichier interne est créé dynamiquement. Il est constitué des huit premiers caractères du nom de fichier IQS. Si le nfi obtenu figure déjà dans un groupe de paramètres FILEn du GCL de lancement de la session, la commande ou instruction ASSIGN est rejetée. 10.3.3 Affectation de noms de fichiers internes L'affectation de noms de fichiers internes à des noms de fichiers IQS s'effectue en cours de session, au moyen de la commande ASSIGN avec le format suivant : C: ASSIGN <nom-fichier-IQS> TO <nfi> ou au moyen de l'instruction du langage de requêtes ASSIGN avec le format suivant : ASSIGN <nom-fichier-IQS> TO IFN <nfi> 10.3.4 Relations entre les différents noms Lorsqu'une commande ou instruction ASSIGN est émise en cours de session IQS pour associer un nom de fichier IQS à un nfi pour lequel existe un groupe de paramètres FILEn dans le GCL, ce nom de fichier IQS donne accès au fichier réel portant le nom de fichier externe associé au nfi. 10-4 47 F2 80UR Rev02 Fichiers IQS Exemple : Dans le GCL figurent les deux groupes de paramètres : FILE1=MYFILE ASG1=.MYFILE.IQS Au cours de la session IQS est émise la commande : C: ASSIGN MY TO MYFILE Ici, le nfi est MYFILE, le nfe est .MYFILE.IQS et le nom de fichier IQS est MY. La figure 10-1 illustre les associations entre ces trois noms : nom de fichier IQ S (via A S S IG N en cours de session) nom de fichier interne (nfi) (via A S G n dans le G C L) nom de fichier externe (nfe) Figure 10-1. Relations entre nfe, nfi et nom de fichier IQS Remarque : 10.3.5 L'utilisateur travaillant avec les commandes IQS n'a pas besoin d'émettre une commande ASSIGN si le nom de fichier IQS qu'il veut employer est identique à un nfi existant car dans ce cas, IQS les associe automatiquement. Par contre, si l'utilisateur travaille avec le langage de requêtes, il devra émettre la commande ASSIGN. Remarque complémentaire sur les noms de fichiers IQS L'utilisateur doit veiller à effectuer toutes les affectations nécessaires pour la session. En effet, s'il emploie un nom de fichier IQS qu'il n'a pas affecté à un nfi, IQS considèrera que ce nom de fichier IQS désigne un fichier temporaire. Par conséquent, les opérations de lecture et d'écriture auront lieu dans le fichier temporaire et non dans un fichier permanent. Cette situation n'est pas signalée par IQS car l'utilisation d'un fichier temporaire peut être volontaire, et non pas résulter d'une erreur de la part de l'utilisateur. 47 F2 80UR Rev02 10-5 IQS-V4 Guide de l'administrateur 10.4 FICHIERS D'IMPRESSION Pour des exemples sur l'affectation et l'utilisation des fichiers d'impression, se reporter au chapitre 26 du Guide du programmeur IQS-V4. Le mode d'exploitation des fichiers d'impression est le mode adjonction (en fin de fichier). 10.4.1 Utilisation de sous-fichiers L'utilisateur peut employer des sous-fichiers de bibliothèque origine pour enregistrer les données à imprimer afin de pouvoir exécuter l'impression ultérieurement au moyen de DPRINT. Pour ce faire, il doit spécifier dans la procédure GCL d'appel d'IQS : FILEn=PRINTER ASGn=<nom-bib-sl>..<nom-sous-fichier> Ainsi, les sorties des commandes PRINT de la session seront stockées dans le sous-fichier. 10.4.2 Fichiers d'impression en traitement par lots Lorsque l'utilisateur souhaite enregistrer les résultats de la session dans un fichier de sortie privé, il doit faire figurer le paramètre PRTFILE dans la procédure GCL traitement par lots : PRTFILE=<nom-bib-sl>..<nom-sous-fichier> ou, spécifier sous IQS la commande : C: ASSIGN PRT <nom-fichier-impression> TO ... Pendant la session IQS en traitement par lots, le paramètre PRTFILE implicite reçoit : • les guidages et textes des commandes, • les messages d'erreur, • le résultat des instructions DISPLAY, SCHEMA/STRUCTURE... et LIST..., • les sorties des fichiers d'impression non affectés. 10-6 des commandes PRINT 47 F2 80UR Rev02 Fichiers IQS 10.5 10.5.1 FICHIERS DE SAISIE Introduction Les fichiers de saisie permettent à l'utilisateur d'enregistrer des données dans ses propres fichiers UFAS séquentiel et de les manipuler à son gré. Il s'agit de fichiers "plats" contenant un seul article. Les fichiers de saisie peuvent contenir : • des données propres à l'activité de l'utilisateur, • des données utilisateur combinées avec des données d'une base IQS (généralement par l'intermédiaire d'une vue standard ou par fusion entre des données saisies et des données provenant de fichiers d'extraction). 10.5.2 Sécurité Les fichiers de saisie contribuent à la sécurité de la base. En effet : • la mise à jour directe de la base de données est rarement souhaitable, • les données de l'utilisateur ne sont pas forcément toutes en rapport avec la base de données IQS, • en intégrant les fichiers de saisie à des vues standard, l'administrateur peut les protéger au moyen des contrôles d'accès offerts par le Processeur de vues. 10.5.3 Caractéristiques implicites La commande DEFINE ENTRY propose trois options pour le statut du fichier à créer : • permanent catalogué, • permanent non catalogué, • temporaire L'organisation du fichier est implicitement séquentielle. Pour vérifier les caractéristiques du fichier, utiliser la commande LIST_FILE au niveau S:. 47 F2 80UR Rev02 10-7 IQS-V4 Guide de l'administrateur 10.5.4 Possibilités offertes L'administrateur IQS crée un fichier de saisie (lui réserve de la place) au moyen de la commande DEFINE ENTRY. La structure qui lui est associée en constitue la description. Si cette structure est modifiée (au moyen de UPDATE STRUCTURE), le fichier ne peut plus être utilisé comme fichier de saisie ; un nouveau fichier doit être défini. Le fichier peut être supprimé au moyen de DROP ENTRY. L'utilisateur peut y introduire des données au moyen de INPUT. A l'émission de cette commande, les grilles spécifiées dans DEFINE ENTRY, ou à défaut la grille standard d'IQS, sont visualisées. Les données saisies peuvent facilement être vérifiées (une seule fois) au moyen de VERIFY. Elles peuvent ensuite : • être visualisées et éventuellement modifiées au moyen de REVIEW, • faire l'objet de modifications globales au moyen de CHANGE, • être utilisées pour générer des statistiques au moyen de STATISTICS, • être supprimées en partie ou en totalité au moyen de CLEAR. En outre : • les fonctions de gestion des fichiers sont utilisables (après émission des commandes USE STRUCTURE et FILE), • les fonctions de gestion des vues sont utilisables (après émission des commandes SELECT <nom-structure> et OPEN ou après sélection d'une vue standard contenant des articles logiques dérivés de l'article du fichier de saisie). La figure 10-2 représente le déroulement d'une session de saisie type. C'est l'administrateur IQS qui est responsable de la création des fichiers de saisie et de leur mise à la disposition des usagers. Ces derniers doivent connaître les fichiers qu'ils utilisent sous des noms de fichiers internes faciles à retenir. Ils ne doivent pas avoir à s'occuper de leur affectation à des noms de fichiers externes. C'est donc l'administrateur qui doit effectuer toutes les affectations nécessaires afin que les usagers puissent se contenter d'introduire ENTRY <nfi> pour accéder à leurs fichiers. Les grilles et les structures associées aux fichiers de saisie doivent être créées et gérées par le personnel informatique. 10-8 47 F2 80UR Rev02 Fichiers IQS ACTIVITE REMARQUE C réation de grilles utilisateur (D F F M ) facultatif C réation de structures (D F S T) obligatoire si aucune structure n'existe déjà RESPONSABLE D é ve lo p p e u r d 'a p p lica tio n s ou A d m in istra te u r IQ S C réation du fichier de saisie (D F D E ) -association à une structure (obligatoire) réservation de place via un littéral fichier A dm inistrateur IQ S -association à des grilles (facultatif) LANCEMENT DE LA SAISIE Sp écifica tio n du nfi o u d u nfe d u fichier (E N TR Y ) v érifier que le fichier est c onnu d'IQ S (D F D E /U P D E ) (A S S IG N ) To ut T raitem ent des données u tilisa teu r -s aisie (IN P U T ) a utorisé -ex am e n (R E V IE W ) -v érification (V E R IF Y ) -s uppres sion (C LE A R ) U ltérieurem ent - m odification du fichier - utilisation du fichier avec d'autres fonctions IQ S une seule fois Gestion des fichiers P rocesseur de vue / G estion des vues Figure 10-2. Déroulement d'une session de saisie 47 F2 80UR Rev02 10-9 IQS-V4 Guide de l'administrateur 10.5.5 Exemple d'utilisation des fichiers de saisie Pour une introduction pratique aux fichiers de saisie, se reporter au Guide de l'utilisateur novice IQS-V4. L'exemple ci-dessous a pour but de montrer comment créer des fichiers de saisie et les intégrer à une vue standard. L'exemple se décompose en 11 étapes : 1. Définition d'une structure (ENTRY-ST) à associer au fichier et sauvegarde de cette dernière. 2. Définition d'un fichier de saisie catalogué (.FLENTRY) associé à la structure ENTRY-ST. Le nom de l'article du fichier est ENTRY-REC. 3. Introduction de plusieurs occurrences dans le fichier. 4. Utilisation de REVIEW pour examiner le contenu du fichier. 5. Modification de la procédure GCL d'appel d'IQS (UP-IQS) de façon à affecter un nfi au nfe du fichier. 6. Utilisation des fonctions de gestion des fichiers. 7. Mise à jour de la structure ENTRY-ST par modification du nom d'aire afin qu'elle puisse être utilisée comme schéma monoarticle et référencée par le nom d'aire (qui jusqu'ici était le nom du fichier). 8. Définition d'une nouvelle vue standard (V-PROMO) à partir du schéma SCH-CUSTOMERS et de la structure ENTRY-ST, et sauvegarde de cette vue. 9. Affectation de l'aire de la structure dynamiquement au moyen de ASSIGN ou statiquement au moyen du GCL. 10. Ecriture d'une requête constituant l'application. 11. Exécution de la requête. 10-10 47 F2 80UR Rev02 Fichiers IQS 10.5.6 Objectif de l'exemple Cet exemple a pour but de montrer les relations entre les fichiers de saisie et les vues. L'application est créée pour les raisons suivantes : • le responsable des ventes désire promouvoir certains produits en offrant des réductions pendant une période donnée, • de ce fait, il désire savoir quels sont les clients et commandes touchés par cette promotion et veut donc obtenir une liste des produits faisant l'objet d'une réduction, par client et par commande. 10.5.7 Réalisation 1. Créer un fichier de saisie dont l'article comporte deux zones : l'une contenant un code produit et l'autre le pourcentage de réduction pour ce produit. 2. Créer une vue extrayant de la base de données des informations sur les clients, les commandes et les produits et les associant aux données du fichier de saisie. Afin d'obtenir un accès rapide, la vue doit être optimisée, c'est-à-dire que son article racine doit être l'article du fichier de saisie puisque ce dernier est séquentiel. Les informations sur les clients et les produits doivent également être réparties sur deux articles de façon à pouvoir accéder aux articles ITEMS (produits) et ORDER-LINES (lignes de commande) sans avoir à passer par les articles CUSTOMERS (clients). Il n'est pas nécessaire que la vue comporte un article ORDERS (commandes) puisque les informations correspondantes sont disponibles par l'intermédiaire des deux jointures entre CUSTOMERS et ORDER-LINES et entre ENTRY-REC et ORDER-LINES. La figure 10-3 plus loin dans ce chapitre montre comment la vue est dérivée de la structure du fichier de saisie (ENTRY-ST) et du schéma de la base (SCHCUSTOMERS). Pour un diagramme de ce schéma, voir chapitre 8. Remarque : 47 F2 80UR Rev02 Pour définir les attributs des zones, il suffit de définir une ou plusieurs grilles, puis de créer une structure à partir de ces grilles, les attributs des grilles étant repris dans la structure. 10-11 IQS-V4 Guide de l'administrateur Etape 1 : Définition de la structure à associer au fichier C: DFST ENTRY-ST structure privacy (0 RETRIEVAL 1 UPDATE 2 INSERT/DELETE) (0): 1 structure description : DESCRIPTION DU FICHIER FL-ENTRY area name (WORK) : FL-ENTRY + record name : ENTRY-REC + item names : ITEM-CODE,PERCENT ITEM NAME : ITEM-CODE + item type : CHAR + item length : 4 ITEM NAME : PERCENT + item type : UNSIGNED UNPACKED DEC + item length : 4,2 R: SS R: / C: Remarques : 1. Le droit d'accès doit être UPDATE (modification). 2. Le nom d'aire (area name) doit être le nom de fichier interne. Etape 2 : Définition d'un fichier de saisie catalogué C: DFDE FILE .FL-ENTRY:FSD104:MS/D500 + structure name : ENTRY-ST form list : item separator (,) : validation frequency (10) : 1 FILESTAT (0 CAT 1 UNCAT 2 TEMPRY) (0) : Remarques : 10-12 1. Le nom de volume et la classe d'appareils doivent être fournis ; en leur absence, le fichier est implanté dans un volume résidant. 2. IQS ne confirme pas la création du fichier. Si aucun message n'est émis, c'est qu'elle est effectuée. Si nécessaire, utiliser la commande GCL LIST_FILE au niveau S: pour vérifier les caractéristiques du fichier. 3. IQS attribue au fichier des caractéristiques implicites (voir plus haut). 47 F2 80UR Rev02 Fichiers IQS Etape 3 : Introduction de données dans le fichier 1/1 FL-ENTRY INPUT ITEM-CODE : PERCENT : 1 INPUT -> : 1 ENTRY-REC 1 1001 15.00 2 VALIDATE Last registered record Remarque : 3 INVALIDATE 0 Pour plus de détails, voir la commande INPUT dans le premier volume du manuel de référence IQS-V4 (77UR). Etape 4 : Utilisation de REVIEW pour examiner le contenu du fichier Cette étape est facultative. Elle n'est pas illustrée ici. Se reporter à la description de la commande REVIEW dans le Manuel de référence IQS-V4, Volume 1. Etape 5 : Affectation du fichier au moyen de FILEn et ASGn 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 PROC UP-IQS PROMPT='Séquence de lancement IQS' LOCK=1; IQS SLLIB=.IQS.SLLIB-0 DDLIB=.IQS.DDLIB-0 BINLIB=.IQS.BINLIB-0 FILE1=BLIB ASG1=.IQS.BLIB-0 FILE2=A-CUST ASG2=(.IQS.CUSTOMERS,SHARE=MONITOR) DEF2=(JOURNAL=BEFORE) FILE3=A-ORDER ASG3=(.IQS.ORDERS,SHARE=MONITOR) DEF3=(JOURNAL=BEFORE) FILE4=A-ITEM ASG4=(.IQS.ITEMS,SHARE=MONITOR) DEF4=(JOURNAL=BEFORE) _______________________________________________ |FILE5=FL-ENTRY ASG5=(.FL-ENTRY,ACCESS=WRITE); | |_______________________________________________| LET #NOVICE VALUE=1 ; ENDPROC; Remarques : 1. La procédure de lancement d'IQS décrite ici s'appelle UP-IQS. Chaque fois qu'elle est exécutée, le fichier de saisie est affecté. L'utilisateur peut ainsi rajouter des groupes de paramètres FILEn et ASGn pour d'autres fichiers. 2. FILE5 spécifie le nfi du fichier ; ASG5 spécifie son nfe et le type d'accès autorisé. L'affectation du fichier aurait également pu être effectuée en cours de session IQS au moyen de la commande : C: ASSIGN FL-ENTRY TO FILE .FL-ENTRY 47 F2 80UR Rev02 10-13 IQS-V4 Guide de l'administrateur Etape 6 : Utilisation du fichier de saisie en tant que fichier Le fichier de saisie peut bien sûr être utilisé en tant que tel, en spécifiant son nfi dans une commande ENTRY. Exemple : C: ENTRY FL-ENTRY E: Il peut également être utilisé en tant que fichier de travail avec les fonctions de gestion des fichiers, après émission des commandes USE STRUCTURE et FILE. A noter toutefois que lorsque des commandes EXTRACT, WRITE, SORT, COPY ou MERGE sont utilisées pour un fichier de saisie, IQS cesse de considérer ce dernier comme un fichier de saisie. Il reste utilisable au niveau fichier, la structure et l'aire qui lui sont associées peuvent toujours être employées en tant que schéma monoarticle, mais il ne peut plus être supprimé au moyen de DROP ENTRY ni exploité au moyen des fonctions de saisie. Exemple : C: USST ENTRY-ST ON FL-ENTRY C: FILE FL-ENTRY F: RV Etapes 7, 8 et 9 : Utilisation du fichier de saisie pour constituer une vue Une telle utilisation du fichier implique les trois étapes suivantes : • modification du nom d'aire de la structure, • définition de la vue, la structure du fichier constituant l'un des schémas dont elle est dérivée, • mise à jour de la procédure GCL pour affecter le nom d'aire de la structure au nfe approprié. Ces trois étapes sont détaillées ci-dessous. Etape 7 : Modification du nom d'aire de la structure du fichier Lors de la création d'un fichier de saisie, son nom d'aire est identique à son nom de fichier interne, ce qui ne pose aucun problème si le fichier ne doit être utilisé qu'en tant que tel. Toutefois, il arrive souvent qu'un fichier de saisie soit intégré à une vue (via sa structure). Un exemple est donné, illustrant ce cas de figure. Dans ce cas, la structure doit être mise à jour au moyen de UPDATE STRUCTURE pour changer son nom d'aire. Ainsi, les données correspondantes pourront être rendues disponibles dans la vue courante au moyen d'une commande OPEN. A noter qu'une fois la modification effectuée, le fichier de saisie ne pourra plus être utilisé en tant que tel. 10-14 47 F2 80UR Rev02 Fichiers IQS Exemple : C: UPST ENTRY-ST R: USD structure privacy (0 RETRIEVAL 1 UPDATE 2 INSERT/DELETE) (1) : structure description (DESCRIPTION DU FICHIER FL-ENTRY) : ______ area name (FL-ENTRY) : |PROMO | |______| + record name (ENTRY-REC) : + item names (ITEM-CODE,PERCENT) : R: SS R: / Remarques : 1. La structure du fichier ENTRY-ST (définie à l'étape 1) est mise à jour. 2. Le nom d'aire est modifié : il devient PROMO. Etape 8 : Définition d'une vue standard utilisant la structure comme schéma La vue V-PROMO comporte trois articles logiques : PROMOTION, ITEM et CUSTOMER. PROMOTION est l'article racine de la vue. Il dérive directement de l'article du fichier de saisie. Pour ce faire, ENTRY-ST est spécifié en tant que schéma dans la liste des schémas sur lesquels repose la vue (schema names) et ENTRY-REC (nom attribué à l'article du fichier lors de la création de la structure) est spécifié comme origine de l'article de la vue (record derivation). ITEM, second article de la vue, a pour origine l'article ORDER-LINES et un sous-ensemble de l'article ITEMS. CUSTOMER, troisième article de la vue, dérive directement de l'article CUSTOMERS. La définition de la vue est fournie ci-dessous et elle est illustrée par la figure 10-3. Pour la description du schéma SCH-CUSTOMERS, se reporter au chapitre 8. 47 F2 80UR Rev02 10-15 IQS-V4 Guide de l'administrateur Exemple : C: DFVW V-PROMO view privacy (0 RETRIEVAL 1 UPDATE) (0) : 1 view description : VENTES PROMOTIONNELLES + schema names : ENTRY-ST,SCH-CUSTOMERS W: W: CR record name : PROMOTION + record derivation : ENTRY-REC item list (ENTRY-REC) : record privacy (0 RETRIEVAL 1 UPDATE 2 INSERT/DELETE) (0) : 1 record description : PRODUITS EN PROMOTION W: W: CR record name : ITEM set where record name is member : PR-IT owner record name : PROMOTION + record derivation : ORDER-LINES, ITEMS WHERE ITEM-CODE = LI-IT-CODE -: AND IT-CODE = ITEM-CODE item list (ORDER-LINES,ITEMS) : ITEM-DESC=IT-NAME, ITEM-QTY = LI-QTY -: ITEM-ORD-CODE = LI-ORD-CODE record privacy (0 RETRIEVAL 1 UPDATE 2 INSERT/DELETE) (0) : 0 record description : PRODUITS EN PROMOTION AYANT ETE COMMANDES W: W: CR record name : CUSTOMER set where record name is member : IT-CU owner record name : ITEM + record derivation : CUSTOMERS WHERE CU-CODE=LI-CU-CODE item list (CUSTOMERS) : C-NAME=CU-NAME, C-CODE=CU-CODE, -: C-STREET=CU-STREET, C-TOWN=CU-CITY record privacy (0 RETRIEVAL 1 UPDATE 2 INSERT/DELETE) (0) : 0 record description : CLIENTS W:SV 10-16 47 F2 80UR Rev02 Fichiers IQS Articles du schéma SCH-CUSTOMERS Article du fichier de saisie Jointure sur le code produit CUSTOMERS Jointure sur le code client ORDERS ENTRY-REC ITEMS ORDER-LINES Jointure sur le code produit PROMOTION ITEM CUSTOMER Vue V-PROMO Figure 10-3. Vue V-PROMO avec son origine 47 F2 80UR Rev02 10-17 IQS-V4 Guide de l'administrateur Etape 9 : Affectation de l'aire dans le GCL A l'étape 6, la procédure GCL a été modifiée pour affecter le nfi du fichier à son nfe afin de faciliter aux usagers l'accès au fichier pour une session de saisie de données. La procédure doit maintenant être de nouveau modifiée puisque l'aire de la structure du fichier doit être utilisée pour une vue. La modification est la suivante : Exemple : 10:PROC UP-IQS PROMPT='Séquence de lancement IQS' LOCK=1; 20:IQS SLLIB=.IQS.SLLIB-0 DDLIB=.IQS.DDLIB-0 BINLIB=.IQS.BINLIB-0 FILE1=BLIB ASG1=.IQS.BLIB-0 FILE2=A-CUST ASG2=(.IQS.CUSTOMERS,SHARE=MONITOR) DEF2=(JOURNAL=BEFORE) FILE3=A-ORDER ASG3=(.IQS.ORDERS,SHARE=MONITOR) DEF3=(JOURNAL=BEFORE) FILE4=A-ITEM ASG4=(.IQS.ITEMS,SHARE=MONITOR) DEF4=(JOURNAL=BEFORE) AREA5=PROMO ASG5=(.FL-ENTRY,ACCESS=WRITE); 30:LET #NOVICE VALUE=1; 40:ENDPROC; Remarque : L'affectation de l'aire pourrait également être effectuée en cours de session au moyen de la commande ASSIGN AREA. Si l'aire n'est pas affectée, IQS émet un message d'avertissement et refuse l'accès à la vue, comme dans la séquence ci-dessous : C: SL V-PROMO V: OP *** There is no ASG parameter (GCL) for IFN PROMO V: ASG AREA PROMO TO IFN FL-ENTRY V: OP V: Etape 10 : Programmation de l'application IQS offre deux langages : l'un, le langage de commande IQS, est non procédural, l'autre, la langage de requêtes, est procédural. L'application peut être écrite sous forme de requête ou sous forme d'une séquence de commandes IQS enregistrée comme scénario, les deux méthodes permettant de l'exécuter aussi souvent que nécessaire. Les commandes IQS peuvent également être introduites en interactif mais cette méthode ne convient que pour des traitements ponctuels à effectuer une seule fois ce qui n'est pas le cas dans notre exemple. La requête Q-PROMO est écrite pour fournir au responsable des ventes la liste des clients bénéficiant de la promotion, avec indication des produits et des commandes concernés et du taux de réduction à appliquer. 10-18 47 F2 80UR Rev02 Fichiers IQS Exemple : V: ^,$L 10 : 20 : 30 : 40 : 50 : 60 : 70 : 80 : 90 : 100 : 110 : 120 : 130 : 140 : 150 : 160 : 170 : 180 : 190 : V: 47 F2 80UR Rev02 SPACE TOP LET @LINE-BORDER = "-" LET @COLUMN-BORDER = "!" LET $COLUMN-SPACING = 3 RETRIEVE PROMOTION, ITEM, CUSTOMER WRITE C-NAME,ITEM-CODE,ITEM-DESC,ITEM-ORD-CODE, PERCENT TO TEMPY END SORT TEMPY ON C-NAME HEADING P1,P2 READ TEMPY AFTER C-NAME CHANGE P1. PRINT C-NAME TITLE ("CUSTOMER"," NAME") END P2. PRINT ITEM-CODE TITLE ("ITEM","CODE") ITEM-DESC JUST CENTER TITLE CENTER "DESCRIPTION" ITEM-ORD-CODE TITLE CENTER ("ORDER,"REF.") PERCENT TITLE ("DISCOUNT","RATE") END 10-19 IQS-V4 Guide de l'administrateur Etape 11 : Exécution de l'application Les données ayant été introduites dans le fichier de saisie à l'étape 3 sont les suivantes : ITEM-CODE 1001 1011 1021 1071 1131 1161 PERCENT 15.00 10.00 5.50 12.50 9.00 3.00 L'exécution de la requête Q-PROMO produit le résultat suivant : C: SELECT V-PROMO V: OPEN V: GO Q-PROMO |-----------------|------|-----------------|---------|----------| | CUSTOMER | ITEM | DESCRIPTION | ORDER | DISCOUNT | | NAME | CODE | | REF. | RATE | |-----------------|------|-----------------|---------|----------| | ALAN BRADLEY | | | | | | | 1021 | JACKET | 2812310 | 5.50 | | | 1131 | CIGAR | 2154740 | 9.00 | | DAVID HOLBROOK | | | | | | | 1131 | CIGAR | 2911820 | 9.00 | | DONALD MACLEAN | | | | | | | 1011 | SHIRT | 2150540 | 10.00 | | | 1131 | CIGAR | 2150540 | 9.00 | | JIM ROACH | | | | | | | 1001 | TROUSERS | 2958310 | 15.00 | | | 1011 | SHIRT | 2958310 | 10.00 | | KAY EVANS | | | | | | | 1161 | SOCKS | 2379220 | 3.00 | | KEVIN CANNON | | | | | | | 1001 | TROUSERS | 2622210 | 15.00 | | | 1011 | SHIRT | 2622210 | 10.00 | | | 1021 | JACKET | 2622210 | 5.50 | | | 1131 | CIGAR | 2622210 | 9.00 | +++ | MIKE BANNERMANN | | | | | | | 1001 | TROUSERS | 2419840 | 15.00 | | | 1161 | SOCKS | 2419840 | 3.00 | | PETER ANDREWS | | | | | | | 1071 | WASHING MACHINE | 2530120 | 12.50 | | | 1071 | WASHING MACHINE | 2728830 | 12.50 | | ROGER WILLIAMS | | | | | | | 1001 | TROUSERS | 2763610 | 15.00 | | | 1011 | SHIRT | 2763610 | 10.00 | | | 1021 | JACKET | 2763610 | 5.50 | |-----------------|------|-----------------|---------|----------| V: 10-20 47 F2 80UR Rev02 11. Utilisation de la métabase IQS 11.1 INTRODUCTION Le nom de la métabase IQS est H_METAIQS. La métabase IQS est un dictionnaire de données en ligne contenant des informations sur tous les objets IQS accessibles au cours de la session par l'intermédiaire des bibliothèques IQS affectées. Elle est mise à jour automatiquement par IQS lorsque des objets sont créés, modifiés ou supprimés. Elle constitue donc une photographie instantannée des objets et est très utile à l'administrateur IQS. L'utilisateur ne peut pas modifier directement le contenu de la métabase (au moyen de commandes REVIEW UPDATE, INSERT, MODIFY, DELETE par exemple) ; elle ne lui est accessible qu'en lecture. Sous IQS-V4, il est possible d'ouvrir en mode mise à jour (OPEN UPDATE) une vue dont l'un des schémas sous-jacents est constitué par la métabase, mais cette dernière ne reste accessible qu'en lecture. Les informations de référence sur la métabase figurent dans le Manuel de référence IQS-V4, Volume 2. 47 F2 80UR Rev02 11-1 IQS-V4 Guide de l'administrateur 11.2 11.2.1 ACCES A LA METABASE Accès en langage non procédural En langage non procédural (commandes IQS), il n'est possible d'accéder aux articles de la métabase que si elle a d'abord été sélectionnée comme vue courante (SELECT) : C: V: 11.2.2 SELECT H_METAIQS REVIEW ou RETAIN ... Accès en langage procédural En langage procédural (requêtes), les conditions ci-dessous doivent être respectées pour accéder à la métabase. • Une requête accédant à la métabase peut être compilée au niveau C:, puis exécutée (EXEC) au niveau C: ou V:, quelle que soit la vue courante. • Si le schéma de la métabase H_METAIQS (ou n'importe quel autre schéma IQS) a été sélectionné au niveau C:, les requêtes accédant à la métabase peuvent être compilées et exécutées au niveau V:. • Par contre, si une vue standard a été sélectionnée au niveau C:, les requêtes accédant à la métabase peuvent uniquement être compilées et exécutées au niveau V: lorsque : - 11-2 H_METAIQS constitue l'un des schémas sous-jacents de la vue, la vue contient des articles/zones logiques correspondant aux informations recherchées par la requête dans la métabase. 47 F2 80UR Rev02 Utilisation de la métabase IQS 11.3 TACHES DE L'ADMINISTRATEUR L'une des responsabilités de l'administrateur IQS consiste à surveiller la base de données IQS. Pour ce faire, il peut utiliser la commande DISPLAY STATUS pour obtenir des informations sur la session IQS en cours et consulter la métabase pour obtenir des renseignements plus précis. L'administrateur peut également effectuer des analyses d'impact sur les objets IQS en interrogeant la métabase. La métabase peut également lui servir à effectuer des analyses d'impact sur les objets IQS et surtout à accomplir les tâches ci-dessous en exécutant régulièrement des requêtes ou des scénarios : • vérifier quels sont les schémas, vues et structures disponibles (sélection par date, type, droits d'accès, etc.), • vérifier quelles sont les vues et requêtes qui seraient affectées par la modification d'un schéma donné, • identifier les schémas compilés sous IDS/II V2 et ceux compilés sous IDS/II V5, • vérifier les caractéristiques d'un(e) ou plusieurs zones/articles/ensembles/aires, • vérifier le nom des projets ayant le droit d'accéder à une vue ou un schéma donné, • vérifier quels sont les schémas sur lesquels reposent des vues données, • lister des informations sur les formats de présentation, descriptions d'état et macros en ligne, • vérifier quelles sont les requêtes disponibles (sélection par date, nom, vue utilisée, etc.) ; vérifier également, par exemple, le contenu d'une ligne donnée dans plusieurs requêtes différentes ou bien vérifier la version de l'unité compilée pour utilisation sous TDS. 47 F2 80UR Rev02 11-3 IQS-V4 Guide de l'administrateur 11.4 EXEMPLES Exemple 1 : Utilisation d'une requête pour retrouver toutes les zones de type décimal non condensé dans une vue donnée ; enregistrement des résultats dans un fichier de travail, puis tri et impression (ce fichier restant disponible jusqu'à la fin de la session, son contenu peut être manipulé au moyen de commandes IQS). C: ^,$L 10: ASSIGN FL1 20: DO 30: ACCEPT @VW 40: RETRIEVE SYS-DD,SYS-RECORD,SYS-ITEM 50: WHERE DD-NAME = @VW 60: AND (DD-TYPE = "VDD") 70: AND (ITEM-TYPE AG "UPKS" "UPK") 80: WRITE DD-NAME,RECORD-NAME,ITEM-NAME, 90: ITEM-TYPE,ITEM-LENGTH,ITEM-SCALE 100: TO FL1 110: ON ABSENT 120: PRINT "VIEW NOT FOUND" 130: END 140: END 150: END 160: 170: SORT FL1 ON ITEM-TYPE,ITEM-NAME 180: 190: READ FL1 200: AFTER ITEM-TYPE CHANGE 210: DISPLAY ITEM-TYPE 220: END 230: PRINT "NAME : " ITEM-NAME SHORT 240: " (OF RECORD):" RECORD-NAME 250: END C: GO VW : MY-CUSTOMERS ITEM-TYPE : UPK NAME : IT-PRICE (OF RECORD): ITEMS NAME : IT-QTY (OF RECORD): ITEMS ITEM-TYPE : UPKS NAME : IT-AMOUNT (OF RECORD): ITEMS C: C: F: R: SV Q-ADMIN-1 FILE FL1 RV F 1 DD-NAME : MY-CUSTOMERS RECORD-NAME : ITEMS ITEM-NAME : IT-PRICE ITEM-TYPE : UPK ITEM-LENGTH : 6 ITEM-SCALE : 2 R: 11-4 47 F2 80UR Rev02 Utilisation de la métabase IQS Exemple 2 : Utilisation des commandes IQS pour retrouver et visualiser toutes les requêtes dont le nom commence par Q. C: V: V: :V: R: SELECT H_METAIQS OPEN RT QUERY-NAME,QUERY-DATE,QUERY-VIEW FROM SYS-QUERY WHERE QUERY-NAME BEGINS "Q" RV SYS-QUERY SCAN SYS-QUERY QUERY-NAME : Q-ADMIN-1 QUERY-DATE : 890404 QUERY-VIEW : ... . . . SYS-QUERY QUERY-NAME : Q-PROMO QUERY-DATE : 910531 QUERY-VIEW : V-PROMO SYS-QUERY QUERY-NAME : Q-EOS QUERY-DATE : 910828 QUERY-VIEW : MY-CUSTOMERS Exemple 3 : Utilisation d'une requête pour effectuer la même tâche que dans l'exemple précédent. C: AUTO 10 : RETRIEVE SYS-QUERY 20 : WHERE QUERY-NAME BG "Q" 30 : PRINT WITH TITLE QUERY-NAME,QUERY-DATE,QUERY-VIEW 40 : END 50 : / C: GO QUERY-NAME QUERY-DATE QUERY-VIEW Q-ADMIN-1 Q-EX02 Q-EX01 Q-SUBSTR-78 Q-PROMO Q-EOS C: 47 F2 80UR Rev02 890404 910612 910612 910905 910531 V-PROMO 910828 MY-CUSTOMERS 11-5 IQS-V4 Guide de l'administrateur Exemple 4 : Utilisation des commandes IQS pour obtenir des informations sur chaque zone de type décimal pour les articles des schémas, structures et vues disponibles au cours de la session. C: V: V: :V: ::- SELECT H_METAIQS RT DD-TYPE FROM SYS-DD WHERE DD-TYPE NE "WDD" RT ITEM-TYPE FROM SYS-ITEM WHERE ITEM-TYPE AG ("UPKS" "UPK" "PK2" "PK") XT DD-NAME,DD-TYPE,RECORD-NAME,ITEM-NAME FROM SYS-DD,SYS-RECORD,SYS-ITEM ORDER BY DD-NAME,RECORD-NAME 82 records extracted F: F: RV R: F 1 DD-NAME : V-EX DD-TYPE : VDD RECORD-NAME : ORIT ITEM-NAME : LI-QTY ITEM-TYPE : UPK R: SR 16 16 DD-NAME : NEW-CUSTOMERS DD-TYPE : VDD RECORD-NAME : ITEMS ITEM-NAME : IT-AMOUNT ITEM-TYPE : UPKS R: / 11-6 47 F2 80UR Rev02 Utilisation de la métabase IQS Exemple 5 : Utilisation d'une requête pour imprimer pour chaque objet le nom du ou des projets pouvant y accéder, le nom du ou des utilisateurs et le type d'accès autorisé. DEF @DD-TYPE CHAR 12 ,@PROJECT-NAME CHAR 12 SPACE TOP LET $PAGE-HEIGHT=23 LET @LINE-BORDER="-" RETRIEVE SYS-DD,SYS-PROJECT WHERE DD-ACCESS-RIGHT="1" WRITE DD-TYPE,DD-NAME,DD-VERSION,PROJECT-NAME,USER-NAME, ACCESS-TYPE TO F1 END SORT F1 ON DD-TYPE,DD-NAME,PROJECT-NAME HEADING L1,L3 READ F1 AFTER DD-TYPE CHANGE LET @DD-TYPE=DD-TYPE END AFTER DD-NAME CHANGE OR DD-TYPE CHANGE L1. PRINT @DD-TYPE ,SUBSTR( DD-NAME,1,13) TITLE "DD-NAME",DD-VERSION LET @DD-TYPE=" " END AFTER PROJECT-NAME CHANGE OR DD-NAME CHANGE OR DD-TYPE CHANGE LET @PROJECT-NAME=PROJECT-NAME END L3. PRINT @PROJECT-NAME, USER-NAME ,ACCESS-TYPE LET @PROJECT-NAME=" " END C: C: GO --------------------------------------------------------------------------DD-TYPE DD-NAME DD-VERSION PROJECT-NAME USER-NAME ACCESS-TYPE --------------------------------------------------------------------------FDD ACC-STR 4.0 SD3 * HOARE OW SYSADMIN * SY G-STRUCT 4.0 SD3 * HOARE OW SYSADMIN * SY SDD SCH-CUSTOMERS 4.0 SD3 * HOARE OW SYSADMIN * SY VDD MY-CUSTOMERS 4.0 SD2 * SD3 * HOARE OW SYSADMIN * SY --------------------------------------------------------------------------- 47 F2 80UR Rev02 11-7 IQS-V4 Guide de l'administrateur 11-8 47 F2 80UR Rev02 12. Recompilation 12.1 INTRODUCTION Les bases de données IQS sont composées de schémas, et de vues définies à partir de ceux-ci. Peuvent également y être intégrés des structures, des fichiers de saisie, des fichiers UFAS externes, des unités de bibliothèque, etc. Lorsqu'un schéma est modifié et recompilé par MNDD, l'administrateur doit se poser les questions suivantes : • quelles sont les vues reposant sur le schéma modifié ? • lesquelles doivent-elles être modifiées ? • quelles requêtes font référence au schéma, directement, ou indirectement via des vues ? • ces requêtes (et les macros qui y sont incluses) doivent-elles être modifiées ? Une telle analyse d'impact peut être effectuée en consultant la métabase (voir chapitre précédent). 47 F2 80UR Rev02 12-1 IQS-V4 Guide de l'administrateur 12.2 PROCEDURE DE MODIFICATION DES SCHEMAS 1. Modifier la définition DDL origine du schéma. 2. La recompiler au moyen de MNDD, avec l'option REPLACE si le schéma garde le même nom. 3 Lancer IQS. 4. Utiliser la commande COMPILE SCHEMA pour recompiler le schéma résultant et obtenir un schéma utilisable sous IQS. 5. Si la modification du schéma a des incidences sur les vues standard qui reposent sur lui (par exemple, si un article a été supprimé ou si des zones ont été ajoutées à un article), chaque vue affectée doit être mise à jour. Pour ce faire, utiliser la commande UPDATE VIEW puis sauvegarder la vue modifiée au moyen de la sous-commande SAVE VIEW. Ainsi, la correspondance entre les vues et les schémas sous-jacents sera préservée. 6. Utiliser la commande SELECT pour faire du schéma modifié la vue courante. 7. Utiliser la commande RECOMPILE VIEW pour recompiler toutes les vues faisant référence au schéma. La convention astérisque peut être employée pour recompiler plusieurs ou toutes les vues à la fois. A noter que la recompilation des vues ne peut aboutir que si l'opération décrite au point 5 a été effectuée correctement. 8. Utiliser la commande RECOMPILE MACRO * pour recompiler toutes les macros emboîtées dans des requêtes faisant référence au schéma (vue courante). En cas d'emboîtement à plusieurs niveaux, recompiler d'abord les macros du niveau le plus intérieur puis remonter. 9. Utiliser la commande RECOMPILE QUERY pour recompiler toutes les requêtes faisant référence au schéma (vue courante). 10. Sortir du schéma (vue courante) au moyen de TERM ou de la barre oblique (/). 11. Répéter les opérations des points 8 et 9 pour chaque vue standard affectée. Faire de chaque vue la vue courante au moyen de SELECT puis, une fois la recompilation des macros et des requêtes effectuée, terminer comme indiqué au point 10. Remarques : 12-2 1. Les opérations des points 1 et 2 peuvent être effectuées séparément pour chaque schéma à modifier, le cas échéant. 2. La séquence d'opérations des points 4 à 9 doit être effectuée en totalité pour chaque schéma. 3. La métabase IQS permet de vérifier l'interdépendance des objets (analyse d'impact). 4. Lorsqu'une zone est modifiée, les structures et/ou formats dans lesquels cette zone a été utilisée deviennent périmés. 47 F2 80UR Rev02 Recompilation POUR CHAQUE VUE STANDARD POUR CHAQUE SCHEMA DDLIB Recompilation du schéma C: COMPILE SCHEMA schéma sché m a s résultants M N D D (type D D ) schémas résultants IQS (type SDD) Mise à jour et recompilation des vues standard vues standard IQS (type VDD) C : U P D A T E V IE W v ue ... W : S A V E V IE W ... C : S E LE C T schém a V : R E C O M P ILE V IE W * R ec om pilatio n des m acros et des re quê tes pour chaq ue schém a BINLIB R ecom p ila tio n des m acros et des req uêtes pour cha que vu e stan dard C: SELECT view V : R E C O M P ILE M A C R O * macros IQS (type QRM) V: RECOMPILE MACRO V : R E C O M P ILE Q U E R Y * requêtes IQS (type QRY) V : R E C O M P ILE Q U E R Y * V: / V: / C: C: Figure 12-1. Recompilation 47 F2 80UR Rev02 12-3 IQS-V4 Guide de l'administrateur 12-4 47 F2 80UR Rev02 13. Environnement GCOS 7 Ce chapitre traite des aspects de l'environnement GCOS 7 concernant l'administrateur IQS, à savoir : • gestion des accès concurrents, • partage de fichiers et de ressources, • optimisation et performances. L'administrateur doit connaître GAC-EXTENDED et UFAS-EXTENDED et disposer des deux manuels suivants : Guide de l'utilisateur GAC-EXTENDED Guide de l'utilisateur UFAS-EXTENDED Les informations qu'ils contiennent sont en rapport direct avec les sujets traités dans ce chapitre. A noter que le contrôle de consommation des ressources au moyen des variables système et des déclencheurs est traité au chapitre 3. 13.1 ACCES CONCURRENTS En principe, les applications IQS-V4 bénéficient d'une protection par GAC-EXTENDED. Si ce n'est pas le cas sur son site, l'utilisateur peut se reporter au dernier paragraphe de ce chapitre. GAC-EXTENDED permet l'accès concurrent à un fichier, en lecture et en écriture, par plusieurs utilisateurs. Le partage est géré au niveau du CI (intervalle de contrôle) : un utilisateur en écriture ou plusieurs utilisateurs en lecture peuvent accéder concurremment à un CI. L'accès concurrent à un CI par un utilisateur en écriture et plusieurs utilisateurs en lecture est possible lorsque le paramètre READLOCK=STAT est spécifié dans le groupe de paramètres DEFn pour le fichier. Sous TDS, la clause SUPPRESS CONCURRENT ACCESS CONTROL de la rubrique MESSAGE du programme de génération TDS doit être déclarée pour le fichier. L'intégrité et la cohérence des données sont assurées par un mécanisme de résolution des conflits. GAC-EXTENDED assure la cohérence des données selon le principe de la consolidation. 47 F2 80UR Rev02 13-1 IQS-V4 Guide de l'administrateur 13.1.1 Unité de consolidation Une unité de consolidation peut se définir comme un ensemble d'opérations faisant passer un fichier d'un état initial stable à un état final stable. Le contrôle des accès aux CI du fichier est assuré par GAC-EXTENDED pendant toute la durée de l'unité de consolidation. Lorsqu'une consolidation est effectuée : • les mises à jour sont enregistrées définitivement dans les fichiers, • tous les verrous sont supprimés, • les fichiers repassent à un état stable. Il arrive que les verrous en lecture soient supprimés avant la fin d'une unité de consolidation. En effet, IQS libère les articles qui ne sont plus courants et qui n'ont pas été modifiés, même si READLOCK=EXCL est spécifié. Par conséquent, il est possible, en théorie, de lire deux fois le même article au cours de la même unité de consolidation et d'obtenir des valeurs différentes. Dans le cas des fichiers UFAS, les CI du fichier physique sous-jacent correspondant à des articles qui ne sont plus courants et n'ont pas été modifiés sont libérés toutes les 10 occurrences. Un CI ne peut être libéré que s'il ne contient aucun d'article courant. Lorsque des instructions RETRIEVE sont utilisées concurremment dans plusieurs requêtes, l'utilisateur doit se montrer prudent comme l'illustre l'exemple ci-dessous. Requête 1 Requête 2 RETRIEVE A PRINT A (A=1) END ACCEPT... RETRIEVE A MODIFY A = A + 1 END COMMIT RETRIEVE A PRINT A (A=2!) END Comme le montre cet exemple, lorsque la requête 1 lit l'article A pour la deuxième fois, elle n'obtient pas le même résultat que la première fois puisque la valeur de A a été modifiée entre temps par la requête 2. Dans un tel cas, l'utilisateur doit enregistrer les valeurs qui seront nécessaires plusieurs fois dans une zone temporaire lors de la première lecture et non pas lire plusieurs fois le même article. 13-2 47 F2 80UR Rev02 Environnement GCOS 7 13.1.2 Consolidation en traitement par lots et sous IOF La consolidation peut être automatique ou manuelle. 13.1.2.1 Consolidation automatique Implicitement la consolidation est automatique, c'est-à-dire qu'au départ la valeur implicite de la commande AUTOCOMMIT est ON. Une consolidation est systématiquement effectuée : • à l'émission d'une commande OPEN, • à l'émission d'une commande CLOSE, • à l'émission d'une commande TERM, • à l'émission d'une demande / pour sortir d'une session REVIEW UPDATE ou d'une commande CHANGE, • à la fin de chaque requête. A l'intérieur des requêtes, l'utilisateur a en outre la possibilité de demander explicitement des consolidations, à l'aide de l'instruction COMMIT ou ROLLBACK. 13.1.2.2 Consolidation manuelle Pour passer en consolidation manuelle, l'utilisateur doit émettre une commande AUTOCOMMIT OFF. Des consolidations restent systématiquement effectuées : • à l'émission d'une commande OPEN, • à l'émission d'une commande CLOSE, • à l'émission d'une commande TERM. Partout ailleurs, l'utilisateur doit demander explicitement une consolidation lorsqu'il le juge nécessaire, en employant les commandes ou les instructions COMMIT et ROLLBACK (cette dernière permettant de ramener un fichier à l'état dans lequel il se trouvait lors de la dernière consolidation). L'utilisateur peut repasser en consolidation automatique, puis de nouveau en consolidation manuelle, etc., en émettant des commandes AUTOCOMMIT ON et AUTOCOMMIT OFF. Remarque : 47 F2 80UR Rev02 Une requête ne peut pas être relancée automatiquement à la suite d'un arrêt prématuré fonctionnel de l'unité de consolidation en cours. Elle doit être réexécutée depuis le début après restauration non actualisée des fichiers. 13-3 IQS-V4 Guide de l'administrateur 13.1.3 Consolidation sous IQS/TDS Le concept de consolidation est plus restrictif sous IOF que sous TDS. C'est pourquoi des instructions supplémentaires, CHECKPOINT, ACCEPT WITH CHECKPOINT et ALTER WITH CHECKPOINT, sont utilisables dans les requêtes IQS/TDS. Sous IQS/TDS, en cas d'arrêt prématuré fonctionnel de l'unité de consolidation en cours, la requête peut être relancée à partir de la dernière consolidation. Pour plus de détails, se reporter au guide de l'utilisateur IQS-V4/TDS (81UR). L'utilisation de points de reprises (checkpoints) dans les requêtes permet à IQS de libérer les ressources base de données chaque fois qu'une grille est visualisée. 13-4 47 F2 80UR Rev02 Environnement GCOS 7 13.2 13.2.1 PARTAGE DE FICHIERS Fichiers aires UFAS Ces fichiers sont partageables sous GAC-EXTENDED au niveau CI. Un CI est la portion du fichier à laquelle accède IQS lors de l'exécution d'une instruction RETRIEVE, WRITE, READ, MODIFY, DELETE, INSERT, etc. Un fichier aire UFAS est un fichier UFAS permanent dont le contenu est mis à disposition des utilisateurs au cours d'une session IQS sous forme d'aire. 13.2.1.1 Fichiers catalogués Si les fichiers sont catalogués, ils doivent l'être avec : • l'option SHARE=MONITOR, • ou l'option SHARE=UNSPEC, et être affectés avec SHARE=MONITOR dans le GCL. S'ils doivent être mis à jour (OPEN UPDATE), ils doivent au minimum être protégés par le journal Avant (JOURNAL=BEFORE). S'il s'agit de fichiers accessibles uniquement en lecture, ils doivent être exploités avec ACCESS=READ. 13.2.1.2 Fichiers non catalogués Les fichiers non catalogués doivent être affectés avec SHARE=MONITOR dans le GCL. S'ils doivent être mis à jour (OPEN UPDATE), ils doivent au minimum être protégés par le journal Avant (JOURNAL=BEFORE). Leur nom de fichier externe (nfe) doit être conforme aux règles GCL et comporter un nom de volume et une classe d'appareils. 13.2.2 Aires IDS/II Les aires IDS/II doivent être cataloguées avec : • l'option SHARE=MONITOR, • ou l'option SHARE=UNSPEC, et être affectés avec SHARE=MONITOR dans le GCL. Elles doivent au minimum être protégées par le journal Avant (JOURNAL=BEFORE). 47 F2 80UR Rev02 13-5 IQS-V4 Guide de l'administrateur 13.2.3 Fichiers de travail Les fichiers de travail IQS ne sont pas gérés par GAC-EXTENDED. Ils peuvent être protégés par les journaux. 13.2.4 Fichiers contrôlés par TDS Tous les fichiers contrôlés par TDS qui sont utilisés au cours d'une session IQS/TDS, même ceux affectés avec SHARE=NORMAL ou SHARE=ONEWRITE, sont gérés par GAC-EXTENDED. 13.2.5 Fichiers protégés par journalisation Le nom de fichier externe d'un fichier ou d'une aire protégé par les journaux ne peut pas être réaffecté avant la fin de la session IQS. De tels fichiers restent protégés jusqu'à l'arrêt d'IQS même si des commandes CLOSE ou TERM sont émises. Toute tentative d'exécution d'une commande ASSIGN pour un tel fichier provoque l'émission d'un message d'erreur. 13-6 47 F2 80UR Rev02 Environnement GCOS 7 13.3 13.3.1 PARTAGE DE RESSOURCES Blocage du traitement Un blocage du traitement (angl. deadlock ou deadly embrace) se produit lorsque les conditions suivantes sont réunies : 1. L'utilisateur X attend une ressource actuellement exploitée par l'utilisateur Y. 2. Un ou plusieurs utilisateurs ont besoin d'une ressource actuellement exploitée par l'utilisateur X. 3. Ces utilisateurs ont besoin de la ressource détenue par X pour pouvoir libérer les ressources qu'ils détiennent. Exemple : L'utilisateur X vient de mettre à jour l'article A et a maintenant besoin de l'article B. L'utilisateur Y vient de mettre à jour l'article B et a maintenant besoin de l'article A. Lorsqu'un blocage se produit : • la requête en cours est annulée, • tous les fichiers font l'objet d'une restauration non actualisée. En mode ligne : • IQS demande à l'utilisateur s'il veut relancer la requête : - s'il répond NO, le guidage V: est visualisé, - s'il répond YES, la requête est relancée automatiquement. En mode menu : • IQS visualise le message : DEADLOCK. THE CURRENT QUERY IS CANCELLED (Blocage. La requête en cours est annulée), • la grille précédente est revisualisée. La relance automatique n'est pas possible. 47 F2 80UR Rev02 13-7 IQS-V4 Guide de l'administrateur Exemple : Relance non demandée V: EXEC <données utilisateur> * Deadlock. The current procedure is cancelled. Do you want to restart it?: NO V: L'utilisateur exécute une requête. Il introduit une valeur de paramètre. Un blocage est détecté. IQS envoie un message, annule la requête et fait subir aux fichiers une restauration non actualisée, puis il demande à l'utilisateur s'il souhaite relancer la requête. Ce dernier ne le souhaite pas. Exemple : Relance demandée V: EXEC <données utilisateur> * Deadlock. The current procedure is cancelled. Do you want to restart it?: YES <données utilisateur> L'utilisateur exécute une requête. Il introduit une valeur de paramètre. Un blocage est détecté. IQS envoie un message, annule la requête et fait subir aux fichiers une restauration non actualisée, puis il demande à l'utilisateur s'il souhaite relancer la requête. Ce dernier répond par l'affirmative et peut alors reprendre son traitement. IOF et TDS Sous IOF, à la suite d'un blocage, la requête peut être relancée depuis le début. Sous TDS et en Traitement par lots, la détection des blocages est automatique et un mécanisme de prévention se déclenche sans intervention de l'utilisateur. La requête est relancée à partir de la dernière consolidation ou du dernier point de reprise. 13-8 47 F2 80UR Rev02 Environnement GCOS 7 13.3.2 Attente prolongée Une attente prolongée (angl. longwait) peut se produire lorsqu'un utilisateur a besoin d'une ressource actuellement détenue par un autre utilisateur. Sous IOF et en traitement par lots, elle est déterminée par le dépassement du délai d'attente maximum défini. Sous TDS, elle est déterminée par le dépassement du délai d'attente maximum défini ou par le fait que la ressource est détenue par une unité de consolidation à laquelle aucun process n'est plus affecté. Si le CI voulu n'est pas libéré dans le délai spécifié dans l'utilitaire CONFIG (GAC ... LONGWAIT=) : • IQS émet un message, • IQS demande à l'utilisateur s'il désire attendre. Si l'utilisateur répond par la négative : - la demande de requête est annulée, tous les fichiers font l'objet d'une restauration non actualisée, le guidage V: (ou, en mode menu, le menu du niveau vue) est visualisé. Si l'utilisateur répond par l'affirmative : - IQS attend la libération du CI, les demandes d'interruption émises par l'utilisateur ne sont plus prises en compte, la requête se poursuit une fois le conflit résolu. Exemple : Attente prolongée V: EXEC * Longwait. You can wait or cancel the current procedure. Do you want to wait? (yes/no): L'utilisateur exécute une requête. Une attente prolongée se produit. Il a le choix entre attendre ou annuler la requête. IOF et TDS Sous IOF, une requête peut être relancée à la suite d'une attente prolongée. Sous TDS et en traitement par lots, la requête est automatiquement relancée à partir de la dernière consolidation. 47 F2 80UR Rev02 13-9 IQS-V4 Guide de l'administrateur 13.4 OPTIMISATION ET PERFORMANCES L'administrateur IQS peut optimiser la gestion des tampons dans une session IQS afin d'améliorer les performances et de réduire le nombre d'E/S. Les différents paramètres permettant d'optimiser la gestion des tampons sont spécifiés dans la procédure de lancement d'IQS. Ces paramètres sont les suivants : 1. SIZE pour la taille de l'espace d'exécution déclaré. 2. POOLSIZE pour la quantité d'espace mémoire réservée aux tampons UFAS. 3. NBBUF dans le groupe de paramètres DEFn, pour définir le nombre de tampons nécessaires par fichier. 4. BUFPOOL dans le groupe de paramètres DEFn, pour définir un pool de tampons. En outre, l'utilitaire de gestion automatique des ressources ARM permet de contrôler et optimiser la consommation des ressources par le système. Pour les aires IDS/II, les commandes dynamiques IDSOPT permettent : • de spécifier si certains fichiers base de données partagent un pool de fichiers (commande BUFFER POOL), • de désactiver la lecture asynchrone de pages intervenant lors de la recherche séquentielle dans une aire (commande SYNCRO), • d'empêcher l'envoi des messages d'avertissement dans l'historique JOR (commande NO WARNING). Bibliographie : Pour plus de détails sur la procédure de lancement d'IQS et les paramètres y figurant, voir le chapitre 6 du présent manuel. Pour plus de détails sur l'utilisation des tampons, voir le Guide de l'utilisateur UFAS-EXTENDED. En ce qui concerne la gestion automatique des ressources, se reporter au Guide de l'utilisateur ARM. Les informations données ci-dessous concernent uniquement IQS sous IOF et en traitement par lots. L'utilisation des tampons sous TDS ainsi que l'emploi des mises à jour différées et des journaux Après est décrite dans le Manuel de l'administrateur TDS. IDSOPT est décrit dans le Manuel de référence IDS/II étendu, Volume 2. 13-10 47 F2 80UR Rev02 Environnement GCOS 7 13.4.1 Paramètre SIZE Il spécifie la taille mémoire totale, en Koctets, dont doit disposer IQS. La valeur recommandée est la suivante : POOLSIZE + 150. L'espace dont la taille est spécifiée par SIZE est appelé espace d'exécution déclaré. 13.4.2 Paramètre POOLSIZE Il définit la taille maximum du pool de tampons UFAS-EXTENDED. Il s'applique à tous les fichiers UFAS, temporaires et permanents, et aux aires IDS/II. La quantité maximum d'espace mémoire que peut utiliser UFAS-EXTENDED pour créer des tampons est spécifiée en Koctets. La valeur implicite de POOLSIZE est 50. La valeur à lui attribuer peut être estimée comme suit : (n * nb-fichiers-UFAS-EXTENDED * taille-maxi-tampon) n a pour valeur 2 dans le cas de fichiers séquentiels et 3 dans le cas de fichiers séquentiels indexés. taille-maxi-tampon est la taille nécessaire pour contenir le plus grand CI. Remarque : En raison du mécanisme de pagination de VMM (gestion de la mémoire virtuelle), POOLSIZE est plus efficace lorsque la taille de CI déclarée est un multiple de 4K. Exemples : Estimation de POOLSIZE Pour des CI de données et des CI d'index de 3K, la valeur recommandée est la suivante : (3 * nb-fichiers * 4K) Pour des CI de données et des CI d'index de 1K (ou absents), la valeur recommandée est la suivante : (2 * nb-fichiers * 4K) 47 F2 80UR Rev02 13-11 IQS-V4 Guide de l'administrateur 13.4.3 Groupe de paramètres DEFn (NBBUF) Chaque fois qu'un fichier est ouvert, UFAS-EXTENDED lui attribue un certain nombre de tampons dans lesquels placer les CI en provenance des disques. Ce nombre est spécifié par le paramètre NBBUF du groupe de paramètres DEFn. La valeur spécifiée dans NBBUF doit permettre à IQS de conserver plusieurs points courants pour le fichier. Si le nombre de tampons est insuffisant pour une unité de consolidation, le code retour BUFNBOV est émis. 13.4.4 Groupe de paramètres DEFn (BUFPOOL) Le paramètre BUFPOOL permet à plusieurs fichiers de partager un même pool de tampons. Il est utile pour les fichiers à mode d'accès direct. Implicitement, il n'y a pas de partage des tampons. 13.5 IQS SANS GAC-EXTENDED Lorsqu'IQS est utilisé sans GAC-EXTENDED, le partage s'effectue au niveau fichier (ou aire) : un utilisateur se voit accorder ou refuser l'accès à la totalité du fichier (ou de l'aire). Un utilisateur donné peut mettre à jour un fichier (ou une aire) avec les paramètres GCOS 7 suivants : SHARE=NORMAL ACCESS=WRITE qui lui assurent l'exclusivité du fichier (ou de l'aire). Aucun autre utilisateur ne pourra accéder au fichier (ou à l'aire) tant que le premier utilisateur n'aura pas terminé. En l'absence de GAC-EXTENDED, cette méthode est la seule permettant de garantir l'intégrité des fichiers. Remarque : 13-12 Dans le cas des fichiers catalogués, la valeur de SHARE peut figurer au catalogue. 47 F2 80UR Rev02 A. Exemple de création d'un système IQS A.1 INTRODUCTION Cette annexe fournit des informations détaillées sur la création d'un système IQS utilisant les schémas IND (schéma UFAS séquentiel indexé) et SEQ (schéma UFAS séquentiel), qui ont servi à illustrer l'emploi des instructions du langage de requêtes dans le Manuel de référence IQS-V4, Volume 2. L'utilisateur est supposé connaître le moniteur interactif IOF (Interactive Operator Facility) de GCOS 7 et avoir certaines connaissances sur IQS, acquises par exemple par la lecture des guides de l'utilisateur IQS. La création du système s'effectue de manière presque totalement interactive au moyen du langage GCL et d'IQS. Dans cette annexe, les commandes sont utilisées en mode expert (NOVICE=0) et en format libre (GCLFORM=FREE). Il est conseillé à l'utilisateur de garder actif le mode menu GCL (MENU=1) afin qu'en cas de besoin, il puisse obtenir un guidage pour l'introduction des commandes (en frappant le nom de la commande suivi d'un point d'interrogation) et corriger facilement un paramètre en cas d'erreur. Ce mode lui permet en outre d'obtenir des textes explicatifs sur les différents paramètres utilisés ou sur la commande elle-même (en frappant le point d'interrogation avant le nom de la commande). A noter que les commandes présentées dans cette annexe sont des commandes réelles ayant servi à créer un système. Certains paramètres sont donc spécifiques à l'installation considérée (les identifications de disques par exemple). Ces paramètres sont toutefois réduits au strict minimum et signalés à chaque fois. Pour travailler sous IOF, l'utilisateur doit être associé à un projet et sa description doit figurer dans le catalogue de site. Il doit également disposer de suffisamment d'espace disque. Remarque : 47 F2 80UR Rev02 IQS sous TDS n'est pas traité ici. Dans ce cas, une bibliothèque d'unités compilées (CU) est nécessaire. A-1 IQS-V4 Guide de l'administrateur A.2 REPERTOIRE Tous les fichiers utilisés dans le système sont enregistrés dans le même catalogue et sous le même répertoire. Le catalogue indique l'implantation des fichiers et les règles de partage. Un répertoire sert normalement à identifier tous les fichiers d'un projet donné. A l'intérieur d'un projet, il est également possible de définir un sous-ensemble de fichiers associés à une partie du projet. Ces fichiers sont enregistrés dans un sous-répertoire qui peut lui-même se subdiviser en d'autres sous-répertoires si la complexité du projet l'exige. Le répertoire permet à l'utilisateur interactif de faire référence à ses fichiers sous une forme extrêmement concise. A.2.1 Sous-répertoire Dans cet exemple, le répertoire maître et le catalogue utilisés par le projet ont déjà été créés. Le sous-répertoire qui va être utilisé peut être créé au moyen de la commande CREATE_DIR (abréviation CRDIR) comme suit : CREATE_DIR SUP3.JPP; Cette commande a pour effet d'enregistrer le répertoire SUP3.JPP dans le catalogue SUP3.CATALOG, SUP3 étant le nom du projet utilisé. L'utilisateur devra remplacer SUP3 par le nom de son projet et JPP par le nom de son sous-répertoire. A.2.2 Répertoire de référence Tous les fichiers créés seront enregistrés dans un répertoire qui devra être déclaré par l'utilisateur comme répertoire de référence au moyen de la directive MODIFY_PROFILE (abréviation MP) : MODIFY_PROFILE WD=SUP3.JPP; (en abrégé MP WD=SUP3.JPP; ou même MP SUP3.JPP;) en remplaçant SUP3 et JPP par ses propres valeurs comme indiqué plus haut. A.2.3 Informations sur le contenu d'un répertoire L'utilisateur pourra obtenir des informations sur les fichiers de son répertoire de référence en frappant la commande : LIST_DIR; (ou LSDIR;) Pour chaque fichier, il recevra les informations de gestion figurant au catalogue (partage, journalisation, etc.) et des informations telles que dates de création et de modification, taille et implantation (nom de volume et classe d'appareils). A-2 47 F2 80UR Rev02 Exemple de création d'un système IQS A.3 DESCRIPTION DU SYSTEME Le système décrit ici utilise trois bibliothèques, deux fichiers de données et un certain nombre de fichiers de travail qui sont tous catalogués sous le sous-répertoire JPP du répertoire maître SUP3 (qui a le même nom que le projet). Les noms de tous les fichiers et sous-fichiers se rapportant à un même schéma commencent par un préfixe de trois caractères identifiant ce schéma : SEQ IND A.3.1 pour le schéma UFAS séquentiel. pour le schéma UFAS séquentiel indexé. Bibliothèques utilisées Les trois bibliothèques portent les noms suivants : QSL QBIN QDDL A.3.2 contenant les versions origine des schémas, requêtes, macros et descriptions d'état, et, éventuellement, des procédures GCL. contenant les versions résultantes (compilées) des requêtes, macros, descriptions d'état, formats, grilles et procédures GCL. contenant les schémas compilés par DDPROC et IQS, et les vues et structures définies par l'utilisateur. Fichiers de données utilisés Il existe un fichier de données par schéma : SEQ-DATA IND-DATA A.3.3 pour le schéma séquentiel pour le schéma séquentiel indexé ; il contient son propre index. Fichiers de travail utilisés Il n'existe qu'un fichier de travail UFAS mais deux sous-fichiers de bibliothèque peuvent également servir de fichiers de travail : WF1 fichier de travail UFAS séquentiel associé au nom de fichier interne WF1. QSL SUBFILE=LF1 sous-fichier associé au nom de fichier interne LF1. QSL SUBFILE=LF2 sous-fichier associé au nom de fichier interne LF2. Le point précédant le nom signifie que ces fichiers appartiennent au répertoire de référence. Ils peuvent donc être identifiés sous cette forme abrégée. Le nom d'accès complet de .WF1, par exemple, serait SUP3.JPP.WF1. 47 F2 80UR Rev02 A-3 IQS-V4 Guide de l'administrateur A.4 ORDRE D'EXECUTION DES COMMANDES Le système est créé au moyen des commandes décrites dans les paragraphes qui suivent, dans l'ordre indiqué. Chaque commande doit être exécutée sans erreur avant de passer à la suivante. A.4.1 Création du répertoire Voir ci-dessus. A.4.2 Création des bibliothèques et des fichiers Les commandes utilisées pour la création des bibliothèques et des fichiers sont respectivement BUILD_LIBRARY (BLIB) et BUILD_FILE (BF). L'utilisateur doit remplacer L686:MS/D500 par sa propre identification de volume. S: BUILD_LIBRARY .QSL:L686:MS/D500 SIZE=1 MEMBERS=200; Cette commande crée la bibliothèque origine. S: BLIB .QBIN:L686:MS/D500 SIZE=1 MEMBERS=200 TYPE=BIN; Cette commande crée la bibliothèque binaire. S: BLIB .QDDL:L686:MS/D500 SIZE=1 MEMBERS=200 TYPE=BIN; Cette commande crée la bibliothèque des schémas. S: BUILD_FILE .SEQ-DATA:L686:MS/D500 UFAS=SEQ SIZE=1 -: CISIZE=5120 RECSIZE=99 RECFORM=V; Cette commande crée le fichier de données séquentiel. S: BF .IND-DATA:L686:MS/D500 UFAS=INDEXED SIZE=2 -: CISIZE=5120 RECSIZE=139 KEYLOC=2 KEYSIZE=60 -: SECIDX=62:11:DUPREC; Cette commande crée le fichier de données séquentiel indexé. S: BF .WF1:L686:MS/D500 UFAS=SEQ SIZE=1 CISIZE=5120 -: RECSIZE=120 RECFORM=V; Cette commande crée le fichier de travail. Les commandes ci-dessus sont présentées en mode expert, qui permet une introduction concise et rapide, mais qui n'autorise aucune erreur de frappe. Il existe également un mode "semi-expert" d'utilisation plus facile pour les commandes longues. Dans ce mode, l'utilisateur introduit la première ligne en s'assurant qu'elle ne comporte pas d'erreur, puis il frappe un point-virgule (;) ; il bénéficie ensuite d'un guidage pour les paramètres restants. A-4 47 F2 80UR Rev02 Exemple de création d'un système IQS Si l'utilisateur fait une erreur de frappe n'entravant pas la création du fichier (dans RECSIZE par exemple ou SECIDX), il doit supprimer le fichier et recommencer. La suppression s'effectue au moyen de la commande DELETE_FILE (ou DLF) : S: DLF .nom-fichier A.4.3 Définition des bibliothèques de travail Une fois les bibliothèques créées, elles peuvent être déclarées comme bibliothèques de travail au moyen des directives suivantes : S: MWLIB SL .QSL; implicite) (bibliothèque de travail origine S: MWLIB BIN .QBIN implicite) (bibliothèque de travail binaire S: MWINLIB BIN (.QDDL .QBIN) (bibliothèque de travail binaire implicite ou bibliothèque d'entrée uniquement) Ces bibliothèques de travail seront utilisées par la plupart des processeurs, y compris IQS, pour charger les paramètres implicites au moment de leur appel (SLLIB, BINLIB et DDLIBn dans IQS par exemple). A noter que les directives MP, MWLIB et MWINLIB sont généralement incorporées à la séquence de lancement de l'utilisateur, ce qui évite d'avoir à les introduire manuellement au début de chaque session IOF. A.4.4 Description des schémas Tout schéma origine doit être compilé pour qu'IQS puisse accéder aux données qu'il décrit. Il doit d'abord être créé au moyen de l'éditeur ligne de GCOS 7 (TEXT EDITOR) qui est appelé par la commande suivante : S: EDIT; (ou ED;) Cet éditeur utilise la bibliothèque de travail origine (.QSL). Si l'utilisateur n'est pas familiarisé avec l'éditeur ligne et qu'il dispose d'un terminal approprié, il peut trouver plus pratique d'employer l'éditeur plein écran (FSE), dont l'appel s'effectue au moyen de la commande : S: FSE; Dans le système considéré ici, deux schémas sont à créer : IND et SEQ. Les textes origine de ces schémas sont fournis aux figures A-1 et A-2. A noter que les deux schémas comportent de nombreuses lignes identiques ; de ce fait, le schéma SEQ peut être créé en modifiant simplement le texte du schéma IND. A noter également que chaque phrase d'un schéma doit se terminer par un point. A noter que le langage DDL de création de schéma est décrit au chapitre 4. 47 F2 80UR Rev02 A-5 IQS-V4 Guide de l'administrateur 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 170 180 190 200 210 220 230 240 250 260 270 280 290 300 310 320 330 340 350 360 370 380 390 400 410 420 430 440 450 460 470 480 S C H E M A N A M E IS IN D . A R E A N A M E IS IN D -A O R G A N IZ A T IO N IN D E X E D U S IN G K E Y -1. R E C O R D N A M E IS U N IV E R S IT Y W IT H IN IN D -A R E C O R D -T Y P E D E F IN E D B Y C H E C K O N T Y P K E Y K E Y -1 IS A S C E N D IN G U -N A M E , F IL2, F IL3 D U P N O T K E Y K E Y -2 IS A S C E N D IN G F IL4 D U P LA S T . 02 T YP T Y P E IS C H A R A C T E R 1 C H E C K V A LU E "U ". 02 U -N A M E T Y P E IS C H A R A C T E R 20. 02 F IL2 T Y P E IS C H A R A C T E R 20 C H E C K V A LU E " ". 02 F IL3 T Y P E IS C H A R A C T E R 20 C H E C K V A LU E " ". 02 F IL4 T Y P E IS C H A R A C T E R 11 C H E C K V A LU E " ". 02 C IT Y T Y P E IS C H A R A C T E R 25. R E C O R D N A M E IS C O LLE G E W IT H IN IN D -A R E C O R D -T Y P E D E F IN E D B Y C H E C K O N T Y P K E Y K E Y -1 IS A S C E N D IN G C -U -N A M E , C O L-N A M E , F IL3 D U P N O T K E Y K E Y -2 IS A S C E N D IN G F IL4 D U P LA S T . 02 T Y P T YP E IS C H A R A C T E R 1 C H E C K V A LU E "C ". 02 C -U -N A M E T Y P E IS C H A R A C T E R 20. 02 C O L-N A M E T Y P E IS C H A R A C T E R 20. 02 F IL3 T Y P E IS C H A R A C T E R 20 C H E C K V A LU E " ". 02 F IL4 T Y P E IS C H A R A C T E R 11 C H E C K V A LU E " ". R E C O R D N A M E IS S T U D E N T W IT H IN IN D -A R E C O R D -T Y P E D E F IN E D B Y C H E C K O N T Y P K E Y K E Y -1 IS A S C E N D IN G S -U -N A M E , S -C O L-N A M E S -N A M E D U P N O T K E Y K E Y -2 IS A S C E N D IN G S O C IA L-S E C D U P LA S T . 02 T Y P T YP E IS C H A R A C T E R 1 C H E C K V A LU E "S ". 02 S -U -N A M E T YP E IS C H A R A C T E R 20. 02 S -C O L-N A M E T YP E IS C H A R A C T E R 20. 02 S -N A M E T Y P E IS C H A R A C T E R 20. 02 S O C IA L-S E C T Y P E IS C H A R A C T E R 11. 02 G R A D E T Y P E IS C H A R A C T E R 9 C H E C K V A LU E "JU N IO R " "S E N IO R ". 02 B IR T H -D A T E . 04 B -Y E A R T Y P E IS U N S IG N E D U N P A C K E D D E C IM A L 2. 04 B -M O N T H T Y P E IS U N S IG N E D U N P A C K E D D E C IM A L 2 C H E C K V A LU E 1 T H R U 12. 04 B -D A Y T Y P E IS U N S IG N E D U N P A C K E D D E C IM A L 2 C H E C K V A LU E 1 T H R U 31. 02 F E E S -D U E T Y P E IS S IG N E D B IN A R Y 31. 02 D IP LO M A T Y P E IS C H A R A C T E R 12 O C C U R S 4. S E T N A M E IS U -C O W N E R IS U N IV E R S IT Y M E M B E R IS C O LLE G E . S E T N A M E IS C -S O W N E R IS C O LLE G E M E M B E R IS S T U D E N T . E N D -S C H E M A . Figure A-1. DDL du schéma origine IND A-6 47 F2 80UR Rev02 Exemple de création d'un système IQS 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 170 180 190 200 210 220 230 240 250 260 270 280 290 300 310 320 330 340 350 360 370 380 390 400 S C H E M A N A M E IS S E Q . A R E A N A M E IS S E Q -A . R E C O R D N A M E IS U N IV E R S IT Y W IT H IN S E Q -A R E C O R D -T Y P E D E F IN E D B Y C H E C K O N T Y P . 02 T Y P T Y P E IS C H A R A C T E R 1 C H E C K V A LU E "U ". 02 U -N A M E T YP E IS C H A R A C T E R 20. 02 C IT Y T Y P E IS C H A R A C T E R 25. R E C O R D N A M E IS C O LLE G E W IT H IN S E Q -A R E C O R D -T Y P E D E F IN E D B Y C H E C K O N T Y P . 02 T Y P T Y P E IS C H A R A C T E R 1 C H E C K V A LU E "C ". 02 C O L-N A M E T YP E IS C H A R A C T E R 20. R E C O R D N A M E IS D E P A R T M E N T W IT H IN S E Q -A R E C O R D -T Y P E D E F IN E D B Y C H E C K O N T Y P . 02 T Y P T Y P E IS C H A R A C T E R 1 C H E C K V A LU E "D ". 02 D E P A R T -N A M E T Y P E IS C H A R A C T E R 20. R E C O R D N A M E IS S T U D E N T W IT H IN S E Q -A R E C O R D -T Y P E D E F IN E D B Y C H E C K O N T Y P . 02 T Y P T Y P E IS C H A R A C T E R 1 C H E C K V A LU E "S ". 02 S -N A M E T Y P E IS C H A R A C T E R 20. 02 S O C IA L-S E C T Y P E IS C H A R A C T E R 11. 02 G R A D E T Y P E IS C H A R A C T E R 9 C H E C K V A LU E "JU N IO R " "S E N IO R ". 02 B IR T H -D A T E . 04 B -Y E A R T Y P E IS U N S IG N E D U N P A C K E D D E C IM A L 2. 04 B -M O N T H T Y P E IS U N S IG N E D U N P A C K E D D E C IM A L 2 C H E C K V A LU E 1 T H R U 12. 04 B -D A Y T Y P E IS U N S IG N E D U N P A C K E D D E C IM A L 2 C H E C K V A LU E 1 T H R U 31. 02 F E E S -D U E T Y P E IS S IG N E D B IN A R Y 31. 02 D IP LO M A T Y P E IS C H A R A C T E R 12 O C C U R S 4. S E T N A M E IS U -C O W N E R IS U N IV E R S IT Y M E M B E R IS C O LLE G E . S E T N A M E IS C -S O W N E R IS C O LLE G E M E M B E R IS S T U D E N T . S E T N A M E IS C -D O W N E R IS C O LLE G E M E M B E R IS D E P A R T M E N T . E N D -S C H E M A . Figure A-2. DDL du schéma origine SEQ Une fois créés, les schémas origine doivent être compilés par MAINTAIN_DD (voir chapitre 4). 47 F2 80UR Rev02 A-7 IQS-V4 Guide de l'administrateur A.4.5 Appel d'IQS Après compilation du schéma origine et obtention d'un schéma résultant DDL, l'utilisateur peut activer le processeur IQS par les commandes suivantes : S: IQS -: AREA1=IND-A .IND-DATA -: AREA2=SEQ-A .SEQ-DATA -: FILE3=LF1 .QSL..LF1 -: FILE4=LF2 .QSL..LF2 -: FILE5=WF1 .WF1; AREAn est strictement équivalent à FILEn ; il sert uniquement à améliorer la lisibilité et n'implique pas que le fichier spécifié sera nécessairement utilisé comme aire. Une fois ces commandes introduites, l'utilisateur est à l'intérieur d'IQS au niveau commande (C:). Si IQS est fréquemment utilisé, il vaut mieux éviter d'avoir à refrapper à chaque fois tous les paramètres. Pour ce faire, l'utilisateur peut créer sa propre procédure GCL qui lancera automatiquement IQS avec les paramètres appropriés (voir chapitre 6). La figure A-3 montre la création et l'enregistrement de cette procédure personnalisée, appelée ici MYIQS, au moyen du processeur MAINTAIN_COMMAND (abréviation MNCMD). L'utilisateur n'a plus ensuite qu'à frapper MYIQS pour la lancer. A-8 47 F2 80UR Rev02 Exemple de création d'un système IQS S: M NCM D; A ppel du process eur M A IN T A IN _C O M M A N D . C: ED; A ppel de l'éditeur ligne pour introduire le contenu de la procédure à créer ; R: A I: I: I: I: I: I: I: I: I: I: I: I: I: P R O C N A M E = M Y IQ S ; M W LIB B IN S U P 3.JP P .Q B IN ; C A LL IQ S S LLIB = S U P 3.JP P .Q S L B IN LIB = S U P 3.JP P .Q B IN D D LIB = S U P 3.J P P .Q D D L A R E A 1= IN D -A A S G 1= S U P 3.JP P .IN D -D A T A A R E A 2= S E Q -A A S G 2= S U P 3.JP P .S E Q -D A T A F ILE 3= LF 1 A S G 3= S U P 3.JP P .Q S L..LF 1 F ILE 4= LF 2 A S G 4= S U P 3.JP P .Q S L..LF 2 F ILE 5= W F 1 A S G 5= S U P 3.J P P .W F 1; ENDPROC; / F in du tex te. R : W (C M D )M Y IQ S R angem ent de la procédure dans la bibliothèque origine. R: / S ortie de l'éditeur. C : D O M A IN IO F ; Indication du dom aine G C O S 7 dans lequel la procédure sera utilisée. C : C O M P M Y IQ S B R IE F ; C om pilation de la procédure et rangem ent dans l'unité de bibliothèque M Y IQ S . C: / S ortie du processeur M A IN T A IN _C O M M A N D . Figure A-3. Création d'une procédure GCL d'appel d'IQS 47 F2 80UR Rev02 A-9 IQS-V4 Guide de l'administrateur A.4.6 Compilation d'un schéma sous IQS Après avoir compilé ses schémas sous GCOS 7 (par DDLPROC), l'utilisateur doit les soumettre à une autre compilation sous IQS (voir chapitre 7). Pour ce faire, il doit lancer IQS et utiliser la commande COMPILE SCHEMA au niveau commande (C:) comme suit : C: COMPILE SCHEMA IND C: CMSC SEQ SCHEMA) (CMSC est l'abréviation de COMPILE IQS est maintenant prêt à traiter les bases de données correspondantes. A.4.7 Création d'une base de données séquentielle indexée Après avoir lancé IQS, l'utilisateur introduit les commandes suivantes : C: SELECT IND V: OPEN UPDATE Ces commandes permettent la sélection du schéma et l'ouverture des aires en mise à jour. V: AUTO L'utilisateur frappe alors le texte de la requête IND-CREATE (voir figure A-4). Les renfoncements n'étant pas obligatoires, il est possible d'introduire plus d'une instruction par ligne. Les renfoncements peuvent être obtenus automatiquement au moyen de la commande TRANSLATE QUERY (mais dans ce cas les commentaires seront supprimés) et la numérotation finale des lignes au moyen de RENUMBER. Il est recommandé de sauvegarder la requête origine dans SLLIB avant de la traduire. L'utilisateur quitte le mode saisie en frappant une barre oblique, puis sauvegarde la requête comme suit : I: / V: SAVE QUERY IND-CREATE Il demande ensuite sa compilation et son exécution par la commande : V: GO A l'exécution, le système lui demande d'introduire les valeurs des différentes zones spécifiées par les instructions ACCEPT, en commençant par U-NAME. Les réponses sont indiquées à la figure A-5. Il peut corriger ses entrées à tout moment en frappant le caractère <, provoquant le retour au début de l'instruction ACCEPT courante. L'utilisateur indique la fin des entrées en introduisant END en réponse aux guidages COL-NAME et U-NAME comme indiqué à la figure A-5. Une fois effectué le chargement de la base séquentielle indexée, l'utilisateur peut procéder à celui de la base séquentielle. A-10 47 F2 80UR Rev02 Exemple de création d'un système IQS ---------------------------------------------------------------| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 10 : CREATE UNIVERSITY 20 : 30 : 40 : IF U-NAME = "END" 50 : THEN 60 : 70 : END 80 : INSERT UNIVERSITY 90 : RETRIEVE UNIV = UNIVERSITY 100 : 110 : 120 : ACCEPT COL-NAME 130 : IF COL-NAME = "END" 140 : THEN 150 : 160 : END 170 : INSERT COLLEGE 180 : RETRIEVE COLL1 = COLLEGE 190 : 200 : 210 : 220 : 230 : SOCIAL-SEC, 240 : GRADE, 250 : BIRTH-DATE, 260 : FEES-DUE, 270 : DIPLOMA 280 : IF S-NAME = "END" 290 : THEN 300 : 47 F2 80UR Rev02 ACCEPT U-NAME CITY EXIT WHERE U-NAME = U-NAME OF UNIVERSITY CREATE COLLEGE EXIT WHERE COL-NAME OF COLL1 = COL-NAME OF COLLEGE CREATE STUDENT ACCEPT S-NAME, EXIT A-11 IQS-V4 Guide de l'administrateur | | | | | | | | | | | | | | | | | | | | | | 310 : END 320 : INSERT STUDENT 330 : REPEAT 340 : 350 : END 360 : REPEAT 370 : 380 : END 390 : REPEAT 400 : END END END ---------------------------------------------------------------- Figure A-4. Création d'un fichier séquentiel indexé : requête IND-CREATE A-12 47 F2 80UR Rev02 Exemple de création d'un système IQS U -N A M E : N E W T O W N S C IT Y : S A N -F R A N C IS C O C O L-N A M E : M E D IC IN E S -N A M E : A D A M S S O C IA L-S E C : 136 45 7341 G R A D E : JU N IO R B IR T H -D A T E B -Y E A R : 61 B -M O N T H : 10 B -D A Y : 09 F E E S -D U E : 2000 D IP LO M A 1 : ; S -N A M E : S T E V E N S O N S O C IA L-S E C : 237 75 1523 G R A D E : S E N IO R B IR T H -D A T E B -Y E A R : 59 B -M O N T H : 11 B -D A Y : 23 F E E S -D U E : 2500 D IP LO M A 1 : A LG E B R A D IP LO M A 2 : ; S -N A M E : W A LS O N S O C IA L-S E C : 241 13 8653 G R A D E : S E N IO R B IR T H -D A T E B -Y E A R : 57 B -M O N T H : 08 B -D A Y : 15 F E E S -D U E : 1900 D IP LO M A 1 : ; S -N A M E : E N D S O C IA L-S E C : ; C O L-N A M E : P H A R M A C Y S -N A M E : E N D S O C IA L-S E C : ; C O L-N A M E : S C IE N C E S -N A M E : JO H N S T O N E S O C IA L-S E C : 140 26 1344 G R A D E : JU N IO R B IR T H -D A T E B -Y E A R : 63 B -M O N T H : 01 B -D A Y : 22 F E E S -D U E : 800 D IP LO M A 1 : ; Figure A-5. Données introduites à l'exécution de IND-CREATE (1/2) 47 F2 80UR Rev02 A-13 IQS-V4 Guide de l'administrateur S -N A M E : M U LLE R S O C IA L-S E C : 243 25 1313 G R A D E : S E N IO R B IR T H -D A T E B -Y E A R : 58 B -M O N T H : 04 B -D A Y : 19 F E E S -D U E : 1200 D IP LO M A 1 : A LG E B R A D IP LO M A 2 : M E C H A N IC S D IP LO M A 3 : ; S -N A M E : S M IT H S O C IA L-S E C : 139 15 4973 G R A D E : JU N IO R B IR T H -D A T E B -Y E A R : 62 B -M O N T H : 07 B -D A Y : 16 F E E S -D U E : 1100 D IP LO M A 1 : ; S -N A M E : W E B B S O C IA L-S E C : 144 26 1316 G R A D E : S E N IO R B IR T H -D A T E B -Y E A R : 56 B -M O N T H : 03 B -D A Y : 27 F E E S -D U E : 1500 D IP LO M A 1 : A LG E B R A D IP LO M A 2 : A N A LY S IS D IP LO M A 3 : G E R M A N D IP LO M A 4 : ; S -N A M E : E N D S O C IA L-S E C : ; C O L-N A M E : E N D U -N A M E : O LD T O W N S C IT Y : C H IC A G O C O L-N A M E : E C O N O M Y S -N A M E : E N D S O C IA L-S E C : ; U -N A M E : N O T O W N S C IT Y : C O L-N A M E : E N D U -N A M E : E N D C IT Y : V: Figure A-5. Données introduites à l'exécution de IND-CREATE (2/2) A-14 47 F2 80UR Rev02 Exemple de création d'un système IQS A.4.8 Création d'une base de données séquentielle L'instruction INSERT du langage de requêtes ne peut pas être employée pour créer une base de données séquentielle ; par contre, l'instruction WRITE permet de créer un fichier de travail séquentiel (fichier non défini par un schéma), en utilisant des structures définies à partir de descriptions d'article. L'utilisateur commence (au niveau C:) en introduisant les commandes suivantes (SL est C: SL SEQ V: DFST ST-UNIV AS RECORD UNIVERSITY V: DFST ST-COLLEGE AS RECORD COLLEGE V: DFST ST-DEPART AS RECORD DEPARTMENT V: DFST ST-STUD AS RECORD STUDENT V: / Les structures ainsi définies à partir de descriptions d'article sont maintenant utilisables avec n'importe quel schéma. Une base de données séquentielle peut également être créée en utilisant l'instruction ACCEPT cependant, il peut être intéressant de la créer à partir de la base séquentielle indexée comme dans l'exemple qui suit. L'utilisateur introduit : C: SL IND V: OPEN Puis il saisit la requête SEQ-CREATE décrite à la figure A-6 et frappe la commande : V: ASSIGN FILE-SEQ TO IFN SEQ-A Le nom logique du fichier FILE-SEQ utilisé dans la requête est ainsi associé au nom de fichier interne de la base de données séquentielle. L'utilisateur peut alors lancer la requête par la commande GO. 47 F2 80UR Rev02 A-15 IQS-V4 Guide de l'administrateur ------------------------------------------------------------------------| | | 10 : DEFINE SEQ-UNIVERSITY IDEM ST-UNIV, | | 20 : SEQ-COLLEGE IDEM ST-COLLEGE, | | 30 : SEQ-DEPARTMENT IDEM ST-DEPART, | | 40 : SEQ-STUDENT IDEM ST-STUD | | 50 : LET TYPE OF SEQ-UNIVERSITY = "U" | | 60 : LET TYPE OF SEQ-COLLEGE = "C" | | 70 : LET TYPE OF SEQ-DEPARTMENT = "D" | | 80 : LET TYPE OF SEQ-STUDENT = "S" | | 90 : RETRIEVE UNIVERSITY | | 100 : LET U-NAME OF SEQ-UNIVERSITY = U-NAME OF UNIVERSITY | | 110 : LET CITY OF SEQ-UNIVERSITY = CITY OF UNIVERSITY | | 120 : WRITE SEQ-UNIVERSITY | | 130 : TO FILE-SEQ | | 140 : RETRIEVE COLLEGE | | 150 : LET COL-NAME OF SEQ-COLLEGE = COL-NAME OF COLLEGE | | 160 : WRITE SEQ-COLLEGE | | 170 : TO FILE-SEQ | | 180 : IF COL-NAME OF COLLEGE = "MEDICINE" | | 190 : THEN | | 200 : LET DEPART-NAME = "CARDIOLOGY" | | 210 : WRITE SEQ-DEPARTMENT | | 220 : TO FILE-SEQ | | 230 : LET DEPART-NAME = "PATHOLOGY" | | 240 : WRITE SEQ-DEPARTMENT | | 250 : TO FILE-SEQ | | 260 : END | | 270 : IF COL-NAME = "SCIENCE" | | 280 : THEN | | 290 : LET DEPART-NAME = "MATHEMATICS" | | 300 : WRITE SEQ-DEPARTMENT | | 310 : TO FILE-SEQ | | 320 : LET DEPART-NAME = "CHEMISTRY" | | 330 : WRITE SEQ-DEPARTMENT | | 340 : TO FILE-SEQ | | 350 : LET DEPART-NAME = "PHYSICS" | | 360 : WRITE SEQ-DEPARTMENT | | 370 : TO FILE-SEQ | | 380 : END | | 390 : RETRIEVE STUDENT | | 400 : LET S-NAME OF SEQ-STUDENT = S-NAME OF STUDENT | | 410 : LET SOCIAL-SEC OF SEQ-STUDENT = SOCIAL-SEC OF STUDENT | | 420 : LET GRADE OF SEQ-STUDENT = GRADE OF STUDENT | | 430 : LET BIRTH-DATE OF SEQ-STUDENT = BIRTH-DATE OF STUDENT | | 440 : LET FEES-DUE OF SEQ-STUDENT = FEES-DUE OF STUDENT | | 450 : LET DIPLOMA OF SEQ-STUDENT = DIPLOMA OF STUDENT | | 460 : WRITE SEQ-STUDENT | | 470 : TO FILE-SEQ | | 480 : END | | 490 : END | | 500 : END | | | ------------------------------------------------------------------------- Figure A-6. Création d'un fichier séquentiel : requête SEQ-CREATE A-16 47 F2 80UR Rev02 Exemple de création d'un système IQS L'association entre FILE-SEQ et le nom de fichier interne SEQ-A doit maintenant être annulée par la commande : V: ASSIGN FILE-SEQ L'utilisateur doit frapper : V: / C: SL SEQ V: OPEN La base de données séquentielle est maintenant prête pour exécuter les exemples qui figurent dans le Manuel de référence IQS-V4, Volume 2 ou pour l'exploiter librement. A.4.9 Suppression du contenu de la base de données Si, au cours des manipulations décrites ci-dessus, l'utilisateur souhaite supprimer le contenu de la base courante, il peut le faire en introduisant : RETRIEVE UNIVERSITY DELETE UNIVERSITY WITH MEMBERS END 47 F2 80UR Rev02 A-17 B. Sauvetage des index secondaires B.1 INTRODUCTION Cette annexe concerne les utilisateurs employant des fichiers UFAS séquentiel indexé avec index secondaires. SD3.IQS.CUSTOMERS et SD3.IQS.ORDERS, qui font partie du schéma SCH-CUSTOMERS, sont des exemples de tels fichiers (ou aires). Les clés secondaires apparaissent en gras dans le schéma à la figure B-1. A la suite d'un arrêt prématuré ou d'un blocage du système, il peut arriver que les clés secondaires soient dans un état instable. Dans ce cas, à l'émission d'une commande OPEN sous IQS, le message suivant est visualisé : *** DUF07 IFN=nfi SECONDARY INDEXES HAVE TO BE SALVAGED Il est possible d'éviter une telle instabilité en protégeant le fichier par le journal Avant. Dans ce cas, une restauration non actualisée du fichier est effectuée à la relance du système et le sauvetage n'est pas nécessaire. Toutefois, l'utilisation du journal Avant implique une charge E/S accrue. Un fichier (ou aire) est dans un état instable lorsqu'il n'a pas été fermé ou laissé dans un état stable par suite d'un incident. De ce fait, les labels début et fin n'ont pas été écrits correctement. Un index secondaire est dans un état instable lorsqu'il n'existe plus de rubriques d'index pour certaines occurrences d'article ou lorsque des rubriques d'index ne pointent sur aucune occurrence d'article. 47 F2 80UR Rev02 B-1 IQS-V4 Guide de l'administrateur B.2 SAUVETAGE DES INDEX SECONDAIRES Pour effectuer le sauvetage des index secondaires, l'utilisateur doit d'abord quitter IQS. Une fois au niveau système (guidage S:), il doit appeler l'utilitaire SORT_INDEX (SRTIDX) en spécifiant le nom du fichier, avec le format suivant : SRTIDX [OUTFILE=] (description-fichier-sortie) Exemple : S: SRTIDX (SD3.IQS.CUSTOMERS) Ici, SD3.IQS.CUSTOMERS est le fichier faisant l'objet du sauvetage. Les clés figurant dans l'index secondaire sont triées en ordre croissant. B.3 INFORMATIONS COMPLEMENTAIRES • Si l'utilitaire SRTIDX rencontre plusieurs clés ayant la même valeur alors que les valeurs de clés identiques sont interdites, il les supprime toutes sauf la première. Le message suivant est visualisé : WARNING DU03.80 FORBIDDEN DUPLICATE KEY FOR <valeur-clé> • Si l'utilitaire SRTIDX rencontre un problème pour un fichier géré par GACEXTENDED, le message suivant peut être visualisé : ***DU04.51 ABNORMALLY PROCESSING: SECONDARY INDEX NOT CREATED RC = code-retour -> GAC 10,OPTERR Ce type de problème peut être résolu en relançant SRTIDX, mais cette fois-ci avec SHARE=NORMAL dans la description du fichier. Par exemple : S: SRTIDX (SD3.IQS.ORDERS SHARE=NORMAL) • Une fois l'exécution de SRTIDX terminée, un compte rendu est produit dont le format est le suivant : SR010 SORT REPORT : RELEASED = <valeur> <valeur> RETURNED = Il indique le nombre d'articles traités, ce nombre incluant les articles à valeurs de clés identiques. Les informations fournies ici constituent un bref aperçu du sauvetage des index secondaires pour les fichiers (ou aires) UFAS séquentiel indexé utilisés au cours d'une session IQS. Les utilisateurs souhaitant obtenir des informations complètes sur les index primaires et secondaires pourront se reporter aux manuels sur les utilitaires de gestion de données et sur UFAS-EXTENDED. B-2 47 F2 80UR Rev02 Sauvetage des index secondaires S C H E M A N A M E IS S C H -C U S T O M E R S . A R E A N A M E IS A -C U S T O R G A N IZ A T IO N IS IN D E X E D U S IN G K E Y -C U S T . A R E A N A M E IS A -O R D E R O R G A N IZ A T IO N IS IN D E X E D U S IN G K E Y -O R D E R . A R E A N A M E IS A -IT E M O R G A N IZ A T IO N IS IN D E X E D U S IN G K E Y -IT E M . R E C O R D N A M E IS C U S T O M E R S K E Y K E Y -C U S T IS A S C E N D IN G C U -C O D E D U P LIC A T E S N O T K E Y K E Y -C IT Y IS A S C E N D IN G C U -C IT Y D U P LIC A T E S LA S T W IT H IN A -C U S T . 02 02 02 02 C U -C O D E C U -N A M E C U -S T R E E T C U -C IT Y T Y P E IS C H A R A C T E R 6. T Y P E IS C H A R A C T E R 15. T Y P E IS C H A R A C T E R 20. T Y P E IS C H A R A C T E R 15. R E C O R D N A M E IS O R D E R S K E Y K E Y -O R D E R IS A S C E N D IN G O R D -C O D E , O R D -F ILLE R D U P LIC A T E S N O T K E Y K E Y -C U -C O D E IS A S C E N D IN G O R D -C U -C O D E D U P LIC A T E S LA S T K E Y K E Y -IT -C O D E IS A S C E N D IN G O R D -F ILLE R D U P LIC A T E S LA S T R E C O R D -T YP E D E F IN E D B Y C H E C K O N O R D -T Y P E W IT H IN A -O R D E R . 02 O R D -T Y P E T Y P E IS C H A R A C T E R 1 C H E C K IS V A LU E "O ". 02 O R D -C O D E T Y P E IS C H A R A C T E R 7. 02 O R D -F ILLE R T Y P E IS C H A R A C T E R 4 C H E C K IS V A LU E " ". 02 O R D -C U -C O D E T Y P E IS C H A R A C T E R 6. 02 O R D -D A T E T Y P E IS C H A R A C T E R 6. R E C O R D N A M E IS O R D E R -LIN E S K E Y K E Y -O R D E R IS A S C E N D IN G LI-O R D -C O D E , LI-IT -C O D E D U P LIC A T E S N O T K E Y K E Y -C U -C O D E IS A S C E N D IN G LI-C U -C O D E D U P LIC A T E S LA S T K E Y K E Y -IT -C O D E IS A S C E N D IN G LI-IT -C O D E D U P LIC A T E S LA S T R E C O R D -T YP E D E F IN E D B Y C H E C K O N LI-T Y P E W IT H IN A -O R D E R . 02 LI-T Y P E T Y P E IS C H A R A C T E R 1 C H E C K IS V A LU E "L". 02 LI-O R D -C O D E T YP E IS C H A R A C T E R 7. 02 LI-IT -C O D E T Y P E IS C H A R A C T E R 4. 02 LI-C U -C O D E T Y P E IS C H A R A C T E R 6. 02 LI-Q T Y T Y P E IS U N S IG N E D U N P A C K E D D E C IM A L 5. R E C O R D N A M E IS IT E M S K E Y K E Y -IT E M IS A S C E N D IN G IT -C O D E D U P LIC A T E S N O T W IT H IN A -IT E M . 02 IT -C O D E T Y P E IS C H A R A C T E R 4. 02 IT -N A M E T Y P E IS C H A R A C T E R 20. 02 IT -S T O C K T Y P E IS U N S IG N E D U N P A C K E D D E C IM A L 5. 02 IT -P R IC E T Y P E IS U N S IG N E D U N P A C K E D D E C IM A L 6 2. S E T N A M E IS O R D E R -T O -LIN E O W N E R IS O R D E R S M E M B E R IS O R D E R -LIN E S . E N D -S C H E M A . Figure B-1. Clés secondaires dans le schéma SCH-CUSTOMERS 47 F2 80UR Rev02 B-3 IQS-V4 Guide de l'administrateur B-4 47 F2 80UR Rev02 C. Utilisation de GT-WRITER sous IQS C.1 INTRODUCTION Cette annexe indique comment utiliser l'éditeur de sorties sur terminaux GT-WRITER pour imprimer le contenu d'un fichier d'extraction sur un terminal imprimante d'un réseau DSA. L'utilisateur doit déjà connaître GT-WRITER. En cas de besoin, il peut se reporter au Guide de l'utilisateur GT-WRITER. Il existe deux méthodes pour employer GT-WRITER sous IQS : • utilisation du dispositif AUTO de SYS.TW.OUT, • création d'une unité dans la bibliothèque IQS SLLIB. C.1.1 Utilisation du dispositif AUTO de SYS.TW.OUT Cette méthode est la plus simple. Elle est particulièrement pratique pour les usagers IQS puisque les sorties sont automatiquement envoyées et imprimées sur le terminal (ou pool de terminaux) spécifié à la génération de GT-WRITER (TWGEN). La bibliothèque SYS.TW.OUT ne doit pas être cataloguée. A la génération de GT-WRITER, l'utilisateur doit spécifier AUTO=<préfixe> : • soit dans la directive POOL, dans le cas d'un pool de terminaux, • soit dans la directive TERM, dans le cas d'un terminal isolé. Sous IQS, il doit affecter pour l'impression un nom de fichier logique, et désigner le fichier réel de sortie, dont le nom doit commencer par "préfixe". Ces paramètres peuvent figurer dans la procédure d'appel d'IQS. 47 F2 80UR Rev02 C-1 IQS-V4 Guide de l'administrateur Le fichier réel est désigné sous la forme suivante : SYS.TW.OUT..<préfixe-nom-fichier-impr>:<nom-vol>:<cl-app> Remarque : Le nom de volume et la classe d'appareils sont obligatoires même si la bibliothèque SYS.TW.OUT est implantée dans un disque résidant. Exemple d'affectation dans IQS : ASSIGN PRT <nom-état> TO FILE SYS.TW.OUT..<préfixe-nom-fichier-impr>:<nom-vol>:<cl-app> Lorsque l'utilisateur veut imprimer un état, il lui suffit d'introduire : PRINT TO <nom-état> Cette commande génère automatiquement dans SYS.TW.OUT une unité de sortie dont le nom a la forme <préfixe-nom-fichier-impr>. Si nécessaire, l'utilisateur peut employer plusieurs commandes ASSIGN PRT avec différents noms d'états et de fichiers d'impression. C.1.2 Création d'une unité dans la bibliothèque IQS SLLIB Cette deuxième méthode implique la création d'une unité dans la bibliothèque SLLIB employée par IQS. Cette création s'effectue comme suit : C: AUTO 10: 20: 30: 40: 50: ASSIGN PRINTER TO FILE <bib-sl>..<unité>:<nom-vol>:<cl-app> PRINT XXDPRINT <bib-sl>..<unité>:<nom-vol>:<cl-app> TWDEST=<[liste-]id-terminal> ASSIGN PRINTER TO TERM / C: 30S/XX/$$ C: SAVE PRINTA Chaque exécution de cette séquence provoque le transfert du contenu du fichier d'impression dans une unité de bibliothèque et son impression sur le terminal spécifié par TWDEST. Pour exécuter la séquence, l'utilisateur doit introduire : $$ALTER_INPUT PRINTA Avec cette méthode, l'utilisateur peut créer plusieurs séquences (par exemple PRINTA, PRINTAB, PRINTC, etc.) pour lui-même ou pour d'autres utilisateurs. C-2 47 F2 80UR Rev02 D. Opérations possibles en fonction de l'organisation des données L'organisation des données IQS a une influence sur la façon dont il est possible d'y accéder et dont elles peuvent être traitées. La figure D-1 présente les différentes opérations possibles (lecture, mise à jour, insertion, suppression) pour chaque organisation. 47 F2 80UR Rev02 D-1 IQS-V4 Guide de l'administrateur F I C H I E R T R A V A I L UNITE BIBLIOTHEQUE U F A S SEQ 1 VAR V U E 2 1 3 3 3 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 IND 5 5 5 5 5 5 SEQ 5 5 6 6 7 7 IDS/II U F A S D E D O N N E E S 1 1 UF A S + ID S /II B A S E 2 REL 4 4 IDS/II S C H E M A 8 U F A S REL 4 8 4 4 8 4 8 4 4 4 4 9 9 9 9 IND SEQ O R G A N IS A T IO N DES DONNEES P O P E R A T IO N I LE C T U R E L E G E N D E : P = la ng a ge d e re qu ê te s (pro céd u ra l) I = la ng a ge d e co m m an d e IQ S (n on p ro cé du ra l) P I M IS E A J O U R P I IN S E R T IO N P I S U P P R E S S IO N O pération possible. V oir rem arque le cas échéant. O pération im possible. V oir rem arque le cas échéant. Figure D-1. Opérations possibles pour chaque organisation D-2 47 F2 80UR Rev02 Opérations possibles en fonction de l'organisation des données Remarques relatives à la figure D-1 : 1. La mise à jour et la suppression sont impossibles. Seules les instructions du langage de requêtes suivantes sont utilisables : WRITE (fonction insertion), WRITE APPEND (fonction insertion), READ (fonction lecture). 2. La possibilité est fonction des attributs de la bibliothèque, à savoir de la valeur des paramètres DELREC et COMPACT. Voir les manuels sur la maintenance des bibliothèques. 3. Lorsqu'une vue comporte des articles IDS/II, la mise à jour, l'insertion et la suppression sont impossibles. 4. Les fichiers relatifs sont admis sous IQS-V4. 5. Les articles logiques doivent être strictement identiques aux articles physiques (réels). 6. L'insertion dans un fichier UFAS séquentiel multiarticle est impossible. Seule l'adjonction en fin de fichier est possible, ce qui ne convient pas si l'article du fichier fait partie d'une hiérarchie. 7. La suppression est impossible car, au niveau des vues, les droits d'accès en suppression sont inséparables des droits d'accès en insertion. L'insertion étant impossible, la suppression l'est également. 8. La commande REVIEW RETRIEVAL n'est utilisable que pour les vues et pour les schémas décrivant des fichiers UFAS. La commande REVIEW UPDATE n'est jamais utilisable pour des articles IDS/II. 9. La suppression est possible puisqu'ici ne se pose pas de problème de droits d'accès (voir remarque 7). L'insertion est impossible (voir remarque 6). 47 F2 80UR Rev02 D-3 IQS-V4 Guide de l'administrateur D-4 47 F2 80UR Rev02 E. Schéma SCH-CUSTOMERS : tables des données Tableau E-1. Table CUSTOMERS C U -C O D E C U-NAM E 12890G 29883M 34567S 44355G 45667A 45678N 46221L 59343L 67002T 67321P 72345L 73447P 76022D 77256L 82345B 82531N 89903L 92761M JIM R O A C H JA M E S T A Y LO R PAUL STRANG A LA N B R A D LE Y M IK E B A N N E R M A N N E LIZ A B E T H Y O U N G PETER ANDREW S JO H N H O LM A N A LA N W E IN B E R G TOM SHEARER D O U G LA S B R O O K S D A V ID H O LB R O O K K E V IN C A N N O N D O N A LD M A C LE A N R O G E R W ILLIA M S F IO N A B A IN M AX REESE KAY EVANS 47 F2 80UR Rev02 CU -S TR EET 12 S U T T O N R O A D 3 P IC A D ILLY S T R E E T 36 H IG H S T R E E T 9 P A R K W A LK 70-72 Q U E E N S W A Y 19 S A LM O N LA N E 11 P E N N Y F IE LD 78 LO N D O N R O A D 5 P A R K LA N E 22 Q U E E N S T R E E T 13 A R G Y LL R O A D 6 GREEK STREET 1 BROM PTON ROAD 21 F R IT H S T R E E T 45 D E A N S T R E E T 32 S E LS D O N R O A D 11 F LE E T S T R E E T 9 H E N R IE T T A R O A D C U-CITY G LA S G O W M ANCHESTER SW ANSEA G LA S G O W ABERDEEN N E W C A S T LE LO N D O N LIV E R P O O L TORQUAY P LY M O U T H LO N D O N P LY M O U T H D U B LIN LIV E R P O O L B IR M IN G H A M N E W C A S T LE LO N D O N M ANCHESTER E-1 IQS-V4 Guide de l'administrateur Tableau E-2. Table ORDER E-2 ORD -TYPE O R D -C O D E O O O O O O O O O O O O O O O O O O O O 2124530 2150540 2154740 2171430 2258710 2273320 2310210 2340210 2379220 2419840 2530120 2570110 2622210 2728830 2763610 2912310 2834550 2911820 2958310 2993130 O RD-FILLER OR D-C U-CO DE O RD-DATE 46221L 77256L 44355G 72345L 82345B 59343L 29883M 45678N 92761M 45667A 46221L 67002T 76022D 46221L 82345B 44355G 67321P 73447P 12890G 59343L 880309 870627 880130 880417 871210 880310 880204 871130 880206 880403 870820 880115 871001 871105 880122 880315 880310 871121 880302 880209 47 F2 80UR Rev02 Schéma SCH-CUSTOMERS : tables des données Tableau E-3. Table ORDER-LINES LI-TY PE LI-O RD-CODE LI-IT-CO DE LI-CU-CODE LI-QTY L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L L 21 24 53 0 21 50 54 0 21 50 54 0 21 50 54 0 21 50 54 0 21 50 54 0 21 54 74 0 21 71 43 0 21 71 43 0 22 58 71 0 22 73 32 0 23 10 21 0 23 40 21 0 23 40 21 0 23 79 22 0 23 79 22 0 23 79 22 0 24 19 84 0 24 19 84 0 24 19 84 0 24 19 84 0 25 30 12 0 25 30 12 0 25 70 11 0 25 70 11 0 25 70 11 0 26 22 21 0 26 22 21 0 26 22 21 0 26 22 21 0 26 22 21 0 26 22 21 0 27 28 83 0 27 28 83 0 27 28 83 0 27 63 61 0 27 63 61 0 27 63 61 0 28 12 31 0 28 12 31 0 28 12 31 0 28 34 55 0 28 34 55 0 29 11 82 0 29 11 82 0 29 58 31 0 29 58 31 0 29 58 31 0 29 93 13 0 29 93 13 0 11 4 1 10 1 1 10 5 1 11 1 1 11 3 1 11 3 1 11 4 1 11 1 1 11 2 1 11 8 1 11 5 1 10 3 1 11 7 1 11 8 1 10 5 1 11 1 1 11 6 1 10 0 1 10 3 1 11 0 1 11 6 1 10 7 1 11 9 1 10 5 1 11 2 1 11 8 1 10 0 1 10 1 1 10 2 1 11 2 1 11 3 1 11 4 1 10 7 1 10 8 1 11 0 1 10 0 1 10 1 1 10 2 1 10 2 1 10 3 1 11 7 1 10 4 1 10 6 1 11 3 1 11 5 1 10 0 1 10 1 1 10 4 1 10 8 1 10 9 1 4 62 21 L 7 72 56 L 7 72 56 L 7 72 56 L 7 72 56 L 44 35 5G 44 35 5G 7 23 45 L 7 23 45 L 8 23 45 B 5 93 43 L 2 98 83 M 4 56 78 N 4 56 78 N 9 27 61 M 9 27 61 M 9 27 61 M 4 56 67 A 4 56 67 A 4 56 67 A 4 56 67 A 4 62 21 L 4 62 21 L 67 00 2T 67 00 2T 67 00 2T 7 60 22 D 7 60 22 D 7 60 22 D 7 60 22 D 7 60 22 D 7 60 22 D 4 62 21 L 4 62 21 L 4 62 21 L 8 23 45 B 8 23 45 B 8 23 45 B 44 35 5G 44 35 5G 44 35 5G 6 73 21 P 6 73 21 P 7 34 47 P 7 34 47 P 12 89 0G 12 89 0G 12 89 0G 5 93 43 L 5 93 43 L 12 3 1 2 50 20 3 5 3 25 4 3 3 50 3 5 6 2 1 4 6 1 2 1 1 12 1 2 1 1 25 6 1 1 1 3 5 2 2 2 1 1 1 12 6 1 2 1 1 2 47 F2 80UR Rev02 E-3 IQS-V4 Guide de l'administrateur Tableau E-4. Table ITEMS IT-CO DE 10 01 10 11 10 21 10 31 10 41 10 51 10 61 10 71 10 81 10 91 11 01 11 11 11 21 11 31 11 41 11 51 11 61 11 71 11 81 11 91 E-4 IT-NAM E TROUSERS S H IR T JA C K E T HAT T E LE V IS IO N C A R R A D IO T V A E R IA L W A S H IN G M A C H IN E D IS H W A S H E R CUPBO ARD VEST T IE W ATCH C IG A R W H IS K Y SHOES SO CKS W A L LE T PEN T A B LE IT-STO CK IT-PRICE 1 24 0 3 54 0 9 26 0 10 0 15 0 16 0 26 0 99 0 1 25 0 3 50 0 3 62 0 4 65 0 5 34 2 6 34 1 7 35 0 8 20 0 9 13 5 1 24 3 96 0 85 0 3 0.00 7.00 6 0.00 5.00 3 00 .0 0 4 0.00 1 0.00 3 50 .0 0 3 70 .0 0 5 7.00 5.00 1 5.00 3 0.00 1.00 1 0.00 3 5.00 2.00 1 9.00 2 2.00 1 00 .0 0 47 F2 80UR Rev02 Glossaire Administration Mise en place de l'environnement d'une base de données IQS, exploitation quotidienne de cette dernière et définition des règles gouvernant son utilisation. Aire Subdivision de la base de données correspondant à un fichier physique. Une aire peut contenir les occurrences de plusieurs articles mais les occurrences d'un même article ne peuvent pas être réparties dans plusieurs aires (sauf sous IDS/II). Pour que les données qu'elle contient soient accessibles, une aire doit être ouverte. Attente prolongée Situation survenant lorsqu'un utilisateur attend une ressource détenue par un autre utilisateur plus d'un certain temps. Bibliothèque de travail Bibliothèque déclarée dans une directive GCL MWINLIB ou MWLIB et constituant la bibliothèque implicite pour la session, à moins qu'une affectation différente soit effectuée dans la procédure GCL d'appel d'IQS. Clé primaire Clé unique utilisée pour l'organisation des occurrences d'article et l'accès à celles-ci. Clé secondaire Clé offrant une alternative pour l'accès aux occurrences d'article d'un fichier. Un article peut comporter plusieurs clés secondaires (mais une seule clé primaire). Condition restrictive Condition utilisée pour occulter ou éliminer certaines données afin de n'obtenir que les informations voulues. DDL (Data Description Language) Langage de description des données - Langage utilisé pour définir un schéma. 47 F2 80UR Rev02 g-1 IQS-V4 Guide de l'administrateur Déclencheur Requête compilée à exécuter lorsque certaines conditions sont réunies (en cas de dépassement des limites de consommation des ressources, par exemple) ou à une étape donnée du traitement (au début d'une session IQS, par exemple). Il existe trois types de déclencheurs : les déclencheurs niveau session applicables pendant toute la session IQS ; les déclencheurs niveau base de données et niveau requête applicables respectivement pendant la session base de données et pour la durée d'exécution d'une requête ; les déclencheurs niveau transaction applicables uniquement aux transactions IQS exécutées sous TDS. Les déclencheurs peuvent être activés avant et/ou après l'événement correspondant. Il existe donc des déclencheurs "avant" et "après" pour chacun des trois types ci-dessus. Dérivation Mode d'obtention d'un article logique à partir d'un ou plusieurs articles physiques. Domaine Ensemble de commandes. A la livraison, le domaine IQS contient toutes les commandes IQS. Il peut être personnalisé par l'administrateur pour s'adapter aux besoins des différents types d'utilisateurs. Droits d'accès Moyen permettant à l'administrateur IQS de contrôler l'accès aux objets IQS. Sous IQS-V4, l'administrateur peut créer (sous le processeur MAINTAIN_CATALOG) un projet GCOS 7 pour une catégorie d'utilisateurs donnée. Il peut ensuite accorder ou supprimer les droits d'accès du projet à chaque objet IQS au moyen des commandes IQS GRANT et REVOKE. Les utilisateurs travaillant sous le projet peuvent alors uniquement exploiter les objets autorisés pour ce projet. A noter que l'utilisateur sous SYSADMIN peut accéder à tous les objets sans restriction. Droits opérateur Droits associés à un projet qui peuvent avoir une influence sur l'accessibilité et la visibilité des commandes IQS. Environnement Ensemble de familles de commandes permettant de définir quelles sont les commandes devant figurer dans les menus des utilisateurs et celles auxquelles ils ne doivent pas avoir accès. E/S Entrées/sorties IQS, comptabilisées dans les variables système $MAX-IO et $USED-IO. Il y a une E/S, par exemple, chaque fois qu'une occurrence est traitée par une instruction RETRIEVE, READ ou REVIEW. Famille Ensemble de commandes permettant de définir des environnements pour contrôler l'accès des utilisateurs aux commandes. g-2 47 F2 80UR Rev02 Glossaire Fichier de saisie Fichier physique UFAS pouvant être créé, utilisé et supprimé directement sous IQS. Les fichiers de saisie peuvent comporter des données propres à l'utilisateur et faire partie de sa base de données personnelle. Si nécessaire, ils peuvent être combinés à un ou plusieurs schémas pour constituer des vues standard. GT-WRITER Editeur de sorties sur terminaux, permettant l'impression d'informations sur un ensemble de terminaux. Index secondaire Index des clés secondaires triées en ordre croissant. Les fichiers comportant des index secondaires doivent être protégés par le journal Avant pour assurer la stabilité de leurs index. Jointure Condition portant sur les valeurs de zones similaires dans différents articles afin d'établir entre ces derniers de nouvelles relations (jointure sur égalité de valeurs). MAINTAIN_DD Processeur permettant de compiler un schéma DDL origine pour obtenir un schéma résultant. Métabase Dictionnaire de données permettant à l'utilisateur d'obtenir des informations sur tous les objets IQS disponibles au cours de la session. La consultation de la métabase s'effectue comme celle d'un schéma. Nom de fichier externe Nom GCOS 7 complet d'un fichier physique auquel de la place sur disque a été affectée. Nom de fichier interne Nom de fichier associé à un nom de fichier externe et servant d'interface entre IQS et GCOS 7. Nom de fichier IQS Nom utilisable pour toute la durée de la session IQS qui peut être associé (par ASSIGN) à un nom de fichier interne ou à un nom de fichier externe. Les fichiers temporaires ne sont connus que par un nom de fichier IQS (parfois appelé nom de fichier logique). Projet Elément du dispositif de droits d'accès par l'intermédiaire duquel s'effectue notamment le contrôle des accès des utilisateurs aux différents environnements. 47 F2 80UR Rev02 g-3 IQS-V4 Guide de l'administrateur Répertoire Elément d'un catalogue regroupant tous les fichiers d'un projet. Schéma Description logique d'un ensemble de fichiers (ou aires) qui contient des informations sur les articles, les zones, les clés et les ensembles. Cette description est écrite en langage DDL et doit être compilée pour être utilisable sous IQS. Sous-répertoire Elément du catalogue, subordonné à un répertoire ou à un autre sous-répertoire, regroupant un sous-ensemble de fichiers associés à une partie d'un projet. Structure Description logique d'un fichier séquentiel monoarticle. Une structure peut être utilisée en tant que schéma ou être intégrée à une vue au cours d'une session IQS. Unité de consolidation Ensemble des opérations au cours desquelles un ou plusieurs fichiers passent d'un état initial stable à un état final stable. Vue Forme sous laquelle les usagers perçoivent les données de la base. Les vues sont définies en tant que schémas, vues standard ou structures par le personnel informatique mais pour l'usager, ces distinctions sont invisibles : il ne connaît que des noms de vue qui lui donnent accès à des informations. Vue arborescente Vue constituée de plusieurs articles, dont éventuellement plusieurs articles racines, dans laquelle un article maître peut avoir plusieurs articles détails. Vue courante Schéma, vue standard ou structure sélectionné au niveau C: pour utilisation au cours d'une session IQS. Vue dynamique "Instantané" de la vue courante montrant les données telles qu'elles résultent des opérations effectuées par l'utilisateur depuis la sélection de la vue courante. Vue linéaire Vue constituée de plusieurs articles ordonnés en une seule hiérarchie verticale, les relations entre ces articles étant déterminées par des ensembles. g-4 47 F2 80UR Rev02 Glossaire Vue monoarticle Vue ne comportant qu'un seul article logique, lui-même composé d'une ou plusieurs zones. Vue standard Représentation logique des données de la base prédéfinie par l'administrateur IQS. Zone additionnelle Zone d'un article logique créée pour répondre aux besoins d'une application donnée. Les zones additionnelles sont obtenues directement ou par calcul à partir de zones réelles et/ou de constantes. Zone renommée Zone à laquelle est attribué un nouveau nom pour une application donnée afin d'éviter les ambiguïtés. 47 F2 80UR Rev02 g-5 IQS-V4 Guide de l'administrateur g-6 47 F2 80UR Rev02 Index # #BINLIB1, 2, 3 #BLIB #CLIB #ENVT #SLIB A 6-3 6-3 6-3 3-3 6-3 $ $MAX-CPU $MAX-CPU-PER-COMMAND $MAX-ELAPSE $MAX-IO $MAX-IO-PER-COMMAND $MAX-LINES $MAX-LINES-PER-COMMAND $MAX-PAGES $PRIORITY $USED-CPU $USED-ELAPSE $USED-IO $USED-IO-PER-COMMAND $USED-LINES $USED-LINES-PER-COMMAND 3-20 3-20 3-20 3-20 3-20 3-20 3-21 3-21 3-21 3-21 3-21 3-21 3-21 3-21 3-21 @ @MAX-CPU @MAX-ELAPSE @NEXT-QUERY @NEXT-SCRIPT @TRIGGER-CODE-ERROR @TRIGGER-ERROR @USED-CPU @USED-ELAPSE 47 F2 80UR Rev02 3-20 3-20 3-15, 3-17 3-15, 3-17 3-22 3-14, 3-22 3-21 3-21 accès aux données accès concurrents ACCESS administration responsabilités affectation des fichiers aire ALTER_INPUT appel du processeur IQS AREA (rubrique DDL) article logique ASGn ASSIGN attente prolongée AUTOCOMMIT D-1 13-1 3-7 1-1 10-3 4-1, 8-27, 13-5 6-12 6-6 4-17 8-4, 8-20 10-3 10-3 13-9 13-3 B base de données création virtuelle bibliothèque ~s utilisées par IQS création de travail BINLIB blocage BUFPOOL BUILD_FILE BUILD_LIBRARY 8-2 A-10 4-1 6-2 6-4, A-4 6-2, A-5 6-3 13-7 13-12 A-4 6-4, A-4 i-1 IQS-V4 Guide de l'administrateur C catalogue A-2 centre d'expertise installation 2-4 CHECK (clause DDL) 4-23 CHECK VALUE (clause DDL) 4-30 checkpoint voir point de reprise: 13-4 CI 13-5 Clé secondaire B-1 clé 8-28 primaire 8-10 secondaire 8-10 CLEAR TRIGGER 3-18 CODASYL base de données 8-2 COMFILE 6-23, 6-24 commandes accessibilité 3-2 visibilité 3-2 commentaires 4-9 Compilation des schémas 7-1 compilation des schémas 12-1, A-10 concurrence d'accès 13-1 condition 4-11 condition restrictive 8-4 consolidation 13-2, 13-3, 13-4 CREATE RECORD 8-14 CREATE_PROJECT 3-9 CRU 3-3 CULIB 6-3 D DDL exemple format jeu de caractères mots mots réservés ponctuation syntaxe DDLIB1, 2, 3 DDPROC deadlock déclencheur après avant création déclaration en mode ligne définition niveau base de données niveau requête niveau session i-2 4-1 A-6 4-3 4-4 4-6 4-38 4-5 4-15 6-3 5-3 voir blocage: 13-7 niveau transaction 3-19 ordre d'exécution 3-17 suppression 3-18 DEFINE STRUCTURE 9-4, 9-6, 9-7, 9-9 DEFINE TRIGGER 3-18 DEFINE VIEW 8-13 DEFn 13-12 dérivation 8-4 DISPLAY ACCESS RIGHT 3-13, 8-26, 9-17 DISPLAY AREAS 8-27 DISPLAY ITEM 8-25, 9-16 DISPLAY ITEMS 8-26, 9-15 DISPLAY KEYS OF RECORD 8-28 DISPLAY RECORD 8-24 DISPLAY RECORDS 8-25 DISPLAY RECORDS OF AREA 8-28 DISPLAY SCHEMA 8-27 DISPLAY SCHEMAS 8-26 DISPLAY SETS 8-25 DISPLAY STATUS exemple 3-24 objet 3-24 Variables système 3-20 DISPLAY STRUCTURE 9-14 DISPLAY STRUCTURE ATTRIBUTES 9-14 DISPLAY VIEW 8-24 DMCL 5-1 domaine IQS 3-5 droits d'accès contrôle 3-13 convention astérisque 3-10 création et suppression 3-9 définition 3-2 nom de projet 3-9 SYSADMIN 3-11 violation des ~ 3-10 droits opérateur 3-4 E END-SCHEMA (rubrique DDL) ensemble environnement de quatrième génération définition ENVT 4-35 4-1 2-2 3-2 3-3 3-14, 3-17 3-14, 3-17 3-18 3-16 3-14 3-17 3-17 3-14 47 F2 80UR Rev02 Index F M famille de commandes fichier affectation base de données classique création d'impression de saisie de travail de tri, caractéristiques IQS noms de ~s partage de ~s FILEn 3-3 10-3 10-1 10-1 A-4 10-2, 10-6 10-2, 10-7 10-2 6-11 10-1 10-3 13-5 10-3 G GAC-EXTENDED GCL création procédure ~ GT-WRITER 13-1 6-13 C-1 MAINTAIN_COMMAND MEMBER (clause DDL) Métabase IQS mise à jour de données MNDD MODIFY_ACCESS MWENVT MWINLIB MWLIB 3-7 4-35 11-1 D-1 4-1, 5-1 3-3, 3-4, 3-5, 3-7 3-3 A-5 A-5 N NBBUF (DEFn) NO_ACCESS NO_OPACC nom de donnée nom de projet GCOS 7 nom-donnée (clause DDL) 13-12 3-3, 3-6 3-4, 3-7 4-10 3-9 4-24 O H H_IQS H_METAIQS HIDE 6-18 11-1 3-3, 3-7 I identificateur de donnée IDS/II compilation de schéma Index secondaire insertion de données IQS (commande) 4-10, 4-20 8-19, 10-1, 13-5 4-2 B-1 D-1 6-6 J JCL jointure journalisation 6-19, 6-24 8-2, 8-4 13-6 L lancement d'IQS lecture de données LIST_ACCESS littéraux longwait 47 F2 80UR Rev02 6-1, 6-17 D-1 3-6 4-8 voir attente prolongée: 13-9 objet IQS droits d'accès propriétaire OCCURS (clause DDL) OPEN OPHID optimisation OWNER (clause DDL) 3-9 3-12 4-28 8-23 3-4, 3-7 13-10 4-34 P partage de fichiers de ressources point de reprise POOLSIZE PROC procédure GCL PROJ projet propriétaire PRTFILE PRTY 13-5 13-7 13-4 13-11 3-6 6-13, 6-22 3-3 3-3 3-12 6-23, 6-24 3-6 i-3 IQS-V4 Guide de l'administrateur TRB R Recompilation des requêtes des schémas des vues recompilation des macros des requêtes des schémas des vues procédure RECORD NAME (clause DDL) RECORD-TYPE (clause DDL) répertoire de référence RESET REVIEW 7-3 7-3 7-3 12-1 12-2 12-2 12-2 12-2 12-2 4-19 4-22 A-2 A-2 3-6 8-23 3-14 U UFAS unité de consolidation UPDATE ITEM UPDATE RECORD UPDATE STRUCTURE 13-5 13-2 8-20, 9-12 8-20 9-10, 9-11, 9-12, 9-13 UPDATE STRUCTURE DEFINITION 9-10 UPDATE VIEW 8-19 UPDATE VIEW ATTRIBUTES 8-19 utilisateur types d'~ 2-3 V S SAVE VIEW SCH-CUSTOMERS Schéma Compilation schéma compilation compilation d'un ~ IDS/II composantes d'un ~ DDL création exemple de ~ visualisation d'informations SCHEMA (rubrique DDL) sécurité SELECT SET (rubrique DDL) SET NAME (clause DDL) SIZE SLLIB sous-répertoire SRTIDX structure attributs définition mise à jour utilisation visualisation d'informations suppression de données SYS.HBINLIB SYSADMIN 8-15, 8-22 E-1 7-1 4-1 6-5, 12-1 4-2 4-3 6-5 4-36 8-27 4-16 3-1 8-23 4-32 4-34 13-11 6-3 A-2 B-2 9-1 9-2 9-2, 9-4 9-10 9-3 9-14 D-1 3-5 3-11 variables système vue arborescente attributs courante définition droits d'accès dynamique exemples linéaire mise à jour monoarticle plate processeur visualisation d'informations vue standard 3-20 8-1 8-8 8-19 8-3 8-13 8-18 8-3 8-9 8-8 8-18, 8-23 8-8 8-8 8-1 8-24 8-1 W WITHIN (clause DDL) 4-19 Z zone attributs logique 9-2 8-6, 8-20 T TDS TRA traitement par lots i-4 6-2, 8-3, 13-4, 13-6 3-14 6-11, 6-21 47 F2 80UR Rev02