Académique Documents
Professionnel Documents
Culture Documents
Advanfr PDF
Advanfr PDF
Copyright 19912004 Sybase, Inc. Tous droits rservs. Les informations contenues dans ce document pourront faire lobjet de modifications sans pravis et ne constituent aucun engagement de la part de Sybase, Inc. et de ses filiales. Sybase, Inc. fournit le logiciel dcrit dans ce manuel sous Contrat de licence Sybase. Le logiciel ne peut tre utilis que conformment aux termes de ce contrat. Tout ou partie de cette publication ne peut tre reproduit, transmis ou traduit, sous quelque forme ou par quelque moyen que ce soit (lectronique, mcanique, manuel, optique ou autre) sans l'accord crit pralable de Sybase, Inc. Sybase, SYBASE (logo), AccelaTrade, ADA Workbench, Adaptable Windowing Environment, Adaptive Component Architecture, Adaptive Server, Adaptive Server Anywhere, Adaptive Server Enterprise, Adaptive Server Enterprise Monitor, Adaptive Server Enterprise Replication, Adaptive Server Everywhere, Adaptive Server IQ, Adaptive Warehouse, AnswerBase, Anywhere Studio, Application Manager, AppModeler, APT Workbench, APT-Build, APT-Edit, APT-Execute, APT-Translator, APT-Library, ASEP, AvantGo, AvantGo Application Alerts, AvantGo Mobile Document Viewer, AvantGo Mobile Delivery, AvantGo Mobile Inspection, AvantGo Mobile Marketing Channel, AvantGo Mobile Pharma, AvantGo Mobile Sales, AvantGo Pylon, AvantGo Pylon Application Server, AvantGo Pylon Conduit, AvantGo Pylon PIM Server, AvantGo Pylon Pro, Backup Server, BayCam, Bit-Wise, BizTracker, Certified PowerBuilder Developer, Certified SYBASE Professional, Certified SYBASE Professional Logo, ClearConnect, ClientLibrary, Client Services, CodeBank, Column Design, ComponentPack, Connection Manager, Convoy/DM, Copernicus, CSP, Data Pipeline, Data Workbench, DataArchitect, Database Analyzer, DataExpress, DataServer, DataWindow, DB-Library, dbQueue, Developers Workbench, Direct Connect Anywhere, DirectConnect, Distribution Director, Dynamic Mobility Model, e-ADK, EAnywhere, e-Biz Integrator, E-Whatever, EC Gateway, ECMAP, ECRTP, eFulfillment Accelerator, Electronic Case Management, Embedded SQL, EMS, Enterprise Application Studio, Enterprise Client/Server, Enterprise Connect, Enterprise Data Studio, Enterprise Manager, Enterprise Portal (logo), Enterprise SQL Server Manager, Enterprise Work Architecture, Enterprise Work Designer, Enterprise Work Modeler, eProcurement Accelerator, eremote, Everything Works Better When Everything Works Together, EWA, Financial Fusion, Financial Fusion (and design), Financial Fusion Server, Formula One, Fusion Powered e-Finance, Fusion Powered Financial Destinations, Fusion Powered STP, Gateway Manager, GeoPoint, GlobalFIX, iAnywhere, iAnywhere Solutions, ImpactNow, Industry Warehouse Studio, InfoMaker, Information Anywhere, Information Everywhere, InformationConnect, InstaHelp, Intelligent Self-Care, InternetBuilder, iremote, iScript, Jaguar CTS, jConnect for JDBC, KnowledgeBase, Logical Memory Manager, M-Business Channel, M-Business Network, M-Business Server, Mail Anywhere Studio, MainframeConnect, Maintenance Express, Manage Anywhere Studio, MAP, MDI Access Server, MDI Database Gateway, media.splash, Message Anywhere Server, MetaWorks, MethodSet, ML Query, MobiCATS, My AvantGo, My AvantGo Media Channel, My AvantGo Mobile Marketing, MySupport, NetGateway, Net-Library, New Era of Networks, Next Generation Learning, Next Generation Learning Studio, O DEVICE, OASiS, OASiS logo, ObjectConnect, ObjectCycle, OmniConnect, OmniSQL Access Module, OmniSQL Toolkit, Open Biz, Open Business Interchange, Open Client, Open ClientConnect, Open Client/Server, Open Client/Server Interfaces, Open Gateway, Open Server, Open ServerConnect, Open Solutions, Optima++, Orchestration Studio, Partnerships that Work, PB-Gen, PC APT Execute, PC DB-Net, PC Net Library, PhysicalArchitect, Pocket PowerBuilder, PocketBuilder, Power++, Power Through Knowledge, power.stop, PowerAMC, PowerBuilder, PowerBuilder Foundation Class Library, PowerDesigner, PowerDimensions, PowerDynamo, Powering the New Economy, PowerJ, PowerScript, PowerSite, PowerSocket, Powersoft, PowerStage, PowerStudio, PowerTips, Powersoft Portfolio, Powersoft Professional, PowerWare Desktop, PowerWare Enterprise, ProcessAnalyst, QAnywhere, Rapport, Relational Beans, RepConnector, Report Workbench, Report-Execute, Replication Agent, Replication Driver, Replication Server, Replication Server Manager, Replication Toolkit, Resource Manager, RW-DisplayLib, RW-Library, SAFE, SAFE/PRO, SDF, Secure SQL Server, Secure SQL Toolset, Security Guardian, SKILS, smart.partners, smart.parts, smart.script, SQL Advantage, SQL Anywhere, SQL Anywhere Studio, SQL Code Checker, SQL Debug, SQL Edit, SQL Edit/TPU, SQL Everywhere, SQL Modeler, SQL Remote, SQL Server, SQL Server Manager, SQL SMART, SQL Toolset, SQL Server/CFT, SQL Server/DBM, SQL Server SNMP SubAgent, SQL Station, SQLJ, Stage III Engineering, Startup.Com, STEP, SupportNow, S.W.I.F.T. Message Format Libraries, Sybase Central, Sybase Client/Server Interfaces, Sybase Development Framework, Sybase Financial Server, Sybase Gateways, Sybase Learning Connection, Sybase MPP, Sybase SQL Desktop, Sybase SQL Lifecycle, Sybase SQL Workgroup, Sybase Synergy Program, Sybase Virtual Server Architecture, Sybase User Workbench, SybaseWare, Syber Financial, SyberAssist, SybMD, SyBooks, System 10, System 11, System XI (logo), SystemTools, Tabular Data Stream, The Enterprise Client/Server Company, The Extensible Software Platform, The Future Is Wide Open, The Learning Connection, The Model For Client/Server Solutions, The Online Information Center, The Power of One, TotalFix, TradeForce, Transact-SQL, Translation Toolkit, Turning Imagination Into Reality, UltraLite, UltraLite.NET, UNIBOM, Unilib, Uninull, Unisep, Unistring, URK Runtime Kit for UniCode, Versacore, Viewer, VisualWriter, VQL, WarehouseArchitect, Warehouse Control Center, Warehouse Studio, Warehouse WORKS, Watcom, Watcom SQL, Watcom SQL Server, Web Deployment Kit, Web.PB, Web.SQL, WebSights, WebViewer, WorkGroup SQL Server, XA-Library, XA-Server and XP Server sont des marques de Sybase, Inc. ou ses filiales. Unicode et le logo Unicode sont des marques dposes de Unicode, Inc. Tous les autres noms de produit, socit ou marque peuvent appartenir des tiers.
iii
EnableMultiCheck ............................................................ 58 EnableConstname............................................................ 58 SqlSupport........................................................................ 58 UniqConstName............................................................... 59 Catgories Script ou ODBC.................................................... 60 Catgorie SQL ........................................................................ 61 Syntax .............................................................................. 61 Format.............................................................................. 63 File.................................................................................... 67 Keywords.......................................................................... 72 Catgorie Objects ................................................................... 75 Entres communes aux diffrents objets......................... 75 Table ................................................................................ 79 Column ............................................................................. 87 Index............................................................................... 101 Pkey ............................................................................... 109 Key ................................................................................. 112 Reference....................................................................... 117 View................................................................................ 123 Tablespace..................................................................... 126 Storage........................................................................... 128 Database ........................................................................ 130 Domain ........................................................................... 132 Abstract Data Type......................................................... 136 Abstract Data Type Attribute .......................................... 138 User................................................................................ 140 Rule ................................................................................ 142 Procedure....................................................................... 145 Trigger ............................................................................ 149 Group ............................................................................. 153 Role ................................................................................ 155 Privilege.......................................................................... 157 Permission ..................................................................... 158 Default ............................................................................ 159 Join index ....................................................................... 161 Qualifier .......................................................................... 164 Sequence ....................................................................... 164 Synonym......................................................................... 166 DB Package ................................................................... 168 DB Package Procedure.................................................. 170 DB Package Variable ..................................................... 171 DB Package Type .......................................................... 172 DB Package Cursor ....................................................... 172 DB Package Exception .................................................. 173 DB Package Parameter ................................................. 173 DB Package Pragma...................................................... 174 iv
PowerAMC
Commandes pour tous les objets ......................................... 175 MaxConstLen ................................................................. 175 EnableOption.................................................................. 175 Catgorie Data type .............................................................. 177 AmcdDataType............................................................... 177 PhysDataType ................................................................ 178 PhysDttpSize .................................................................. 178 OdbcPhysDataType ....................................................... 179 PhysOdbcDataType ....................................................... 180 PhysLogADTType .......................................................... 180 LogPhysADTType .......................................................... 180 AllowedADT.................................................................... 181 HostDataType ................................................................ 181 Variables de MPD ................................................................. 182 Variables pour la gnration de base de donnes, ainsi que celle des triggers et procedures...................... 182 Variables pour le reverse engineering............................ 183 Variables pour la synchronisation de base de donnes . 184 Variables pour la scurit dans la base de donnes...... 184 Variables pour les mtadonnes.................................... 185 Variables communes pour tous les objets nomms ...... 185 Variables communes pour les objets ............................. 185 Variables relatives aux SGBD, options de base de donnes.......................................................................... 186 Variables pour les tables ................................................ 186 Variables pour vrifications sur les domaines et sur les colonnes ......................................................................... 187 Variables pour les colonnes ........................................... 188 Variables pour les types de donnes abstraits............... 188 Variable pour les attributs de types de donnes abstraites........................................................................ 189 Variable pour les domaines............................................ 189 Variables pour les rgles................................................ 189 Variables pour ASE & SQL Server ................................. 190 Variables pour les squences ........................................ 190 Variables pour les index ................................................. 190 Variables pour les join indexes (IQ) ............................... 191 Variables pour les colonnes d'index ............................... 191 Variables pour les rfrences......................................... 191 Variables de colonnes de rfrence............................... 193 Variables pour les cls ................................................... 193 Variables pour les vues .................................................. 194 Variables pour les triggers.............................................. 194 Variables pour les procdures........................................ 195
vi
PowerAMC
Dfinition de menus dans un profil ....................................... 252 Proprits d'un menu ..................................................... 253 Cration d'un menu ........................................................ 254 Utilisation de profils : une tude de cas ................................ 256 Scnario ......................................................................... 257 Attachement d'une nouvelle dfinition tendue de modle au modle.......................................................... 257 Cration de strotypes d'objet...................................... 260 Dfinition de symboles personnaliss pour les strotypes ..................................................................... 262 Cration de liens entre objets et de messages entre objets.............................................................................. 266 Cration de vrifications personnalises sur les liens d'instance ....................................................................... 267 Gnration d'une description sous forme de texte des messages ....................................................................... 274
vii
viii
PowerAMC
Gnralisations .............................................................. 421 Commentaires et notes sur les objets............................ 421 Notions de base relatives la structure du mtamodle...... 422 Organisation gnrale .................................................... 422 Contenu de PdCommon................................................. 423 Contenu des autres packages de bibliothque .............. 423 Navigation dans le mtamodle ..................................... 423 Utilisation du mtamodle avec VBS.................................... 426 Utilisation du mtamodle l'aide du langage de gnration par template (GTL) ............................................. 428 Attributs calculs ............................................................ 429 Collections calcules...................................................... 431 Utilisation du mtamodle pour comprendre le format de fichier XML de PowerAMC............................................... 432
Index
.........................................................................................447
ix
PowerAMC
C H A P I T R E
Sujet
Ce document dcrit la structure et le contenu d'un fichier de dfinition de SGBD PowerAMC. Ce guide constitue une rfrence pour travailler avec les SGBD pris en charge par PowerAMC. Vous y trouverez une prsentation globale de l'utilisation des fichiers de dfinition de SGBD ne prenant pas en compte les spcificits de chaque SGBD.
Sommaire
Section Prsentation du fichier de dfinition de SGBD Editeur de SGBD Notions de base relatives aux catgories de SGBD Gestion de la gnration et du reverse engineering Dfinition d'options physiques Catgorie General Catgories Script ou ODBC Catgorie SQL Catgorie Objects Commandes pour tous les objets Catgorie Data type Variables de MPD
Avant de commencer
Les modifications apportes un fichier de dfinition de SGBD peuvent changer la faon dont se comportent les fonctions de PowerAMC, tout particulirement lors de la gnration de scripts. Crez des copies de sauvegarde de vos dfinitions de bases de donnes, et testez scrupuleusement chaque script gnr avant de l'excuter.
Ne modifiez pas les fichiers de SGBD fournis avec PowerAMC. Pour chaque SGBD que vous souhaitez modifier, crez un nouveau SGBD correspondant. Pour ce faire, crez le nouveau SGBD partir de la bote de dialogue Liste des SGBD, dfinissez un nom, puis slectionnez le SGBD d'origine dans la liste droulante Copier depuis. Cette mthode permet de crer un nouveau SGBD identique au fichier d'origine, la diffrence du nom prs. Pour plus d'informations sur la cration d'une nouvelle dfinition de SGBD partir d'un SGBD existant, reportez-vous la section Cration d'un nouveau fichier de dfinition dans le chapitre Utilisation de l'diteur de dfinition dans le manuel Guide des fonctionnalits gnrales. En revanche, vous pouvez tre amen modifier cette interface pour l'adapter vos applications particulires, et ce en utilisant l'diteur de fichier de dfinition de SGBD. Qu'est-ce qu'un fichier de dfinition de SGBD ? Un fichier de dfinition de SGBD est une liste de valeurs et de paramtres qui reprsentent des spcifications pour un SGBD (Systme de Gestion de Bases de Donnes) dans un format comprhensible par PowerAMC. En tant qu'interface entre un SGBD et PowerAMC, il fournit PowerAMC la syntaxe et les rgles relatives la gnration de bases de donnes, triggers et procdures correspondant au SGBD cible choisi. Le fichier de dfinition de SGBD est un fichier au format .XML. Le fichier de dfinition de SGBD est un composant requis de PowerAMC lorsque vous travaillez sur des Modles Physiques de Donnes (MPD). Chaque SGBD pris en charge par PowerAMC a sa propre dfinition de SGBD.
PowerAMC
Chapitre 1
Tous les fichiers de dfinition de SGBD ont la mme structure compose de catgories. Une catgorie peut contenir d'autres catgories, des entres et des valeurs. Ces entres sont des paramtres reconnaissables par PowerAMC. Les valeurs pour les catgories et entres de dfinition de SGBD varient pour chaque SGBD. Certaines entres peuvent ne pas exister dans certains fichiers de SGBD si elles ne sont pas applicables ces SGBD particuliers. Certaines entres peuvent en outre contenir des paramtres qui sont obligatoires pour gnrer une syntaxe correcte. Certaines entres contiennent des instructions SQL qui vont permettre PowerAMC de gnrer et d'effectuer du reverse engineering correctement pour la base de donnes choisie (create, drop , etc).
Vous pouvez incorporer des variables dans les requtes SQL du SGBD slectionn. Ces variables sont remplaces par les valeurs appropries de votre modle lorsque les scripts sont gnrs. Ces variables sont values pour crer les objets correspondants dans les modles PowerAMC lors du reverse engineering. Les variables PowerAMC sont crites entre signes pourcent (%).
Exemple
L'valuation des variables dpend des paramtres et du contexte. Par exemple, la variable %COLUMN% ne peut pas tre utilise dans un paramtre CreateTablespace, car cette variable n'est reconnue que dans un contexte de paramtre de colonne. Pour obtenir la liste des toutes les variables PowerAMC que vous pouvez utiliser dans une dfinition de SGBD, reportez-vous la section Variables de MPD.
Editeur de SGBD
Editeur de SGBD
Vous pouvez consulter ou modifier un fichier de dfinition de SGBD l'aide de l'diteur de SGBD.
Pour afficher l'diteur de SGBD :
Slectionnez SGBDEditer le SGBD courant ou Slectionnez OutilsRessourcesSGBD, puis slectionnez un SGBD existant, ou bien crez un nouveau fichier de dfinition de SGBD. La feuille de proprits de SGBD s'affiche.
L'diteur de SGBD permet de naviguer parmi les catgories et entres de SGBD. Lorsque vous slectionnez une catgorie dans l'diteur de dfinition de SGBD, le nom, le code et le commentaire associs s'affichent dans la partie droite de la bote de dialogue. Lorsque vous slectionnez une entre dans la fentre de dfinition de SGBD, le nom, la valeur et le commentaire associs s'affichent dans la partie droite de la bote de dialogue. Pour plus d'informations sur l'utilisation de l'diteur de SGBD, reportez-vous au chapitre L'diteur de ressources dans le manuel Guide des fonctionnalits gnrales. Templates de trigger et lments de template de trigger Le SGBD contient la dfinition des templates de trigger et des lments de template de trigger. Vous pouvez accder aux pages Templates de trigger ou Elments de template de trigger en cliquant sur l'onglet correspondant. Les templates pour les procdures stockes sont dfinis sous la catgorie Procedure dans l'arborescence du SGBD. Pour plus d'informations sur l'utilisation, la cration et l'dition de templates de trigger ou d'lments de template de trigger, reportez-vous au chapitre Triggers et procdures dans le manuel Guide de l'utilisateur du MPD.
PowerAMC
Chapitre 1
ODBC
Remarquez que certains SGBD n'affichent pas de catgorie ODBC car cette dernire n'est pas ncessaire leur dfinition.
Catgorie General
La catgorie General contient des informations gnrales relatives la base de donnes, sans catgorie. Toutes les entres dfinies dans la catgorie General s'appliquent tous les objets de la base de donnes. Exemple Si l'entre EnableCheck a la valeur Yes, les paramtres de contrle sont gnrs.
PowerAMC
Chapitre 1
Lorsque la valeur d'une commande ou sa catgorie manque lors de la gnration ODBC, PowerAMC la recherche dans la catgorie Script. Une entre est alors redfinie dans la catgorie ODBC uniquement si elle est diffrente de la valeur situe dans Script. Les catgories Script et ODBC contiennent les catgories suivantes :
Catgories SQL Description Contient les catgories Syntax, Format, File et Keywords. Chaque catgorie contient des entres dont les valeurs dfinissent la syntaxe gnrale pour la base de donnes Contient des catgories pour chaque type d'objet dans la base de donnes. Chaque catgorie contient des entres dont les valeurs dfinissent des commandes de base de donnes et des caractristiques objet Contient des entres de conversion des types de donnes. Ces entres rpertorient les correspondances entre les types de donnes internes PowerAMC et les types de donnes de la base de donnes cible Extrait les informations de fichiers de dfinition de SGBD de PowerAMC Version 6. Non utilis dans les versions ultrieures
Objects
Data Type
Customize
Exemple
Dans le fichier de dfinition de Sybase Adaptive Server Anywhere 6, la catgorie Script est dveloppe pour afficher la catgorie Objects dans laquelle Index est galement dveloppe. L'entre Create est slectionne et la zone Valeur associe cette commande dfinit la faon ont l'index est cr.
Catgorie SQL
La catgorie SQL contient les catgories suivantes : Syntax contient des paramtres gnraux relatifs la syntaxe SQL Format contient des paramtres concernant les caractres admis File contient les entres de texte header, footer et usage utilises lors de la gnration Keywords contient la liste des mots rservs et fonctions disponibles dans SQL
PowerAMC
Chapitre 1
Exemple
Dans le fichier de dfinition de Sybase Adaptive Server Anywhere 6, la catgorie Script est dveloppe pour montrer la catgorie SQL dans laquelle Syntax est galement dveloppe pour montrer les paramtres gnraux de syntaxe tels que Terminator et BlockTerminator.
L'entre Terminator est slectionne et la zone Valeur associe cette entre dfinit le symbole de fin courant.
Catgorie Objects
La catgorie Object contient toutes les commandes pour crer, supprimer ou modifier tous les objets dans la base de donnes. Elle inclut galement des commandes qui dfinissent le comportement des objets, les valeurs par dfaut, les instructions SQL ncessaires, les options de reverse engineering, etc.
Exemple
Dans le fichier de dfinition de Sybase Adaptive Server Anywhere 8, la catgorie Objects est dveloppe pour montrer la catgorie Database. L'entre Create est slectionne et la zone Valeur associe contient la commande relative la cration de base de donnes.
10
PowerAMC
Chapitre 1
11
Catgorie Profile
La catgorie Profile est utilise pour dfinir les profils PowerAMC. Dans un SGBD, vous pouvez dfinir les types d'attributs tendus et les attributs tendus pour les objets de base de donnes. La catgorie Profile contient les catgories suivantes :
Catgorie Shared\Extended attribute types Description Permet de dfinir les types d'attributs tendus et les templates partags. Les types d'attributs tendus sont des types de donnes rutiliss entre attributs tendus. Les templates partags sont des morceaux de code utiliss dans la gnration de texte Permet de dfinir des extensions de mtaclasse, par exemple des symboles personnaliss, des strotypes, des critres ou des fichiers gnrs
Metaclasses
Pour plus d'informations sur les profils, reportez-vous au chapitre Gestion de profils. Pour plus d'informations sur les templates et les fichiers gnrs, reportez-vous au chapitre Guide de rfrence de la gnration. Attributs tendus Pour chaque attribut tendu dfini dans cette catgorie, un onglet Attributs tendus s'affiche dans la feuille de proprits de l'objet correspondant. Vous pouvez utiliser cet onglet pour ajouter une valeur d'attribut tendu dans la dfinition de l'objet. Certains SGBD sont fournis avec des attributs tendus qui sont ncessaires lors de la gnration, il est donc prfrable de ne pas modifier ces attributs tendus, ou tout au moins de crer une copie de sauvegarde de chaque fichier de SGBD avant de commencer les modifier. Si vous souhaitez amliorer la gnration de modle, vous pouvez suivre le modle des attributs tendus existants et l'affecter aux autres catgories d'objet. Dfinition tendue d'objet Si vous souhaitez complter la dfinition des objets de modlisation et dvelopper le mtamodle PowerAMC, vous devez dfinir des attributs tendus dans une dfinition tendue de modle. De tels attributs tendus ne sont pas utiliss lors du processus de gnration. Pour plus d'informations sur les dfinitions tendues de modle, reportez-vous au chapitre Guide de rfrence des dfinitions tendues de modle.
12
PowerAMC
Chapitre 1
Pointez sur une catgorie de mtaclasse dans la catgorie Profile, cliquez le bouton droit de la souris, puis slectionnez NouveauAttributs tendus dans le menu contextuel. Un nouvel attribut tendu est cr.
2 3 4 5 6 Exemple
Saisissez un nom dans la zone Nom. Saisissez un commentaire dans la zone Commentaire. Slectionnez un type de donnes dans la liste droulante Type de donnes. <facultatif>> Slectionnez une valeur par dfaut dans la liste droulante Valeur par dfaut. Cliquez sur Appliquer.
Dans DB2 UDB 7 OS/390, l'attribut tendu WhereNotNull permet d'ajouter une clause qui spcifie que les noms d'index doivent tre uniques condition qu'ils ne soient pas null.
13
Notions de base relatives aux catgories de SGBD Dans la commande Create index, WhereNotNull est valu comme suit :
create [%INDEXTYPE% ][%UNIQUE% [%WhereNotNull%?where not null ]]index [%QUALIFIER%]%INDEX% on [%TABLQUALIFIER%]%TABLE% ( %CIDXLIST% ) [%OPTIONS%]
Si le nom d'index est unique, et si vous dfinissez le type de l'attribut tendu WhereNotNull comme True, la clause "where not nul" sera insre dans le script. Dans la qute SqlListQuery :
{OWNER, TABLE, INDEX, INDEXTYPE, UNIQUE, INDEXKEY, CLUSTER, WhereNotNull} select tbcreator, tbname, name, case indextype when '2' then 'type 2' else 'type 1' end, case uniquerule when 'D' then '' else 'unique' end, case uniquerule when 'P' then 'primary' when 'U' then 'unique' else '' end, case clustering when 'Y' then 'cluster' else '' end, case uniquerule when 'N' then 'TRUE' else 'FALSE' end from sysibm.sysindexes where 1=1 [ and tbname=%.q:TABLE%] [ and tbcreator=%.q:OWNER%] [ and dbname=%.q:CATALOG%] order by 1 ,2 ,3
14
PowerAMC
Chapitre 1
Par dfaut, les attributs tendus s'affichent sur un onglet distinct dans la page Attributs tendus d'une feuille de proprits d'objet ou dans des listes d'objets. Chaque attribut tendu a les proprits suivantes :
Proprit Nom Type de donnes Valeur R Description Nom de l'attribut tendu Type de donnes de l'attribut tendu (boolean, color, date, file, float, font, etc.) ou type de donnes personnalis Valeur de l'attribut tendu. Cette zone affiche la valeur par dfaut dfinie pour le type de donnes d'attribut tendu Valeur redfinie. Cette case est coche si vous modifiez la valeur par dfaut dans la colonne Valeur, soit en ouvrant la liste droulante, soit en cliquant sur le bouton Points de suspension
Le nom et le type de donnes des attributs tendus ne peuvent pas tre modifis partir de la feuille de proprits de l'objet. Ces proprits doivent tre dites partir de l'diteur de SGBD. Toutefois, la valeur d'attribut tendu peut tre modifie dans la page Attributs tendus ou dans une liste.
Pour dfinir la valeur d'un attribut tendu :
Affichez la feuille de proprits d'un objet. ou Slectionnez ModleObjets pour afficher une liste d'objets. Cliquez sur l'onglet Attributs tendus pour afficher la page correspondante. ou Cliquez sur l'outil Personnaliser les colonnes et filtrer, slectionnez Attributs tendus dans la liste des colonnes, puis cliquez sur OK. Les attributs tendus s'affichent dans des pages munies d'onglets ou sous la forme de colonnes supplmentaires dans la liste.
Cliquez sur la colonne Valeur d'un attribut tendu si vous souhaitez modifier sa valeur et slectionnez une valeur dans la liste droulante. ou Saisissez ou slectionnez une valeur dans la cellule approprie de la liste. Le bouton Points de suspension permet de mieux dfinir la valeur de l'attribut tendu slectionn.
15
Vous pouvez crer autant d'attributs tendus que vous le souhaitez, pour chaque objet pris en charge par le SGBD.
PowerAMC prend en compte la casse des caractres
Les noms des variables PowerAMC tiennent compte de la casse des caractres. Le nom d'une variable doit correspondre la casse prs au nom d'attribut tendu.
16
PowerAMC
Chapitre 1
Exemple
Dans DB2 UDB 7, l'attribut tendu WhereNotNull permet d'ajouter une clause qui spcifie que les noms d'index doivent tre uniques condition qu'ils ne soient pas null. Dans la commande Create index, WhereNotNull est valu comme suit :
create [%INDEXTYPE% ][%UNIQUE% [%WhereNotNull%?where not null ]]index [%QUALIFIER%]%INDEX% on [%TABLQUALIFIER%]%TABLE% ( %CIDXLIST% ) [%OPTIONS%]
Si le nom d'index est unique, et si vous avez dfini le type de l'attribut tendu WhereNotNull comme True, la clause "where not nul" sera insre dans le script. Dans l'entre SqlListQuery :
{{OWNER, TABLE, INDEX, INDEXTYPE, UNIQUE, INDEXKEY, CLUSTER, WhereNotNull} select tbcreator, tbname, name, case indextype when '2' then 'type 2' else 'type 1' end, case uniquerule when 'D' then '' else 'unique' end, case uniquerule when 'P' then 'primary' when 'U' then 'unique' else '' end, case clustering when 'Y' then 'cluster' else '' end, case uniquerule when 'N' then 'TRUE' else 'FALSE' end from sysibm.sysindexes where 1=1 [ and tbname=%.q:TABLE%] [ and tbcreator=%.q:OWNER%] [ and dbname=%.q:CATALOG%] order by 1 ,2 ,3
17
Mode de fonctionnement
Cette section dcrit les mcanismes de gnration et de reverse engineering. Terminologie Le mot instruction est utilis pour dfinir un fragment de syntaxe SQL ; les instructions contiennent le plus souvent des variables qui seront values lors de la gnration et du reverse engineering de script. Le mot requte est rserv pour le reverse engineering ODBC. Gnration Lors de la gnration, les instructions sont analyses et les variables contenues dans les instructions sont values et remplaces par leur valeur prise dans le modle courant. Les mmes instructions sont utilises pour la gnration de script et la gnration ODBC. Lors du reverse engineering de script, PowerAMC analyse le script et identifie les diffrentes instructions grce au caractre de fin (terminator) (dfini dans Script\Sql\Syntax). Chaque instruction individuelle est "associe" une instruction existante dans le fichier de dfinition de SGBD afin de valider en tant qu'lments dans un modle PowerAMC, les variables contenues dans les instructions rcupres via reverse engineering. Lors du reverse engineering ODBC, des requtes spciales sont utilises pour extraire les informations de tables systme de la base de donnes. Chaque colonne d'un jeu de rsultats de requte est associe une variable. L'en-tte de la requte spcifie l'association entre les colonnes du jeu de rsultats et la variable. Les valeurs des enregistrements renvoys sont stockes dans ces variables qui sont alors valides en tant qu'attributs d'objet. Pour plus d'informations sur les variables, reportez-vous la section Chanes et variables facultatives.
Reverse engineering
18
PowerAMC
Chapitre 1
La catgorie Script contient des instructions DDL (Database Description Language) utilises pour la gnration de script et la gnration ODBC ainsi que pour le reverse engineering de script. Par exemple, l'instruction standard pour crer un index est la suivante :
create index %INDEX%
Toutefois, les valeurs d'instructions varient d'un fichier de dfinition l'autre en ce qui concerne la syntaxe de SGBD et les fonctionnalits spcifiques. Par exemple, dans Oracle 9i, l'instruction de cration pour un index contient la dfinition du propritaire de l'index car Oracle 9i prend en charge les propritaires d'index:
create [%UNIQUE%?%UNIQUE% :[%INDEXTYPE% ]]index [%QUALIFIER%]%INDEX% on [%CLUSTER%?cluster C_%TABLE%:[%TABLQUALIFIER%]%TABLE% ( %CIDXLIST% )] [%OPTIONS%]
Les autres instructions incluent notamment : Drop pour supprimer un objet Options pour dfinir les options physiques d'un objet
19
Gestion de la gnration et du reverse engineering ConstName pour dfinir le template de nom de contrainte pour les vrifications d'un objet
etc... Instructions Modify Ces instructions sont utilises lors d'une modification de base de donnes, afin de modifier les attributs d'objets existants. Elles peuvent tre aisment identifies car la plupart d'entre elles commencent par le mot "Modify". Par exemple ModifyColumn est l'instruction utilise pour modifier une colonne. Toutefois, toutes ces instructions ne commencent pas forcment par Modify, par exemple Rename ou AlterTableFooter. Les instructions de cration d'une cl peuvent galement tre particulires en fonction de l'endroit o la cl est dfinie : si elle se trouve dans la table, elle sera cre l'aide d'une commande de gnration. Si elle est cre hors de la table, elle sera cre l'aide d'une commande de modification portant sur la table. Elments de dfinition de base de donnes La catgorie Script contient galement des lments associs la dfinition de base de donnes. Il ne s'agit pas d'instructions et elles ne sont pas utilises lors de la gnration ou du reverse engineering, mais plutt dans le cas d'une personnalisation de l'interface et du comportement de PowerAMC en fonction des fonctionnalits de base de donnes. Par exemple, l'lment Maxlen dans la catgorie table doit tre dfini conformment une longueur maximale de code tolre pour une table dans la base de donnes courante. Permission, EnableOwner, AllowedADT sont d'autres exemples d'lments dfinis pour adapter PowerAMC au SGBD courant. Requtes de reverse engineering ODBC La plupart des requtes de reverse engineering ODBC commencent par "Sql", ce qui permet de les identifier facilement. Par exemple, SqlListQuery est la requte utilise pour extraire une liste d'objets, ou SqlOptsQuery est la requte utilise pour procder au reverse engineering d'options physiques. Pour plus d'informations sur les requtes de reverse engineering ODBC, reportez-vous la section Reverse engineering ODBC.
20
PowerAMC
Chapitre 1
Par exemple, l'change de donnes entre PowerAMC et MSACCESS fonctionne l'aide de scripts VB et non de SQL, c'est pourquoi ces instructions sont situes dans la catgorie ODBC. Vous devez utiliser un programme spcial (access.mdb) pour convertir ces scripts en objets de base de donnes MSACCESS.
Gnration de script
Les instructions de gnration de script sont disponibles dans la catgorie Script, sous les diffrentes catgories d'objet. Par exemple, dans Sybase ASA 8, l'instruction Create de la catgorie Table se prsente comme suit :
create table [%QUALIFIER%]%TABLE% ( %TABLDEFN% ) [%OPTIONS%]
Cette instruction contient les paramtres de cration de la table ainsi que le nom de son propritaire et ses options physiques. Mcanisme d'extension Vous pouvez tendre des instructions de gnration de script pour complter la gnration. Le mcanisme d'extension permet de gnrer les instructions immdiatement avant ou aprs les instructions Create, Drop et Modify, et d'extraire ces instructions lors du reverse engineering. Pour plus d'informations sur le reverse engineering d'instructions supplmentaires, reportez-vous la section Reverse engineering de script. Vous utilisez des instructions before ou after pour gnrer du code supplmentaire ; il s'agit d'lments de texte dfinis dans une catgorie d'objet slectionne dans le SGBD. Dans cette section, nous les appellerons instructions d'extension. Langage de gnration par template (GTL) Les instructions d'extension sont dfinies l'aide du mcanisme de langage de gnration par template (GTL) PowerAMC. Une instruction d'extension peut contenir : Une rfrence d'autres instructions qui sera value lors de la gnration. Ces entres sont des lments de texte qui doivent tre dfinis dans la mme catgorie que les objet des instructions d'extension Des variables utilises pour valuer des proprits d'objet et des attributs tendus. Les variables sont encadres par des caractres % Des macros fournissant des structures de programmation gnrique pour tester des variables (.if) 21
Gestion de la gnration et du reverse engineering Pour plus d'informations sur le langage de gnration par template (GTL) PowerAMC, reportez-vous au chapitre Guide de rfrence de la gnration. Lors de la gnration, les instructions et variables sont values et le rsultat est ajout au script global. Exemple 1 L'instruction d'extension AfterCreate est dfinie dans la catgorie Table pour complter l'instruction Create de la table, en ajoutant des partitions la table si la valeur de l'attribut tendu de la table le requiert. AfterCreate est dfini dans la syntaxe de GTL comme suit :
.if (%ExtTablePartition% > 1) %CreatePartition% go .endif
La macro .if est utilise pour valuer la variable %ExtTablePartitions%. Cette variable est un attribut tendu qui contient le nombre de partitions de la table. Si la valeur de %ExtTablePartitions% est suprieure 1, %CreatePartition% sera gnr suivi de "go". %CreatePartition% est une instruction dfinie dans la catgorie Table comme suit :
alter table [%QUALIFIER%]%TABLE% partition %ExtTablePartition%
%CreatePartition% gnre l'instruction de cration du nombre de partitions de table spcifi dans %ExtTablePartitions%. Exemple 2 Vous crez dans Sybase ASE une instruction tendue pour crer automatiquement un login d'utilisateur avant l'excution de l'instruction Create user. L'instruction BeforeCreate se prsente comme suit :
sp_addlogin %Name% %Password% go
22
PowerAMC
Chapitre 1
Le login gnr automatiquement aura le mme nom que l'utilisateur et son mot de passe. Vous pouvez afficher un aperu de l'instruction dans la feuille de proprits de l'objet, l'instruction BeforeCreate apparat avant l'instruction de cration de l'utilisateur :
Instructions Modify
Vous pouvez galement ajouter des instructions BeforeModify et AfterModify aux instructions modify standard. Les instructions Modify sont excutes afin de synchroniser la base de donnes avec la structure cre dans le MPD. Par dfaut, la fonctionnalit de modification de base de donnes ne prend pas en compte les attributs tendus lorsqu'elle compare les changements effectus sur le modle depuis la dernire gnration. Vous pouvez contourner cette rgle en ajoutant des attributs tendus dans l'lment de liste ModifiableAttributes. Les attributs tendus dfinis dans cette liste seront pris en compte dans la bote de dialogue de fusion lors de la synchronisation de base de donnes. Pour dtecter qu'une valeur d'attribut tendu a t modifie, vous pouvez utiliser les variables suivantes : %OLDOBJECT% pour accder l'ancienne valeur de l'objet %NEWOBJECT% pour accder la nouvelle valeur de l'objet
Par exemple, vous pouvez vrifier que la valeur de l'attribut tendu ExtTablePartition a t modifie l'aide de la syntaxe de GTL suivante :
.if (%OLDOBJECT.ExtTablePartition% != %NEWOBJECT.ExtTablePartition%)
23
Gestion de la gnration et du reverse engineering Si la valeur d'attribut tendu a t modifie, une instruction tendue sera gnre pour mettre jour la base de donnes. Dans la syntaxe de Sybase ASE, l'instruction tendue ModifyPartition se prsente comme suit car en cas de changement de partition vous devez supprimer la prcdente partition avant de la recrer :
.if (%OLDOBJECT.ExtTablePartition% != %NEWOBJECT.ExtTablePartition%) .if (%NEWOBJECT.ExtTablePartition% > 1) .if (%OLDOBJECT.ExtTablePartition% > 1) %DropPartition% .endif %CreatePartition% .else %DropPartition% .endif .endif
Pour plus d'informations sur le langage de gnration par template (GTL) PowerAMC, reportez-vous au chapitre Guide de rfrence de la gnration.
24
PowerAMC
Chapitre 1
Par exemple, l'instruction d'extension AfterCreate utilise l'instruction CreatePartition. Cette entre de texte doit tre dclare dans ReversedStatements pour tre correctement traite par le reverse engineering. Vous pouvez dclarer d'autres instructions de la faon suivante :
Gnration ODBC
Le plus souvent, la gnration pour ODBC utilise les mmes instructions que la gnration de script. Toutefois, lorsque le SGBD ne prend pas en charge la syntaxe SQL standard, des instructions de gnration spciales sont dfinies dans la catgorie ODBC. C'est notamment le cas pour MSACCESS qui a besoin de scripts VB pour crer des objets de base de donnes l'aide de la gnration ODBC. Ces instructions sont dfinies dans la catgorie ODBC du SGBD.
25
Gestion de la gnration et du reverse engineering La plupart des requtes sont nommes sur le modle "Sql...Query".
Entre SqlListQuery Description Dresse la liste des objets pouvant tre slectionns dans la zone Slection. SqlListQuery extrait les objets et remplit la fentre de reverse engineering. Par la suite, chacune des autres requtes ci-dessous est excute pour chaque objet slectionn. Si SqlListQuery n'est pas dfini, des fonctions ODBC standard sont utilises pour extraire les objets. SqlAttrQuery, SqlOptsQuery etc. seront ensuite excutes, si elles ont t dfinies. SqlListQuery doit extraire le plus petit nombre de colonnes possible car le processus fait une utilisation intensive de la mmoire Procde au reverse engineering d'attributs d'objets SqlAttrQuery peut ne pas tre ncessaire si SqlListQuery peut extraire toutes les informations ncessaires. Par exemple, dans Sybase Adaptive Server Anywhere 6, TablespaceListQuery suffit pour extraire toutes les informations requises pour l'utilisation dans un MPD Procde au reverse engineering des options physiques Procde au reverse engineering des objets enfant, par exemple des colonnes d'un index ou d'une cl particulire, des jointures d'une rfrence spcifique Procde au reverse engineering des index systme crs par la base de donnes Procde au reverse engineering des contraintes relatives aux vrifications d'objet Procde au reverse engineering de permissions sur les objets
SqlAttrQuery
SqlOptsQuery SqlListChildrenQuery
Vous pouvez dfinir des requtes ODBC supplmentaires pour rcuprer plusieurs attributs lors du reverse engineering, ce afin d'viter de charger SqlListQuery avec des requtes pour extraire des attributs non pris en charge par SqlAttrQuery, ou des objets non slectionns pour le reverse engineering. Ces requtes supplmentaires doivent tre rpertories dans l'entre ReversedQueries. Par exemple, SqlColnListQuery est utilis pour extraire exclusivement des colonnes de vues. Cette requte doit tre dclare dans l'entre ReversedQueries pour tre prise en compte lors du reverse engineering.
26
PowerAMC
Chapitre 1
Remarque : les requtes tendues ne doivent pas tre dfinies dans l'entre ReversedQueries. Pour plus d'informations sur ReversedQueries, reportezvous la section Mcanisme d'extension pour les requtes de reverse engineering ODBC.
Structure de requte
Chaque colonne d'un jeu de rsultats est associe une variable. Un en-tte de script spcifie l'association entre les colonnes du jeu de rsultats et la variable. Les valeurs des enregistrements renvoys sont stockes dans ces variables, qui sont alors valides comme valeurs d'attribut d'objet. L'en-tte de script est contenu entre accolades { }. Ces variables sont rpertories entre crochets, et sont spares les unes des autres par une virgule. Il existe une colonne pour chaque variable dans l'instruction Select qui suit l'en-tte. Par exemple :
{OWNER, @OBJTCODE, SCRIPT, @OBJTLABL} SELECT U.USER_NAME, P.PROC_NAME, P.PROC_DEFN, P.REMARKS FROM SYSUSERPERMS U,SYSPROCEDURE P WHERE [%SCHEMA% ? U.USER_NAME='%SCHEMA%' AND] P.CREATOR=U.USER_ID ORDER BY U.USER_NAME
La liste des variables possibles correspond la liste des variables tablie dans le chapitre Variables dans PowerAMC du Guide de l'utilisateur du MPD.
Documentation utilisateur avance
27
Gestion de la gnration et du reverse engineering Chaque partie de l'en-tte (spare par des virgules) est associe aux informations suivantes : Nom de la variable (obligatoire). Voir l'exemple dans Traitement avec des noms de variable Le mot cl ID suit chaque nom de variable. ID signifie que la variable fait partie de l'identifiant Le mot cl (points de suspension) signifie que la variable doit tre concatne pour toutes les lignes renvoyes par la requte SQL et ayant les mmes valeurs pour les colonnes d'ID Retrieved_value = PD.value rpertorie l'association entre une valeur extraite et une valeur PowerAMC. Une table de conversion permet de convertir chaque valeur de l'enregistrement (table systme) en une autre valeur (dans PowerAMC). Ce mcanisme est un mcanisme alternatif. Voir l'exemple dans Traitement avec une table de conversion
La seule information obligatoire est le nom de variable. Toutes les autres informations sont facultatives. Les mots cls ID et (points de suspension) sont mutuellement exclusifs. Traitement avec des noms de variable
{TABLE ID, ISPKEY ID, CONSTNAME ID, COLUMNS ...} select t.table_name, 1, null, c.column_name + ', ', c.column_id from systable t, syscolumn c where etc..
Dans ce script, l'identifiant est dfini comme TABLE + ISKEY+ CONSTNAME. Dans les lignes de rsultat renvoyes par le script SQL, les valeurs du quatrime champ sont concatnes dans le champ COLUMNS tant que ces valeurs d'ID sont identiques.
SQL Result set Table1,1,null,col1, Table1,1,null,col2, Table1,1,null,col3, Table2,1,null,col4, In PowerDesigner memory Table1,1,null,col1,col2,col3 Table2,1,null,col4
28
PowerAMC
Chapitre 1
Dans l'exemple, COLUMNS va contenir la liste des colonnes spares par des virgules. PowerAMC va traiter le contenu du champ COLUMNS pour supprimer la dernire virgule. Traitement avec une table de conversion La syntaxe insre immdiatement derrire un champ dans l'en-tte est la suivante :
(SQL value1 = PowerDesigner value1, SQL value2 = PowerDesigner value2, * = PowerDesigner value3)
Dans cet exemple, lorsque la requte SQL renvoie la valeur 25 ou 26, elle est remplace par JAVA dans la variable TYPE.
Ces variables dfinies par l'utilisateur seront values par des requtes spares dfinies par l'utilisateur.
Documentation utilisateur avance
29
Gestion de la gnration et du reverse engineering Les graphiques suivants illustrent le processus d'valuation de variable lors du reverse engineering :
ReversedQueries
Les requtes tendues ne doivent pas tre dfinies dans l'entre ReversedQueries. Etape 1 Une requte est excute pour valuer les variables dans un jeu d'instructions de chane. Si les variables contiennent des requtes et variables dfinies par l'utilisateur, la requte dfinie par l'utilisateur est excute pour valuer les variables dfinies par l'utilisateur. Ces variables dfinies par l'utilisateur sont cres pour tre remplies de donnes provenant des colonnes de type de donnes LONG/BLOB/TEXT. Vous pouvez crer des requtes dfinies par l'utilisateur dans une requte de reverse engineering ODBC. Assurez-vous d'utiliser le mme nom de variable dans ces requtes et dans les requtes dfinies par l'utilisateur. Dans le cas contraire, les variables ne seront pas values. 30 PowerAMC
Chapitre 1
Vous devez galement vrifier l'unicit des noms de variable si vous souhaitez que toutes les variables soient values lors de l'excution de la requte. L'en-tte d'une requte utilisateur contient des noms de variable internes qui ne seront pas values. En revanche, les rgles de conversion pour les valeurs exprimes entre crochets (like (0="", *=",")) peuvent tre utilises lors de la concatnation de chane. Etape 2 L'excution de la requte dfinie par l'utilisateur doit gnrer un jeu de rsultats numrots contenant autant de paires de variable dfinie par l'utilisateur (sans %) et de valeur de variable que ncessaire, s'il existe des variables valuer. Par exemple, dans le jeu de rsultats suivant, la requte a renvoy trois lignes et 4 colonnes par ligne :
Variable 1 Variable 3 Variable 5 1 3 5 Variable 2 Variable 4 Variable 6 2 4 6
Etape 3
Les noms des variables dfinies par l'utilisateur sont remplacs par leurs valeurs. Les sections suivantes expliquent les requtes utilisateur dfinies pour remdier aux limitations du reverse engineering.
31
Gestion de la gnration et du reverse engineering Dans Informix SQL 9, SqlOptsQuery est fourni par dfaut avec les requtes et variables utilisateur suivantes (le code suivant est un sousensemble de SqlOptsQuery) :
select t.owner, t.tabname, '%SqlFragQuery.FragSprt'||f.evalpos||'% %FragExpr'||f.evalpos||'% in %FragDbsp'||f.evalpos||'% ', f.evalpos from informix.systables t, informix.sysfragments f where t.partnum = 0 and t.tabid=f.tabid [ and t.owner = '%SCHEMA%'] [ and t.tabname='%TABLE%']
A l'issue de l'excution de SqlOptsQuery, la requte dfinie par l'utilisateur SqlFragQuery est excute pour valuer FragDbsp n, FragExpr n, et FragSprt n. n reprsente evalpos qui dfinit la position du fragment dans la liste de fragmentation. n permet d'affecter des noms uniques aux variables, quel que soit le nombre de fragments dfinis dans la table. FragDbsp n, FragExpr n, et FragSprt n sont des variables utilisateur qui seront values pour rcuprer des informations concernant les options physiques des fragments dans la base de donnes :
Variable utilisateur FragDbsp n FragExpr n FragSprt n Options physiques Emplacement du fragment pour le fragment n Expression du fragment pour le fragment n Sparateur du fragment pour le fragment n
32
PowerAMC
Chapitre 1
Seules les rgles de conversion dfinies entre crochets seront utilises lors de la concatnation de chane : "FragSprt0", qui contient 0 (f.evalpos), sera remplac par " ", et "FragSprt1", qui contient 1, sera remplac par "," SqlFragQuery gnre un jeu de rsultats numrots contenant autant de paires de nom de variable utilisateur (sans %) et de valeurs de variable que ncessaire, s'il existe de nombreuses variables valuer. Les noms de variable dfinies par l'utilisateur sont remplacs par leur valeur dans l'instruction de chane pour les options physiques des fragments dans la base de donnes.
33
Gestion de la gnration et du reverse engineering Pour contourner cette limitation, SqlListQuery (catgorie Index dans le SGBD) contient un appel vers la requte dfinie par l'utilisateur SqlExpression utilise pour rcuprer l'expression d'index dans une colonne ayant le type de donnes LONG et pour concatner cette valeur dans une instruction de chane (le code suivant est un sous-ensemble de SqlListQuery) :
select '%SCHEMA%', i.table_name, i.index_name, decode(i.index_type, 'BITMAP', 'bitmap', ''), decode(substr(c.column_name, 1, 6), 'SYS_NC', '%SqlExpression.Xpr'||i.table_name||i.index_name||c.colu mn_position||'%', c.column_name)||' '||c.descend||', ', c.column_position from user_indexes i, user_ind_columns c where c.table_name=i.table_name and c.index_name=i.index_name [ and i.table_owner='%SCHEMA%'] [ and i.table_name='%TABLE%'] [ and i.index_name='%INDEX%']
L'excution de SqlListQuery appelle l'excution de la requte dfinie par l'utilisateur SqlExpression. SqlExpression est suivi d'une variable dfinie par l'utilisateur comme suit :
{VAR, VAL} select 'Xpr'||table_name||index_name||column_position, column_expression from all_ind_expressions where 1=1 [ and table_owner='%SCHEMA%'] [ and table_name='%TABLE%']
Le nom de la variable dfinie par l'utilisateur est unique, il s'agit du rsultat de la concatnation de "Xpr", du nom de table, du nom d'index et de la position de colonne.
34
PowerAMC
Chapitre 1
Vous pouvez ajouter une section relative aux qualifiants lorsque vous personnalisez votre SGBD. Cette section doit contenir les entres suivantes : enable: YES/NO SqlListQuery (script) : cette entre contient la requte SQL qui est excute pour extraire la liste des qualifiants. Vous ne devez pas ajouter d'en-tte cette requte
No
35
Pour plus d'informations sur les filtres de qualifiants, reportez-vous la section Filtres et options de reverse engineering dans le chapitre Reverse engineering du manuel Guide de l'utilisateur du MPD. Exemple Dans Adaptive Server Anywhere 7, une requte de qualifiant typique se prsente comme suit :
.Qualifier.SqlListQuery : select dbspace_name from sysfile
En outre, si la valeur est dj encadre d'apostrophes, des apostrophes supplmentaires ne sont pas gnrs.
36
PowerAMC
Chapitre 1
La gnration des apostrophes ou des guillemets dpend du SGBD courant. Le SGBD contient la liste des mots rservs spcifie sous forme de valeurs pour le champ ReservedDefault, sous la catgorie Keywords. Exemple L'exemple suivant affiche le rsultat de l'utilisation d'un mot rserv pour le SGBD Sybase AS Anywhere 6. Sybase AS Anywhere 6 contient les lignes suivantes :
ReservedDefault = NULL AUTOINCREMENT CURRENT DATE CURRENT PUBLISHER CURRENT TIME CURRENT TIMESTAMP CURRENT USER LAST USER USER
Vous pouvez dfinir CURRENT DATE comme valeur par dfaut pour une colonne :
37
Gestion de la gnration et du reverse engineering Le script rsultant contient la chane CURRENT DATE sans apostrophe ou guillemet.
create table SALE ( SALE_ID T_IDENTIFIER STOR_ID T_AN_IDENTIFIER TITLE_ISBN char(12) SALE_DATE T_DATE default CURRENT DATE, SALE_AMOUNT T_AMOUNT SALE_TERMS T_LONG_TEXT SALE_QTY T_QUANTITY primary key (SALE_ID) );
Lorsque vous excutez ce script, Sybase Adaptive Server Anywhere reconnat CURRENT DATE comme valeur par dfaut rserve.
Variable
[%--%]
38
PowerAMC
Chapitre 1
Variable
[%--%? Is true : Is false]
Gnration Si la variable est true, Is true est gnr, si la variable est false, Is false est gnr
Si la variable est gale la valeur constante, Is true est gnr, si la variable est diffrente, Is false est gnr .Z est ignor
Exemples
[%--%] [%OPTIONS%]
Si %OPTIONS% n'est pas FALSE, n'est pas vide ou n'a pas la valeur NO, la variable est gnre, ce texte est remplac par la valeur de %OPTIONS% (options physiques pour les objets visibles dans la feuille de proprits de l'objet).
[default %DEFAULT%]
Dans le reverse engineering, si un texte default 10 est rencontr lors du reverse engineering, %DEFAULT% est renseign avec la valeur 10. Toutefois cette spcification n'est pas obligatoire et l'instruction SQL fait l'objet d'un reverse engineering mme si la spcification est absente. Dans la gnration du script, si la valeur par dfaut est dfinie (10, par exemple) lors de la gnration, le texte est remplac par default 10, dans le cas contraire rien n'est gnr pour le bloc.
[%--%? Is true : Is false]
39
Gestion de la gnration et du reverse engineering Vous pouvez utiliser une valeur conditionnelle pour une chane ou variable facultative. Deux conditions sont spares par un signe deux points au sein de crochets utiliss avec la chane ou variable facultative. Par exemple, [%MAND%?Is true:Is false]. Si %MAND% est valu comme true ou renseign l'aide d'une valeur (diffrente de FALSE ou NO) lors de la gnration, ce texte est remplac par Is true. Dans le cas contraire, il est remplac par Is false.
[%--%=--? Is true : Is false]
Vous pouvez galement utiliser des mots cls pour tester le contenu d'une variable.
[%DELCONST%=RESTRICT?:[on delete %DELCONST%]]
Create table abc (a integer not null default 99) Create table abc (a integer default 99 not null)
Ces deux commandes de cration sont identiques mais les attributs sont inverss. En rgle gnrale, le fichier XDB cible prend en charge uniquement une notation avec un ordre spcifique dans la chane et les variables. Si vous procdez au reverse engineering de ces deux commandes, l'une d'elles ne passera pas en raison de l'ordre des variables. Vous pouvez contourner cette limitation en utilisant la macro .Z de la faon suivante :
%COLUMN% %DATATYPE%[.Z: [%NOTNULL%][%DEFAULT%]]
Si vous utilisez cette macro, l'analyseur syntaxique du reverse engineering ne prend plus en compte l'ordre dans les variables. Utilisation des chanes Une chane place entre crochets est toujours gnre ; toutefois, que cette chane soit prsente ou non dans l'instruction SQL n'annulera pas le reverse engineering de l'instruction courante puisqu'elle est facultative dans la syntaxe SQL de l'instruction. Par exemple, la syntaxe de cration d'une vue inclut une chane :
create [or replace] view %VIEW% as %SQL%
Lorsque vous procdez au reverse engineering d'un script, et si ce dernier ne contient que create ou create or replace, l'instruction fait l'objet d'un reverse engineering dans les deux cas car la chane est facultative.
40
PowerAMC
Chapitre 1
Vous devez incorporer les options de format dans la syntaxe de variable comme suit :
%.format:variable%
Vous pouvez combiner les codes de format. Par exemple, %.U8:CHILD% met en forme le code de la table enfant avec un maximum de huit caractres majuscules.
41
Exemple
Les exemples suivants montrent les codes de format incorpors dans la syntaxe de variable pour le template de nom de contrainte des cls primaires, en utilisant une table nomme CUSTOMER_PRIORITY :
Format .L .Un Utilisation Minuscules Majuscules + texte de variable justifi droite jusqu' une longueur fixe, n reprsente le nombre de caractres Supprimer les espaces de dbut et de fin de la variable Longueur maximum dans laquelle n reprsente le nombre de caractres Complte le rsultat avec des espaces droite pour afficher une longueur fixe dans laquelle n reprsente le nombre de caractres Exemple PK_%.L:TABLE% PK_%.U12:TABLE% Rsultat PK_customer_priority PK_CUSTOMER_PRI
.T
PK_%.T:TABLE%
PK_customer_priority
.n
PK_%.8:TABLE%
PK_Customer
-n
PK_%-20:TABLE%
PK_ Customer_priority
Pour obtenir la liste des variables utilises dans PowerAMC, reportezvous la section Variables de MPD.
42
PowerAMC
Chapitre 1
Dans PowerAMC, vous pouvez dfinir des noms de contrainte dfinis par l'utilisateur. Les templates s'appliquent toutes les contraintes pour lesquelles vous ne dfinissez pas de noms de contrainte dfinis par l'utilisateur. Variables Code et Generated code De nombreux objets ont des variables Code et Generated Code qui sont diffrencies comme suit :
Variable Code Generated Code Description Code d'attribut dfini dans la feuille de proprits Code calcul en fonction des options de gnration. Le code gnr peut tre diffrent du code dans les cas suivants : Le code est un mot rserv ou contient des caractres incorrects. Le code gnr est plac entre guillemets Le code est plus long que la longueur autorise par le SGBD. Le code gnr est tronqu
Pour obtenir la liste de toutes les variables utilises dans PowerAMC, reportez-vous la section Variables de MPD.
43
Le champ ConstName pour tous les objets peut accepter les variables courantes suivantes :
Variable %@OBJTNAME% %@OBJTCODE% %@OBJTLABL% %@OBJTDESC% Description Nom d'objet Code d'objet Commentaire pour l'objet Description pour l'objet
Le champ ConstName pour l'objet TABLE peut accepter les variables suivantes :
Variable %TABLE% %TNAME% %TCODE% %TLABL% Valeur Code gnr pour la table Nom de la table Code de la table Commentaire de la table
Le champ ConstName pour l'objet COLUMN peut accepter les variables suivantes :
Variable %COLUMN% %COLNAME% %COLNCODE% Valeur Code gnr pour la colonne Nom de la colonne Code de la colonne
Le champ ConstName pour l'objet KEY peut accepter les variables suivantes :
Variable %AKEY% %TABLE% Valeur Code de la cl alternative Code de la table
44
PowerAMC
Chapitre 1
Le champ ConstName pour l'objet REFERENCE peut accepter les variables suivantes :
Variable %REFR% %PARENT% %PNAME% %PCODE% %CHILD% %CNAME% %CCODE% %PQUALIFIER% %CQUALIFIER% %REFRNAME% %REFRCODE% %PKCONSTRAINT% %POWNER% %COWNER% %CHCKONCMMT% Valeur Code gnr pour la rfrence Code gnr pour la table parent Nom de la table parent Code de la table parent Code gnr pour la table enfant Nom de la table enfant Code gnr pour la table enfant Qualifiant de la table parent Qualifiant de la table enfant Nom de rfrence Code de rfrence Nom de contrainte de cl parent utilis pour faire rfrence l'objet Propritaire de la table parent Propritaire de la table enfant TRUE lorsque Check on commit est slectionn sur la rfrence (spcifique ASA 6.0)
Exemple
L'exemple suivant montre l'utilisation de templates de nom de contrainte pour Sybase Adaptive Server Anywhere 6. Le SGBD Adaptive Server Anywhere 6 contient les valeurs suivantes pour le champ ConstName :
Catgorie PKEY Commentaire Template de nom de contrainte pour les cls primaires Template de nom de contrainte pour les cls trangres Valeur PK_%.U27:TABLE%
REFR
FK_%.U8:CHILD%_%.U9:REFR%_%.U8: PARENT%
45
COLN
CKC_%.U17:COLUMN%_%.U8:TABLE%
TABL
CKT_%.U26:TABLE%
Le script rsultant que vous pouvez gnrer pour une table utilisant Adaptive Server Anywhere 6 dclare les noms de contrainte comme suit :
create table DISCOUNT ( DISCOUNT_ID T_IDENTIFIER not null, STOR_ID T_AN_IDENTIFIER not null, DISC_PERCENT T_PERCENT not null, DISC_TYPE T_SHORT_TEXT null constraint CKC_DISC_TYPE_DISCOUNT check (DISC_TYPE in ('High','Medium','Low')), DISC_LOWQTY T_QUANTITY null , DISC_HIGHQTY T_QUANTITY null , constraint PK_DISCOUNT primary key (DISCOUNT_ID) ) go
46
PowerAMC
Chapitre 1
Lors de la gnration, les options slectionnes dans le modle pour chaque objet sont stockes dans une variable %OPTIONS%. La variable %OPTIONS% contient la chane d'option physique comme si elle tait crite dans un script SQL. Cette chane doit s'afficher la fin de l'lment auquel elle appartient et ne doit tre suivie de rien. Exemple
create table [%OPTIONS%]
47
Vous pouvez utiliser les variables PowerAMC dfinies pour un objet donn pour dfinir les options pour cet objet. Par exemple, dans Oracle, vous pouvez dfinir la variable suivante pour un cluster si vous souhaitez que ce cluster prenne le mme nom que la table.
Cluster %TABLE%
Pour obtenir la liste de toutes les variables utilises dans PowerAMC, reportez-vous la section Variables de MPD. Attributs tendus Vous pouvez utiliser des attributs tendus dans des options physiques. Pour plus d'informations sur les attributs tendus, reportez-vous la section Catgorie Profile. Lors du reverse engineering par script, la section de la requte SQL dtermine comme tant les options physiques est stocke dans %OPTIONS%, et sera ensuite analyse lorsque requis par une feuille de proprits d'objet. Lors du reverse engineering ODBC, l'instruction SqlOptsQuery est excute pour extraire les options physiques qui sont stockes dans %OPTIONS% afin de les analyser lorsque requis par une feuille de proprits d'objet. Selon la dfinition de SGBD, vous pouvez dfinir des options physiques pour les objets suivants : Tablespace Storage Database Table Column Index Key (primaire et alternative)
Les options physiques typiques sont pctfree, pctused, fillfactor et partition. Vous dfinissez des options physiques sur la feuille de proprits d'un objet.
48
PowerAMC
Chapitre 1
Lorsque vous slectionnez une option avec une valeur %d ou %s dans le volet droit, une zone d'dition s'affiche en bas de ce volet. Elle est utilise lorsque l'option physique requiert une valeur. Les variables possibles sont les suivantes :
Variable %d %s Description Une valeur numrique suit l'option physique. Vous devez saisir une valeur numrique dans le champ d'dition La chane suit l'option physique. Vous devez saisir une chane dans la zone d'dition
Chaque option slectionne cre une ligne dans le volet droit. Si la slection contient une variable %d, une valeur numrique peut tre entre. Si la slection contient une variable %s, un texte est entr. Si la slection ne contient ni variable %d ni variable %s, aucune valeur n'est entre. Les variables entre signes % (%--%) ne sont pas admises dans les options physiques. Vous pouvez spcifier une contrainte sur n'importe quelle ligne contenant une variable, par exemple une liste de valeurs, des valeurs par dfaut, la valeur doit tre un storage ou un tablespace, certaines lignes peuvent tre groupes. Ces contraintes sont introduites par une virgule directement derrire l'option physique et spares par des virgules (voir la section suivante).
49
Exemple
La page Options dans une feuille de proprits de tables est illustre cidessous :
Lorsque l'option with max_rows_per_page est slectionne, la zone Valeur s'affiche en bas de la page, en regard du bouton Egal. La valeur par dfaut est zro (0). With max_rows_per_page est une option physique d'index pour Sybase AS Enterprise 11.x. Cette option limite le nombre de lignes par page de donnes. La syntaxe se prsente comme suit :
with max_row_per_page = x
O x est le nombre de lignes spcifi par l'utilisateur. Dans Sybase Adaptive Server Enterprise, cette option peut tre dfinie pour l'objet d'index comme suit :
with max_rows_per_page=%d on %s : category=storage
Les variables %d et %s doivent se trouver en dernire position et ne doivent pas tre suivies d'autres options.
50
PowerAMC
Chapitre 1
segmentname correspond au code de storage dfini dans PowerAMC. databasename correspond au code de modle. Ces deux entres sont automatiquement gnres. devicename doit tre saisi par l'utilisateur, il devient une option. Dans SYSTEM11, cette option est dfinie comme suit :
Create = execute sp_addsegment %STORAGE%, %DATABASE%, %OPTIONS% OPTIONS = <devname> %s
Une option physique dpourvue de nom doit tre suivie de la variable %d ou %s.
La valeur par dfaut est affiche par dfaut dans la fentre Options.
51
Une liste droulante avec les valeurs est affiche en regard du volet droit de la page d'options physiques.
Utilisation d'une virgule pour sparer Default et List
Si vous utilisez simultanment Default= et List=, vous devez les sparer par une virgule. Exemple Si ignore_dup_row est la valeur par dfaut pour un index, la syntaxe utilise dans le fichier de dfinition de SGBD pour dfinir cette valeur est la suivante :
IndexOption = <duprow> %s: default= ignore_dup_row, list=ignore_dup_row | allow_dup_row
52
PowerAMC
Chapitre 1
Dans Sybase Adaptive Server Enterprise 11, la valeur par dfaut pour l'objet d'index est dfinie dans les options comme suit :
on %s: category=storage
Vous pouvez slectionner le storage appropri dans une liste droulante dans la page d'options physiques.
L'option physique With inclut les autres options entre accolades { }, spares par une virgule. Pour dfinir une option composite, vous devez utiliser un mot cl composite.
Mot cl composite= separator= Valeur et rsultat Si composite=yes, des accolades sont utilises pour dfinir une option physique composite Si separator=yes, les options sont spares par une virgule Si separator=no, les options sont dpourvues de caractre sparateur. Il s'agit de la valeur par dfaut Si parenthesis=yes, l'option composite est dlimite par des parenthses qui incluent toutes les autres options, par exemple : with (max_row_per_page=0, ignore_dup_key) Si parenthesis=no, rien ne dlimite l'option composite. Il s'agit de la valeur par dfaut nextmand= Si nextmand=yes, la prochaine ligne dans l'option physique est obligatoire. Si vous n'utilisez pas ce mot cl, vous ne serez pas en mesure de procder la gnration/au reverse engineering de l'intgralit de l'option physique composite Si prevmand=yes, la ligne prcdente dans l'option physique est obligatoire. Si vous n'utilisez pas ce mot cl, vous ne serez pas en mesure de procder la gnration/au reverse engineering de l'intgralit de l'option physique composite
parenthesis=
prevmand=
53
Liste dans laquelle des valeurs sont spares par un trait vertical (|) Si dquoted=yes, la valeur est place entre guillemets ("" "") Si squoted=yes, la valeur est place entre apostrophes (' ') Si enabledbprefix=yes, le nom de base de donnes est utilis comme prfixe (voir les options de tablespace dans DB2 OS/390)
Default= et/ou List= peut galement tre utilis avec les mots cls composite=, separator= et parenthesis=. Category= peut tre utilis avec les trois mots cls d'une option composite. Exemple Les options relatives aux index IBM DB2 contiennent l'option composite suivante :
<using_block> : composite=yes { using vcat %s using stogroup %s : category=storage, composite=yes { priqty %d : default=12 secqty %d erase %s : default=no, list=yes | no }
Dans Oracle, la catgorie Storage est utilise comme template pour dfinir toutes les valeurs de storage dans une entre de storage. Ceci vous permet d'viter d'avoir dfinir des valeurs indpendamment chaque fois que vous devez utiliser les mmes valeurs dans une clause de storage. L'option physique Oracle n'inclut pas le nom de storage (%s)
storage : category=storage, composite=yes, separator=no, parenthesis=yes {
54
PowerAMC
Chapitre 1
Rptitions d'options
Certaines bases de donnes rptent un bloc d'options, groupes dans une option composite. Dans ce cas, la dfinition composite contient le mot cl multiple :
with: composite=yes, multiple=yes
Par exemple, les options de fragmentation Informix peuvent tre rptes n fois comme illustr ci-aprs :
IndexOption = fragment by expression : composite=yes, separator=yes { <list> : composite=yes, multiple=yes { <frag-expression> %s in %s : category=storage } remainder in %s : category=storage }
La sous-option <list> est utilise pour viter d'avoir rpter le mot cl fragment avec chaque nouveau bloc d'options. Lorsque vous rptez une option composite, cette option s'affiche avec <*> dans le volet des options physiques disponibles (volet gauche) sur la page des options physiques.
max_rows_per_page=0 <*>
Vous pouvez ajouter l'option composite dans le volet droit plusieurs fois en utilisant le bouton Ajouter entre les volets, sur la page d'options physiques.
55
Dfinition d'options physiques Si la slection se trouve sur l'option composite dans le volet droit et que vous cliquez sur la mme option composite dans le volet gauche afin de l'ajouter, une bote de message vous demande si vous souhaitez rutiliser l'option slectionne. Si vous cliquez sur Non, l'option composite est ajoute dans le volet droit comme nouvelle ligne.
56
Chapitre 1
Catgorie General
La catgorie General contient des informations d'identification de SGBD.
EnableCheck
Dtermine si la gnration des paramtres de contrle est autorise ou non. Valeur Yes No Rsultat Paramtres de contrle gnrs Toutes les variables lies aux paramtres de contrle ne seront pas values lors des processus de gnration et de reverse engineering
EnableIntegrity
Permet de recourir des contraintes d'intgrit dans le SGBD. Vous contrlez ainsi si les paramtres de gnration relatifs aux cls primaires, trangres ou alternatives sont griss ou disponibles.
Valeur Yes Rsultat Les cases relatives aux cls primaires, cls alternatives et cls trangres sont disponibles pour la gnration et la modification de base de donnes Les cases relatives aux cls primaires, cls alternatives et cls trangres sont grises et non disponibles pour la gnration et la modification de base de donnes
No
57
Catgorie General
EnableMultiCheck
Dtermine si la gnration de plusieurs paramtres de contrle pour les tables et colonnes est autorise ou non.
Valeur Yes Rsultat Plusieurs paramtres de contrle sont gnrs. La premire contrainte dans le script correspond la concatnation de toutes les rgles de validation, les autres contraintes correspondent chaque rgle de gestion de contrainte attache un objet Toutes les rgles de gestion (validation et contrainte) sont concatnes dans une mme expression de contrainte
No
EnableConstname
Dtermine si les noms de contrainte sont utiliss lors de la gnration.
Valeur Yes No Rsultat Les noms de contrainte sont utiliss lors de la gnration Les noms de contrainte ne sont pas utiliss
SqlSupport
Dtermine si la syntaxe SQL est admise. Cette entre est sans influence sur la gnration de script mais a un impact sur l'aperu de code SQL.
Valeur Yes No Rsultat Syntaxe SQL admise et Aperu SQL disponible La Syntaxe SQL admise et Aperu SQL disponible
58
PowerAMC
Chapitre 1
UniqConstName
Dtermine si les noms de contrainte uniques pour les objets sont ou non autoriss.
Valeur Yes No Rsultat Tous les noms de contrainte doivent tre uniques dans la base de donnes, y compris les noms d'index Les noms de contrainte doivent tre uniques pour un objet
La vrification de modle prend en compte cette entre lors de la vrification de nom de contrainte.
59
Toutes les entres de chaque catgorie sont dcrites dans les sections suivantes.
60
PowerAMC
Chapitre 1
Catgorie SQL
La catgorie SQL contient les catgories suivantes : Syntax Format File Keywords
Ces catgories contiennent les entres qui dfinissent la syntaxe SQL pour le SGBD.
Syntax
La catgorie Syntax contient les entres qui dfinissent la syntaxe spcifique au SGBD.
Terminator
Caractre de fin d'instruction. Est utilis pour terminer les instructions telles que les instructions de cration de table, de vue ou d'index, ou bien pour les instructions d'ouverture/fermeture de base de donnes. Exemple
Terminator = ;
BlockTerminator
Caractre de fin de bloc. Est utilis pour terminer les expressions pour les triggers et les procdures stockes. Exemple
BlockTerminator = /
61
Catgorie SQL
UseBlockTerm
Syntaxe d'utilisation de BlockTerminator.
Valeur Yes No Rsultat BlockTerminator est toujours utilis BlockTerminator est utilis pour les triggers et les procdures stockes uniquement
Exemple
Dans Oracle 8I :
UseBlockTerm = yes
Delimiter
Caractre de sparation de champs. Par exemple : col1, col2, col3. Exemple
Delimiter = ,
Les colonnes sont spares par des virgules dans l'instruction create table.
create table CUSTOMER ( CUSNUM numeric(5) CUSNAME char(30) CUSADDR char(80) CUSACT char(80) CUSTEL char(12) CUSFAX char(12) primary key (CUSNUM) ); not null, not null, not null, , , ,
Quote
Caractre utilis pour encadrer les valeurs de chane. Il s'agit le plus souvent de l'apostrophe ou du guillemet. Exemple
Quote = '
Quote est utilis pour placer des apostrophes ou des guillemets de part et d'autre des valeurs par dfaut dans le code SQL gnr.
Cohrence entre les apostrophes ou guillemets
Le mme caractre (apostrophe ou guillemet) doit tre utilis dans les pages de paramtres de contrle pour encadrer les mots rservs utiliss comme valeur par dfaut. 62 PowerAMC
Chapitre 1
SqlContinue
Caractre de suite. Certaines bases de donnes requirent un caractre de suite lorsqu'une instruction dpasse une ligne. Pour connatre le caractre appropri, reportez-vous la documentation relative votre SGBD. Ce caractre est attach chaque ligne, juste avant le caractre de saut de ligne.
BlockComment
Caractre utilis pour encadrer un commentaire portant sur plusieurs lignes. Utilis dans le reverse engineering et dans la gnration. Exemple
BlockComment = /* */
LineComment
Caractre utilis pour encadrer un commentaire d'une seule ligne. Utilis dans le reverse engineering. Exemple
LineComment = %%
Format
La catgorie Format contient des entres qui dfinissent le format du script.
IllegalChar
Caractres incorrects pour les noms. Utilis uniquement pour la gnration. Si le code contient un caractre illgal, il est dfini entre guillemets lors de la gnration. Exemple
IllegalChar = "+-*/!=<>'"()" If the name of the table is SALES+PROFITS", the generated create statement will be: CREATE TABLE "SALES+PROFITS"
Des guillemets sont placs de part et d'autre du nom de table pour indiquer qu'un caractre incorrect est utilis. Lors du reverse engineering, tout caractre illgal est considr comme sparateur moins qu'il ne soit situ dans un nom entre guillemets.
63
Catgorie SQL
CaseSensitivityUsingQuote
Dtermine si la sensibilit la casse est gre l'aide de guillemets. Vous devez dfinir cette valeur boolenne Yes si le SGBD que vous utilisez ncessite des guillemets pour prserver la casse des codes d'objet.
UpperCaseOnly
Majuscules uniquement. Lorsque vous gnrez un script partir d'un MPD, tous les objets (tables, colonnes, contraintes, index, etc.) peuvent tre forcs en majuscules la gnration, indpendamment des conventions de dnomination dfinies pour le modle (Majuscules, Minuscules ou Mixte) et des codes du MPD.
Valeur Yes No Rsultat Force tous les caractres du script gnr en majuscules Gnre tout le script sans changer la faon dont les objets sont crits dans le modle (majuscules, minuscules, ou mixte) UpperCaseOnly = NO
Exemple
Le champ UpperCaseOnly est ignor si les entres UpperCaseOnly et LowerCaseOnly sont dfinies la valeur Yes. Dans ce cas, le script PowerAMC est gnr en minuscules.
LowerCaseOnly
Minuscules uniquement. Lorsque vous gnrez un script partir d'un MPD, tous les objets (tables, colonnes, contraintes, index, etc.) peuvent tre forcs en minuscules la gnration, indpendamment des conventions de dnomination dfinies pour le modle (Majuscules, Minuscules ou Mixte) et des codes du MPD.
Valeur Yes No Rsultat Force tous les caractres du script gnr en minuscules Gnre tout le script sans changer la faon dont les objets sont crits dans le modle (majuscules, minuscules, ou mixte) LowerCaseOnly = YES
Exemple
64
PowerAMC
Chapitre 1
EnableOwnerPrefix et EnableDtbsPrefix
Les codes d'objet peuvent tre prfixs par le nom du propritaire de l'objet, le nom de la base de donnes, ou les deux, ce afin d'tre identifis de faon unique. Vous pouvez pour ce faire utiliser la variable %QUALIFIER%. Si vous souhaitez que le prfixe soit le propritaire de l'objet, vous devez dfinir la valeur de l'entre EnableOwnerPrefix Yes, puis cocher la case Prfixe de propritaire dans la bote de dialogue de gnration. Si vous souhaitez que le prfixe soit le nom de la base de donnes, vous devez dfinir la valeur de l'entre EnableDtbsPrefix Yes et cocher la case Prfixe de base de donnes dans la bote de dialogue de gnration. Si vous cochez la fois les cases Prfixe de base de donnes et Prfixe de propritaire, les deux noms sont concatns lorsque %QUALIFIER% est valu.
Valeur Yes Rsultat Les cases Prfixe de base de donnes et Prfixe de propritaire sont disponibles dans la bote de dialogue de gnration. La variable %QUALIFIER% est renseigne avec le nom de l'objet, ou le nom de la base de donnes, ou bien les deux lors de la gnration ou du reverse engineering Les cases Prfixe de base de donnes et Prfixe de propritaire sont grises et le prfixe n'est pas disponible
No
MaxScriptLen
Indiquent la longueur maximale d'une ligne de script. Exemple
1024
AddQuote
Dtermine si les codes d'objet sont systmatiquement placs entre apostrophes ou guillemets lors de la gnration.
Valeur Yes No Rsultat Les codes d'objet sont systmatiquement placs entre apostrophes ou guillemets lors de la gnration Les codes d'objet sont gnrs sans apostrophes ou guillemets
65
Catgorie SQL
Si vous souhaitez personnaliser le format de date et d'heure pour votre gnration de donnes de test, vous devez vrifier le type de donnes des colonnes dans votre SGBD, puis trouver le type de donnes conceptuel correspondant afin de savoir quelle entre personnaliser dans votre SGBD. Par exemple, si les colonnes utilisent les donnes Date & heure dans votre modle, vous devez personnaliser l'entre DateTimeFormat dans votre SGBD. Le format par dfaut pour la date et l'heure est le suivant : SQL: 'yyyy-mm-dd HH:MM:SS' ODBC : {ts 'yyy-mm-dd HH:MM:SS'}
Dans lequel :
Format yyyy yy mm dd HH Description Anne sur quatre chiffres Anne sur deux chiffres Mois Jour Heure
66
PowerAMC
Chapitre 1
Format MM SS Description Minute Seconde
Par exemple, vous pouvez dfinir la valeur suivante pour l'entre DateTimeFormat pour SQL : aa-mm-dd HH:MM. Pour ODBC, cette entre doit avoir la valeur suivante : {ts 'yy-mm-dd HH:MM'}.
File
La catgorie File contient des entres qui dfinissent le format du script.
Header
Texte d'en-tte pour un script de gnration de base de donnes.
Footer
Texte de fin pour un script de gnration de base de donnes.
67
Catgorie SQL
EnableMultiFile
Multi-script admis. Cette variable agit sur la disponibilit de la case Un seul fichier dans la bote de dialogue de gnration de base de donnes, la bote de dialogue de triggers et de procdures ou la bote de dialogue de modification de base de donnes.
Valeur Yes Rsultat La case cocher Un seul fichier est disponible. Si vous dcochez cette case, un script est cr pour chaque table, et un script gnral rcapitule toutes les entres de script de table. Chaque script a le nom de la table et le suffixe dfini dans la variable TableExt. Si vous cochez cette case, un seul script global inclut tous les scripts. Le script gnral a comme suffixe de nom de fichier celui dcrit dans la variable de SGBD ScriptExt, et son nom est personnalisable dans la zone Nom de fichier des botes de dialogue de gnration ou de modification. Les noms par dfaut sont CREBAS pour la gnration de base de donnes, CRETRG pour la gnration des triggers et les procdures stockes, et ALTER pour la modification de base de donnes La case cocher Un seul fichier est grise, et un seul script inclut toutes les commandes. Le suffixe de nom de fichier est dcrit dans la variable ScriptExt, et son nom est personnalisable dans la zone Nom de fichier des botes de dialogue de gnration ou de modification. Les noms par dfaut sont CREBAS pour la gnration de base de donnes, CRETRG pour la gnration des triggers et les procdures stockes, et ALTER pour la modification de base de donnes
No
Pour plus d'informations sur les variables utilises avec PowerAMC, reportez-vous la section Variables de MPD. Exemple
EnableMultiFile = YES
ScriptExt
La variable ScriptExt dfinit le suffixe de script par dfaut lorsque vous gnrez une base de donnes ou la modifiez pour la premire fois. Exemple
ScriptExt = sql
68
PowerAMC
Chapitre 1
TableExt
Si vous ne cochez pas la case Un seul fichier lorsque vous gnrez une base de donnes, ou lorsque vous modifiez une base de donnes, un script est gnr pour chaque table, avec le suffixe de nom de fichier dfini dans la variable TableExt. Exemple
TableExt = sql
StartCommand
Instruction d'excution d'un script. Ce paramtre correspond la variable %STARTCMD%. La valeur de cette variable dpend de ce paramtre. L'instruction de dbut correspond l'instruction utilise par la base de donnes cible pour excuter un script SQL. Le contenu de cette variable est utilis dans le fichier d'en-tte pour une gnration portant sur plusieurs fichiers. Elle est utilise pour appeler tous les autres fichiers gnrs depuis le fichier d'en-tte. Exemple Dans Sybase AS Enterprise 11.x :
StartCommand = isql %NAMESCRIPT%
Usage1
Applicable lorsque vous utilisez un script unique. S'affiche la fin de la gnration dans la fentre Rsultats. Exemple
(1) Start the SQL interpreter: ISQL (2) Open the script %NAMESCRIPT% (3) Execute the script
Usage2
Applicable lorsque vous utilisez plusieurs scripts. S'affiche la fin de la gnration dans la fentre Rsultats. Exemple
(1) Start the SQL interpreter: ISQL (2) Open one script from the directory %PATHSCRIPT% (3) Execute this script
69
Catgorie SQL
TriggerExt
Variable qui dfinit le suffixe du script principal lorsque vous gnrez des triggers et des procdures stockes pour la premire fois. Exemple
TriggerExt = trg
TrgUsage1
Applicable lorsque vous utilisez un script unique pour la gnration des triggers et des procdures. S'affiche la fin de la gnration dans la fentre Rsultats. Exemple
(1) Start the SQL interpreter: ISQL (2) Select the item "Options" of the menu "Command" (3) Change "Command Delimiter" to / (4) Open the script %NAMESCRIPT% from the directory %PATHSCRIPT% (5) Execute the script (6) Restore "Command Delimiter" to ;
TrgUsage2
Applicable lorsque vous utilisez plusieurs scripts pour la gnration des triggers et procdures. S'affiche la fin de la gnration dans la fentre Rsultats. Exemple
(1) (2) (3) (4) (5) (6) Start the SQL interpreter: ISQL Select the item "Options" of the menu "Command" Change "Command Delimiter" to / Open one script from the directory %PATHSCRIPT% Execute the script Restore "Command Delimiter" to ;
70
PowerAMC
Chapitre 1
TrgHeader
Script d'en-tte pour la gnration des triggers et procdures. Exemple Dans Oracle 8 :
(1) Start the SQL interpreter: ISQL (2) Select the item "Options" of the menu "Command" Integrity package declaration create or replace package IntegrityPackage AS procedure InitNestLevel; function GetNestLevel return number; procedure NextNestLevel; procedure PreviousNestLevel; end IntegrityPackage; / -- Integrity package definition create or replace package body IntegrityPackage AS NestLevel number; -- Procedure to initialize the trigger nest level procedure InitNestLevel is begin NestLevel := 0; end; -- Function to return the trigger nest level function GetNestLevel return number is begin if NestLevel is null then NestLevel := 0; end if; return(NestLevel); end; -- Procedure to increase the trigger nest level procedure NextNestLevel is begin if NestLevel is null then NestLevel := 0; end if; NestLevel := NestLevel + 1; end; -- Procedure to decrease the trigger nest level procedure PreviousNestLevel is begin NestLevel := NestLevel - 1; end; end IntegrityPackage;
71
Catgorie SQL
TrgFooter
Texte de fin pour un script (gnration de triggers et de procdures).
AlterHeader
Texte d'en-tte pour un script (modification de base de donnes).
AlterFooter
Texte de fin pour un script (modification de base de donnes).
Keywords
La catgorie Keywords contient des mots cls et des valeurs qui sont rserves pour des tches spciales et qui ne peuvent pas tre utilises comme noms ou valeurs de variable.
ReservedWord
Mots rservs. Si un mot rserv est utilis comme code d'objet, il est plac entre apostrophes lors de la gnration (en utilisant les apostrophes spcifis dans SGBD Script SQL Syntax Quote) Exemple Dans Adaptive Server Anywhere 6 :
TABLE CREATE DELETE WHENEVER
ReservedDefault
Valeurs par dfaut rserves. Si un mot rserv est saisi dans une valeur par dfaut, la valeur ne sera pas place entre apostrophes, elle sera utilise comme valeur par dfaut pour les colonnes. Exemple Dans Adaptive Server Anywhere 6, USER est une valeur par dfaut rserve:
Create table CUSTOMER ( Username varchar(30) default USER, )
72
PowerAMC
Chapitre 1
GroupFunc
Liste de fonctions SQL utiliser avec des mots cls de regroupement. Utilis dans l'diteur SQL (views) pour proposer une liste de fonctions disponibles afin d'aider la saisie de code SQL. Ces fonctions sont les mmes que celles disponibles dans le SGBD. Exemple
avg() count() max() min()
NumberFunc
Liste de fonctions SQL utiliser sur les nombres. Utilis dans l'diteur SQL (views) pour proposer une liste de fonctions disponibles afin d'aider la saisie de code SQL. Ces fonctions sont les mmes que celles disponibles dans le SGBD. Exemple
abs() acos() asin() atan()
CharFunc
Liste de fonctions SQL pour les caractres et les chanes. Utilis dans l'diteur SQL (views) pour proposer une liste de fonctions disponibles afin d'aider la saisie de code SQL. Ces fonctions sont les mmes que celles disponibles dans le SGBD. Exemple
ascii() char() charindex() char_length() difference()
lower()
DateFunc
Liste de fonctions SQL pour les dates. Utilis dans l'diteur SQL (views) pour proposer une liste de fonctions disponibles afin d'aider la saisie de code SQL. Ces fonctions sont les mmes que celles disponibles dans le SGBD.
73
Catgorie SQL
Exemple
ConvertFunc
Liste de fonctions SQL utiliser pour convertir des valeurs entre hex et integer et pour grer les chanes. Utilis dans l'diteur SQL (views) pour proposer une liste de fonctions disponibles afin d'aider la saisie de code SQL. Ces fonctions sont les mmes que celles disponibles dans le SGBD. Exemples
convert() hextoint() inttohex()
OtherFunc
Liste de fonctions SQL pour l'estimation, la concatnation et les vrifications SQL. Utilis dans l'diteur SQL (views) pour proposer une liste de fonctions disponibles afin d'aider la saisie de code SQL. Ces fonctions sont les mmes que celles disponibles dans le SGBD. Exemple
db_id() db_name() host_id()
ListOperators
Liste d'oprateurs SQL. Utilis dans l'diteur SQL (views) pour proposer une liste de fonctions disponibles afin d'aider la saisie de code SQL. Ces fonctions sont les mmes que celles disponibles dans le SGBD. Exemple
= != not like not in
Commit
Instruction de validation de la transaction par ODBC.
74
PowerAMC
Chapitre 1
Catgorie Objects
La catgorie Objects dfinit chaque type d'objet qui est pris en charge par la dfinition de SGBD. A la racine de la catgorie Objects, les deux entres suivantes sont dfinies pour tous les objets du SGBD : EnableOption : Valeur boolenne qui spcifie si les options physiques sont admises pour les objets de SGBD MaxConstLen : Dfinit la valeur pour la longueur de nom de contrainte pour les tables, les colonnes, les cls primaires et les cls trangres
Enable
Instruction permettant dterminer si un objet est admis. Exemple
Enable = Yes
Maxlen
Instruction permettant de dfinir la longueur maximale de code pour un objet. Cette valeur est mise en oeuvre lors de la vrification de modle et produit une erreur si le code dpasse la valeur dfinie. Le code d'objet est galement tronqu au moment de la gnration. Exemple
MaxLen = 128
Create
Instruction permettant de crer un objet (gnration et reverse engineering). Exemple
create table %TABLE%
75
Catgorie Objects
Add
Instruction permettant d'ajouter un objet dans l'instruction de cration d'un autre objet (gnration et reverse engineering). Par exemple, Table create avec l'appel Column add.
Drop
Instruction permettant de supprimer un objet (gnration uniquement). Exemple Dans Sybase Adaptive Server Anywhere 6 :
if exists(select 1 from sys.systable where table_name='%TABLE%' and table_type='BASE'[%QUALIFIER%? and creator=user_id('%OWNER%')]) then drop table [%QUALIFIER%]%TABLE% end if
Options
Options physiques portant sur la cration d'un objet (gnration et reverse engineering). Exemple Dans Sybase Adaptive Server Anywhere 6 :
in %s : category=tablespace
76
PowerAMC
Chapitre 1
DefOptions
Valeurs par dfaut pour les options physiques d'objet qui seront appliques tous les objets. Ces valeurs doivent respecter la syntaxe SQL. Par exemple :
in default_tablespace
SqlListQuery
Requte SQL permettant de rpertorier les objets dans une bote de dialogue de reverse engineering. La requte est excute pour renseigner les variables d'en-tte et crer des objets en mmoire. Exemple
{OWNER, TABLE, COLUMN, DTTPCODE, LENGTH, SIZE, PREC, NOTNULL (N='NOT NULL', *=NULL), DEFAULT, COMMENT} [%ISODBCUSER% ? SELECT '%SCHEMA%', C.TABLE_NAME, C.COLUMN_NAME, C.DATA_TYPE, C.DATA_PRECISION, C.DATA_LENGTH, C.DATA_SCALE, C.NULLABLE, C.DATA_DEFAULT, M.COMMENTS FROM SYS.USER_COL_COMMENTS M, SYS.USER_TAB_COLUMNS C WHERE M.TABLE_NAME = C.TABLE_NAME AND M.COLUMN_NAME = C.COLUMN_NAME [AND C.TABLE_NAME='%TABLE%'] ORDER BY C.TABLE_NAME, C.COLUMN_ID : SELECT C.OWNER, C.TABLE_NAME, C.COLUMN_NAME, C.DATA_TYPE, C.DATA_PRECISION, C.DATA_LENGTH, C.DATA_SCALE, C.NULLABLE, C.DATA_DEFAULT, M.COMMENTS FROM SYS.ALL_COL_COMMENTS M, SYS.ALL_TAB_COLUMNS C WHERE M.OWNER = C.OWNER AND M.TABLE_NAME = C.TABLE_NAME AND M.COLUMN_NAME = C.COLUMN_NAME [AND C.OWNER='%SCHEMA%'] [AND C.TABLE_NAME='%TABLE%'] ORDER BY C.OWNER, C.TABLE_NAME, C.COLUMN_ID ]
77
Catgorie Objects
SqlAttrQuery
Requte SQL permettant d'extraire des information supplmentaires sur les objets rcuprs via reverse engineering par SQLListQuery. Exemple Dans Oracle 8 :
{OWNER, TABLE, COMMENT} [%ISODBCUSER% ? SELECT '%SCHEMA%', TABLE_NAME, COMMENTS FROM SYS.USER_TAB_COMMENTS WHERE COMMENTS IS NOT NULL [AND TABLE_NAME='%TABLE%'] ORDER BY TABLE_NAME : SELECT OWNER, TABLE_NAME, COMMENTS FROM SYS.ALL_TAB_COMMENTS WHERE COMMENTS IS NOT NULL [AND OWNER='%SCHEMA%'] [AND TABLE_NAME='%TABLE%'] ORDER BY OWNER, TABLE_NAME ]
SqlOptsQuery
Requte SQL permettant d'extraire les options physiques d'objet sur les objets rcuprs via reverse engineering par SqlListQuery. Le rsultat de la requte va renseigner la variable %OPTIONS% et doit respecter la syntaxe SQL. Exemple Dans Sybase Adaptive Server Anywhere 6 :
{OWNER, TABLE, OPTIONS} select su.USER_NAME, st.TABLE_NAME, 'in '+ dbspace_name from SYS.SYSUSERPERMS su, SYS.SYSTABLE st, SYS.SYSFILE sf where st.file_id = sf.file_id and dbspace_name <> 'SYSTEM' and [%TABLE% ? TABLE_NAME = '%TABLE%' and] [%SCHEMA% ? su.USER_NAME = '%SCHEMA%' and] st.CREATOR = su.USER_ID
SqlFragQuery
Pour plus d'informations, reportez-vous la section Mcanisme d'extension pour les requtes de reverse engineering ODBC.
78
PowerAMC
Chapitre 1
ModifiableAttributes
Liste des attributs tendus qui seront pris en compte dans la bote de dialogue de fusion lors de la synchronisation de base de donnes. Pour plus d'informations, reportez-vous la section Gnration de script. Exemple Dans Sybase ASE 12.5
ExtTablePartition
ReversedStatements
Liste des instructions qui vont faire l'objet d'un reverse engineering. Pour plus d'informations, reportez-vous la section Reverse engineering de script. Exemple Dans Sybase ASE 12.5 :
CreatePartition
Table
La catgorie Table contient des entres qui dfinissent des paramtres associs la table.
79
Catgorie Objects
Entre Drop Exemple Dans Sybase Adaptive Server Enterprise 11 :
if exists (select 1 from sysobjects where id = object_id('[%QUALIFIER%]%TABLE%') and type = 'U') drop table [%QUALIFIER%]%TABLE%
Options
DefOptions
Cette entre est frquemment vide. Elle dfinit les options qui sont appliques toutes les tables, par exemple
with_max_row_per_page = 128
SqlListQuery
Dans Oracle 7 :
{OWNER, TABLE} select owner, table_name from sys.all_tables where 1=1 [and owner='%SCHEMA%'] [and table_name='%TABLE%'] order by owner, table_name
SqlAttrQuery
Dans Oracle 7 :
{OWNER, TABLE, COMMENT} select owner, table_name, comments from sys.all_tab_comments where comments is not null [and owner='%SCHEMA%'] [and table_name='%TABLE%']
SqlOptsQuery
80
PowerAMC
Chapitre 1
Entre SqlFragQuery Exemple Dans Oracle 9I :
{VAR1NAME, VAR1VALUE} select 'HighVal'||tp.partition_position, tp.high_value from all_tab_partitions tp where 1=1 [ and tp.table_owner=%.q:OWNER% ] [ and tp.table_name=%.q:TABLE%]
ModifiableAttributes
Liste des attributs tendus qui seront pris en compte dans la bote de dialogue de fusion lors de la synchronisation de base de donnes Liste des instructions qui vont faire l'objet d'un reverse engineering
ReversedStatements
Pour obtenir une description de chacune des entres communes aux objets, reportez-vous la section Entres communes aux diffrents objets. Variable par dfaut Dans une colonne, si la variable par dfaut est de type texte ou chane, la requte doit extraire la valeur de la variable par dfaut entre apostrophes. La plupart des SGBD ajoutent ces apostrophes la valeur de la variable par dfaut. Si le SGBD que vous utilisez n'ajoute pas les apostrophes automatiquement, vous devez les spcifier dans les diffrentes requtes l'aide de la variable par dfaut. Par exemple, dans IBM DB2 UDB 8 pour OS/390, la ligne suivante a t ajoute dans SqlListQuery afin d'ajouter des apostrophes la valeur de la variable par dfaut :
... case(default) when '1' then '''' concat defaultvalue concat '''' when '5' then '''' concat defaultvalue concat '''' else defaultvalue end, ...
81
Catgorie Objects
Permission
Permissions disponibles pour les tables. La premire colonne affiche le nom SQL de la permission (SELECT, par exemple). La seconde colonne est le nom abrg qui s'affiche dans le titre des colonnes de grille. Exemple Dans Sybase ASE 12.5 :
SELECT / Sel INSER / Ins DELETE / Del UPDATE / Upd REFERENCES / Ref
ConstName
Template de nom de contrainte pour un paramtre de vrification de table. Utilis dans la feuille de proprits de table pour renseigner le nom de contrainte. Exemple Dans Sybase Adaptive Server Anywhere 6 :
CKT_%.U26:TABLE%
TableComment
Instruction permettant d'ajouter un commentaire de table. Le commentaire de table est une instruction SQL qui n'est pas prise en charge par tous les SGBD. Si TableComment est vide, la case Commentaire dans la page Tables & vues de la bote de dialogue de gnration est grise et non disponible. Utilis pour la gnration et pour les reverse engineering. Exemple Dans Sybase SQL Anywhere 5.5 :
TableComment = comment on table %OWNERPREFIX%%TABLE% is '%COMMENT%'
La variable %TABLE% est le nom de la table dfini dans la bote de dialogue Liste des tables, ou dans la feuille de proprits de la table. La variable %COMMENT% est le commentaire dfini dans la zone Commentaire de la feuille de proprits de la table.
82
PowerAMC
Chapitre 1
Rename
Instruction permettant de renommer une table. Si Rename est vide, le processus de modification de base de donnes supprime les contraintes de cl trangre, cre une nouvelle table avec le nouveau nom, insre les lignes de l'ancienne table dans la nouvelle table, et cre les index et contraintes sur la nouvelle table l'aide de tables temporaires. Utilis dans le script de modification de base de donnes lorsqu'une table a t renomme. Exemple Dans Sybase Adaptive Server Enterprise 11 :
sp_rename %OLDTABL%, %NEWTABL%
La variable %OLDTABL% est le code de la table avant qu'elle ne soit renomme. La variable %NEWTABL% est le nouveau code de la table.
AlterTableHeader
En-tte de l'instruction alter table. Tout ce qui est ajout dans cette entre est ajout avant l'instruction alter table. Vous pouvez placer un en-tte alter table dans vos scripts pour les documenter ou dans le cadre d'une logique d'initialisation. Exemple
AlterTableHeader = /* Table name: %TABLE% */
AlterTableFooter
Fin de Alter table. Tout ce qui est ajout dans cette entre est ajout aprs l'instruction alter table et avant le caractre de fin. Exemple
AlterTableFooter = /* End of alter statement */
DefineTableCheck
Instruction permettant de personnaliser le script de contraintes de table (vrifications) au sein d'une instruction create table. Exemple
check (%CONSTRAINT%)
AddTableCheck
Instruction permettant de personnaliser le script pour modifier les contraintes de table au sein d'une instruction alter table. Exemple
alter table [%QUALIFIER%]%TABLE% add check (%CONSTRAINT%)
83
Catgorie Objects
DropTableCheck
Instruction permettant de supprimer une vrification de table dans une instruction alter table. Exemple
alter table [%QUALIFIER%]%TABLE% delete check
SqlChckQuery
Requte SQL permettant de procder au reverse engineering de vrifications de table. Exemple Dans Sybase Adaptive Server Anywhere 6 :
{OWNER, TABLE, CONSTRAINT} SELECT U.USER_NAME, T.TABLE_NAME, T.VIEW_DEF FROM SYSUSERPERMS U, SYSTABLE T WHERE [U.USER_NAME = '%OWNER%' AND] [T.TABLE_NAME = '%TABLE%' AND] T.CREATOR = U.USER_ID AND T.TABLE_TYPE = 'BASE' AND T.VIEW_DEF IS NOT NULL
SqlPermQuery
Requte SQL permettant de procder au reverse engineering de permissions accordes sur des tables. Exemple Dans Sybase Adaptive Server Enterprise 12.5 :
{ select u1.name grantee, case when (s.action = 193) then 'SELECT' when (s.action = 195) then 'INSERT' when (s.action = 196) then 'DELETE' when (s.action = 197) then 'UPDATE' end + case when (s.protecttype = 0) then '+' when (s.protecttype = 1) then '' when (s.protecttype = 2) then '-' end || ',' from sysprotects s, sysusers u, sysusers u1, sysobjects o where o.name = %.q:TABLE% and o.uid = u.uid and s.id = o.id and u1.uid = s.uid
84
PowerAMC
Chapitre 1
SqlListRefrTables
Requte SQL utilise pour rpertorier les tables rfrences par une table. Exemple Dans Oracle 9i :
{OWNER, TABLE, POWNER, PARENT} select c.owner, c.table_name, r.owner, r.table_name from sys.all_constraints c, sys.all_constraints r where (c.constraint_type = 'R' and c.r_constraint_name = r.constraint_name and c.r_owner = r.owner) [ and c.owner = %.q:SCHEMA%] [ and c.table_name = %.q:TABLE%] union select c.owner, c.table_name, r.owner, r.table_name from sys.all_constraints c, sys.all_constraints r where (r.constraint_type = 'R' and r.r_constraint_name = c.constraint_name and r.r_owner = c.owner) [ and c.owner = %.q:SCHEMA%] [ and c.table_name = %.q:TABLE%] order by 1, 2, 3, 4
UniqConstraintName
Interdit l'utilisation du mme nom pour un index et une contrainte sur une mme table.
Valeur Yes No Rsultat Le nom de contrainte et le nom d'index de la table doivent tre diffrents. Pris en compte pendant la vrification du modle Le nom de contrainte et le nom d'index de la table peuvent tre identiques
85
Catgorie Objects
Header
En-tte de table. Tout ce qui est ajout dans cette entre est ajout avant l'instruction create table.
Footer
Table footer. Tout ce qui est ajout dans cette entre est ajout aprs l'instruction create table.
AllowedADT
Liste de types de donnes abstraits sur lesquels une table peut tre base. Vous pouvez affecter des types de donnes abstraits objet aux tables. La table utilise les proprits du type de donnes abstrait et les attributs du type de donnes abstrait deviennent des colonnes de la table. Cette liste de types de donnes abstraits s'affiche dans la liste droulante Bas sur dans la feuille de proprits de la table. Exemple Dans Oracle 8I2 :
OBJECT
MaxConstLen
Instruction permettant de dfinir la longueur maximale de nom de contrainte prise en charge par la base de donnes cible. Cette valeur est mise en oeuvre dans la vrification de modle et produit une erreur si le code dpasse la valeur dfinie. Le nom de contrainte est galement tronqu au moment de la gnration.
Longueur maximale pour les noms de contrainte :
PowerAMC a une longueur maximale de 254 caractres pour les noms de contrainte. Si votre base de donnes prend en charge des noms de contrainte plus longs, vous devez dfinir les noms de contrainte de sorte qu'ils se conforment la limite de 254 caractres. Exemple
MaxConstLen = 128
86
PowerAMC
Chapitre 1
Column
La catgorie Column contient des entres qui dfinissent les paramtres relatifs aux colonnes.
Add
Drop
DefOptions
Cette entre est souvent vide. Elle dfinit des options qui sont appliques aux colonnes
87
Catgorie Objects
Entre SqlListQuery Exemple (Sybase Adaptive Server Enterprise 11) Dans Oracle 8I2 :
{OWNER, TABLE, COLUMN, DTTPCODE, LENGTH, SIZE, PREC, NOTNULL (N='NOT NULL', *=NULL), DEFAULT, COMMENT} [%ISODBCUSER% ? SELECT '%SCHEMA%', C.TABLE_NAME, C.COLUMN_NAME, C.DATA_TYPE, C.DATA_PRECISION, C.DATA_LENGTH, C.DATA_SCALE, C.NULLABLE, C.DATA_DEFAULT, M.COMMENTS FROM SYS.USER_COL_COMMENTS M, SYS.USER_TAB_COLUMNS C WHERE M.TABLE_NAME = C.TABLE_NAME AND M.COLUMN_NAME = C.COLUMN_NAME [AND C.TABLE_NAME='%TABLE%'] ORDER BY C.TABLE_NAME, C.COLUMN_ID : SELECT C.OWNER, C.TABLE_NAME, C.COLUMN_NAME, C.DATA_TYPE, C.DATA_PRECISION, C.DATA_LENGTH, C.DATA_SCALE, C.NULLABLE, C.DATA_DEFAULT, M.COMMENTS FROM SYS.ALL_COL_COMMENTS M, SYS.ALL_TAB_COLUMNS C WHERE M.OWNER = C.OWNER AND M.TABLE_NAME = C.TABLE_NAME AND M.COLUMN_NAME = C.COLUMN_NAME [AND C.OWNER='%SCHEMA%'] [AND C.TABLE_NAME='%TABLE%'] ORDER BY C.OWNER, C.TABLE_NAME, C.COLUMN_ID
SqlAttrQuery
Dans Oracle 7 :
{OWNER, TABLE, COLUMN, COMMENT} select c.owner, c.table_name, c.column_name, m.comments from sys.all_col_comments m, sys.all_tab_columns c where m.owner=c.owner and m.table_name=c.table_name and m.column_name=c.column_name [and c.owner='%SCHEMA%'] [and c.table_name='%TABLE%'] [and c.column_name='%COLUMN%']
SqlOptsQuer y SqlFragQuer y
88
PowerAMC
Chapitre 1
Entre Options
Exemple (Sybase Adaptive Server Enterprise 11) Dans DB2 UDB 6.x common server :
<logged> %s : list=logged|not logged, default=logged <compact> %s : list=compact|not compact, default=not compact linktype url : composite=yes { no link control file link control : composite=yes { mode db2options integrity %s : default=all read permission %s : list=fs|db, default=fs write permission %s : list=fs|blocked, default=fs recovery %s : list=yes|no, default=no on unlink %s : list=restore|delete, default=restore } }
Liste des attributs tendus qui seront pris en compte dans la bote de dialogue de fusion lors de la synchronisation de base de donnes Liste des instructions qui vont faire l'objet d'un reverse engineering
Pour obtenir une description de chacune des entres communes aux objets, reportez-vous la section Entres communes aux diffrents objets.
Permission
Permissions disponibles pour les colonnes. La premire colonne affiche le nom SQL de la permission (SELECT, par exemple). La seconde colonne est le nom abrg qui s'affiche dans le titre des colonnes de grille. Exemple Dans Sybase ASA 8 :
REFERENCES / References SELECT / Select UPDATE / Update
89
Catgorie Objects
AltEnableAddColnChk
Indique si une contrainte de vrification de colonne, construite partir des paramtres de contrle de la colonne, peut ou non tre ajoute dans une table l'aide de l'instruction alter table.
Valeur Yes No Rsultat AddColnChck peut tre utilis pour modifier la contrainte de vrification de colonne dans une instruction alter table Le processus de modification de la base de donnes procde comme suit : Supprime les contraintes de cl trangre Cre une table temporaire avec la mme structure et les mmes colonnes que la table avant l'ajout de la contrainte de vrification de colonne Insre la ligne depuis l'ancienne table dans la nouvelle table temporaire Supprime la table actuelle Cre une nouvelle table avec la nouvelle contrainte de vrification de colonne Insre la ligne depuis la table temporaire dans la nouvelle table Cre les index et contraintes sur la nouvelle table AltEnableAddColnChk = NO
Exemple
CheckNull
Vrifie si une colonne peut tre NULL.
Valeur Yes No Rsultat La vrification de modle vrifie si les colonnes peuvent tre NULL Aucune vrification sur la valeur NULL pour les colonnes
90
PowerAMC
Chapitre 1
EnableBindRule
Permet ou interdit la liaison d'une rgle de gestion une colonne pour les paramtres de vrification.
Valeur Yes No Rsultat Les entres Create et Bind sont gnres pour l'objet Rule La vrification est gnre dans la commande Add de colonne
Exemple
EnableBindRule = No
EnableComputedColn
Instruction permettant l'utilisation de colonnes calcules.
Valeur Yes No Rsultat Colonnes calcules admises Colonnes calcules non admises
EnableDefault
Permet d'utiliser des valeurs prdfinies.
Valeur Yes Rsultat La valeur par dfaut est gnre pour les colonnes lorsque la valeur par dfaut est dfinie. La valeur par dfaut peut tre dfinie dans les paramtres de contrle pour chaque colonne. La variable %DEFAULT% contiendra la valeur par dfaut La case Valeur par dfaut pour les colonnes doit tre coche dans la page Tables & vues de la bote de dialogue de gnration No La case Valeur par dfaut pour les colonnes est grise dans la page Tables & vues de la bote de dialogue de gnration. La valeur par dfaut ne peut pas tre gnre
91
Catgorie Objects
Exemple
La valeur par dfaut pour la colonne employee EMPFUNC est Technical Engineer, le script gnr est le suivant :
create table EMPLOYEE ( EMPNUM numeric(5) not null, EMP_EMPNUM numeric(5) , DIVNUM numeric(5) not null, EMPFNAM char(30) , EMPLNAM char(30) not null, EMPFUNC char(30) default 'Technical Engineer', EMPSAL numeric(8,2) , primary key (EMPNUM) );
EnableIdentity
Prise en charge de l'entre de mot cl Identity. Les colonnes Identity sont des compteurs squentiels grs par la base de donnes (par exemple, Sybase et Microsoft SQL Server).
Valeur Yes No Rsultat Active la case cocher Identity dans la feuille de proprits de la colonne La case cocher Identity ne s'affiche pas dans la feuille de proprits de la colonne
Lorsque la case Identity est coche, le mot cl Identity est gnr dans le script aprs le type de donnes de la colonne. Une colonne Identity ne peut pas tre NULL : lorsque vous cochez la case Identity, la case Obligatoire est automatiquement coche.
92
PowerAMC
Chapitre 1
PowerAMC s'assure que : Une seule colonne Identity peut tre dfinie par table : lorsque Identity est dfini pour une colonne, les autres colonnes de la table ont leur case cocher Identity grise et non disponible Une cl trangre ne peut pas tre une colonne Identity : la case cocher est grise et non disponible Identity n'est pris en charge que pour certains types de donnes : lorsque la case Identity est coche pour une colonne dont le type de donnes n'est pas compatible avec Identity, le type de donnes est automatiquement chang en numeric. Lorsque le type de donnes d'une colonne Identity est remplac par un type de donnes qui ne correspondant Identity, PowerAMC affiche un message d'erreur.
Exemple
La colonne employee number est une colonne Identity, le script suivant est gnr :
create table EMPLOYEE ( EMPNUM numeric(5) EMP_EMPNUM numeric(5) DIVNUM numeric(5) EMPFNAM char(30) EMPLNAM char(30) EMPFUNC char(30) EMPSAL numeric(8,2) constraint PK_EMPLOYEE primary key ) go
identity, null , not null, null , not null, null , null , (EMPNUM)
Lors de la gnration, la variable Identity contient "identity", mais vous pouvez facilement changer le mot cl Identity l'aide de la syntaxe suivante lorsque cela est ncessaire : [%IDENTITY%?new identity keyword]
93
Catgorie Objects
EnableNull
Permet l'utilisation du mot cl NULL.
Valeur Yes Base de donnes cible Supports NULL keyword Does not support NULL keyword Rsultat Les colonnes non signales comme Obligatoire dans le MPD sont gnres avec le mot cl NULL aprs le type de donnes Les colonnes non signales comme Obligatoire dans le MPD sont gnres sans le mot cl NULL aprs le type de donnes
No
Exemple
CUSACT, CUSTEL, CUSFAX ne sont pas des colonnes obligatoires, le mot cl null est dfini en regard de la colonne dans le script create table.
create table CUSTOMER ( CUSNUM numeric(5) CUSNAME char(30) CUSADDR char(80) CUSACT char(80) CUSTEL char(12) CUSFAX char(12) constraint PK_CUSTOMER primary key ) go not null, not null, not null, null , null , null , (CUSNUM)
Si
EnableNull = NO
94
PowerAMC
Chapitre 1
EnableNotNullWithDflt
Instruction permettant d'utiliser Not null with default.
Valeur Yes Rsultat Lorsque vous activez With Default dans la feuille de proprits d'une colonne, une valeur par dfaut est affecte une colonne lorsqu'une valeur Null est insre L'option With Default dans une feuille de proprits de colonne est cache
No
Exemple
Bind
Instruction permettant de lier une rgle une colonne. Exemple Dans Sybase Adaptive Server Enterprise 12 :
sp_bindrule %RULE%, %TABLE%.%COLUMN%
AddColnChck
Instruction permettant de personnaliser le script pour modifier des contraintes de colonne au sein d'une instruction alter table. Exemple Dans Oracle 9i :
alter table [%QUALIFIER%]%TABLE% modify (%COLUMN% %DATATYPE% constraint %CONSTNAME% check (%CONSTRAINT%));
ConstName
Template de nom de contrainte pour un paramtre de contrle de colonne. Utilis dans les feuilles de proprits de colonne pour renseigner les noms de contrainte. Exemple
CKC_%.U17:COLUMN%_%.U8:TABLE%
95
Catgorie Objects
ColumnComment
Instruction permettant d'ajouter un commentaire une colonne. Utilis pour la gnration et pour le reverse engineering. Exemple
comment on column [%QUALIFIER%]%TABLE%.%COLUMN% is %.q:COMMENT%
DefineColnCheck
Instruction permettant de personnaliser le script des contraintes de colonne (vrifications) au sein d'une instruction create table. Cette instruction est appele si les instructions create, add, ou alter contiennent %CONSTDEFN%. Exemple
[constraint %CONSTNAME%] check (%CONSTRAINT%)
DropColnChck
Instruction permettant de supprimer une vrification de colonne dans une instruction alter table. Cette instruction est utilise dans le script de modification de base de donnes lorsque les paramtres de contrle ont t supprims d'une colonne. Si DropColnChck est vide, la procdure de modification d'une base de donnes : Supprime les contraintes de cl trangre Cre une table temporaire avec la mme structure et les mmes colonnes que la table avant la suppression du paramtre de contrle Insre les lignes depuis l'ancienne table dans la nouvelle table temporaire Supprime la table actuelle Cre une nouvelle table sans paramtre de contrle sur la colonne modifie Insre les lignes depuis la table temporaire dans la nouvelle table Cre les index et contraintes sur la nouvelle table
96
PowerAMC
Chapitre 1
Exemple
La variable %COLUMN% est le nom de la colonne dfini dans la liste des colonnes d'une table.
DropColnComp
Instruction permettant de supprimer une expression calcule de colonne dans une instruction alter table. Exemple Dans Sybase Adaptive Server Anywhere 6 :
alter table [%QUALIFIER%]%TABLE% alter %COLUMN% drop compute
ModifyColumn
Instruction permettant de modifier une colonne. Ce paramtre est utilis dans le script de modification de base de donnes lorsque la dfinition de la colonne a t modifie. L'instruction ModifyColumn dfinie dans ce paramtre est une instruction SQL spcifique diffrente de l'instruction alter table. Non pris en charge par tous les SGBD. Exemple Dans Sybase Adaptive Server Anywhere 6 :
alter table [%QUALIFIER%]%TABLE% modify %COLUMN% %DATATYPE% %NOTNULL%
ModifyColnDflt
Instruction permettant de modifier une valeur par dfaut de colonne dans une instruction alter table. Ce paramtre est utilis dans le script de modification de base de donnes, lorsque la valeur par dfaut d'une colonne a t modifie dans la table. Si ModifyColnDflt est vide, le processus de modification de base de donnes : Supprime les contraintes de cl trangre Cre une table temporaire avec la mme structure et les mmes colonnes que la table avant la modification de la valeur par dfaut Insre les lignes depuis l'ancienne table dans la nouvelle table temporaire Supprime la table actuelle
97
Catgorie Objects Exemple Cre une nouvelle table avec la nouvelle valeur par dfaut pour la colonne modifie Insre les lignes depuis la table temporaire dans la nouvelle table Crer les index et les contraintes sur la nouvelle table
ModifyColnDflt = alter table [%QUALIFIER%]%TABLE% modify %COLUMN% default %DEFAULT%
La variable %COLUMN% est le nom de la colonne dfini dans la feuille de proprits de la table. La variable %DEFAULT% est la nouvelle valeur par dfaut de la colonne modifie.
AddColnChck
Instruction permettant de modifier une vrification de colonne dans une instruction alter table. Cette instruction est utilise dans un script de modification de base de donnes lorsque les paramtres de contrle d'une colonne ont t modifis dans la table. AltEnableAddColnChk doit tre dfini YES pour permettre l'utilisation de cette instruction. Si AddColnChck est vide, le processus de modification de base de donnes : Exemple Supprime les contraintes de cl trangre Cre une table temporaire avec la mme structure et les mmes colonnes que la table avant modification des paramtres de contrle Insre les lignes depuis l'ancienne table dans la nouvelle table temporaire Supprime la table actuelle Cre une nouvelle table avec les paramtres de contrle pour la colonne Insre les lignes depuis la table temporaire dans la nouvelle table Cre les index et les contraintes sur la nouvelle table
AddColnChck = alter table [%QUALIFIER%]%TABLE% modify %COLUMN% [default %DEFAULT%] [check (%CONSTRAINT%)]
La variable %COLUMN% est le nom de la colonne dfinie dans la feuille de proprits de la table. La variable % CONSTRAINT % est la contrainte de vrification construite partir du nouveau paramtre de contrle.
98
PowerAMC
ModifyColnNull
Instruction permettant de modifier l'tat null/not null d'une colonne dans une instruction alter table. Exemple Dans Oracle 7 :
alter table [%QUALIFIER%]%TABLE% modify %COLUMN% %NOTNULL%
ModifyColnComp
Instruction permettant de modifier une expression calcule pour une colonne dans une instruction alter table. Exemple Dans Sybase Adaptive Server Anywhere 6 :
alter table [%QUALIFIER%]%TABLE% alter %COLUMN% set compute (%COMPUTE%)
MaxConstLen
Instruction permettant de dfinir la longueur maximale de nom de contrainte prise en charge par la base de donnes cible. Cette valeur est mise en oeuvre dans la vrification de modle et produit une erreur si le code dpasse la valeur dfinie. Le nom de contrainte est galement tronqu au moment de la gnration.
Longueur maximale pour les noms de contrainte :
PowerAMC a une longueur maximale de 254 caractres pour les noms de contrainte. Si votre base de donnes prend en charge des noms de contrainte plus longs, vous devez dfinir les noms de contrainte de sorte qu'ils se conforment la limite de 254 caractres. Exemple
MaxConstLen = 128
Rename
Instruction permettant de renommer une colonne dans une instruction alter table. Exemple
alter table [%QUALIFIER%]%TABLE% rename %OLDCOLUMN% to %NEWCOLUMN%
99
Catgorie Objects
SqlChckQuery
Requte SQL permettant de procder au reverse engineering de paramtres de contrle d'une colonne. Le rsultat doit tre conforme la syntaxe SQL approprie. Exemple Dans Sybase Adaptive Server Anywhere 6 :
{OWNER, TABLE, COLUMN, CONSTRAINT} SELECT SU.USER_NAME, ST.TABLE_NAME, SC.COLUMN_NAME, SC."CHECK" FROM SYSUSERPERMS SU, SYSTABLE ST, SYSCOLUMN SC WHERE [SU.USER_NAME='%OWNER%' AND] [ST.TABLE_NAME='%TABLE%' AND] ST.CREATOR=SU.USER_ID AND SC.TABLE_ID=ST.TABLE_ID AND SC."CHECK" IS NOT NULL ORDER BY SU.USER_NAME, ST.TABLE_ID
SqlPermQuery
Requte SQL permettant de procder au reverse engineering de permissions d'objet. Le rsultat doit tre conforme la syntaxe SQL approprie. Exemple Dans Sybase Adaptive Server Anywhere 8 :
{ GRANTEE, GRANTOR, PERMISSION} select u1.user_name grantee, u.user_name grantor, case when (p.privilege_type = 1 and p.is_grantable ='Y' ) then 'SELECT+' when (p.privilege_type = 1) then 'SELECT' when (p.privilege_type = 8 and p.is_grantable ='Y' ) then 'UPDATE+' when (p.privilege_type = 8) then 'UPDATE' when (p.privilege_type = 16 and p.is_grantable ='Y' ) then 'REFERENCES+' when (p.privilege_type = 16) then 'REFERENCES' end permission from sysuserperm u, sysuserperm u1, syscolumn s, syscolperm p, systable t where (t.table_name = %.q:TABLE%) and (t.table_id = p.table_id) and (s.column_name = %.q:COLUMN% ) and (s.table_id = t.table_id) and (u1.user_id = p.grantee) and (u.user_id = p.grantor)
100
PowerAMC
Chapitre 1
Unbind
Instruction permettant de faire en sorte qu'une rgle ne soit plus lie une colonne. Exemple Dans Sybase Adaptive Server Enterprise 12 :
sp_unbindrule %TABLE%.%COLUMN%, %RULE%
Index
La catgorie Index contient des entres dfinissant les paramtres associs un index.
Drop
if exists(select 1 from sys.sysindex I, sys.systable T where I.table_id=T.table_id and I.index_name='%INDEX%' and T.table_name='%TABLE%') then drop index [%QUALIFIER%]%TABLE%.%INDEX% end if in %s : category=tablespace in %s : category=tablespace
101
Catgorie Objects
Entre SqlOptsQuery Exemple Dans Sybase ASA 8 :
{OWNER, TABLE, INDEX, OPTIONS} select u.user_name, t.table_name, i.index_name, 'in '+ f.dbspace_name from sys.sysuserperms u join sys.systable t on (t.creator=u.user_id) join sys.sysindex i on (i.table_id=t.table_id) join sys.sysfile f on (f.file_id=i.file_id) where i."unique" in ('Y', 'N') [ and t.table_name=%.q:TABLE%] [ and u.user_name=%.q:OWNER%]
SqlFragQuery
Dans Oracle 9I :
{VAR1NAME, VAR1VALUE} select 'HighVal'||ip.partition_position, ip.high_value from all_ind_partitions ip where 1=1 [ and ip.index_owner=%.q:OWNER%] [ and ip.index_name=%.q:INDEX%]
ModifiableAttributes
Liste des attributs tendus qui seront pris en compte dans la bote de dialogue de fusion lors de la synchronisation de base de donnes Liste des instructions qui vont faire l'objet d'un reverse engineering
ReversedStatements
Pour obtenir une description de chacune des entres communes aux objets, reportez-vous la section Entres communes aux diffrents objets.
102
PowerAMC
Chapitre 1
EnableAscDesc
Mots cls ASC et DESC admis sur une dfinition d'index. Vous pouvez indiquer un ordre ascendant ou descendant en slectionnant la valeur correspondante dans la liste droulante Tri de la page Colonnes d'une feuille de proprits d'index. Ascendant est la valeur par dfaut.
Valeur Yes Base de donnes cible Prend en charge les colonnes d'index tries en ordre ascendant ou descendant Ne prend pas en charge le tri des colonnes d'index Rsultat La variable %ASC% est calcule. Le mot cl ASC ou DESC est gnr lorsque vous crez ou modifiez la base de donnes La colonne Tri ne s'affiche pas sur la page Colonnes de la feuille de proprits d'index. La variable %ASC% n'est pas calcule. Le mot cl ASC ou DESC n'est pas gnr lorsque vous crez ou modifiez la base de donnes
No
Exemple
Dans l'exemple suivant, un index de cl primaire est cr sur la table TASK, la colonne PRONUM se voit attribuer un ordre ascendant et la colonne TSKNAME se voit attributer un ordre descendant.
create index IX_TASK on TASK (PRONUM asc, TSKNAME desc);
EnableCluster
Permet de dfinir un index comme index cluster.
Valeur Yes No Rsultat La case cocher Cluster s'affiche dans la feuille de proprits d'index L'index ne prend pas en charge les index cluster
103
Catgorie Objects
EnableFunction
Permet d'utiliser des index bass sur des fonctions.
Valeur Yes No Rsultat Vous pouvez dfinir des expressions pour les index L'index ne prend pas en charge les expressions
EnableOwner
Permet de dfinir des propritaires d'index. Le propritaire d'index peut tre le propritaire de la table, ou bien il peut s'agir d'un autre utilisateur.
Valeur Yes Rsultat La liste droulante Propritaire s'affiche dans la feuille de proprits d'index et l'utilisateur peut slectionner un propritaire pour l'index courant L'index ne prend pas en charge les propritaires EnableOwner = YES
No
Exemple
Si vous activez le propritaire sur les index, vous devez faire en sorte que l'instruction Create reflte ce changement de faon prendre en compte le propritaire de la table et de l'index. Par exemple, dans Oracle 9i, l'instruction Create d'un index est la suivante :
create [%UNIQUE%?%UNIQUE% :[%INDEXTYPE% ]]index [%QUALIFIER%]%INDEX% on [%CLUSTER%?cluster C_%TABLE%:[%TABLQUALIFIER%]%TABLE% ( %CIDXLIST% )] [%OPTIONS%]
%QUALIFIER% fait rfrence l'objet courant (index) et %TABLQUALIFIER% fait rfrence la table parent de l'index.
104
PowerAMC
Chapitre 1
MandIndexType
Dtermine si le type d'index est obligatoire pour un index.
Valeur Yes No Rsultat Le type est obligatoire Le type n'est pas obligatoire
MaxColIndex
Nombre maximum de colonnes admis dans un index dans le SGBD. La vrification de modle procde au contrle et indique une erreur si le nombre de colonnes incluses dans la dfinition d'index dpasse la valeur admise. Exemple
MaxColIndex = 99
Cluster
Mot cl Cluster. Si ce paramtre est vide, la valeur par dfaut de la variable %CLUSTER% est CLUSTER. Exemple Dans Sybase AS Enterprise 11.x :
Cluster = clustered
AddColIndex
Instruction permettant d'ajouter une colonne dans l'instruction Create Index. Ce paramtre dfinit chaque colonne dans la liste des colonnes de l'instruction Create Index. Exemple Dans Sybase Adaptive Server Anywhere 6 :
AddColIndex = %COLUMN% [%ASC%]
%COLUMN% est le code de la colonne dfinie dans la liste des colonnes de la table. %ASC% est ASC (ordre ascendant) ou DESC (ordre descendant) selon l'tat du bouton radio Tri pour la colonne d'index.
105
Catgorie Objects
DefIndexType
Dfinit le type par dfaut pour un index. Exemple Dans DB2 :
Type2
DefineIndexColumn
Dfinit la colonne d'un index.
Footer
Fin d'index. Tout ce qui est ajout dans cette entre est ajout aprs l'instruction create index.
Header
En-tte d'index. Tout ce qui est ajout dans cette entre est ajout avant l'instruction create index.
IndexType
Liste des types disponibles pour un index. Exemple Dans Sybase Adaptive Server Anywhere 6 :
bitmap
106
PowerAMC
Chapitre 1
SqlSysIndexQuery
Requte SQL utilise pour rpertorier les index systme crs par la base de donnes. Ces index sont exclus lors du reverse engineering. Exemple Dans Sybase Adaptive Server Anywhere 6 :
{OWNER, TABLE, INDEX} select u.user_name, t.table_name, i.index_name from sys.sysindex i, sys.systable t, SYSUSERPERMS u where "unique" = 'U' and t.table_id = i.table_id and u.user_id = t.creator [and u.user_name='%OWNER%'] [and t.table_name='%TABLE%'] union select distinct u.user_name, t.table_name, t.table_name || '(primary key)' from sys.systable t, SYSUSERPERMS u where u.user_id = t.creator and t.primary_root <>0 [and u.user_name='%OWNER%'] [and t.table_name='%TABLE%'] union select distinct u.user_name, t.table_name, f.role || '(foreign key)' from sys.systable t, SYSUSERPERMS u, sys.sysforeignkey f where u.user_id = t.creator and t.table_id = f.foreign_key_id [and u.user_name='%OWNER%'] [and t.table_name='%TABLE%'] union select distinct u.user_name, t1.table_name, f.role || '(foreign key)' from sys.systable t1, sys.systable t2, SYSUSERPERMS u, sys.sysforeignkey f where u.user_id = t1.creator and t2.table_id = f.primary_table_id and t1.table_id=f.foreign_table_id [and u.user_name='%OWNER%'] [and t1.table_name='%TABLE%']
IndexComment
Instruction permettant d'ajouter un commentaire un index. Exemple
comment on index [%QUALIFIER%]%TABLE%.%INDEX% is %.q:COMMENT%
107
Catgorie Objects
UniqName
Dfinition de la porte d'un nom d'index unique. Utilis par la vrification de modle.
Valeur Yes No Rsultat Un nom d'index unique est utilis pour toute la base de donnes Un nom d'index peut tre utilis plusieurs fois s'il est associ diffrents objets UniqName = YES
Exemple
CreateBeforeKey
Permet d'inverser l'ordre de gnration des index et des cls.
Valeur Yes No Rsultat Les index sont gnrs avant les cls Les index sont gnrs aprs les cls CreateBeforeKey = YES
Exemple
108
PowerAMC
Chapitre 1
Pkey
La catgorie Pkey contient des entres qui dfinissent les paramtres relatifs aux cls primaires.
:alter table [%QUALIFIER%]%TABLE% add [constraint %CONSTNAME%] primary key [%CLUSTER% ](%PKEYCOLUMNS%) [%OPTIONS%]] Add
[constraint %CONSTNAME%] primary key [%CLUSTER% ](%PKEYCOLUMNS%) [%OPTIONS%] [%USE_SP_PKEY%?execute sp_dropkey primary, %TABLE% :alter table [%QUALIFIER%]%TABLE% drop constraint %CONSTNAME%] <clustered> %s : list=clustered | nonclustered with : composite=yes, separator=yes, parenthesis=no { fillfactor=%d : default=0 max_rows_per_page=%d : default=0 } on %s : category=storage
Drop
Options
DefOptions
Pour obtenir une description de chacune des entres communes aux objets, reportez-vous la section Entres communes aux diffrents objets.
109
Catgorie Objects
PkAutoIndex
Cl primaire auto-indexe. Cette option dtermine principalement si l'instruction Create Index doit tre gnre pour chaque instruction de cl primaire.
Valeur Yes Base de donnes cible Gnre automatiquement un index de cl primaire lorsque vous gnrez l'instruction de cl primaire Rsultat Les cases cocher de cl primaire et Cration d'index peuvent tre coches simultanment dans les paramtres de gnration ou de modification. Si vous cochez la case Cl primaire sous Cration d'index, la case Primaire est automatiquement dcoche sous Cration de table, et rciproquement Les index de cl primaire doivent tre gnrs de faon explicite. Les cases cocher relatives aux cls primaires et la case Cration d'index peuvent tre coches simultanment
No
Ne gnre pas les index de cl primaire lorsque vous gnrez les cls primaires
Exemple
UseSpPrimKey
Utilisez l'instruction Sp_primarykey pour gnrer une cl primaire. Pour une base de donnes qui prend en charge la procdure de mise en oeuvre de dfinition de cl, vous pouvez tester la valeur de la variable correspondante %USE_SP_PKEY% et choisir entre la cration d'une cl dans la table et le lancement d'une procdure.
Valeur Yes No Rsultat L'instruction Sp_primarykey est utilise pour gnrer une cl primaire Les cls primaires sont gnres sparment dans une instruction alter table
110
PowerAMC
Chapitre 1
Exemple
ConstName
Permet de dclarer un template personnalisable pour tous les noms de contrainte de cl primaire dans un MPD. Pour chaque table dans un modle, le nom de contrainte de cl primaire est dfini dans l'entre Nom de contrainte pour la cl dfinie comme cl primaire. Ce nom de contrainte est gnr dans la base de donnes si cette dernire prend en charge les cls primaires et noms de contrainte. Certaines variables PowerAMC peuvent tre utilises pour dfinir le nom de contrainte de cl primaire : %TABLE% : code de table %KEY% : code de cl %COLUMN% : code de colonne %COLNNO% : numro de colonne
Les noms de contrainte en double sont renomms automatiquement en prenant en compte la longueur de la contrainte.
%OID%
La variable %OID% utilise dans certains fichier .Def dans la Version 6 n'est plus disponible. Les identificateurs d'objet sont cods sur plus de 20 caractres, ce qui les rend inutilisables pour les noms de contrainte (souvent limits 8 ou 18 caractres) Exemple
PKConstraintName = PK_%.U27:TABLE%
PKeyComment
Instruction permettant d'ajouter un commentaire de cl primaire. Exemple
comment on primary key [%QUALIFIER%]%TABLE%.%PKEY% is %.q:COMMENT%
111
Catgorie Objects
Key
La catgorie Key contient des entres qui dfinissent les paramtres associs aux cls.
SqlAttrQuery SqlOptsQuery
112
PowerAMC
Chapitre 1
Entre SqlListQuery
SqlFragQuery ModifiableAttributes
Liste des attributs tendus qui seront pris en compte dans la bote de dialogue de fusion lors de la synchronisation de base de donnes Liste des instructions qui vont faire l'objet d'un reverse engineering
ReversedStatements
Pour obtenir une description de chacune des entres communes aux objets, reportez-vous la section Entres communes aux diffrents objets.
113
Catgorie Objects
AllowNullableColn
Instruction indiquant que la cl peut contenir des colonnes non obligatoires.
Valeur Yes No Rsultat Colonne pouvant tre non obligatoires admises Seules les colonnes obligatoires sont admises
UniqConstAutoIndex
Indexaction automatique de contrainte unique de cl alternative. Cette option commence par dterminer si une instruction Create Index est requise pour chaque instruction de cl.
Valeur Yes Base de donnes cible Gnre automatiquement un index de cl alternative lors de la gnration de l'instruction de cl alternative Rsultat La case Cl alternative (dans les options Filtre d'index de la zone de groupe Index) et la case Cration de cl (zone de groupe Cls alternatives) ne peuvent pas tre coches simultanment dans la page Cls et index de la bote de dialogue de gnration Les index de cl alternative doivent tre gnrs de faon explicites. Les cases cocher concernant les cls alternatives et la case Cration d'index peuvent tre coches simultanment
No
Exemple
114
PowerAMC
Chapitre 1
UniqInTable
Cl alternative cre dans la table. Cette entre dtermine l'endroit o la cl alternative est dfinie dans le script SQL.
Valeur Yes Rsultat Les cls alternatives sont incluses dans l'instruction create table. L'entre Add pour la cl est concatne dans la variable %TABLEDEFN% Les cls alternatives sont gnres sparment dans une instruction alter table, le contenu de l'entre Create pour la cl alternative est utilis lors de la gnration UniqInTable = Yes
No
Exemple
MaxConstLen
Instruction permettant de dfinir la longueur maximale de nom de contrainte prise en charge par la base de donnes cible. Cette valeur est mise en oeuvre dans la vrification de modle et produit une erreur si le code dpasse la valeur dfinie. Le nom de contrainte est galement tronqu au moment de la gnration.
Longueur maximale pour les noms de contrainte :
PowerAMC a une longueur maximale de 254 caractres pour les noms de contrainte. Si votre base de donnes prend en charge des noms de contrainte plus longs, vous devez dfinir les noms de contrainte de sorte qu'ils se conforment la limite de 254 caractres. Exemple
MaxConstLen = 128
ConstName
Permet de dclarer un template personnalisable pour tous les noms de contrainte de cl alternative dans un MPD. Utilis dans la feuille de proprits de cl pour toutes les cls qui sont des cls alternatives et qui ne sont pas des cls primaires. Pour chaque table dans un modle, un nom de contrainte de cl alternative est dfini dans l'entre Nom de contrainte des proprits de la cl si cette cl est dfinie comme cl alternative. Ce nom de contrainte est gnr dans la base de donnes si la base de donnes prend en charge les cls alternatives et les noms de contrainte.
Documentation utilisateur avance
115
Catgorie Objects Certaines variables PowerAMC peuvent tre utilises pour dfinir un nom de contrainte de cl alternative : %TABLE% : code de table %KEY% : code de cl
Les noms de contrainte en double sont automatiquement renomms en fonction de la longueur de la contrainte. Exemple Dans Sybase Adaptive Server Anywhere 6 :
AK_%.U18:AKEY%_%.U8:TABLE%
SqlAkeyIndex
Requte de reverse engineering permettant d'obtenir les index de cl alternative d'une table via ODBC. Exemple Dans Sybase Adaptive Server Anywhere 6 :
select distinct I.INDEX_NAME from SYSINDEX I, SYSUSERPERMS U, SYSTABLE T where I."UNIQUE" = 'U' and I.TABLE_ID = T.TABLE_ID and T.TABLE_NAME = '%TABLE%' and T.CREATOR = U.USER_ID and U.USER_NAME = '%USER%'
AKeyComment
Instruction permettant d'ajouter un commentaire de cl alternative. Exemple
comment on alternate key [%QUALIFIER%]%TABLE%.%AKEY% is %.q:COMMENT%
116
PowerAMC
Chapitre 1
Reference
La catgorie Reference contient des entre dfinissant des paramtres lis aux rfrences.
Add
foreign key %CONSTNAME% (%FKEYCOLUMNS%) references [%PQUALIFIER%]%PARENT% (%CKEYCOLUMNS%) [on update %UPDCONST%] [on delete %DELCONST%] [%CHCKONCMMT% ? check on commit] if exists(select 1 from sys.sysforeignkey where role='%CONSTNAME%') then alter table [%QUALIFIER%]%TABLE% delete foreign key %CONSTNAME% end if
Drop
Liste des attributs tendus qui seront pris en compte dans la bote de dialogue de fusion lors de la synchronisation de base de donnes Liste des instructions qui vont faire l'objet d'un reverse engineering
ReversedStatements
117
Catgorie Objects Pour obtenir une description de chacune des entres communes aux objets, reportez-vous la section Entres communes aux diffrents objets.
EnableChangeJoinOrder
Lorsqu'une rfrence est lie une cl, comme affich sur la page Jointures d'une feuille de proprits de rfrence, cette entre dtermine si l'organisation automatique de l'ordre des jointures est disponible.
Valeur Yes Rsultat L'ordre de jointure peut tre tabli automatiquement ou manuellement l'aide de l'option Organisation automatique de l'ordre des jointures. Lorsque vous cochez la case de cette fonctionnalit, vous triez la liste en fonction de l'ordre des colonnes de cl (les boutons de dplacement ne sont pas disponibles). En dcochant cette case, vous pouvez modifier manuellement l'ordre de jointure l'aide des boutons de dplacement (qui sont alors disponibles) La case Organisation automatique de l'ordre des jointures est grise et non disponible EnableChangeJoinOrder = YES
No
Exemple
EnablefKeyName
Rle de cl trangre admis lors de la gnration de base de donnes.
Valeur Yes No Rsultat Le code de la rfrence est utilis comme rle pour la cl trangre Le rle n'est pas admis pour la cl trangre
118
PowerAMC
Chapitre 1
FKAutoIndex
Cl trangre auto-indexe. Cette option dtermine si une instruction Create Index doit ou non tre gnre pour chaque instruction de cl trangre.
Valeur Yes SGBD Gnre automatiquement un index de cl trangre lors de la gnration des instructions de cl primaire, alternative ou trangre Rsultat La case Cl trangre (dans les options Filtre d'index de la zone de groupe Index) et la case Cration de cl (zone de groupe Cls trangres) ne peuvent pas tre coches simultanment dans la page Cls et index de la bote de dialogue de gnration Les index de cl trangre doivent tre gnrs de faon explicite. Les cases cocher de cl trangre et la case cocher Cration de table peuvent tre coches simultanment
No
N gnre pas automatiquement d'index de cl trangre lors de la gnration de cls trangres FKAutoIndex = YES
Exemple
MaxConstLen
Instruction permettant de dfinir la longueur maximale de nom de contrainte prise en charge par la base de donnes cible. Cette valeur est mise en oeuvre dans la vrification de modle et produit une erreur si le code dpasse la valeur dfinie. Le nom de contrainte est galement tronqu au moment de la gnration.
Longueur maximale pour les noms de contrainte :
PowerAMC a une longueur maximale de 254 caractres pour les noms de contrainte. Si votre base de donnes prend en charge des noms de contrainte plus longs, vous devez dfinir les noms de contrainte de sorte qu'ils se conforment la limite de 254 caractres. Exemple
MaxConstLen = 128
119
Catgorie Objects
ConstName
Permet de dclarer un template personnalisable pour tous les noms de contrainte de cl trangre dans un MPD. Utilis dans la feuille de proprits de rfrence, dans la zone Nom de contrainte sur la page Intgrit. Pour chaque table dans un modle, un nom de contrainte de cl trangre est dfini dans l'entre Nom de contrainte de la feuille de proprits d'une rfrence pour une cl dfinie comme cl trangre. Ce nom de contrainte est gnr dans la base de donnes si cette dernire prend en charge les cls trangres et les noms de contrainte. Les variables PowerAMC suivantes peuvent tre utilises pour dfinir un nom de contrainte de cl trangre : %TABLE% : code de la table (table parent et enfant, compatible Version 6) Les noms de contrainte en double sont automatiquement renomms en tenant compte de la longueur de la contrainte. Exemple
FK_%.U8:CHILD%_%.U9:REFR%_%.U8:PARENT%
CheckOnCommit
Le test d'intgrit rfrentielle est uniquement effectu aprs COMMIT. Contient le mot cl utilis pour spcifier une rfrence avec l'option CheckOnCommit. Exemple
CHECK ON COMMIT
DclUpdIntegrity
Contraintes d'intgrit rfrentielle dclarative pour la modification admises. Doit contenir une liste de mots de la slection suivante. RESTRICT CASCADE SET NULL SET DEFAULT Selon la liste de mots slectionns, le bouton radio sur la page Intgrit de la feuille de proprits de rfrence est disponible ou non.
120
PowerAMC
Chapitre 1
Exemple
DclDelIntegrity
Contraintes d'intgrit rfrentielle dclarative pour la suppression admises. Doit contenir une liste de mots de la slection suivante. RESTRICT CASCADE SET NULL SET DEFAULT Selon la liste de mots slectionns, le bouton radio sur la page Intgrit de la feuille de proprits de rfrence est disponible ou non. Exemple Dans Sybase Adaptive Server Anywhere 6 :
RESTRICT CASCADE SET NULL SET DEFAULT
DefineJoin
Dfinit une jointure pour une rfrence, ce qui correspond la variable %JOINS%. Il s'agit d'une autre faon de dfinir le contenu de l'instruction create reference. En rgle gnrale, le script create pour une rfrence utilise les variables %CKEYCOLUMNS% et %PKEYCOLUMNS% qui contiennent des colonnes enfant et parent spares par une virgule. Si vous utilisez %JOINS%, vous pouvez faire rfrence chaque paire de colonnes parent-enfant sparment. Lorsque vous utilisez %JOINS%, une boucle est excute sur la jointure pour chaque paire de colonnes parent-enfant, ce qui permet d'utiliser une syntaxe mlangeant PK et FK.
121
Catgorie Objects
Exemple
SqlListChildrenQuery
Requte SQL utilise pour rpertorier les jointures dans une rfrence. Exemple Dans Oracle 8 :
SELECT COL2.COLUMN_NAME, COL1.COLUMN_NAME FROM SYS.ALL_CONS_COLUMNS COL1, SYS.ALL_CONS_COLUMNS COL2 WHERE COL1.POSITION = COL2.POSITION AND COL1.OWNER='%SCHEMA%' AND COL1.TABLE_NAME='%TABLE%' AND COL2.OWNER='%POWNER%' AND COL2.TABLE_NAME='%PARENT%' AND COL1.CONSTRAINT_NAME='%FKCONSTRAINT%' AND COL2.CONSTRAINT_NAME='%PKCONSTRAINT%' ORDER BY COL1.POSITION
UseSpFornKey
Utilise l'instruction Sp_foreignkey pour gnrer une cl trangre.
Valeur Yes No Rsultat L'instruction Sp_foreignkey est utilise pour crer une rfrence Les cls trangres sont gnres sparment dans une instruction alter table l'aide de la commande Create de la rfrence
Exemple
FKeyComment
Commande permettant d'ajouter un commentaire une cl trangre. Exemple
comment on foreign key [%QUALIFIER%]%TABLE%.%FK% is %.q:COMMENT%
122
PowerAMC
Chapitre 1
View
La catgorie View contient des entres qui dfinissent les paramtres associs aux vues.
{OWNER, VIEW, SCRIPT} [%ISODBCUSER% ? SELECT '%SCHEMA%', VIEW_NAME, TEXT FROM SYS.USER_VIEWS ORDER BY VIEW_NAME : SELECT OWNER, VIEW_NAME, TEXT FROM SYS.ALL_VIEWS [WHERE OWNER='%SCHEMA%'] ORDER BY OWNER, VIEW_NAME ]
SqlFragQuery
{VAR1NAME, VAR1VALUE} select 'HighVal'||tp.partition_position, tp.high_value from all_tab_partitions tp where 1=1 [ and tp.table_owner=%.q:OWNER% ] [ and tp.table_name=%.q:VIEW%]
Liste des attributs tendus qui seront pris en compte dans la bote de dialogue de fusion lors de la synchronisation de base de donnes
123
Catgorie Objects
Entre ReversedStatements Exemple (Oracle 8) Liste des instructions qui vont faire l'objet d'un reverse engineering
Pour obtenir une description de chacune des entres communes aux objets, reportez-vous la section Entres communes aux diffrents objets.
Permission
Permissions disponibles pour les vues. La premire colonne affiche le nom SQL de la permission (SELECT, par exemple). La seconde colonne est le nom abrg qui s'affiche dans le titre des colonnes de grille. Exemple Dans Sybase ASE 12.5 :
SELECT / Sel INSER / Ins DELETE / Del UPDATE / Upd
Footer
Fin de la vue. Tout ce qui est ajout dans cette entre est ajout aprs l'instruction create view.
Header
En-tte de vue. Tout ce qui est ajout dans cette entre est ajout avant l'instruction create view.
124
PowerAMC
Chapitre 1
SqlPermQuery
Requte SQL permettant de procder au reverse engineering de permissions accordes sur les vues. Exemple Dans Sybase Adaptive Server Enterprise 12.5 :
select u1.name grantee, case when (s.action = 193) then 'SELECT' when (s.action = 195) then 'INSERT' when (s.action = 196) then 'DELETE' when (s.action = 197) then 'UPDATE' end + case when (s.protecttype = 0) then '+' when (s.protecttype = 1) then '' when (s.protecttype = 2) then '-' end || ',' from sysprotects s, sysusers u, sysusers u1, sysobjects o where o.name = %.q:VIEW% and o.uid = u.uid and s.id = o.id and u1.uid = s.uid
ViewComment
Instruction permettant d'ajouter un commentaire une vue. Le commentaire de vue est une instruction SQL, qui n'est pas pris en charge par tous les SGBD. Si ce paramtre est vide, la case cocher Commentaire est grise et non disponible (zone de groupe Vues, dans la page Tables et vues de la bote de dialogue de gnration). Exemple Dans Oracle 8 :
comment on table [%QUALIFIER%.]%VIEW% is '%COMMENT%'
La variable %VIEW% est le nom de la vue tel que dfini dans la bote de dialogue Liste des vues ou dans la feuille de proprits de la vue. La variable %COMMENT% reprsente le commentaire dfini dans la zone de texte Commentaire de la feuille de proprits de la vue.
125
Catgorie Objects
ViewCheck
Option permettant de vrifier une vue. Ce paramtre dtermine si la case With Check Option dans la feuille de proprits de la vue est disponible ou grise. Si la case est coche et que le paramtre ViewCheck n'est pas vide, la valeur de ViewCheck est gnre la fin de l'instruction select de la vue et avant le caractre de fin. Exemple Dans Sybase SQL Anywhere 5.5 :
ViewCheck = with check option
ViewStyle
Option permettant de dfinir le type d'utilisation d'une vue. La valeur dfinie pour cette entre sera affiche dans la liste droulante Utilisation sur la feuille de proprits de la vue. Exemple Dans Oracle 9i :
ViewStyle = materialized view
Tablespace
Le Tablespace contient des entres qui dfinissent les paramtres associs aux tablespace.
126
PowerAMC
Chapitre 1
Entre Drop Options Exemple (Oracle 8)
drop tablespace %TABLESPACE% [including contents [cascade constraints]] datafile : composite=yes, chldmand=yes { <datafile_clause> : composite=yes, separator=yes, multiple=yes { <file_spec> : composite=yes { <filename> %s : squoted=yes size %d reuse } <autoextend_clause> : composite=yes { autoextend off autoextend on : composite=yes { next %s maxsize %s : default=UNLIMITED } } } } minimum extent %s <log> %s : list=logging | nologging default storage : category=storage, composite=yes, parenthesis=yes { initial %d : default=10K next %d : default=10K minextents %d : default=1 maxextents %d maxextents unlimited pctincrease %d : default=50 freelists %d : default=1 optimal %d optimal NULL buffer_pool %s : list=keep | recycle | default } <online> %s : default=online, list=online | offline <permanent> %s : default=permanent, list=permanent | temporary
DefOptions SqlListQuery
127
Catgorie Objects
Entre SqlAttrQuery Exemple (Oracle 8)
{TABLESPACE, OPTIONS} SELECT TABLESPACE_NAME, 'DEFAULT STORAGE (INITIAL ' || INITIAL_EXTENT || ' NEXT ' || NEXT_EXTENT || ' MIN_EXTENTS ' || MIN_EXTENTS || ' MAX_EXTENTS ' || MAX_EXTENTS || ' PCTINCREASE ' || PCT_INCREASE || ') ' || STATUS OPTS FROM USER_TABLESPACES
Liste des attributs tendus qui seront pris en compte dans la bote de dialogue de fusion lors de la synchronisation de base de donnes Liste des instructions qui vont faire l'objet d'un reverse engineering
ReversedStatements
Pour obtenir une description de chacune des entres communes aux objets, reportez-vous la section Entres communes aux diffrents objets.
TablespaceComment
Instruction permettant d'ajouter un commentaire un tablespace. Exemple
comment on tablespace [%QUALIFIER%]%TABLESPACE% is %.q:COMMENT%
Storage
La catgorie Storage contient des entres qui dfinissent les paramtres associs aux storages.
128
PowerAMC
Chapitre 1
Entre Drop Options Exemple (Oracle 8)
initial %d : default=10K next %d : default=10K minextents %d : default=1 maxextents %d pctincrease %d : default=50 freelists %d : default=1 freelist groups %d : default=1 optimal %d buffer_pool %s : list=keep | recycle | default
{STORAGE, OPTIONS} SELECT SEGMENT_NAME, 'INITIAL ' || INITIAL_EXTENT || ' NEXT ' || NEXT_EXTENT || ' MIN_EXTENTS ' || MIN_EXTENTS || ' MAX_EXTENTS ' || MAX_EXTENTS || ' PCTINCREASE ' || PCT_INCREASE || ' FREELISTS ' || FREELISTS || ' FREELIST_GROUPS ' || FREELIST_GROUPS OPTS FROM USER_SEGMENTS
ModifiableAttributes
Liste des attributs tendus qui seront pris en compte dans la bote de dialogue de fusion lors de la synchronisation de base de donnes Liste des instructions qui vont faire l'objet d'un reverse engineering
ReversedStatements
Pour obtenir une description de chacune des entres communes aux objets, reportez-vous la section Entres communes aux diffrents objets.
StorageComment
Instruction permettant d'ajouter un commentaire un storage. Exemple
comment on storage [%QUALIFIER%]%STORAGE% is %.q:COMMENT%
129
Catgorie Objects
Database
La catgorie Database contient des entres qui dfinissent les paramtres associs aux database.
Liste des attributs tendus qui seront pris en compte dans la bote de dialogue de fusion lors de la synchronisation de base de donnes Liste des instructions qui vont faire l'objet d'un reverse engineering
ReversedStatements
Pour obtenir une description de chacune des entres communes aux objets, reportez-vous la section Entres communes aux diffrents objets.
130
PowerAMC
Chapitre 1
BeforeCreateDatabase
Dtermine si les instructions Create Tablespace et Create Storage sont gnres avant ou aprs la cration de la base de donnes. Valeur par dfaut : YES.
Valeur Yes No Rsultat Les instructions Create Tablespace et Create Storage sont gnres avant l'instruction Create Database Les instructions Create Tablespace et Create Storage sont gnres aprs l'instruction Create Database
Exemple
CloseDatabase
Instruction permettant de fermer une base de donnes. Si ce paramtre est vide, la case Fermeture de la base est grise et non disponible (zone de groupe Base de donnes sur la page Base de donnes) dans la bote de dialogue de gnration. Exemple Dans Sybase AS Enterprise 11.x :
CloseDatabase =
OpenDatabase
Instruction permettant d'ouvrir une base de donnes. Si ce paramtre est vide, la case Ouverture de la base est grise et non disponible (zone de groupe Base de donnes sur la page Base de donnes) dans la bote de dialogue de gnration. Exemple Dans Sybase AS Enterprise 11.x :
OpenDatabase = use %DATABASE%
131
Catgorie Objects
EnableManyDatabases
Dtermine si le SGBD prend en charge plusieurs bases de donnes dans le mme modle. Exemple Dans DB2MVS8 :
EnableManyDatabases = Yes
Domain
La catgorie Domain contient des entres qui dfinissent les paramtres associs aux domaines.
Drop
SqlListQuery
SqlAttrQuery
132
PowerAMC
Chapitre 1
Entre ModifiableAttributes
Exemple (Sybase Adaptive Server Anywhere 6) Liste des attributs tendus qui seront pris en compte dans la bote de dialogue de fusion lors de la synchronisation de base de donnes Liste des instructions qui vont faire l'objet d'un reverse engineering
ReversedStatements
Pour obtenir une description de chacune des entres communes aux objets, reportez-vous la section Entres communes aux diffrents objets.
EnableBindRule
Permet ou interdit l'association d'une rgle de gestion un domaine pour les paramtres de contrle.
Valeur Yes No Rsultat Les entres Create et Bind de l'objet Rule sont gnres Le contrle inclus dans la commande d'ajout du domaine est gnr
Exemple
EnableDefault
Permet l'utilisation de valeurs par dfaut prdfinies.
Valeur Yes Rsultat La valeur par dfaut est gnre pour le domaine lorsque la valeur par dfaut est dfinie. La valeur par dfaut peut tre dfinie dans les paramtres de contrle. La variable %DEFAULT% va contenir la valeur par dfaut La valeur par dfaut ne peut pas tre gnre
No
133
Catgorie Objects
EnableCheck
Dtermine si la gnration de paramtres de contrle est autorise ou non. Cette entre est teste lors de la gnration des colonnes : si l'option Type utilisateur est slectionne pour les colonnes dans la bote de dialogue de gnration, et si EnableCheck est dfini Yes pour les domaines, alors les paramtres de contrle ne sont pas gnrs pour les colonnes, puisque la colonne est associe un domaine ayant des paramtres de contrle. Lorsque les contrles portant sur la colonne divergent de ceux sur le domaine, les contrles sur la colonne sont gnrs. Valeur Yes No Rsultat Paramtres de contrle gnrs Toutes les variables lies aux paramtres de contrle ne seront pas values lors de la gnration et du reverse engineering
EnableOwner
Permet de dfinir des propritaires pour les domaines.
Valeur Yes Rsultat La liste droulante Propritaire s'affiche dans la feuille de proprits du domaine et l'utilisateur peut slectionner un propritaire pour le domaine courant Le domaine ne prend pas en charge les propritaires EnableOwner = YES
No
Exemple
UserTypeName
Vous pouvez dfinir des types de donnes avec des noms spcifis par l'utilisateur. Vous amliorez ainsi la lisibilit du contenu des objets dans vos applications particulires. Exemple
UserTypeName = T_%DOMAIN%
Bind
Lie une rgle de gestion un domaine. Exemple Dans Sybase Adaptive Server Enterprise 11 :
[execute] sp_bindrule %RULE%, %DOMAIN%
134
PowerAMC
Chapitre 1
BindDefault
Lie une valeur par dfaut un domaine. Exemple Dans Microsoft SQL Server and Sybase 11 :
sp_bindefault %DEFAULTNAME%, %DOMAIN%
CreateDefault
Cre une valeur par dfaut pour un domaine. Exemple Dans Microsoft SQL Server and Sybase 11 :
create default %DEFAULTNAME% as %DEFAULT%
SqlListDefaultQuery
Requte SQL permettant de rpertorier les valeurs par dfaut du domaine. Dans le cas de certains SGBD, le processus de reverse engineering ODBC extrait les valeurs par dfaut de domaine dans les tables systme. Cette requte rpertorie ces valeurs par dfaut.
UddtComment
Instruction permettant d'ajouter un commentaire pour un type de donnes utilisateur. Exemple
comment on user-defined data type [%QUALIFIER%]%DOMAIN% is %.q:COMMENT%
Unbind
Dissocie une rgle de gestion d'un domaine. Exemple Dans Sybase Adaptive Server Enterprise 11 :
[execute] sp_unbindrule %DOMAIN%, %RULE%
135
Catgorie Objects
Create
Dans Oracle 8 :
[%ISARRAY% ? create type %ADT% as %TYPE% (%SIZE%) of %DATATYPE%] [%ISLIST% ? create type %ADT% as %TYPE% of %DATATYPE%] [%ISOBJECT% ? create type %ADT% as %TYPE% ( %ADTDEF% )]
Drop
Dans Oracle 8 :
drop type %ADT%
SqlListQuery
SqlAttrQuery ModifiableAttributes
Liste des attributs tendus qui seront pris en compte dans la bote de dialogue de fusion lors de la synchronisation de base de donnes Liste des instructions qui vont faire l'objet d'un reverse engineering
ReversedStatements
Pour obtenir une description de chacune des entres communes aux objets, reportez-vous la section Entres communes aux diffrents objets.
136
PowerAMC
Chapitre 1
EnableAdtOnDomn
Instruction permettant l'utilisation de types de donnes abstraits sur les domaines.
Valeur Yes No Rsultat Les types de donnes abstraits sont ajouts dans la listes des types de domaines, condition qu'ils aient un type correct Les types de donnes abstraits ne sont pas admis pour les domaines EnableAdtOnDomn = Yes
Exemple
EnableAdtOnColn
Instruction permettant l'utilisation de types de donnes abstraits sur les colonnes.
Valeur Yes No Rsultat Les types de donnes abstraits sont ajouts dans la listes des types de colonne, condition qu'ils aient un type correct Les types de donnes abstraits ne sont pas admis pour les colonnes EnableAdtOnColn = Yes
Exemple
Install
Instruction permettant d'installer une classe Java. Cette entre quivaut une instruction create. Dans Sybase Adaptive Server Anywhere, les types de donnes abstraits ne sont pas rellement crs, mais installs. Exemple Dans Sybase Adaptive Server Anywhere 6 :
install JAVA UPDATE from file '%FILE%'
137
Catgorie Objects
Remove
Instruction permettant de dsinstaller une classe Java. Cette entre quivaut une instruction de suppression. Dans Sybase Adaptive Server Anywhere, les types de donnes abstraits ne sont pas rellement supprims, mais retirs. Exemple Dans Sybase Adaptive Server Anywhere 6 :
remove JAVA class %ADT%
AllowedADT
Liste des types de donnes abstraits qui peuvent tre utiliss comme types de donnes pour un type de donnes abstrait. Exemple Dans Oracle 8i :
OBJECT
ADTComment
Instruction permettant d'ajouter un commentaire au type de donnes abstrait. Exemple
comment on abstract data type [%QUALIFIER%]%ADT% is %.q:COMMENT%
Dans Oracle 8 :
%ADTATTR% %DATATYPE%
138
PowerAMC
Chapitre 1
Entre Drop Modify SqlListQuery Example Dans Oracle 8 :
{ ADT, ADTATTR , DTTPCODE, LENGTH, PREC } SELECT type_name, attr_name, attr_type_name, length, precision FROM all_type_attrs ORDER BY type_name
ModifiableAttributes
Liste des attributs tendus qui seront pris en compte dans la bote de dialogue de fusion lors de la synchronisation de base de donnes Liste des instructions qui vont faire l'objet d'un reverse engineering
ReversedStatements
Pour obtenir une description de chacune des entres communes aux objets, reportez-vous la section Entres communes aux diffrents objets.
AllowedADT
Liste des types de donnes abstraits qui peuvent tre utiliss comme type de donnes pour des attributs de type de donnes abstrait. Dans PowerAMC, lorsque vous slectionnez le type OBJECT pour un type de donnes abstrait, un onglet Attributs est ajoute dans la feuille de proprits du type de donnes abstrait. Cet onglet vous permet de spcifier les attributs du type de donnes de l'objet. Exemple Dans Oracle 8i :
OBJECT TABLE VARRAY
139
Catgorie Objects
User
La catgorie User contient des entres qui dfinissent les paramtres associs aux utilisateurs.
Drop
ModifiableAttributes
Liste des attributs tendus qui seront pris en compte dans la bote de dialogue de fusion lors de la synchronisation de base de donnes Liste des instructions qui vont faire l'objet d'un reverse engineering
ReversedStatements
Pour obtenir une description de chacune des entres communes aux objets, reportez-vous la section Entres communes aux diffrents objets.
140
PowerAMC
Chapitre 1
SqlPermQuery
Requte SQL permettant de procder au reverse engineering des permissions accordes aux utilisateurs. Exemple Dans Sybase Adaptive Server Enterprise 12.5 :
{USER ID, PRIVILEGE ...} select u1.name grantee, case when (s.action = 198) then 'CREATE when (s.action = 203) then 'CREATE when (s.action = 207) then 'CREATE when (s.action = 221) then 'CREATE when (s.action = 222) then 'CREATE when (s.action = 233) then 'CREATE when (s.action = 236) then 'CREATE end + case when (s.protecttype = 0) then '+' when (s.protecttype = 1) then '' when (s.protecttype = 2) then '-' end || ',' from sysprotects s, sysusers u1 where u1.uid = s.uid order by 1
141
Catgorie Objects
Rule
La catgorie Rule contient des entres qui dfinissent les paramtres associs aux rgles.
SqlListQuery
SqlAttrQuery ModifiableAttributes
Liste des attributs tendus qui seront pris en compte dans la bote de dialogue de fusion lors de la synchronisation de base de donnes Liste des instructions qui vont faire l'objet d'un reverse engineering
ReversedStatements
Pour obtenir une description de chacune des entres communes aux objets, reportez-vous la section Entres communes aux diffrents objets.
142
PowerAMC
Chapitre 1
MaxDefaultLen
Longueur maximale que le SGBD prend en charge pour le nom par dfaut de la colonne. Ce nom n'est dfini que dans la syntaxe des bases de donnes de la famille Sybase. Exemple
MaxDefaultLen = 254
ColnDefaultName
Nom de la valeur par dfaut pour la colonne. Lorsqu'une colonne a une valeur par dfaut particulire dfinie dans ses paramtres de contrle, un nom est cr pour cette valeur par dfaut de colonne. Cette entre est utilise avec les SGBD qui ne prennent pas en charge les paramtres de contrle sur les colonnes, tels que SQL Server 4. La variable correspondante est %DEFAULTNAME% Exemple Dans Sybase Adaptive Server Enterprise 11 :
ColnDefaultName = D_%.19:COLUMN%_%.8:TABLE%
La colonne Employee function EMPFUNC de la table EMPLOYEE a la valeur par dfaut, Technical Engineer. Le nom par dfaut de la colonne, D_EMPFUNC_EMPLOYEE, est cr :
create default D_EMPFUNC_EMPLOYEE as 'Technical Engineer' go execute sp_bindefault D_EMPFUNC_EMPLOYEE, "EMPLOYEE.EMPFUNC" go
ColnRuleName
Les paramtres de contrle de colonne sont dfinis dans des rgles spares dans l'instruction create table pour Sybase SQL Server 4.x et Microsoft SQL Server. Lorsqu'une colonne a une rgle particulire dfinie dans ses paramtres de contrle, ces SGBD crent un nom pour cette rgle de colonne. La variable correspondante est %RULE% Exemple Dans Sybase Adaptive Server Enterprise 11 :
ColnRuleName = R_%.19:COLUMN%_%.8:TABLE%
La colonne Specialty (TEASPE) de la table Team a une liste de valeurs dfinie dans ses paramtres de contrle : Industry, Military, Nuclear, Bank, Marketing.
Documentation utilisateur avance
143
Catgorie Objects Le nom de rgle suivant, R_TEASPE_TEAM, est cr et associ la colonne TEASPE :
create rule R_TEASPE_TEAM as @TEASPE in ('Industry','Military','Nuclear','Bank','Marketing') go execute sp_bindrule R_TEASPE_TEAM, "TEAM.TEASPE" go
UddtDefaultName
Nom par dfaut pour un type de donnes dfini par l'utilisateur. Lorsqu'un domaine a une valeur par dfaut particulire dfinie dans ses paramtres par dfaut, les bases de donnes Sybase crent un nom comme valeur par dfaut pour ce type de donnes par dfaut. La variable correspondante est %DEFAULTNAME% Exemple Dans Sybase Adaptive Server Enterprise 11 :
UddtDefaultName = D_%.28:DOMAIN%
Le domaine FunctionList a une valeur par dfaut dfinie dans ses paramtres de contrle : Technical Engineer. Le script SQL suivant va gnrer un nom par dfaut pour cette valeur par dfaut :
create default D_Functionlist as 'Technical Engineer' go
UddtRuleName
Nom d'une rgle dfinie pour un type de donnes utilisateur. Lorsqu'un domaine a une rgle spcifique dfinie dans ses paramtres de contrle, la base de donnes Sybase cre un nom pour cette valeur de type de donnes utilisateur pour une rgle. La variable correspondante est %RULE%
144
PowerAMC
Chapitre 1
Exemple
Le domaine Domain_speciality doit appartenir un jeu de valeurs. Ce contrle de domaine a t dfini dans une rgle de validation. Le script SQL va gnrer le nom de rgle en suivant le template dfini dans l'entre UddtRuleName :
create rule R_Domain_speciality as (@Domain_speciality in ('Industry','Military','Nuclear','Bank','Marketing')) go execute sp_bindrule R_Domain_speciality, T_Domain_speciality go
RuleComment
Instruction permettant d'ajouter un commentaire une rgle. Exemple
comment on rule [%QUALIFIER%]%RULE% is %.q:COMMENT%
Procedure
La catgorie Procedure contient des entres qui dfinissent les paramtres associs aux procdures stockes.
145
Catgorie Objects
Entre SqlListQuery Exemple (Sybase Adaptive Server Anywhere 6)
{OWNER, @OBJTCODE} SELECT U.USER_NAME, P.PROC_NAME FROM SYSUSERPERMS U,SYSPROCEDURE P WHERE [%SCHEMA% ? U.USER_NAME='%SCHEMA%' AND] P.CREATOR=U.USER_ID {OWNER, @OBJTCODE, SCRIPT, @OBJTLABL} SELECT U.USER_NAME, P.PROC_NAME, P.PROC_DEFN, P.REMARKS FROM SYSUSERPERMS U,SYSPROCEDURE P WHERE [%SCHEMA% ? U.USER_NAME='%SCHEMA%' AND] P.CREATOR=U.USER_ID ORDER BY U.USER_NAME
SqlAttrQuery
ModifiableAttributes
Liste des attributs tendus qui seront pris en compte dans la bote de dialogue de fusion lors de la synchronisation de base de donnes Liste des instructions qui vont faire l'objet d'un reverse engineering
ReversedStatements
Pour obtenir une description de chacune des entres communes aux objets, reportez-vous la section Entres communes aux diffrents objets.
Permission
Permissions disponibles pour les procdures. La premire colonne affiche le nom SQL de la permission (SELECT, par exemple). La seconde colonne est le nom abrg qui s'affiche dans le titre des colonnes de grille. Exemple Dans Sybase ASE 12.5 :
EXECUTE / Exe
EnableFunc
Dtermine si les fonctions sont admises ou non. Les fonctions sont une forme de procdure qui renvoie l'environnement une valeur utiliser dans des requtes et dans d'autres instructions SQL.
Valeur Yes No Rsultat La fonction est admise La fonction n'est pas admise EnableFunc = Yes
Exemple 146
PowerAMC
Chapitre 1
EnableOwner
Permet de dfinir des propritaires pour les procdures.
Valeur Yes Rsultat La liste droulante Propritaire s'affiche dans la feuille de proprits de procdure et l'utilisateur peut slectionner un propritaire pour la procdure courante La procdure ne peut pas prendre en charge les propritaires EnableOwner = YES
No
Exemple
MaxFuncLen
Dtermine la longueur maximum du nom d'une fonction. Exemple
MaxFuncLen = 128
CreateFunc
Instruction permettant de crer une fonction. Exemple Dans Sybase Adaptive Server Anywhere 6 :
create function %FUNC%[(%PROCPRMS%)] %TRGDEFN%
CustomProc
Instruction permettant de crer une procdure stocke. Les procdures stockes sont des scripts qui utilisent des oprateurs prdfinis, des variables, des fonctions et des macros pour grer et modifier des donnes. Exemple Dans Sybase Adaptive Server Anywhere 6 :
create procedure %PROC% (IN <arg> <type>) begin . . . end /
147
Catgorie Objects
CustomFunc
Instruction permettant de crer une fonction. Les fonctions dfinies par l'utilisateur ont la forme d'une procdure qui renvoie une valeur l'environnement appelant afin de l'utiliser dans des requtes et dans d'autres instructions SQL. Exemple Dans Sybase Adaptive Server Anywhere 6 :
create function %FUNC% (<arg> <type>) RETURNS <type> begin . . . end /
DropFunc
Instruction permettant de supprimer une fonction. Exemple Dans Sybase Adaptive Server Anywhere 6 :
if exists(select 1 from sys.sysprocedure where proc_name = '%FUNC%') then drop function %FUNC% end if
SqlPermQuery
Requte SQL permettant de procder au reverse engineering de permissions accordes sur les procdures. Exemple Dans Sybase Adaptive Server Enterprise 12.5 :
select u1.name grantee, case when (s.action = 193) then 'SELECT' when (s.action = 195) then 'INSERT' when (s.action = 196) then 'DELETE' when (s.action = 197) then 'UPDATE' end + case when (s.protecttype = 0) then '+' when (s.protecttype = 1) then '' when (s.protecttype = 2) then '-' end || ',' from sysprotects s, sysusers u, sysusers u1, sysobjects o where o.name = %.q:PROCEDURE% and o.uid = u.uid and
148
PowerAMC
Chapitre 1
s.id = o.id and u1.uid = s.uid
ProcedureComment
Instruction permettant d'ajouter un commentaire une procdure. Exemple
comment on procedure [%QUALIFIER%]%PROC% is %.q:COMMENT%
FunctionComment
Instruction permettant d'ajouter un commentaire une fonction. Exemple
comment on procedure [%QUALIFIER%]%PROC% is %.q:COMMENT%
Trigger
La catgorie Trigger contient des entres qui dfinissent les paramtres associs aux triggers.
Create
149
Catgorie Objects
Entre SqlListQuery Exemple (Sybase Adaptive Server Anywhere 6)
{OWNER, TABLE, TRIGGER, TRGEVENT (C=Update, D=Delete, *=Insert), TRGTIME (A=After, *=Before)} SELECT U.USER_NAME, T.TABLE_NAME, R.TRIGGER_NAME, R.EVENT, R.TRIGGER_TIME FROM SYSUSERPERMS U,SYSTABLE T,SYSTRIGGER R WHERE [%SCHEMA% ? U.USER_NAME='%SCHEMA%' AND] R.TRIGGER_NAME IS NOT NULL AND T.CREATOR=U.USER_ID AND R.TABLE_ID = T.TABLE_ID ORDER BY U.USER_NAME, T.TABLE_NAME {OWNER, TABLE, TRIGGER, SCRIPT} SELECT U.USER_NAME, T.TABLE_NAME, R.TRIGGER_NAME, R.TRIGGER_DEFN FROM SYSUSERPERMS U,SYSTABLE T,SYSTRIGGER R WHERE [%OWNER% ? U.USER_NAME='%OWNER%' AND] [%TABLE% ? T.TABLE_NAME='%TABLE%' AND] T.CREATOR=U.USER_ID AND R.TABLE_ID = T.TABLE_ID ORDER BY U.USER_NAME, T.TABLE_NAME
SqlAttrQuery
ModifiableAttributes
Liste des attributs tendus qui seront pris en compte dans la bote de dialogue de fusion lors de la synchronisation de base de donnes Liste des instructions qui vont faire l'objet d'un reverse engineering
ReversedStatements
Pour obtenir une description de chacune des entres communes aux objets, reportez-vous la section Entres communes aux diffrents objets.
EnableMultiTrigger
Dtermine si plusieurs triggers de mme type peuvent tre utiliss ou non. Exemple
EnableMultiTrigger = Yes
150
PowerAMC
Chapitre 1
EnableOwner
Permet de dfinir des propritaires de trigger. Le propritaire de trigger peut tre identique ou diffrent du propritaire de table.
Valeur Yes Rsultat La liste droulante Propritaire s'affiche dans la feuille de proprits de trigger et l'utilisateur peut slectionner un propritaire pour le trigger courant Le trigger ne prend pas en charge le propritaire EnableOwner = YES
No
Exemple
DefaultTriggerName
Nom de trigger par dfaut. Exemple Dans Sybase Adaptive Server Anywhere 6 :
%TEMPLATE%_%.L:TABLE%
UseErrorMsgTable
Gre les erreurs lors de la gnration de trigger en utilisant des messages dfinis par l'utilisateur. Lorsque vous slectionnez Utilisateur dans la page Messages d'erreur de la bote de dialogue Rgnration des triggers, la macro .ERROR sera remplace par le contenu de l'entre UseErrorMsgTable lors du processus de rgnration. La macro .ERROR, est appele par un lment de modle dans le modle de trigger, elle a deux paramtres : %ERRNO% est le numro d'erreur et %ERRMSG% est le texte du message. Les messages utilisateur sont stocks dans une table de messages que vous devez crer dans votre base de donnes :
Variable %MSGTAB% %MSGNO% %MSGTXT% Description Nom de la table Colonne de numro de message qui stocke le numro du message d'erreur rfrenc dans le script de trigger Colonne de texte de message qui stocke le texte du message
151
Catgorie Objects Lorsque vous avez slectionne l'option Utilisateur pour le type de message d'erreur, si un numro d'erreur dans le script du trigger correspond un numro d'erreur dans la table de message, le paramtre de message d'erreur par dfaut de la macro .ERROR est remplac par le message d'erreur dfini par l'utilisateur dans la table de messages. Exemple Dans Sybase Adaptive Server Enterprise 12 :
begin select @errno = %ERRNO%, @errmsg = %MSGTXT% from %MSGTAB% where %MSGNO% = %ERRNO% goto error end
%MSGNO%, %MSGTAB% et %MSGTXT% seront remplacs par les valeurs dfinies dans la colonne de numro de message, la colonne de texte de message et la colonne de nom de message dans le tableau de messages.
UseErrorMsgText
Gre les erreurs lors de la gnration de triggers en utilisant des messages d'erreur standard. Lorsque vous slectionnez Standard dans la page Messages d'erreur de la bote de dialogue Rgnration des triggers, la macro .ERROR sera remplace par le contenu de l'entre UseErrorMsgText lors du processus de rgnration. La macro .ERROR, est appele par un lment de modle dans le modle de trigger, elle a deux paramtres : %ERRNO% est le numro d'erreur et %ERRMSG% est le texte du message. Si l'option Standard est slectionne pour les messages d'erreur, si un numro d'erreur dans le script de trigger correspond au paramtre %ERRNO% de la macro .ERROR, le message correspondant de la macro est utilis. Exemple Dans Sybase Adaptive Server Enterprise 12 :
begin select @errno = %ERRNO%, @errmsg = '%ERRMSG%' goto error end
152
PowerAMC
Chapitre 1
TriggerComment
Instruction permettant d'ajouter un commentaire au trigger. Exemple
comment on trigger [%QUALIFIER%]%TRIGGER% is %.q:COMMENT%
Time
Liste d'attributs de moment de trigger. Exemple
Before After
Event
Liste d'attributs d'vnements de trigger. Exemple
Select
EventDelimiter
Caractre utilis pour sparer les vnements si vous souhaitez affecter plusieurs vnements un trigger. Exemple
,
Group
La catgorie Group contient des entres qui dfinissent les paramtres associs aux groupes.
153
Catgorie Objects
Entre SqlListQuery Exemple (Sybase ASE 12.5)
{GROUP} select u.name from [%CATALOG%.]dbo.sysusers u where u.uid = u.gid and u.gid not in (select r.lrid from [%CATALOG%.]dbo.sysroles r) order by 1
SqlAttrQuery Drop
Create
Maxlen ModifiableAttributes
Liste des attributs tendus qui seront pris en compte dans la bote de dialogue de fusion lors de la synchronisation de base de donnes Liste des instructions qui vont faire l'objet d'un reverse engineering
ReversedStatements
Pour obtenir une description de chacune des entres communes aux objets, reportez-vous la section Entres communes aux diffrents objets.
Bind
Instruction permettant d'ajouter un membre dans un groupe. Exemple Dans Sybase Adaptive Server Enterprise 12.5 :
sp_adduser %USERID%, null, %GROUP%
Unbind
Instruction permettant de supprimer un membre d'un groupe. Exemple Dans Sybase Adaptive Server Anywhere 8.0 :
revoke membership in group %GROUP% from %USER%
154
PowerAMC
Chapitre 1
SqlListChildrenQuery
Requte SQL permettant de dresser la liste des membres d'un groupe. Exemple Dans Sybase Adaptive Server Enterprise 12.5 :
{GROUP ID, MEMBER} select g.name, u.name from [%CATALOG%.]dbo.sysusers u, [%CATALOG%.]dbo.sysusers g where u.suid > 0 and u.gid = g.gid and g.gid = g.uid order by 1
SqlPermQuery
Requte SQL permettant de procder au reverse engineering des permissions accordes aux groupes.
Role
La catgorie Role contient des entres qui dfinissent les paramtres associs aux rles.
SqlAttrQuery Drop
155
Catgorie Objects
Entre Create Exemple (Sybase ASE 12.5)
create role %ROLE% [with passwd "%PASSWORD%"] [%BIND%] [%PRIVILEGE%]
Maxlen ModifiableAttributes
Liste des attributs tendus qui seront pris en compte dans la bote de dialogue de fusion lors de la synchronisation de base de donnes Liste des instructions qui vont faire l'objet d'un reverse engineering
ReversedStatements
Pour obtenir une description de chacune des entres communes aux objets, reportez-vous la section Entres communes aux diffrents objets.
Bind
Instruction permettant d'affecter un rle un utilisateur ou un autre rle. Exemple Dans Sybase Adaptive Server Enterprise 12.5 :
grant role %ROLE% to %USERID%
Unbind
Instruction permettant de dsaffecter un rle d'un utilisateur ou d'un autre rle. Exemple Dans Sybase Adaptive Server Enterprise 12.5 :
revoke role %ROLE% from %USER%
156
PowerAMC
Chapitre 1
SqlListChildrenQuery
Requte SQL qui dresse la liste des utilisateurs auxquels le rle a t affect. Exemple Dans Sybase Adaptive Server Enterprise 12.5 :
{ ROLE ID, MEMBER } SELECT r.name, u.name FROM master.dbo.sysloginroles [%CATALOG%.]dbo.sysroles [%CATALOG%.]dbo.sysusers [%CATALOG%.]dbo.sysusers where l.suid = u.suid and s.id =l.srid and r.uid = s.lrid
l, s, u, r
SqlPermQuery
Requte SQL permettant de procder au reverse engineering des permissions accordes aux rles.
Privilege
La catgorie Privilege contient des entres qui dfinissent les paramtres associs aux privilges.
Liste des attributs tendus qui seront pris en compte dans la bote de dialogue de fusion lors de la synchronisation de base de donnes Liste des instructions qui vont faire l'objet d'un reverse engineering
ReversedStatements
157
Catgorie Objects
Pour obtenir une description de chacune des entres communes aux objets, reportez-vous la section Entres communes aux diffrents objets.
GrantOption
Option pour la commande grant. Exemple Dans Oracle 9i :
with admin option
RevokeOption
Option pour la commande revoke.
System
Liste de privilges systme admis dans le SGBD courant. Exemple Dans Sybase ASE 12.5 :
CREATE CREATE CREATE CREATE CREATE CREATE CREATE DATABASE DEFAULT PROCEDURE TRIGGER RULE TABLE VIEW
Permission
La catgorie Permission contient des entres qui dfinissent les paramtres associs aux permissions.
158
PowerAMC
Chapitre 1
Entre SqlListQuery
Pour obtenir une description de chacune des entres communes aux objets, reportez-vous la section Entres communes aux diffrents objets.
GrantOption
Option pour la commande grant. Exemple Dans Sybase ASE 12.5 :
with grant option
RevokeOption
Option pour la commande revoke. Exemple Dans Sybase ASE 12.5 :
cascade
Default
La catgorie Default contient les entres qui dfinissent les paramtres associs aux dfauts.
159
Catgorie Objects
Entre SqlListQuery Example (Sybase ASE 12.5)
{DEFAULT ID, SCRIPT ...} select convert(char(20), d.tdefault), t.text from [%CATALOG%.]dbo.systypes d, [%CATALOG%.]dbo.syscomments t where t.id = d.tdefault and (t.texttype=0 or t.texttype=2) [ and d.name = %.q:DOMAIN%] order by 1, 2 drop default [%QUALIFIER%]%DEFAULT% create default [%QUALIFIER%]%DEFAULT% as %VALUE%
Drop Create
L'instruction create du dfaut Pour obtenir une description de chacune des entres communes aux objets, reportez-vous la section Entres communes aux diffrents objets.
Bind
Commande permettant de lier un dfaut un domaine ou une colonne. Lorsqu'un domaine ou une colonne utilise un dfaut, ce dernier n'est pas ajout mais une instruction binddefault est gnre aprs l'instruction de cration du domaine ou de la table. Dans l'exemple suivant, la colonne Address dans la table Customer utilise le dfaut CITYDFLT :
create table CUSTOMER ( ADDRESS null ) char(10)
Si le domaine ou la colonne utilise une valeur de dfaut directement saisie dans la liste droulante Dfaut, la valeur de dfaut est dclare sur la ligne de cration de la colonne :
ADDRESS char(10) default 'StdAddress' null
160
PowerAMC
Chapitre 1
EnableOwner
Permet de dfinir le propritaire d'un dfaut.
Value Yes No Result La liste droulante Propritaire s'affiche dans la feuille de proprits de dfaut et l'utilisateur peut slectionner un propritaire pour le dfaut Le dfaut ne prend pas en charge les propritaires EnableOwner = YES
Exemple
Unbind
Dtache un dfaut d'un domaine ou d'une colonne.
Maxlen
Instruction permettant de dfinir la longueur maximale du code pour un objet. Cette valeur est mise en oeuvre dans la vrification de modle et produit une erreur si le nom ou le code dpasse la valeur dfinie. Example
MaxLen = 30
Join index
La catgorie Join Index contient des entres qui dfinissent les paramtres associs aux join index.
161
Catgorie Objects
Entre Exemple (Sybase Adaptive Server Anywhere 6) Dans Adaptive Server IQ:
{JIDX ID, OWNER ID, REFRLIST ...} SELECT j.joinindex_name, u.user_name, lt.table_name || ',' || rt.table_name || ',' FROM sysiqjoinindex j, sysuserperm u, sysiqjoinixcolumn jc, systable lt, systable rt WHERE j.joinindex_id = jc.joinindex_id AND j.creator = u.user_id AND jc.left_table_id = lt.table_id AND jc.right_table_id = rt.table_id ORDER BY joinindex_name
SqlListQuery
SqlAttrQuery
Dans Adaptive Server IQ: {JIDX ID, OWNER ID, RFJNLIST ...} SELECT j.joinindex_name, u.user_name, lt.table_name || '.' || lc.column_name || '=' || rt.table_name || '.' || rc.column_name || ',' FROM sysiqjoinindex j, sysuserperm u, sysiqjoinixcolumn jc, systable lt, systable rt, syscolumn lc, syscolumn rc WHERE j.joinindex_id = jc.joinindex_id AND j.creator = u.user_id AND jc.left_table_id = lt.table_id AND jc.right_table_id = rt.table_id AND jc.left_column_id = lc.column_id AND jc.right_column_id = rc.column_id AND lc.table_id = lt.table_id AND rc.table_id = rt.table_id ORDER BY joinindex_name _ if exists(select 1 from sys.sysiqjoinindex where joinindex_name='%JIDX%') then drop join index %JIDX% end if _ _ create join index %JIDX% for %JIDXDEFN%
Options Drop
Liste des attributs tendus qui seront pris en compte dans la bote de dialogue de fusion lors de la synchronisation de base de donnes Liste des instructions qui vont faire l'objet d'un reverse engineering
ReversedStatements
Pour obtenir une description de chacune des entres communes aux objets, reportez-vous la section Entres communes aux diffrents objets. 162 PowerAMC
Chapitre 1
Header
En-tte de join index. Tout ce qui est ajout dans cette entre est ajout avant l'instruction create join index.
Footer
Fin de join index. Tout ce qui est ajout dans cette entre est ajout aprs l'instruction create join index.
AddJoin
Instruction SQL utilise pour dfinir des jointures pour les index de jointure. Exemple
Table1.coln1 = Table2.coln2
JoinIndexComment
Instruction permettant d'ajouter un commentaire de join index. Exemple
comment on join [%QUALIFIER%]%JIDX% is %.q:COMMENT%
EnableJidxColn
Cette entre permet d'autoriser l'ajout de colonnes aux join index l'aide de la liste des colonnes dans la feuille de proprits du join index. Dans Oracle 9i, un join index avec une liste de colonnes est un bitmap join index.
EnableOwner
Certains SGBD supportent le concept de propritaire de join index. Si vous positionnez cette entre oui, la zone Propritaire s'affiche dans la feuille de proprits du join index.
163
Catgorie Objects
Qualifier
Vous pouvez dfinir des valeurs pour les entres courantes suivantes pour l'objet Qualifier dans la dfinition de SGBD.
Entre Enable SqlListQuery Label Exemple (Oracle 8)
Enable = Yes
Label=All Qualifiers
Pour obtenir une description de chacune des entres communes aux objets, reportez-vous la section Entres communes aux diffrents objets.
Sequence
La catgorie Sequence contient des entres qui dfinissent les paramtres associs aux squences.
164
PowerAMC
Chapitre 1
Entre Options Exemple (Oracle 8)
<initial> : composite=yes { increment by %d start with %d } <maxvalue> : composite=yes { maxvalue %d nomaxvalue } <minvalue> : composite=yes { minvalue %d nominvalue } <cycle> %s : list= cycle | nocycle <cache> : composite=yes { cache %d nocache } <order> %s : list= order | noorder
DefOptions SqlListQuery
{SQNC} SELECT sequence_name FROM user_sequences ORDER BY sequence_name {SQNC ID, OPTIONS ...} select sequence_name, ' increment by ' || increment_by || decode(max_value, 999999999999999999999999999, ' nomaxvalue ', -1 , ' nomaxvalue ' ,' maxvalue ' || max_value ) || decode(min_value, 1, ' nominvalue ', 99999999999999999999999999, ' nominvalue ' , ' minvalue ' || min_value ) || decode(cycle_flag, 'N' , ' nocycle ', ' cycle ') || decode(cache_size, 20, '', 0, ' nocache ', ' cache ' || cache_size) || decode(order_flag, 'N', ' noorder ', 'order') from user_sequences order by 1
SqlAttrQuery
Rename ModifiableAttributes
Liste des attributs tendus qui seront pris en compte dans la bote de dialogue de fusion lors de la synchronisation de base de donnes
165
Catgorie Objects
Entre ReversedStatements Exemple (Oracle 8) Liste des instructions qui vont faire l'objet d'un reverse engineering
Pour obtenir une description de chacune des entres communes aux objets, reportez-vous la section Entres communes aux diffrents objets.
EnableOwner
Permet de dfinir des propritaires de squence.
Valeur Yes Rsultat La liste droulante Propritaire s'affiche dans la feuille de proprits de squence et l'utilisateur peut slectionner un propritaire pour la squence courante La squence ne prend pas en charge le propritaire EnableOwner = YES
No
Exemple
SequenceComment
Instruction permettant d'ajouter un commentaire de squence. Exemple
comment on sequence [%QUALIFIER%]%SQNC% is %.q:COMMENT%
Synonym
La catgorie Synonym contient des entres qui dfinissent les paramtres associs aux synonymes.
166
PowerAMC
Chapitre 1
Entre Drop Exemple (Oracle 9i)
drop [%VISIBILITY% ]synonym [%QUALIFIER%]%SYNONYM% {OWNER, SYNONYM, BASEOWNER, BASEOBJECT} [%ISODBCUSER% ? select %.q:SCHEMA%, t.synonym_name, t.table_owner, t.table_name from sys.user_synonyms t order by t.table_name : select t.owner, t.synonym_name, t.table_owner, t.table_name from sys.all_synonyms t where (1=1) [ and t.synonym_name=%.q:TABLE%] [ and t.owner=%.q:SCHEMA%] order by t.owner, t.synonym_name ]
SqlListQuery
SqlAttrQuery
Pour obtenir une description de chacune des entres communes aux objets, reportez-vous la section Entres communes aux diffrents objets.
Maxlen
Instruction permettant de dfinir la longueur maximum du code pour un objet. Cette valeur est mise en oeuvre dans la vrification de modle et produit une erreur si le nom ou le code dpasse la longueur dfinie. Exemple
MaxLen = 30
EnableAlias
Instruction permettant de dfinir si le type d'alias de synonyme est admis. Exemple Dans DB2 :
EnableAlias = Yes Documentation utilisateur avance
167
Catgorie Objects
DB Package
La catgorie DB Package contient des entres qui dfinissent les paramtres associs aux packages de base de donnes.
Drop
drop package %DBPACKAGE% {{OWNER, DBPACKAGE} [%ISODBCUSER% ? select distinct %.q:SCHEMA%, decode (type, 'PACKAGE', name, '') from sys.user_source where type in ('PACKAGE') order by 2 : select distinct owner, decode (type, 'PACKAGE', name, '') from sys.all_source where type in ('PACKAGE') [ and owner = %.q:SCHEMA%] order by 1, 2 ]
SqlListQuery
168
PowerAMC
Chapitre 1
Entre Exemple (Oracle 9i)
SqlAttrQuery
{OWNER ID, DBPACKAGE ID, TYPE ID, DBPACKAGESPEC ..., DBPACKAGEBODY ...} [%ISODBCUSER% ? SELECT %.q:SCHEMA%, NAME, TYPE, TEXT, NULL, LINE FROM SYS.USER_SOURCE S WHERE TYPE = 'PACKAGE' AND LINE > 1 AND LINE <> (SELECT MAX(S2.LINE) FROM SYS.USER_SOURCE S2 WHERE S2.TYPE = S.TYPE AND S2.NAME = S.NAME) UNION SELECT %.q:SCHEMA%, NAME, TYPE, NULL, TEXT, LINE FROM SYS.USER_SOURCE S WHERE TYPE = 'PACKAGE BODY' AND LINE > 1 AND LINE <> (SELECT MAX(S2.LINE) FROM SYS.USER_SOURCE S2 WHERE S2.TYPE = S.TYPE AND S2.NAME = S.NAME) ORDER BY NAME, TYPE, LINE : SELECT OWNER, NAME, TYPE, TEXT, NULL, LINE FROM SYS.ALL_SOURCE S WHERE TYPE = 'PACKAGE' AND LINE > 1 AND LINE <> (SELECT MAX(S2.LINE) FROM SYS.USER_SOURCE S2 WHERE S2.TYPE = S.TYPE AND S2.NAME = S.NAME) UNION SELECT OWNER, NAME, TYPE, NULL, TEXT, LINE FROM SYS.ALL_SOURCE S WHERE TYPE = 'PACKAGE BODY' AND LINE > 1 AND LINE <> (SELECT MAX(S2.LINE) FROM SYS.ALL_SOURCE S2 WHERE S2.TYPE = S.TYPE AND S2.NAME = S.NAME) ORDER BY OWNER, NAME, TYPE, LINE ]
ModifiableAttributes
Liste des attributs tendus qui seront pris en compte dans la bote de dialogue de fusion lors de la synchronisation de base de donnes Liste des instructions qui vont faire l'objet d'un reverse engineering
ReversedStatements
Pour obtenir une description de chacune des entres communes aux objets, reportez-vous la section Entres communes aux diffrents objets.
169
Catgorie Objects
CreateBody
Template permettant de dfinir le corps du package de base de donnes. Cette instruction est utilise pour l'instruction d'extension AfterCreate. Exemple Dans Oracle 9i :
create [or replace ]package body %DBPACKAGE% as %DBPACKAGEBODY% [begin %DBPACKAGEINIT% ]end [%DBPACKAGE%]
AfterCreate
Instruction d'extension value aprs l'instruction create DB package. Pour plus d'informations sur les instructions d'extension, reportez-vous la section Gnration de script.
DB Package Procedure
La catgorie DB Package Procedure contient des entres qui dfinissent les paramtres associs aux procdures de package.
170
PowerAMC
Chapitre 1
DBProcedureBody
Template permettant de dfinir le corps de la procdure de package dans la page Dfinition de la feuille de proprits de procdure de package. Exemple Dans Oracle 9i :
begin end
ParameterTypes
Types disponibles pour les procdures de package. Exemple Dans Oracle 9i :
in in out out out no copy
DB Package Variable
La catgorie DB Package Variable contient des entres qui dfinissent les paramtres associs aux variables de package.
171
Catgorie Objects
DB Package Type
La catgorie DB Package Type contient des entres qui dfinissent les paramtres associs aux types de package.
DB Package Cursor
La catgorie DB Package Cursor contient des entres qui dfinissent les paramtres associs aux curseur de package.
ParameterTypes
Types disponibles pour le curseur de package. Exemple
in
172
PowerAMC
Chapitre 1
DB Package Exception
La catgorie DB Package Exception contient des entres qui dfinissent les paramtres associs aux exceptions de package.
DB Package Parameter
La catgorie DB Package Parameter contient des entres qui dfinissent des paramtres relatifs aux paramtres du package.
173
Catgorie Objects
DB Package Pragma
La catgorie DB Package Pragma contient qui dfinissent les paramtres relatifs au pragma de package.
174
PowerAMC
Chapitre 1
MaxConstLen
Commande permettant de dfinir la longueur maximale de nom de contrainte prise en charge par la base de donnes cible. Cette valeur est mise en oeuvre dans la vrification de modle et produit une erreur si le code dpasse la valeur dfinie. Le nom de contrainte est galement tronqu au moment de la gnration.
Longueur maximale pour les noms de contrainte :
PowerAMC a une longueur maximale de 254 caractres pour les noms de contrainte. Si votre base de donnes prend en charge des noms de contrainte plus longs, vous devez dfinir les noms de contrainte de sorte qu'ils se conforment la limite de 254 caractres. Exemple
MaxConstLen = 128
EnableOption
Commande permettant d'activer les options physiques pour le modle, les tables, les index, les cls alternatives et autres objets quis ont pris en charge par le SGBD cible. Elle contrle galement la disponibilit de la page Options d'une feuille de proprits d'objet.
Valeur Yes Base de donnes cible Prend en charge les options physiques, par exemple Tablespaces, Storages, ou options physiques telles que pctfree et fillfactor Ne prend pas en charge les options physiques Rsultat La page Options est disponible dans la feuille de proprits de l'objet
No
La page Options n'est pas disponible dans le feuille de proprits de l'objet. Dans la page Base de donnes de la bote de dialogue de gnration, tous les paramtres de gnration sont griss et ne peuvent pas tre slectionns
175
Exemple
EnableOption = YES
176
PowerAMC
Chapitre 1
AmcdDataType
Table de conversion des types de donnes qui montre les correspondances entre les types de donnes internes de PowerAMC et ceux du SGBD. Cette table est utilise pendant la gnration d'un MCD vers un MPD ainsi que lorsque vous changez de SGBD courant. Les variables suivantes sont utilises pour qualifier les types de donnes :
Variable %n %s %p Indique Longueur du type de donnes Taille du type de donnes Prcision du type de donnes
En utilisant les variables dfinies pour qualifier la correspondance, PowerAMC cre une interface de fait entre ses types de donnes natifs et ceux du SGBD choisi. Exemple Dans Sybase Adaptive Server Enterprise 12 :
Type de donnes ASE 12 A%n VA%n LA%n BT Type de donnes PowerAMC char(%n) varchar(%n) varchar(%n) tinyint
177
PhysDataType
Table de conversion des types de donnes qui montre les correspondances entre les types de donnes du SGBD et ceux de PowerAMC. Cette table est utilise pendant la gnration d'un MPD vers un MCD ainsi que lorsque vous changez de SGBD courant (utilisation des types de donnes internes de PowerAMC pour trouver un correspondance entre deux types de donnes de fichier de dfinition de SGBD). Les variables suivantes sont utilises pour qualifier les types de donnes :
Variable %n %s %p Indique Longueur du type de donnes Taille du type de donnes Prcision du type de donnes
En utilisant les variables dfinies pour qualifier la correspondance, PowerAMC cre une interface de fait entre ses types de donnes natifs et ceux du SGBD choisi. Exemple Dans Sybase Adaptive Server Enterprise 12 :
Type de donnes PowerAMC sysname integer Type de donnes ASE 12 VA30 I
PhysDttpSize
Tableau des tailles de stockage pour les types de donnes de SGBD. La taille de stockage approprie est affecte chaque type de donnes pour le SGBD slectionn. Exemple Dans Sybase Adaptive Server Enterprise 12.5 :
Type de donnes ASA 6 smallmoney smalldatetime datetime timestamp Taille de Storage 8 4 8 8
178
PowerAMC
Chapitre 1
OdbcPhysDataType
Table de conversion des types de donnes qui montre les correspondances entre les types de donnes ODBC et ceux du SGBD. Cette table est utilise lors du reverse engineering via ODBC pour mettre en correspondance les types de donnes extraits de la base de donnes et les types de donnes de SGBD. Bien que les types de donnes soient des concepts identiques dans la base de donnes et le SGBD, la faon dont ces types de donnes sont stocks dans la base de donnes diffre de la notation dans le SGBD. Par exemple, vous pouvez crer une colonne avec le type de donnes decimal dans la base de donnes. Le type de donnes decimal est stock sous la forme decimal(30,6) dans Sybase Adaptive Server Anywhere 6. Cette prcision (30,6) n'apparaissait pas dans votre commande create, et n'est pas requis lorsque vous utilisez les types de donnes de SGBD, "decimal" suffit. Lorsque vous procdez au reverse engineering de la base de donnes, le processus extrait des types de donnes tels qu'ils sont stocks dans la base de donnes, i.e. decimal(30,6). A ce stade, PowerAMC va utiliser la table de conversion pour mettre en correspondance les types de donnes ODBC (decimal(30,6)) avec la notation prfre du type de donnes SGBD (decimal). Exemple Dans Sybase Adaptive Server Anywhere 6 :
Type de donnes ODBC numeric(30,6) char(1) binary(1) decimal(30,6) Type de donnes ASA 6 numeric char binary decimal
179
PhysOdbcDataType
Table de conversion des types de donnes de la base de donnes cible vers les types de donnes ODBC. Exemple Dans MS Access 95/97 :
Physique Integer LongInteger OLE Type de donnes ODBC Short Long LongBinary
PhysLogADTType
Table de conversion des types de donnes abstraits cible vers les types de donnes abstraits internes. Vous ne devez pas modifier ces valeurs. Exemple Dans Sybase Adaptive Server Anywhere 6 :
Type de donnes physique de base de donnes Java Type de donnes PowerAMC Java
LogPhysADTType
Table de conversion des types de donnes abstraits internes vers les types de donnes abstraits cible. Vous ne devez pas modifier ces valeurs. Exemple Dans Sybase Adaptive Server Anywhere 6 :
Type de donnes internes PowerAMC Undefined Undefined Java Undefined Undefined Type de donnes physiques de base de donnes Array List Java Object Structured
180
PowerAMC
Chapitre 1
AllowedADT
Liste des types de donnes abstraits qui peuvent tre utiliss comme types de donnes pour les domaines et les colonnes. Exemple Dans Sybase Adaptive Server Anywhere 6 :
JAVA
HostDataType
Conversion des types de donnes de base de donnes vers les types de donnes de procdure. Exemple Dans Oracle8 :
Type de donnes internes PowerAMC Number Number Number Float Integer Integer Varchar Varchar Type de donnes physique de base de donnes DEC REAL DOUBLE PRECISION FLOAT INT INTEGER VARCHAR(%n) VARCHAR2(%n)
181
Variables de MPD
Variables de MPD
Vous pouvez incorporer des variables dans les requtes SQL du SGBD slectionn. Ces variables sont remplaces par les valeurs de votre modle lors de la gnration du script.
Variables pour la gnration de base de donnes, ainsi que celle des triggers et procedures
Nom de la variable DATE USER PATHSCRIPT NAMESCRIPT STARTCMD ISUPPER ISLOWER DBMSNAME DATABASE USE_SP_PKEY USE_SP_FKEY Commentaire Date et heure de gnration Nom de login de l'utilisateur excutant la gnration Emplacement pour la gnration du fichier script Nom du fichier script dans lequel les commandes SQL doivent tre crites Description des modalits d'excution du script gnr TRUE si l'option de gnration Majuscules est slectionne TRUE si l'option de gnration Minuscules est slectionne Nom du SGBD associ au modle gnr Code de la base de donnes associe au modle gnr Utilise la cl primaire de la procdure stocke pour crer des cls primaires (spcifique SQL Server) Utilise la cl trangre de procdure stocke pour crer des cls primaires (spcifique SQL Server)
182
PowerAMC
Chapitre 1
SIZE
183
Variables de MPD
184
PowerAMC
Chapitre 1
185
Variables de MPD
Nom de la variable CONSTNAME CONSTRAINT CONSTDEFN RULES NAMEISCODE
Commentaire Nom de contrainte de l'objet Corps de la contrainte SQL de l'objet. Ex : (A <= 0) AND (A >= 10) Dfinition de contrainte de colonne. Ex : contraint C1 checks (A>=0) AND (A<=10) Concatnation d'expression serveur des rgles de gestion associe l'objet True si le nom et le code de l'objet (table, colonne, index) sont identiques (spcifique AS/400)
186
PowerAMC
Chapitre 1
187
Variables de MPD
188
PowerAMC
Chapitre 1
189
Variables de MPD
190
PowerAMC
Chapitre 1
Nom de la variable CLUSTER INDXDEF Commentaire
Contient le mot cl "cluster" lorsque l'index est de type cluster Liste des colonnes d'index sans sparateur, sur diffrentes lignes. Exemple : ColnA ColnB ColnC
191
Variables de MPD
Nom de la variable PCODE PQUALIFIER CHILD CNAME CCODE CQUALIFIER REFRNAME REFRCODE FKCONSTRAINT PKCONSTRAINT CKEYCOLUMNS FKEYCOLUMNS UPDCONST
Commentaire Code de la table parent Qualifiant de la table parent. Voir aussi QUALIFIER. Code gnr pour la table enfant Nom de la table enfant Code de la table enfant Qualifiant de la table enfant. Voir aussi QUALIFIER. Nom de rfrence Code de rfrence Nom de contrainte de cl trangre (rfrence) Nom de contrainte de cl primaire utilise pour faire rfrence un objet Liste des colonnes de cl parent. Ex : C1, C2, C3 Liste des colonnes de cl trangre. Ex : C1, C2, C3 Contient des mots cls de contrainte dclarative pour les modifications : "restrict", "cascade", "set null" ou "set default" Contient des mots cls de contrainte dclarative pour les suppressions : "restrict", "cascade", "set null" ou "set default" Cardinalit minimale Cardinalit maximale Nom du propritaire de la table parent Nom du propritaire de la table enfant TRUE si vous avez coch la case "check on commit" pour la rfrence (spcifique ASA 6.0) Numro de rfrence dans la collection de rfrence de la table enfant Jointures de rfrence
DELCONST
192
PowerAMC
Chapitre 1
193
Variables de MPD
194
PowerAMC
Chapitre 1
Nom de la variable MSGTXT SCRIPT TRGBODY TRGDESC TRGDEFN
Commentaire Code de la colonne contenant des numros d'erreur dans un tableau d'erreurs dfini par l'utilisateur Script SQL du trigger ou de la procdure Corps du trigger (uniquement pour le reverse engineering ODBC de Oracle) Description du trigger (uniquement pour le reverse engineering ODBC de Oracle) Dfinition de trigger
FUNC
195
Variables de MPD
196
PowerAMC
C H A P I T R E
Sujet Sommaire
197
Il est recommand de bien connatre la structure et la philosophie du mtamodle afin de pouvoir faire une utilisation optimale des profils PowerAMC.
Chapitre 2
Pour plus d'informations sur ebXML, reportez-vous au manuel Guide de l'utilisateur du Modle de Processus Mtiers. Niveaux d'extension Le mcanisme d'extension peut tre mis en oeuvre diffrents niveaux :
Au niveau mtaclasse
Lorsque vous dfinissez une extension dans une mtaclasse, cette extension s'applique toutes les instances de la mtaclasse slectionne. L'extension est globale
Au niveau instance
Si vous dfinissez une extension dans un strotype ou dans un critre, cette extension s'applique aux instances ayant le strotype appropri ou qui vrifient la condition du critre. L'extension est dfinie sur une base de niveau instance Les extensions de profil prennent en charge l'hritage pour permettre de rutiliser les extensions entre les mtaclasses d'un parent commun. Les extensions communes doivent tre dfinies sur des mtaclasses abstraites pour que la mtaclasse concrte hrite d'elles.
Hritage
Extensions disponibles
Selon le niveau auquel vous dfinissez les extensions, diffrents lments sont disponibles. Vous pouvez attacher plusieurs fichiers de ressource un modle, il s'agit alors de plusieurs dfinitions tendues de modle ainsi que du langage objet ou de SGBD du modle. Les extensions dfinies dans chaque fichier de ressource s'affichent dans des pages distinctes pour indiquer leur origine.
199
Notions de base relatives au concept de profil Par exemple, dans un MPD, les attributs tendus peuvent tre dfinis pour une table dans le SGBD ainsi que dans les dfinitions tendues de modle attaches au modle, ils sont affichs sur diffrents onglets dans la page Attributs tendus de la feuille de proprits de table.
Conflit d'extensions
Un conflit se produit lorsque les extensions ayant des noms identiques sont dfinies sur les mmes mtaclasses dans diffrents fichiers de ressources attachs au mme modle. Par exemple, le strotype <<document>> est dfini pour les composants dans deux dfinitions tendues de modle attaches au mme MOO. Dans chaque dfinition tendue de modle, le strotype <<document>> a un symbole personnalis diffrent. Un conflit se produit ds lors que vous crez un composant et lui affectez le strotype <<document>> : PowerAMC va slectionner de faon alatoire l'un des symboles. En cas de conflit entre SGBD ou langage objet et dfinition tendue de modle, c'est le plus souvent la dfinition tendue de modle qui prvaut.
200
PowerAMC
Chapitre 2
Extensions de mtaclasse
Les extensions dfinies sur une mtaclasse s'appliquent toutes les instances de la mtaclasse. Vous pouvez tendre les smantiques d'une mtaclasse l'aide des lments suivants : Strotypes : ils sont utiliss pour sous-classifier les instances d'une mtaclasse Attributs tendus : ils sont utiliss pour enrichir la dfinition d'une mtaclasse ainsi que pour contrler la gnration Symbole personnalis et outil personnalis : ils permettent aux utilisateurs de mieux identifier la mtaclasse Vrifications personnalises : elles sont utilises pour affiner la vrification de la mtaclasse dans votre modle Fichiers gnrs et templates : ils sont utiliss pour personnaliser la gnration pour la mtaclasse Critres : ils sont utiliss pour valuer des conditions sur une mtaclasse Collections tendues : elles sont utilises pour ajouter des collections des mtaclasses Mthodes : elles peuvent tre dfinies sur une mtaclasse Transformations : elles sont utilises pendant la gnration de modle ou directement appliques dans le modle Gestionnaires d'vnement : ils sont dclenchs lorsque certains vnements se produisent sur un objet Menus : ils permettent d'appeler des mthodes pour une instance de mtaclasse
Strotype et critre
Les extensions dfinies pour un strotype ou pour un critre s'appliquent aux instances de mtaclasse ayant le strotype ou vrifiant la condition du critre. Vous pouvez dfinir les extensions suivantes dans un strotype ou dans un critre : Attributs tendus : ils sont utiliss pour enrichir la dfinition de l'instance de mtaclasse ainsi que pour contrler la gnration Symbole personnalis et outil personnalis (l'outil personnalis n'est disponible que pour les strotypes) : ils permettent aux utilisateurs d'identifier plus facilement l'instance de mtaclasse Vrifications personnalises : elles sont utilises pour affiner la vrification de l'instance de mtaclasse dans votre modle 201
Notions de base relatives au concept de profil Fichiers gnrs et templates : ils sont utiliss pour personnaliser la gnration pour la mtaclasse Collections tendues (uniquement disponibles pour les strotypes) : elles sont utilises pour ajouter des collections des mtaclasses Mthodes : elles peuvent tre dfinies sur une mtaclasse Transformations : elles sont utilises pendant la gnration de modle ou directement appliques dans le modle Gestionnaires d'vnement (uniquement disponibles pour les strotypes) : ils sont dclenchs lorsque certains vnements se produisent sur un objet Menus : ils permettent d'appeler des mthodes pour une instance de mtaclasse
202
PowerAMC
Chapitre 2
Lorsque vous slectionnez une convention de dnomination de code, le script de conversion s'affiche comme un paramtre dans la page de script de la bote de dialogue des options de modle ds que vous crez un nouveau modle ou modifiez la cible du modle courant. Pour plus d'informations sur les scripts de conversion et les conventions de dnomination, reportez-vous la section Macros .convert_name & .convert_code, dans le chapitre Gestion des modles dans le Guide des fonctionnalits gnrales. Activer la slection pour la gnration de fichiers Lorsque vous ajoutez une mtaclasse dans un profil, vous pouvez cocher la case Activer la slection pour la gnration de fichiers afin de faire apparatre les instances de mtaclasse dans la page Slection de la bote de dialogue de gnration tendue. Si une mtaclasse parent est slectionne pour la gnration de fichier, les mtaclasses enfant sont galement affiches dans la page Slection.
Pour ajouter une mtaclasse dans un profil :
Pointez sur la catgorie Profile et cliquez le bouton droit de la souris, puis slectionnez Ajouter des mtaclasses dans le menu contextuel. La bote de dialogue Slection de mtaclasses s'affiche.
Cliquez sur l'onglet appropri pour afficher la page contenant la mtaclasse que vous souhaitez slectionner. Vous pouvez utiliser l'outil de filtrage pour afficher les mtaclasses que vous souhaitez ajouter au profil.
203
Cliquez sur OK. La catgorie correspondant aux mtaclasses slectionnes s'affiche sous la catgorie Profile. Le nom et le parent de la mtaclasse ne peuvent pas tre modifis.
5 6 204
<facultatif> Cochez ou dcocher la case Activer la slection pour la gnration de fichiers. <facultatif> Saisissez un commentaire dans la zone Commentaire.
PowerAMC
Chapitre 2
Si la mtaclasse parent ne s'affiche pas sous Profile, lorsque vous cliquez sur l'outil Proprits en regard de la mtaclasse Parent, un message s'affiche pour vous permettre d'insrer automatiquement le noeud de la mtaclasse sous Profile
Lorsque plusieurs dfinitions tendues de modle et fichiers de ressources sont dfinis dans un modle, la mtaclasse est exclue si l'un au moins des fichiers de ressources exclut cette mtaclasse et qu'aucun autre fichier de ressources ne l'active de faon explicite. Si un modle contient dj des instances de cette mtaclasse, les objets sont conservs mais il est impossible d'en crer de nouveaux. Documentation utilisateur avance 205
Proprits de strotype
Lorsque vous dfinissez un strotype, vous devez dfinir les proprits suivantes :
Proprit Nom Parent Description Nom du strotype tel qui s'affichera dans la liste droulante Strotype de la feuille de proprits de l'objet Nom du parent du strotype courant. Vous pouvez utiliser la liste droulante pour slectionner un strotype dfini dans la mme mtaclasse ou dans une mtaclasse parent. Vous pouvez utiliser le bouton Proprits pour slectionner le strotype parent dans l'arborescence et afficher ses proprits
206
PowerAMC
Chapitre 2
Proprit Abstrait Description
Le strotype ne peut pas tre appliqu aux instances de mtaclasse, ce strotype ne s'affiche pas dans la liste droulante Strotype de la feuille de proprits de l'objet, et ne peut tre utilis que comme parent d'autres strotypes enfant. Lorsque vous slectionnez cette proprit, la case cocher Utiliser comme mtaclasse n'est pas disponible Le strotype devient une sous-classification des instances de la mtaclasse slectionne. Les instances de mme strotype seront regroupes dans la catgorie de la mtaclasse au niveau de l'Explorateur ou de la bote de dialogue de fusion. Cette option permet galement de crer un sous-espace de nom de faon avoir dans la mme mtaclasse des instances de mme nom mais avec diffrents strotypes utiliss comme mtaclasse Si vous cochez cette case, vous pouvez associer un outil dans une palette au strotype courant. Cette option est disponible pour les objets qui prennent en charge des symboles, et n'est pas disponible pour des objets comme les attributs, par exemple Informations supplmentaires relatives au strotype
Pour plus d'informations sur l'affectation d'un outil personnalis un strotype, reportez-vous la section Affectation d'un outil un strotype.
Pointez sur une mtaclasse, cliquez le bouton droit de la souris et slectionnez NouveauStrotype dans le menu contextuel. Un nouveau strotype est cr avec un nom par dfaut.
2 3 4
Saisissez un nom de strotype dans la zone Nom. <facultatif> Slectionnez un strotype parent dans la liste droulante Parent. <facultatif> Slectionnez la case Utiliser comme mtaclasse si vous souhaitez crer une sous-classification l'intrieur de la mtaclasse courante.
207
Dfinition d'un strotype 5 6 7 <facultatif> Dfinissez une icne pour le strotype l'aide de l'outil Rechercher le fichier d'icne et de curseur de l'outil. <facultatif> Cochez la case Outil personnalis dans la palette pour associer un outil au strotype, puis slectionnez l'apparence de l'outil. <facultatif> Saisissez un nom par dfaut dans la zone Nom par dfaut si vous souhaitez crer un template de nom portant le strotype courant.
Une fois que vous avez cr le strotype, vous pouvez dfinir des extensions telles qu'un outil personnalis, ou bien des vrifications personnalises pour le strotype. Ces extensions seront appliques aux instances de mtaclasse avec le strotype.
208
PowerAMC
Chapitre 2
Pointez sur une mtaclasse, cliquez le bouton droit de la souris, puis slectionnez NouveauStrotype dans le menu contextuel. Un nouveau strotype est cr avec un nom par dfaut.
2 3 4
Saisissez un nom d et un parent dans les champs correspondants. Slectionnez la case Utiliser comme mtaclasse. Cliquez sur Appliquer.
209
Dans la page de proprits du strotype, cliquez sur l'outil Rechercher le fichier d'icne et de curseur de l'outil pour afficher une bote de dialogue standard d'ouverture de fichier dans laquelle vous pouvez slectionner un fichier ayant le suffixe .cur ou .ico..
Dans la page feuille de proprits d'un strotype, cochez la case Outil personnalis dans la palette pour activer les champs situs dans la partie infrieure de la bote de dialogue.
PowerAMC
210
Chapitre 2 2
<facultatif> Slectionnez une icne pour modifier l'outil par dfaut. Vous pouvez cliquer dans la zone de test pour vrifier l'aspect du curseur.
211
Dfinition d'un strotype Vous pouvez utiliser la syntaxe %d pour dfinir la position du compteur dans le nom par dfaut. Par exemple, vous pouvez dfinir %d_boundary comme nom par dfaut pour les objets <<boundary>>. Dans ce cas, le compteur s'affiche avant le nom de l'objet et le troisime objet boundary cr dans le diagramme sera nomm 3_boundary:
212
PowerAMC
Chapitre 2
DimensionalType est un attribut de l'objet BaseTable. Il dispose d'un jeu de valeurs dfinies parmi lesquelles 1 correspond aux types dimensionnels de fait. Vous pouvez afficher cet attribut dans la section Table de la bibliothque PdPDM situe dans l'aide des objets de script PowerAMC (pdvbs10.chm). Vous dfinissez ensuite un symbole personnalis pour ce critre. Pour plus d'informations sur les symboles personnaliss, reportez-vous la section Dfinition d'un symbole personnalis dans un profil.
Pour dfinir un critre :
Pointez sur une mtaclasse, cliquez le bouton droit de la souris, puis slectionnez NouveauCritre dans le menu contextuel. Un nouveau critre est cr avec un nom par dfaut.
2 3
Modifiez le nom par dfaut dans la zone Nom. Saisissez une condition dans la zone Condition. 213
Dfinition d'un critre Dans la syntaxe du critre, vous pouvez utiliser n'importe quelle expression valide utilise par la macro .if, mais vous ne devez pas saisir la macro elle-mme. Pour plus d'informations sur la macro .if, voir la section Utilisation des macros , reportez-vous la section Guide de rfrence de la gnration. 4 <facultatif> Saisissez un commentaire dans la zone Commentaire.
Cliquez sur OK. Pour pouvez dfinir des extensions pour le nouveau critre.
214
PowerAMC
Chapitre 2
Pour plus d'informations sur la bote de dialogue Format de symbole, reportez-vous la section Modification de l'apparence d'un symbole dans le chapitre Manipulations graphiques du manuel Guide des fonctionnalits gnrales. Documentation utilisateur avance 215
Pointez sur une mtaclasse dans la catgorie Profile et cliquez sur le bouton droit de la souris, puis slectionnez NouveauSymbole personnalis. ou Pointez sur un strotype ou un critre dans une mtaclasse, puis slectionnez NouveauSymbole personnalis. Un nouveau symbole est cr sous la catgorie slectionne.
2 3
<facultatif> Saisissez un commentaire dans la zone Commentaire. Dfinissez une taille par dfaut dans la zone de groupe Taille par dfaut.
216
PowerAMC
Chapitre 2 4
Cliquez sur le bouton Modifier pour afficher la bote de dialogue Format de symbole.
5 6
Modifiez le format du symbole dans les diffrents pages de la bote de dialogue Format de symbole. Cliquez sur OK.
217
Les attributs tendus ont un type utilis pour dfinir leur type de donnes et les valeurs autorises.
Pointez sur la catgorie Profile\Shared, cliquez le bouton droit de la souris, puis slectionnez NouveauType d'attribut tendu dans le menu contextuel. Un nouveau type d'attribut tendu est cr sous la catgorie Profile\Shared\Extended Attribute Types.
218
PowerAMC
Chapitre 2 2
Slectionnez le type d'attribut tendu et saisissez un nom, un commentaire, une liste de valeurs et une valeur par dfaut dans les zones appropries dans le volet droit de l'diteur.
Les attributs tendus dfinis dans la mtaclasse parent sont hrits par les mtaclasses enfant. Il s'affichent dans l'onglet Attributs tendus d'une feuille de proprits d'objet. Les attributs tendus sont utiliss de la faon suivante lors de la gnration :
Si la case Template est coche
L'attribut tendu est considr comme un template de GTL et son code est remplac par les valeurs du modle lors de la gnration. Par exemple, l'attribut tendu roleBContainer contient le template %Code%, il sera gnr sous la forme "Customer".
219
L'attribut tendu est considr comme du texte lors de la gnration. Par exemple, l'attribut tendu roleBContainer contient le template %Code%, il sera gnr sous la forme %Code%.
Pointez sur une mtaclasse dans la catgorie Profile et cliquez sur le bouton droit de la souris, puis slectionnez NouveauAttribut tendu. ou Pointez sur un strotype ou un critre dans une mtaclasse, puis slectionnez NouveauAttribut tendu. Un nouvel attribut tendu est cr sous la catgorie slectionne.
Slectionnez le nouvel attribut tendu et saisissez un nom, un commentaire, un type de donnes et une valeur par dfaut dans les zones appropries dans le volet droit de l'diteur.
220
PowerAMC
Chapitre 2
Celleci s'applique toutes les instances de la mtaclasse slectionne. Les vrifications personnalises dfinies sur une mtaclasse abstraite s'affichent dans toutes ses catgories enfant dans la bote de dialogue Paramtres de vrification de modle. Par exemple, si vous dfinissez une vrification sur la mtaclasse Classifier, cette vrification s'affiche dans les catgories Classe et Interface.
Lorsque vous dfinissez une vrification sur un strotype ou un critre Vous liez la vrification personnalise un strotype ou une
condition de critre particulire : si l'objet a le strotype appropri ou remplit la condition, PowerAMC va appeler la vrification personnalise lors du processus de vrification du modle. Plusieurs vrifications personnalises peuvent tre ajoutes une mtaclasse donne, elles vont toutes s'afficher dans la bote de dialogue Paramtres de vrification de modle dans laquelle vous pouvez modifier les paramtres relatifs au degr de gravit ou la correction automatique.
221
Excuter la vrification par dfaut Excuter la correction automatique Excuter la correction automatique par dfaut
La page Script de vrification permet de dfinir le corps de la fonction de vrification personnalise. La page Script de correction automatique permet de dfinir le corps de la fonction de correction automatique. La page Script global permet de partager les fonctions de bibliothque et les attributs statiques dans le fichier de ressources.
222
PowerAMC
Chapitre 2
Exemple
Dans Sybase AS IQ, vous devez crer des vrifications supplmentaires sur les index afin de vrifier leurs colonnes. La vrification personnalise que vous allez crer vrifie si les index de type HG, HNG, CMP ou LF sont lis aux colonnes ayant comme type de donnes VARCHAR et si la longueur est suprieure 255.
Pour dfinir le script d'une vrification personnalise :
Pointez sur une mtaclasse dans la catgorie Profile et cliquez sur le bouton droit de la souris, puis slectionnez NouveauVrification personnalise. ou Pointez sur un strotype ou un critre dans une mtaclasse, puis slectionnez NouveauVrification personnalise. Une nouvelle vrification personnalise est cre sous la catgorie slectionne.
Cliquez sur l'onglet Script de vrification dans la feuille de proprits de la vrification personnalise pour afficher l'diteur de script. Par dfaut, la fonction est dclare au dbut du script. Vous ne devez pas modifier cette ligne.
3 4
Saisissez un commentaire aprs la dclaration de la fonction afin de documenter la vrification personnalise. Dclarez les diffrentes variables utilises dans le script.
Dim Dim Dim Dim c 'temporary index column col 'temporary column position DT_col
223
224
PowerAMC
Chapitre 2
Nous allons reprendre l'exemple de la section Dfinition du script d'une vrification personnalise afin de dfinir un script de correction automatique qui supprime de l'index les colonnes ayant un type de donnes incorrect.
Pour dfinir le script d'une correction automatique :
Cliquez sur l'onglet Script de correction automatique dans la feuille de proprits de vrification personnalise. Par dfaut, la fonction est dclare au dbut du script. Vous ne devez pas modifier cette ligne.
2 3
Saisissez un commentaire aprs la dclaration de la fonction afin de documenter la vrification personnalise. Dclarez les diffrentes variables utilises dans le script.
Dim Dim Dim Dim c 'temporary index column col 'temporary column position DT_col
225
226
PowerAMC
Chapitre 2
Dans ce cas, cette fonction a seulement besoin d'tre rfrence dans les scripts de vrification et de correction automatique :
Function %Check%(obj) Dim c 'temporary index column Dim col 'temporary column Dim position %Check%= True If obj.type = "LF" or obj.type = "HG" or obj.type = "CMP" or obj.type ="HNG" then For Each c In obj.IndexColumns Set col = c.column If (DataTypeBase(col.datatype) = "VARCHAR") And (col.length > 255) Then Output "Table " & col.parent.name & " Column " & col.name & " : Data type is not compatible with Index " & obj.name & " type " & obj.type %Check% = False End If Next End If End Function
Variables globales
Vous pouvez galement dclarer des variables globales dans le script global. Ces variables sont rinitialises chaque fois que vous excutez la vrification personnalise.
227
Dpannage d'erreurs VB
Les scripts que vous avez dfinis sont excuts lors de la vrification du modle. Si des erreurs sont dtectes lors de la vrification personnalise, la correction automatique ou le script global, une bote de message s'affiche et vous propose les actions suivantes :
Bouton Ignorer Ignorer tout Annuler Dboguer Action Permet de sauter le script problmatique et de reprendre la vrification Permet de sauter tous les scripts problmatiques et de reprendre le processus avec les vrifications standard Arrte la vrification du modle Arrte la vrification du modle, ouvre l'diteur de ressources et indique sur quelle ligne se trouve le problme. Vous pouvez corriger les erreurs et redmarrer la vrification du modle
228
PowerAMC
Chapitre 2
Dfinition de templates et de fichiers gnrs dans un profil Vous utilisez le GTL pour dfinir un template. Les templates sont utiliss dans les fichiers gnrs : lors de la gnration, chaque template est valu et remplac par sa valeur dans le fichier gnr. Pour plus d'informations sur la syntaxe du GTL, reportez-vous au chapitre Guide de rfrence de la gnration. Les templates peuvent tre crs dans la catgorie Shared lorsque vous les appliquez toutes les mtaclasses. Ils peuvent galement tre crs au niveau de la mtaclasse ou pour un strotype ou critre donn. Nouvelle syntaxe Dans les version prcdentes de PowerAMC, vous pouviez lier l'utilisation d'un template particulier l'existence d'un strotype l'aide de la syntaxe suivante :
template name <<strotype>>
Dans la version courant de PowerAMC, vous pouvez crer un template dans un strotype particulier afin de vous assurer que ce template est utilis uniquement pour les instances de mtaclasse avec le strotype. Outil Parcourir (F12) Vous pouvez utiliser l'outil Parcourir pour trouver tous les templates portant le mme nom. Pour ce faire, ouvrez un template, placez le curseur sur un nom de template (entre les caractres %) et cliquez sur Parcourir (ou appuyez sur F12). Vous affichez ainsi une fentre Rsultats qui rpertorie tous les templates prfixs par le nom de leur mtaclasse. Vous pouvez doublecliquer sur un template dans la fentre Rsultats pour localiser sa dfinition dans l'diteur de ressources.
Pour crer un template :
Pointez sur une mtaclasse dans la catgorie Profile et cliquez sur le bouton droit de la souris, puis slectionnez NouveauTemplate. ou Pointez sur un strotype ou un critre dans une mtaclasse, puis slectionnez NouveauTemplate. Un nouveau template est cr sous la catgorie correspondante.
2 3 4
Saisissez un nom explicite dans la zone Nom. Il est dconseill d'utiliser des espaces dans les noms de template. <facultatif, mais trs utile> Saisissez un commentaire dans la zone Commentaire afin d'expliquer le rle du template. Saisissez le corps du template l'aide du GTL dans la zone centrale.
230
PowerAMC
Chapitre 2
231
Commentaire Utiliser la hirarchie des packages comme chemin d'accs Template du fichier gnr (zone de texte)
Coloration syntaxique
Si la zone Nom de fichier est vide, aucun fichier n'est gnr. Toutefois, il peut s'avrer utile car il permet d'afficher un aperu du contenu du fichier avant la gnration. Vous pouvez utiliser la page Aperu de l'objet correspondant tout moment pour ce faire. Si la zone Nom de fichier contient un caractre '.' (point), aucun fichier n'est gnr, mais vous pouvez utiliser la page Aperu, comme indiqu ci-avant, en tirant profit de la coloration syntaxique. Vous pouvez ajouter des suffixes aprs le point afin d'utiliser l'diteur de votre choix (par exemple : .dtd pour XML).
Pour dfinir un fichier gnr :
Pointez sur une mtaclasse dans la catgorie Profile et cliquez sur le bouton droit de la souris, puis slectionnez NouveauFichier gnr. ou Pointez sur un strotype ou un critre dans une mtaclasse, puis slectionnez NouveauFichier gnr. Une nouvelle entre de fichier est cre sous la catgorie slectionne.
2 3
Saisissez un nom dans la zone Nom. Saisissez le template du nom pour le fichier gnrer dans la zone Nom de fichier.
PowerAMC
232
<facultatif, mais trs utile> Saisissez un commentaire dans la zone Commentaire afin de dcrire le contenu du fichier gnr. Cochez la case Utiliser la hirarchie des packages comme chemin d'accs si vous souhaitez conserver la hirarchie de packages. Saisissez la dfinition du fichier gnr dans la zone de texte.
233
234
PowerAMC
Chapitre 2
Proprit Nom inverse Description
Nom de la mtaclasse parent qui va s'afficher dans la page Dpendances de la mtaclasse cible. Si vous ne saisissez pas de valeur dans cette zone, un nom inverse est automatiquement cr et affich dans la page Dpendances Dfinit la mtaclasse associe la mtaclasse ou au strotype courant. La liste droulante permet de slectionner le type d'objet qui peut tre stock dans la collection (dans notre exemple, vous slectionnez FileObject). La liste droulante affiche uniquement les mtaclasses qui peuvent tre instancies dans un modle ou un package comme des classes ou des tables. Vous ne pouvez pas slectionner des sous-objets tels que les attributs de classe ou des colonnes de table. Assurez-vous de slectionner un type de cible, faute de quoi la dfinition de la collection tendue est ignore Filtre supplmentaire dfini sur la collection tendue. Cette zone rpertorie tous les strotypes dfinis dans le profil courant pour le type de cible slectionn. Vous pouvez galement saisir un nouveau strotype dans cette zone
Type de cible
Strotype cible
Lorsque vous crez une collection tendue sur un strotype, la liste d'objets correspondante s'affiche uniquement si l'instance de la mtaclasse parent a le strotype appropri. Si vous changez le strotype, la liste disparat. Lorsque vous ouvrez un modle contenant des collections tendues avec un fichier de ressources qui ne prend pas en charge les collections tendues, les collections tendues restent visibles dans les diffrentes feuilles de proprits. Ceci vous permet de supprimer des objets dans les collections qui ne sont plus prises en charge.
Si vous copiez et collez un objet avec des collections tendues Les objets associs ne sont pas copis. Si vous dplacez un objet avec des collections tendues
Le lien avec les objets associs est conserv (si ncessaire l'aide d'un raccourci).
Pointez sur un noeud de mtaclasse ou de strotype, cliquez le bouton droit de la souris, puis slectionnez NouveauCollection tendue. Une collection tendue est cre.
235
Dfinition d'une collection tendue dans un profil 2 3 4 5 Saisissez un nom et un code. <facultatif>> Saisissez un nom inverse dans la zone Nom inverse. Slectionnez une mtaclasse dans la zone Type de cible. <facultatif>> Slectionnez ou saisissez un strotype pour la mtaclasse cible dans la zone Strotype cible.
236
PowerAMC
Chapitre 2
La page Script de mthode permet de dfinir le corps de la fonction de mthode. La page Script global permet de partager les fonctions de bibliothques et attributs statiques dans le fichier de ressource.
237
Dfinition d'une mthode dans un profil Vous pouvez galement utiliser la page Script global pour dclarer des variables globales. Dans ce cas, n'oubliez pas que les variables globales ne sont pas rinitialises chaque fois que la mthode est excute. Elles conservent leurs valeur jusqu' ce que vous modifiez le fichier de ressources, ou jusqu' la fin de la session PowerAMC. Ce comportement peut tre la source d'erreurs, tout particulirement lorsque des variables font rfrence des objets qui peuvent tre modifis, voire supprims. N'oubliez pas d'initialiser la variable globale au dbut d'une mthode si vous ne souhaitez pas conserver la valeur de l'excution prcdente. Pour plus d'informations sur la dfinition d'un script et l'utilisation de la page Script global, reportez-vous aux sections Dfinition du script d'une vrification personnalise et Utilisation du script global. Les mthodes peuvent tre utilises comme commandes dans des menus dfinis par l'utilisateur. Il est donc important de crer des mthodes avant de crer des menus. Pour plus d'informations sur les menus, reportez-vous la section Dfinition de menus dans un profil.
238
PowerAMC
Chapitre 2
Par exemple, vous pouvez crer une mthode pour une classe qui convertit des classes en interfaces. Le script suivant copie les proprits de base et oprations de classe, supprime la classe pour viter tout problme d'espace de nom et cre la nouvelle interface. Notez que le script ne gre par les autres proprits de classe, ni l'affichage de l'interface.
Sub %Mthd%(obj) ' Convertit la class en interface ' Copie les proprits de base de la classe Dim Folder, Intf, ClassName, ClassCode Set Folder = obj.Parent Set Intf = Folder.Interfaces.CreateNew ClassName = obj.Name ClassCode = obj.Code Intf.Comment = obj.Comment ' Copie les oprations de la classe Dim Op For Each Op In obj.Operations ' ... Output Op.Name Next ' Dtruit la classe obj.Delete ' Renomme l'interface Intf.Name = ClassName Intf.Code = ClassCode End Sub
Pointez sur le noeud d'une mtaclasse, d'un strotype ou d'un critre, cliquez le bouton droit de la souris, puis slectionnez NouveauMthode. Une mthode est cre.
2 3 4
Saisissez un nom dans la zone Nom. <facultatif>> Saisissez un commentaire dans la zone Commentaire. Saisissez le script dans la page Script de mthode.
239
Dfinition d'une mthode dans un profil 5 <facultatif>> Rutilisez les fonctions stockes dans la page Script global.
240
PowerAMC
Chapitre 2
ou
D'un moyen de modifier un objet tout en conservant la possibilit de revenir sur cette modification Vous pouvez crer une transformation
pour effectuer une tche et une autre transformation pour annuler cette tche. Cette fonctionnalit peut s'avrer trs utile dans le cas d'une ingnierie par va-et-vient. Supposez que vous gnriez un MPD partir d'un MOO afin de crer une correspondance O/R. Si le MOO source contient des composants, vous pouvez crer des transformations qui convertissent des classes partir de composants afin de gnrer facilement des tables dans un MPD et de les mettre en correspondance. Toutefois, lorsque vous mettez jour le MOO source partir du MPD gnr, vous pouvez utiliser une autre transformation qui va automatiquement recrer les composants partir des classes
241
Dfinition des transformations dans un profil Lorsque vous crez une transformation, vous devez dfinir les proprits suivantes :
Proprit Nom Description Nom de la transformation. Prenez soin de spcifier des noms explicites afin de les identifier plus facilement dans les listes de slection Informations supplmentaires relatives la transformation utilises pour expliquer le script
Commentaire
La page Script de la transformation est utilise pour dfinir le corps de la fonction de transformation. La fonction est crite en VBScript. La page Script global est utilise pour le partage des fonctions de bibliothques et des attributs statiques dans le fichier de ressources. Vous pouvez galement utiliser la page Script global pour dclarer des variables globales. Dans ce cas, n'oubliez pas que les variables globales ne sont pas rinitialises chaque fois que la transformation est excute. Elles conservent leurs valeur jusqu' ce que vous modifiez le fichier de ressources, ou jusqu' la fin de la session PowerAMC. Ce comportement peut tre la source d'erreurs, tout particulirement lorsque des variables font rfrence des objets qui peuvent tre modifis, voire supprims. N'oubliez pas d'initialiser la variable globale au dbut d'une transformation si vous ne souhaitez pas conserver la valeur de l'excution prcdente. Pour plus d'informations sur la dfinition d'un script et l'utilisation de la page Script global, reportez-vous aux sections Dfinition du script d'une vrification personnalise et Utilisation du script global. La page Dpendances affiche une liste des profils dans lesquels la transformation est utilise. Les transformations peuvent tre utilises : Dans un profil de transformation, pour tre appliques lors de la gnration de modle Pour plus d'informations sur les transformations utilises lors de la gnration, reportez-vous la section Gnration avec des transformations dans le chapitre Gestion des transformations du manuel Guide des fonctionnalits gnrales. Dans un profil de transformation, sur la page post-gnration, pour tre utilises avec la fonctionnalit Appliquer des transformations
242
PowerAMC
Chapitre 2
Pour plus d'informations sur les transformations, utilises lors de la gnration, reportez-vous la section Application des transformations dans un modle, dans le chapitre Gestion des transformations du manuel Guide des fonctionnalits gnrales. Sous forme de commande dans un menu dfini par l'utilisateur Pour plus d'informations sur les menus, reportez-vous la section Dfinition de menus dans un profil.
obj reprsente l'objet dans le modle pour lequel le script est excut ; trfm est un objet transformation interne qui sert accder un jeu de fonctions helper dans le script. Pour plus d'informations sur les fonctions helper, reportez-vous la section Mthodes helper de script pour les transformations. Vrifications de script Le script de transformation ne requiert pas autant de vrifications que les scripts standards. Dans un script standard, vous devez vrifier le contenu d'un modle pour viter les erreurs. Par exemple, un script qui cre et renomme un composant partir d'une classe doit contenir un contrle qui vrifie si le composant n'existe pas dj dans le modle. Ces vrifications ne sont pas requises dans un script de transformation car les transformations sont toujours mises en oeuvre dans un modle temporaire ne contenant aucun objet. Ce modle temporaire sera ensuite fusionn avec le modle cible de gnration si l'option de conservation de modifications est active lors de la mise jour. Si vous crez une transformation en utilisant un script existant, vous pouvez supprimer ces contrles. Objet transformation interne Les objets transformation interne ne s'affichent pas dans l'interface de PowerAMC. Ils sont crs comme objets temporaires et passs au script de sorte que l'utilisateur puisse accder aux fonctions helper mais aussi pour enregistrer l'excution d'une squence de transformations afin de pouvoir les excuter ultrieurement. 243
Dfinition des transformations dans un profil Les objets transformation interne sont prservs lorsque les transformations sont utilises par la fonctionnalit Appliquer les transformations ou dans un menu. En effet, lorsque vous mettez jour un modle (le rgnrez) dans lequel ce type de transformations a t excut, les transformations doivent tre excutes nouveau dans le modle source afin de prserver l'quivalence entre les modles source et cible. Par exemple, MCD1 contient l'entit A, vous gnrez un MOO partir de MCD1 et la classe B est cre. Vous appliquez des transformations la classe B dans MOO1, ce qui cre la classe C. Vous souhaitez ensuite rgnrer MCD1 et mettre jour MOO1 : la classe B sera gnre partir de l'entit A mais la classe C est manquante dans le modle gnr, ce qui risquerait de se manifester par une diffrence dans la bote de dialogue de fusion. Toutefois, grce aux objets transformation interne, les transformations qui ont t excute dans le MOO gnr sont r-excutes et vous obtenez la classe C et les modles fusionner sont encore plus similaires qu'avant.
Pour crer une transformation :
Pointez sur un noeud de mtaclasse, de strotype ou de critre, cliquez le bouton droit de la souris et slectionnez NouveauTransformation. Une transformation est cre.
2 3 4
Saisissez un nom dans la zone Nom. <facultatif>> Saisissez un commentaire dans la zone Commentaire. Saisissez le script dans la page Script de la transformation.
244
PowerAMC
SetSource
GetSource
cible : objet cible tiquette* : identificateur texte de l'objet source : objet source tiquette* : identificateur texte de l'objet
GetTarget
* tiquette facultative utilise pour amliorer l'historique de la gnration, voir le paragraphe suivant
Historique de la gnration
Le mcanisme d'historique de la gnration est utilis pour extraire l'identificateur de l'objet source afin d'identifier l'origine d'un objet cible et l'afficher dans la page Version. Cette opration est rendue possible par le fait qu'il existait une correspondance un--un entre les objets source et cible. Maintenant qu'un objet source peut tre transform et avoir plusieurs cibles, vous pouvez rencontrer des problmes pour identifier l'origine d'un objet, tout particulirement dans la bote de dialogue de fusion. Le mcanisme suivant est utilis pour aider identifier l'origine d'un objet :
Si l'objet source est transform en un seul objet La transformation est utilise comme identificateur interne de l'objet cible.
245
Pour pouvez dfinir une tiquette (tag) pour identifier le rsultat de la transformation. Cette tiquette est une valeur slectionne par l'utilisateur qui ne doit comporter que des caractres alphanumriques. Il est recommand d'utiliser une valeur "stable", c'est--dire une valeur qui ne risque pas d'tre modifie lors de gnrations successives, par exemple un strotype. Par exemple, MOO1 contient la classe Customer, vous appliquez un script de transformation cet objet pour crer un EJB. Deux nouvelles classes sont cres partir de la classe source : une pour l'interface home, et l'autre pour l'interface remote. Dans le script de transformation, vous devez affecter une tiquette home pour l'interface home, et remote pour l'interface remote. L'tiquette s'affiche entre signes <> dans la page Version pour un objet, en regard de l'objet source. Dans l'exemple suivant, vous utilisez le mcanisme de l'tiquette pour identifier les classes attaches un composant :
'setting tag for all classes attached to component for each Clss in myComponent.Classes if clss <> obj then trfm.SetSource obj,Clss," GenatedFromEJB"+ obj.name +"target" +Clss.Name For each ope in clss.Operations if Ope.Name = Clss.Code Then 'then it is a constructor _Bean operation trfm.SetSource obj,Ope," GenatedFromEJB"+ obj.name +"target" +Ope.Name end if if Ope.Name = Clss.Name Then 'then it is a constructor operation trfm.SetSource obj,Ope," GenatedFromEJB"+ obj.name +"target" +Ope.Name end if if Ope.name = "equals" Then 'then it is an equals operation and should be tagged trfm.SetSource obj,Ope," GenatedFromEJB"+ obj.name +"target" +Ope.Name end if next end if next
246
PowerAMC
Chapitre 2
Vous utilisez la page Script du gestionnaire d'vnement pour dfinir la fonctionnalit du gestionnaire d'vnement et l'adapter votre modle et vos besoins. La page Script global est utilise pour partager les fonctions de bibliothque et les attributs statiques dans le fichier de ressources. Vous pouvez galement utiliser la page Script global pour dclarer des variables globales. Dans ce cas, n'oubliez pas que les variables globales ne sont pas rinitialises chaque fois que le gestionnaire d'vnement est excut. Elles conservent leurs valeur jusqu' ce que vous modifiez le fichier de ressources, ou jusqu' la fin de la session PowerAMC. Ce comportement peut tre la source d'erreurs, tout particulirement lorsque des variables font rfrence des objets qui peuvent tre modifis, voire supprims. N'oubliez pas d'initialiser la variable globale au dbut d'une mthode si vous ne souhaitez pas conserver la valeur de l'excution prcdente. Pour plus d'informations sur la dfinition d'un script et l'utilisation de la page Script global, reportez-vous aux sections Dfinition du script d'une vrification personnalise et Utilisation du script global. Documentation utilisateur avance 247
Dfinition d'un gestionnaire d'vnement dans un profil Plusieurs gestionnaires d'vnement sont dfinis dans PowerAMC. CanCreate Le gestionnaire d'vnement CanCreate est utilis pour mettre en oeuvre une rgle de validation de cration. Certains objets ne peuvent pas tre crs n'importe o dans le modle le gestionnaire d'vnement CanCreate s'assure que cette exigence est remplie. Par exemple, dans un MPM pour ebXML, un processus ayant le strotype BusinessTransactions doit tre cr sous un processus ayant le strotype BinaryCollaboration. Le script du gestionnaire d'vnement CanCreate associ au processus ayant comme strotype BusinessTransaction se prsente comme suit :
Function %CanCreate%(parent) if parent is Nothing or parent.IsKindOf(PdBpm.Cls_Process) then %CanCreate% = False else %CanCreate% = True end if End Function
Si le gestionnaire d'vnement CanCreate est dfini sur un strotype et que la valeur de retour de la fonction est True, vous pouvez utiliser l'outil personnalis pour cre l'objet personnalis. Dans le cas contraire, l'outil personnalis n'est pas disponible, et la liste droulante Strotype n'affiche pas le strotype correspondant. Si le gestionnaire d'vnement CanCreate est dfini sur une mtaclasse et que la valeur de retour de la fonction est True, vous pouvez alors crer l'objet partir de la palette d'outils, partir de l'Explorateur d'objets ou bien dans une liste.
Modles imports ou obtenus par reverse engineering
Lorsque vous importez un modle ou procdez son reverse engineering, les fonctions CanCreate sont ignores car elles pourraient modifier le modle et y crer des divergences par rapport au modle d'origine.
248
PowerAMC
Chapitre 2
Initialize
Le gestionnaire d'vnement Initialize est utilis pour instancier des objets avec des templates prdfinis. Par exemple, dans un MPM, un processus BusinessTransaction doit tre un processus composite avec un sous-graphe prdfini. Le script du gestionnaire d'vnement Initialize associ au strotype de processus BusinessTransaction contient toutes les fonctions ncessaires pour la cration du sous-graphe. L'extrait de script suivant est un sous-ensemble du gestionnaire d'vnement Initialize pour un processus BusinessTransaction.
... ' Search for an existing requesting activity symbol Dim ReqSym Set ReqSym = Nothing If Not ReqBizAct is Nothing Then If ReqBizAct.Symbols.Count > 0 Then Set ReqSym = ReqBizAct.Symbols.Item(0) End If End If ' Create a requesting activity if not found If ReqBizAct is Nothing Then Set ReqBizAct = BizTrans.Processes.CreateNew ReqBizAct.Stereotype = "RequestingBusinessActivity" ReqBizAct.Name = "Request" End If ...
Si le gestionnaire d'vnement Initialize est dfini sur un strotype et que la valeur de retour de la fonction est True, le script d'initialisation sera lanc chaque fois que le strotype est affect, soit l'aide d'un outil personnalis dans la palette, soit partir de la feuille de proprits d'objet. Si le gestionnaire d'vnement Initialize est dfini sur une mtaclasse et si la valeur de retour de la fonction est True, le script d'initialisation sera lanc lorsque vous crez un nouvel objet partir de la palette d'outils, partir de l'Explorateur d'objets, dans une liste, ou bien en utilisant l'outil Nouveau dans une feuille de proprits. Si gestionnaire d'vnement Initialize est dfini sur la mtaclasse model et si la valeur de retour de la fonction est True, le script d'initialisation est lanc lorsque vous affectez une cible (SGBD, langage objet, langage de processus, langage de schma) au modle au moment de la cration, lorsque vous changez la cible du modle ou lorsque vous affectez une dfinition tendue de modle ce modle.
249
Pointez sur une mtaclasse ou sur un strotype, cliquez le bouton droit de la souris, puis slectionnez NouveauGestionnaire d'vnement. Une bote de slection de gestionnaire d'vnement s'affiche.
Slectionnez un ou plusieurs gestionnaires d'vnement, puis cliquez sur OK. Le gestionnaire d'vnement est ajout dans la catgorie Event Handler de la mtaclasse ou du strotype slectionn.
Slectionnez un gestionnaire d'vnement. La page Gnral de la feuille de proprits de gestionnaire d'vnement s'affiche dans le volet droit.
4 5
Cliquez sur l'onglet Script du gestionnaire d'vnement pour afficher la page correspondante. Saisissez le script du gestionnaire d'vnement.
250
PowerAMC
Chapitre 2 6
Cliquez sur Appliquer, puis rptez l'tape prcdente pour chaque gestionnaire d'vnement.
251
Les menus dfinis sur une mtaclasse parent sont hrits par les mtaclasses enfant.
252
PowerAMC
Chapitre 2
Commentaire Emplacement
Page Menu
Page XML
Vous pouvez utiliser les outils suivants dans la page Menu pour crer des menus et commandes :
Outil Fonction Affiche une bote de dialogue de slection permettant de slectionner une ou plusieurs mthodes ou transformations afin de crer des commandes associes. Vous pouvez slectionner parmi les mthodes ou transformations dfinies dans la mtaclasse courante et ses mtaclasses parent. Lorsque vous slectionnez une mthode ou une transformation, cette dernire n'est pas retire de la liste, car vous pouvez la rutiliser diffrents niveaux de menu Cre un sparateur sous l'lment slectionn dans le niveau de menu courant Cre un sous-menu sous l'lment de menu slectionn ou sous le menu racine Cre une nouvelle commande dans le menu. La cration d'une commande dans un menu ne se traduit pas par la cration de la mthode ou transformation correspondante dans la mtaclasse approprie, vous devez crer vous-mme la mthode ou transformation sous la mtaclasses approprie et vous assurer de bien utiliser le mme nom que celui dfini dans le menu
253
Lorsque vous ajoutez une commande l'aide d'une mthode ou transformation existante, le contenu suivant est ajout dans le menu :
<Libell> (<Nom de mthode/transformation>)
L'lment libell est le nom de la commande tel qui s'affichera dans le menu. Vous pouvez dfinir une touche de raccourci en ajoutant une perlute immdiatement avant la touche de raccourci, ce caractre s'affiche soulign dans le menu. Le nom de mthode/transformation est le nom qui identifie le script. Synchronisation Les mthodes ou transformations associes aux commandes de menu ne sont pas synchronises avec celles dfinies dans une mtaclasse. Si vous modifiez le nom ou le script d'une mthode ou transformation, vous devez utiliser l'outil de recherche pour localiser et mettre jour toutes les commandes qui utilisent cette mthode ou transformation.
Pointez sur une mtaclasse, un strotype ou un critre, cliquez le bouton droit de la souris puis slectionnez NouveauMenu. Un menu est cr.
2 3 254
Saisissez un nom dans la zone Nom. <facultatif>> Saisissez un commentaire dans la zone Commentaire.
PowerAMC
Chapitre 2 4 5
<uniquement pour les mtaclasses Model et Diagram> Slectionnez l'emplacement du menu dans la liste droulante Emplacement. Cliquez sur l'outil Ajouter des commandes partir de commandes et de transformations dans la page Menu. Une bote de dialogue de slection s'affiche.
Slectionnez un ou plusieurs lments, puis cliquez sur OK. Les commandes sont ajoutes dans le menu. Chaque commande s'affiche sur une ligne distincte, elle affiche un libell et le nom de la mthode ou de la transformation.
Rappel
Les mthodes ou transformations de commande ne sont pas synchronises avec la dfinition de mthode ou de transformation. 8 Cliquez sur Appliquer.
255
Vous allez suivre cette tude de cas pour crer une nouvelle dfinition tendue de modle. Cette dfinition tendue de modle correspond au fichier de ressources Robustness.XEM, fourni par dfaut et situ dans le dossier \Fichiers de ressources\Dfinitions tendues de modle du rpertoire d'installation de PowerAMC.
256
PowerAMC
Chapitre 2
Scnario
Vous allez construire la dfinition tendue de modle robustness partir d'un exemple concret. Le cas d'utilisation suivant reprsente une transaction Web de base : un client souhaite connatre la valeur de ses actions afin de dcider s'il va ou non les vendre. Il envoie une requte sur explorateur Internet pour obtenir la valeur de l'action, la requte est transfre depuis l'explorateur vers le serveur de bases de donnes via le serveur d'applications.
Vous allez utiliser le diagramme robustness pour vrifier ce diagramme de cas d'utilisation. Pour ce faire, vous allez utiliser un diagramme de collaboration standard et l'tendre avec un profil.
257
Slectionnez OutilsRessourcesDfinitions tendues de modleModle Orient Objet. La bote de dialogue Liste des dfinitions tendues de modle (MOO) s'affiche.
Cliquez sur l'outil Nouveau dans la barre d'outils de la liste. La bote de dialogue Nouvelle dfinition tendue de modle s'affiche.
3 4 5
Saisissez Robustness_Extension dans la zone Nom. Conservez <Template par dfaut> dans la zone Copier depuis. Cliquez sur OK. Une bote de dialogue standard d'enregistrement s'affiche. Par dfaut, le nom du fichier est identique au nom de la dfinition tendue de modle.
Dcochez la case Complter la gnration de langage. Cette dfinition tendue de modle n'appartient pas une famille de langage objet et ne sera pas utilise pour complter une gnration de langage objet.
8 258
Chapitre 2 9
Cliquez sur Fermer dans la bote de dialogue Liste des dfinitions tendues de modle. Une bote de confirmation vous invite enregistrer le fichier de dfinition tendue de modle.
10 Cliquez sur Oui. 11 Slectionnez ModleDfinitions tendues de modle. La bote de dialogue Liste des dfinitions tendues de modle s'affiche. 12 Cliquez sur l'outil Importer une dfinition tendue de modle dans la barre d'outils de la liste. La bote de dialogue Slection des dfinitions tendues de modle s'affiche. 13 Cliquez sur l'onglet Gnral, puis cochez la case Robustness_Extension.
14 Cliquez sur OK, la dfinition tendue de modle s'affiche dans la bote de dialogue Liste des dfinitions tendues de modle. 15 Cliquez sur OK dans la liste. 16 Pointez sur le noeud du modle dans l'Explorateur d'objets, cliquez le bouton droit de la souris puis slectionnez NouveauDiagramme de collaboration dans le menu contextuel. La feuille de proprits du diagramme s'affiche. 17 Saisissez Robustness Diagram dans la zone Nom, puis cliquez sur OK dans la feuille de proprits.
259
Pour mettre en oeuvre le modle robustness analysis dans PowerAMC, vous allez crer des strotypes pour des objets dans le diagramme de collaboration. Ces strotypes correspondent aux trois catgories d'objets dfinies ci-avant. Vous allez galement attacher des outils personnaliss pour crer une palette spcialement conue pour crer des objets avec le strotype <<Entity>>, <<Control>> ou <<Boundary>>. Vous crez ces strotypes dans la catgorie Profile de la dfinition tendue de modle attache votre modle.
Pour crer des strotypes d'objet :
Slectionnez ModleDfinitions tendues de modle puis doublecliquez sur la flche en regard de Robustness_Extension dans la liste pour afficher l'diteur de ressources.
260
PowerAMC
Chapitre 2 2
Pointez sur la catgorie Profile, cliquez le bouton droit de la souris, puis slectionnez Ajouter des mtaclasses. La bote de dialogue Slection de mtaclasses s'affiche.
Slectionnez UMLObject dans la liste des mtaclasses affiches dans la page PdMOO, puis cliquez sur OK. La catgorie UMLObject s'affiche sous Profile.
Pointez sur la catgorie UMLObject, cliquez le bouton droit de la souris et slectionnez NouveauStrotype. Un nouveau strotype est cr sous la catgorie UMLObject.
5 6 7
Saisissez Boundary dans la zone Nom. Cochez la case Outil personnalis dans la palette. Cliquez sur l'outil Recherche le fichier curseur de l'outil, puis slectionnez le fichier boundary.cur dans le dossier \Exemples\Didacticiel. Rptez les tapes 4 7 pour crer le strotypes et outils suivants :
Strotype Entity Control Fichier de curseur entity.cur control.cur
Vous devez prsent voir les 3 strotypes sous a catgorie de mtaclasse UMLObject.
261
10 Cliquez sur Oui pour enregistrer la dfinition tendue de modle. La palette d'outils avec les outils de strotype s'affiche dans le diagramme.
11 Dplacez la Liste des dfinitions tendues de modle en bas de l'cran. 12 Cliquez sur l'un des outils, puis cliquez dans le diagramme de collaboration. Un objet ayant le strotype prdfini est cr :
Double-cliquez sur la flche en regard de Robustness_Extension dans la liste des dfinitions tendues de modle pour afficher l'diteur de ressources. Pointez sur le strotype Boundary dans la catgorie UMLObject, cliquez le bouton droit de la souris, puis slectionnez NouveauSymbole personnalis. Un symbole personnalis est cr.
4 5 6 262
Cliquez sur l'onglet Forme personnalise. Cochez la case Activer la forme personnalise. Slectionnez Symbole prdfini dans la liste droulante Type de forme.
PowerAMC
Chapitre 2 7
Slectionnez Boundary Object dans la liste droulante liste droulante Nom de la forme.
263
Utilisation de profils : une tude de cas 9 Rptez les tapes 2 8 pour les strotypes suivants :
Strotype Entity Control Nom de la forme Entity Object Control Object
10 Cliquez sur OK dans les botes de dialogue successives. Le symbole de l'objet que vous aviez cr change en fonction du strotype :
264
PowerAMC
Chapitre 2
Votre diagramme contient maintenant 3 objets ayant des symboles diffrents qui correspondent aux diffrents strotypes.
12 Slectionnez ModleObjets pour afficher la liste des objets. 13 Cliquez sur l'outil Personnaliser les colonnes et filtrer dans la barre d'outils de la liste, puis slectionnez Strotype dans la liste des colonnes. Les strotypes d'objet s'affichent dans la liste. Vous allez dfinir le nom et le code de chaque objet en fonction de leur strotype.
Objet Objet_1 Objet_2 Objet_3 Strotype <<Boundary>> <<Control>> <<Entity>> Nom & code Explorateur Internet Serveur d'applications Serveur de bases de donnes
265
Utilisation de profils : une tude de cas 14 Cliquez sur OK dans la liste des objets. 15 Faites glisser l'acteur Client de l'Explorateur d'objets dans le diagramme de collaboration afin de crer un symbole pour Client.
Pour plus d'informations sur la cration de liens entre objets dans le diagramme de collaboration, reportez-vous la section Cration d'un lien entre objets dans un diagramme de collaboration, dans le chapitre Construction d'un diagramme de collaboration du manuel Guide de l'utilisateur du MOO. Vous pouvez dfinir des messages sur les diffrents liens entre objets afin d'exprimer les donnes transportes par les liens. Pour plus d'informations sur la cration de messages sur les liens entre objets dans le diagramme de collaboration, reportez-vous la section Cration d'un message dans un diagramme de collaboration, dans le chapitre Construction d'un diagramme de collaboration dans le manuel Guide de l'utilisateur du MOO. Vous allez crer les messages suivants :
Direction Client - Explorateur Internet Explorateur Internet - Serveur d'applications Serveur d'applications - Serveur de bases de donnes Serveur de bases de donnes - Serveur d'applications Nom du message Demande de cotation Demande valeur serv. app Demande valeur bd Renvoie valeur de bd Numro d'ordre 1 2 3 4
266
PowerAMC
Chapitre 2
267
Utilisation de profils : une tude de cas Pour plus d'informations sur la syntaxe VBS, reportez-vous au chapitre Accs aux objets l'aide de VBScript dans le manuel Guide des fonctionnalits gnrales.
Pour crer des vrifications personnalises sur les liens entre objets :
Double-cliquez sur la flche en regard de Robustness_Extension dans la bote de dialogue Liste des dfinitions tendues de modle pour afficher l'diteur de ressources. Pointez sur la catgorie Profile, cliquez le bouton droit de la souris, puis slectionnez Ajouter des mtaclasses. La bote de dialogue Slection de mtaclasses s'affiche.
Slectionnez InstanceLink dans la liste des mtaclasses affiches dans la page PdMOO, puis cliquez sur OK. La catgorie InstanceLink s'affiche sous Profile.
Pointez sur la catgorie InstanceLink, cliquez le bouton droit de la souris et slectionnez NouveauVrification personnalise. Une nouvelle vrification est cre.
Saisissez Collaboration d'acteur incorrecte dans la zone Nom. Cette vrification contrle si les acteurs sont lis aux objets Interface. Le fait de lier des acteurs aux objets Contrle ou Entit n'est pas admis dans robustness analysis.
Saisissez "Cette vrification s'assure que les acteurs ne communiquent qu'avec les objets Boundary." dans la zone Message d'aide. Ce texte s'affiche dans la bote de message qui apparat lorsque l'utilisateur slectionne Aide dans le menu contextuel de la vrification (dans la bote de dialogue Paramtres de vrification de modle).
7 8
Saisissez " Les liens entre objets suivants sont incorrects :" dans la zone Message de rsultats. Slectionnez Erreur comme svrit par dfaut.
268
PowerAMC
10 Cliquez sur l'onglet Script de vrification. La page Script de vrification permet de saisir le script pour la vrification supplmentaire. 11 Saisissez le script suivant dans la zone de texte.
Function %Check%(link) ' Default return is True %Check% = True ' L'objet doit tre un lien entre objets If link is Nothing or not link.IsKindOf(PdMOO.cls_InstanceLink) then Exit Function End If ' Extrait les extrmits du lien Dim src, dst Set src = link.ObjectA Set dst = link.ObjectB ' Source est un acteur ' Appelle la fonction globale CompareObjectKind() dfinie dans le volet Script global If CompareObjectKind(src, PdMOO.Cls_Actor) Then ' Vrifie si la destination est un objet UML avec le strotype "Boundary" If not CompareStrotype(dst, PdMOO.Cls_UMLObject, "Boundary") Then %Check% = False End If Elsif CompareObjectKind(dst, PdMOO.Cls_Actor) Then ' Vrifie si la source est un objet UML avec le strotype "Boundary" If not CompareStrotype(src, PdMOO.Cls_UMLObject, "Boundary") Then
269
12 Cliquez sur l'onglet Script global. La page Script global est la page dans laquelle vous stockez des fonctions et des attributs statiques qui peuvent tre rutiliss entre les diffrentes fonctions. 13 Saisissez le script suivant dans la zone de texte.
' Cette fonction globale vrifie si un objet a un type particulier ' ou s'il est un raccourci d'un type particulier Function CompareObjectKind(Obj, Kind) ' La valeur par dfaut est false CompareObjectKind = False ' Vrifie l'objet If Obj is Nothing Then Exit Function End If ' Cas particulier du raccourci, recherche de son objet cible If Obj.IsShortcut() Then CompareObjectKind = CompareObjectKind(Obj.TargetObject) Exit Function End If If Obj.IsKindOf(Kind) Then ' Correct object kind CompareObjectKind = True End If End Function ' Cette fonction globale vrifie si un objet a un type particulier ' et compare sa valeur de strotype Function CompareStrotype(Obj, Kind, Value) ' La valeur par dfaut est false CompareStrotype = False ' Vrifie l'objet If Obj is Nothing or not Obj.HasAttribute("Strotype") Then Exit Function End If ' Cas particulier du raccourci, recherche de son objet cible If Obj.IsShortcut() Then CompareStrotype = CompareStrotype(Obj.TargetObject) Exit Function End If If Obj.IsKindOf(Kind) Then ' Type d'objet correcte
270
PowerAMC
Chapitre 2
If Obj.Strotype = Value Then ' Strotype correct CompareStrotype = True End If End If End Function
14 Cliquez sur Appliquer. Vous allez rpter les tapes 4 14 et crer une vrification s'assurant qu'un lien entre objets n'est pas dfini entre objets Boundary :
Dfinition de vrification Nom Message d'aide Contenu Incorrect Boundary to Boundary Link Cette vrification s'assurer qu'un lien entre objets n'est pas dfini entre deux objets Interface Les liens suivants entre objets Interface sont incorrects : Erreur Coch
271
Utilisation de profils : une tude de cas 16 Rptez les tapes 4 14 et crez une vrification pour vrifier que seuls les objets Control accdent aux objets Entity :
Dfinition de la vrification Nom Message d'aide Contenu Accs incorrect un objet Entity Cette vrification s'assure que seuls les objets Control accdent aux objets Entity Les liens suivants sont incorrects : Erreur Coch
272
PowerAMC
19 Cliquez sur OK dans l'diteur de ressources. 20 Slectionnez OutilsVrifier le modle pour afficher la bote de dialogue Paramtres de vrification de modle. Les vrifications personnalises s'affichent dans la catgorie Liens entre objets.
273
Utilisation de profils : une tude de cas Vous pouvez tester les vrifications en crant des liens entre objets entre Client et Serveur d'applications par exemple, puis en appuyant sur F4 pour lancer la vrification du modle. Pour plus d'informations la fonctionnalit de vrification de modle, reportez-vous aux sections correspondantes dans les diffrents guides de l'utilisateur.
Pour plus d'informations sur les mtaclasses PowerAMC, reportez-vous au mtamodle PowerAMC et sa documentation dans le chapitre Mtamodle public PowerAMC. Le fichier gnr est dfini sur la mtaclasse BasePackage afin de consulter la totalit du modle, c'est--dire le modle lui-mme et les packages qu'il contient, ce afin de s'assurer que tous les messages dans le modle et ses packages soient dcrits dans le fichier gnr. Il y aura un seul fichier gnr puisque la mtaclasse BasePackage n'a qu'une instance.
274
PowerAMC
Chapitre 2
La premire partie du template vise crer une indentation correspondant au numro de squence du message. La macro foreach_parts boucle sur les numros d'ordre :
.foreach_part(%SequenceNumber%, '.') .set_value(_tabs, " %_tabs%")
Il passe en revue chaque numro d'ordre et chaque fois qu'il trouve un point, il ajoute trois espaces vides automatiquement pour raliser l'indentation. Cette procdure calcule la variable _tab, qui est ensuite utilise pour crer l'indentation approprie en fonction des numros d'ordre. La dernire ligne contient le texte gnr pour le template : pour chaque numro de squence, la valeur de tabulation approprie est cre, suivie du nom de l'metteur (brve description), le texte "sends message", puis le nom du message, le texte "to", ainsi que le nom du rcepteur.
Pour dfinir un template utilis pour la gnration :
Slectionnez ModleDfinitions tendues de modle puis doublecliquez sur la flche en regard de Robustness_Extension dans la bote de dialogue Liste des dfinitions tendues de modle pour afficher l'diteur de ressources. Pointez sur la catgorie Profile, cliquez le bouton droit de la souris, puis slectionnez Ajouter des mtaclasses. La bote de dialogue Slection de mtaclasses s'affiche.
Slectionnez Message dans la liste des mtaclasses affiches dans la page PdMOO, puis cliquez sur OK. La catgorie Message s'affiche sous Profile.
275
Utilisation de profils : une tude de cas 4 Pointez sur la catgorie Message, cliquez le bouton droit de la souris et slectionnez NouveauTemplate. Un nouveau template est cr. 5 6 7 Saisissez description dans la zone Nom du template <facultatif> Saisissez un commentaire dans la zone Commentaire du template. Saisissez le code suivant dans la zone de texte :
.set_value(_tabs, "", new) .foreach_part(%SequenceNumber%, '.') .if (%Separator% == ".") .set_value(_tabs, " "%_tabs%) .endif .next %_tabs%%SequenceNumber%) %Sender.ShortDescription% sends message "%Name%" to %Receiver.ShortDescription%
276
PowerAMC
Chapitre 2
La valeur renvoye pour ce template est utilise avec le paramtre compare dans le template description dont le code se prsente comme suit :
Collaboration Scenario %Name%: \n .foreach_item(Symbols,,, %ObjectType% == CollaborationMessageSymbol, %compareCbMsgSymbols%) %Object.description% .next(\n)
Dans ce template, la premire ligne est utilise pour gnrer le titre du scnario l'aide du nom du diagramme de collaboration %Name%. Puis elle cre une nouvelle ligne. Ensuite, la macro pour chaque lment boucle sur chaque symbole de message, vrifie puis trie le numro de message, puis gnre la description de message l'aide de la syntaxe dfinie dans la section prcdente.
Pour dfinir des templates pour la mtaclasse du diagramme de collaboration :
Pointez sur la catgorie Profile, cliquez le bouton droit de la souris, puis slectionnez Ajouter des mtaclasses. La bote de dialogue Slection de mtaclasses s'affiche.
2 3
Cliquez sur l'outil Modifier le filtre des mtaclasses et slectionnez Afficher toutes les mtaclasses. Slectionnez CollaborationDiagram dans la liste des mtaclasses affiches dans la page PdMOO, puis cliquez sur OK. La catgorie CollaborationDiagram s'affiche sous Profile.
Pointez sur la catgorie CollaborationDiagram, cliquez le bouton droit de la souris et slectionnez NouveauTemplate. Un nouveau template est cr.
5 6 7
Saisissez compareCbMsgSymbols dans la zone Nom du template. <facultatif> Saisissez un commentaire dans la zone Commentaire du template. Saisissez le code suivant dans la zone de texte :
.bool (%Item1.Object.SequenceNumber% >= %Item2.Object.SequenceNumber%)
8 9
Cliquez sur Appliquer. Pointez sur la catgorie CollaborationDiagram, cliquez le bouton droit de la souris et slectionnez NouveauTemplate. Un nouveau template est cr.
277
Utilisation de profils : une tude de cas 10 Saisissez description dans la zone Nom du template 11 <facultatif> Saisissez un commentaire dans la zone Commentaire du template. 12 Saisissez le code suivant dans la zone de texte :
Collaboration Scenario %Name%: \n .foreach_item(Symbols,,, %ObjectType% == CollaborationMessageSymbol, %compareCbMsgSymbols%) %Object.description% .next(\n)
278
PowerAMC
Chapitre 2
Pour dfinir un fichier gnr :
Pointez sur la catgorie Profile, cliquez le bouton droit de la souris, puis slectionnez Ajouter des mtaclasses. La bote de dialogue Slection de mtaclasses s'affiche.
Cliquez sur l'outil Modifier le filtre des mtaclasses, slectionnez Afficher les mtaclasses de modlisation abstraite, puis cliquez sur l'onglet PdCommon. Slectionnez BasePackage dans la liste des mtaclasses, puis cliquez sur OK. La catgorie BasePackage s'affiche sous Profile.
Pointez sur la catgorie BasePackage, cliquez le bouton droit de la souris et slectionnez NouveauGenerated File. Un nouveau fichier gnr est cr.
Saisissez Descriptifs des collaborations dans la zone Nom. Ce nom est utilis dans l'diteur de ressources.
Saisissez Descriptif de collaboration %Name%.txt dans la zone Nom de fichier. Il s'agit du nom du fichier qui sera gnr. Il s'agira d'un fichier .txt, et il contiendra le nom du modle courant grce la variable %Name%.
7 8 9
Conservez la valeur de codage ANSI. <facultatif> Saisissez un commentaire dans la zone Commentaire. Dcochez la case Utiliser la hirarchie des packages comme chemin d'accs, car vous n'avez pas besoin de gnrer la hirarchie des fichiers.
279
11 Cliquez sur OK et acceptez d'enregistrer la dfinition tendue de modle. 12 Cliquez sur OK pour fermer la bote de dialogue Liste des dfinitions tendues de modle.
Pointez sur l'arrire-plan du diagramme de collaboration, cliquez le bouton droit de la souris, puis slectionnez Proprits. La feuille de proprits du modle s'affiche.
280
PowerAMC
Chapitre 2
281
282
PowerAMC
C H A P I T R E
A propos de ce document
Ce document dcrit la structure et le contenu des langages objet dans un MOO. Il sert de rfrence pour les langages objet pris en charge par PowerAMC. Vous y trouverez une prsentation gnrale de l'utilisation d'un langage objet et ce, quelles que soient ses caractristiques.
Section Prsentation du langage objet Notions de base relatives l'diteur de langage objet Page 284 285
Sommaire
Avant de commencer
Ne modifiez pas un langage objet fourni avec PowerAMC. Crez toujours vos nouveaux langages objet partir des fichiers d'origine. Un langage objet est enregistr dans un fichier dont le nom est dot du suffixe XOL. Les modifications que vous apportez dans un langage objet peuvent changer la faon dont PowerAMC fonctionne, tout particulirement en ce qui concerne la gnration d'objets. Vous devez tester en profondeur les objets gnrs. Pour plus d'informations sur la cration d'un langage objet par copie d'un langage objet existant, reportez-vous la section Cration d'un fichier de ressources, dans le chapitre L'diteur de ressources du manuel Guide des fonctionnalits gnrales.
283
Ne modifiez pas les langages objet fournis avec PowerAMC. Pour chaque langage objet que vous souhaitez modifier, vous devez crer un nouveau langage objet. Pour ce faire, vous devez crer un nouveau langage objet partir de la bote de dialogue Liste des langages objet (OutilsRessourcesLangages objet), dfinir un nom et slectionner le fichier d'origine dans la liste droulante Copier depuis. Vous pouvez ainsi crer un nouveau langage objet identique au fichier d'origine (sauf en ce qui concerne le nom). Qu'est-ce qu'un langage objet ? Le langage objet est un composant requis lorsque vous travaillez avec des modles orient objet (MOO). Chaque langage objet a sa propre dfinition de langage objet au format XML qui contient les spcifications pour un langage objet particulier dans un format lisible par un MOO. Il fournit la syntaxe et les rgles de cration des objets et met en oeuvre les strotypes, types de donnes, scripts et constantes pour un langage objet. Chaque MOO est par dfaut attach un langage objet. Lorsque vous crez un nouveau MOO, vous devez choisir un langage objet : vous pouvez crer un nouveau langage objet, ou bien utiliser l'un des langages objet fournis avec le MOO. La dfinition d'un langage objet est disponible dans sa feuille de proprits (OutilsRessourcesLangages objet. Vous pouvez slectionner et configurer des paramtres utiliss lors de la dfinition des objets ou de la gnration partir d'un MOO. Que contient un langage objet ? Tous les langages objet ont la mme structure constitue d'un certain nombre de catgories. Une catgorie peut contenir d'autres catgories, des entres et des valeurs. Ces entres sont des paramtres reconnaissables par un MOO. Les valeurs pour les entres de langage objet varient selon le langage considr. Certaines entres peuvent ne pas tre disponibles si la fonctionnalit ne s'applique pas au langage objet. Exemples de langage objet Mme si un langage objet particulier est utilis pour illustrer un exemple, le mcanisme expliqu dans ce chapitre s'applique tous les langages objet pris en charge dans un MOO.
PowerAMC
284
Chapitre 3
Slectionnez LangageEditer le langage objet courant. ou Slectionnez OutilsRessourcesLangages objet puis double-cliquez sur un langage objet existant. La feuille de proprits du langage objet s'affiche.
L'diteur de langage objet permet de naviguer entre les diffrentes catgories et entres du langage objet. Selon l'lment slectionn, le contenu de la partie droite de la fentre change. Le terme Mtaclasse est utilis dans la documentation PowerAMC pour identifier un objet en tant que mtaclasse. Les mtaclasses contenues dans l'arborescence de l'diteur de ressources sont des catgories.
285
Notions de base relatives l'diteur de langage objet Pour plus d'informations sur la manipulation des catgories et entres dans l'diteur de langages objet, reportez-vous au chapitre L'diteur de ressources dans le manuel Guide des fonctionnalits gnrales.
Un langage objet a une feuille de proprits disponible lorsque vous cliquez sur le noeud racine dans l'arborescence de l'diteur de langage objet. Cette dernire inclut les proprits suivantes :
Proprit Nom Code Nom de fichier Description Nom du langage objet Code du langage objet Chemin d'accs et nom du fichier du langage objet. Cette zone est remplie lorsque le langage objet est partag. Si le langage objet est une copie, la zone est vide. Vous ne pouvez pas modifier le contenu de cette zone Classification utilise pour impliquer un certain comportement dans le modle objet. Dans PowerAMC, la famille est utilise pour activer certaines fonctionnalits dans le modle. De telles fonctionnalits n'existent pas par dfaut dans le MOO standard. Voir l'exemple ci-aprs Sous-classification qui peut tre combine avec la classification en familles pour impliquer un certain comportement dans le langage objet
Famille
Sous-famille
286
PowerAMC
Chapitre 3
Proprit Activer le suivi Description
Affiche les templates de gnration utiliss pour le texte gnr dans la page Aperu des feuilles de proprits d'objets Informations supplmentaires relatives au langage objet
Commentaire
Famille et sousfamille
Les proprits Famille et Sous-famille impliquent certains comportements dans le langage objet. Par exemple, les langages objet des familles Java, XML, IDL et PowerBuilder prennent en charge le reverse engineering. Si vous slectionnez FichierReverse engineeringLangage objet, vous pouvez vrifier que seuls les langages objet de ces familles sont disponibles dans la liste droulante Langage objet de la bote de dialogue. La sous-famille est utilise pour affiner les fonctionnalits dfinies pour une famille particulire ; par exemple, dans la famille Java, la sous-famille J2EE permet de grer les Entreprise Java beans ou de rendre possible la cration de servlets et de JSP.
Si vous travaillez sur un MOO Java cr dans la version 9.0, la sous-famille de Java est EJB 2.0 et elle prend en charge les EJB. Dans la version 9.5, la sous-famille de Java est devenue J2EE, elle prend en charge les composants J2EE (servlets, JSP et EJB). Vous devez utiliser le nouveau langage objet Java fourni avec la version courante pour pouvoir utiliser les composants J2EE. Si vous avez personnalis le langage objet Java dans la version prcdente, vous devez appliquer ces changements au nouveau langage objet Java.
Activer le suivi
La case Activer le suivi permet de prvisualiser les templates utiliss lors de la gnration. Avant mme de lancer la gnration, vous pouvez afficher la page Aperu de l'objet impliqu dans la gnration pour voir ses templates et utiliser l'outil Ractualiser pour les afficher. Lorsque vous double-cliquez sur une ligne de suivi dans la page Aperu, la dfinition de template correspondante s'affiche dans l'diteur de ressources, dans la catgorie Profile\Objet\Templates. Le code du template peut tre affich dans des couleurs distinctes. Pour plus d'informations sur ces couleurs, reportez-vous au paragraphe Coloration syntaxique dans la section Catgorie Generated Files.
287
Catgorie Settings
La catgorie Settings contient des lments permettant de personnaliser et de grer les fonctionnalits de gnration de MOO. Les lments spcifiques un langage objet ne sont pas dtaills dans cette section.
Catgorie Data Types Constants Namings Description Tables pour les correspondances de types de donnes Liste de valeurs constantes Contient les valeurs par dfaut des oprations getter et setter, un caractre illgal ou des valeurs de nom de composant J2EE, par exemple Valeurs d'vnement standard
Events
ConceptualDataTypes
AdditionalDataTypes
DefaultDataType
288
PowerAMC
Chapitre 3
Exemple
Dans le langage objet XML-Schema, la catgorie Settings est dveloppe pour montrer la liste des valeurs pour Basic data types.
Catgorie Constants
La catgorie Constants contient les valeurs constantes suivantes dfinies par dfaut : Null True False Void Bool Cette catgorie contient une table de correspondances entre les constantes et leurs valeurs par dfaut. Les valeurs par dfaut varient en fonction du langage objet.
Catgorie Namings
La catgorie Namings contient des paramtres qui influent sur ce qui sera inclus dans les fichiers que vous gnrez partir d'un MOO. Vous pouvez modifier les valeurs par dfaut de cette catgorie pour personnaliser le processus de gnration dans PowerAMC.
289
Notions de base relatives l'diteur de langage objet Vous pouvez modifier les valeurs par dfaut suivantes :
Constante GetterName GetterCode SetterName SetterCode IllegalChar Description Nom et valeur pour les oprations getter Code et valeur pour les oprations getter Nom et valeur pour les oprations setter Code et valeur pour les oprations setter Liste des caractres illgaux dans le langage objet courant. Voir l'exemple ci-aprs
Caractres illgaux
La liste des caractres illgaux est utilise lorsque vous crez un MOO, ou bien quand vous changez le langage objet pour initialiser les listes de caractres illgaux pour tous les codes de tous les objets du modle. La liste des caractres illgaux est visible aprs la cration du modle (OutilsOptions du modleConvention de dnomination). Par exemple, les caractres suivants ne sont pas accepts pour les noms ou les codes dans XML-Schema : "/!=<>""'()"
Catgorie Events
Vous pouvez utiliser cette catgorie pour dfinir des vnements standard sur les oprations. Vous pouvez trouver des vnements existants par dfaut tels que les constructeur et destructeur, en fonction du langage objet. Un vnement est li une opration. Le contenu de la catgorie Events est affich dans la liste droulante Evnement dans les feuilles de proprits d'opration. Il dcrit les vnements qui peuvent tre utiliss par une opration. Dans PowerBuilder, par exemple, la catgorie Events est utilise pour associer les oprations aux vnements PowerBuilder.
290
PowerAMC
Chapitre 3
Catgorie Generation
La catgorie Generation contient des catgories et des entres permettant de dfinir et d'activer un processus de gnration. Vous pouvez utiliser les catgories suivantes : Commandes de gnration Tches de gnration Options de gnration
Le processus de gnration PowerAMC est dfini dans le chapitre Guide de rfrence de gnration de ce manuel. Nous vous recommandons de commencer par lire ce chapitre afin de vous familiariser avec les concepts et fonctionnalits du processus de gnration.
Catgorie Commands
La catgorie Commands permet d'crire des commandes de gnration. Les commande de gnration peuvent tre excutes la fin du processus de gnration, une fois tous les fichiers gnrs. Vous pouvez par exemple intgrer des commandes de compilation ou de cration d'un fichier d'archives la fin du processus de gnration partir d'un MOO. Toutes les commandes crites dans la catgorie Commands sont disponibles aprs la cration dans la page Tches de la bote de dialogue de gnration, elles peuvent alors tre excutes la fin de la gnration. Vous pouvez trouver des commandes par dfaut dans le langage objet courant. Toutes les commandes par dfaut ne sont pas rpertories ici car elles dpendent entirement du langage objet utilis. Les commandes doivent tre incluses au sein de tches pour tre excutes. Pour plus d'informations sur le rle des tches, reportez-vous la section Catgorie Tasks. Les commandes sont lies un langage objet. Le texte qui dfinit le code de la commande est crit l'aide du langage de gnration par templates (GTL). Il utilise les variables d'environnement qui peuvent correspondre aux excutables tels que javac.exe, par exemple. Pour plus d'informations sur le GTL, reportez-vous au chapitre Guide de rfrence de gnration.
Documentation utilisateur avance
291
Notions de base relatives l'diteur de langage objet Les macros spcifiques sont disponibles dans le cadre de l'excution des commandes. Pour plus d'informations sur les macros, reportez-vous la section Utilisation de macros dans le chapitre Guide de rfrence de gnration.
Pour dfinir une commande pour la gnration :
1 2
Pointez sur la catgorie Generation\Commands dans le langage objet et cliquez le bouton droit de la souris. Slectionnez Nouvel lment. La nouvelle entre s'affiche avec un nom par dfaut.
3 4 5
Saisissez un nom dans la zone Nom. Saisissez un commentaire dans la zone Commentaire. Saisissez le code de la commande dans la zone de texte vide en utilisant les outils votre disposition.
292
PowerAMC
Chapitre 3
Vous pouvez retirer une commande de gnration dans le langage objet en pointant sur l'objet et en cliquant le bouton droit de la souris, puis en slectionnant Supprimer. Une bote de confirmation vous invite confirmer la suppression de la commande. Elle peut indiquer que la valeur par dfaut dfinie pour cette entre sera utilise, cette valeur par dfaut est stocke dans le template cach du langage objet. Pour plus d'informations sur ces entres, reportez-vous la section Ajout d'une catgorie ou d'une entre dans un fichier de ressources, dans le chapitre L'diteur de ressources du manuel Guide des fonctionnalits gnrales.
Catgorie Tasks
Une tche est une liste de commandes excuter l'issue de la gnration. Ces commandes doivent tre rfrences au sein des diffrentes tches dfinies pour la gnration, une commande non rfrence dans une tche ne peut pas tre excute. Vous trouverez la fin de cette section un exemple comportant une commande et une tche contenant cette commande. Le mcanisme d'excution de la commande fonctionne comme suit : lorsqu'une tche est slectionne dans la page Tches de la bote de dialogue de gnration, les commandes incluses dans la tches sont extraites et le template associ la commande est valu et excut. Les tches s'affichent dans la page Tches de la bote de dialogue de gnration et sont excutes dans un ordre dfini. Cet ordre peut tre facilement modifi en utilisant les flches de dplacement dans la page Tches.
293
Notions de base relatives l'diteur de langage objet Vous devez crer la commande avant de crer la tche qui contient cette commande : dans l'exemple suivant, la tche nomme Compile fait rfrence une commande nomme Javac (crite dans la colonne Nom). Le code de la commande Javac est situ dans la catgorie Commands.
1 2
Pointez sur la catgorie Generation\Tasks et cliquez le bouton droit de la souris. Slectionnez Nouvel lment. La nouvelle entre s'affiche avec un nom par dfaut.
3 4 5
Saisissez un nom dans la zone Nom. Saisissez un commentaire dans la zone Commentaire. Dans la zone de groupe Commandes, cliquez sur l'outil Ajouter des commandes, puis slectionnez la ou les commandes que vous souhaitez inclure dans la tche courante. Le nom de la ou des commandes s'affiche dans la colonne Nom.
<facultatif>> Double-cliquez sur la flche au dbut de la ligne pour afficher le code de la commande.
PowerAMC
294
Ouvrez le langage objet Java (LangageEditer le langage objet courant), crez et dfinissez une entre de commande nomme DoCommand dans la catgorie Generation\Commands :
295
Notions de base relatives l'diteur de langage objet Crez une entre de tches nomme Execute dans la catgorie Generation\Tasks, cliquez sur l'outil Ajouter des commandes, puis slectionnez DoCommand :
La nouvelle tche est disponible dans la page Commands de la bote de dialogue de gnration. Le commentaire de la tche est affich par dfaut. Si aucun commentaire n'a t fourni, le nom de la tche est affich.
296
PowerAMC
Chapitre 3
Catgorie Options
La catgorie Options permet de personnaliser le processus de gnration. Elle contient des entres par dfaut qui reprsentent des options de gnration. Vous pouvez dfinir des options de gnration partir de la catgorie Generation\Options dans le langage objet. Ces options dfinies par l'utilisateur sont disponibles aprs la cration dans la page Options de la bote de dialogue de gnration. Les options de gnration peuvent tre utilises dans tous les templates. Vous pouvez crer les diffrents types d'options suivants :
Type Boolenne Chane Liste Description Lorsque ce type est slectionn, une zone Valeur permet de choisir entre Oui et Non Lorsque ce type est slectionn, une zone Valeur permet de saisir la chane Lorsque ce type est slectionn, une zone Valeur s'affiche. Vous pouvez ajouter une valeur l'aide de l'outil Ajouter une valeur, puis cocher la case correspondante
Le format des valeurs peut tre affich comme suit dans la page Options de la bote de dialogue de gnration : lorsqu'un commentaire de valeur est spcifi, il est affich dans la liste la place du nom de la valeur. Par exemple, si une case Value:Attribute est coche dans une liste d'options nomme myListOption dans la catgorie Generation\Options, seule la description Attribute est affiche dans la page Options de la bote de dialogue de gnration. Toutefois, le GTL va valuer %GenOptions.MyListOption% Value. Vous pouvez trouver des options par dfaut dfinies dans le langage objet. Ces options ne sont pas rpertories ici car elles dpendent du langage objet que vous utilisez. Pour plus d'informations sur la liste des options de votre langage objet, reportez-vous au chapitre Gnration pour un langage dans le manuel Guide de l'utilisateur du Modle Orient Objet.
Pour dfinir une option pour la gnration :
1 2
Pointez sur la catgorie Generation\Options et cliquez le bouton droit de la souris. Slectionnez Nouveau. 297
Notions de base relatives l'diteur de langage objet La nouvelle entre s'affiche avec un nom par dfaut.
3 4 5 6 7 Exemple
Saisissez un nom dans la zone Nom. Slectionnez un type. Saisissez un commentaire dans la zone Commentaire. Selon le type de l'option, slectionnez ou saisissez la valeur dans la zone Valeur. Cliquez sur Appliquer.
Ouvrez le langage objet (LangageEditer le langage objet courant), puis crez une entre boolenne nomme UserDefined_Option dans la catgorie Generation\Options :
298
PowerAMC
Chapitre 3
La nouvelle option est disponible dans la page Options de la bote de dialogue de gnration (LangageGnrer du code Java). Le commentaire de l'option est affich par dfaut. Si aucun commentaire n'a t fourni, le nom de l'option est affich.
Exemple
La valeur d'une option peut tre obtenue dans un template l'aide de la syntaxe suivante :
'%' 'GenOptions.'<option-name> '%'
Par exemple, si vous dfinissez une option boolenne nomme GenerateComment, %GenOptions.GenerateComment% sera value true ou false dans un template, selon la valeur spcifie dans la page Options de la bote de dialogue de gnration.
Suppression d'une option de gnration
Vous pouvez supprimer une option de gnration dans le langage objet en pointant sur l'entre, en cliquant le bouton droit de la souris, puis en slectionnant Supprimer. Une bote de confirmation vous invite confirmer la suppression. Elle peut indiquer que la valeur par dfaut dfinie pour cette entre sera utilise, cette valeur par dfaut est stocke dans le template cach du langage objet. Pour plus d'informations sur ces entres, reportez-vous la section Ajout d'une catgorie ou d'une entre dans un fichier de ressources, dans le chapitre L'diteur de ressources du manuel Guide des fonctionnalits gnrales.
299
Catgorie Profile
Chaque objet a une catgorie identifie par son nom qui peut contenir les catgories suivantes : Criteria Stereotypes Extended attributes Generated Files et Templates Custom Check Custom Symbol et outil Methods Transformations Menus
Pour plus d'informations sur les vrifications personnalises et les symboles personnaliss, reportez-vous aux sections Dfinition d'une vrification personnalise dans un profil et Dfinition d'un symbole personnalis dans un profil, dans le chapitre Gestion des profils. Ces objets sont des mtaclasses (du mtamodle), puisque chaque objet est reprsent sous forme de mtaclasse dans le mtamodle. Pour plus d'informations sur le mtamodle, reportez-vous au chapitre Mtamodle public PowerAMC.
300
PowerAMC
Chapitre 3
Catgorie Shared
La catgorie Profile inclut galement une catgorie Shared utilise pour stocker des entres rutilisables telles que les types d'attributs tendus et les templates partags. Pour plus d'informations sur les lments de la catgorie Profile, reportez-vous au chapitre Gestion des profils.
Catgorie Criteria
Les critres (catgorie Criteria) sont un mcanisme d'extension gnrique pour les mtaclasses PowerAMC. Ils peuvent tre utiliss pour des objets qui ne prennent pas en charge les strotypes dans un MCD ou dans un MPD. Un critre dfinit une condition avec les expressions utilises dans la macro .if du langage de gnration par templates (GTL) de PowerAMC. Lorsqu'une instance de mtaclasse vrifie la condition du critre, les extensions dfinies sur le critre sont appliques cette instance. Pour plus d'informations sur les critres, reportez-vous la section Dfinition d'un critre, dans le chapitre Gestion des profils.
Catgorie Stereotypes
Dans la catgorie Stereotypes, vous pouvez dfinir des strotypes pour des objets qui prennent en charge les strotypes. Vous pouvez modifier les strotypes par dfaut existants, ou bien dfinir de nouveaux strotypes pour n'importe quel objet du modle.
301
Notions de base relatives l'diteur de langage objet Lorsque vous modifiez les valeurs d'un strotype pour un objet, les changements s'appliquent tous les objets existants et tous les objets du mme type que vous crez dans le modle. Pour plus d'informations sur les strotypes, reportez-vous la section Dfinition d'un strotype, dans le chapitre Gestion des profils.
302
PowerAMC
Chapitre 3
Exemple
Dans le langage objet C#, l'attribut tendu virtual est utilis pour identifier l'opration :
303
Notions de base relatives l'diteur de langage objet Dans la partie infrieure, on trouve une zone de texte qui affiche le code du template du fichier gnrer.
Pour plus d'informations sur l'entre Generated Files, reportez-vous la section Dfinition de templates et de fichiers gnrs dans un profil, dans le chapitre Gestion des profils. Codage Vous pouvez dfinir le format pour les fichiers gnrs dans la zone Codage pour chaque fichier que vous gnrez. Un format de codage par dfaut vous est fourni, mais vous pouvez galement cliquer sur le bouton Points de suspension en regard de la zone Codage pour changer de codage. Vous affichez ainsi la bote de dialogue Format de codage pour le texte en sortie dans laquelle vous pouvez slectionner un format dans une liste droulante. Cette bote de dialogue inclut les proprits suivantes :
Proprit Codage Annuler si perte de caractre Description Format de codage du fichier gnr Permet d'arrter la gnration si des caractres ne peuvent pas tre identifis et risquent d'tre perdus dans le codage courant
304
PowerAMC
Chapitre 3
Coloration syntaxique
Si la zone Nom de fichier de l'entre Generated Files est vide, aucun fichier n'est gnr. Toutefois, il peut s'avrer utile de laisser cette colonne vide de faon afficher un aperu du contenu du fichier avant gnration. Vous pouvez utiliser cet effet la page Aperu de l'objet correspondant tout moment. Au cours de la gnration, le template dans Nom de fichier est valu et si l'une des extensions suivantes est rencontre, le code est affich dans l'diteur et avec la coloration syntaxique correspondante (exemple : .cs pour C++) :
Extension .java .c .h .sru .html .xml .xsd .dtd .xmi .jsp .wsdl .asp .aspx .asmx .cpp .hpp .cs .cls .vb .vbs .sql .idl .txt Coloration syntaxique Java C C PowerBuilder HTML XML XML XML XML XML XML XML XML XML CPP CPP C++ Visual Basic 6 Visual Basic 6 VB Script SQL CORBA Editeur de texte par dfaut
305
Notions de base relatives l'diteur de langage objet Il y a deux scnarii possibles lors de la gnration : Fichier gnr Un fichier est gnr Aucun fichier n'est gnr
Le mcanisme de la gnration de fichiers est le suivant pour chaque objet ayant une entre Generated Files qui n'est pas vide :
Un fichier est gnr lorsque la zone Nom de fichier contient le nom du fichier ou le template du nom du fichier gnrer. Vous pouvez saisir le nom du fichier gnrer comme suit : nom_fichier.suffixe (par exemple, ejb-jar.xml) %suffixenom_fichier% (par exemple, %asmxFileName%)
306
PowerAMC
Chapitre 3
Dans cet exemple, un fichier appel ejb-jar.xml situ dans le dossier METAINF est gnr.
Dans cet exemple, aucun fichier n'est gnr car le contenu de la zone Nom de fichier commence par un caractre . (point). Le contenu du fichier n'est disponible que dans la page Aperu de la feuille de proprits du composant (EJB - Entity Bean).
307
Catgorie Templates
Les templates sont utiliss pour dfinir ce que vous souhaitez gnrer pour l'objet courant. Pour plus d'informations sur l'utilisation des templates, reportez-vous la section Dfinition de templates, dans le chapitre Guide de rfrence de gnration. Exemple Le template suivant est dfini pour les oprations dans Java. Il dfinit les rgles relatives l'affichage de la visibilit. Il est galement disponible dans la catgorie Templates pour les attributs et les classes.
Pour plus d'informations sur la catgorie Templates, reportez-vous la section Dfinition de templates et de fichiers gnrs dans un profil, dans le chapitre Gestion des profils.
308
PowerAMC
Chapitre 3
Vous pouvez afficher tous les templates du mme nom en utilisant la touche F12. Pour ce faire, ouvrez un template, placez le curseur sur un nom de template entre caractres %, puis appuyez sur la touche F12. Vous affichez ainsi une fentre qui affiche tous les templates avec en prfixe le nom de la mtaclasse correspondante. Exemple : placez le curseur sur %definition% dans un template, appuyez sur F12. La fentre affiche tous les <nom_mtaclasse>::definition. Vous pouvez ensuite double-cliquer sur le template de votre choix dans la fentre Parcourir afin de placer le curseur directement sur le template slectionn. Comment les fichiers gnrs et les templates fonctionnent ensemble ? Dans l'exemple suivant, la catgorie Generated Files pour les classificateurs contient une entre 'Java Source'. Cette entre contient le template nomm %source% dans la zone de texte.
309
Notions de base relatives l'diteur de langage objet Lorsque vous ouvrez la catgorie Templates pour les classificateurs, le template nomm 'source' est affich. Lorsque le fichier est gnr pour un classificateur donn ou pour les instances d'un classificateur avec un strotype ou critre slectionn, le template valu est le template 'source'. Le nom du fichier gnr correspond l'entre dans la zone Nom de fichier.
Roles d'association
Vous pouvez dfinir des collections d'implmentation pour les associations. Les attributs d'association valus sont : Nom de rle, Visibilit, Multiplicit, Implmentation (RoleAContainer ou RoleBContainer), Classe de mise en oeuvre, Ordre, Navigable, Modifiable, Valeur initiale, Persistant, Volatile, Multiplicit minimale, Multiplicit maximale, Classificateur (ClassA ou ClassB). Vous devez dfinir le rle actif dans l'association l'aide des attributs RoleAActive ou RoleBActive. Lorsque vous rfrencez par exemple RoleAActive, le rle A de l'association devient actif et le script d'implmentation peut rcuprer les attributs correspondant au rle A.
310
PowerAMC
C H A P T E R
A propos de ce document
Ce document dcrit la structure et le contenu des langages de processus dans un MPM. Il sert de rfrence pour les langages de processus pris en charge par PowerAMC. Vous y trouverez une prsentation gnrale de l'utilisation d'un langage de processus et ce, quelles que soient ses caractristiques.
Section Prsentation du langage de processus Notions de base relatives l'diteur de langage de processus Page 312 314
Sommaire
Avant de commencer
Ne modifiez pas un langage de processus fourni avec PowerAMC. Crez toujours vos nouveaux langages de processus partir des fichiers d'origine. Un langage de processus est enregistr dans un fichier dont le nom est dot du suffixe XPL. Les modifications que vous apportez dans un langage de processus peuvent changer la faon dont PowerAMC fonctionne, tout particulirement en ce qui concerne la gnration d'objets. Vous devez tester en profondeur les objets gnrs. Pour plus d'informations sur la cration d'un langage de processus par copie d'un langage de processus existant, reportez-vous la section Cration d'un fichier de ressources, dans le chapitre L'diteur de ressources du manuel Guide des fonctionnalits gnrales.
311
Ne modifiez pas les langages de processus fournis avec PowerAMC. Pour chaque langage de processus que vous souhaitez modifier, vous devez crer un nouveau langage de processus. Pour ce faire, vous devez crer un nouveau langage de processus partir de la bote de dialogue Liste des langages de processus (OutilsRessourcesLangages objet), dfinir un nom et slectionner le fichier d'origine dans la liste droulante Copier depuis. Vous pouvez ainsi crer un nouveau langage de processus identique au fichier d'origine (sauf en ce qui concerne le nom). Qu'est-ce qu'un langage de processus ? Le langage de processus est un composant requis lorsque vous travaillez avec des Modles de Processus Mtiers (MPM). Chaque langage de processus a sa propre dfinition de langage de processus au format XML qui contient les spcifications pour un langage de processus particulier dans un format lisible par un MPM. Il fournit la syntaxe et les rgles de gnration des objets et la mise en oeuvre des strotypes, des scripts et des constantes pour un langage de processus. Chaque MPM est par dfaut attach un langage de processus. Lorsque vous crez un nouveau MPM, vous devez choisir un langage de processus : vous pouvez crer un nouveau langage de processus, ou bien utiliser l'un des langages de processus fournis avec le MPM. La dfinition d'un langage de processus est disponible dans sa feuille de proprits (OutilsRessourcesLangages de processus. Vous pouvez slectionner et configurer des paramtres utiliss lors de la dfinition des objets ou de la gnration partir d'un MPM. Que contient un langage de processus ? Tous les langages de processus ont la mme structure constitue d'un certain nombre de catgories. Une catgorie peut contenir d'autres catgories, des entres et des valeurs. Ces entres sont des paramtres reconnaissables par un MPM. Les valeurs pour les entres de langage de processus varient selon le langage considr. Certaines entres peuvent ne pas tre disponibles si la fonctionnalit ne s'applique pas au langage de processus.
312
PowerAMC
Chapter 4
Mme si un langage de processus particulier est utilis pour illustrer un exemple, le mcanisme expliqu dans ce chapitre s'applique tous les langages de processus pris en charge dans un MPM.
313
Slectionnez LangageEditer le langage de processus courant. ou Slectionnez OutilsRessourcesLangages de processus puis doublecliquez sur un langage de processus existant. La feuille de proprits du langage de processus s'affiche.
L'diteur de langage de processus permet de naviguer entre les diffrentes catgories et entres du langage de processus. Selon l'lment slectionn, le contenu de la partie droite de la fentre change. Le terme Mtaclasse est utilis dans la documentation PowerAMC pour identifier un objet en tant que mtaclasse. Les mtaclasses contenues dans l'arborescence de l'diteur de ressources sont des catgories. Pour plus d'informations sur la manipulation des catgories et entres dans l'diteur de langages de processus, reportez-vous au chapitre L'diteur de ressources dans le manuel Guide des fonctionnalits gnrales.
314
PowerAMC
Chapter 4
Un langage de processus a une feuille de proprits disponible lorsque vous cliquez sur le noeud racine dans l'arborescence de l'diteur de langage de processus. Cette dernire inclut les proprits suivantes :
Proprit Nom Code Nom de fichier Description Nom du langage de processus Code du langage de processus Chemin d'accs et nom du fichier du langage de processus. Cette zone est remplie lorsque le langage de processus est partag. Si le langage de processus est une copie, la zone est vide. Vous ne pouvez pas modifier le contenu de cette zone Classification utilise pour impliquer un certain comportement dans le modle objet. Dans PowerAMC, la famille est utilise pour activer certaines fonctionnalits dans le modle. De telles fonctionnalits n'existent pas par dfaut dans le MPM standard. Voir l'exemple ci-aprs Sous-classification qui peut tre combine avec la classification en familles pour impliquer un certain comportement dans le langage de processus Affiche les templates de gnration utiliss pour le texte gnr dans la page Aperu des feuilles de proprits d'objets Informations supplmentaires relatives au langage de processus
Famille
Sous-famille
Activer le suivi
Commentaire
315
Famille et sousfamille
Les proprits Famille et Sous-famille impliquent certains comportements dans le langage de processus. Par exemple, les langages de processus de la famille Service Orchestration sont SOA, BPEL4WS et Sybase Integration Orchestrator. La sous-famille est utilise pour affiner les fonctionnalits dfinies pour une famille particulire.
Activer le suivi
La case Activer le suivi permet de prvisualiser les templates utiliss lors de la gnration. Avant mme de lancer la gnration, vous pouvez afficher la page Aperu de l'objet impliqu dans la gnration pour voir ses templates et utiliser l'outil Ractualiser pour les afficher. Lorsque vous double-cliquez sur une ligne de suivi dans la page Aperu, la dfinition de template correspondante s'affiche dans l'diteur de ressources, dans la catgorie Profile\Objet\Templates. Le code du template peut tre affich dans des couleurs distinctes.
Catgorie Generation
La catgorie Generation contient des catgories et des entres permettant de dfinir et d'activer un processus de gnration. Vous pouvez utiliser les catgories suivantes : Commands Tasks Options
Le processus de gnration PowerAMC est dfini dans le chapitre Guide de rfrence de gnration de ce manuel. Nous vous recommandons de commencer par lire ce chapitre afin de vous familiariser avec les concepts et fonctionnalits du processus de gnration.
316
PowerAMC
Chapter 4
Catgorie Commands
La catgorie Commands permet d'crire des commandes de gnration. Les commande de gnration peuvent tre excutes la fin du processus de gnration, une fois tous les fichiers gnrs. Toutes les commandes crites dans la catgorie Commands sont disponibles aprs la cration dans la page Tches de la bote de dialogue de gnration, elles peuvent alors tre excutes la fin de la gnration. Vous pouvez trouver des commandes par dfaut dans le langage de processus courant. Toutes les commandes par dfaut ne sont pas rpertories ici car elles dpendent entirement du langage de processus utilis. Les commandes doivent tre incluses au sein de tches pour tre excutes. Pour plus d'informations sur le rle des tches, reportez-vous la section Catgorie Tasks. Les commandes sont spcifiquement lies un langage de processus. Le texte qui dfinit le code de la commande est crit l'aide du langage de gnration par template (GTL, Generation Template Language). Pour plus d'informations sur le GTL, reportez-vous au chapitre Guide de rfrence de la gnration. Les macros spcifiques sont disponibles dans le cadre de l'excution des commandes. Pour plus d'informations sur les macros, reportez-vous la section Utilisation de macros dans le chapitre Guide de rfrence de gnration.
Pour dfinir une commande pour la gnration :
1 2
Pointez sur la catgorie Generation\Commands dans le langage de processus et cliquez le bouton droit de la souris. Slectionnez Nouvel lment. La nouvelle entre s'affiche avec un nom par dfaut.
3 4
Saisissez un nom dans la zone Nom. Saisissez un commentaire dans la zone Commentaire.
317
Notions de base relatives l'diteur de langage de processus 5 Saisissez le code de la commande dans la zone de texte vide en utilisant les outils votre disposition.
Vous pouvez retirer une commande de gnration dans le langage de processus en pointant sur l'objet et en cliquant le bouton droit de la souris, puis en slectionnant Supprimer. Une bote de confirmation vous invite confirmer la suppression de la commande. Elle peut indiquer que la valeur par dfaut dfinie pour cette entre sera utilise, cette valeur par dfaut est stocke dans le template cach du langage de processus. Pour plus d'informations sur ces entres, reportez-vous la section Ajout d'une catgorie ou d'une entre dans un fichier de ressources, dans le chapitre L'diteur de ressources du manuel Guide des fonctionnalits gnrales.
Catgorie Tasks
Une tche est une liste de commandes excuter l'issue de la gnration. Ces commandes doivent tre rfrences au sein des diffrentes tches dfinies pour la gnration, une commande non rfrence dans une tche ne peut pas tre excute. Vous trouverez la fin de cette section un exemple comportant une commande et une tche contenant cette commande. 318
PowerAMC
Chapter 4
Le mcanisme d'excution de la commande fonctionne comme suit : lorsqu'une tche est slectionne dans la page Tches de la bote de dialogue de gnration, les commandes incluses dans la tches sont extraites et le template associ la commande est valu et excut. Les tches s'affichent dans la page Tches de la bote de dialogue de gnration et sont excutes dans un ordre dfini. Cet ordre peut tre facilement modifi en utilisant les flches de dplacement dans la page Tches. Vous devez crer la commande avant de crer la tche qui contient cette commande.
Pour dfinir une tche pour la gnration :
1 2
Pointez sur la catgorie Generation\Tasks et cliquez le bouton droit de la souris. Slectionnez Nouvel lment. La nouvelle entre s'affiche avec un nom par dfaut.
3 4 5
Saisissez un nom dans la zone Nom. Saisissez un commentaire dans la zone Commentaire. Dans la zone de groupe Commandes, cliquez sur l'outil Ajouter des commandes, puis slectionnez la ou les commandes que vous souhaitez inclure dans la tche courante. Le nom de la ou des commandes s'affiche dans la colonne Nom.
6 7
<facultatif>> Double-cliquez sur la flche au dbut de la ligne pour afficher le code de la commande. Cliquez sur Appliquer.
319
Exemple
Ouvrez le langage de processus Sybase Integration Orchestrator (LangageEditer le langage de processus courant), crez et dfinissez une entre de commande nomme CreateDefaultFolders dans la catgorie Generation\Commands :
320
PowerAMC
Chapter 4
Crez une entre de tches nomme CreateXSDFiles dans la catgorie Generation\Tasks, vous pouvez vous assurer qu'elle contient la commande CreateXSDFiles :
La nouvelle tche est disponible dans la page Commands de la bote de dialogue de gnration. Le commentaire de la tche est affich par dfaut. Si aucun commentaire n'a t fourni, le nom de la tche est affich.
321
Catgorie Options
La catgorie Options permet de personnaliser le processus de gnration. Elle contient des entres par dfaut qui reprsentent des options de gnration. Vous pouvez dfinir des options de gnration partir de la catgorie Generation\Options dans le langage de processus. Ces options dfinies par l'utilisateur sont disponibles aprs la cration dans la page Options de la bote de dialogue de gnration. Les options de gnration peuvent tre utilises dans tous les templates. Vous pouvez crer les diffrents types d'options suivants :
Type Boolenne Chane Liste Description Lorsque ce type est slectionn, une zone Valeur permet de choisir entre Oui et Non Lorsque ce type est slectionn, une zone Valeur permet de saisir la chane Lorsque ce type est slectionn, une zone Valeur s'affiche. Vous pouvez ajouter une valeur l'aide de l'outil Ajouter une valeur, puis cocher la case correspondante
Le format des valeurs peut tre affich comme suit dans la page Options de la bote de dialogue de gnration : lorsqu'un commentaire de valeur est spcifi, il est affich dans la liste la place du nom de la valeur. Vous pouvez trouver des options par dfaut dfinies dans le langage de processus. Ces options ne sont pas rpertories ici car elles dpendent du langage de processus que vous utilisez. Pour plus d'informations sur la liste des options de votre langage de processus, reportez-vous au chapitre Gnration pour un langage dans le manuel Guide de l'utilisateur du Modle Orient Objet. 1 2 Pointez sur la catgorie Generation\Options et cliquez le bouton droit de la souris. Slectionnez Nouveau. La nouvelle entre s'affiche avec un nom par dfaut.
3 4 5 322
Saisissez un nom dans la zone Nom. Slectionnez un type. Saisissez un commentaire dans la zone Commentaire.
PowerAMC
Chapter 4 6 7 Exemple
Selon le type de l'option, slectionnez ou saisissez la valeur dans la zone Valeur. Cliquez sur Appliquer.
Ouvrez le langage de processus (LangageEditer le langage de processus courant), puis crez une entre boolenne nomme Options_Utilisateur dans la catgorie Generation\Options :
323
Notions de base relatives l'diteur de langage de processus La nouvelle option est disponible dans la page Options de la bote de dialogue de gnration. Le commentaire de l'option est affich par dfaut. Si aucun commentaire n'a t fourni, le nom de l'option est affich.
Exemple
La valeur d'une option peut tre obtenue dans un template l'aide de la syntaxe suivante :
'%' 'GenOptions.'<option-name> '%'
Par exemple, si vous dfinissez une option boolenne nomme GenerateComment, %GenOptions.GenerateComment% sera value true ou false dans un template, selon la valeur spcifie dans la page Options de la bote de dialogue de gnration.
Suppression d'une option de gnration
Vous pouvez supprimer une option de gnration dans le langage de processus en pointant sur l'entre, en cliquant le bouton droit de la souris, puis en slectionnant Supprimer. Une bote de confirmation vous invite confirmer la suppression. Elle peut indiquer que la valeur par dfaut dfinie pour cette entre sera utilise, cette valeur par dfaut est stocke dans le template cach du langage de processus. Pour plus d'informations sur ces entres, reportez-vous la section Ajout d'une catgorie ou d'une entre dans un fichier de ressources, dans le chapitre L'diteur de ressources du manuel Guide des fonctionnalits gnrales.
324
PowerAMC
Chapter 4
Catgorie Settings
La catgorie Settings contient des lments permettant de personnaliser et de grer les fonctionnalits de gnration de MPM. Les lments spcifiques un langage de processus ne sont pas dtaills dans cette section.
Catgorie Implementation Description Disponible uniquement pour un MPM excutable. Rassemble les options qui influencent les possibilits de mise en oeuvre du processus Disponible uniquement pour un MPM excutable. Rassemble les options qui permettent de gnrer les donnes dans le langage Rassemble des objets qui permettent de modliser le graphe des activits (dbut, fin, dcision, synchronisation, transition...)
DataHandling
Choreography
Catgorie Implementation
La catgorie Implementation (uniquement disponible pour le MPM excutable) contient les valeurs constantes suivantes dfinies par dfaut :
Constante LoopTypeList OperationTypeList Valeur par dfaut Cette liste dfinit le type de boucle pris en charge par le langage. La valeur doit tre un entier Cette liste dfinit le type d'opration pris en charge par le langage. Une opration d'un type non pris en charge ne peut pas tre associe un processus. La valeur doit tre un entier Ce paramtre permet la dfinition d'une corrlation pour un message mis Ce paramtre permet un processus d'tre mis en oeuvre par un autre processus
EnableEmissionCorrelation EnableProcessReuse
325
La valeur 0 (valeur par dfaut) indique que le type d'action ne peut pas tre dduit et doit tre spcifi La valeur 1 est rserve pour les langages dans lesquels le processus doit recevoir une opration Demande-rponse et une opration One-way et doit appeler une opration Request-response et une opration Notification La valeur 2 est l'inverse pour les langages dans lesquels le processus reoit systmatiquement une opration Sollicitation-Rponse et une opration Notification tandis que les oprations Request-response et One-way sont toujours appeles
Exemple
Dans le langage de processus BPEL4WS, la catgorie Settings est dveloppe pour montrer la liste des valeurs pour la liste Type d'opration.
326
PowerAMC
Chapter 4
Catgorie DataHandling
La catgorie DataHandling (uniquement disponible pour le MPM excutable) contient les valeurs constantes suivantes dfinies par dfaut :
Constante EnableMessageOnFlow Description Ce paramtre indique si un format de message peut ou non tre associ un flux. La valeur par dfaut est Oui Ce paramtre permet une variable de stocker la totalit d'un format de message. Dans ce cas, le format de message apparatra dans la liste droulante Type de donnes de la variable
EnableMessageVariable
Catgorie Choreography
La catgorie Choreography contient les valeurs constantes suivantes dfinies par dfaut :
Constante EnableMultipleStarts Description Lorsque dfini Non, ce paramtre vrifie qu'un processus composite ne comporte pas plusieurs dbuts Lorsque dfini Non, ce paramtre vrifie qu'aucun flux ou objet de chorgraphie (dbut, fin, dcision...) n'est dfini directement sous le modle ou sous un package. Ces objets peuvent tre dfinis uniquement sous un processus composite
EnableTopLevelChoreography
327
Catgorie Profile
Chaque mtaclasse dans le profil a une catgorie identifie par son nom qui contient plusieurs catgories telles que Stereotypes, Extended attributes, Methods, etc. Le profil est un mcanisme d'extension utilis pour personnaliser un mtamodle en lui ajoutant des smantiques supplmentaires. Les profils sont utiliss pour crer des catgories d'objets (strotypes et critres), personnaliser les graphiques d'objets, ajouter des mtadonnes supplmentaires aux objets (attributs tendus), dfinir des possibilits de gnration nouvelles ou modifies (templates), ajouter des mthodes, des transformations, et des collections tendues sur les mtaclasses et menus. Pour plus d'informations sur la catgorie Profile, reportez-vous au chapitre Gestion des profils.
328
PowerAMC
C H A P I T R E
A propos de ce document
Ce document dcrit la structure et le contenu des langages XML dans un modle XML. Il sert de rfrence pour les langages XML pris en charge par PowerAMC. Vous y trouverez une prsentation gnrale de l'utilisation d'un langage XML et ce, quelles que soient ses caractristiques.
Section Prsentation du langage XML Notions de base relatives l'diteur de langage XML Page 330 331
Sommaire
Avant de commencer
Ne modifiez pas un langage XML fourni avec PowerAMC. Crez toujours vos nouveaux langages XML partir des fichiers d'origine. Un langage XML est enregistr dans un fichier dont le nom est dot du suffixe XPL. Les modifications que vous apportez dans un langage XML peuvent changer la faon dont PowerAMC fonctionne, tout particulirement en ce qui concerne la gnration d'objets. Vous devez tester en profondeur les objets gnrs. Pour plus d'informations sur la cration d'un langage XML par copie d'un langage XML existant, reportez-vous la section Cration d'un fichier de ressources, dans le chapitre L'diteur de ressources du manuel Guide des fonctionnalits gnrales.
329
Ne modifiez pas les langages XML fournis avec PowerAMC. Pour chaque langage XML que vous souhaitez modifier, vous devez crer un nouveau langage XML. Pour ce faire, vous devez crer un nouveau langage XML partir de la bote de dialogue Liste des langages XML (OutilsRessourcesLangages XML), dfinir un nom et slectionner le fichier d'origine dans la liste droulante Copier depuis. Vous pouvez ainsi crer un nouveau langage XML identique au fichier d'origine (sauf en ce qui concerne le nom). Qu'est-ce qu'un langage XML ? Le langage XML est un composant requis lorsque vous travaillez avec des modles XML. Chaque langage XML a sa propre dfinition de langage XML au format XML qui contient les spcifications pour un langage XML particulier dans un format lisible par un modle XML. Il fournit la syntaxe et les rgles de cration des objets et met en oeuvre les strotypes, types de donnes, scripts et constantes pour un langage XML. Chaque modle XML est par dfaut attach un langage XML. Lorsque vous crez un nouveau modle XML, vous devez choisir un langage XML : vous pouvez crer un nouveau langage XML, ou bien utiliser l'un des langages XML fournis avec le modle XML. La dfinition d'un langage XML est disponible dans sa feuille de proprits (OutilsRessourcesLangages XML. Vous pouvez slectionner et configurer des paramtres utiliss lors de la dfinition des objets ou de la gnration partir d'un modle XML. Que contient un langage XML ? Tous les langages XML ont la mme structure constitue d'un certain nombre de catgories. Une catgorie peut contenir d'autres catgories, des entres et des valeurs. Ces entres sont des paramtres reconnaissables par un modle XML. Les valeurs pour les entres de langage XML varient selon le langage considr. Certaines entres peuvent ne pas tre disponibles si la fonctionnalit ne s'applique pas au langage XML. Exemples de langage XML Mme si un langage XML particulier est utilis pour illustrer un exemple, le mcanisme expliqu dans ce chapitre s'applique tous les langages XML pris en charge dans un modle XML.
PowerAMC
330
Slectionnez LangageEditer le langage XML courant. ou Slectionnez OutilsRessourcesLangages XML puis double-cliquez sur un langage XML existant. La feuille de proprits du langage XML s'affiche.
L'diteur de langage XML permet de naviguer entre les diffrentes catgories et entres du langage XML. Selon l'lment slectionn, le contenu de la partie droite de la fentre change. Le terme Mtaclasse est utilis dans la documentation PowerAMC pour identifier un objet en tant que mtaclasse. Les mtaclasses contenues dans l'arborescence de l'diteur de ressources sont des catgories. Pour plus d'informations sur la manipulation des catgories et entres dans l'diteur de langages XML, reportez-vous au chapitre L'diteur de ressources dans le manuel Guide des fonctionnalits gnrales.
331
Un langage XML a une feuille de proprits disponible lorsque vous cliquez sur le noeud racine dans l'arborescence de l'diteur de langage XML. Cette dernire inclut les proprits suivantes :
Proprit Nom Code Nom de fichier Description Nom du langage XML Code du langage XML Chemin d'accs et nom du fichier du langage XML. Cette zone est remplie lorsque le langage XML est partag. Si le langage XML est une copie, la zone est vide. Vous ne pouvez pas modifier le contenu de cette zone Classification utilise pour impliquer un certain comportement dans le modle XML. Dans PowerAMC, la famille est utilise pour activer certaines fonctionnalits dans le modle. De telles fonctionnalits n'existent pas par dfaut dans le modle XML standard Sous-classification qui peut tre combine avec la classification en familles pour impliquer un certain comportement dans le langage XML Affiche les templates de gnration utiliss pour le texte gnr dans la page Aperu des feuilles de proprits d'objets Informations supplmentaires relatives au langage XML
Famille
Sous-famille
Activer le suivi
Commentaire
332
PowerAMC
Activer le suivi
La case Activer le suivi permet de prvisualiser les templates utiliss lors de la gnration. Avant mme de lancer la gnration, vous pouvez afficher la page Aperu de l'objet impliqu dans la gnration pour voir ses templates et utiliser l'outil Ractualiser pour les afficher. Lorsque vous double-cliquez sur une ligne de suivi dans la page Aperu, la dfinition de template correspondante s'affiche dans l'diteur de ressources, dans la catgorie Profile\Objet\Templates. Le code du template peut tre affich dans des couleurs distinctes.
Catgorie Generation
La catgorie Generation contient des catgories et des entres permettant de dfinir et d'activer un processus de gnration. Vous pouvez utiliser les catgories suivantes : Commandes de gnration Tches de gnration Options de gnration
Le processus de gnration PowerAMC est dfini dans le chapitre Guide de rfrence de gnration de ce manuel. Nous vous recommandons de commencer par lire ce chapitre afin de vous familiariser avec les concepts et fonctionnalits du processus de gnration.
Catgorie Commands
La catgorie Commands permet d'crire des commandes de gnration. Les commande de gnration peuvent tre excutes la fin du processus de gnration, une fois tous les fichiers gnrs. Toutes les commandes crites dans la catgorie Commands sont disponibles aprs la cration dans la page Tches de la bote de dialogue de gnration, elles peuvent alors tre excutes la fin de la gnration. Vous pouvez trouver des commandes par dfaut dans le langage XML courant. Toutes les commandes par dfaut ne sont pas rpertories ici car elles dpendent entirement du langage XML utilis. Les commandes doivent tre incluses au sein de tches pour tre excutes. Pour plus d'informations sur le rle des tches, reportez-vous la section Catgorie Tasks.
Documentation utilisateur avance
333
Notions de base relatives l'diteur de langage XML Les commandes sont lies un langage XML. Le texte qui dfinit le code de la commande est crit l'aide du langage de gnration par templates (GTL). Pour plus d'informations sur le GTL, reportez-vous au chapitre Guide de rfrence de gnration. Les macros spcifiques sont disponibles dans le cadre de l'excution des commandes. Pour plus d'informations sur les macros, reportez-vous la section Utilisation de macros dans le chapitre Guide de rfrence de gnration.
Pour dfinir une commande pour la gnration :
1 2
Pointez sur la catgorie Generation\Commands dans le langage XML et cliquez le bouton droit de la souris. Slectionnez Nouvel lment. La nouvelle entre s'affiche avec un nom par dfaut.
3 4 5 6
Saisissez un nom dans la zone Nom. Saisissez un commentaire dans la zone Commentaire. Saisissez le code de la commande dans la zone de texte vide en utilisant les outils votre disposition. Cliquez sur Appliquer.
Suppression d'une commande de gnration
Vous pouvez retirer une commande de gnration dans le langage XML en pointant sur l'objet et en cliquant le bouton droit de la souris, puis en slectionnant Supprimer. Une bote de confirmation vous invite confirmer la suppression de la commande. Elle peut indiquer que la valeur par dfaut dfinie pour cette entre sera utilise, cette valeur par dfaut est stocke dans le template cach du langage XML. Pour plus d'informations sur ces entres, reportez-vous la section Ajout d'une catgorie ou d'une entre dans un fichier de ressources, dans le chapitre L'diteur de ressources du manuel Guide des fonctionnalits gnrales.
334
PowerAMC
Catgorie Tasks
Une tche est une liste de commandes excuter l'issue de la gnration. Ces commandes doivent tre rfrences au sein des diffrentes tches dfinies pour la gnration, une commande non rfrence dans une tche ne peut pas tre excute. Vous trouverez la fin de cette section un exemple comportant une commande et une tche contenant cette commande. Le mcanisme d'excution de la commande fonctionne comme suit : lorsqu'une tche est slectionne dans la page Tches de la bote de dialogue de gnration, les commandes incluses dans la tches sont extraites et le template associ la commande est valu et excut. Les tches s'affichent dans la page Tches de la bote de dialogue de gnration et sont excutes dans un ordre dfini. Cet ordre peut tre facilement modifi en utilisant les flches de dplacement dans la page Tches. Vous devez crer la commande avant de crer la tche qui contient cette commande.
Pour dfinir une tche pour la gnration :
1 2
Pointez sur la catgorie Generation\Tasks et cliquez le bouton droit de la souris. Slectionnez Nouvel lment. La nouvelle entre s'affiche avec un nom par dfaut.
3 4 5
Saisissez un nom dans la zone Nom. Saisissez un commentaire dans la zone Commentaire. Dans la zone de groupe Commandes, cliquez sur l'outil Ajouter des commandes, puis slectionnez la ou les commandes que vous souhaitez inclure dans la tche courante. Le nom de la ou des commandes s'affiche dans la colonne Nom.
6 7
<facultatif>> Double-cliquez sur la flche au dbut de la ligne pour afficher le code de la commande. Cliquez sur Appliquer.
335
Catgorie Options
La catgorie Options permet de personnaliser le processus de gnration. Elle contient des entres par dfaut qui reprsentent des options de gnration. Vous pouvez dfinir des options de gnration partir de la catgorie Generation\Options dans le langage XML. Ces options dfinies par l'utilisateur sont disponibles aprs la cration dans la page Options de la bote de dialogue de gnration. Les options de gnration peuvent tre utilises dans tous les templates. Vous pouvez crer les diffrents types d'options suivants :
Type Boolenne Chane Liste Description Lorsque ce type est slectionn, une zone Valeur permet de choisir entre Oui et Non Lorsque ce type est slectionn, une zone Valeur permet de saisir la chane Lorsque ce type est slectionn, une zone Valeur s'affiche. Vous pouvez ajouter une valeur l'aide de l'outil Ajouter une valeur, puis cocher la case correspondante
Le format des valeurs peut tre affich comme suit dans la page Options de la bote de dialogue de gnration : lorsqu'un commentaire de valeur est spcifi, il est affich dans la liste la place du nom de la valeur. Vous pouvez trouver des options par dfaut dfinies dans le langage XML. Ces options ne sont pas rpertories ici car elles dpendent du langage XML que vous utilisez. Pour plus d'informations sur la liste des options de votre langage XML, reportez-vous au chapitre Gnration pour un langage dans le manuel Guide de l'utilisateur du Modle Orient Objet. 1 2 Pointez sur la catgorie Generation\Options et cliquez le bouton droit de la souris. Slectionnez Nouveau. La nouvelle entre s'affiche avec un nom par dfaut.
3 4 5 336
Saisissez un nom dans la zone Nom. Slectionnez un type. Saisissez un commentaire dans la zone Commentaire.
PowerAMC
Chapitre 5 Guide de rfrence du langage XML 6 7 Exemple Selon le type de l'option, slectionnez ou saisissez la valeur dans la zone Valeur. Cliquez sur Appliquer.
Ouvrez le langage XML (LangageEditer le langage XML courant), puis crez une entre boolenne nomme UserDefined_Option dans la catgorie Generation\Options :
337
Notions de base relatives l'diteur de langage XML La nouvelle option est disponible dans la page Options de la bote de dialogue de gnration. Le commentaire de l'option est affich par dfaut. Si aucun commentaire n'a t fourni, le nom de l'option est affich.
Vous pouvez supprimer une option de gnration dans le langage XML en pointant sur l'entre, en cliquant le bouton droit de la souris, puis en slectionnant Supprimer. Une bote de confirmation vous invite confirmer la suppression. Elle peut indiquer que la valeur par dfaut dfinie pour cette entre sera utilise, cette valeur par dfaut est stocke dans le template cach du langage XML. Pour plus d'informations sur ces entres, reportez-vous la section Ajout d'une catgorie ou d'une entre dans un fichier de ressources, dans le chapitre L'diteur de ressources du manuel Guide des fonctionnalits gnrales.
338
PowerAMC
Catgorie Settings
La catgorie Settings contient la sous-catgorie Data types qui montre la correspondance entre les types de donnes internes et ceux du langage XML. Les types de donnes suivants sont dfinis par dfaut :
Type de donnes ConceptualDataTypes Description La colonne Valeur indique le type de donnes de langage XML utilis pour la gnration des modles MCD et MPD. Les types de donnes conceptuels sont les types de donnes internes de PowerAMC, et ils ne peuvent pas tre modifis Types de donnes pour les gnrations depuis le modle XML
XsmDataTypes
Catgorie Profile
Chaque mtaclasse dans le profil a une catgorie identifie par son nom qui contient plusieurs catgories telles que Stereotypes, Extended attributes, Methods, etc. Le profil est un mcanisme d'extension utilis pour personnaliser un mtamodle en lui ajoutant des smantiques supplmentaires. Les profils sont utiliss pour crer des catgories d'objets (strotypes et critres), personnaliser les graphiques d'objets, ajouter des mtadonnes supplmentaires aux objets (attributs tendus), dfinir des possibilits de gnration nouvelles ou modifies (templates), ajouter des mthodes, des transformations, et des collections tendues sur les mtaclasses et menus. Pour plus d'informations sur la catgorie Profile, reportez-vous au chapitre Gestion des profils.
339
Notions de base relatives l'diteur de langage XML Vous dfinissez un profil de transformation dans la catgorie Transformation Profiles d'un fichier de ressources. Chaque profil est identifi par le modle dans lequel le fichier de ressource est dfini, par un type de modle, une famille et une sous famille.
340
PowerAMC
C H A P I T R E
Sujet
Ce document dcrit la structure et le contenu d'une dfinition tendue de modle PowerAMC. Ce guide sert de rfrence pour l'utilisation des dfinitions tendues de modle.
Section Gestion des dfinitions tendues de modle Utilisation des dfinitions tendues de modle Gnration pour une dfinition tendue de modle Page 342 353 366
Sommaire
341
Il est prfrable de ne pas modifier les dfinitions tendues de modle fournies avec PowerAMC. Pour chaque dfinition tendue de modle d'origine que vous souhaitez modifier, crez une nouvelle dfinition tendue de modle. Pour ce faire, vous devez crer la nouvelle dfinition tendue de modle la partir de la bote de dialogue Liste des dfinitions tendues de modle, dfinir un nom et slectionner le fichier d'origine dans la liste droulante Copier depuis. Cette mthode permet de crer une nouvelle dfinition tendue de modle identique au fichier d'origine, except son nom. Pour plus d'informations sur la cration d'une nouvelle dfinition tendue de modle partir d'une dfinition tendue de modle existante, reportez-vous la section Cration d'un fichier de ressources dans le chapitre L'diteur de ressources du manuel Guide des fonctionnalits gnrales. Qu'est-ce qu'une dfinition tendue de modle? Un modle tendu contient une dfinition de profil et des paramtres de gnration. Le profil est un jeu d'extensions de mtamodle dfinies sur les mtaclasses. Pour plus d'informations sur les profils, reportez-vous au chapitre Gestion des profils. Les paramtres de gnration sont utiliss pour dvelopper ou complter la gnration d'objets PowerAMC par dfaut ou pour une gnration distincte. Les dfinitions tendues de modle sont dotes d'un type, tout comme les modles dans PowerAMC. Vous pouvez crer une dfinition tendue de modle pour un type de modle spcifique et vous ne pouvez pas partager ces fichiers entre modles de type diffrent. Vous pouvez dfinir une ou plusieurs dfinitions tendues de modle pour un modle. Certaines dfinitions tendues de modle sont fournies avec PowerAMC, et vous pouvez crer vos propres extensions. Les dfinitions tendues de modle sont globales pour un modle, elles ne peuvent donc pas tre attaches un package particulier. Pour plus d'informations sur la gnration de dfinitions tendues de modle, reportez-vous la section Gnration pour une dfinition tendue de modle.
342
PowerAMC
Chapitre 6
Toutes les dfinitions tendues de modle ont la mme structure compose de catgories. Une catgorie peut contenir d'autres catgories, des entres, et des valeurs. Ces entres sont des paramtres reconnaissables par PowerAMC. Les valeurs pour les catgories de dfinition tendue de modle varient d'une dfinition tendue de modle l'autre. Certaines entres peuvent ne pas exister dans un fichier de dfinition tendue de modle si elles ne sont pas applicables cette dfinition tendue de modle particulire.
Vous pouvez crer des dfinitions tendues de modle gnriques et spcifiques. Une dfinition tendue de modle gnrique est une bibliothque d'extensions de mtamodle, ainsi que des paramtres de gnration. Ce fichier est stock dans une partie centrale et peut tre rfrenc par des modles afin de garantir la cohrence des donnes et permettre l'utilisateur de gagner du temps Une dfinition tendue de modle spcifique est incorpore dans un modle et dveloppe des dfinitions d'objet et des paramtres de gnration dans ce modle particulier
La procdure de cration diffre selon le type de dfinition tendue de modle que vous souhaitez crer.
343
1 2
Ouvrez un modle. Slectionnez OutilsRessourcesDfinitions tendues de modleType de modle. La bote de dialogue Liste des dfinitions tendues de modle s'affiche.
Cliquez sur l'outil Nouveau pour afficher la bote de dialogue Nouvelle dfinition tendue de modle.
4 5
Saisissez un nom pour la nouvelle dfinition tendue de modle dans la zone Nom. <facultatif> Slectionnez un template dans la liste droulante Copier depuis. Cette liste droulante affiche les dfinitions tendues de modle existantes. Cliquez sur OK. Une bote de dialogue standard d'enregistrement s'affiche.
Saisissez un nom et slectionnez un rpertoire pour la nouvelle dfinition tendue de modle. Si vous n'enregistrez pas la dfinition tendue de modle dans le rpertoire par dfaut de PowerAMC, elle ne s'affiche pas dans la bote de dialogue Liste des dfinitions tendues de modle. Vous devez cliquer sur l'outil Chemin pour slectionner le rpertoire dans lequel vous avez enregistr le fichier. Cliquez sur Enregistrer.
344
PowerAMC
Chapitre 6
La bote de dialogue Proprits de la dfinition tendue de modle s'affiche. La page Gnral affiche les catgories sous forme d'arborescence avec un diteur dans la partie droite.
10 Cliquez sur OK. La dfinition tendue de modle est enregistre dans un fichier ayant pour suffixe .XEM. La bote de dialogue Liste des dfinitions tendues de modle affiche la nouvelle dfinition tendue de modle si vous avez enregistr le fichier dans le rpertoire par dfaut de PowerAMC.
345
Si vous voulez intgrer une dfinition tendue de modle gnrique dans un modle, vous pouvez importer le fichier de dfinition tendue de modle correspondant. Pour plus d'informations sur l'importation de dfinitions tendues de modle, reportez-vous la section Importation d'une dfinition tendue de modle dans un modle.
1 2
Ouvrez un modle. Slectionnez ModleDfinitions tendues de modle. La bote de dialogue Liste des dfinitions tendues de modle s'affiche.
3 4 5
Cliquez sur l'outil Ajouter une ligne pour crer une nouvelle dfinition tendue de modle. Cliquez sur Appliquer. Cliquez sur l'outil Proprits pour afficher la feuille de proprits de la dfinition tendue de modle.
346
PowerAMC
Chapitre 6
6 7
Dfinissez la dfinition tendue de modle. Cliquez sur OK. Vous revenez la bote de dialogue Liste des dfinitions tendues de modle.
Si vous souhaitez partager entre diffrents modles une dfinition tendue de modle cre pour un modle particulier, vous pouvez exporter cette dfinition tendue de modle afin de la rutiliser avec d'autres modles. Pour plus d'informations sur l'exportation de dfinitions tendues de modle, reportez-vous la section Exportation d'une dfinition tendue de modle.
347
1 2
Ouvrez un modle enregistr l'aide d'une version antrieure de PowerAMC. Slectionnez ModleDfinitions tendues de modle.
348
PowerAMC
Chapitre 6
Une nouvelle dfinition tendue de modle s'affiche dans la liste, elle a comme nom par dfaut Attributs imports.
Double-cliquez sur la nouvelle dfinition tendue de modle pour afficher sa feuille de proprits. Vous pouvez observer le contenu de la catgorie Extended Attributes dans la catgorie Profile\mtaclasse et voir les attributs tendus imports.
Slectionnez OutilsRessourcesDfinitions tendues de modleModle Physique de Donnes. La bote de dialogue Liste des dfinitions tendues de modle s'affiche.
Cliquez sur l'outil Importer des attributs tendus. Une bote de dialogue standard d'ouverture de fichier s'affiche.
3 4
Slectionnez un fichier d'attributs tendus dot du suffixe .EXA. Cliquez sur OK. Une bote de dialogue standard d'enregistrement s'affiche.
349
Gestion des dfinitions tendues de modle 5 6 Slectionnez le nom et le chemin de la nouvelle dfinition tendue de modle (dot d'un suffixe .XEM) qui sera cre partir du fichier .EXA. Cliquez sur OK. La nouvelle dfinition tendue de modle s'affiche dans la bote de dialogue Liste des dfinitions tendues de modle. 7 <facultatif> Double-cliquez sur la nouvelle dfinition tendue de modle pour afficher sa feuille de proprits.
Conventions de dnomination
Lorsque vous importez une dfinition tendue de modle et la copiez dans un modle, le nom et le code de la dfinition tendue de modle peut tre modifi afin de respecter les conventions de dnomination dfinies dans la bote de dialogue Options du modle.
350
PowerAMC
Chapitre 6
Slectionnez ModleDfinitions tendues de modle. La bote de dialogue Liste des dfinitions tendues de modle s'affiche.
Cliquez sur l'outil Importer une dfinition tendue de modle. La bote de dialogue Slection des dfinitions tendues de modle s'affiche.
3 4
Utilisez l'outil Chemin pour slectionnez le rpertoire dans lequel les fichiers de dfinition tendue de modle sont stocks. Slectionnez le bouton radio Partage ou Copie.
Cliquez sur OK. La dfinition tendue de modle importe depuis le fichier est rpertorie dans la bote de dialogue Liste des dfinitions tendues de modle.
351
Gestion des dfinitions tendues de modle Une dfinition tendue de modle cre dans un modle ne s'affiche pas dans la bote de dialogue Liste des dfinitions tendues de modle. En revanche, une dfinition tendue de modle exporte s'affiche dans la bote de dialogue Liste des dfinitions tendues de modle.
Pour exporter une dfinition tendue de modle dans un modle :
Slectionnez ModleDfinitions tendues de modle. La bote de dialogue Liste des dfinitions tendues de modle s'affiche.
2 3
Slectionnez une dfinition tendue de modle dans la liste. Cliquez sur l'outil Exporter une dfinition tendue de modle. Une bote de dialogue standard d'enregistrement s'affiche.
4 5
Saisissez un nom et slectionnez un rpertoire pour la dfinition tendue de modle. Cliquez sur Enregistrer. La dfinition tendue de modle est enregistre dans un rpertoire de bibliothques dans lequel elle peut tre partage par diffrents modles.
352
PowerAMC
Chapitre 6
Vous pouvez consulter ou modifier une dfinition tendue de modle l'aide de l'diteur de dfinition tendue de modle. L'diteur de dfinition tendue de modle permet de naviguer parmi les catgories et entres. Lorsque vous slectionnez une catgorie dans l'diteur de dfinition tendue de modle, le nom, le code et le commentaire associ s'affichent dans la partie droite de la fentre. Lorsque vous slectionnez une entre dans l'diteur, le nom, la valeur et le commentaire associ s'affiche dans la partie droite de la fentre. Pour plus d'informations sur l'utilisation de l'diteur de dfinition tendue de modle, reportez-vous au chapitre L'diteur de ressources dans le manuel Guide des fonctionnalits gnrales. Une dfinition tendue de modle contient les principales catgories suivantes :
Catgorie Generation Profile Description Utilis pour dfinir et/ou activer une gnration Utilis pour dfinir des extensions pour les mtaclasses PowerAMC afin de dfinir des strotypes, des critres, des attributs tendus, des fichiers gnrs, des templates de gnration, des symboles personnaliss et des vrifications personnalises
Ces catgories sont analyses plus en dtails dans les sections suivantes du prsent chapitre.
353
Code
Nom de fichier
Famille
Catgorie
Activer le suivi
354
Chapitre 6
Proprit Complter la gnration de langage Commentaire
Activer le suivi
La case Activer le suivi permet de prvisualiser les templates utiliss lors de la gnration. Avant mme de lancer la gnration, vous pouvez afficher la page Aperu de l'objet impliqu dans la gnration pour voir ses templates. Lorsque vous double-cliquez sur une ligne de suivi dans la page Aperu, la dfinition de template correspondante s'affiche dans l'diteur de ressources, dans la catgorie approprie. Le code du template peut tre affich dans des couleurs distinctes. Pour plus d'informations sur la coloration syntaxique, reportez-vous la section Cration d'un fichier gnr dans le chapitre Gestion des profils.
Cibles de gnration
L'entre Category influence le format de la page Cibles de la bote de dialogue de gnration. Les dfinitions tendues de modle sont regroupes par catgorie sur cette page : chaque dfinition tendue de modle s'affiche en regard d'un bouton radio et au sein de la catgorie laquelle elle appartient. Si vous ne dfinissez aucune catgorie, la dfinition tendue de modle est considre comme cible de la gnration.
355
Utilisation des dfinitions tendues de modle Dans l'exemple suivant, la catgorie Serveur d'applications rassemble deux dfinitions tendues de modle exclusives ; vous devez slectionner l'une d'entre elles. "Autre gnration" correspond une dfinition tendue de modle dans laquelle l'entre Category n'est pas dfinie.
PowerBuilder ne prend pas en charge les dfinitions tendues de modle pour complter la gnration. Les lments de gnration du langage objet sont fusionns avec ceux de la dfinition tendue de modle avant la gnration. Fichiers gnrs Tous les fichiers gnrs dans les dfinitions tendues de modle et les langages objets sont gnrs. Dans le cas de fichiers gnrs ayant des noms identiques, le fichier de la dfinition tendue de modle remplace celui dfini dans le langage objet.
356
PowerAMC
Chapitre 6
Famille et Sousfamille
357
Pr-gnration
La page Pr-gnration du profil affiche une liste ordonne de transformations qui sont excutes avant la gnration dans le modle source. Ces transformations sont excutes lorsque le modle courant dans lequel vous avez cr la dfinition tendue de modle est le modle source et que les contraintes dfinies pour les type de modle, famille et sous-famille sont respectes. Tout objet cr lors de la pr-gnration est automatiquement ajout la liste des objets utiliss lors de la gnration. Par exemple, vous pouvez dfinir un profil de transformation l'aide d'une transformation qui annule la cration des EJB partir des classes avant de gnrer un MOO dans un MPD, ce afin d'tablir une meilleur correspondance entre les classes et tables lors de la gnration.
Post-gnration
La page post-gnration du profil affiche une liste ordonne de transformations qui sont excutes l'issue de la gnration. Ces transformations sont excutes aprs la gnration, si le modle dans lequel vous avez cr la dfinition tendue de modle est la cible de la gnration. Par exemple, vous dfinissez un profil de transformation avec des transformations qui appliquent automatiquement les conventions de dnomination appropries aux objets gnrs.
Un profil de transformation est une liste de transformations qui doit tre dfinie pralablement dans la catgorie Profile\Tranformations de la dfinition tendue de modle. Pour plus d'informations sur les transformations, reportez-vous au chapitre Gestion des profils. 358
PowerAMC
Chapitre 6
Pointez sur la racine de l'arborescence de la dfinition tendue de modle, cliquez le bouton droit de la souris, puis slectionnez Ajouter des lments dans le menu contextuel. Slectionnez Transformation Profiles dans la bote de dialogue de slection, puis cliquez sur OK. La catgorie Transformation Profiles s'affiche dans l'arborescence de la dfinition tendue de modle.
Pointez sur la catgorie Transformation Profiles, cliquez le bouton droit de la souris puis slectionnez Nouveau dans le menu contextuel. Un nouveau profil est cr.
4 5
Saisissez un nom et un commentaire dans la page Gnral. <facultatif>> Slectionnez un type de modle dans la zone Type de modle. Vous pouvez galement slectionner une famille et une sousfamille dans les zones correspondantes. Cliquez sur l'onglet Pr-gnration pour afficher les transformations prgnration. Cliquez sur l'outil Ajouter des transformations pour slectionner les transformations appliquer au modle courant avant la gnration. Ces transformations ont t prcdemment dfinies dans la catgorie Profile\Tranformations. Rptez les mmes tapes dans la page Post-gnration. Cliquez sur Appliquer dans l'diteur de dfinition tendue de modle pour enregistrer le profil de transformation.
6 7
8 9
Catgorie Generation
La catgorie Generation contient des catgories et des entres servant dfinir et activer un processus de gnration. Vous pouvez utiliser les catgories suivantes : Commands, pour lancer des commandes lors de la gnration Options, pour dfinir des options relatives la gnration Tasks, pour stocker des commandes et pour dfinir des templates pour la gnration et pour les requtes O/R et R/R
359
Utilisation des dfinitions tendues de modle Une dfinition tendue de modle peut tre utilise pour complter la gnration du modle objet, ou bien pour une gnration tendue. Vous pouvez dfinir cette option l'aide de la case cocher Complter la gnration de langage, situe dans la feuille de proprits de la dfinition tendue de modle.
Commandes et tches
La catgorie Commands permet de dfinir les commandes de gnration. Les commandes de gnration peuvent tre excutes la fin de la gnration, une fois les fichiers gnrs. Le texte qui dfinit le code de la commande est crit l'aide du langage de gnration par templates (GTL). Il fait appel des variables d'environnement qui correspondent des excutables. Vous pouvez galement utiliser des macros dans vos commandes. Pour plus d'informations sur le GTL, reportez-vous au chapitre Guide de rfrence de la gnration. Toutes les commandes crites dans la catgorie Commands sont disponibles dans la page Tches de la bote de dialogue de gnration depuis laquelle elles peuvent tre excutes la fin de la gnration. Une tche est une liste de commandes excuter aprs la gnration. Chaque tche est rpertorie dans la page Tches de la bote de dialogue de gnration, en regard du nom de la dfinition tendue de modle. Vous pouvez les slectionner et utiliser les flches pour dfinir leur ordre. Si une entre de la liste des commande n'est pas rfrence dans une entre de la liste des tches, elle ne sera pas excute lors de la gnration. Lorsqu'une tche est slectionne dans la page Tches de la bote de dialogue de gnration, les commandes qu'elle inclut sont extraites et le template associ chaque commande est valu et excut.
360
PowerAMC
Chapitre 6
Dans l'exemple suivant, des tches sont dfinies dans la dfinition tendue de modle Weblogic ; les autres tches proviennent du langage objet du modle (Java):
Vous devez crer des commandes avant de pouvoir crer des tches.
Pour crer une commande :
Pointez sur la catgorie Commands, cliquez le bouton droit de la souris et slectionnez Nouveau dans le menu contextuel. Une nouvelle commande est cre.
2 3
Saisissez un nom dans la zone Nom. <facultatif> Saisissez un commentaire dans la zone Commentaire.
361
Utilisation des dfinitions tendues de modle 4 Saisissez le code de la commande dans la zone de texte vide en utilisant les diffrents outils de la barre d'outils.
Pointez sur la catgorie Tasks, cliquez le bouton droit de la souris et slectionnez Nouveau dans le menu contextuel. Une nouvelle tche est cre.
2 3
Saisissez un nom dans la zone Nom. <facultatif> Saisissez un commentaire dans la zone Commentaire. Le commentaire de la tche s'affiche dans la bote de dialogue de gnration.
Cliquez sur l'outil Ajouter des commandes. La bote de dialogue Ajout de commandes s'affiche.
Slectionnez une ou plusieurs commandes, puis cliquez sur OK. La commande s'affiche dans la liste des commandes.
362
PowerAMC
Chapitre 6 6
Utilisez les flches situes sous la liste pour dfinir l'ordre des commandes.
Options
La catgorie Options permet de personnaliser le processus de gnration. Vous pouvez dfinir les types d'entres suivants dans la catgorie Options :
Entre Boolean String Dfinition Option valuer avec deux valeurs possibles : Yes ou No Chane de caractres d'une seule ligne. Tous les caractres sont admis dans la valeur Liste de chanes au format <value>[:<label>] Exemple EnableComment : Yes / No Valeur WebLogicPassword
List
WebLogicDeploymentType permet de spcifier si vous souhaitez dployer ou redployer : vous pouvez choisir "deploy" ou "update" dans la liste des valeurs
363
Utilisation des dfinitions tendues de modle Chaque entre a un nom et un commentaire, elle correspond une option de gnration. Le nom est utilis si aucun commentaire n'est spcifi, dans le cas contraire, le commentaire s'affiche dans la colonne Options de la page Options de la bote de dialogue de gnration. Ces options s'affichent dans la page Options de la bote de dialogue de gnration si les conditions suivantes sont remplies : La dfinition tendue de modle contient au moins un fichier gnr La dfinition tendue de modle contient au moins une tche
Ces deux conditions permettent d'afficher et de slectionner la dfinition tendue de modle dans la page Cibles de la bote de dialogue de gnration :
364
PowerAMC
Chapitre 6
Lorsque la dfinition tendue de modle est slectionne, les options s'affichent dans la page Options :
Vous pouvez utiliser les oprations de gnration dans tous les templates et toutes les commandes de gnration. Pour connatre la valeur d'une option de gnration, utilisez la syntaxe suivante : %GenOptions.<Options name>%. Par exemple, pour valuer EnableComment, vous pouvez utiliser la syntaxe suivante :
.if (%GenOptions.EnableComment%) %Comment% .endif ( )
Pour plus d'informations sur la syntaxe du GTL, reportez-vous au chapitre Guide de rfrence de la gnration.
365
Les paramtres de gnration d'une dfinition tendue de modle influent sur le contenu de la bote de dialogue de gnration. Le tableau suivant montre que vous pouvez personnaliser la gnration partir de l'diteur de dfinition tendue de modle.
Bote de dialogue de gnration Page Cibles Dfinition tendue de modle La page Cibles s'affiche si vous avez coch la case Complter la gnration de langage dans la feuille de proprits de la dfinition tendue de modle et si cette dfinition tendue de modle contient au moins une tche et un fichier gnr Dfinition des options dans Generation\Options l'aide d'entres de type Boolenne, Liste et Chane Dfinit les commandes l'aide des entres de commandes et de rfrences ces commandes dans des tches
Les dfinitions tendues de peuvent tre utilises pour crer de nouvelles cibles de gnration. Dans ce cas, la case Complter la gnration de langage doit tre dcoche et la dfinition tendue de modle doit contenir des entres GeneratedFiles. Cette gnration est disponible pour tous les modules PowerAMC, tout moment vous pouvez gnrer pour une gnration tendue en slectionnant OutilsGnration tendue.
366
PowerAMC
C H A P I T R E
Sujet Ce chapitre fournit une rfrence complte sur les concepts utiliss dans le langage de gnration par templates (GTL, Generation Template Language) disponible dans PowerAMC. Vous y trouverez galement des conseils relatifs l'utilisation du GTL. Sommaire
Section Dfinition du langage de gnration par template (GTL) Dfinition des concepts utiliss dans le langage de gnration par template Conseils et techniques de gnration Page 368 370 409
367
368
PowerAMC
Chapitre 7
Le langage de gnration par template prend en charge des concepts orients objet tels que les hritages et le polymorphisme et permet donc de rutiliser les objets et d'assurer plus facilement leur maintenance. Il met galement votre disposition des macros conditionnelles, itratives et de format de texte permettant de spcifier la logique des templates. Les macros fournissent les structures de programmation gnriques pour le test des variables (par exemple : .if) et permettent l'itration entre les lments dpendant d'un objet (par exemple : .foreach.). Dans ce chapitre, la plupart des exemples utilisent le langage Java. Toutefois, le mcanisme dcrit dans cette section est galement applicable tous les langages objets et toutes les dfinitions tendues de modle.
369
Dfinition de templates
Un template se compose de texte et de variables, et peut galement contenir des macros. Il s'agit d'un fragment de texte gnr pour un objet. Il se comporte comme un type de proprit particulier dont la valeur est recalcule chaque fois que vous l'obtenez. Le contenu d'un template est constitu par le code gnr au format texte. Un template est associ une mtaclasse donne, vous pouvez dfinir autant de templates que vous le souhaitez pour une mtaclasse donne, cette dernire est disponible pour tous les objets (instances) de cette mtaclasse. Une mtaclasse est une classe du mtamodle (ou classe abstraite). Il peut s'agir d'un attribut d'entit provenant d'un Modle Conceptuel de Donnes (MCD), d'une table d'un Modle Physique de Donnes (MPD), d'une opration d'un Modle Orient Objet (MOO), etc Les templates permettent d'accder compltement aux attributs et collections du mtamodle PowerAMC ainsi qu' tous les lments du modle. Les templates sont utiliss pour gnrer des fichiers, leur rle est de produire du texte des fins de gnration. Lors de la gnration, l'valuation d'un template gnre toujours du texte qui peut tre stock dans un fichier et utilis pour rassembler des informations sur un objet donn. Un template peut galement faire rfrence n'importe quel template (y compris lui-mme) afin de promouvoir la rcursion et le partage de code de template, le second template est valu et sa valeur est situe dans le rsultat du premier template. Exemple Exemple de template :
.foreach_item (Parameters) %definition% .next(", ")
370
PowerAMC
Chapitre 7
Exemples
Vous allez trouver des exemples spcifiques de l'utilisation des templates dans les diffrentes sections de ce chapitre. Un template est construit l'aide de la syntaxe suivante :
template = <template-complexe> template-complexe = (<macro-bloc> | <macro-simple> | <simple-template<)* template-simple = (<texte> | <bloc-variables> | <blocconditionnel>)*
Pour plus d'informations sur certaines parties de la syntaxe ci-dessus, reportez-vous leur dfinition dans la suite de ce chapitre. Vous pouvez utiliser des templates simples ou complexes. Un template simple ne contient pas de macros, tandis qu'un template complexe en contient. Exemple de template simple La syntaxe d'un template simple se prsente comme suit :
%Visibility% %DataType% %Code% [= %InitialValue]
Lorsqu'il est valu, ce template qui contient les 4 variables Visibility, DataType, Code et InitialValue qui seront remplaces par les valeurs provenant de l'objet courant dans le modle. Compte tenu du fait que le signe = et la valeur de la dernire variable InitialValue se trouvent entre crochets, cette section du template ne sera gnre que si InitialValue n'est pas void. Exemple de template complexe La syntaxe d'un template complexe peut se prsenter comme suit :
Chaque variable entre % peut tre le nom d'un attribut, ou bien une proprit de l'objet courant, ou encore le nom d'un template. Pour plus d'informations sur les variables, reportez-vous la section Dfinition des variables.
Documentation utilisateur avance
371
Dans Java, ouvrez la catgorie Profile\Operation\Templates dans le langage objet pour afficher tous les templates utiliss pour la gnration d'oprations existant dans le MOO.
Par exemple, la variable %Name% d'une interface peut tre directement value dans une macro et remplace par le nom de l'interface dans le fichier gnr.
Respect de la casse
Attention, la casse des caractres est prise en compte pour les noms de variable. La premire lettre d'un nom de variable doit tre une majuscule, comme dans %Code%. Syntaxe des variables
372
PowerAMC
Chapitre 7
Variable membre-objet Syntaxe <proprit>
[<code-cible> '::'] [<nom-mtaclasse> '::'] <nomtemplate>['('<liste-paramtres>')'] [<code-cible> '::']<attribut-tendu> [' * ']+ <valeur-locale> ['('<liste-paramtres>')'] membre-collection 'First' 'IsEmpty' 'Count' local-variable <objet-local> [' * '] <valeur-locale> variable-globale <objet-global> <valeur-globale> '$' <variable-environnement> objet-variable <objet-global> <objet-local> porte-externe porte-objet [<porte-externe> '.'] 'Outer' [<porte-objet> '.'] <objet-membre-objet> <porte-collection> '.' <collection-membre-objet> objet-membre-objet objet-membrecollection porte-collection <proprit-typeobjet> 'First' [<porte-objet> '.'] <collection> [<porte-objet> '.'] <collection tendue>*
* La collection inverse d'une collection tendue ne peut pas tre value avec le langage de gnration par template
Pour plus d'informations sur les collections tendues, reportez-vous la section Dfinition d'une collection tendue dans un profil, dans le chapitre Gestion des profils.
373
Membres d'objet
Un membre d'objet peut tre une proprit standard, un template ou un attribut tendu. Il peut y avoir trois types de proprit standard : boolean, string ou object. La valeur d'une proprit standard peut tre : 'true' ou 'false' s'il s'agit d'une proprit de type boolean 'null' ou 'notnull' s'il s'agit d'une proprit de type object
La valeur d'un template est le rsultat de sa conversion (remarquez qu'un template peut tre dfini par rapport lui-mme, c'est--dire de faon rcursive). La valeur d'un attribut tendu peut galement tre un template, auquel cas elle est convertie. Ceci permet de dfinir les templates sur une base objet (instance) plutt que sur une base mtaclasse. Pour viter les conflits de nom lorsque l'valuation d'un template s'tend sur plusieurs cibles, il est possible de prfixer la fois les attributs tendus et les templates par le code de leur cible parent. Par exemple : %Java::strictfp% ou %C++::definition% Les noms de template peuvent galement tre prfixs par le nom de leur mtaclasse parent. Ceci vous permet d'invoquer un template redfini, en contournant de fait le mcanisme de rsolution de template dynamique. Par exemple : %Classifier::definition% Vous avez galement la possibilit de spcifier une liste de paramtres. Les valeurs de paramtre ne doivent pas contenir de caractres % et tre spares par des virgules. Les paramtres sont transmis sous forme de variables locales @1, @2, @3 dfinies dans la porte de la conversion du template. Si le template MyTemplate est dfini de la faon suivante : Parameter1 = %@1% Parameter2 = %@2% L'valuation de %MyTemplate(MyParam1, MyParam2)% va produire : Parameter1 = MyParam1 Parameter2 = MyParam2
374
PowerAMC
Chapitre 7
Oprateur de drfrencement
La syntaxe ['*']+ <valeur-locale> ['('<liste-paramtres>')'] renvoie le membre d'objet dfini par l'valuation de ['*']+ <valeurlocale>. Si le membre d'objet spcifi est un template, une liste de paramtres peut tre spcifie. Le fait d'appliquer l'oprateur astrisque correspond une double valuation (l'oprateur * agit comme un oprateur de drfrencement). Supposons qu'une variable locale soit dfinie de la faon suivante : .set_value(C, Code) Dans ce cas, %C% va renvoyer "Code" et %*C% va renvoyer le rsultat de l'valuation de %Code%. En d'autres termes, %*C% peut tre considr comme %(%C%)% (la dernire syntaxe tant incorrecte).
Membres de collection
Les membres de collection disponibles sont les suivants :
Nom First IsEmpty Count Type Object Boolean Integer Description Renvoie le premier lment de la collection Permet de tester si une collection est vide. True si la collection est vide, false dans le cas contraire Nombre d'lments de la collection
Remarque : Count est tout particulirement utile pour dfinir des critres bass sur la finle de la collection, par exemple (Attributes.Count>=10).
Variables locales
Les variables locales ne sont visibles dans la porte que si elles sont dfinies dans ses portes internes. Les variables locales peuvent tre dfinies en utilisant les macros set_object et set_value. Pour plus d'informations sur les macros set_object et set_value, reportez-vous aux sections Macro set_object et Macro set_value.
375
Oprateur de drfrencement
Les variables dfinies via la macro set_object sont rfrences comme des objets locaux, tandis que celles dfinies l'aide de la macro set_value sont appeles valeurs locales. L'oprateur de drfrencement * peut tre appliqu aux valeurs locales. L'oprateur * permet l'valuation des variables dont le nom est la valeur de la variable locale spcifie.
'%'['.' <options-format> ':'] '*' <variable-locale>'%'
Equivaut :
%Code%
Variables globales
Les variables globales sont disponibles quelle que soit la porte courante. Certaines variables spcifiques au langage de gnration par template sont rpertories dans le tableau suivant :
Nom ActiveModel GenOptions PreviewMode CurrentDate CurrentUser NewUUID Type Object struct boolean String String String Description Modle actif Permet d'accder aux options de gnration dfinies par l'utilisateur True si en mode Aperu, false en mode de gnration de fichier Date et heure systme courante, mises en forme en fonction des paramtres rgionaux en vigueur Login utilisateur courant Renvoie un nouvel UUID
Porte externe
Une porte externe peut tre accessible l'aide du mot cl Outer. Le fait de spcifier une porte change la porte de la conversion courante utilise pour l'valuation de la variable. 376
PowerAMC
Chapitre 7
Pour plus d'informations et des exemples sur la porte externe, reportez-vous aux illustrations de la section Dfinition de la porte de la conversion.
Porte de l'objet
Pour accder aux membres d'un objet qui n'est pas actif dans la porte de la conversion courante, il est possible de spcifier une porte d'objet. Le fait de spcifier une porte d'objet change la porte de la conversion courante utilise pour valuer la variable. Le caractre '.' (point) se comporte comme un oprateur d'indirection comme dans le langage de programmation Java, le ct droit correspond un membre de l'objet rfrenc par le ct gauche.
Porte de la collection
Pour accder aux membre d'une collection, vous pouvez spcifier une porte de collection. Le caractre '.' (point) se comporte comme un oprateur d'indirection comme dans le langage de programmation Java, le ct droit correspond un membre de la collection rfrence par le ct gauche. Par exemple :
Vous pouvez incorporer des options de format dans la syntaxe d'une variable comme suit :
%.format:variable% Documentation utilisateur avance
377
Dfinition des concepts utiliss dans le langage de gnration par template Les options de format pour les variables sont les suivantes :
Option n (n reprsente un entier) -n Description Extrait les n premiers caractres. Des espaces ou des zros sont ajouts gauche pour complter la largeur et justifier le rsultat droite Extrait les n derniers caractres. Des espaces ou des zros sont ajouts droite pour complter la largeur et justifier le rsultat gauche Convertit les caractres en minuscules Convertit les caractres en majuscules Initiale majuscule et les autres caractres en minuscules Supprime automatique le retrait droite et aligne le texte sur le bord gauche Affiche la valeur d'interface d'une proprit d'objet avec un nom diffrent dans la ligne de code. Dans l'exemple suivant, la valeur pour la visibilit sera 'public', tandis que cette valeur est stocke sous la forme '+' dans le MOO. %Visibility% = + %.D:Visibility% = public Combin avec L et U, applique la conversion sur le premier caractre Les espaces de gauche et de droite sont supprims de la variable Place la variable entre apostrophes Place la variable entre guillemets Ignore les caractres interdits pour XML
L U c A D
F T q Q X
Vous pouvez combiner les codes de format. Par exemple, %.U8:CHILD% convertir les 8 premiers caractres du code de la table CHILD en majuscules.
378
PowerAMC
Chapitre 7
Pour plus d'informations sur la porte externe, reportez-vous la section Dfinition des variables.
Documentation utilisateur avance
379
Dfinition des concepts utiliss dans le langage de gnration par template De nouvelles portes peuvent tre cres lors de l'valuation d'un template qui force l'objet changer. Par exemple, la macro foreach_item, qui permet l'itration sur les collections dfinit une nouvelle porte, de mme que la macro foreach_line. La porte externe est restaure la fin du bloc. Pour plus d'informations sur ces deux macros, reportez-vous aux sections Macro foreach_item et Macro foreach_line. Les portes imbriques forment une hirarchie qui peut tre affiche sous la forme d'une arborescence, la porte de plus haut niveau tant la racine. Exemple L'exemple suivant montre le mcanisme de la porte l'aide d'un template de classe :
380
PowerAMC
Chapitre 7
%Shortcut% .endif .next(\n)
Ce comportement est l'inverse de celui du VB Script, dans lequel la conversion des raccourcis rcupre le raccourci lui-mme. Si un raccourci externe a le statut ferm, il est ignor lors de la conversion et n'apparat pas dans le fichier gnr. Si vous souhaitez gnrer le raccourci lui-mme plutt que l'objet auquel il fait rfrence, vous pouvez utiliser la variable %Shortcut%.
381
Exemple
Le mme nom de template "isAbstract" est utilis dans deux catgories diffrentes : Classifier et Class. "false" est la valeur d'origine qui a t redfinie par la nouvelle valeur "true". Vous pouvez rcuprer la valeur d'origine en utilisant la syntaxe suivante : <metaclassName::template>, dans ce cas :
%isAbstract% %Classifier::isAbstract%
Dfinition du polymorphisme
Les templates sont lis de faon dynamique. En d'autres termes, le choix du template valuer et effectu au moment de la conversion en fonction du type d'objet auquel il est appliqu. Ce mcanisme est comparable au mcanisme d'invocation de mthode virtuelle en vigueur dans les langages orients objet. Le polymorphisme est obtenu en permettant la redfinition du template dans les classes drives. Par exemple, il peut tre utile dans Java de dfinir Generated Files sur le classificateur. Le polymorphisme permet au code de template dfini sur un classificateur d'utiliser des templates dfinis sur ses enfants (classe, interface), le template utilis n'a pas tre dfini sur la mtaclasse parent. Combine avec les hritages, cette fonctionnalit permet de partager le code de template. Exemple
382
PowerAMC
Chapitre 7
Le contenu de %definition% est celui dfini dans Classifier pour une interface, et celui dfini dans Class pour une classe.
383
Dfinition des concepts utiliss dans le langage de gnration par template Les squences d'chappement suivantes peuvent tre utilises dans des templates :
Squence d'chappement \n \t \\ \ au dbut d'une ligne . au dbut d'une ligne .. au dbut d'une ligne %% Description Caractre de passage la ligne, cre une nouvelle ligne Caractre de tabulation, cre une tabulation Cre une barre oblique inverse Cre un caractre de suite (ignore la nouvelle ligne) Ignore la ligne Cre un caractre point (pour gnrer une macro) Cre un caractre pourcent
Pour plus d'informations sur les squences d'chappement, reportezvous la section Utilisation de nouvelles lignes dans la chane d'en-tte et de fin.
Utilisation de macros
Les macros peuvent tre utilises pour exprimer la logique, et pour boucler sur des collections d'objets. Chaque mot cl de macro doit tre prcd d'un caractre "." (point) et doit tre le premier caractre, autre qu'un espace, sur une ligne. Prenez soin de respecter la syntaxe des macros en termes de passage la ligne. Vous pouvez dfinir une macro dans un template, ou dans une commande. Vous pouvez dfinir trois types de macros, comme indiqu dans le tableau suivant :
Macro Macro de bloc Macro de boucle Macro simple Syntaxe <if> | <vbscript> | <unique> | <lowercase> | <uppercase> | <replace> | <delete> | <block> <foreach_item> | <foreach_line> | <foreach_part>
<bool> | <set_object> | <set_value> | <execute_vbscript> | <execute_command> | <abort_command> | <change_dir> | <create_path> <log> | <warning> | <error>
384
PowerAMC
Chapitre 7
Macro de bloc Les macros de bloc se composent d'un mot cl de dbut et d'un mot cl de fin dlimitant un bloc auquel la macro est applique. Leur structure se prsente comme suit :
'.'<nom-macro> ['(' <paramtres> ')' ] <bloc-entre-macro> '.'end<nom-macro> [ '(' <tail> ')' ]
<fin> est une constante de type chane facultative et qui est ajoute au texte gnr, s'il existe. Macro de boucle Les macros de boucle sont utilises pour l'itration. A chaque itration, une nouvelle porte est cre. Le template spcifi dans le bloc est converti simultanment conformment la porte d'itration.
'.'foreach_<nom-macro> ['(' <paramtres> [',' <head> [',' <fin>]] ')' ] <template-complexe> '.'next [ '(' <sparateur> ')' ]
<head> et <fin> sont des constantes de type chane facultatives. <head> est gnre avant, et <fin> est ajoute aprs le texte gnr, s'il existe. Un <sparateur> peut galement tre spcifi comme argument pour le mot cl .next, il est plac entre des valuations non vide de <template-complexe>. Macro simple Les macros simples sont les macros qui ne sont constitues que d'une seule ligne.
Dlimiteurs de paramtres de macro
Les paramtres de macro peuvent tre dlimits par des guillemets. Les dlimiteurs sont requis lorsque la valeur du paramtre inclut des virgules, des accolades et des espaces de dbut ou de fin. La squence d'chappement pour les guillemets au sein d'un paramtre est \".
385
Macro if
La macro if est utilise pour la gnration conditionnelle, et a la syntaxe suivante :
if= .if[not] <condition> <template-complexe> [(.elsif[not] <condition> <template-complexe>)*] [.else <template-complexe>] .endif ['(' <fin> ')'] condition= '(' <condition> ')' or '(' <condition> ')'| | |
'(' <condition> ')' and '(' <condition> ')' '(' <condition> ')' <condition-simple> simple-condition= <variable> [ <oprateurcomparaison> <condition-rhs> ] oprateur-comparaison= '==' '!=' '<=' '>=' '<' '>' condition-rhs= | | | | | | | | | | | |
constante=
386
PowerAMC
Chapitre 7
Paramtres
Paramtre <fin>
Type Texte
Lorsqu'une condition simple se compose d'une seule variable sans oprateur de comparaison, la condition est fausse lorsque la valeur de la variable est "false", "null" ou la chane null, dans le cas contraire elle est considre comme true. Les oprateurs de comparaison <, >, >=, et <= permettent de comparer des entiers si les deux oprandes sont des entiers, dans le cas contraire, elles induisent une comparaison de chanes intelligente qui prend en compte des nombres incorpors (exemple : Class_10 est suprieur Class_2).
Macro vbscript
La macro vbscript est utilise pour incorporer du code VB script dans un template. Il s'agit d'une macro de bloc. La syntaxe d'une macro vbscript est la suivante :
.vbscript ['(' <liste-param-script> ')'] <bloc-entre-vbscript> .endvbscript ['(' <fin> ')']
Paramtres
Type Liste d'arguments de template-simple spars par des virgules Texte Texte
Rsultat
387
Dfinition des concepts utiliss dans le langage de gnration par template Le rsultat est le suivant :
hello world
Remarque : l'objet actif de la porte de conversion courante est accessible via la collection ActiveSelection en tant que ActiveSelection.Item(0). Pour plus d'informations sur ActiveSelection, reportez-vous la section Proprits globales, dans le chapitre Manipulation des objets via VBScript, dans le manuel Guide des fonctionnalits gnrales.
Macro unique
L'objet de la macro unique est de dfinir un bloc dans lequel l'unicit de chaque ligne du texte gnr est garantie. Cette macro peut tre utile pour calculer les importations, inclusions, typedefs ou de dclarations anticipes dans des langages tels que Java, C++ ou C#.
.unique <bloc-entre-unique> .endunique['(' <fin> ')']
Paramtres
Rsultat
Le rsultat est le bloc fourni en entre dans lequel chaque ligne redondante a t supprime. Exemple :
.unique import java.util.*; import java.lang.String; %imports% .endunique
388
PowerAMC
Chapitre 7
Macro lowercase
La macro .lowercase transforme en minuscules toutes les lettres majuscules d'un bloc de texte.
.lowercase <bloc-entre-minuscules> .endlowercase
Cette macro est particulirement utile lorsque vous travaillez sur les conventions de dnomination. Pour plus d'informations les conventions de dnomination, reportezvous la section Dfinition des conventions de dnomination, dans le chapitre Gestion des modles du manuel Guide des fonctionnalits gnrales. Paramtres
Paramtre <bloc-entreminuscules> Type Template complexe Description Un paramtre est utilis pour spcifier du texte
Rsultat
Le rsultat est le bloc utilis en entre et dans lequel toutes les majuscules ont t converties en minuscules. Dans l'exemple suivant, la variable %Comment% a pour valeur 'BONJOUR' qui est convertie en 'bonjour.
.lowercase %Comment% .endlowercase
Macro uppercase
La macro .lowercase transforme en majuscules toutes les lettres minuscules d'un bloc de texte.
.uppercase <bloc-entre-uppercase> .enduppercase
Cette macro est particulirement utile lorsque vous travaillez sur les conventions de dnomination.
389
Dfinition des concepts utiliss dans le langage de gnration par template Pour plus d'informations les conventions de dnomination, reportezvous la section Dfinition des conventions de dnomination, dans le chapitre Gestion des modles du manuel Guide des fonctionnalits gnrales. Paramtres
Paramtre <bloc-entreuppercase> Type Template complexe Description Un paramtre est utilis pour spcifier du texte
Rsultat
Le rsultat est le bloc utilis en entre et dans lequel toutes les minuscules ont t converties en majuscules. Dans l'exemple suivant, la variable %Comment% a pour valeur 'bonjour' and qui est convertie en 'BONJOUR.
.uppercase %Comment% .enduppercase
Macro replace
La macro .replace remplace toutes les occurrences d'une chane par une autre chane dans un bloc de texte. Cette macro est particulirement utile lorsque vous travaillez sur les conventions de dnomination. Pour plus d'informations les conventions de dnomination, reportezvous la section Dfinition des conventions de dnomination, dans le chapitre Gestion des modles du manuel Guide des fonctionnalits gnrales. La macro .replace remplace l'ancienne chane <ancienne-chane> par la chane <nouvelle-chane> dans le bloc de texte <Bloc>.
.replace '(' <ancienne-chane> ',' <nouvelle-chane> ')' <bloc-entre-replace> .endreplace
Paramtres
Description Chane contenant les caractres remplacer par <nouvelle-chane> Chane contenant les caractres qui remplacent <ancienne-chane>
390
PowerAMC
Chapitre 7
Paramtre <bloc-entrereplace> Type Template complexe
Rsultat
Le rsultat est que toutes les occurrences de la chane <ancienne-chane> sont remplaces par des instances de la chane <nouvelle-chane> dans le bloc spcifi. Dans l'exemple suivant, 'GetCustomerName' est converti en 'SetCustomerName'.
.replace( get , set ) GetCustomerName .endreplace
Dans l'exemple suivant, la variable %Name% a pour valeur 'Customer Factory' et est convertie en 'Customer_Factory'.
.replace(" ", "_") %Name% .endreplace
Macro delete
La macro .delete supprime toute les occurrences d'une chane dans un bloc de texte. Dans le script suivant, elle supprime la chane <chane-suppr> dans le bloc.
.delete '('<chane-suppr> ')' <bloc-entre-delete> .enddelete
Cette macro est particulirement utile lorsque vous travaillez sur les conventions de dnomination. Pour plus d'informations les conventions de dnomination, reportezvous la section Dfinition des conventions de dnomination, dans le chapitre Gestion des modles du manuel Guide des fonctionnalits gnrales. Paramtres
Paramtre <chane-suppr> <bloc-entredelete> Type Texte Template complexe Description Chane supprimer dans le bloc Un paramtre est utilis pour spcifier du texte
391
Rsultat
Le rsultat est que toutes les occurrences de la chane <chane-suppr> sont supprimes dans le bloc spcifi. Dans l'exemple suivant, 'GetCustomerName' est converti en 'CustomerName'.
.delete( get ) GetCustomerName .enddelete
Dans l'exemple suivant, la variable %Code% a la valeur 'm_myMember' et est convertie en 'myMember'.
.delete(m_) %Code% .enddelete
Macro block
La macro .block est utilise pour ajouter un en-tte et/ou une fin son contenu lorsque ce dernier n'est pas vide.
.block ['('<en-tte> ')'] <bloc-entre> .endblock['(' <fin> ')']
Paramtres
Description Gnr avant le rsultat, s'il y en un Ajout au rsultat, s'il y en a un Un paramtre est utilis pour spcifier du texte
Rsultat
392
PowerAMC
Chapitre 7
Macro convert_name
La macro .convert_name utilise la table de conversion d'un nom en code. Lorsqu'aucune occurrence n'est trouve dans la table, c'est le nom qui est renvoy.
.convert_name (<Expression> [,<caractre-sparateur> [,<sparateur-motif>]])
L'expression <Expression> est le nom convertir dans la table de conversion correspondante. Paramtres
Paramtre <sparateur-motif> (facultatif) Type Texte Description Dclaration des diffrents sparateurs qui peuvent exister dans un nom. Ces sparateurs seront remplacs par le <caractre-sparateur>. Vous pouvez dclarer plusieurs sparateurs, par exemple "space" et "tab" Caractre gnr chaque fois qu'un sparateur dclar dans <sparateur-motif> est trouv dans le nom. Par exemple, ce caractre peut tre "_"
<caractresparateur> (facultatif)
Texte
Vous pouvez utiliser la macro .convert_name avec une table de conversion personnalise que vous slectionnez dans la liste droulante Table de conversion. Pour ce faire, affichez la bote de dialogue Options du modle, slectionnez l'objet appropri dans la catgorie Conventions de dnomination, puis cliquez sur l'onglet Nom en code. Les tables de conversion ne tiennent pas compte de la casse des caractres. Vous pouvez utiliser indiffremment des majuscules et des minuscules dans ces tables. Cette macro est particulirement utile lorsque vous travaillez sur les conventions de dnomination. Pour plus d'informations les conventions de dnomination, reportezvous la section Dfinition des conventions de dnomination, dans le chapitre Gestion des modles du manuel Guide des fonctionnalits gnrales.
393
Remarque
Vous pouvez galement utiliser cette macro hors des conventions de dnomination condition que la table de conversion soit la table de l'objet courant du script. Voici un exemple d'une macro qui peut tre ajoute partir de la catgorie Profile\Column dans une nouvelle entre Generated Files :
.foreach_item(Columns) %Name%, .foreach_part(%Name%) .convert_name(%CurrentPart%) .next("_") .next(\n)
Pour plus d'informations sur la macro .convert_name, reportez-vous la section .convert_name & .convert_code macros, dans le chapitre Dfinition des conversions de nom et de code du manuel Guide des fonctionnalits gnrales.
Macro convert_code
La macro .convert_code utilise la table de conversion d'un code en nom. Lorsque la table ne contient aucune occurrence, c'est le code qui est renvoy.
.convert_code (<Expression> [<caractre-sparateur> [,<sparateur-motif>]])
L'expression <Expression> est le code convertir dans la table de conversion correspondante. Paramtres
Paramtre <sparateur-motif> (facultatif) Type Texte Description Dclaration des diffrents sparateurs qui peuvent exister dans un code. Ces sparateurs seront remplacs par le <caractre-sparateur>. Vous pouvez dclarer plusieurs sparateurs, par exemple "space " et "tab" Caractre gnr chaque fois qu'un sparateur dclar dans <sparateur-motif> est trouv dans le code. Par exemple, ce caractre peut tre "_"
<caractresparateur> (facultatif)
Texte
Vous pouvez utiliser cette macro avec une table de conversion personnalise que vous slectionnez dans la liste droulante Table de conversion. Pour ce faire, affichez la bote de dialogue Options du modle, slectionnez l'objet appropri dans la catgorie Conventions de dnomination, puis cliquez sur l'onglet Nom en code. 394
PowerAMC
Chapitre 7
Les tables de conversion ne tiennent pas compte de la casse des caractres. Vous pouvez utiliser indiffremment des majuscules et des minuscules dans ces tables. Cette macro est particulirement utile lorsque vous travaillez sur les conventions de dnomination. Pour plus d'informations les conventions de dnomination, reportezvous la section Dfinition des conventions de dnomination, dans le chapitre Gestion des modles du manuel Guide des fonctionnalits gnrales. Remarque Vous pouvez galement utiliser cette macro hors des conventions de dnomination condition que la table de conversion soit la table de l'objet courant du script. Pour plus d'informations sur la macro .convert_code, reportez-vous la section Macros .convert_name & .convert_code, (Dfinition des conversions de nom et de code) dans le chapitre Gestion des modles du manuel Guide des fonctionnalits gnrales.
Macro foreach_item
La macro foreach_item est utilise pour l'itration des collections d'objets. Le template spcifi au sein du bloc est converti sur tous les objets contenus dans la collection spcifie. Le bloc dfinit une nouvelle porte au sein de laquelle l'objet actif l'itration i est le membre de collection i-me membre de la collection. Si une comparaison est spcifie, les lments de la collection sont pr-tris en fonction de la rgle correspondante avant leur itration :
.foreach_item '(' <porte-collection> [',' <en-tte> [',' <fin> [',' <condition-simple> [',' <comparaison> ]]]]')' <template-complexe> .next ['(' <sparateur> ')']
Dfinition de collections
Toutes les collections sont accessibles pour un objet donn. Chaque objet PowerAMC peut avoir une ou plusieurs collections correspondant aux objets avec lesquels il interagit. Les collections expriment le lien entre les objets, par exemple une table a des collections de colonnes, d'index, de rgles de gestion, etc. Les collections sont reprsentes dans le mtamodle public PowerAMC par des associations entre objets. Les rles des associations correspondent aux collections d'un objet.
395
Dfinition des concepts utiliss dans le langage de gnration par template Pour plus d'informations sur les collections d'objets, reportez-vous la section Associations et collections, dans le chapitre Mtamodle public PowerAMC. Paramtres
Paramtre <porte-collection> <en-tte> (facultatif) <fin> (facultatif) <condition-simple> (facultatif) <comparaison> Type Template simple Texte Texte Condition simple Condition simple Description Collection sur laquelle l'itration est effectue Gnr avant le rsultat, s'il y en a un Ajout au rsultat, s'il y en a un Si spcifi, seuls les objets qui satisfont la condition sont considrs lors de l'itration <comparaison> est valu au sein d'une porte dans laquelle deux objets locaux respectivement nomms 'Item1' et 'Item2' sont dfinis. Ils correspondent aux lments dans la collection. <comparaison> doit tre valu comme true si Item1 doit tre plac aprs Item2 dans l'itration Gnrer entre deux valuations de <templatecomplexe> non vides
<sparateur> (facultatif)
Texte
Les paramtres de macro peuvent tre dlimits par des guillemets. Les dlimiteurs sont requis lorsque la valeur du paramtre inclut des virgules, des accolades et des espaces de dbut ou de fin. La squence d'chappement pour les guillemets au sein d'un paramtre est \". Rsultat Le rsultat est form par les valuations concatnes de <templatecomplexe> sur tous les objets dans la collection. Exemple :
Attribut cust_name cust_foreign Type de donnes String Boolean Valeur initiale __ false
396
PowerAMC
Chapitre 7 Le rsultat est le suivant : Attribute cust_foreign = false Attribute cust_name; Remarque
Les quatre virgules aprs (Attributes,,,, signifient que tous les paramtres (en-tte, fin, condition et comparison) sont sauts.
Macro foreach_line
La macro foreach_line est une macro simple qui procde l'itration sur les lignes du template de saisie spcifi comme premier argument pour la macro. Le template spcifi dans le bloc est converti pour chaque ligne de l'entre. Cette macro cre une nouvelle porte avec la variable locale CurrentLine. Cette dernire est dfinie dans le bloc comme tant la i-me ligne du template en entre dans l'itration i.
.foreach_line '(' <entre> [',' <en-tte> [',' <fin>]] ')' <template-complexe> .next ['(( <sparateur> ')']
Paramtres
Description Texte en entre, sur lequel l'itration est effectue Gnr avant le rsultat, s'il y en a un Ajout au rsultat, s'il y en a un Gnr entre valuations non vides de <template-complexe>
Rsultat
Le rsultat est compos des valuations concatnes de <template-complexe> pour chaque ligne du template <entre> converti. Exemple :
.foreach_line(%Comment%) // %CurrentLine% .next(\n)
397
Macro foreach_part
La macro .foreach_part procde l'itration sur la partie du template en entre spcifie comme premier argument de la macro. Le template spcifi dans le bloc est converti pour chaque partie de l'entre. Une partie est dlimite avec un motif de sparation. Il existe deux types de sparateurs : Sparateur de caractres : pour chaque sparateur de caractres, le sparateur spcifi dans la prochaine instruction de la macro est renvoy (mme pour des sparateurs conscutifs) Sparateur de mots : ils sont spcifis en tant qu'intervalles, par exemple [A-Z] spcifie que toutes les lettres majuscules sont des sparateurs. Pour un sparateur de mots, aucun sparateur (spcifi dans la prochaine instruction) n'est renvoy
.foreach_part '(' <entre> [',' <sparateur-motif> [',' <en-tte> [, <fin>]]] ')' <template-simple> .next['(' <sparateur> ')']
Cette macro cre une nouvelle porte dans laquelle la variable locale CurrentPart est dfinie comme la i-me partie du template en entre l'itration i. La variable locale Separator contient le sparateur suivant. Cette macro est particulirement utile lorsque vous travaillez sur les conventions de dnomination. Pour plus d'informations les conventions de dnomination, reportezvous la section Dfinition des conventions de dnomination, dans le chapitre Gestion des modles du manuel Guide des fonctionnalits gnrales. Sparateur-motif Le <sparateur-motif> est dfini dans une chane entre guillemets et se comporte comme suit : Tout caractre spcifi dans le motif peut tre utilis comme sparateur
[<c1> - <c2>] spcifie un caractre au sein de la plage dfinie entre
les caractres <c1> et <c2> Par exemple, le motif suivant -_,[A-Z] spcifie que chaque partie peut tre spare par un espace, un tiret, un trait de soulignement, une virgule ou un caractre compris entre A et Z (majuscule). Par dfaut, le <sparateur-motif> est initialis avec le motif ( -_,\t). Si le motif spcifi est vide, le motif est initialis l'aide de la valeur par dfaut.
398
PowerAMC
Chapitre 7
Un sparateur <sparateur> peut tre concatn entre chaque partie. Les expressions <en-tte> et <fin> peuvent tre ajoutes respectivement au dbut ou la fin de l'expression gnre. Paramtres
Paramtre <entre> <sparateur-motif> <en-tte> (facultatif) <fin> (facultatif) <sparateur> (facultatif) Type Template simple Texte Texte Texte Texte Description Texte en entre sur lequel l'itration est effectue Liste de sparateurs Gnr avant le rsultat, s'il y en a un Ajout au rsultat, s'il y en a un Gnr entre valuations non vides de <template-complexe>
Rsultat
Le rsultat est compos des valuations concatnes de <template-complexe> pour chaque partie du template <entre> converti. Exemples : Convertit un nom en code de classe (conventions de dnomination Java). Dans l'exemple suivant, la variable %Name% quivaut 'Employee shareholder', et est convertie en 'EmployeeShareholder' :
.foreach_part (%Name%, " _-'") %.FU:CurrentPart% .next
Convertit un nom en code d'attribut de classe (conventions de dnomination Java). Dans l'exemple suivant, la variable %Name% quivaut 'Employee shareholder', et est convertie en 'employeeShareholder':
.set_value(_First, true, new) .foreach_part(%Name%,"' _-'") .if (%_First%) %.L:CurrentPart% .set_value(_First, false, update) .else %.FU:CurrentPart% .endif .next
399
Macro bool
Cette macro renvoie 'true' or 'false' en fonction de la valeur de la condition spcifie.
.bool '(' <condition> ')'
Paramtres
Paramtre <condition>
Type Condition
Exemple :
.bool(%.3:Code%= =ejb)
Macro set_object
Cette macro est utilise pour dfinir une variable locale de type objet (objet local).
.set_object '(' <nom-var-locale> [',' <object-ref>[',' <new> ]] ')'
Paramtres
Description Nom de la variable Dcrit une rfrence d'objet. S'il n'est pas spcifi ou s'il s'agit d'une chane vide, la variable est une rfrence l'objet actif dans la porte de conversion courante Si le paramtre est 'new', cre une nouvelle variable et ce, mme s'il en existe dj une dans la porte courante, tandis que le paramtre 'update' modifie la valeur de la variable dans la porte courante, ou cre une nouvelle variable s'il n'en existe aucune
<new> (facultatif)
La variable est une rfrence l'objet spcifi l'aide du second argument. Exemple :
.set_object(Attribute1, Attributes.First)
400
PowerAMC
Chapitre 7
Remarque
Lorsque vous spcifiez une nouvelle variable, il est recommand de spcifier 'new' comme troisime argument pour vous assurer qu'une nouvelle variable soit cre dans la porte courante.
Macro set_value
Cette macro est utilise pour dfinir une variable locale ou un type de valeur.
.set_value '(' <nom-var-locale> ')' <value>[',' <new> ')'
Paramtres
Type Template simple Template simple (squences d'chappement ignores) New ou update (la valeur par dfaut est update)
<new> (facultatif)
Si la valeur est new, (re)dfinit la variable dans la porte courante. Si la valeur est update, met jour la variable existante. Dans le cas contraire, dfinit une nouvelle variable
La valeur de la variable est dfinie pour tre la valeur du template converti spcifie comme second argument. Exemple :
.set_value(FirstAttributeCode, %Attributes.First.Code%)
Remarque
Lorsque vous spcifiez une nouvelle variable, il est recommand de spcifier 'new' comme troisime argument pour vous assurer qu'une nouvelle variable soit cre dans la porte courante.
401
Macro execute_vbscript
Cette macro est utilise pour excuter un script VB spcifi dans un fichier spar.
.execute_vbscript '(' <fichier-vbs> [',' <scriptparameter>] ')'
Paramtres
Paramtre <fichier-vbs>
<paramtrescript> (facultatif)
Rsultat
Remarque : l'objet actif de la porte de conversion courante est accessible via la collection ActiveSelection en tant que ActiveSelection.Item(0). Pour plus d'informations sur ActiveSelection, reportez-vous la section Proprits globales, dans le chapitre Manipulation des objets via VBScript du manuel Guide des fonctionnalits gnrales.
Macro execute_command
Cette macro est utilise pour lancer des excutables sous forme de processus spars. Elle est disponible pour excuter des commandes de gnration uniquement, et peut tre combine aux macros standard du langage de gnration par template lorsque vous dfinissez des commandes.
.execute_command '(' <cmd> [',' <args> [',' <mode>]] ')'
Paramtres
Paramtre <cmd>
402
PowerAMC
Chapitre 7
Paramtre <args> (facultatif) Type Template simple (squences d'chappement ignores) cmd_ShellExecute or cmd_PipeOutput
<mode> (facultatif)
cmd_ShellExecute est excut comme processus indpendant cmd_PipeOutput bloque jusqu' la fin de l'excution, puis montre le rsultat de l'excutable dans la fentre Rsultats
Remarquez que si une commande .execute_command choue pour une raison quelconque (excutables non trouvs, ou bien rsultat envoy vers stderr), l'excution de la commande est interrompue. Exemple :
.execute_command(notepad, file1.txt, cmd_ShellExecute)
Macro abort_command
Cette macro stoppe l'excution de la commande. Elle est disponible pour excuter des commandes de gnration uniquement, et peut tre combine aux macros standard du langage de gnration par template lorsque vous dfinissez des commandes. Exemple :
.if %_JAVAC% .execute (%_JAVAC%,%FileName%) .else .abort_command .endif
Macro change_dir
Cette macro change le rpertoire courant. Elle est disponible pour excuter des commandes de gnration uniquement, et peut tre combine aux macros standard du langage de gnration par template lorsque vous dfinissez des commandes.
.change_dir '(' <chemin> ')'
403
Paramtre
Paramtre <chemin>
Exemple :
.change_dir(C:\temp)
Macro create_path
Cette macro cr un chemin spcifi si ce dernier n'existe pas.
.create_path '(' <chemin> ')'
Paramtre
Paramtre <chemin>
Exemple :
.create_path(C:\temp)
Macro log
Cette macro consigne un message dans la page Gnration de la fentre Rsultats, situe dans la partie infrieure de la fentre principale. Elle est disponible pour excuter des commandes de gnration uniquement, et peut tre combine aux macros standard du langage de gnration par template lorsque vous dfinissez des commandes.
.log <message>
Paramtre
Paramtre <message>
Exemple :
.log undefined environment variable: JAVAC
404
PowerAMC
Chapitre 7
Macro warning
La macro warning est utilise pour produire un avertissement lors de la conversion. Elle peut tre utile pour afficher un message lorsqu'une incohrence est dtecte pendant que vous appliquez le template un objet particulier. Les avertissements n'interrompent pas la gnration, et n'apparaissent pas non plus dans le fichier gnr. Le contenu du message d'avertissement est le template simple valu, pass par paramtre. Il apparat dans la fentre Rsultats (situe dans la partie infrieure de la fentre principale) lors de la gnration, est affiche dans le code dans la page Aperu de la feuille de proprits de l'objet, si au moins une erreur a t rencontre.
.warning <message>
Paramtre
Paramtre <message>
Exemple :
.warning Les associations bidirectionnelles entre classes internes ne sont pas prises en charge
Macro error
La macro error est similaire la macro warning en ceci qu'elle n'apparat pas dans le fichier gnr. En revanche error stoppe la gnration. Le message d'erreur est le template spcifi converti pour l'objet actif. Il est affich la fois dans la page Aperu de la feuille de proprits de l'objet et dans la fentre Rsultats.
.error <message>
Paramtre
Paramtre <message>
Exemple :
.error aucune valeur initiale fournie pour l'attribut %Code% de la classe %Parent.Code%
405
Commentaire et macro //
Le commentaire et la macro // sont utiles pour insrer des commentaires dans un template. Les lignes qui commencent par .// ou par .comment sont ignores lors de la gnration. Exemple :
.// Ceci est un commentaire utilisateur
406
PowerAMC
Chapitre 7
Vous pouvez rencontrer les types d'erreur suivants : Erreurs de syntaxe Erreurs de conversion
Erreurs de syntaxe
Vous pouvez rencontrer les erreurs de syntaxe suivantes :
Message d'erreur Erreur de syntaxe dans la condition .endif attendu .else sans .if correspondant .endif sans .if correspondant .next attendu .end%s attendu .end%s sans .%s correspondant .next sans .foreach correspondant Parenthses manquantes ou non apparies Paramtre inattendus : <paramssupplmentaires> Macro inconnue .execute_command [syntaxe incorrecte] Description et correction Erreur de syntaxe dans une expression boolenne Ajoutez un .endif Ajoutez un .if au .else Ajoutez un .if au .endif Ajoutez un .next Ajoutez un .end%s (par exemple, .endunique, .endreplace, ) Ajoutez un .<macro> au .end<macro> Ajoutez un .foreach au .next Corrigez les ventuelles accolades non apparies Supprimez les paramtres ncessaires La macro n'est pas valide La syntaxe approprie s'affiche dans la page Aperu, ou bien dans la fentre Rsultats : .execute_command(<excutable>[,<arguments >[,{cmd_ShellExec|cmd_PipeOutput}]]) La syntaxe doit tre : .change_dir(<chemin>) La syntaxe doit tre : .convert_name(<nom>) La syntaxe doit tre : .convert_code(<code>) La syntaxe doit tre : .set_object(<nom-var-locale>[,[<porte>.] <porte-objet>[,{new|update}]]) La syntaxe doit tre : .set_value(<nom-varlocale>,<template-simple>[,{new|update}])
Change_dir [syntaxe incorrecte] convert_name [syntaxe incorrecte] convert_code [syntaxe incorrecte] set_object [syntaxe incorrecte]
407
Erreurs de conversion
Les erreurs de conversion sont des erreurs d'valuation sur une variable lorsque vous valuez un template. Vous pouvez rencontrer les erreurs de conversion suivantes :
Message d'erreur de conversion collection non rsolue : <collection> membre non rsolu : <membre> aucune porte externe objet null variable objet attendue : <object> Erreur d'excution VBScript Blocage dtect Description et correction Collection inconnue Membre inconnu Utilisation incorrecte du mot cl Se produit lors d'une tentative d'accs un membre d'un objet null Se produit lorsqu'une chane est utilise la place d'un objet Erreur de script VB Blocage d une boucle infinie
408
PowerAMC
Chapitre 7
Partage de templates
Dans le mcanisme du langage de gnration par template, vous pouvez partager des conditions, des templates et des sous-templates afin de faciliter la maintenance du langage et le rendre plus lisible.
Partage de conditions
Un template peut contenir une expression de condition. Vous avez galement la possibilit de crer des templates pour partager des expressions de condition longues et fastidieuses :
Nom de template %ConditionVariable% Valeur de template .bool (condition)
Au lieu de rpter la condition dans d'autres templates, vous utilisez simplement %ConditionVariable% dans la macro conditionnelle :
.if (%ConditionVariable%)
Exemple
Le template %isInner% contient une condition qui renvoie true si le classificateur est interne un autre classificateur.
.bool (%ContainerClassifier%!=null)
Ce template est utilis dans le template %QualifiedCode% utilis pour dfinir le code qualifi du classificateur :
.if (%isInner%) %ContainerClassifier.QualifiedCode%::%Code% .else %Code% .endif
409
Si la classe est interne pour une autre classe, %topContainerCode% est appliqu la classe conteneur de la classe courante (%ContainerClassifier.topContainerCode%). Si la classe n'est pas une classe interne, le code de la classe est gnr.
410
PowerAMC
Chapitre 7
Exemple
Vous souhaitez gnrer le nom d'une classe et ses attributs sous le format suivant (une ligne vide entre les attributs et la classe) :
Attribute 1 Attribute 2 Class attr1 attr2
Vous pouvez insrer le sparateur "\n" aprs l'instruction .foreach pour vous assurer que chaque attribut s'affiche dans une ligne spare. Vous pouvez galement ajouter "\n\n " aprs l'instruction .endfor pour insrer une ligne vide aprs la liste d'attributs et avant le mot "Class".
.foreach (Attribute) ("\n") Attribute %Code% .endfor ("\n\n") Class
Exemple supplmentaire
Considrons une classe nomme Nurse, ayant pour code de classe Nurse, et dote de deux attributs :
Attribut NurseName NurseGender Type de donnes String Char Valeur initiale __ 'F'
Les templates suivants sont fournis titre d'exemple, avec le texte gnr pour chacune d'entre eux, ainsi qu'une description de chaque rsultat : Template 1
class "%Code%" { // Attributes .foreach_item(Attributes) %DataType% %Code% .if (%InitialValue%) = %InitialValue% .endif .next // Operations .foreach_item(Operations) %ReturnType% %Code%(...) .next } class "Nurse" { // Attributes String nurseName char nurseGender = 'F' // Operations}
Au-dessous du code de classe, le code est gnr sur une ligne. Il s'agit d'un exemple d'une macro de bloc (.if, .endif macro).
411
class "%Code%" { // Attributes .foreach_item(Attributes) %DataType% %Code% .if (%InitialValue%) = %InitialValue% .endif .next(\n) // Operations .foreach_item(Operations) %ReturnType% %Code%(...) .next(\n) } class "Nurse" { // Attributes String nurseName char nurseGender = 'F' // Operations}
Texte gnr 2
Description 2
Dans Template 1, String nurseName et char nurseGender se trouvaient sur la mme ligne, alors que dans Template 2, l'ajout de \n la fin de .next(\n) place String nurseName et char nurseGender sur deux lignes distinctes. En outre, // Operations est affiche dans le rsultat et ce, mme en l'absence d'opration (voir Description 3). Template 3 (blanc)
class "%Code%" { .foreach_item(Attributes, // Attributes\n,\n) %DataType% %Code% .if (%InitialValue%) = %InitialValue% .endif .next(\n) .foreach_item(Operations, // Operations\n,\n) %ReturnType% %Code%(...) .next(\n) } class "Nurse" {// Attributes String nurseName char nurseGender = 'F' }
Texte gnr 3
Description 3
L'espace entre .foreach_item(Attributes, et // Attributes\n,\n) n'est pas gnr, comme indiqu dans le rsultat suivant : class "Nurse" {// Attributes au lieu de . { // Attributes // Operations n'est pas affich dans le rsultat car il est plac dans la macro .foreach_item. Il est plac dans l'en-tte de la macro cet effet.
412
PowerAMC
Chapitre 7
Template 4 (blanc)
class "%Code%" {\n .foreach_item(Attributes," // Attributes\n",\n) %DataType% %Code%[ = %InitialValue%] .next(\n) .foreach_item(Operations," // Operations\n",\n) %ReturnType% %Code%(...) .next(\n) } class "Nurse" { // Attributes String nurseName char nurseGender = 'F' }
Texte gnr 4
Description 4
Le caractres guillemet ("") dans " // Attributes\n" permet d'insrer un espace comme indiqu dans le rsultat : // Attributes
Nouvelle ligne prcdant la macro
La nouvelle ligne qui prcde immdiatement une macro est ignore, de mme que celle qui la suit, comme dans l'exemple suivant : Jack .set_value(v, John) Paul yields: JackPaul instead of: Jack Paul
413
Template 2
<publicAttributes> template <<< .foreach_item(Attributes) .if (%Visibility% == +) %DataType %Code% .endif .next(\n) >>> <protectedAttributes> template <<< .foreach_item(Attributes) .if (%Visibility% == #) %DataType %Code% .endif .next(\n) >>> <privateAttributes> template <<< .foreach_item(Attributes) .if (%Visibility% == -) %DataType %Code% .endif .next(\n) >>>
Template 3
Template 4
414
PowerAMC
Chapitre 7
Pour amliorer la lisibilit et rendre le code encore plus rutilisable, ces quatre templates peuvent tre crits dans deux templates l'aide de paramtres: Premier template
<show> template <<< Class "%Code%" attributes : // Public %attributes(+)% // Protected %attributes(#)% // Private %attributes(-)% >>>
Second template
<attributs> template <<< .foreach_item(Attributes) .if (%Visibility% == %@1%) %DataType %Code% .endif .next(\n) >>>
Description
Le premier paramtre dans cet exemple %attributes(+, ou #, ou -)% peut tre accessible via la variable %@1%, le second, s'il existe, est accessible via la variable %@2% variable, etc.
415
416
PowerAMC
C H A P I T R E
417
418
PowerAMC
Chapitre 8
Noms publics
Chaque objet du mtamodle PowerAMC a un nom et un code qui correspondent au nom public de l'objet. Le nom public d'un objet est identificateur unique de cet objet dans la bibliothque du modle. Une bibliothque de modle correspond un package visible dans le diagramme Modules du mtamodle, par exemple PdCommon. Le nom public ne correspond pas toujours au nom de l'objet dans l'interface de PowerAMC. Les noms publics sont galement utiliss dans les fichiers XML ainsi que dans le langage de gnration par template (GTL) de PowerAMC. Pour plus d'informations sur les fichiers XML, reportez-vous au chapitre Spcification du format de fichier PowerAMC. Pour plus d'informations sur la gnration de texte, reportez-vous au chapitre Guide de rfrence de la gnration.
Classes
Les classes sont utilises pour reprsenter les mtadonnes de la faon suivante : Classes abstraites : elles sont utilises pour partager des attributs et comportements. Elles ne sont pas visibles dans l'interface PowerAMC. Les classes pouvant tre instancies hritent des classes abstraites via des liens de gnralisation. Par exemple, NamedObject est une classe abstraite, elle stocke les attributs standard tels que name, code, comment, annotation et description hrits par la plupart des objets de conception PowerAMC Classes instanciables/concrtes : elles correspondent aux objets affichs dans l'interface, elles sont dotes de leurs propres attributs tels que type ou persistance, et hritent des attributs et comportements des classes abstraites via les liens de gnralisation 419
Concepts relatifs au mtamodle Le mtamodle PowerAMC met en exergue les liens d'hritage entre mtadonnes. Attributs de classe Les attributs sont des proprits de classe qui peuvent tre drivs ou non. Les classes lies d'autres classes via des liens de gnralisation contiennent le plus souvent des attributs drivs qui sont calculs partir des attributs ou des collections de la classe parent. Les attributs non drivs sont les attributs propres de la classe. Ces attributs sont stocks dans le modle et enregistrs dans le fichier du modle. Ni les attributs drivs, ni les attributs par le biais des associations navigables ne sont stocks dans le fichier du modle.
Associations et collections
Les associations sont utilises pour exprimer les connexions smantiques entre des classes appeles collections. Dans la feuille de proprits d'une association, les rles transportent l'information relative l'objet d'extrmit de l'association. Dans le mtamodle PowerAMC, ce rle a le mme nom qu'une collection pour l'objet courant. Les objets PowerAMC sont lis d'autres objets via des collections. En rgle gnrale, les associations n'ont qu'un seul rle, ce rle se trouve l'oppos de la classe qui reprsente une collection. Dans l'exemple suivant, Identifier a une collection appele Attributes :
Lorsque les associations ont deux rles, les deux collections ne peuvent pas tre enregistres dans le fichier XML, seule la collection ayant un rle navigable sera enregistre. Pour plus d'informations sur les rles navigables, reportez-vous la section XML et le mtamodle PowerAMC dans le chapitre Spcification du format de fichier PowerAMC. Composition Parmi les associations, les compositions expriment une forte proprit des classes enfant par les classes parent ; les enfant vivent et meurent avec les parents. Si le parent est copi, l'enfant l'est galement.
420
PowerAMC
Chapitre 8
Par exemple, dans le package PdCommon, diagramme Option Lists, la classe NamingConvention est associe avec la classe BaseModelOptions via trois associations de composition : NameNamingConventions, CodeNamingConventions et NamingConventionsTemplate. Ces associations de composition expriment le fait que la classe NamingConvention n'existerait pas sans la classe BaseModelOptions.
Gnralisations
Le mtamodle PowerAMC utilise des gnralisations pour montrer les liens d'hritage entre une classe plus gnrale (le plus souvent une classe abstraite) et une classe plus spcifique (le plus souvent une classe instanciable). La classe la plus spcifique hrite des attributs de la classe plus gnrique, ces attributs tant appels attributs drivs. En partageant les attributs et comportements, les hritages amliorent la lisibilit du mtamodle.
421
Organisation gnrale
Lorsque vous ouvrez le mtamodle PowerAMC, le diagramme Modules s'affiche, et vous pouvez voir une srie de packages lis PdCommon. Ces packages reprsentent les diffrentes bibliothques de PowerAMC, chaque bibliothque (en dehors de PdCommon) quivaut un type de modle :
Nom du package PdCDM PdPDM PdOOM PdBPM PdXSM PdMTM PdFRM PdRMG PdWSP Modle correspondant Modle Conceptuel de Donnes (MCD) Modle Physique de Donnes (MPD) Modle Orient Objet( MOO) Modle de Processus Mtiers (MPM) Modle XML Modle de Traitements Merise (MTM) Modle libre (MLB) Rfrentiel Espace de travail
Le package PdCommon ne correspond pas un modle particulier, il rassemble tous les objets partags entre modles. Les rgles de gestion, par exemple, sont dfinies dans ce package. Il dfinit galement les classes abstraites du modle, par exemple BaseObject est dfini dans le diagramme Common Abstract Objects dans le package Objects de PdCommon. Pour plus d'informations sur les classes abstraites, reportez-vous la section Classes. Les packages de bibliothques sont lies PdCommon par des liens de gnralisation indiquant que chaque modle hrite des objets communs de la bibliothque PdCommon. 422
PowerAMC
Chapitre 8
Contenu de PdCommon
La bibliothque PdCommon est organise en sous-packages contenant diffrents diagrammes qui illustrent un certain aspect de la bibliothque.
Sous-package Features Description Toutes les fonctionnalits mises en oeuvre par les classes dans PdCommon. Par exemple, Report appartient PdCommon car cette fonctionnalit est partage par tous les modles Les objets de conception partags par plusieurs modles Reprsentation graphique d'objets de conception partags
Objects Symbols
Objects Symbols
Dans les packages PdOOM et PdPDM, les diffrents types de diagramme pris en charge dans PowerAMC s'affichent sous la forme de diagrammes diffrents dans le package.
423
Notions de base relatives la structure du mtamodle Dans l'exemple courant issu de Common Instantiable Objects dans le package Objects de PdCommon, BusinessRule (couleur verte) est dvelopp tandis que NamedObject et BaseModel sont utiliss pour exprimer les liens d'hritage et de composition l'aide de classes abstraites.
424
PowerAMC
Chapitre 8
Vous pouvez utiliser l'onglet Associations dans les feuilles de proprits des classes de mtamodle pour obtenir la liste des associations migres pour la classe courante.
425
Collections d'objets
Dans PdBPM, il existe une association entre les classes MessageFormat et MessageFlow. Le nom public de cette association est Format. Le rle de cette association est Usedby, qui correspond la collection de messages de la classe MessageFormat Dans PdCommon, dans le diagramme Common Instantiable Objects, vous pouvez afficher les objets BusinessRule, ExtendedDependency et FileObject avec leurs propres attributs, ainsi que les classes abstraites dont ils hritent les attributs via des liens de gnralisation BaseModel contient l'opration Compare qui peut tre utilise dans VBS
Attributs d'objet
Oprations d'objet
Les oprations dans des classes d'un mtamodle correspondent aux mthodes objet utilises dans VBS
426
PowerAMC
Chapitre 8
Information <<notScriptable>> stereotype Description Objets qui ne prennent pas en charge les scripts VB qui ont le strotype <<notScriptable>>
Pour plus d'informations sur les noms publics, reportez-vous la section Noms publics. Pour plus d'informations sur les gnralisations, reportez-vous la section Gnralisations. Fichier d'aide sur VBS Si vous avez besoin d'un supplment d'informations relatives VBS, vous pouvez utiliser le fichier d'aide accessible via la bote de dialogue Edition/Excution d'un script. Ce fichier d'aide HTML est une autre reprsentation du mtamodle, conue pour aider les utilisateurs VBS identifier les collections et attributs d'objets. Pour plus d'informations sur VB Scripting, reportez-vous la section Accs aux objets l'aide de VBScript dans le manuel Guide des fonctionnalits gnrales.
427
Hritage
Les templates sont hrits par tous les descendants de la mtaclasse pour laquelle ils sont dfinis. Ce mcanisme est utile pour partager le code de template entre les mtaclasses ayant un anctre commun. Par exemple, si vous dfinissez un template pour une classe abstraite telle que BaseObjects, toutes les classes lies via des liens de gnralisation cette classe hritent de ce template. Le GTL utilise des macros telles que foreach_item, pour permettre l'itration des collections d'objets. Ce template spcifi dans le bloc est converti sur tous les objets contenus dans la collection spcifie. Le mtamodle fournit des informations trs utiles concernant les collections de mtaclasses sur lesquelles vous dfinissez un template contenant une macro d'itration.
Collections
428
PowerAMC
Chapitre 8
Attributs calculs
Les attributs calculs suivants sont des extensions de mtamodle spcifiques au GTL :
Nom de mtaclasse PdCommon. BaseObject Nom d'attribut isSelected Type boolean Description True si l'objet correspondant fait partie de la slection dans la bote de dialogue de gnration, false dans le cas contraire True si l'objet tait accessible via un raccourci, false dans le cas contraire Permet d'accder aux options de gnration dfinies par l'utilisateur
isShortcut
boolean
GenOptions
struct
string string
string
Attribut tendu Javadoc@<tag> avec formatage supplmentaire Attribut tendu Javadoc@<tag> avec formatage supplmentaire
@<tag> (Java-specific)
string
429
Type string
PdOOM. Operation
object object boolean string string string Attribut tendu Javadoc@<tag> formatage supplmentaire (particulirement pour @throws, @exception, @params)
PdOOM. Parameter
string string string string string string string Commentaire supprim (avec /**, /*, */ et // retirs)
PdOOM. Association
PdOOM.*
ActualComment
430
PowerAMC
Chapitre 8
Collections calcules
Les collections calcules sont des extensions de mtamodle spcifiques au GTL :
Nom de mtaclasse PdCommon.BaseModel Nom de collection Generated <metaclass-name>List Description Collection de tous les objets du type <metaclass-name> qui font partie de la slection dans la bote de dialogue de gnration
SourceLinks SourceLinks
431
Vous pouvez utiliser le mtamodle pour visualiser les lments qui ne s'affichent pas dans les fichiers XML : Les attributs drivs peuvent tre dduits du mtamodle lorsqu'il existe un lien de gnralisation entre une classe parent et une classe enfant. Ces attributs ne s'affichent pas dans le code XML Les objets ayant le strotype <<internal>> correspondent aux fonctionnalits temporaires telles que CheckModelControler, qui ne s'affiche pas dans le fichier XML
Pour plus d'informations sur l'utilisation du mtamodle public afin de comprendre le format de fichier XML, reportez-vous la section XML et le mtamodle PowerAMC dans le chapitre Spcification du format de fichier PowerAMC.
432
PowerAMC
C H A P I T R E
Sujet Sommaire
Ce chapitre dcrit le format de fichier utilis pour enregistrer les modles PowerAMC.
Section Format de fichier XML Modification d'un fichier XML 434 442
433
XML signifie Extensible Markup Language. Il s'agit d'un langage permettant de simplifier l'utilisation de documents au format SGML, ainsi que la transmission et le partage de ces documents sur le Web. Editeurs de DTD et XML En outre, les fichiers XML de PowerAMC prennent en charge un DTD (Document Type Definition) pour chaque type de modle. Le DTD permet d'utiliser un diteur XML pour parcourir la structure hirarchique des objets dans le modle. Les diffrents DTD sont disponibles dans le dossier \DTD du rpertoire d'installation de PowerAMC. Vous pouvez trouver plus d'informations concernant XML sur le site suivant :
http://www.xml.com
Balises XML
Les fichiers XML contiennent des objets, attributs et collections, le plus souvent dclars l'aide de balises begin et end ; les objets rfrencs n'ont qu'une seule balise pour le dbut et la fin, comme indiqu dans le tableau ciaprs.
434
PowerAMC
Chapitre 9
La diffrence entre une balise de dbut (begin) et une balise de fin (end) rside dans le fait que la balise de fin comporte une barre oblique (/) aprs le caractre <. Les balises suivantes sont utilises dans les fichiers XML de PowerAMC :
Balise de dbut <c:collection> Balise de fin </c:collection> Objet Collection Description Collection d'objets lis un autre objet. Vous pouvez utiliser le mtamodle PowerAMC pour visualiser les collections d'un objet. Par exemple, <c:Children> Un objet que vous pouvez crer dans PowerAMC. Par exemple, <o:Model> Lorsqu'un objet est dj dfini dans le fichier, une rfrence est cre la prochaine fois que ce fichier est lu dans le fichier XML. Par exemple, <o:Class Ref= "xyz"/> Un objet est constitu d'un nombre d'attributs dont chacun peut tre modifi indpendamment. Par exemple, <a:ObjectID>
<o:object>
</o:object>
Object
<o:object/>
Referenced object
<a:attribute>
</a:attribute>
Attribute
435
Format de fichier XML Une fois vous que vous avez trouv et localis l'objet dans le mtamodle, vous pouvez lire les informations suivantes : Chaque objet PowerAMC peut comporter plusieurs collections correspondant aux autres objets avec lesquels il doit interagir. Ces collections sont reprsentes par les associations existant entre objets. Les rles des associations (agrgations et compositions incluses) correspondent aux collections d'un objet. Par exemple, chaque modle PowerAMC contient une collection de domaines appele Domains. En rgle gnrale, les associations n'ont qu'un seul rle, le rle s'affiche l'oppos de la classe pour lequel il reprsente une collection. Toutefois, le mtamodle contient galement des associations ayant deux rles, auquel cas, les deux collections ne peuvent pas tre enregistres dans le fichier XML. Vous pouvez identifier la collection qui sera enregistre partir de la feuille de proprits de l'association : il s'agit du rle pour lequel la case Navigable est coche. Dans l'exemple suivant, les association ont deux rles qui signifient que Classifier a une collection Actors, et que Actor2 a une collection ImplementationClasses :
436
PowerAMC
Chapitre 9
Si vous affichez la feuille de proprits de l'association, vous pouvez voir que la case Navigable est coche pour le rle ImplementationClass, ce qui signifie que seule la collection ImplementationClass sera enregistre dans le fichier.
Les attributs ayant le type de donnes IOBJECT sont des attributs dans le mtamodle alors qu'ils apparaissent sous forme de collections contenant un seul objet dans le fichier XML. Ce n'est pas le cas pour Parent et Folder qui ne contiennent pas de collection.
Le mtamodle public PowerAMC est disponible dans le rpertoire \Exemples. Pour plus d'informations sur le mtamodle PowerAMC, reportez-vous au chapitre Mtamodle public PowerAMC. Vous pouvez galement utiliser le fichier d'aide dot du suffixe .chm fourni avec PowerAMC. Ce fichier est destin aider les utilisateurs qui souhaitent crer des scripts Visual Basic car il fournit des informations utiles sur les proprits, collections et mthodes d'objets.
437
Format de fichier XML Pour plus d'informations sur la cration de scripts Visual Basic pour les objets PowerAMC, reportez-vous au chapitre Manipulation des objets via VBScript du manuel Guide des fonctionnalits gnrales.
Etude de cas
Le modle suivant contient deux classes et une association. Nous allons explorer le fichier XML correspondant ce modle.
438
PowerAMC
Chapitre 9
Le fichier commence par plusieurs lignes qui spcifient des dtails relatifs XML et au modle. Le premier objet qui apparat est la racine du modle <o:RootObject Id="01">. RootObject est un conteneur de modle qui est dfini par dfaut lorsque vous crez et enregistrez un modle. RootObject contient une collection appele Children qui est compose de modles. Dans notre exemple, Children ne contient qu'un objet de modle qui est dfini comme suit :
<o:Model Id="o2"> <a:ObjectID>3CEC45F3-A77D-11D5-BB880008C7EA916D</a:ObjectID> <a:Name>ObjectOrientedModel_1</a:Name> <a:Code>OBJECTORIENTEDMODEL_1</a:Code> <a:CreationDate>1000309357</a:CreationDate> <a:Creator>arthur</a:Creator> <a:ModificationDate>1000312265</a:ModificationDate> <a:Modifier>arthur</a:Modifier> <a:ModelOptionsText> [ModelOptions]
Sous la dfinition de l'objet modle, vous pouvez voir la srie d'attributs ModelOptions. Remarquez que ModelOptions n'est pas limit aux options dfinies dans la bote de dialogue Options du modle d'un modle, mais rassemble toutes les proprits enregistres dans un modle, notamment les options relatives la gnration intermodle. Aprs ModelOptions, vous pouvez identifier la collection <c:ObjectLanguage>. Il s'agit du langage objet li au modle. La seconde collection du modle est <c:ClassDiagrams>. Il s'agit de la collection des diagrammes lis au modle. Dans notre exemple, un seul diagramme est dfini dans le paragraphe suivant :
<o:ClassDiagram Id="o4"> <a:ObjectID>3CEC45F6-A77D-11D5-BB880008C7EA916D</a:ObjectID> <a:Name>ClassDiagram_1</a:Name> <a:Code>CLASSDIAGRAM_1</a:Code> <a:CreationDate>1000309357</a:CreationDate> <a:Creator>arthur</a:Creator> <a:ModificationDate>1000312265</a:ModificationDate> <a:Modifier>arthur</a:Modifier> <a:DisplayPreferences>
Tout comme dans le cas des options de modle, la dfinition ClassDiagram est suivie d'une srie d'attributs de prfrences d'affichage.
439
Format de fichier XML Dans la collection ClassDiagram se trouve une nouvelle collection appele <c:Symbols>. Cette collection rassemble tous les symboles contenus dans le diagramme du modle. Le premier objet tre dfini dans la collection Symbols est AssociationSymbol :
<o:AssociationSymbol Id="o5"> <a:CenterTextOffset>(1, 1)</a:CenterTextOffset> <a:SourceTextOffset>(-1615, 244)</a:SourceTextOffset> <a:DestinationTextOffset>(974, -2)</a:DestinationTextOffset> <a:Rect>((-6637,-4350), (7988,1950))</a:Rect> <a:ListOfPoints>((-6637,1950),(7988,-4350))</a:ListOfPoints> <a:ArrowStyle>8</a:ArrowStyle> <a:ShadowColor>13158600</a:ShadowColor> <a:FontList>DISPNAME 0 Arial,8,N
AssociationSymbol contient les collections <c:SourceSymbol> et <c:DestinationSymbol>. Dans ces deux collections, les symboles font l'objet de rfrences mais ne sont pas dfinis, car ClassSymbol n'appartient pas aux collections SourceSymbol et DestinationSymbol.
<c:SourceSymbol> <o:ClassSymbol Ref="o6"/> </c:SourceSymbol> <c:DestinationSymbol> <o:ClassSymbol Ref="o7"/> </c:DestinationSymbol>
La collection des symboles d'association est suivie par la collection <c:Symbols>. Cette collection contient la dfinition des deux symboles de classe.
<o:ClassSymbol Id="o6"> <a:CreationDate>1012204025</a:CreationDate> <a:ModificationDate>1012204025</a:ModificationDate> <a:Rect>((-18621,6601), (-11229,12675))</a:Rect> <a:FillColor>16777215</a:FillColor> <a:ShadowColor>12632256</a:ShadowColor> <a:FontList>ClassStereotype 0 arial,8,N
La collection <c:Classes> suit la collection <c:Symbols>. Dans cette collection, les deux classes sont dfinies avec leurs collections d'attributs.
<o:Class Id="o10"> <a:ObjectID>10929C96-8204-4CEE-911#E6F7190D823C</a:ObjectID> <a:Name>Order</a:Name> <a:Code>Order</a:Code> <a:CreationDate>1012204026</a:CreationDate> <a:Creator>arthur</a:Creator> <a:ModificationDate>1012204064</a:ModificationDate> <a:Modifier>arthur</a:Modifier> <c:Attributes> <o:Attribute Id="o14">
440
PowerAMC
Chapitre 9
L'attribut est un objet terminal : aucune ramification supplmentaire n'est ncessaire pour en dtailler la dfinition. Chaque collection appartenant un objet analys est dveloppe et analyse, y compris les collections contenues dans d'autres collections. Une fois tous les objets et toutes les collections parcourus, les balises suivantes s'affichent :
</o:RootObject> </Model>
441
442
PowerAMC
Chapitre 9
Le contenu du fichier XML s'affiche. Les objets sont tris en fonction des collections auxquelles ils appartiennent.
2 3
Parcourez le fichier ou utilisez l'outil de recherche pour trouver un nom d'objet dans le modle. Vous pouvez modifier directement les proprits d'un objet en prenant soin de ne pas modifier les balises de dbut et de fin de la dfinition de l'objet (informations contenues entre les symboles < >).
443
Modification d'un fichier XML 4 Enregistrez et fermez le fichier. Si vous ouvrez le fichier dans PowerAMC, l'objet s'affiche avec le nouveau nom.
Ouvrez le fichier dans un diteur XML. Le fichier XML s'affiche. Les objets sont affichs en fonction de la hirarchie qui reflte la faon dont ils sont organiss dans le modle.
Vous pouvez modifier une valeur en saisissant directement dans le champ correspondant du volet Valeurs.
444
PowerAMC
Chapitre 9
Dans l'exemple suivant, les proprits de modle ont t modifies en ajoutant NEW au nom du modle :
445
Modification d'un fichier XML Le contenu du fichier XML s'affiche. Les objets sont affichs en fonction de la hirarchie qui reflte la faon dont ils sont organiss dans le modle.
2 3
Dveloppez ou rduisez les noeuds situs gauche des objets pour parcourir la hirarchie des objets. Refermez l'explorateur une fois que vous avez termin.
446
PowerAMC
Index
B .
.EXA fichier 349 .syntaxe de format Z 38 BasicDataTypes 288 BeforeCreate 76 BeforeCreateDatabase 131 BeforeDrop 76 BeforeModify 76 Bind 95, 134, 154, 156 BindDefault 135 bitmap join index 163 bloc 372 bloc (macro) 385 bloc conditionnel 406 block (macro) 392 BlockComment 63 bool (macro) 400 boucle (macro) 384, 385
A
abort_command (macro) 403 Abstract Data Type 136 Abstract Data Type Attribute 138 activer la slection pour la gnration de fichiers 203 activer le suivi 286, 315, 332 Add 76 AddColIndex 105 AddColnChck 95, 98 AdditionalDataTypes 288 AddJoin 163 AddQuote 65 AddTableCheck 83 ADTComment 138 AfterCreate 76, 170 AfterDrop 76 AfterModify 76 AKeyComment 116 AllowedADT 86, 138, 139, 181 AllowNullableColn 114 AltEnableAddColnChk 90 AlterFooter 72 AlterHeader 72 AlterTableFooter 83 AlterTableHeader 83 AmcdDataType 177 apostrophe variable par dfaut 81 association 420 attribut driv 419 attribut tendu 13, 201, 218 crer 219 importer depuis des versions antrieures type 218, 219 Documentation utilisateur avance
C
CanCreate gestionnaire d'vnement 248 caractre de fin 61 caractre de fin de bloc 61 caractres illgaux (langage objet) 289 CaseSensitivityUsingQuote 64 catgorie 3 ODBC 6 Script 6 catgorie de script 5, 60 catgorie Generation (dfinition tendue de modle) 359 change_dir (macro) 403 CharFunc 73 CheckNull 90 CheckOnCommit 120 Choreography catgorie (langage de processus) 327 cible de gnration 355 classe abstraite 419 attribute 419 concrte 419 mtamodle 419
348
447
CloseDatabase 131 Cluster 105 codage 303 collection 420 chevauchement 438 composition 420 membre 372, 375 navigable 420 porte 377 collection tendue 234 crer 235 nom inverse 234 proprits 234 strotype cible 234 type de cible 234 ColnDefaultName 143 ColnRuleName 143 colonne variable par dfaut 81 Column 87 ColumnComment 96 commande 361 Commands catgorie (langage de processus) 317 catgorie (langage objet) 291 catgorie (langage XML) 333 commentaire & // (macro) 406 Commit 74 composition 420 ConceptualDataTypes 288 conseils et techniques 409 Constants catgorie (langage objet) 289 ConstName 82, 95, 111, 115, 120 convention de dnomination de code 202 convert_code (macro) 394 convert_name (macro) 393 ConvertFunc 74 CopyObject 245 correction automatique 222, 225 Count 375 Create 75 create_path (macro) 404 CreateBeforeKey 108 CreateBody 170 CreateDefault 135 CreateFunc 147 critre 201, 213 ajouter un attribut tendu 219 Criteria catgorie (langage objet) 301 CustomFunc 148 CustomProc 147
D
Data type (catgorie) 11, 177 AllowedADT 181 AmcdDataType 177 HostDataType 181 LogPhysADTType 180 OdbcPhysDataType 179 PhysDataType 178 PhysDttpSize 178 PhysLogADTType 180 PhysOdbcDataType 180 Data types catgorie (langage objet) 288 Database 130 Datahandling catgorie (langage de processus) 327 DateFunc 73 DB Package 168 DB Package Cursor 172 DB Package Exception 173 DB Package Parameter 173 DB Package Pragma 174 DB Package Procedure 170 DB Package Type 172 DB Package Variable 171 DBProcedureBody 171 DclDelIntegrity 121 DclUpdIntegrity 120 Default 159 DefaultDataType 288 DefaultTriggerName 151 DefIndexColumn 106 DefIndexType 106 DefineColnCheck 96 DefineJoin 121 DefineTableCheck 83 dfinition tendue de modle 341, 342 catgorie 343, 354 catgorie Generation 359 cibles de gnration 355 commande 360 complter la gnration de langage 356 complter la gnration principale 366 crer 343 crer une commande 361 crer une tche 362 diteur 353 entre 343 exporter 351 famille 354 PowerAMC
448
dfinition tendue de modle (suite) gnration de langage 354 gnrer 366 gnrer pour une cible spare 366 gnrique 343, 344 importer 346, 350 mode de suivi 354 modifier 342 options 363 paramtres de gnration 342 profil 342 proprits 354 rattachement automatique 354 sous-famille 354 spcifique 343, 346 tche 360 DefOptions 77 delete (macro) 391 dlimiteur 62 dpendance 425 Domain 132 Drop 76 DropColnChck 96 DropColnComp 97 DropFunc 148 DropTableCheck 84
EnableMultiCheck 58 EnableMultiFile 68 EnableMultiTrigger 150 EnableNotNullWithDflt 95 EnableNull 94 EnableOption 175 EnableOwner 104, 134, 147, 151, 166 EnableOwnerPrefix 65 en-tte chane 410 entre 3 erreur de script (VB) 228 error (macro) 405 tiquette 245 Event 153 EventDelimiter 153 Events catgorie (langage objet) 290 exclure une mtaclasse 205 execute_command (macro) 402 execute_vbscript (macro) 402 exporter dfinition tendue de modle 351 Extended attributes (catgorie de langage objet) 302 extension 21, 29
F
famille 5, 286, 315, 332, 354 fichier gnr 201, 229, 370 crer 231 File (catgorie) AlterFooter 72 AlterHeader 72 EnableMultiFile 68 Footer 67 Header 67 ScriptExt 68 StartCommand 69 TableExt 69 TrgFooter 72 TrgHeader 71 TrgUsage1 70 TrgUsage2 70 TriggerExt 70 Usage1 69 Usage2 69 fin chane 410 First 375 FKAutoIndex 119 FKeyComment 122
E
lment de template de trigger 4 Enable 75 EnableAdtOnColn 137 EnableAdtOnDomn 137 EnableAlias 167 EnableAscDesc 103 EnableBindRule 91, 133 EnableChangeJoinOrder 118 EnableCheck 57, 134 EnableCluster 103 EnableComputedColn 91 EnableConstname 58 EnableDefault 91, 133 EnableDtbsPrefix 65 EnablefKeyName 118 EnableFunc 146 EnableFunction 104 EnableIdentity 92 EnableIntegrity 57 EnableManyDatabases 132 Documentation utilisateur avance
449
Footer 67 foreach_item (macro) 395 foreach_line (macro) 397 foreach_part (macro) 398 Format (catgorie de SGBD) 63 format de date 66 format de fichier 432, 433 balises XML 434 bin 434 collections superpose 438 dfinition d'objet 438 DTD 434 diteur XML 434 tude de cas 438 mtamodle 435 modification l'aide de la visionneuse XML 445 modifier 442 modifier dans un diteur standard 442 modifier dans un diteur XML 444 OID 442 rfrence d'objet 438 structure 434 XML 434 format d'heure 66 FunctionComment 149
G
General 6 General (catgorie) 5, 57 EnableCheck 57 EnableConstname 58 EnableIntegrity 57 EnableMultiCheck 58 SqlSupport 58 UniqConstName 59 gnralisation 421 Generated Files (catgorie de langage objet) 303 Generation catgorie (langage de processus) 316 catgorie (langage XML) 333 Generation (catgorie de langage objet) 291 gnrer 18 post-gnration 358 pr-gnration 358 gnrer pour une dfinition tendue de modle 366
gestionnaire d'vnement 247 ajouter un strotype 250 ajouter une mtaclasse 250 CanCreate 248 Initialize 249 proprits 247 script 247 variable globale 247 GetSource 245 GetTarget 245 global script 222, 227 GrantOption 158, 159 Group 153 GroupFunc 73 GTL 21, 291, 316, 333, 367, 428 attributs calculs 429 bloc conditionnel 406 chane de fin 410 chane d'en-tte 410 collections calcules 431 conseils et techniques 409 conversion des raccourcis 380 dfinition 368 hritage 369, 381 message d'erreur 406 partager des templates 409 passage de paramtre 414 polymorphisme 369, 382 porte de la conversion 379 redfinir un template 381 squences d'chappement 383 surcharge de template 383 template 370 templates rcursifs 410 variables 372 variables d'environnement 410 GTL (macro)s 384
H
Header 67 hritage 369, 381, 421 HostDataType 181
I
icne attacher un strotype 209 PowerAMC
450
if (macro) 386 IllegalChar 63 Implementation catgorie (langage de processus) 325 importer attributs tendus 348 dfinition tendue de modle 350 fichier .EXA 349 Index (catgorie) 101 Footer 106 Header 106 index bas sur une fonction 33 IndexComment 107 IndexType 106 Initialize gestionnaire d'vnement 249 Install 137 instruction SQL 36 format de variable 41 mots rservs 36 template de nom de contrainte 43 variables 38 IsEmpty 375
J
join index EnableJidxColn 163 EnableOwner 163 Join Index (catgorie) 161 Footer 163 Header 163 JoinIndexComment 163
K
Key 112
L
langage de gnration par template (GTL) langage de processus 311, 312 activer le suivi 315 catgorie 312 catgorie Choreography 327 catgorie Commands 317 catgorie Datahandling 327 catgorie Generation 316 Documentation utilisateur avance 367
langage de processus (suite) catgorie Implementation 325 catgorie Options 322 catgorie Profile 328, 339 Catgorie Settings 325 catgorie Tasks 318 diteur 314 entre 312 famille 315 modifier 312 proprits 315 sous-famille 315 langage objet 283, 284 activer le suivi 286 catgorie 284 catgorie Commands 291 catgorie Constants 289 catgorie Criteria 301 catgorie Data types 288 catgorie Events 290 catgorie Extended attributes 302 catgorie Generated Files 303 catgorie Generation 291 catgorie Namings 289 catgorie Options 297 catgorie Profile 300 Catgorie Settings 288 catgorie Stereotype 301 catgorie Tasks 293 catgorie Templates 308 diteur 285 entre 284 famille 286 modifier 284 proprits 286 rle d'association 310 sous-famille 286 langage XML 329, 330 tasks category 335 activer le suivi 332 catgorie 330 catgorie Commands 333 catgorie Generation 333 catgorie Options 336 Catgorie Settings 339 diteur 331 entre 330 famille 332 modifier 330 proprits 332
451
langage XML (suite) sous-famille 332 types de donnes 339 LineComment 63 ListOperators 74 log (macro) 404 LogPhysADTType 180 lowercase (macro) 389 LowerCaseOnly 64
M
macro 384 abort_command 403 bloc 384, 385 block 392 bool 400 boucle 384, 385 change_dir 403 commentaire & // 406 convert_code 394 convert_name 393 create_path 404 delete 391 error 405 execute_command 402 execute_vbscript 402 foreach_item 395 foreach_line 397 foreach_part 398 if 386 log 404 lowercase 389 replace 390 set_object 400 set_value 401 simple 384, 385 unique 388 uppercase 389 vbscript 387 warning 405 MandIndexType 105 MaxColIndex 105 MaxConstLen 86, 99, 115, 119, 175 MaxDefaultLen 143 MaxFuncLen 147 Maxlen 75, 161, 167 MaxScriptLen 65
menu 252 contextuel 252 crer un menu contextuel 254 crer un menu principal 254 emplacement 253 menu page 253 outil Ajouter un sparateur 253 outil Ajouter un sous-menu 253 outil Ajouter une commande 253 outil Crer une commande 253 principal 252 proprits 253 xml page 253 message d'erreur 406 erreur de conversion 408 syntaxe 407 mtaclasse 202 activer la slection pour la gnration de fichiers 203 ajouter un attribut tendu 219 convention de dnomination de code 202 exclure d'un modle 205 utiliser un strotype comme mtaclasse 208 mtamodle 417 association 420 attributs calculs 429 classes 419 code de couleur 423 collection 420 collections calcules 431 concepts 419 dfinition 418 fonctionnalits 423 format de fichier XML 432 naviguer 423 noms publics 419 objets 423 packages 422 PdCommon 422, 423 PowerAMC 418 structure 422 symboles 423 utilisation avec VBS 426 utiliser avec GTL 428 mthode 237 crer 238 proprits 237 script 237 type 237 variables globale 237 PowerAMC
452
mthode (suite) VBS 238 ModifiableAttributes 79 modifier dfinition tendue de modle langage XML 330 SGBD 2 Modify instruction 20 ModifyColnComp 99 ModifyColnDflt 97 ModifyColnNull 99 ModifyColumn 97 mot cl 72 mot rserv 36
342
N
Namings catgorie (langage objet) nom par dfaut 211 nom public 419 NumberFunc 73 289
O
Objects (catgorie de SGBD) Default 159 Objects (catgorie) 9, 75 Abstract Data Type 136 Abstract Data Type Attribute 138 Add 76 Column 87 Create 75 Database 130 DB Package 168 DB Package Cursor 172 DB Package Exception 173 DB Package Parameter 173 DB Package Pragma 174 DB Package Procedure 170 DB Package Type 172 DB Package Variable 171 DefOptions 77 Domain 132 Drop 76 Enable 75 Group 153 index 101 Join Index 161 Key 112 Documentation utilisateur avance
Objects (catgorie) (suite) Maxlen 75 ModifiableAttributes 79 permission 158 Pkey 109 Privilege 157 Procedure 145 Qualifier 164 Reference 117 ReversedStatements 79 Role 155 Rule 142 Sequence 164 SqlAttrQuery 78 SqlFragQuery 78 SqlListQuery 77 SqlOptsQuery 78 Storage 128 Synonym 166 Table 79 Tablespace 126 trigger 149 User 140 View 123 objet dfinition 438 membre 372, 374 porte 372, 377 rfrence 438 objet transformation interne 243 ODBC gnration 25 requte 20 requte de reverse engineering tendue 29 reverse engineering 25 reverse engineering l'aide des qualifiants 35 reverse engineering d'index bass sur une fonction 33 reverse engineering d'options physiques 31 SqlAttrQuery 25 SqlChckQuery 25 SqlListChildrenQuery 25 SqlListQuery 25 SqlOptsQuery 25 SqlPermQuery 25 SqlSysIndexQuery 25 ODBC (catgorie) 5, 60 OdbcPhysDataType 179 OID 442 OpenDatabase 131
453
oprateur 374, 375, 376 option physique 47 attributs tendus 48 composite 53 liste de valeurs 52 rpter 55 sans nom 51 spcifie par une valeur 49 storage 52 tablespace 52 valeur par dfaut 51 variable 48 Options catgorie (langage de processus) 322 catgorie (langage objet) 297 catgorie (langage XML) 336 OtherFunc 74 outil personnalis par strotype 210 ouvrir d'un diagramme associ 424
P
ParameterTypes 171, 172 paramtre passer 414 partager un template 409 PdCommon 423 Permission 82, 89, 124, 146 permission (object) 158 PhysDataType 178 PhysDttpSize 178 PhysLogADTType 180 PhysOdbcDataType 180 PkAutoIndex 110 Pkey 109 PKeyComment 111 polymorphisme 369, 382 porte 376 porte de la conversion 379 porte externe 376 post-gnration 358 pr-gnration 358 Privilege 157 Procedure 145 ProcedureComment 149 profil 198 ajouter une mtaclasse 202 attribut tendu 201, 218 Category (langage de processus) collection tendue 234
profil (suite) crer 358 crer un fichier gnr 231 crer un template 229 critres 201, 213 tude de cas 256 extension de mtaclasse 201 fichier gnr 229 fichiers gnrs & templates 201 gestionnaire d'vnement 247 hritage 199 menu 252 mthode 237 niveau d'extension 199 strotype 201, 206 symbole et outil personnaliss 201 symbole personnalis 215 template 229 transformation 11, 241, 300, 357 vrification personnalise 201, 221 profile transformation 328, 339 Profile catgorie (langage objet) 300 catgorie (SGBD) 5, 12
Q
qualifiant 35 Qualifier 164 Quote 62
R
raccourci conversion dans le GTL 380 rattachement automatique 354 redfinir 381 Reference 117 Remove 138 Rename 83, 99 replace (macro) 390 requte tendue 29 ReservedDefault 72 ReservedWord 72 reverse engineering 18 index bass sur une fonction 33 options physiques 31 qualifiants 35 ReversedStatements 24, 79 PowerAMC
328, 339
454
RevokeOption 158, 159 Role 155 rle d'association 310 Rule 142 RuleComment 145
S
script variables globales 227 Script (catgorie) 6 script (reverse engineering) 24 script de vrification 222 script helper methods 245 ScriptExt 68 Sequence 164 squence d'chappement 383 SequenceComment 166 set_object (macro) 400 set_value (macro) 401 SetSource 245 Settings catgorie (langage de processus) 325 catgorie (langage XML) 339 Settings (catgorie de langage objet) 288 SGBD 1 attributs tendus 13 catgorie 3, 5 catgorie Data type 11 catgorie General 6, 57 catgorie Objects 9, 75 catgorie ODBC 6, 60 catgorie Profile 12 catgorie Script 6, 60 catgorie SQL 8, 61 diteur 4 entre 3 famille 5 gnration 18 instruction 18, 19 modifier 2 nom de fichier 5 prsentation 2 proprits 5 requte 18, 19 reverse engineering 18 simple (macro) 384, 385 sous-famille 286, 315, 332, 354 SQL (catgorie) 8, 61 BlockComment 63 Documentation utilisateur avance
SQL (catgorie) (suite) caractre de fin 61 caractre de fin de bloc 61 dlimiteur 62 Format 63 LineComment 63 Quote 62 SqlContinue 63 SqlAkeyIndex 116 SqlAttrQuery 25, 78 SqlChckQuery 25, 84, 100 SqlContinue 63 SqlFragQuery 78 SqlListChildrenQuery 25, 122, 155, 157 SqlListDefaultQuery 135 SqlListQuery 25, 77 SqlListRefrTables 85 SqlOptsQuery 25, 78 SqlPermQuery 25, 84, 100, 125, 141, 148, 155, 157 SqlSupport 58 SqlSysIndexQuery 25, 107 StartCommand 69 Stereotype catgorie (langage objet) 301 strotype 206 affecter un outil 210 ajouter un attribut tendu 219 attacher une icne 209 crer 207 nom par dfaut 211 proprits 206 utiliser comme mtaclasse 208 storage 128 option physique 52 StorageComment 129 suppression d'une commande 291, 317, 333 surcharge 383 symbole personnalis 201, 215 crer 216 format 215 Synonym 166 syntaxe 36 System 158
T
table Footer 86 Header 86
455
Table 79 TableComment 82 TableExt 69 tablespace option physique 52 Tablespace 126 TablespaceComment 128 tche 362 Tasks catgorie (langage de processus) 318 catgorie (langage objet) 293 tasks category (langage XML) 335 template 201, 229, 370 attribut tendu 219 convertir les raccourcis 380 crer 229 nom de contrainte 43 partager 409 partager des conditions 409 porte de la conversion 379 rcursif 410 redfinir 381 surcharger 383 trigger 4 Templates (catgorie de langage objet) 308 Time 153 transformation 241 contrles de script 243 crer 243 crer un profil 358 tiquette permettant d'identifier l'origine 245 objet transformation interne 243 post-gnration 358 pr-gnration 358 profil 357 profile 11, 300, 328, 339 proprits 241 proprits d'un profil 357 script 241 script helper methods 245 variable 241 VBS 243 TrgFooter 72 TrgHeader 71 TrgUsage1 70 TrgUsage2 70 Trigger 149 TriggerComment 153 TriggerExt 70 types de donnes 339
U
UddtComment 135 UddtDefaultName 144 UddtRuleName 144 UML profil 198 Unbind 101, 135, 154, 156, 161 UniqConstaintName 85 UniqConstAutoIndex 114 UniqConstName 59 UniqInTable 115 UniqName 108 unique (macro) 388 uppercase (macro) 389 UpperCaseOnly 64 Usage1 69 Usage2 69 UseBlockTerm 62 UseErrorMsgTable 151 UseErrorMsgText 152 User 140 UserTypeName 134 UseSpFornKey 122 UseSpPrimKey 110 utiliser comme mtaclasse 208
V
variable 3, 38, 182 globale 227 variable (GTL) 372 bloc 372 environnement 410 format 377 globale 376 locale 375 membre de collection 375 membre d'objet 374 membre-collection 372 membre-objet 372 porte de la collection 377 porte de l'objet 377 porte externe 376 porte-objet 372 variable-globale 372 variable-locale 372 variable (SGBD) ASE & SQL Server 190 attribut de type de donnes abstrait cl 193
189
456
PowerAMC
variable (SGBD) (suite) colonne 188 colonne de rfrence 193 colonne d'index 191 domaine 189 format 41 gnration 182 Index 190 Join Index 191 mtadonnes 185 options physiques 48 procdure 182, 195 rfrence 191 rgles 189 reverse engineering 183 scurit de base de donnes 184 Sequence 190 synchronisation de base de donnes 184 table 186 trigger 182 triggers 194 type de donnes abstraits 188 vrifications sur les domaines et sur les colonnes 187 vues 194 variable locale 375 variable par dfaut apostrophes 81 variables de format 377 VBS 426 vbscript (macro) 387 vrification personnalise 201, 221 dfinir le script global 227 dfinir un script 223 dfinir une correction automatique 225 dpannage 228 excuter 228 proprits 222 variables globales 227 View 123 View (catgorie) Footer 124 Header 124 ViewCheck 126 ViewComment 125 ViewStyle 126
X
XML balises 434 format de fichier 432, 433
W
warning (macro) 405 Documentation utilisateur avance
457
458
PowerAMC