Vous êtes sur la page 1sur 468

Sybase PowerAMC Documentation utilisateur avance

Version 10.0 DC20013-01-1000-01 Dernire rvision : Janvier 2004

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.

Table des matires

Guide de rfrence du SGBD ............................................1


Prsentation du fichier de dfinition de SGBD.......................... 2 Editeur de SGBD ...................................................................... 4 Notions de base relatives aux catgories de SGBD................. 5 Feuille de proprits de SGBD........................................... 5 Catgorie General .............................................................. 6 Catgorie Script et ODBC .................................................. 6 Catgorie Transformation profile...................................... 11 Catgorie Profile............................................................... 12 Gestion de la gnration et du reverse engineering ............... 18 Mode de fonctionnement.................................................. 18 Notions de base relatives aux instructions et requtes .... 19 Gnration de script ......................................................... 21 Reverse engineering de script.......................................... 24 Gnration ODBC ............................................................ 25 Reverse engineering ODBC............................................. 25 Syntaxe dans les instructions SQL................................... 36 Dfinition d'options physiques................................................. 47 Dfinition d'options physiques spcifies par une valeur . 49 Syntaxe pour une option physique sans nom................... 51 Dfinition d'une valeur par dfaut pour une option physique ........................................................................... 51 Dfinition d'une liste de valeurs pour une option physique ........................................................................... 52 Dfinition d'une option physique correspondant un tablespace ou un storage .............................................. 52 Syntaxe d'option physique composite .............................. 53 Rptitions d'options ........................................................ 55 Changements d'interface utilisateur ................................. 56 Catgorie General................................................................... 57 EnableCheck .................................................................... 57 EnableIntegrity.................................................................. 57

Documentation utilisateur avance

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

Documentation utilisateur avance

Gestion des profils ........................................................ 197


Notions de base relatives au concept de profil ..................... 198 Qu'est-ce qu'un profil ? .................................................. 198 Extensions disponibles................................................... 199 Ajout d'une mtaclasse dans un profil ........................... 202 Exclusion d'une mtaclasse d'un modle ...................... 205 Dfinition d'un strotype ..................................................... 206 Proprits de strotype ................................................ 206 Cration d'un strotype ................................................ 207 Utilisation d'un strotype comme mtaclasse .............. 208 Attacher une icne un strotype................................ 209 Affectation d'un outil un strotype ............................. 210 Dfinition de noms par dfaut pour des objets strotyps..................................................................... 211 Dfinition d'un critre ............................................................ 213 Dfinition d'un symbole personnalis dans un profil............. 215 Personnalisation d'un symbole....................................... 215 Dfinition d'un symbole personnalis............................. 216 Dfinition d'attributs tendus dans un profil .......................... 218 Cration d'un type d'attribut tendu................................ 218 Cration d'un attribut tendu .......................................... 219 Dfinition d'une vrification personnalise dans un profil ..... 221 Proprits de vrification personnalise ........................ 222 Dfinition du script d'une vrification personnalise ...... 223 Dfinition du script d'une correction automatique .......... 225 Utilisation du script global............................................... 227 Dpannage d'erreurs VB................................................ 228 Excution d'une vrification personnalise .................... 228 Dfinition de templates et de fichiers gnrs dans un profil229 Cration d'un template ................................................... 229 Cration d'un fichier gnr ........................................... 231 Dfinition d'une collection tendue dans un profil................. 234 Proprits d'une collection tendue ............................... 234 Cration d'une collection tendue .................................. 235 Dfinition d'une mthode dans un profil ............................... 237 Proprits d'une mthode .............................................. 237 Cration d'une mthode ................................................. 238 Dfinition des transformations dans un profil ....................... 241 Proprits d'une transformation ..................................... 241 Cration d'une transformation ........................................ 243 Mthodes helper de script pour les transformations ...... 245 Dfinition d'un gestionnaire d'vnement dans un profil ...... 247 Notions de base relatives aux gestionnaires d'vnement................................................................... 247 Ajout d'un gestionnaire d'vnement une mtaclasse ou un strotype.......................................................... 250

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

Guide de rfrence du langage objet............................283


Prsentation du langage objet .............................................. 284 Notions de base relatives l'diteur de langage objet ......... 285 Proprits d'un langage objet......................................... 286 Catgorie Settings .......................................................... 288 Catgorie Generation ..................................................... 291 Catgorie Transformation profile.................................... 300 Catgorie Profile............................................................. 300

Guide de rfrence du langage de processus .............311


Prsentation du langage de processus ................................ 312 Notions de base relatives l'diteur de langage de processus ............................................................................. 314 Proprits d'un langage de processus ........................... 315 Catgorie Generation ..................................................... 316 Catgorie Settings .......................................................... 325 Catgorie Profile............................................................. 328 Catgorie Transformation profile.................................... 328

Guide de rfrence du langage XML.............................329


Prsentation du langage XML............................................... 330 Notions de base relatives l'diteur de langage XML.......... 331 Proprits d'un langage XML ......................................... 332 Catgorie Generation ..................................................... 333 Catgorie Settings .......................................................... 339 Catgorie Profile............................................................. 339 Catgorie Transformation profile.................................... 339

Documentation utilisateur avance

vii

Guide de rfrence des dfinitions tendues de modle ............................................................................ 341


Gestion des dfinitions tendues de modle........................ 342 Cration d'une dfinition tendue de modle................. 343 Importation d'attributs tendus depuis les versions antrieures ..................................................................... 348 Importation d'une dfinition tendue de modle dans un modle....................................................................... 350 Exportation d'une dfinition tendue de modle ............ 351 Utilisation des dfinitions tendues de modle..................... 353 Proprits d'une dfinition tendue de modle .............. 354 Catgorie Transformation profile.................................... 357 Catgorie Generation ..................................................... 359 Gnration pour une dfinition tendue de modle.............. 366

Guide de rfrence de la gnration ............................ 367


Dfinition du langage de gnration par template (GTL)...... 368 Dfinition des concepts utiliss dans le langage de gnration par template........................................................ 370 Dfinition de templates................................................... 370 Dfinition des variables .................................................. 372 Dfinition de la porte de la conversion ......................... 379 Conversion d'un raccourci.............................................. 380 Dfinition d'un hritage................................................... 381 Redfinition d'un template.............................................. 381 Dfinition du polymorphisme .......................................... 382 Dfinition d'une surcharge de template.......................... 383 Dfinition des squences d'chappement ..................... 383 Utilisation de macros ...................................................... 384 Dfinition de blocs conditionnels .................................... 406 Dfinition de messages d'erreur .................................... 406 Conseils et techniques de gnration................................... 409 Partage de templates ..................................................... 409 Utilisation des variables d'environnement ...................... 410 Utilisation de nouvelles lignes dans la chane d'en-tte et de fin........................................................................... 410 Utilisation du passage de paramtres............................ 414

Mtamodle public PowerAMC ..................................... 417


Qu'est-ce que le mtamodle public PowerAMC ? .............. 418 Concepts relatifs au mtamodle ......................................... 419 Noms publics.................................................................. 419 Classes........................................................................... 419 Associations et collections ............................................. 420

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

Spcification du format de fichier PowerAMC .............433


Format de fichier XML .......................................................... 434 Structure et contenu des fichiers XML ........................... 434 Notions de base relatives aux format XML .................... 438 Etude de cas .................................................................. 438 Modification d'un fichier XML ................................................ 442 Modification d'un fichier XML l'aide d'un diteur standard ......................................................................... 442 Modification d'un fichier XML l'aide d'un diteur XML . 444 Visualisation d'un fichier XML l'aide d'une visionneuse XML ................................................................................ 445

Index

.........................................................................................447

Documentation utilisateur avance

ix

PowerAMC

C H A P I T R E

Guide de rfrence du SGBD

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

Page 2 4 5 18 47 57 60 61 75 175 177 182

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.

Documentation utilisateur avance

Prsentation du fichier de dfinition de SGBD

Prsentation du fichier de dfinition de SGBD


PowerAMC peut tre utilis avec de nombreux SGBD diffrents. Pour chacun de ces SGBD, un fichier de dfinition standard est inclus et fournit une interface entre PowerAMC et le SGBD afin d'tablir les meilleures relations possibles entre ces deux lments.
Attention

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

Guide de rfrence du SGBD

Que contient une dfinition de SGBD ?

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).

Que sont les variables PowerAMC ?

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

CreateTable = create table %TABLE%

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.

Documentation utilisateur avance

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

Guide de rfrence du SGBD

Notions de base relatives aux catgories de SGBD


Une dfinition de SGBD peut avoir les catgories suivantes :
Catgorie General Script Description Identification du SGBD cible Caractristiques du SGBD, dfinition de commande et conversions de types de donnes pour la gnration et le reverse engineering de script Caractristiques du SGBD, dfinition de commande et conversions de types de donnes pour la gnration et le reverse engineering via ODBC Permet de crer des profils contenant des transformations utilises au cours de la gnration de modle ou appliques dans un modle Extension des mtaclasses PowerAMC pour personnaliser les modles

ODBC

Profil de transformations Profile

Remarquez que certains SGBD n'affichent pas de catgorie ODBC car cette dernire n'est pas ncessaire leur dfinition.

Feuille de proprits de SGBD


Un SGBD a une feuille de proprits disponible quand vous cliquez sur le noeud racine dans l'arborescence. Les proprits suivantes y sont dfinies :
Proprit Nom Code Nom du fichier Famille Description Nom du SGBD. Ce nom doit tre unique dans un modle Code du SGBD. Ce code doit tre unique dans un modle Chemin d'accs et nom du fichier du SGBD. Vous ne pouvez pas modifier le contenu de cette zone Utilis pour classifier un SGBD. L'utilisation d'une famille permet d'tablir un lien entre diffrents fichiers de ressources de base de donnes. Par exemple, Sybase AS Anywhere et Sybase AS Enterprise appartiennent la famille SQL Server. Les triggers ne sont pas effacs lorsque vous changez de base de donnes cible au sein d'une mme famille. Une interface de fusion permet de fusionner des modles de la mme famille

Documentation utilisateur avance

Notions de base relatives aux catgories de SGBD


Proprit Commentaire Description Informations supplmentaires relatives au SGBD

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.

Catgorie Script et ODBC


La catgorie Script est utilise pour la gnration et le reverse engineering de script, ainsi que pour le reverse engineering ODBC. La catgorie ODBC est utilise pour les requtes de gnration ODBC lorsque le SGBD ne prend pas en charge les instructions standard pour la gnration. Remarquez que certains SGBD n'affichent pas de catgorie ODBC car elle n'est pas ncessaire leur dfinition.

PowerAMC

Chapitre 1

Guide de rfrence du SGBD

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

Documentation utilisateur avance

Notions de base relatives aux catgories de SGBD

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

Guide de rfrence du SGBD

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.

Documentation utilisateur avance

Notions de base relatives aux catgories de SGBD

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

Guide de rfrence du SGBD

Catgorie Data type


La catgorie Data Type contient une liste des types de donnes valides pour le SGBD spcifi et les types correspondants dans PowerAMC. Exemple Dans le fichier de dfinition de Sybase Adaptive Server Anywhere 8, la catgorie Data Type est dveloppe de faon afficher tous les types de donnes. L'entre PhysDataType est slectionne et la valeur associe montre la mise en correspondance dcrite dans la zone Commentaire.

Catgorie Transformation profile


Un profil de transformation est un groupe de transformations utilis au cours d'une gnration de modle ou lorsque vous souhaitez appliquer des modifications certains objets dans les modles source ou cible. Vous dfinissez un profil de transformation dans la catgorie Transformation Profiles d'une dfinition tendue de modle, d'un langage objet, d'un SGBD, ou d'un langage de processus. 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. Pour plus d'informations sur les transformations, reportez-vous au chapitre Gestion des transformations, dans le Guide des Fonctionnalits Gnrales.
Documentation utilisateur avance

11

Notions de base relatives aux catgories de SGBD

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

Guide de rfrence du SGBD

La catgorie Extended Attribute est divise en deux catgories : Types Objects

Dfinition d'un attribut tendu dans un SGBD


Chaque attribut tendu a les proprits suivantes :
Proprit de l'entre Nom Commentaire Type de donnes Valeur par dfaut Description Nom de la catgorie ou de l'entre Description de la catgorie ou de l'entre slectionne Types d'attributs tendus prdfinis ou dfinis par l'utilisateur Valeur par dfaut de la liste des valeurs. Dpend du type de donnes slectionn

Pour ajouter un attribut tendu :

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.

Documentation utilisateur avance

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

Utilisation des attributs tendus dans le MPD


Les attributs tendus dfinis dans un SGBD sont utiliss pour contrler la gnration du modle. Vous pouvez galement dfinir des attributs tendus dans une dfinition tendue de modle, afin d'enrichir la dfinition d'un objet. Ces attributs tendus ne sont pas utiliss lors de la gnration. Pour plus d'informations sur les dfinitions tendues de modle, reportez-vous au chapitre Guide de rfrence des dfinitions tendues de modle.

14

PowerAMC

Chapitre 1

Guide de rfrence du SGBD

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.

Documentation utilisateur avance

15

Notions de base relatives aux catgories de SGBD 4 Cliquez sur OK.

Utilisation d'attributs tendus lors de la gnration


Les attributs tendus sont crs pour contrler la gnration : chaque valeur d'attribut tendu peut tre utilise sous forme de variable qui peut tre rfrence dans les scripts dfinis dans la catgorie Script. Certains SGBD incluent des attributs tendus prdfinis. Par exemple, dans PostgreSQL, les domaines incluent les attributs tendus par dfaut utiliss pour la cration de types de donnes utilisateur.

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

Guide de rfrence du SGBD

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

Documentation utilisateur avance

17

Gestion de la gnration et du reverse engineering

Gestion de la gnration et du reverse engineering


PowerAMC utilise le fichier de dfinition de SGBD pour communiquer avec la base de donnes via reverse engineering et gnration. PowerAMC prend en charge la fois l'utilisation de script et d'ODBC pour le reverse engineering et la gnration. Dans cette section, vous allez en apprendre plus sur le reverse engineering et la gnration.

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

Guide de rfrence du SGBD

Notions de base relatives aux instructions et requtes


Les instructions relatives la gnration de script, au reverse engineering de script ainsi qu' la gnration ODBC sont identiques, tandis que le reverse engineering ODBC requiert des requtes spcifiques. Location
La catgorie Script contient Instructions pour la gnration de script Instructions pour le reverse engineering de script Requtes de reverse engineering ODBC La catgorie ODBC contient Instructions de gnration ODBC lorsque le SGBD ne prend pas en charge les instructions standard

Exploration de la catgorie Script


La catgorie Script ne contient que les entres suivantes : Instructions de gnration et de reverse engineering Instructions de gnration et de reverse engineering par script Instructions de modifications Elments de dfinition de base de donnes Requtes de reverse engineering ODBC

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

Documentation utilisateur avance

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.

Exploration de la catgorie ODBC


La catgorie ODBC contient des entres pour la gnration ODBC lorsque le SGBD ne prend pas en charge les instructions de gnration dfinies dans la catgorie Script.

20

PowerAMC

Chapitre 1

Guide de rfrence du SGBD

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

Documentation utilisateur avance

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

Guide de rfrence du SGBD

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%)

Documentation utilisateur avance

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.

Reverse engineering de script


Les mmes instructions sont utilises pour la gnration et le reverse engineering. Si vous utilisez le mcanisme d'extension pour la gnration de script, vous devez dclarer les instructions dans l'lment de liste ReversedStatements afin qu'elles puissent tre correctement traites par le reverse engineering. Saisissez une instruction par ligne dans la liste ReversedStatement.

24

PowerAMC

Chapitre 1

Guide de rfrence du SGBD

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.

Reverse engineering ODBC


Le SGBD contient des requtes de reverse engineering ODBC permettant d'extraire des objets (tables, colonnes, etc.) de la base de donnes.

Documentation utilisateur avance

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

SqlSysIndexQuery SqlChckQuery SqlPermQuery

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

Guide de rfrence du SGBD

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

Guide de rfrence du SGBD

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 laquelle * reprsente toutes les autres valeurs. Par exemple :


{ADT, OWNER, TYPE(25=JAVA , 26=JAVA)} SELECT t.type_name, u.user_name, t.domain_id FROM sysusertype t, sysuserperms u WHERE [u.user_name = '%SCHEMA%' AND] (domain_id = 25 OR domain_id = 26) AND t.creator = u.user_id

Dans cet exemple, lorsque la requte SQL renvoie la valeur 25 ou 26, elle est remplace par JAVA dans la variable TYPE.

Mcanisme d'extension pour les requtes de reverse engineering ODBC


Lors du reverse engineering, PowerAMC excute des requtes permettant d'extraire des informations des colonnes des tables systme. Le rsultat d'une requte est mis en correspondance avec les variables internes PowerAMC via l'en-tte de la requte. Lorsque les tables systme d'un SGBD stockent des informations dans des colonnes avec LONG, BLOB, TEXT et d'autres types de donnes incompatibles, il est impossible de concatner ces informations dans une chane. Vous pouvez contourner cette limitation en crant des requtes dfinies par l'utilisateur et des variables dfinies par l'utilisateur dans les requtes de reverse engineering existantes. Ces requtes sont galement appeles requtes tendues. Lors du reverse engineering, les requtes sont excutes pour valuer les variables et crer une instruction de chane. Lorsque l'en-tte de requte contient le mot cl EX, cela signifie que le rsultat de la requte contient des requtes et variables dfinies par l'utilisateur. Par exemple :
select '%UserDefinedQueryName.UserDefinedVariableName%' || i.indexname from

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

Guide de rfrence du SGBD

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.

Reverse engineering ODBC d'options physiques


Lors du reverse engineering, les options physiques sont concatnes dans une seule instruction de chane. Toutefois, lorsque les tables systme d'une base de donnes sont partitionnes (comme dans Oracle) ou fragmentes (comme dans Informix), les partitions/fragments partagent les mmes attributs logiques, mais leurs proprits physiques telles que les spcifications de stockage sont conserves dans chaque partition/fragment de la base de donnes. Les colonnes dans les partitions/fragments ont un type de donnes (LONG) qui permet le stockage de grandes quantits d'informations binaires non structures. Les options physiques dans ces colonnes ne pouvant pas tre concatnes dans une instruction de chane lors du reverse engineering, SqlOptsQuery (catgorie Tables dans le SGBD) contient un appel une requte dfinie par l'utilisateur qui va valuer ces options physiques.

Documentation utilisateur avance

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

Guide de rfrence du SGBD

SqlFragQuery est dfini comme suit :


{A, a(E="expression", R="round robin", H="hash"), B, b, C, c, D, d(0="", *=",")} select 'FragDbsp'||f.evalpos, f.dbspace, 'FragExpr'||f.evalpos, f.exprtext, 'FragSprt'||f.evalpos, f.evalpos from informix.systables t, informix.sysfragments f where t.partnum = 0 and f.fragtype='T' and t.tabid=f.tabid [ and t.owner = '%SCHEMA%'] [ and t.tabname='%TABLE%']

L'en-tte de SqlFragQuery contient les noms de variable suivants.


{A, a(E="expression", R="round robin", H="hash"), B, b, C, c, D, d(0="", *=",")}

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.

Reverse engineering ODBC d'index bass sur une fonction


Dans Oracle 8i et versions ultrieures, vous pouvez crer des index bass sur des fonctions et des expressions qui impliquent une ou plusieurs colonnes dans la table en cours d'indexation. Un index bas sur une fonction prcalcule la valeur de la fonction ou de l'expression et la stocke dans l'index. La fonction ou l'expression va remplacer la colonne d'index dans la dfinition de l'index. Une colonne d'index avec une expression est stocke dans les tables systme ayant un type de donnes LONG qui ne peut pas tre concatn dans une instruction de chane lors du reverse engineering.

Documentation utilisateur avance

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

Guide de rfrence du SGBD

Qualifiants et reverse engineering ODBC


Le qualifiant d'objet est affich dans la liste droulante dans l'angle suprieur gauche de la bote de dialogue Reverse engineering ODBC. Vous pouvez utiliser un qualifiant pour slectionner les objets sur lesquels faire porter le reverse engineering.

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

L'effet de ces entres est affich dans le tableau ci-dessous :


Activ Yes SqlListQuery prsent ? Yes Rsultat Les qualifiants sont disponibles et peuvent tre slectionns. Slectionnez-en si ncessaire. Vous pouvez galement saisir le nom d'un qualifiant. SqlListQuery est excut pour remplir la liste des qualifiants Seule la valeur par dfaut (Tous les qualifiants) est slectionne. Vous pouvez galement saisir le nom d'un qualifiant

No

Documentation utilisateur avance

35

Gestion de la gnration et du reverse engineering


Activ No SqlListQuery prsent ? No Rsultat La liste droulante est grise

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

Syntaxe dans les instructions SQL


La syntaxe dfinie dans la dfinition de SGBD est utilise par PowerAMC pour analyser les instructions SQL lors du reverse engineering d'un script de base de donnes. Elle est utilise pour dfinir les variables appropries lors du processus de cration et de modification des objets PowerAMC. Vous pouvez incorporer des variables dans les requtes SQL du SGBD slectionn. Les variables PowerAMC sont crites entre signes pourcent (%).

Mots cls rservs


Pour un domaine ou une colonne, les champs de vrifications standard peuvent indiquer les valeurs minimale, maximale et par dfaut, ainsi qu'une liste de valeurs. En rgle gnrale, Si le type de donnes du domaine ou de la colonne est un type de donnes de chane, des apostrophes encadrent ces valeurs dans le script gnr. Cependant, les apostrophes ne sont pas gnres dans les cas suivants : Vous pouvez dfinir un type de donnes qui n'est pas reconnu en tant que type de donnes de chane par PowerAMC La valeur est encadre par le caractre tilde La valeur est un mot rserv dfini dans le SGBD (par exemple, NULL)

En outre, si la valeur est dj encadre d'apostrophes, des apostrophes supplmentaires ne sont pas gnrs.

36

PowerAMC

Chapitre 1

Guide de rfrence du SGBD

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 :

Documentation utilisateur avance

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) );

not not not not

null, null, null, null , , ,

Lorsque vous excutez ce script, Sybase Adaptive Server Anywhere reconnat CURRENT DATE comme valeur par dfaut rserve.

Chanes et variables facultatives


Vous pouvez utiliser des crochets [ ] pour : Inclure des chanes et variables facultatives, ou des listes de chanes et de variables dans la syntaxe des instructions SQL [%--%] Tester la valeur d'une variable et insrer ou reconsidrer une valeur en fonction du rsultat du test. [%--%? is true : is false] Testez le contenu d'une variable [%--%=--? if true : if false]
Gnration Gnr si la variable est dfinie. Si la variable est vide ou a la valeur NO ou FALSE, elle n'est pas gnre Reverse engineering Reoit une valeur si l'analyseur dtecte un morceau de commande SQL correspondant la variable. Si la variable est vide ou s'est vue affecter la valeur NO ou FALSE, elle n'est pas renseigne

Variable
[%--%]

38

PowerAMC

Chapitre 1

Guide de rfrence du SGBD


Reverse engineering Si l'analyseur dtecte Is true, Is true subit le reverse engineering, si l'analyseur dtecte Is false, Is false subit le reverse engineering et la variable % % est dfinie True ou False en fonction Si l'analyseur dtecte Is true, Is true subit le reverse engineering, si l'analyseur dtecte Is false, Is false subit le reverse engineering Spcifie que la chane et les variables entre crochets ne sont pas tris

Variable
[%--%? Is true : Is false]

Gnration Si la variable est true, Is true est gnr, si la variable est false, Is false est gnr

pour tester la valeur de la variable (valeur conditionnelle)

[%--%=--? Is true : Is false]

pour tester le contenu de la variable (valeur conditionnelle)


[.Z: [s1][s2]...]

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]

Documentation utilisateur avance

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

Guide de rfrence du SGBD

Dfinition d'options de format de variable


Les variables ont une syntaxe qui peut forcer un format sur leur valeur. Les utilisations les plus courantes sont les suivantes : Forcer les valeurs en minuscules ou en majuscules Tronquer les valeurs Mettre le texte entre guillemets

Vous devez incorporer les options de format dans la syntaxe de variable comme suit :
%.format:variable%

Les options de format des variables sont les suivantes :


Option n (n, tant un entier) -n .L .U .c .F .T .n .-n q Q Description Ajoute des espaces ou des zros gauche pour remplir la largeur et justifier droite Ajoute des espaces ou des zros droite pour remplir la largeur et justifier gauche Force les caractres en minuscules Force les caractres en majuscules Force la majuscule la premire lettre ainsi que des minuscules aux autres lettres du mot Combin avec L et U, applique des conversions au premier caractre Les espaces de dbut et de fin sont supprims de la variable Tronque la valeur pour ne conserver que les n premiers caractres Tronque la valeur pour ne conserver que les n derniers caractres Place la variable entre apostrophes Place la variable entre guillemets

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.

Documentation utilisateur avance

41

Gestion de la gnration et du reverse engineering

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

Guide de rfrence du SGBD

Template de nom de contrainte


Le SGBD utilise des variables et des formats de variable pour dfinir des templates de nom de contrainte. Ces derniers dont dfinis par la valeur du champ de SGBD ConstName. Les catgories d'objet suivantes ont un nom ConstName :
Catgorie TABLE COLUMN PKEY KEY REFERENCE Description Template de nom de contrainte pour les vrifications de table Template de nom de contrainte pour les vrifications de colonne Template de nom de contrainte pour les vrifications de cl primaire Template de nom de contrainte pour les vrifications de cl alternative Template de nom de contrainte pour les vrifications de cl trangre

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.

Documentation utilisateur avance

43

Gestion de la gnration et du reverse engineering

Variables de nom communes pour ConstName

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

ConstName pour TABLE

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

ConstName pour COLUMN

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

ConstName pour PKEY

Le champ ConstName pour l'objet PKEY peut accepter la variable suivante :


Variable %CONSTNAME% Valeur Nom de contrainte

ConstName pour KEY

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

Guide de rfrence du SGBD

ConstName pour REFERENCE

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%

Documentation utilisateur avance

45

Gestion de la gnration et du reverse engineering


Catgorie KEY Commentaire Template de nom de contrainte pour les cls alternatives Template de nom de contrainte pour les vrifications de colonne Template de nom de contrainte pour les vrifications de table Valeur AK_%.U18:AKEY%_%.U8:TABLE%

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

Guide de rfrence du SGBD

Dfinition d'options physiques


Dans certaines dfinitions de SGBD, les entres Options sont utilises pour dfinir une arborescence d'options physiques dans le volet gauche de la feuille de proprits d'un objet. Une option physique est un paramtre qui dfinit la faon dont un objet est optimis ou stock dans une base de donnes. Les options physiques peuvent tre incluses la fin d'une instruction Create et sont spcifiques un SGBD. Une arborescence typique est reprsente ci-dessous :

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%]

Il s'agit de la syntaxe correcte.

Documentation utilisateur avance

47

Dfinition d'options physiques

Variables dans les options physiques

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

Guide de rfrence du SGBD

Dfinition d'options physiques spcifies par une valeur


Les entres d'options physiques contiennent du texte qui est analys et utilis pour renseigner le volet gauche de la page Options de l'objet. Chaque ligne d'une entre Option cre une ligne dans le volet gauche de la page d'options physiques. L'utilisateur peut cliquer sur les boutons entre les deux volets pour slectionner ces lignes. Les lignes peuvent ou non contenir des variables %d ou %s pour laisser l'utilisateur spcifier une valeur. Exemple :
with max_rows_per_page=%d on %s: category=storage

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).

Documentation utilisateur avance

49

Dfinition d'options physiques

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

Guide de rfrence du SGBD

Syntaxe pour une option physique sans nom


Une ligne dans une entre d'option ne doit pas contenir uniquement une variable, elle doit contenir un texte pour l'option physique ou un nom afin de d'tre identifie par PowerAMC. Une option physique dpourvue de texte ne peut pas tre reprsente dans la syntaxe PowerAMC. Si une option physique est dpourvue de nom, vous devez ajouter un nom entre signes suprieur et infrieur (<>) avant l'option. Cet indicateur est un mot qui dcrit l'option physique saisir. Exemple Pour dfinir un segment dans Sybase AS Enterprise 11, la syntaxe approprie est la suivante :
sp_addsegment segmentname, databasename, devicename

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.

Dfinition d'une valeur par dfaut pour une option physique


Une option physique peut avoir une valeur par dfaut. Le mot cl Default= est utilis pour spcifier cette valeur. Aprs le nom de l'option physique ou aprs la valeur %d ou %s, il est ncessaire d'ajouter un signe deux points suivi de default=x, o x est la valeur par dfaut de la base de donnes cible. Exemple La valeur par dfaut pour max_row_per_page est 0. Dans Sybase Adaptive Server Enterprise 11, cette valeur par dfaut pour l'objet d'index est dfinie comme suit :
max_rows_per_page=%d : default=0

La valeur par dfaut est affiche par dfaut dans la fentre Options.

Documentation utilisateur avance

51

Dfinition d'options physiques

Dfinition d'une liste de valeurs pour une option physique


Lorsque vous utilisez les variables %d et %s, une valeur d'option physique peut correspondre une liste d'options possibles. Le mot cl List= est utilis pour spcifier cette liste. Aprs le nom de l'option physique, ou aprs la valeur %d ou %s, il est ncessaire d'ajouter un signe deux-points, puis list= x | y co o x, y et z sont des valeurs possibles. Les valeurs sont spares par le caractre |. Exemple L'option dup_prow d'un index Sybase Adaptive Server Enterprise correspond deux options mutuellement exclusives pour crer un index cluster non unique. Cette option peut tre ignore ou admise. Dans Sybase Adaptive Server Enterprise 11 :
IndexOption = <duprow> %s: list=ignore_dup_row | allow_dup_row

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

Dfinition d'une option physique correspondant un tablespace ou un storage


Une option physique peut utiliser le code d'un tablespace ou d'un storage : category=tablespace ou category=storage construit une liste avec tous les codes de tablespace ou de storage dfinis dans la bote de dialogue Liste des tablespaces ou Liste des storages. Exemple L'option d'index on segmentname spcifie que l'index est cr sur le segment nomm. Un segment Sybase correspond un storage PowerAMC. La syntaxe est la suivante :
on segmentname

52

PowerAMC

Chapitre 1

Guide de rfrence du SGBD

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.

Syntaxe d'option physique composite


Une option physique composite est une option physique qui inclut d'autres options dpendantes. Ces options sont slectionnes simultanment dans le volet droit de la page d'options physiques. La syntaxe standard pour les options physiques se prsente comme suit :
with : composite=yes, separator=yes, parenthesis=no { fillfactor=%d : default=0 max_rows_per_page=%d : default=0 }

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=

Documentation utilisateur avance

53

Dfinition d'options physiques


Mot cl childmand= category= list= dquoted= squoted= enabledbprefix= Valeur et rsultat Si childmand=yes, il doit y avoir au moins une ligne enfant Si category=tablespace, l'lment est li un tablespace Si category=storage, l'lment est li un storage (*)

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 }

(*) Cas particulier avec Oracle

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

Guide de rfrence du SGBD

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.

Documentation utilisateur avance

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.

Changements d'interface utilisateur


Votre interface utilisateur spcifique peut tre diffrente de celle montre dans les illustrations. Ceci est d aux caractristiques spcifiques du SGBD que vous utilisez ou modifiez ainsi qu'aux paramtres de l'entre slectionne. Si un paramtre d'option est vide pour un objet, ou s'il n'est pas activ, l'interface change comme suit : L'onglet Options correspondant ne s'affiche pas dans la feuille de proprits de l'objet. Cette particularit est applicable Tablespace, Storage, Database, Primary key et Keys Les cases cocher Options physiques contenues dans la fentre Gnration d'une base de donnes et Modifications d'une base de donnes, ainsi que dans la page Base de donnes de la bote de dialogue Gnration d'une base de donnes sont grises et ne sont pas accessibles. Ceci concerne les zones de groupe Tables, Index et Bases de donnes PowerAMC

56

Chapitre 1

Guide de rfrence du SGBD

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

Documentation utilisateur avance

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

Guide de rfrence du SGBD

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.

Documentation utilisateur avance

59

Catgories Script ou ODBC

Catgories Script ou ODBC


La catgorie Script est utilise pour la gnration de Script et la catgorie ODBC est utilise pour la gnration ODBC. Lorsqu'une valeur d'entre ou sa catgorie est manquante dans la catgorie ODBC lors de la gnration ODBC, elle est automatiquement recherche dans la catgorie Script. Les catgories Script ou ODBC sont divises en catgories comme suit : SQL Objects Data Type

Toutes les entres de chaque catgorie sont dcrites dans les sections suivantes.

60

PowerAMC

Chapitre 1

Guide de rfrence du SGBD

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 = ;

Si aucune valeur n'est spcifie, c'est BlockTerminator qui est utilis.

BlockTerminator
Caractre de fin de bloc. Est utilis pour terminer les expressions pour les triggers et les procdures stockes. Exemple
BlockTerminator = /

Documentation utilisateur avance

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

Guide de rfrence du SGBD

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 = /* */

Ajoute un espace entre les caractres d'ouverture et de fermeture.

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.

Documentation utilisateur avance

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

Conflit entre UpperCaseOnly et LowerCaseOnly

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

Guide de rfrence du SGBD

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

Documentation utilisateur avance

65

Catgorie SQL

Format de date et d'heure


Vous pouvez personnaliser le format de date et d'heure pour la gnration des donnes de test via script ou via ODBC en utilisant les entres de SGBD dans la catgorie Format. PowerAMC utilise la table de correspondance PhysDataType dans la catgorie Script\Data types afin de convertir les types de donnes physiques des colonnes en types de donnes conceptuels car les entres de SGBD sont lies aux types de donnes conceptuels. Exemple pour Sybase AS Anywhere 7 :
Type de donnes physique datetime timestamp date time Type de donnes conceptuel DT TS D T Entre de SGBD utilise pour SQL DateTimeFormat DateTimeFormat DateFormat TimeFormat Entre de SGBD utilise pour ODBC OdbcDateTimeFormat OdbcDateTimeFormat OdbcDateFormat OdbcTimeFormat

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

Guide de rfrence du SGBD

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.

Documentation utilisateur avance

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

Guide de rfrence du SGBD

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

Voir aussi EnableMultiFile.

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

Documentation utilisateur avance

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

Guide de rfrence du SGBD

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;

Documentation utilisateur avance

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

Guide de rfrence du SGBD

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.

Documentation utilisateur avance

73

Catgorie SQL

Exemple

dateadd() datediff() datename()

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

Guide de rfrence du SGBD

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

Entres communes aux diffrents objets


Les entres suivantes sont communes de nombreux objets dans la dfinition de SGBD :

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%

Documentation utilisateur avance

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

BeforeCreate, BeforeDrop, BeforeModify


Instructions tendues excutes avant les principales instructions Create, Drop ou Modify. Pour plus d'informations sur les instructions tendues, reportez-vous la section Gnration de script.

AfterCreate, AfterDrop, AfterModify


Instructions tendues excutes aprs les principales instructions Create, Drop ou Modify. Pour plus d'informations sur les instructions tendues, reportez-vous la section Gnration de script.

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

Guide de rfrence du SGBD

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 ]

Documentation utilisateur avance

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 ]

Voir aussi SqlListQuery.

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

Voir aussi SqlListQuery.

SqlFragQuery
Pour plus d'informations, reportez-vous la section Mcanisme d'extension pour les requtes de reverse engineering ODBC.

78

PowerAMC

Chapitre 1

Guide de rfrence du SGBD

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.

Entres communes pour Table


Vous pouvez dfinir des valeurs pour les entres communes suivantes pour l'objet Table dans la dfinition de SGBD :
Entre Enable Exemple Dans Sybase Adaptive Server Anywhere 6 : Enable = Yes Maxlen Dans Sybase Adaptive Server Anywhere 6 : Maxlen = 128 Create Dans Sybase Adaptive Server Anywhere 6 :
create table [%QUALIFIER%]%TABLE% ( %TABLDEFN% ) [%OPTIONS%]

Documentation utilisateur avance

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

Dans Sybase Adaptive Server Enterprise 11 :


with max_rows_per_page = %d : default=0 on %s : category=storage

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

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

80

PowerAMC

Chapitre 1
Entre SqlFragQuery Exemple Dans Oracle 9I :

Guide de rfrence du SGBD

{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, ...

Documentation utilisateur avance

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

Guide de rfrence du SGBD

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%)

Documentation utilisateur avance

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

Guide de rfrence du SGBD

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

Documentation utilisateur avance

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

Dans DB2 UDB 5.x :


STRUCTURED

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

Guide de rfrence du SGBD

Column
La catgorie Column contient des entres qui dfinissent les paramtres relatifs aux colonnes.

Entres communes pour Column


Vous pouvez dfinir des valeurs pour les entres communes suivantes pour l'objet Column dans la dfinition de SGBD.
Entre Enable Maxlen Create Exemple (Sybase Adaptive Server Enterprise 11) Enable = Yes Maxlen = 30
alter table [%QUALIFIER%]%TABLE% add %20:COLUMN% %30:DATATYPE% [default %DEFAULT%] [%IDENTITY%?identity:%NULL%] [[constraint %CONSTNAME%] check (%CONSTRAINT%)] %20:COLUMN% %30:DATATYPE% [default %DEFAULT%] [%IDENTITY%?identity:[%NULL%][%NOTNULL%]] [[constraint %CONSTNAME%] check (%CONSTRAINT%)]

Add

Drop

Dans Sybase Adaptive Server Anywhere 6 :


alter table [%QUALIFIER%]%TABLE% delete %COLUMN%

DefOptions

Cette entre est souvent vide. Elle dfinit des options qui sont appliques aux colonnes

Documentation utilisateur avance

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

Guide de rfrence du SGBD

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 } }

ModifiableAt tributes ReversedStat ements

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

Documentation utilisateur avance

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

Voir aussi AddColnChck.

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

Guide de rfrence du SGBD

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

Documentation utilisateur avance

91

Catgorie Objects

Exemple

Dans SQL Anywhere 5.5 :


EnableDefault = YES

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

Guide de rfrence du SGBD

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

Dans Sybase AS Enterprise 11.x :


EnableIdentity=YES

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)

Changement du contenu de IDENTITY

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]

Documentation utilisateur avance

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

Dans Sybase AS Enterprise 11.x :


EnableNull = YES

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

Le script SQL se prsente comme suit :


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, , , , (CUSNUM)

94

PowerAMC

Chapitre 1

Guide de rfrence du SGBD

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

Dans IBM DB2 :


EnableNotNullWithDflt = YES

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%

Documentation utilisateur avance

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

Guide de rfrence du SGBD

Exemple

Dans Sybase Adaptive Server Anywhere 6 :


DropColnChck = alter table [%QUALIFIER%]%TABLE% modify %COLUMN% check null

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

Documentation utilisateur avance

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%

Dans Sybase Adaptive Server Anywhere 6 :

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%)]

Dans Sybase Adaptive Server Anywhere 6 :

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

Chapitre 1 Voir aussi AltEnableAddColnChk.

Guide de rfrence du SGBD

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%

Documentation utilisateur avance

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

Guide de rfrence du SGBD

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.

Entres communes pour Index


Vous pouvez dfinir des valeurs pour les entres courantes suivantes pour l'objet Index object dans la dfinition de SGBD.
Entre Enable Maxlen Create Exemple Enable = Yes Maxlen = 128 Dans Sybase ASA 8 :
create [%UNIQUE%] index %INDEX% on [%QUALIFIER%]%TABLE% ( %CIDXLIST% ) [%OPTIONS%]

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

Options DefOptions SqlListQuery SqlAttrQuery

Documentation utilisateur avance

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

Guide de rfrence du SGBD

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 Sybase Adaptive Server Anywhere 6 :


EnableAscDesc = YES

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

Documentation utilisateur avance

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

Guide de rfrence du SGBD

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

La valeur clustered est affecte la variable %CLUSTER%.

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.

Documentation utilisateur avance

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

Guide de rfrence du SGBD

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%

Documentation utilisateur avance

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

Guide de rfrence du SGBD

Pkey
La catgorie Pkey contient des entres qui dfinissent les paramtres relatifs aux cls primaires.

Entres communes pour Pkey


Vous pouvez dfinir des valeurs pour les entres courantes suivantes pour l'objet Pkey dans la dfinition de SGBD.
Entre Enable Create Exemple (Sybase Adaptive Server Enterprise 11) Enable = Yes
[%USE_SP_PKEY%?[execute] sp_primarykey %TABLE%, %PKEYCOLUMNS%

: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.

Documentation utilisateur avance

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

Dans Sybase Adaptive Server Anywhere 6 :


PkAutoIndex = YES

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

Guide de rfrence du SGBD

Exemple

Dans Microsoft SQL Server :


UseSpPrimKey = YES Add entry of Pkey contains [%USE_SP_PKEY%?[execute] sp_primarykey %TABLE%, %PKEYCOLUMNS% :alter table [%QUALIFIER%]%TABLE% add [constraint %CONSTNAME%] primary key [%IsClustered%] (%PKEYCOLUMNS%) [%OPTIONS%]]

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%

Documentation utilisateur avance

111

Catgorie Objects

Key
La catgorie Key contient des entres qui dfinissent les paramtres associs aux cls.

Entre communes pour Key


Vous pouvez dfinir des valeurs pour les entres communes suivantes pour l'objet Key dans la dfinition de SGBD :
Entre Enable Create Add Drop DefOptions Options _ Oracle 7 :
using index : composite=yes, separator=no, parenthesis=no { pctfree %d initrans %d : default=1 maxtrans %d tablespace %s : category=tablespace storage : category=storage, composite=yes, separator=no, parenthesis=yes { initial %s : default=10K next %s : default=10K minextents %d : default=1 maxextents %s maxextents unlimited pctincrease %d : default=50 freelists %d : default=1 freelist groups %d : default=1 optimal %d optimal NULL } nosort <recoverable> %s : list=recoverable | unrecoverable } disable

Exemple (Sybase Adaptive Server Anywhere 6) Enable = Yes


alter table [%QUALIFIER%]%TABLE% add unique (%COLUMNS%) unique (%COLUMNS%) alter table [%QUALIFIER%]%TABLE% delete unique (%COLNLIST%)

SqlAttrQuery SqlOptsQuery

112

PowerAMC

Chapitre 1
Entre SqlListQuery

Guide de rfrence du SGBD

Exemple (Sybase Adaptive Server Anywhere 6)


{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 t.table_name='%TABLE%' and c.pkey='Y' and c.table_id=t.table_id union select t.table_name, 0, i.index_name, c.column_name + ', ', x.sequence from sysindex i, systable t, syscolumn c, sysixcol x where t.table_name='%TABLE%' and i."unique"='U' and i.table_id=t.table_id and x.table_id=t.table_id and c.table_id=t.table_id and x.index_id=i.index_id and x.column_id=c.column_id order by 1, 3, 5

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.

Documentation utilisateur avance

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

Ne gnre pas d'index de cl alternative lors de la gnration des cls alternatives

Exemple

Dans Sybase Adaptive Server Anywhere 6 :


UniqConstAutoIndex = YES

114

PowerAMC

Chapitre 1

Guide de rfrence du SGBD

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

Guide de rfrence du SGBD

Reference
La catgorie Reference contient des entre dfinissant des paramtres lis aux rfrences.

Entres courantes pour Reference


Vous pouvez dfinir des valeurs pour les entres courantes suivantes pour l'objet Reference dans la dfinition de SGBD.
Entre Enable Create Exemple (Sybase Adaptive Server Anywhere 6) Enable = Yes Remarquez que check on commit (CHCKONCMMT) la fin de l'exemple est utile pendant le reverse engineering pour analyser le texte.
Alter table [%QUALIFIER%]%TABLE% Add foreign key %CONSTNAME% (%FKEYCOLUMNS%) references [%PQUALIFIER%]%PARENT% (%CKEYCOLUMNS%) [on update %UPDCONST%] [on delete %DELCONST%] [%CHCKONCMMT% ? check on commit]

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

SqlAttrQuery SqlListQuery 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

Documentation utilisateur avance

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

Guide de rfrence du SGBD

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

Documentation utilisateur avance

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

Guide de rfrence du SGBD

Exemple

Dans Sybase Adaptive Server Anywhere 6 :


RESTRICT CASCADE SET NULL SET DEFAULT

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.

Documentation utilisateur avance

121

Catgorie Objects

Exemple

Dans Microsoft Access :


DefineJoin = P=%PK% F=FK% Create = CreateJoin C=%CONSTANME% T=%TABLE% P=%PARENT% ( %JOINS% )

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=&#39;%SCHEMA%&#39; AND COL1.TABLE_NAME=&#39;%TABLE%&#39; AND COL2.OWNER=&#39;%POWNER%&#39; AND COL2.TABLE_NAME=&#39;%PARENT%&#39; AND COL1.CONSTRAINT_NAME=&#39;%FKCONSTRAINT%&#39; AND COL2.CONSTRAINT_NAME=&#39;%PKCONSTRAINT%&#39; 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

Dans Sybase Adaptive Server Enterprise 11 :


UseSpFornKey = Yes

Voir aussi UseSpPrimKey.

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

Guide de rfrence du SGBD

View
La catgorie View contient des entres qui dfinissent les paramtres associs aux vues.

Entres courantes pour View


Vous pouvez dfinir des valeurs pour les entres courantes suivantes pour l'objet View dans la dfinition de SGBD.
Entre Enable Create Exemple (Oracle 8) Enable = Yes
create [or replace ][%R% [no] force]view [%QUALIFIER%]%VIEW% [(%VIEWCOLN%) ]as %SQL% [%VIEWCHECK%] [%R%with read only] drop view [%QUALIFIER%]%VIEW%

Drop SqlListQuery SqlAttrQuery

{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%]

SqlOptsQuery Options 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

Documentation utilisateur avance

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

Guide de rfrence du SGBD

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.

Documentation utilisateur avance

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

Le script gnr pour cet exemple est le suivant :


create view TEST as select CUSTOMER.CUSNUM, CUSTOMER.CUSNAME, CUSTOMER.CUSTEL from CUSTOMER 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.

Entres courantes pour Tablespace


Vous pouvez dfinir des valeurs pour les entres courantes suivantes pour l'objet Tablespace dans la dfinition de SGBD.
Entre Enable Create Exemple (Oracle 8) Enable = Yes
create tablespace %TABLESPACE% [%OPTIONS%]

126

PowerAMC

Chapitre 1
Entre Drop Options Exemple (Oracle 8)

Guide de rfrence du SGBD

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

{TABLESPACE} SELECT TABLESPACE_NAME FROM USER_TABLESPACES ORDER BY 1

Documentation utilisateur avance

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

SqlOptsQuery 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.

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.

Entres courantes pour Storage


Vous pouvez dfinir des valeurs pour les entres courantes suivantes pour l'objet Storage dans la dfinition de SGBD.
Entre Enable Create Exemple (Oracle 8) Enable = Yes -

128

PowerAMC

Chapitre 1
Entre Drop Options Exemple (Oracle 8)

Guide de rfrence du SGBD

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

DefOptions SqlList Query SqlAttrQuery


{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%

Documentation utilisateur avance

129

Catgorie Objects

Database
La catgorie Database contient des entres qui dfinissent les paramtres associs aux database.

Entres courantes pour Database


Vous pouvez dfinir des valeurs pour les entres courantes suivantes pour l'objet Database dans la dfinition de SGBD.
Entre Enable Create Drop Options Exemple (Adaptive Server Anywhere 6) Enable = No
create database '%DATABASE%.db' [%OPTIONS%] drop database %DATABASE% transaction log %s : list= on | off <logonfile> %s mirror %s case %s : default=respect, list=respect | ignore page size %d : default=1024, list=1024 | 2048 | 4096 collation %s encrypted %s : list=on | off blank padding %s : list=on | off ASE compatible java %s : list=on | off jconnect %s : list=on | off

DefOptions 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.

130

PowerAMC

Chapitre 1

Guide de rfrence du SGBD

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

Dans IBM DB2 MVS version 4 :


BeforeCreateDatabase = NO

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%

La variable %DATABASE% est le code de la base de donnes associ au modle gnr.

Documentation utilisateur avance

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.

Entres courantes pour Domain


Vous pouvez dfinir des valeurs pour les entres courantes suivantes pour l'objet Domain dans la dfinition de SGBD.
Entre Enable Maxlen Create Exemple (Sybase Adaptive Server Anywhere 6) Enable = Yes MaxLen = 30
create datatype %DOMAIN% %DATATYPE% [%NOTNULL%] [default %DEFAULT%] [check (%CONSTRAINT%)] if exists(select 1 from systypes where name='%DOMAIN%')then drop datatype %DOMAIN% end if {@OBJTCODE id, DTTPCODE, LENGTH, PREC} Select d.type_name, t.domain_name, d.width, t."precision" from sysusertype d, sysdomain t where d.domain_id=t.domain_id and d.domain_id <> 25 and d.domain_id <> 26 and creator <> 0 {@OBJTCODE id, DTTPCODE, LENGTH, PREC, DEFAULT, CONSTRAINT} Select d.type_name, t.domain_name, d.width, d.scale, d."default", d."check" from sysusertype d, sysdomain t where d.domain_id=t.domain_id and d.domain_id <> 25 and d.domain_id <> 26 and creator <> 0

Drop

SqlListQuery

SqlAttrQuery

132

PowerAMC

Chapitre 1
Entre ModifiableAttributes

Guide de rfrence du SGBD

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

Dans Microsoft SQL Server et Sybase 11 :


EnableBindRule = Yes

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

Documentation utilisateur avance

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

Guide de rfrence du SGBD

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%

Documentation utilisateur avance

135

Catgorie Objects

Abstract Data Type


La catgorie Abstract Data Type contient des entres qui dfinissent les paramtres associs aux types de donnes abstraits.

Entres courantes pour Abstract Data Type


Vous pouvez dfinir des valeurs pour les entres courantes suivantes pour l'objet Abstract Data Types dans la dfinition de SGBD.
Entre Enable Exemple Sybase Adaptive Server Anywhere 6 :
Enable = Yes

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

Dans Sybase Adaptive Server Anywhere 6 :


{ADT, OWNER, TYPE(25=JAVA , 26=JAVA)} SELECT t.type_name, u.user_name, t.domain_id FROM sysusertype t, sysuserperms u WHERE [u.user_name = '%SCHEMA%' AND] (domain_id = 25 OR domain_id = 26) AND t.creator = u.user_id ORDER BY type_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.

136

PowerAMC

Chapitre 1

Guide de rfrence du SGBD

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%'

Documentation utilisateur avance

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%

Abstract Data Type Attribute


La catgorie Abstract Data Types Attribute contient des entres qui dfinissent les paramtres associs aux attributs de types de donnes abstraits.

Entres courantes pour Abstract Data Type Attribute


Vous pouvez dfinir des valeurs pour les entres courantes suivantes pour l'objet Abstract Data Types Attribute dans la dfinition de SGBD.
Entre Create Add Example
_

Dans Oracle 8 :
%ADTATTR% %DATATYPE%

138

PowerAMC

Chapitre 1
Entre Drop Modify SqlListQuery Example Dans Oracle 8 :

Guide de rfrence du SGBD

{ 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

Documentation utilisateur avance

139

Catgorie Objects

User
La catgorie User contient des entres qui dfinissent les paramtres associs aux utilisateurs.

Entres courantes pour User


Vous pouvez dfinir des valeurs pour les entres courantes suivantes pour l'objet User dans la dfinition de SGBD.
Entre Enable Maxlen SqlListQuery SqlAttrQuery Create Exemple (Sybase Adaptive Server Anywhere 6) Enable = Yes Maxlen = 128
{@OBJTCODE id} Select USER_NAME from SYS.SYSUSERPERMS order by USER_NAME

Dans Sybase ASE 12.5 :


sp_adduser %USERID% [%PRIVILEGE%]

Drop

Dans Sybase ASE 12.5 :


sp_dropuser %USERID%

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

Guide de rfrence du SGBD

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

TABLE' DATABASE' VIEW' TRIGGER' PROCEDURE' DEFAULT' RULE'

Documentation utilisateur avance

141

Catgorie Objects

Rule
La catgorie Rule contient des entres qui dfinissent les paramtres associs aux rgles.

Entres courantes pour Rule


Vous pouvez dfinir des valeurs pour les entres courantes suivantes pour l'objet Rule dans la dfinition de SGBD.
Entre Enable Maxlen Create Drop Exemple (Sybase Adaptive Server Enterprise 11) Enable = Yes MaxLen = 30
create rule %RULE% as %RULESEXPR% if exists (select 1 from sysobjects where name='%RULE%' and type='R') drop rule %RULE% {@OBJTNAME ID, @OBJTCODE ID, SCRIPT } select o.name,convert(char(20), o.id),t.text from dbo.sysobjects o, dbo.syscomments t where [%SCHEMA%? o.uid=user_id('%SCHEMA%') and] o.type='R' and t.id=o.id and t.texttype=0 order by o.id,t.number,t.colid

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

Guide de rfrence du SGBD

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

Guide de rfrence du SGBD

Exemple

Dans Sybase Adaptive Server Enterprise 11 :


UddtRuleName = R_%.28:DOMAIN%

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.

Entres courantes pour Procedure


Vous pouvez dfinir des valeurs pour les entres courantes suivantes pour l'objet Procedure dans la dfinition de SGBD.
Entre Enable Maxlen Create Drop Exemple (Sybase Adaptive Server Anywhere 6) Enable = Yes Maxlen = 128
create procedure %PROC%[(%PROCPRMS%)] %TRGDEFN% if exists(select 1 from sys.sysprocedure where proc_name = '%PROC%') then drop procedure %PROC% end if

Documentation utilisateur avance

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

Guide de rfrence du SGBD

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 /

Documentation utilisateur avance

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

Guide de rfrence du SGBD

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.

Entres courantes pour Trigger


Vous pouvez dfinir des valeurs pour les entres courantes suivantes pour l'objet Trigger dans la dfinition de SGBD.
Entre Enable Maxlen Drop Exemple (Sybase Adaptive Server Anywhere 6) Enable = Yes MaxLen = 30
if exists(select 1 from sys.systrigger where trigger_name = '%TRIGGER%') then drop trigger %TRIGGER% end if create trigger %TRIGGER%[%TRGTIME%=before? no cascade][ %TRGTIME%][ %TRGEVENT%[ of %COLUMNS%]] on [%QUALIFIER%]%TABLE% %TRGDEFN%

Create

Documentation utilisateur avance

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

Guide de rfrence du SGBD

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

Documentation utilisateur avance

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

Dans ce cas, le message d'erreur et le texte du message sont directement utiliss.

152

PowerAMC

Chapitre 1

Guide de rfrence du SGBD

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.

Entres courantes pour Group


Vous pouvez dfinir des valeurs pour les entres courantes suivantes pour l'objet Group dans la dfinition de SGBD.
Entre Enable Exemple (Sybase ASE 12.5) Enable = Yes

Documentation utilisateur avance

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

sp_dropgroup %GROUP% sp_addgroup %GROUP% [%BIND%] [%PRIVILEGE%]

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

Guide de rfrence du SGBD

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.

Entres courantes pour Role


Vous pouvez dfinir des valeurs pour les entres courantes suivantes pour l'objet Role dans la dfinition de SGBD.
Entre Enable SqlListQuery Exemple (Sybase ASE 12.5) Enable = Yes
{ROLE} select u.name from master.dbo.syssrvroles u order by 1

SqlAttrQuery Drop

drop role %ROLE% [with override]

Documentation utilisateur avance

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

Guide de rfrence du SGBD

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.

Entres courantes pour Privilege


Vous pouvez dfinir des valeurs pour les entres courantes suivantes l'objet Privilege dans la dfinition de SGBD.
Entre Enable Drop Create ModifiableAttributes Exemple (Sybase ASE 12.5) Enable = Yes
revoke %PRIVLIST% from %USERID% grant %PRIVLIST% to %USERID%

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

Documentation utilisateur avance

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.

Entres courantes pour Permission


Vous pouvez dfinir des valeurs pour les entres courantes suivantes pour l'objet Permission dans la dfinition de SGBD.
Entre Enable Drop Create Exemple (Sybase ASE 12.5) Enable = Yes
revoke %PERMLIST% on %OBJECTLIST% from %IDLIST% [%REVOKEOPTION%] grant %PERMLIST% on %OBJECTLIST% to %IDLIST% [%GRANTOPTION%]

158

PowerAMC

Chapitre 1
Entre SqlListQuery

Guide de rfrence du SGBD

Exemple (Sybase ASE 12.5) Requte de liste d'objets

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.

Entre communes pour Default


Vous pouvez dfinir des valeurs pour les entres communes suivantes pour l'objet Default dans la dfinition de SGBD.
Entre Enable Example (Sybase ASE 12.5) Enable = Yes

Documentation utilisateur avance

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)

sp_bindefault CITYDFLT, 'CUSTOMER.ADDRESS'

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

Guide de rfrence du SGBD

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.

Entres courantes pour Join Index


Vous pouvez dfinir des valeurs pour les entres courantes suivantes pour l'objet Join Index dans la dfinition de SGBD.
Entre Enable Maxlen Exemple (Sybase Adaptive Server Anywhere 6) Enable = Yes MaxLen = 128

Documentation utilisateur avance

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

Add DefOptions Create


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. 162 PowerAMC

Chapitre 1

Guide de rfrence du SGBD

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.

Documentation utilisateur avance

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.

Entres courantes pour Sequence


Vous pouvez dfinir des valeurs pour les entres courantes suivantes pour l'objet Sequence dans la dfinition de SGBD.
Entre Enable Create Drop Exemple (Oracle 8)
Enable = Yes create sequence %SQNC% [%OPTIONS%] drop sequence %SQNC%

164

PowerAMC

Chapitre 1
Entre Options Exemple (Oracle 8)

Guide de rfrence du SGBD

<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

rename %OLDNAME% to %NEWNAME%

Liste des attributs tendus qui seront pris en compte dans la bote de dialogue de fusion lors de la synchronisation de base de donnes

Documentation utilisateur avance

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.

Entres courantes pour Synonym


Vous pouvez dfinir des valeurs pour les entres courantes suivantes pour l'objet Synonym dans la dfinition de SGBD.
Entre Enable Create Exemple (Oracle 9i)
Enable = Yes create [%VISIBILITY% ]synonym [%QUALIFIER%]%SYNONYM% for [%BASEOWNER%]%BASEOBJECT%

166

PowerAMC

Chapitre 1
Entre Drop Exemple (Oracle 9i)

Guide de rfrence du SGBD

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.

Entres courantes pour DB Package


Vous pouvez dfinir des valeurs pour les entres courantes suivantes pour l'objet DB Package dans la dfinition de SGBD.
Entre Enable Maxlen Create Exemple (Oracle 9i)
Enable = Yes

MaxLen = 30 Instruction permettant de crer the specification of the database package


create [or replace ]package %DBPACKAGE% [authid %DBPACKAGEPRIV% ][%R%?[is][as]:as] %DBPACKAGESPEC% end [%DBPACKAGE%]

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)

Guide de rfrence du SGBD

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.

Documentation utilisateur avance

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.

Entres courantes pour DB Package Procedure


Vous pouvez dfinir des valeurs pour les entres courantes suivantes pour l'objet DB Package Procedure dans la dfinition de SGBD.
Entre Add Exemple (Oracle 9i)
%DBPKPROCTYPE% %DBPKPROC%[ (%DBPKPROCPARAM%)][ return %DBPKPROCRETURN%][ [%R%?[is][as]:as] %DBPKPROCCODE%]

170

PowerAMC

Chapitre 1

Guide de rfrence du SGBD

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.

Entres courantes pour DB Package Variable


Vous pouvez dfinir des valeurs pour les entres courantes suivantes pour l'objet DB Package Variable dans la dfinition de SGBD.
Entre Add Exemple (Oracle 9i)
%DBPKVAR% [%DBPKVARCONST% ]%DBPKVARTYPE%[ := %DBPKVARVALUE%]

Documentation utilisateur avance

171

Catgorie Objects

DB Package Type
La catgorie DB Package Type contient des entres qui dfinissent les paramtres associs aux types de package.

Entres courantes pour DB Package Type


Vous pouvez dfinir des valeurs pour les entres courantes suivantes pour l'objet DB Package Type dans la dfinition de SGBD.
Entre Add Exemple (Oracle 9i)
type %DBPKTYPE%[ is %DBPKTYPEVAR%]

DB Package Cursor
La catgorie DB Package Cursor contient des entres qui dfinissent les paramtres associs aux curseur de package.

Entres courantes pour DB Package Cursor


Vous pouvez dfinir des valeurs pour les entres courantes suivantes pour l'objet DB Package Cursor dans la dfinition de SGBD.
Entre Add Exemple (Oracle 9i)
cursor %DBPKCURSOR% [ (%DBPKPROCPARAM%)][ return %DBPKCURSORRETURN%][ is %DBPKCURSORQUERY%]

ParameterTypes
Types disponibles pour le curseur de package. Exemple
in

172

PowerAMC

Chapitre 1

Guide de rfrence du SGBD

DB Package Exception
La catgorie DB Package Exception contient des entres qui dfinissent les paramtres associs aux exceptions de package.

Entres courantes pour DB Package Exception


Vous pouvez dfinir des valeurs pour les entres courantes suivantes pour l'objet DB Package Exception dans la dfinition de SGBD.
Entre Add Exemple (Oracle 9i)
%DBPKEXC% exception

DB Package Parameter
La catgorie DB Package Parameter contient des entres qui dfinissent des paramtres relatifs aux paramtres du package.

Entres courantes pour DB Package Parameter


Vous pouvez dfinir des valeurs pour les entres courantes suivantes pour l'objet DB Package Parameter dans la dfinition de SGBD.
Entre Add Exemple (Oracle 9i)
%DBPKPARM% [%DBPKPARMTYPE% ]%DBPKPARMDTTP%

Documentation utilisateur avance

173

Catgorie Objects

DB Package Pragma
La catgorie DB Package Pragma contient qui dfinissent les paramtres relatifs au pragma de package.

Entres courantes pour DB Package Pragma


Vous pouvez dfinir des valeurs pour les entres courantes suivantes pour l'objet DB Package Pragma dans la dfinition de SGBD.
Entre Add Exemple (Oracle 9i)
pragma %DBPKPRAGMA% (%DBPKPRAGMAOBJ%, %DBPKPRAGMAPARAM%)

174

PowerAMC

Chapitre 1

Guide de rfrence du SGBD

Commandes pour tous les objets


Les commandes suivantes sont dfinies dans la catgorie Objects et s'appliquent tous les objets.

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

Documentation utilisateur avance

175

Commandes pour tous les objets

Exemple

EnableOption = YES

176

PowerAMC

Chapitre 1

Guide de rfrence du SGBD

Catgorie Data type


La catgorie Data type dfinit les conversions de types de donnes entre les types de donnes PowerAMC et les types de donnes de SGBD.

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

Documentation utilisateur avance

177

Catgorie Data type

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

Guide de rfrence du SGBD

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

Documentation utilisateur avance

179

Catgorie Data type

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

Guide de rfrence du SGBD

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)

Documentation utilisateur avance

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

Guide de rfrence du SGBD

Variables pour le reverse engineering


Nom de la variable R S D Commentaire Dfini TRUE lors du reverse engineering Permet de sauter un mot. La chane est analyse pour le reverse engineering, mais pas gnre Permet de sauter une valeur numrique. La valeur numrique est analyse pour le reverse engineering, mais pas gnre Permet de sauter tout le texte. Le texte est analys pour le reverse engineering, mais pas gnr True si l'utilisateur courant est l'utilisateur connect Nom du catalogue utiliser dans des requtes de reverse engineering ODBC Variable qui reprsente un login utilisateur et l'objet appartenant cet utilisateur dans la base de donnes. Vous devez utiliser cette variable pour les requtes sur les objets rpertoris dans les botes de dialogue de reverse engineering ODBC, car leur propritaire n'est pas encore dfini. Une fois le propritaire d'un objet dfini, vous pouvez utiliser SCHEMA ou OWNER Taille du type de donnes de la colonne ou du domaine. Utilis pour le reverse engineering ODBC, lorsque la longueur n'est pas dfinie dans les tables systme Une valeur de la liste des valeurs dans une colonne ou dans un domaine Permet de procder au reverse engineering de permissions dfinies sur des objets de base de donnes Permet de procder au reverse engineering de privilges dfinis sur un utilisateur, un groupe ou un rle

A ISODBCUSER CATALOG SCHEMA

SIZE

VALUE PERMISSION PRIVILEGE

Documentation utilisateur avance

183

Variables de MPD

Variables pour la synchronisation de base de donnes


Nom de la variable OLDOWNER NEWOWNER OLDQUALIFIER NEWQUALIFIER OLDTABL NEWTABL OLDCOLN NEWCOLN OLDNAME NEWNAME Commentaire Nom de l'ancien propritaire de l'objet. Voir aussi OWNER Nom du nouveau propritaire de l'objet. Voir aussi OWNER Ancien qualifiant de l'objet. Voir aussi QUALIFIER Nouveau qualifiant de l'objet. Voir aussi QUALIFIER Ancien code de la table Nouveau code de la table Ancien code de la colonne Nouveau code de la colonne Ancien code de la squence Nouveau code de la squence

Variables pour la scurit dans la base de donnes


Nom de la variable PRIVLIST PERMLIST USER GROUP ROLE GRANTEE PASSWORD OBJECT GRANTOPTION REVOKEOPTION Commentaire Liste des privilges pour une commande grant/revoke Liste des permissions pour une commande grant/revoke Nom de l'utilisateur Nom du groupe Nom du rle Nom gnrique utilis pour concevoir un utilisateur, un groupe ou un rle Mot de passe pour un utilisateur, un groupe ou un rle Objets de base de donnes (table, vue, colonne, etc.) Option pour grant : with grant option / with admin option Option pour revoke : with cascade

184

PowerAMC

Chapitre 1

Guide de rfrence du SGBD

Variables pour les mtadonnes


Nom de la variable @CLSSNAME @CLSSCODE Commentaire Nom localis de la classe de l'objet. Ex : Table, View, Column, Index Code de la classe de l'objet. Ex : TABL, VIEW, COLN, INDX

Variables communes pour tous les objets nomms


Nom de la variable @OBJTNAME @OBJTCODE @OBJTLABL @OBJTDESC Commentaire Nom de l'objet Code de l'objet Commentaire de l'objet Description de l'objet

Variables communes pour les objets


Ces objets peuvent tre des tables, des index, des vues, etc.
Nom de la variable COMMENT OWNER Commentaire Commentaire de l'objet ou son nom (en l'absence de commentaire) Code gnr pour l'utilisateur propritaire de l'objet ou de son parent. N'utilisez pas cette variable pour les requtes sur les objets rpertoris dans les botes de dialogue de reverse engineering ODBC, car leur propritaire n'est pas encore dfini Prfixe de base de donnes des objets (nom de la base + '.' si la base est dfinie) Qualifiant de l'objet complet (prfixe de base + prfixe de propritaire) Texte SQL dfinissant les options physiques pour l'objet

DBPREFIX QUALIFIER OPTIONS Documentation utilisateur avance

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)

Variables relatives aux SGBD, options de base de donnes


Nom de la variable TABLESPACE STORAGE Commentaire Code gnr pour le tablespace Code gnr pour le storage

Variables pour les tables


Nom de la variable TABLE TNAME TCODE TLABL PKEYCOLUMNS TABLDEFN CLASS CLUSTERCOLUMNS Commentaire Code gnr pour la table Nom de la table Code de la table Commentaire de la table Liste des colonnes de cl primaire. Ex : A, B Corps complet de la dfinition de table. Contient la dfinition des colonnes, des contrles et des cls Nom de type de donnes abstrait Liste des colonnes utilises pour un cluster

186

PowerAMC

Chapitre 1

Guide de rfrence du SGBD

Variables pour vrifications sur les domaines et sur les colonnes


Nom de la variable UNIT FORMAT DATATYPE DTTPCODE LENGTH PREC ISRDONLY DEFAULT MINVAL MAXVAL VALUES LISTVAL MINMAX ISMAND MAND NULL NOTNULL IDENTITY WITHDEFAULT ISUPPERVAL ISLOWERVAL Commentaire Attribut Unit des paramtre de contrle Attribut Format des paramtre de contrle Type de donnes. Ex : int, char(10) ou numeric(8, 2) Code du type de donnes. Ex : int, char ou numeric Longueur du type de donnes. Ex : 0, 10 ou 8 Prcision du type de donnes. Ex : 0, 0 ou 2 TRUE si l'attribut Lecture seule est slectionn dans les paramtres de contrle standard Valeur par dfaut Valeur minimum Valeur maximum Liste des valeurs. Ex : (0, 1, 2, 3, 4, 5) Contrainte SQL associe la liste des valeurs. Ex : C1 in (0, 1, 2, 3, 4, 5) Contrainte SQL associe aux valeurs minimale et maximale. Ex : (C1 <= 0) AND (C1 >= 5) TRUE si le domaine ou la colonne est obligatoire Contient le mot cl "null" ou "not null" selon la valeur de l'attribut Obligatoire Contient le mot cl "null" si le domaine ou la colonne est obligatoire Contient le mot cl "not null" si le domaine ou la colonne est obligatoire Mot cl "identity" si le domaine ou la colonne est de type Identity (spcifique Sybase) Mot cl "with default" si le domaine ou la colonne est de type With default TRUE si l'attribut Majuscules est slectionn dans les paramtres de contrle standard TRUE si l'attribut Minuscules est slectionn dans les paramtres de contrle standard

Documentation utilisateur avance

187

Variables de MPD

Variables pour les colonnes


Les variables de table parent sont galement disponibles.
Nom de la variable COLUMN COLNNO COLNNAME COLNCODE PRIMARY ISPKEY FOREIGN COMPUTE Commentaire Code gnr pour la colonne Position de la colonne dans la liste des colonnes de la table Nom de la colonne Code de la colonne Contient le mot cl "primaire" si la colonne est une colonne de cl primaire TRUE si la colonne fait partie d'une cl primaire TRUE si la colonne fait partie d'une cl trangre Calcul du texte de la contrainte

Variables pour les types de donnes abstraits


Nom de la variable ADT TYPE SIZE FILE ISARRAY ISLIST ISSTRUCT ISOBJECT ISJAVA ADTDEF Commentaire Code gnr du type de donnes abstrait Type du type de donnes abstrait. Contient des mots cls tels que "array", "list", Taille du type de donnes abstrait Fichier Java du type de donnes abstrait TRUE si le type de donnes abstrait est de type Array TRUE si le type de donnes abstrait est de type List TRUE si le type de donnes abstrait est de type Structure TRUE si le type de donnes abstrait est de type Object TRUE si le type de donnes abstrait est de type JAVA class Contient la dfinition du type de donnes abstrait

188

PowerAMC

Chapitre 1

Guide de rfrence du SGBD

Variable pour les attributs de types de donnes abstraites


Nom de la variable ADTATTR Commentaire Code gnr pour l'attribut de type de donnes abstrait

Variable pour les domaines


Nom de la variable DOMAIN DEFAULTNAME Commentaire Code gnr du domaine (disponible galement pour les colonnes) Nom de l'objet par dfaut associ au domaine (spcifique SQL Server)

Variables pour les rgles


Nom de la variable RULE RULENAME RULECODE RULECEXPR RULESEXPR Commentaire Code gnr pour la rgle Nom de la rgle Code de la rgle Expression client de la rgle Expression serveur de la rgle

Documentation utilisateur avance

189

Variables de MPD

Variables pour ASE & SQL Server


Nom de la variable RULENAME DEFAULTNAME USE_SP_PKEY USE_SP_FKEY Commentaire Nom de la rgle associe au domaine Nom de l'objet par dfaut associ au domaine Utilise sp_primary_key pour crer des cls primaires Utilise sp_foreign_key pour crer des cls trangres

Variables pour les squences


Nom de la variable SQNC SQNCOWNER Commentaire Nom de la squence Nom du propritaire de la squence

Variables pour les index


Nom de la variable INDEX TABLE INDEXNAME INDEXCODE UNIQUE INDEXTYPE CIDXLIST INDEXKEY Commentaire Code gnr pour l'index Code gnr du parent d'un index, peut tre une table ou une table de requte (vue) Nom de d'index Code d'index Contient le mot cl "unique" lorsque l'index est unique Contient le type d'index (disponible uniquement pour un nouveau SGBD) Liste des codes d'index avec sparateur, sur la mme ligne. Exemple : A asc, B desc, C asc Contient le mot cl "primary", "unique" ou "foreign" en fonction de l'origine de l'index

190

PowerAMC

Chapitre 1
Nom de la variable CLUSTER INDXDEF Commentaire

Guide de rfrence du SGBD

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

Variables pour les join indexes (IQ)


Nom de la variable JIDX JIDXDEFN REFRLIST RFJNLIST Commentaire Code gnr pour le join index Corps complet des dfinitions de join index definition Liste des rfrences (pour ODBC) Liste des rfrences de jointure (pour ODBC)

Variables pour les colonnes d'index


Nom de la variable ASC ISASC Commentaire Contient les mots cls "ASC" ou "DESC", selon l'ordre de tri TRUE si l'ordre de tri de la colonne d'index est l'ordre ascendant

Variables pour les rfrences


Nom de la variable REFR PARENT PNAME Documentation utilisateur avance Commentaire Code gnr pour la rfrence Code gnr pour la table parent Nom de la table parent

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

MINCARD MAXCARD POWNER COWNER CHCKONCMMT REFRNO JOINS

192

PowerAMC

Chapitre 1

Guide de rfrence du SGBD

Variables de colonnes de rfrence


Nom de la variable CKEYCOLUMN FKEYCOLUMN PK PKNAME FK FKNAME AK AKNAME COLTYPE DEFAULT HOSTCOLTYPE Commentaire Code gnr pour la colonne de table parent (cl primaire) Code gnr pour la colonne de table enfant (cl trangre) Code gnr pour la colonne de cl primaire Nom de la colonne de cl primaire Code gnr pour la colonne de cl trangre Nom de colonne de cl trangre Code de colonne de cl alternative (identique PK) Nom de colonne de cl alternative (identique PKNAME) Type de donnes de colonne de cl primaire Valeur par dfaut de colonne de cl primaire Type de donnes de colonne de cl primaire utilis dans une dclaration de procdure. Par exemple : without length

Variables pour les cls


Nom de la variable COLUMNS COLNLIST ISPKEY PKEY AKEY KEY ISMULTICOLN CLUSTER Commentaire Liste des colonnes de la cl. Ex : "A, B, C" TRUE lorsque la cl est une cl primaire de table Nom de contrainte de cl primaire Nom de contrainte de cl alternative Nom de contrainte de la cl True si la cl porte sur plusieurs colonnes Mot cl cluster

Documentation utilisateur avance

193

Variables de MPD

Variables pour les vues


Nom de la variable VIEW VIEWNAME VIEWCODE VIEWCOLN SQL VIEWCHECK SCRIPT Commentaire Code gnr pour la vue Nom de la vue Code de la vue Liste des colonnes de la vue. Ex : "A, B, C" Texte SQL de la vue. Ex : Select * from T1 Contient le mot cl "with check option" si cette option est slectionne dans la vue Commande complte de cration de la vue. Ex : create view V1 as select * from T1

Variables pour les triggers


Des variables de table parent sont galement disponibles.
Nom de la variable ORDER TRIGGER TRGTYPE TRGEVENT TRGTIME REFNO ERRNO ERRMSG MSGTAB MSGNO Commentaire Numro d'ordre du trigger (si le SGBD prend en charge plusieurs triggers d'un mme type) Code gnr du trigger Type de trigger. Contient les mots cls "beforeinsert", "afterupdate", etc. Evnement dclencheur. Contient les mots cls "insert", "update", "delete" Moment du dclenchement. Contient les mots cls NULL, "before", "after" Numro d'ordre de rfrence dans la liste des rfrences Numro d'erreur pour une erreur standard Message d'erreur pour une erreur standard Nom de la table contenant des messages dfinis par l'utilisateur Nom de la colonne contenant des numros d'erreur dans un tableau d'erreurs dfini par l'utilisateur

194

PowerAMC

Chapitre 1
Nom de la variable MSGTXT SCRIPT TRGBODY TRGDESC TRGDEFN

Guide de rfrence du SGBD

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

Variables pour les procdures


Nom de la variable PROC Commentaire Code gnr pour la procdure (galement disponible pour un trigger si ce dernier est mis en oeuvre pas une procdure) Code gnr pour la procdure si la procdure est une fonction (avec une valeur de rsultat)

FUNC

Documentation utilisateur avance

195

Variables de MPD

196

PowerAMC

C H A P I T R E

Gestion des profils

Sujet Sommaire

Ce chapitre explique comment grer les profils PowerAMC.


Section Notions de base relatives au concept de profil Dfinition d'un strotype Dfinition d'un critre Dfinition d'un symbole personnalis dans un profil Dfinition d'attributs tendus dans un profil Dfinition d'une vrification personnalise dans un profil Dfinition de templates et de fichiers gnrs dans un profil Dfinition d'une collection tendue dans un profil Dfinition d'une mthode dans un profil Dfinition des transformations dans un profil Dfinition d'un gestionnaire d'vnement dans un profil Dfinition de menus dans un profil Utilisation de profils : une tude de cas Page 198 206 213 215 218 221 229 234 237 241 247 252 256

Documentation utilisateur avance

197

Notions de base relatives au concept de profil

Notions de base relatives au concept de profil


PowerAMC utilise le concept du profil d'UML pour tendre la dfinition de son mtamodle afin de fournir des modles et mthodes personnaliss pour la construction d'applications diffrentes.
Prrequis

Il est recommand de bien connatre la structure et la philosophie du mtamodle afin de pouvoir faire une utilisation optimale des profils PowerAMC.

Qu'est-ce qu'un profil ?


Un profil est un mcanisme d'extension utilis pour la personnalisation d'un mtamodle l'aide de smantiques supplmentaires. Les profils sont utiliss pour crer des catgories d'objets (strotypes et critres), personnaliser les graphiques des objets, ajouter des mtadonnes supplmentaires aux objets (attributs tendus), dfinir des fonctionnalits de gnration nouvelles ou modifies (templates), et ajouter des mthodes, des transformations et des collections tendues sur les mtaclasses et menus. Vous crez un profil lorsque vous avez besoin de concevoir une mthodologie utilisateur, un modle ayant une signification prdfinie ou bien pour une cible de gnration particulire. Dans PowerAMC, un profil permet de dfinir diffrentes extensions pour les mtaclasses disponibles dans le mtamodle. De telles extensions, telles que les strotypes, les symboles ou les contrles, sont utilises pour complter la dfinition standard d'une mtaclasse. Les profils s'affichent dans tous les SGBD, les langages objet et les dfinitions tendues de modle fournis avec PowerAMC. Par dfaut, chaque fichier de ressource est dot d'un profil ds sa cration. Exemple Le Modle de Processus Mtiers PowerAMC permet de concevoir les diffrentes tches internes d'une socit ainsi que la faon dont les partenaires interagissent avec ces tches et processus. Si vous slectionner le langage de processus ebXML, vous bnficiez de strotypes spcifiques, d'attributs tendus et de templates ainsi que d'autres extensions adaptes au standard ebXML. Vous pouvez utiliser ces strotypes dfinis dans le langage de processus ebXML pour dfinir plus avant les processus dans votre modle et les transformer en <<BinaryCollaboration>>, <<BusinessTransaction>>, etc. 198
PowerAMC

Chapitre 2

Gestion des profils

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.

Documentation utilisateur avance

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

Gestion des profils

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

Documentation utilisateur avance

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

Ajout d'une mtaclasse dans un profil


Selon le type de fichier de ressources sur lequel vous travaillez, la liste des mtaclasses pr-existantes peut changer dans la catgorie Profile. La procdure d'ajout d'une mtaclasse requiert de slectionner des lments parmi une large gamme de mtaclasses PowerAMC existantes. Dans la bote de dialogue de slection, vous pouvez utiliser l'outil Modifier le filtre des mtaclasses pour afficher toutes les mtaclasses conceptuelles, concrtes ou abstraites, dans la liste de slection. Pour plus d'informations sur le mtamodle PowerAMC, reportez-vous au chapitre Mtamodle public PowerAMC. Conventions de dnomination de code Toutes les mtaclasses concrtes qui ont un nom et un code affichent la zone de liste droulante Convention de dnomination de code. Cette liste permet de slectionner un script de conversion du nom en code pour toutes les instances de la mtaclasse slectionne. Le processus assure la conversion automatique des noms en codes en fonction de la convention slectionne, et pourvu que la case Permet les conversions nom-code dans la page Conventions de dnomination soit coche.

202

PowerAMC

Chapitre 2

Gestion des profils

Vous pouvez choisir l'un des scripts de conversion suivants :


Convention de dnomination de code firstLowerWord FirstUpperChar lower_case UPPER_CASE Description Premire lettre en minuscule, ensuite les premires lettres des autres mots en majuscules Premire lettre de chaque mot en majuscules Tous les mots en minuscules et spars par un trait de soulignement Tous les mots en majuscules et spars par un trait de soulignement

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.

Documentation utilisateur avance

203

Notions de base relatives au concept de profil 3 Slectionnez une ou plusieurs mtaclasses.

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

Gestion des profils

Ajout d'une mtaclasse parent

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

Exclusion d'une mtaclasse d'un modle


La case cocher Exclure du modle est utilise pour supprimer toute rfrence la mtaclasse slectionne dans le modle. Cette fonctionnalit n'est pas disponible pour les mtaclasses abstraites ou les mtaclasses n'tant pas des mtaclasses de conception. Cette fonctionnalit influe sur les menus, la palette, les feuilles de proprits etc, ce pour simplifier l'interface de votre modle. Par exemple, si vous n'utilisez pas les rgles de gestion, vous pouvez cocher la Case Exclure du modle dans la feuille de proprits de la mtaclasse de rgle de gestion.

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

Dfinition d'un strotype

Dfinition d'un strotype


Les strotypes sont utiliss pour classifier les instances et rassembler des extensions pour une mtaclasse qui prend en charge le concept de strotype. Les strotypes peuvent galement servir crer une mtaclasse l'intrieur d'une mtaclasse donne, dans cette section, nous les appellerons strotypes mtaclasse. Ce mcanisme transforme le strotype en une sorte de mtaclasse : toutes les instances portant le strotype mtaclasse sont groupes sous une mtaclasse parent dans l'arbre de l'Explorateur ou dans la bote de dialogue de fusion. Un strotype mtaclasse cre galement un sous-espace de nom dans une mtaclasse, ce qui permet d'avoir des instances de mme nom mais avec diffrents strotypes mtaclasse au sein d'une mme mtaclasse. Les strotypes peuvent galement servir crer des sous-classifications au sein d'une mtaclasse donne. Vous pouvez donner un strotype le statut de mtaclasse l'intrieur d'une mtaclasse existante. Vous pouvez dfinir plusieurs strotypes pour une mtaclasse donne. Les strotypes que vous crez peuvent tre appliqus n'importe quelle instance de la mtaclasse. Toutefois, les extensions dfinies dans un strotype ne s'appliquent qu'aux instances auxquelles le strotype est appliqu. C'est pour cette raison que l'utilisation des strotypes est considre comme un mcanisme d'extension par instance. Hritage Les strotypes prennent en charge l'hritage : les caractristiques du parent d'un strotype sont hrites par les strotypes enfant.

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

Gestion des profils

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

Utiliser comme mtaclasse

Outil personnalis dans la palette Commentaire

Pour plus d'informations sur l'affectation d'un outil personnalis un strotype, reportez-vous la section Affectation d'un outil un strotype.

Cration d'un strotype


Vous pouvez crer un ou plusieurs strotypes pour une mtaclasse donne. Vous ne pouvez pas crer un strotype au sein d'un autre strotype ou au sein d'un critre.
Pour crer 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.

Documentation utilisateur avance

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.

Utilisation d'un strotype comme mtaclasse


Les strotypes peuvent tre utiliss pour crer des sous-classifications l'intrieur d'une mtaclasse donne. Vous pouvez slectionner la case Utiliser comme mtaclasse dans la feuille de proprits du strotype et faire du strotype une mtaclasse dans la mtaclasse courante. Cette fonctionnalit permet par exemple d'avoir des objets portant des noms identiques mais avec des strotypes diffrents dans un mme espace de nom. Elle regroupe galement les instances par strotypes dans l'Explorateur, les listes droulantes ou la bote de dialogue de fusion pour en faciliter l'identification.

208

PowerAMC

Chapitre 2

Gestion des profils

Pour utiliser un strotype comme une mtaclasse :

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.

Attacher une icne un strotype


Vous pouvez attacher une icne au strotype que vous avez dfini pour identifier les instances de la mtaclasse portant le strotype. Lorsque vous affecterez le strotype une instance de mtaclasse, celle-ci affichera l'icne correspondante au lieu de l'icne habituelle dans l'interface PowerAMC. Aucune icne n'est slectionne par dfaut, vous pouvez utiliser l'outil Parcourir pour slectionner un fichier ayant l'extension .cur ou .ico. Vous pouvez crer vos propres icnes ou curseurs l'aide d'diteurs tiers ou les acheter des graphistes. Si vous slectionnez la case cocher Outil personnalis dans la palette, l'icne est automatiquement initialise avec l'icne systme, ceci ne vous empche pas de la modifier l'aide de l'outil Parcourir. Lorsque vous slectionnez une nouvelle icne, celle-ci est copie et enregistre dans le fichier de ressources. Cette icne s'affiche dans la liste des icnes disponibles dans la catgorie Outils graphiques personnaliss de la bote de dialogue Personnalisation des barres d'outils :

Documentation utilisateur avance

209

Dfinition d'un strotype


Pour attacher une icne un strotype :

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..

Cliquez sur Appliquer.

Affectation d'un outil un strotype


Vous pouvez attacher un outil au strotype que vous avez dfini afin de faciliter la cration d'instances strotypes de la mtaclasse. Tous les outils personnaliss s'affichent dans une palette d'outils sous le mme nom que le fichier de ressources auquel ils appartiennent. L'outil est identique l'icne de strotype. Si vous ne slectionnez pas d'icne, l'icne systme sera affecte l'outil par dfaut. Vous devez slectionner une icne pour modifier l'outil personnalis du strotype. Pour plus d'informations sur comment attacher une icne un strotype, reportez-vous la section Attacher une icne un strotype.
Pour attacher un outil un strotype :

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

Gestion des profils

<facultatif> Slectionnez une icne pour modifier l'outil par dfaut. Vous pouvez cliquer dans la zone de test pour vrifier l'aspect du curseur.

Cliquez sur Appliquer.

Dfinition de noms par dfaut pour des objets strotyps


Vous pouvez dfinir un nom par dfaut pour les objets crs l'aide d'un outil personnalis de strotype. Le nom par dfaut peut s'avrer trs utile lorsque vous concevez pour un langage cible ou une application ayant des conventions de dnomination strictes. Toutefois, le nom par dfaut ne prvaut pas sur les conventions de dnomination de modle, de telle sorte que si un nom ne respecte pas ces dernires, il est automatiquement modifi.

Documentation utilisateur avance

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

Gestion des profils

Dfinition d'un critre


Les critres sont un autre mcanisme d'extension plus gnrique pour les mtaclasses PowerAMC. Les critres sont galement utiliss pour les objets qui ne prennent pas en charge les strotypes, par exemple les objets de MCD ou de MPD. Un critre dfinit une condition avec les expressions utilises dans la macro .if du langage de gnration par templates (GTL) PowerAMC. Vous pouvez galement utiliser les attributs tendus dfinis au niveau de la mtaclasse dans la condition du critre, mais vous ne pouvez pas utiliser ceux dfinis dans le critre lui-mme. Lorsqu'une instance de mtaclasse vrifie les conditions du critre, les extensions dfinies sur le critre sont appliques cette instance. Pour plus d'informations sur le langage de gnration par templates PowerAMC et sur la macro .if, reportez-vous au chapitre Guide de rfrence de la gnration. Vous pouvez dfinir un ou plusieurs critres pour une mtaclasse slectionne. Les critres permettent de dfinir les mmes extensions que les strotypes. Exemple Dans un MPD, vous pouvez souhaiter personnaliser les symboles des tables de fait. Vous pouvez crer un critre nomm "type-fait" qui va tester le type de la table en utilisant la condition suivante :
(%DimensionalType%) == "1"

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

Documentation utilisateur avance

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

Gestion des profils

Dfinition d'un symbole personnalis dans un profil


PowerAMC permet de personnaliser le format des symboles afin de faire en sorte que le diagramme reflte la smantique de la mtaclasse. Vous pouvez personnaliser les symboles et le format modifi du symbole peut devenir une prfrence d'affichage par dfaut. Vous pouvez dfinir un symbole personnalis par mtaclasse, strotype ou critre.
Si vous dfinissez un symbole personnalis dans une catgorie de mtaclasse Toutes les instances de la mtaclasse et un enfant de cette

mtaclasse utiliseront le symbole personnalis


Si vous dfinissez un symbole personnalis dans un strotype ou critre slectionn Seules les instances ayant le strotype ou critre

slectionn affichent le symbole personnalis


Dans les autres cas Le format de symbole par dfaut tel qu'affich dans les prfrences d'affichage est utilis

Personnalisation d'un symbole


Vous pouvez personnaliser le format d'un symbole l'aide de la bote de dialogue Format de symbole. Les paramtres de format sont disponibles via les diffrentes pages de cette bote de dialogue : Taille : pour dfinir une taille, l'ajustement automatiquement et les proportions Style de trait : pour dfinir la couleur, l'paisseur, le style et les angles des lignes et l'affichage des flches sur les lignes Remplissage : pour dfinir le style et la couleur de remplissage Ombre : pour ajouter une ombre au symbole et dfinir sa couleur Police : pour dfinir le style et la taille de police Forme personnalise : pour modifier la forme par dfaut d'un symbole en slectionnant parmi des bitmaps, des mtafichiers ou des icnes

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

Dfinition d'un symbole personnalis dans un profil

Dfinition d'un symbole personnalis


Vous ne pouvez dfinir qu'un seul symbole personnalis par mtaclasse, strotype ou critre. Les enfants de mtaclasse hritent de tout symbole personnalis dfini sur une mtaclasse parent. Lorsque vous crez un symbole personnalis, le nom de ce symbole est automatiquement affect, vous pouvez taper un commentaire dans la zone correspondante si vous souhaitez complter la dfinition du symbole personnalis. Vous avez galement la possibilit de modifier la taille par dfaut du symbole. La plupart des actions de personnalisation sont effectues dans la bote de dialogue Format de symbole qui s'affiche lorsque vous cliquez sur le bouton Modifier dans la page Symbole personnalis. 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.
Pour dfinir un symbole personnalis :

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

Gestion des profils

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.

Cliquez sur Appliquer dans l'diteur de ressources.

Documentation utilisateur avance

217

Dfinition d'attributs tendus dans un profil

Dfinition d'attributs tendus dans un profil


Les attributs tendus sont dfinis pour une mtaclasse, un strotype ou un critre. Ils sont utiliss pour complter la dfinition de la mtaclasse ou de ses instances afin de : Contrler la gnration pour une cible de gnration donne. Par exemple, la dfinition tendue de modle pour BEA Weblogic contient des attributs tendus tels que Weblogic-generator-type utiliss pour dfinir un type de gnrateur Enrichir la dfinition des modles

Les attributs tendus ont un type utilis pour dfinir leur type de donnes et les valeurs autorises.

Cration d'un type d'attribut tendu


Les types d'attribut tendu sont utiliss pour dfinir le type de donnes et les valeurs autorises pour des attributs tendus. Les types d'attribut tendu sont crs dans le dossier Shared. Une fois dfinis, ces types sont disponibles dans la liste droulante Type de donnes dans la feuille de proprits d'attribut tendu.
Pour crer un type d'attribut tendu :

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

Gestion des profils

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.

Cliquez sur Appliquer.

Cration d'un attribut tendu


Un attribut tendu est une autre extension de la dfinition d'une mtaclasse. Vous pouvez crer un attribut tendu : Dans la mtaclasse si vous souhaitez l'appliquer toutes les instances de la mtaclasse Dans un strotype ou un critre, si vous souhaitez appliquer l'attribut tendu des instances de mtaclasse slectionnes

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".

Documentation utilisateur avance

219

Dfinition d'attributs tendus dans un profil


Si la case Template est dcoche

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%.

Pour crer un attribut tendu :

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.

Cliquez sur Appliquer.

220

PowerAMC

Chapitre 2

Gestion des profils

Dfinition d'une vrification personnalise dans un profil


Vous pouvez ajouter des vrification personnalises sur des mtaclasses abstraites et concrtes. Toutefois, les vrifications personnalises ne sont pertinentes que sur les mtaclasses de modlisation (par exemple, les rgles de gestion) ; elles ne doivent pas tre dfinies sur des objets techniques tels que les symboles ou lments de rapport. Pour plus d'informations sur les mtaclasses abstraites et concrtes, reportez-vous au chapitre Mtamodle public PowerAMC. Vous pouvez crer des vrifications personnalises l'aide du langage de script Visual Basic. Pour plus d'informations sur le langage de script Visual Basic, reportezvous au chapitre Manipulation des objets via VBScript dans le manuel Guide des fonctionnalits gnrales. Les vrifications personnalises peuvent tre dfinies sur une mtaclasse mais aussi pour un strotype ou un critre.
Lorsque vous dfinissez une vrification sur une mtaclasse

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.

Documentation utilisateur avance

221

Dfinition d'une vrification personnalise dans un profil

Proprits de vrification personnalise


Lorsque vous crez des vrifications personnalises, vous devez dfinir les proprits gnrales suivantes :
Paramtre Nom Description Nom de la vrification personnalise. Ce nom s'affiche sous la catgorie d'objet slectionne dans la bote de dialogue Paramtres de vrification de modle. Ce nom est galement utilis (concatn) dans le nom de la fonction de vrification, afin d'identifier cette dernire de faon unique Informations supplmentaires relatives la vrification personnalise Texte affich dans la zone de message qui s'affiche lorsque l'utilisateur slectionne Aide dans le menu contextuel de la vrification personnalise dans la bote de dialogue de vrification de modle Texte affich dans la fentre Liste de rsultats lors de l'excution des vrifications Permet de dfinir si la vrification personnalise correspond une erreur (problme majeur dans la syntaxe du modle) ou un avertissement (problme mineur ou simple recommandation) Permet de vous assurer que cette vrification personnalise est slectionne par dfaut dans la bote de dialogue Paramtres de vrification de modle Permet d'autoriser la correction automatique pour la vrification personnalise Permet de vous assurer que la correction automatique correspondant cette vrification personnalise est excute par dfaut

Commentaire Message d'aide

Message de rsultats Svrit par dfaut

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

Gestion des profils

Dfinition du script d'une vrification personnalise


Vous pouvez saisir le type d'une vrification personnalise dans la page Script de vrification des proprits de vrification personnalise. Par dfaut, la page Script de vrification affiche les lments de script suivants : %Check% est le nom de la fonction, il est pass sur le paramtre obj. Il est affich sous forme de variable, cette variable tant une concatnation de nom du fichier de ressource, du nom de la mtaclasse courante, du nom du strotype ou critre ainsi que du nom de la vrification ellemme dfini dans la page Gnral. Si l'un de ces noms comporte un espace, ce dernier est remplac par un trait de soulignement Commentaire expliquant le comportement attendu du script La ligne de valeur de rsultat

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

Documentation utilisateur avance

223

Dfinition d'une vrification personnalise dans un profil 5 Dclarez le corps de la fonction.


%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 position = InStr(col.datatype,"(") if position <> 0 then DT_col = left(col.datatype, position -1) else DT_col = col.datatype end if if ucase(DT_col) = "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

Dclarez la fin de la fonction.

Cliquez sur Appliquer.

224

PowerAMC

Chapitre 2

Gestion des profils

Dfinition du script d'une correction automatique


Si la vrification personnalise que vous avez dfinie prend en charge la correction automatique, vous pouvez saisir le corps de cette fonction dans la page Script de correction automatique de la feuille de proprits de vrification personnalise. La correction automatique est visible dans la bote de dialogue Paramtres de vrification de modle, elle est slectionne par dfaut si vous cochez la case Excuter la correction automatique par dfaut dans la page Gnral de la feuille de proprits de la vrification personnalise. Par dfaut, la page Script de correction automatique affiche les lments de script suivants : %Fix% est le nom de la fonction, il est pass sur le paramtre obj. Il est affich sous forme de variable, cette variable tant une concatnation de nom du fichier de ressource, du nom de la mtaclasse courante, du nom du strotype ou critre ainsi que du nom de la correction. Si l'un de ces noms comporte un espace, ce dernier est remplac par un trait de soulignement La variable outmsg est un paramtre de la fonction de correction. Vous devez spcifier le message de correction qui va s'afficher lors de l'excution du script de correction La ligne de valeur de rsultat

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

Documentation utilisateur avance

225

Dfinition d'une vrification personnalise dans un profil 4 Dclarez le corps de la fonction.


%Fix% = False 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 position = InStr(col.datatype,"(") If position <> 0 Then DT_col = Left(col.datatype, position -1) Else DT_col = col.datatype End If If (Ucase(DT_col) = "VARCHAR") And (col.length > 255) Then outmsg = "Automatic correction has removed column " & col.Name & " from index." c.Delete %Fix% = True End If Next End If

Dclarez la fin de la fonction.

Cliquez sur Appliquer.

226

PowerAMC

Chapitre 2

Gestion des profils

Utilisation du script global


La page Script global est utilise pour stocker les fonctions et attributs statiques qui peuvent tre rutiliss entre les diffrentes fonctions. Cette page affiche une bibliothque de sous-fonctions disponibles. Exemple Dans l'exemple Sybase AS IQ, vous pouvez utiliser une fonction appele DataTypeBase qui extrait le type de donnes d'un lment afin de mieux l'analyser. Cette fonction est dfinie comme suit :
Function DataTypeBase(datatype) Dim position position = InStr(datatype, "(") If position <> 0 Then DataTypeBase = Ucase(Left(datatype, position -1)) Else DataTypeBase = Ucase(datatype) End If End Function

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.

Documentation utilisateur avance

227

Dfinition d'une vrification personnalise dans un profil

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

Excution d'une vrification personnalise


Si les vrifications personnalises sont dfinies dans diffrents fichiers de ressources attachs au modle courant, toutes les sections globales sont fusionnes et toutes les fonctions pour toutes les vrifications personnalises sont ajoutes pour construire un script unique. Les erreurs potentielles dans les sections de script global provenant de diffrentes sources vont provoquer l'mission de messages d'erreur. L'utilisateur sera invit ignorer et poursuivre la vrification du modle sans les vrifications personnalises, ou abandonner le processus de vrification afin de rgler les problmes de script. La bote de dialogue Paramtres de vrification de modle affiche toutes les vrifications personnalises dfinies sur les mtaclasses, les strotypes et les critres sous les catgories correspondantes. Une vrification personnalise dfinie sur une mtaclasse abstraite s'affiche dans tous les enfants de cette mtaclasse.

228

PowerAMC

Chapitre 2

Gestion des profils

Dfinition de templates et de fichiers gnrs dans un profil


Vous dfinissez maintenant des templates et des fichiers gnrs dans un profil, pour une mtaclasse, un strotype ou un critre slectionn. Que sont les templates et les fichiers gnrs? Le langage de gnration par template (GTL, Generation Template Language) de PowerAMC permet de gnrer des morceaux de texte pour les mtaclasses. Cette gnration peut s'avrer utile pour produire du code (par exemple, du code JAVA ou C++) et des rapports (extraire des informations textuelles du modle) ou pour produire au format d'change (par exemple, au format XMI). Le GTL est utilis pour gnrer un fichier (appel fichier gnr) pour une mtaclasse donne et aussi pour gnrer du texte pour une mtaclasse qui sera incluse dans un fichier plus global gnr pour une autre mtaclasse. Ce texte est appel template. Il est constitu de texte brut, mlang des variables qui sont composes d'informations provenant du modle lui-mme. Un fichier est gnr pour chaque instance de la mtaclasse dans lequel il a t dfini. Si vous dfinissez un fichier gnr pour un strotype ou pour un critre, un fichier sera gnr pour chaque instance avec le strotype appropri ou rpondant au critre. Par exemple, si vous dfinissez un fichier gnr dans la mtaclasse du modle, un seul fichier sera gnr par modle. Toutefois, si vous dfinissez un fichier gnr dans la mtaclasse de la classe, un fichier sera gnr pour chaque classe dans le modle. Pour plus d'informations sur la syntaxe du GTL, reportez-vous au chapitre Guide de rfrence de la gnration.

Cration d'un template


La catgorie Template contient des lments de template. Vous pouvez accder aux informations dans le modle l'aide de variables. Cette information peut se prsenter sous la forme de simples attributs (par exemple, le nom d'une classe ou le type de donnes d'un attribut) ou d'une collection d'objets (par exemple, la liste des attributs d'une classe) en fonction de la mtaclasse que vous avez dfinie dans le template. Vous pouvez utiliser le mtamodle PowerAMC avec le fichier d'aide pdvbs10.chm pour visualiser les interactions entre les mtaclasses. Cela devrait galement vous aider slectionner la mtaclasse dans laquelle dfinir un template. Documentation utilisateur avance 229

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

Gestion des profils

Cration d'un fichier gnr


La catgorie Generated Files contient des entres correspondant des fichiers. Ces entres dfinissent les fichiers qui seront gnrs pour une mtaclasse donne ou pour les instances d'une mtaclasse avec un strotype ou critre slectionn. Vous utilisez le GTL pour dfinir un fichier gnr. Vous pouvez dfinir des fichiers gnrs pour toutes les mtaclasses ; toutefois, seuls les fichiers, dfinis pour des objets appartenant une collection de modle ou de package seront gnrs. Les sous-objets, par exemple les attributs, les colonnes ou les paramtres ne prennent pas en charge la gnration de fichier, mais il peut tre intressant de voir le code gnr pour ces sous-objets dans la page Aperu. Vous pouvez identifier les collections de modle ou de package dans le mtamodle PowerAMC. Pour plus d'informations sur le mtamodle PowerAMC, reportez-vous au chapitre Mtamodle public PowerAMC. Pour plus d'informations sur la syntaxe GTL, reportez-vous au chapitre Guide de rfrence de la gnration. Si une dfinition tendue de modle compltant la gnration d'un langage objet contient un nom de fichier gnr identique un nom de fichier gnr dfini dans le langage objet, le fichier gnr dfini dans la dfinition tendue de modle remplace alors le fichier gnr dans le langage objet. Proprits de fichier gnr Dans la prcdente version de PowerAMC, vous deviez dfinir un template correspondant au type de fichier gnrer. Vous pouvez maintenant diter directement le template du fichier gnrer dans la page de proprits du fichier gnr. Les proprits d'un fichier gnr sont les suivantes :
Proprit Nom Nom de fichier Description Nom de l'entre du fichier gnr dans l'diteur de ressources Nom du fichier qui sera gnr, il peut contenir des variables

Documentation utilisateur avance

231

Dfinition de templates et de fichiers gnrs dans un profil


Proprit Codage Description Format du fichier gnr, PowerAMC prend en charge plusieurs formats. Vous pouvez utiliser le bouton Points de suspension pour afficher la bote de dialogue Format de codage pour le texte en sortie dans laquelle vous pouvez slectionner un format dans une liste droulante. Dans cette bote de dialogue, la case cocher Annuler si perte de caractre permet d'arrter la gnration si cette dernire provoque la perte de caractres Informations supplmentaires relatives aux fichiers gnrs Indique que la hirarchie de packages doit tre utilise pour gnrer la hirarchie des rpertoires de fichiers Template du fichier gnrer. Vous pouvez ouvrir un diteur l'aide de l'outil Editer avec, et si vous utilisez des templates, vous pouvez utiliser l'outil de recherche pour rechercher tous les templates du mme nom (reportez-vous la section Cration d'un template)

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

Chapitre 2 4 5 6 7 Slectionnez un format de codage.

Gestion des profils

<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.

Cliquez sur Appliquer.

Documentation utilisateur avance

233

Dfinition d'une collection tendue dans un profil

Dfinition d'une collection tendue dans un profil


Une collection tendue est utilise pour dfinir un lien supplmentaire entre une mtaclasse slectionne ou un strotype d'une part et une autre mtaclasse ou une mtaclasse strotype d'autre part. Dans le mtamodle PowerAMC, les associations entre classes reprsentent des collections de mtaclasses. La cration d'une collection tendue quivaut tracer une association entre des mtaclasses dans le mtamodle. Cette fonctionnalit est utile lorsque vous souhaitez crer des collections supplmentaires sur les mtaclasses existantes, elle vous aide galement grer de nouveaux types d'objets tels que les objets tendus et les liens tendus. Pour plus d'informations sur le mtamodle PowerAMC, reportez-vous au chapitre Mtamodle public PowerAMC. Lorsque vous dfinissez une collection tendue, vous devez slectionner une mtaclasse ou un strotype dans lequel crer cette collection tendue et que nous appellerons alors mtaclasse parent. Vous devez galement dfinir une mtaclasse cible ou une mtaclasse strotype. Cette mtaclasse cible s'affiche comme une nouvelle liste d'objets dans la feuille de proprits de la mtaclasse parent. A l'inverse, la mtaclasse parent s'affiche dans la page Dpendances de la mtaclasse cible. Exemple Lorsque vous souhaitez attacher des documents contenant des spcifications de cas d'utilisation aux diffrents packages d'un modle, vous pouvez utiliser une collection tendue. Vous crez une collection tendue dans la mtaclasse package et dfinissez FileObject comme mtaclasse cible.

Proprits d'une collection tendue


Lorsque vous crez une collection tendue, vous devez slectionner la mtaclasse ou le strotype appropri dans lequel crer la collection. Le choix de cet emplacement dterminera la porte de la collection tendue. Vous devez galement dfinir les proprits suivantes :
Proprit Nom Commentaire Description Nom de la collection tendue Informations supplmentaires relatives la collection tendue

234

PowerAMC

Chapitre 2
Proprit Nom inverse Description

Gestion des profils

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).

Cration d'une collection tendue


Pour crer une collection tendue :

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.

Documentation utilisateur avance

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.

Cliquez sur Appliquer.

236

PowerAMC

Chapitre 2

Gestion des profils

Dfinition d'une mthode dans un profil


Vous pouvez ajouter des mthodes dans n'importe quelle mtaclasse PowerAMC. Les mthodes peuvent tre dfinies sur des strotypes et des critres si vous souhaitez limiter leur utilisation aux instances de mtaclasse ayant des strotypes corrects ou vrifiant certains critres. Les mthodes dfinies dans une mtaclasse parent sont hrites par les mtaclasses enfant. Une mthode contient un script qui sera excut lorsque la mthode sera appele, partir d'une commande de menu par exemple. Le script de la mthode est dfini l'aide de VBScript. Pour plus d'informations sur VBScript, reportez-vous au chapitre Manipulation des objets via VBScript dans le manuel Guide des fonctionnalits gnrales.

Proprits d'une mthode


Lorsque vous crez une mthode, vous devez slectionner la mtaclasse approprie dans laquelle la crer. Ceci dtermine la porte de la mthode. Par exemple, si vous souhaitez qu'une mthode s'applique aux classes et interfaces, vous devez la dfinir dans la mtaclasse Classifier. Lorsque vous crez une mthode, vous devez dfinir les proprits suivantes :
Proprit Nom Commentaire Description Nom de la mthode qui identifie un script Informations supplmentaires relatives la mthode

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.

Documentation utilisateur avance

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.

Cration d'une mthode


Lorsque vous crez une mthode, vous devez dfinir la fonction de la mthode dans la page Script de mthode. La page Script global est galement disponible et permet de rutiliser les fonctions et sous-procdures. Cette page est commune aux gestionnaires d'vnement et aux transformations. Vous saisissez le script d'une vrification personnalise dans la page Script de mthode de la feuille de proprits de mthode. Par dfaut, la page Script de mthode affiche les lments de script suivants : %Mthd% est le nom de la fonction, il est pass sur le paramtre obj. Ce nom est affich sous forme de variable, cette variable est une concatnation du nom du fichier de ressource, du nom de la mtaclasse courante, du nom du strotype ou critre, ainsi que du nom de la mthode elle-mme dans la page Gnral. Si l'un de ces noms contient un espace, ce dernier est remplac par un tiret bas. Un commentaire expliquant le comportement attendu du script La ligne de valeur de rsultat

238

PowerAMC

Chapitre 2

Gestion des profils

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

Pour crer une mthode :

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.

Documentation utilisateur avance

239

Dfinition d'une mthode dans un profil 5 <facultatif>> Rutilisez les fonctions stockes dans la page Script global.

Cliquez sur Appliquer.

240

PowerAMC

Chapitre 2

Gestion des profils

Dfinition des transformations dans un profil


Dans PowerAMC, une transformation dfinit un jeu d'actions excuter lors d'une gnration ou sur demande. Vous dfinissez une transformation dans la catgorie Profile d'une dfinition tendue de modle. Les transformations peuvent tre dfinies soit sur une mtaclasse soit sur un strotype ou critre slectionn. Les transformations doivent tre insres dans un profil de transformation pour pouvoir tre utilises lors de la gnration de modle ou appliques dans un modle. Pour plus d'informations sur le profil de transformations, reportez-vous la section Catgorie Transformation profile dans le chapitre Guide de rfrence des dfinitions tendues de modle. Vous dfinissez une transformation lorsque vous avez besoin :
D'un utilitaire permettant de modifier des objets dans un modle Afin d'adapter le modle des besoins spcifiques. Par exemple, vous pouvez crer une transformation dans un MOO qui convertit les classes <<control>> en composants

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

Proprits d'une transformation


Lorsque vous crez une transformation, vous devez slectionner la mtaclasse approprie dans laquelle crer cette transformation. Vous dterminez ainsi la porte de la transformation. Par exemple, si vous souhaitez qu'une transformation soit applique aux classes et interfaces, vous devez la dfinir dans la mtaclasse Classifier.

Documentation utilisateur avance

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

Gestion des profils

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.

Cration d'une transformation


Lorsque vous crez une transformation, vous devez dfinir la fonction de transformation dans la page Script de la transformation. La page Script global est galement disponible et permet de rutiliser des fonctions et sousprocdures. Par dfaut, la page Script de la transformation affiche le script suivant :
Sub %Transformation%(obj, trfm)

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

Documentation utilisateur avance

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

Chapitre 2 5 Cliquez sur Appliquer.

Gestion des profils

Mthodes helper de script pour les transformations


Les scripts de transformation ont accs des mthodes helper spciales via l'objet transformation interne. Ces mthodes sont les suivantes:
Nom CopyObject Dfinition Duplique un objet existant et dfinit une source pour l'objet dupliqu Dfinit l'objet source d'un objet gnr. Il est recommand de dfinir systmatiquement l'objet source afin de pouvoir retrouver l'origine d'un objet gnr Extrait l'objet source d'un objet gnr Extrait l'objet cible d'un objet source Paramtres source : objet dupliquer tiquette* : identificateur texte de l'objet source : objet source cible : objet cible tiquette* : identificateur texte de l'objet Renvoie Une copie du nouvel objet

SetSource

GetSource

cible : objet cible tiquette* : identificateur texte de l'objet source : objet source tiquette* : identificateur texte de l'objet

Objet source Objet cible

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.

Documentation utilisateur avance

245

Dfinition des transformations dans un profil


Si l'objet source est transform en plusieurs objets

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

Gestion des profils

Dfinition d'un gestionnaire d'vnement dans un profil


Vous pouvez faire en sorte de lancer automatiquement un script lorsqu'un vnement se produit sur un objet. Cette fonctionnalit permet d'associer du code VB Script un vnement en utilisant des gestionnaires d'vnement.

Notions de base relatives aux gestionnaires d'vnement


Vous pouvez associer un gestionnaire d'vnement une mtaclasse ou un strotype ; les critres ne prennent pas en charge les gestionnaires d'vnement. Chaque gestionnaire d'vnement est dot d'une smantique et de paramtres prdfinis. Lorsque vous associez un gestionnaire d'vnement un strotype ou une mtaclasse, le script de gestionnaire d'vnement est initialis avec les fonctions mettre en oeuvre. Par exemple, le gestionnaire d'vnement CanCreate prend comme paramtre le parent dans lequel l'objet sera cr :
Function %CanCreate%(parent) ' Implement your creation validation rule on <parent> here ' and return True in case of success %CanCreate% = True End Function

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

Gestion des profils

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.

Documentation utilisateur avance

249

Dfinition d'un gestionnaire d'vnement dans un profil

Ajout d'un gestionnaire d'vnement une mtaclasse ou un strotype


Lorsque vous ajoutez un gestionnaire d'vnement une mtaclasse ou un strotype, vous devez slectionner le type du gestionnaire d'vnement, puis dfinir le script qui sera excut lorsque l'vnement se produit.
Pour ajouter un gestionnaire d'vnement une mtaclasse ou un strotype :

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

Gestion des profils

Cliquez sur Appliquer, puis rptez l'tape prcdente pour chaque gestionnaire d'vnement.

Documentation utilisateur avance

251

Dfinition de menus dans un profil

Dfinition de menus dans un profil


Vous pouvez ajouter des menus dans l'interface de PowerAMC et les remplir avec des commandes qui appellent des fonctions de mthode ou des transformations. Les menus peuvent tre dfinis sur des strotypes et critres si vous souhaitez limiter leur utilisation aux instances de mtaclasse ayant le strotype appropri ou rpondant un critre spcifi. Vous pouvez ajouter des menus sur l'interface de votre choix. Les menus dfinis dans une mtaclasse parent sont hrits par les mtaclasses enfant. Types de menu Vous pouvez crer des menus de type contextuel qui seront appels partir d'un objet dans l'Explorateur d'objets ou partir d'un symbole dans le diagramme. Ces menus peuvent tre dfinis sur n'importe quelle mtaclasse. Vous pouvez gnraliser un menu contextuel en le dfinissant sur une mtaclasse parent telle que BaseObject. Vous avez galement la possibilit d'ajouter un sous-menu dans un menu principal existant. Ces sous-menus peuvent tre dfinis sur une mtaclasse de modle ou de diagramme. Les mtaclasses Model et Diagram supportent en fait la fois les menus contextuels et les sous-menus. Contenu du menu Un menu peut contenir des commandes, des sous-menus et des sparateurs : Une commande de menu appelle une mthode ou une transformation dfinie dans la mme mtaclasse ou dans une mtaclasse parent du menu Un sous-menu est un menu qui s'ouvre en cascade partir d'un lment de menu Un sparateur est une ligne utilise pour organiser les commandes dans un menu

Les menus dfinis sur une mtaclasse parent sont hrits par les mtaclasses enfant.

252

PowerAMC

Chapitre 2

Gestion des profils

Proprits d'un menu


Lorsque vous crez un menu, vous devez dfinir les proprits suivantes :
Proprit Nom Description Nom du menu qui va apparatre dans l'interface PowerAMC. Vous pouvez dfinir une touche de raccourci dans l'entre de menu en ajoutant une perlute immdiatement avant le caractre utiliser comme touche de raccourci, cette lettre sera souligne dans le menu Informations supplmentaires relatives au menu Liste des emplacements o la nouvelle entre de menu doit s'afficher. Cette liste est disponible uniquement si la mtaclasse slectionne est Model ou Diagram. Dans le cas des mtaclasses d'objet, la valeur unique est Menu contextuel de l'objet, et donc cache Zone de cration du menu, vous pouvez utiliser des outils pour faciliter l'ajout de commandes, de menus contextuels et de sparateurs de menu dans le nouveau menu Rsum XML de ce qui est dfini dans la page Menu

Commentaire Emplacement

Page Menu

Page XML

Outils de la page Menu

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

Documentation utilisateur avance

253

Dfinition de menus dans un profil


Outil Fonction Supprime l'lment slectionn dans l'arborescence de menu

Ajout d'une commande

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.

Cration d'un menu


Vous pouvez crer des menus contextuels qui s'affichent lorsque vous pointez sur un noeud dans l'Explorateur d'objets ou un symbole dans le diagramme et cliquer le bouton droit de la souris. Les menus contextuels peuvent tre dfinis sur n'importe quelle mtaclasse. Vous pouvez crer des sous-menus dans une mtaclasse de modle ou de diagramme afin d'ajouter des sous-menus aux menus PowerAMC suivants : FichierExporter Outils Aide

Pour crer un menu :

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

Gestion des profils

<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.

Editez le libell pour l'adapter l'interface.

Rappel

Les mthodes ou transformations de commande ne sont pas synchronises avec la dfinition de mthode ou de transformation. 8 Cliquez sur Appliquer.

Documentation utilisateur avance

255

Utilisation de profils : une tude de cas

Utilisation de profils : une tude de cas


Pour illustrer le concept de profil, vous allez construire une dfinition tendue du modle pour un MOO. Cette extension de modle vous permet de concevoir un diagramme robustness. Diagramme Robustness Le diagramme robustness est utilis pour combler le vide existant entre ce que le systme doit faire et comment il va s'y prendre pour accomplir sa tche. Dans l'analyse UML, le diagramme robustness se trouve entre les diagrammes de cas d'utilisation et le diagramme de squence. Il permet de vrifier que le cas d'utilisation est correct et de vous assurer que vous n'avez pas spcifi un comportement de systme draisonnable compte tenu du jeu d'objets disponibles. Le diagramme robustness permet galement de vrifier qu'aucun objet ne manque dans le modle. Vous allez construire un diagramme robustness l'aide du diagramme de collaboration dans le MOO, avec une dfinition tendue de modle contenant un profil utilisateur. Ce profil comporte les extensions suivantes : Strotypes pour objets Outils personnaliss et symbole pour chaque strotype d'objet Vrifications personnalises pour les liens d'instance Fichier gnr pour produire une description des messages changs entre objets

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

Gestion des profils

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.

Attachement d'une nouvelle dfinition tendue de modle au modle


Dans votre espace de travail, vous avez dj cr un MOO avec un diagramme de cas d'utilisation contenant un acteur et trois cas d'utilisation. Vous devez crer une nouvelle dfinition tendue de modle et l'importer dans le modle courant avant de commencer la dfinition du profil.

Documentation utilisateur avance

257

Utilisation de profils : une tude de cas

Pour attacher une dfinition tendue de modle au modle :

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.

Cliquez sur Enregistrer. L'diteur de dfinition tendue de modle s'affiche.

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

Cliquez sur OK pour fermer l'diteur de dfinition tendue de modle.


PowerAMC

Chapitre 2 9

Gestion des profils

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.

Documentation utilisateur avance

259

Utilisation de profils : une tude de cas

Cration de strotypes d'objet


Le modle robustness analysis classifie les objets dans trois catgories : Objets Boundary qui sont utiliss par les acteurs lorsqu'ils communiquent avec le systme, il peut s'agit de fentres, d'crans, de botes de dialogue ou de menus Objets Entity qui reprsentent des donnes stockes telles qu'une base de donnes, des tables de base de donnes ou tout type d'objet temporaire tel qu'un rsultat de recherche Objets Control qui sont utiliss pour contrler les objets Interface et Entit, et qui reprsentent un transfert d'informations

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

Gestion des profils

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.

Documentation utilisateur avance

261

Utilisation de profils : une tude de cas 9 Cliquez sur OK.

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 :

13 Cliquez sur le bouton droit de la souris pour librer l'outil.

Dfinition de symboles personnaliss pour les strotypes


Vous allez dfinir un symbole personnalis pour les entres de UMLObject associes au strotypes Boundary, Control ou Entity. La fonctionnalit de symbole personnalis permet d'appliquer les graphiques du diagramme robustness dans votre diagramme de collaboration.
Pour dfinir des strotypes personnaliss pour les strotypes :

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.

Cliquez sur le bouton Modifier. La bote de dialogue Format de symbole s'affiche.

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

Gestion des profils

Slectionnez Boundary Object dans la liste droulante liste droulante Nom de la forme.

Cliquez sur OK. Le symbole personnalis s'affiche dans la zone Exemple.

Documentation utilisateur avance

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 :

11 Dans le diagramme de collaboration, crez un objet correspondant chaque strotype.

264

PowerAMC

Chapitre 2

Gestion des profils

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

Documentation utilisateur avance

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.

Cration de liens entre objets et de messages entre objets


Vous allez crer des liens entre objets afin d'exprimer la collaboration entre ces objets :
Source Client Explorateur Internet Serveur d'applications Destination Explorateur Internet Serveur d'applications Serveur de bases de donnes

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

Gestion des profils


Numro d'ordre 5 6

Direction Serveur d'applications - Explorateur Internet Explorateur Internet - Client

Nom du message Renvoie valeur de serv app Renvoie valeur

Cration de vrifications personnalises sur les liens d'instance


L'analyse Robustness implique certaines rgles relatives au comportement entre les objets. Par exemple, un acteur doit toujours communiquer avec un objet Boundary (une interface), les objets Entity doivent toujours communiquer avec les objets Control, etc. Pour reprsenter ces contraintes, vous allez dfinir des vrifications personnalises sur les liens entre objets. Les vrifications personnalises n'empchent pas les utilisateurs de se livrer des actions incorrectes du point de vue de la syntaxe, mais leur permet de dfinir des rgles qui seront vrifies par la fonctionnalit de vrification de modle. Vous pouvez dfinir des vrifications personnalises l'aide de VB Scripting.

Documentation utilisateur avance

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

Chapitre 2 9 Cochez la case Excuter la vrification par dfaut.

Gestion des profils

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

Documentation utilisateur avance

269

Utilisation de profils : une tude de cas


%Check% = False End If End If End Function

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

Gestion des profils

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

Message de rsultats Svrit par dfaut Excuter la vrification par dfaut

15 Saisissez la vrification suivante dans la page Script de vrification :


Function %Check%(link) ' La valeur par dfaut est 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 ' Erreur si les deux extrmits sont des objets 'Boundary' If CompareStrotype(src, PdMOO.Cls_UMLObject, "Boundary") Then If CompareStrotype(dst, PdMOO.Cls_UMLObject, "Boundary") Then %Check% = False End If End If End Function

Documentation utilisateur avance

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

Message de rsultats Svrit par dfaut Excuter la vrification par dfaut

17 Saisissez la vrification suivante dans la page Script de vrification :


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 objet UML avec le strotype "Entity" ? ' Appelle la fonction globale CompareStrotype() dfinie dans le volet Script global If CompareStrotype(src, PdMOO.Cls_UMLObject, "Entity") Then ' Vrifie si la destination est un objet UML avec le strotype "Control" If not CompareStrotype(dst, PdMOO.Cls_UMLObject, "Control") Then %Check% = False End If Elsif CompareStrotype(dst, PdMOO.Cls_UMLObject, "Entity") Then ' Vrifie si la source est un objet UML avec le strotype "Control" If not CompareStrotype(src, PdMOO.Cls_UMLObject, "Control") Then %Check% = False End If End If End Function

272

PowerAMC

Chapitre 2 18 Cliquez sur Appliquer.

Gestion des profils

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.

Documentation utilisateur avance

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.

Gnration d'une description sous forme de texte des messages


Vous allez gnrer une description sous forme de texte des messages qui existent dans le diagramme de collaboration. La description doit fournir, pour chaque diagramme du modle, le nom de l'metteur du message, le nom du message et le nom de son rcepteur. Vous gnrez cette description l'aide de templates et de fichiers gnrs, car par dfaut PowerAMC ne fournit pas cette fonctionnalit. Les templates et fichiers gnrs utilisent le langage de gnration par templates (GTL) de PowerAMC. Les fichiers gnrs valuent les templates dfinis sur les mtaclasses et gnrent le rsultat de l'valuation dans des fichiers. Pour plus d'informations sur GTL, reportez-vous au chapitre Guide de rfrence de la gnration. Quel template dfinir et o le dfinir ? Pour gnrer une description des messages d'un diagramme de collaboration sous forme de texte, vous devez dfinir des templates sur les mtaclasses suivantes : Message : cette mtaclasse contient des dtails relatifs au numro d'ordre du message et au nom de ce message, l'metteur et au rcepteur, ce qui explique que vous dfinissez un template afin d'valuer le numro d'ordre et la description du message dans cette mtaclasse CollaborationDiagram : vous dfinissez dans cette mtaclasse les templates qui vont trier les messages dans le diagramme et rassembler toutes les descriptions de message partir du diagramme courant

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

Gestion des profils

Dfinition d'un template pour la gnration


Un fichier gnr utilise des templates dfinis dans des mtaclasses. Le premier template que vous devez dfinir porte sur les messages. Le rle de ce template est d'valuer le numro d'ordre de message et de fournir le nom de l'metteur, le nom du message et le nom du rcepteur pour chaque message dans le diagramme. La syntaxe pour ce template est la suivante :
.set_value(_tabs, "", new) .foreach_part(%SequenceNumber%, '.') .set_value(_tabs, " %_tabs%") .next %_tabs%%SequenceNumber%) %Sender.ShortDescription% sends message "%Name%" to %Receiver.ShortDescription%

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.

Documentation utilisateur avance

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%

Cliquez sur Appliquer.

Dfinition des templates pour la mtaclasse du diagramme de collaboration


Une fois que vous avez dfini le template utilis pour valuer le numro d'ordre de chaque message, vous devez crer un template pour trier ces numros d'ordre (compareCbMsgSymbols), ainsi qu'un autre template pour extraire tous les messages du diagramme de collaboration (description). Le template compareCbMsgSymbols est de type boolen et permet de vrifier si le numro de message est suprieur un autre numro de message. La syntaxe de ce template est la suivante :
.bool (%Item1.Object.SequenceNumber% >= %Item2.Object.SequenceNumber%)

276

PowerAMC

Chapitre 2

Gestion des profils

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.

Documentation utilisateur avance

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)

13 Cliquez sur Appliquer.

Dfinition d'un fichier gnr


Vous allez dfinir un fichier gnr afin de rpertorier les messages de chaque diagramme de collaboration existant dans votre modle. Pour ce faire, vous devez dfinir le fichier gnr dans la mtaclasse BasePackage. Cette mtaclasse est la classe commune pour tous les packages et modles, elle possde les objets, diagrammes et autres packages. Le fichier gnr contiendra le rsultat de l'valuation de la description du template dfinie sur la mtaclasse CollaborationDiagram. Le code du fichier gnr contient galement une macro foreach_item macro afin de boucler sur les diffrents diagrammes de collaboration du modle.

278

PowerAMC

Chapitre 2
Pour dfinir un fichier gnr :

Gestion des profils

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.

Documentation utilisateur avance

279

Utilisation de profils : une tude de cas

10 Saisissez le code suivant dans la zone de texte :


.foreach_item(CollaborationDiagrams) %description% .next(\n\n)

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.

Aperu de la description sous forme de texte du diagramme de collaboration


Puisque le fichier gnr est dfini dans la mtaclasse BasePackage, vous pouvez afficher un aperu du texte gnr dans la page Aperu de la feuille de proprits du modle. Vous pouvez galement en profiter pour vrifier que la syntaxe des templates et que ce que vous allez gnrer correspondent vos attentes.
Pour afficher un aperu de la description sous forme de texte du diagramme de collaboration :

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.

Cliquez sur l'onglet Aperu pour afficher la page correspondante.

280

PowerAMC

Chapitre 2

Gestion des profils

La page Aperu affiche le contenu du fichier gnrer.

Cliquez sur OK.

Documentation utilisateur avance

281

Utilisation de profils : une tude de cas

282

PowerAMC

C H A P I T R E

Guide de rfrence du langage objet

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.

Documentation utilisateur avance

283

Prsentation du langage objet

Prsentation du langage objet


Vous pouvez utiliser de nombreux langages objet diffrents dans un MOO. Pour chaque langage objet, un fichier de dfinition standard est inclus qui fournit une interface entre PowerAMC et le langage objet afin d'tablir les meilleures relations entre eux.
Attention

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

Guide de rfrence du langage objet

Notions de base relatives l'diteur de langage objet


Vous utilisez l'diteur de langage pour consulter ou modifier un langage objet (fichier .XOL).
Pour afficher l'diteur de langage :

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.

Documentation utilisateur avance

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.

Proprits d'un langage objet


L'diteur de langage objet contient les catgories suivantes, qui incluent des proprits spcifiques chaque langage pris en charge :
Catgorie Settings Description Contient des types de donnes, des constantes, des conventions de dnomination et des catgories d'vnements utiliss dans le MOO Contient des objets de gnration avec des options et des scripts de commandes dfinis dans le fichier .XOL Permet de crer des profils contenant des transformations utilises au cours de la gnration de modle ou appliques dans un modle Contient des templates, des strotypes, des attributs tendus pour la gnration

Generation Profil de transformations Profile

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

Guide de rfrence du langage objet

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.

Sous-famille Java EJB

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.

Documentation utilisateur avance

287

Notions de base relatives l'diteur de langage objet

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

Catgorie Data types


La catgorie Data types (types de donnes) montre la correspondance entre les types de donnes internes et ceux du langage objet. Les types de donnes suivants sont dfinis par dfaut :
Constante BasicDataTypes Valeur par dfaut Types de donnes de base de langage objet. La colonne Valeur indique le type de donnes conceptuel utilis pour la gnration de MCD et de MPD. BasicDataTypes reprsente les types de donnes les plus utiliss La colonne Valeur indique le type de donnes de langage objet 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 supplmentaires ajouts dans les listes de types de donnes. La colonne Valeur indique le type de donnes conceptuel utilis pour la gnration des modles MCD et MPD. Peut tre utilis pour ajouter ou modifier vos propres types de donnes Valeur de type de donnes slectionne par dfaut

ConceptualDataTypes

AdditionalDataTypes

DefaultDataType

288

PowerAMC

Chapitre 3

Guide de rfrence du langage objet

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.

Documentation utilisateur avance

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

Guide de rfrence du langage objet

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

Guide de rfrence 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.

Cliquez sur Appliquer.

292

PowerAMC

Chapitre 3

Guide de rfrence du langage objet

Explication du code des commandes

Suppression d'une commande de gnration

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.

Documentation utilisateur avance

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.

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.

<facultatif>> Double-cliquez sur la flche au dbut de la ligne pour afficher le code de la commande.
PowerAMC

294

Chapitre 3 7 Exemple Cliquez sur Appliquer.

Guide de rfrence du langage objet

Ouvrez le langage objet Java (LangageEditer le langage objet courant), crez et dfinissez une entre de commande nomme DoCommand dans la catgorie Generation\Commands :

Documentation utilisateur avance

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

Guide de rfrence du langage objet

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

Documentation utilisateur avance

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

Guide de rfrence du langage objet

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.

Documentation utilisateur avance

299

Notions de base relatives l'diteur de langage objet

Catgorie Transformation profile


Un profil de transformation est un groupe de transformations utilis au cours d'une gnration de modle ou lorsque vous souhaitez appliquer des modifications certains objets dans les modles source ou cible. Vous dfinissez un profil de transformation dans la catgorie Transformation Profiles d'une dfinition tendue de modle, d'un langage objet, d'un SGBD, ou d'un langage de processus. 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. Pour plus d'informations sur les transformations, reportez-vous au chapitre Gestion des transformations, dans le Guide des Fonctionnalits Gnrales.

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

Guide de rfrence du langage objet

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.

Documentation utilisateur avance

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.

Catgorie Extended attributes


Les attributs tendus dfinis pour un objet sont crs en plus des attributs standard. Les noms d'attributs tendus peuvent tre utiliss en tant que variables dans les scripts dfinis dans le langage objet. Chaque attribut tendu peut tre ncessaire pendant la gnration, c'est pourquoi nous vous dconseillons de les modifier. Il est prfrable de crer une copie de sauvegarde pour chaque langage objet avant de commencer les modifier. Par dfaut, les valeurs d'attributs tendus que vous dfinissez dans le langage objet s'affichent dans la page Attributs tendus de la feuille de proprits de l'objet. Pour plus d'informations sur les attributs tendus, reportez-vous la section Dfinition d'attributs tendus dans un profil, dans le chapitre Gestion des profils. Si vous souhaitez complter la dfinition des objets de modle et tendre le mtamodle, vous devez dfinir des attributs tendus dans une dfinition tendue de modle. De tels attributs tendus ne sont alors pas utiliss lors du processus de gnration. Pour plus d'informations sur les dfinitions tendues de modle, reportez-vous la section Gestion des dfinitions tendues de modle, dans le chapitre Gestion des objets, dans le manuel Guide des fonctionnalits gnrales.

302

PowerAMC

Chapitre 3

Guide de rfrence du langage objet

Exemple

Dans le langage objet C#, l'attribut tendu virtual est utilis pour identifier l'opration :

Catgorie Generated Files


Certains objets de la catgorie Profile incluent une entre Generated Files qui contient une liste de fichiers. Ces entres dfinissent les fichiers qui seront gnrs pour une mtaclasse donne ou pour les instances d'une mtaclasse ayant un strotype ou correspondant un critre slectionn. Exemple La catgorie Generated Files pour les objets fichiers dans Java contient l'entre EmbeddedArtifact qui s'applique tous les fichiers incorpors de type Artifact gnrer. L'entre EmbeddedArtifact contient la zone Nom de fichier qui contient le template pour le nom des fichiers gnrer.

Documentation utilisateur avance

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

Guide de rfrence du langage objet

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

Documentation utilisateur avance

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

Guide de rfrence du langage objet

Dans cet exemple, un fichier appel ejb-jar.xml situ dans le dossier METAINF est gnr.

Aucun fichier 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).

Documentation utilisateur avance

307

Notions de base relatives l'diteur de langage objet

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

Guide de rfrence du langage objet

Utilisation de la touche F12 pour trouver des templates

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.

Documentation utilisateur avance

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

Guide de rfrence du langage de processus

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.

Documentation utilisateur avance

311

Prsentation du langage de processus

Prsentation du langage de processus


Vous pouvez utiliser de nombreux langages de processus diffrents dans un MPM. Pour chaque langage de processus, un fichier de dfinition standard est inclus et fournit une interface entre PowerAMC et le langage de processus afin d'tablir les meilleures relations possibles entre eux.
Attention

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

Guide de rfrence du langage de processus

Exemples de langage de processus

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.

Documentation utilisateur avance

313

Notions de base relatives l'diteur de langage de processus

Notions de base relatives l'diteur de langage de processus


Vous utilisez l'diteur de langage pour consulter ou modifier un langage de processus (fichier .XPL).
Pour afficher l'diteur de langage :

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

Guide de rfrence du langage de processus

Proprits d'un langage de processus


L'diteur de langage de processus contient les catgories suivantes, qui incluent des proprits spcifiques chaque langage pris en charge :
Catgorie Settings Description Contient des types de donnes, des constantes, des conventions de dnomination et des catgories d'vnements utiliss dans le MPM Contient des objets de gnration avec des options et des scripts de commandes dfinis dans le fichier .XPL Contient des templates, des strotypes, des attributs tendus pour la gnration Contient un groupe de transformations utilises lors de la gnration de modle

Generation Profile Transformation profile

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

Documentation utilisateur avance

315

Notions de base relatives l'diteur de langage de processus

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

Guide de rfrence 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.

316

PowerAMC

Chapter 4

Guide de rfrence du langage de processus

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.

Documentation utilisateur avance

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.

Cliquez sur Appliquer.


Suppression d'une commande de gnration

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

Guide de rfrence du langage de processus

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.

Documentation utilisateur avance

319

Notions de base relatives l'diteur de langage de processus

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

Guide de rfrence du langage de processus

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.

Documentation utilisateur avance

321

Notions de base relatives l'diteur de langage de processus

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

Guide de rfrence du langage de processus

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 :

Documentation utilisateur avance

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

Guide de rfrence du langage de processus

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

Documentation utilisateur avance

325

Notions de base relatives l'diteur de langage de processus


Constante AutomaticInvokeMode Valeur par dfaut Ce paramtre indique si le type d'action d'un processus mis en oeuvre par une opration peut tre automatiquement dduit du type d'opration. Les valeurs possibles sont les suivantes :

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

Guide de rfrence du langage de processus

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

Documentation utilisateur avance

327

Notions de base relatives l'diteur de langage de processus

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.

Catgorie Transformation profile


Un profil de transformation est un groupe de transformations utilis au cours d'une gnration de modle ou lorsque vous souhaitez appliquer des modifications certains objets dans les modles source ou cible. Vous dfinissez un profil de transformation dans la catgorie Transformation Profiles d'une dfinition tendue de modle, d'un langage objet, d'un SGBD, ou d'un langage de processus. 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. Pour plus d'informations sur les transformations, reportez-vous au chapitre Gestion des transformations, dans le Guide des Fonctionnalits Gnrales.

328

PowerAMC

C H A P I T R E

Guide de rfrence du langage XML

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.

Documentation utilisateur avance

329

Prsentation du langage XML

Prsentation du langage XML


Vous pouvez utiliser de nombreux langages XML diffrents dans un modle XML. Pour chaque langage XML, un fichier de dfinition standard est inclus qui fournit une interface entre PowerAMC et le langage XML afin d'tablir les meilleures relations entre eux.
Attention

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

Chapitre 5 Guide de rfrence du langage XML

Notions de base relatives l'diteur de langage XML


Vous utilisez l'diteur de langage XML pour consulter ou modifier un langage XML (fichier .XPL).
Pour afficher l'diteur de langage XML :

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.

Documentation utilisateur avance

331

Notions de base relatives l'diteur de langage XML

Proprits d'un langage XML


L'diteur de langage XML contient les catgories suivantes, qui incluent des proprits spcifiques chaque langage pris en charge :
Catgorie Settings Generation Profile Transformation profile Description Contient des tables de conversion de types de donnes Contient des options de gnration, des tches et des scripts de commande dfinis dans le fichier .XPL Contient des templates, des strotypes, des attributs tendus pour la gnration Contient un groupe de transformations utilis lors de la gnration de modle

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

Chapitre 5 Guide de rfrence du langage XML

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

Guide de rfrence 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

Chapitre 5 Guide de rfrence du langage XML

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.

Documentation utilisateur avance

335

Notions de base relatives l'diteur de langage XML

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 :

Documentation utilisateur avance

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.

Suppression d'une option de gnration

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

Chapitre 5 Guide de rfrence du langage XML

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.

Catgorie Transformation profile


Un profil de transformation est un groupe de transformations utilis au cours d'une gnration de modle, lorsque vous souhaitez appliquer des modifications certains objets dans les modles source ou cible. Pour plus d'informations sur les transformations, reportez-vous au chapitre Gestion des transformations, dans le Guide des Fonctionnalits Gnrales.
Documentation utilisateur avance

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

Guide de rfrence des dfinitions tendues de modle

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

Documentation utilisateur avance

341

Gestion des dfinitions tendues de modle

Gestion des dfinitions tendues de modle


Les dfinitions tendues de modle permettent de personnaliser et d'tendre les mtaclasses et les paramtres de gnration PowerAMC.
Attention

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

Guide de rfrence des dfinitions tendues de modle

Que contient une dfinition tendue de modle ?

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.

Comment utiliser les dfinitions tendues de modle ?

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

Cration d'une dfinition tendue de modle


Lorsque vous crez une nouvelle dfinition tendue de modle, vous pouvez choisir de : Crer un fichier de dfinition tendue de modle gnrique rutiliser entre les modles Crer une dfinition tendue de modle spcifique, adapte aux besoins d'un modle particulier

La procdure de cration diffre selon le type de dfinition tendue de modle que vous souhaitez crer.

Documentation utilisateur avance

343

Gestion des dfinitions tendues de modle

Cration d'une dfinition tendue de modle gnrique


Vous pouvez crer des dfinitions tendues de modle gnriques pour partager des informations entre diffrents modles de mme type.
Pour crer une dfinition tendue de modle gnrique :

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

Guide de rfrence des dfinitions tendues de modle

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.

Dfinissez la dfinition tendue de modle.

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.

Documentation utilisateur avance

345

Gestion des dfinitions tendues de modle 11 Cliquez sur Fermer.


Importation d'un fichier de dfinition tendue de modle

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.

Cration d'une dfinition tendue de modle spcifique pour un modle


Vous pouvez crer une dfinition tendue de modle adapte un modle particulier, dans ce cas, il a le mme type que le modle courant.
Pour crer une dfinition tendue de modle spcifique pour 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

Guide de rfrence des dfinitions tendues de modle

La bote de dialogue Proprits de la dfinition tendue de modle s'affiche.

6 7

Dfinissez la dfinition tendue de modle. Cliquez sur OK. Vous revenez la bote de dialogue Liste des dfinitions tendues de modle.

Cliquez sur OK.


Exportation d'une dfinition tendue 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.

Documentation utilisateur avance

347

Gestion des dfinitions tendues de modle

Importation d'attributs tendus depuis les versions antrieures


Vous pouvez importer dans la version courante de PowerAMC les attributs tendus dfinis dans une version antrieure. Le processus d'importation transfre la plupart des attributs tendus contenus dans un modle ou dans un fichier EXA vers une dfinition tendue de modle. Vous pouvez importer des attributs tendus de l'une des faons suivantes : En ouvrant un modle comportant des attributs tendus et qui a t enregistr avec une version antrieure de PowerAMC En ouvrant un fichier ayant pour suffixe .EXA

Importation d'attributs tendus de modle depuis une version antrieure


Lorsque vous ouvrez un modle enregistr avec PowerAMC version 5 ou 6, et que ce modle contient des attributs tendus, ces derniers sont automatiquement imports dans une dfinition tendue de modle spcifique incorpore au modle import. Si vous ouvrez un modle comportant des attributs tendus PowerBuilder, la dfinition tendue de modle PowerBuilder est automatiquement attache au modle import. Pour plus d'informations sur l'importation d'attributs tendus PowerBuilder, reportez-vous la section Importation de modles contenant des attributs tendus PowerBuilder crs dans une version antrieure dans le chapitre Gestion des modles physiques de donnes dans le manuel Guide de l'utilisateur du MPD.
Pour importer des attributs tendus de modle depuis une version prcdente :

1 2

Ouvrez un modle enregistr l'aide d'une version antrieure de PowerAMC. Slectionnez ModleDfinitions tendues de modle.

348

PowerAMC

Chapitre 6

Guide de rfrence des dfinitions tendues de modle

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.

Importation d'attributs tendus partir d'un fichier .EXA


Vous pouvez importer un fichier d'attribut tendu (suffixe .EXA) dans une dfinition tendue de modle gnrique, disponible pour tous les modles d'un mme type. Vous pouvez ainsi rcuprer les attributs tendus dfinis dans une version antrieure de PowerAMC.
Pour importer les attributs tendus partir d'un fichier .EXA :

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.

Documentation utilisateur avance

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.

Importation d'une dfinition tendue de modle dans un modle


Vous pouvez importer un fichier de dfinition tendue de modle gnrique dans votre modle courant. Lorsque vous importez une dfinition tendue de modle existante, vous rutilisez le profil et les paramtres de gnration dfinis dans une bibliothque disponible sur votre machine. Lorsque vous importez une dfinition tendue de modle, vous l'attachez au modle. Vous pouvez choisir l'une des options d'importation suivantes :
Option d'importation Partage : Utiliser des dfinitions tendues de modle partages Description Vous utilisez une version partage de la dfinition tendue de modle. Cette dfinition est partage par tous les modles, voire par tous les utilisateurs d'une quipe de conception. Toute modification dans les proprits de la dfinition tendue de modle sont appliques tous les modles qui partagent la dfinition tendue de modle Vous crez une copie de la dfinition tendue de modle dans le modle. Vous pouvez modifier cette dfinition dans votre modle. Toute modification apporte aux proprits de la dfinition tendue de modle n'est applique qu'au seul modle courant

Copie : Crer une copie des dfinitions tendues slectionnes

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

Guide de rfrence des dfinitions tendues de modle

Pour importer 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.

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.

Exportation d'une dfinition tendue de modle


Vous pouvez exporter une dfinition tendue de modle cre dans un modle si vous souhaitez partager cette dfinition avec d'autres modles. L'exportation permet de crer un fichier ayant le suffixe .XEM qui sera stock dans votre rpertoire de bibliothques de dfinitions tendues de modle. Lorsque vous exportez une dfinition tendue de modle, la dfinition tendue de modle spcifique reste incorpore dans le modle.

Documentation utilisateur avance

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

Guide de rfrence des dfinitions tendues de modle

Utilisation des dfinitions tendues de modle


Vous utilisez les dfinitions tendues de modle pour : Editeur de dfinitions tendues de modle Etendre le mtamodle PowerAMC et dvelopper la dfinition des mtaclasses l'aide des profils Complter les cibles et commandes de gnration d'un langage objet Gnrer pour une dfinition tendue de modle

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.

Documentation utilisateur avance

353

Utilisation des dfinitions tendues de modle

Proprits d'une dfinition tendue de modle


Une dfinition tendue de modle a une feuille de proprits qui s'affiche lorsque vous cliquez sur le noeud racine dans l'arborescence. Les proprits suivantes sont dfinies :
Proprit Nom Description Nom de la dfinition tendue de modle. Ce nom doit tre unique dans un modle dans le cas des dfinitions tendues de modle gnriques ou spcifiques Code de la dfinition tendue de modle. Ce code doit tre unique dans un modle pour les dfinitions tendues de modle gnriques ou spcifiques Chemin et nom du fichier de la dfinition tendue de modle. Cette zone est renseigne lorsque la dfinition tendue de modle est partage. Si la dfinition tendue de modle est une copie, la zone est vide. Vous ne pouvez pas modifier le contenu de cette zone Utilis pour classifier une dfinition tendue de modle. La famille est conue pour aider tablir un lien entre le langage objet d'un MOO et une dfinition tendue de modle. Lorsque la famille de langage objet correspond la famille de la dfinition tendue de modle, suggre que la dfinition tendue de modle peut tre utilise pour complter le langage objet. Par exemple, lorsqu'une dfinition tendue de modle a comme famille JAVA, elle a t conue pour fonctionner avec le langage objet JAVA. Cette fonctionnalit n'est disponible que pour le MOO Utiliser pour affiner la famille. Par exemple, EJB 2.0 est une sous-famille de Java Utilis pour lier la dfinition tendue de modle au langage objet courant. Si la case Rattachement automatique est coche, la dfinition tendue de modle correspondante sera slectionne dans la page Dfinitions tendues de modle de la bote de dialogue Nouveau modle Utilis pour regrouper des dfinitions tendues de modle concurrentes pour la gnration. Par exemple, une catgorie appele "Serveurs d'applications" peut tre cre pour regrouper des dfinitions tendues de modle ddies aux diffrents serveurs. Les dfinitions tendues de modle de mme catgorie ne peuvent pas tre gnres simultanment Lorsque cette option est slectionne, affiche les templates de gnration utiliss pour le texte gnr dans la page Aperu d'une feuille de proprits d'objet PowerAMC

Code

Nom de fichier

Famille

Sous-famille Rattachement automatique

Catgorie

Activer le suivi

354

Chapitre 6
Proprit Complter la gnration de langage Commentaire

Guide de rfrence des dfinitions tendues de modle


Description Indique que la dfinition tendue de modle est utilise pour complter la gnration d'un langage objet. Voir la section ci-aprs Commentaires relatifs la dfinition tendue de modle

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.

Documentation utilisateur avance

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.

Complment de la gnration de langage


Les dfinitions tendues de modle peuvent tre utilises pour tendre la gnration ou pour complter la gnration d'un langage objet. Dans le dernier cas, la case Complter la gnration de langage doit tre coche pour autoriser la gnration de la dfinition tendue de modle avec le langage objet.
Langage objet PowerBuilder

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

Guide de rfrence des dfinitions tendues de modle

Catgorie Transformation profile


Un profil de transformation est un groupe de transformations utilis lors de la gnration de modle lorsque vous souhaitez appliquer des changements des objets contenus dans le modle source ou cible. Pour plus d'informations sur les transformations, reportez-vous au chapitre Gestion des transformations, dans le manuel Guide des fonctionnalits gnrales. Vous dfinissez un profil de transformation d'une dfinition tendue de modle, d'un langage objet, d'un SGBD ou d'un langage de processus. Chaque processus est identifi par le modle dans lequel le fichier de ressources courant est dfini, par un type de modle, par une famille et une sous-famille.

Proprits d'un profil de transformation


Les proprits d'un profil de transformation sont les suivantes :
Proprits Nom Commentaire Type de modle Description Nom du profil de transformation Informations supplmentaires relatives au profil de transformation Spcifie le type de modle avec lequel le profil de transformation peut tre utilis. Permet de filtrer les profils lors de la gnration. Par exemple, si vous slectionnez MOO alors que la dfinition tendue de modle courante est celle d'un MPD, le profil de transformation peut tre utilis lors de la gnration d'un MPD vers un MOO (ou depuis un MOO vers un MPD) Si le type de modle prend en charge un fichier de ressource cible, vous pouvez galement dfinir une famille et une sousfamille pour filtrer l'affichage des profils dans la bote de dialogue de gnration. La famille est utilise pour tablir un lien entre le fichier de ressources d'un modle et une dfinition tendue de modle. Lorsque la famille du fichier de ressources correspond la famille de la dfinition tendue de modle, cela suggre que la dfinition tendue de modle complte le fichier de ressources

Famille et Sousfamille

Les profils de transformation affichent deux listes de transformations ordonnes.

Documentation utilisateur avance

357

Utilisation des dfinitions tendues de modle

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.

Cration d'un profil de transformation


Par dfaut, la catgorie Transformation Profile ne s'affiche pas dans l'arborescence de la dfinition tendue de modle. Vous pouvez crer plusieurs profils de transformation dans la mme dfinition tendue de modle : chaque profil correspondant un scnario de gnration spcifique ; par exemple lorsque le MCD est la source et que la cible est un MPD, etc.
Transformations

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

Guide de rfrence des dfinitions tendues de modle

Pour crer un profil de transformation :

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

Documentation utilisateur avance

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

Guide de rfrence des dfinitions tendues de modle

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):

Cration d'une commande

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.

Documentation utilisateur avance

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.

5 Cration d'une tche

Cliquez sur Appliquer.

Pour crer une tche :

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

Guide de rfrence des dfinitions tendues de modle

Utilisez les flches situes sous la liste pour dfinir l'ordre des commandes.

Cliquez sur Appliquer.

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

Documentation utilisateur avance

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

Guide de rfrence des dfinitions tendues de modle

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.

Documentation utilisateur avance

365

Gnration pour une dfinition tendue de modle

Gnration pour une dfinition tendue de modle


Vous attachez une dfinition tendue de modle un modle afin de : Complter la gnration principale Complter la gnration principale du modle Gnrer pour une cible spare

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

Page Options Page Tches

Gnrer pour une cible spare

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

Guide de rfrence de la gnration

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

Documentation utilisateur avance

367

Dfinition du langage de gnration par template (GTL)

Dfinition du langage de gnration par template (GTL)


Vous avez la possibilit de dfinir vos propres prfrences de gnration dans un langage objet (fichier .XOL) ou bien dans une dfinition tendue de modle (fichier .XEM) et personnaliser ainsi le processus de gnration en utilisant le langage de gnration par template (GTL). Le langage de gnration par template est un langage bas sur des templates utiliss par PowerAMC pour la gnration de texte. Ce langage vous permet une meilleure adaptation et un contrle total de la gnration car la logique de gnration est entirement contenue dans le langage objet ou la dfinition tendue de modle que vous avez la possibilit d'diter. En outre, il vous permet d'ajouter facilement des modules de gnration de code supplmentaires adapts vos besoins. Prsentation du processus Le langage de gnration par template permet de gnrer du texte pour chaque objet (appel mtaclasse) contenu dans un modle. Ce type de gnration peut permettre de produire du code, gnrer des rapports (extraire de l'information textuelle du modle) ou produire un format tel que XMI permettant l'change avec d'autres applications. Vous pouvez gnrer un fichier par mtaclasse (par exemple, une classe dans un MOO ou une table dans un MPD), mais vous pouvez galement gnrer du texte pour une mtaclasse qui sera inclus dans un fichier plus global gnr pour un autre objet. Ce fragment de texte est appel template. Il se compose de texte ml de variables qui correspondent des donnes provenant du modle. Vous pouvez accder n'importe quelle information contenue dans le modle par l'intermdiaire de variables. Ces informations peuvent tre de simples attributs (par exemple le nom d'une classe, un type de donnes d'attribut, etc.) ou une collection d'objets (par exemple, la liste des attributs d'une classe). Le GTL permet galement de tester des variables, et d'utiliser certaines macros dans le but de gnrer une disposition particulire. Le processus de gnration value quelles sont les mtaclasses pour lesquelles des fichiers doivent tre gnrs, puis, sur cette base, cre un fichier pour chaque objet dans le modle qui appartient cette mtaclasse. Lors de la gnration, chaque template et chaque variable est valu et remplac par sa valeur dans le fichier gnr.

368

PowerAMC

Chapitre 7

Guide de rfrence de la gnration

Concepts pris en charge

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.

Java pour les exemples

Documentation utilisateur avance

369

Dfinition des concepts utiliss dans le langage de gnration par template

Dfinition des concepts utiliss dans le langage de gnration par template


Les concepts suivants sont utiliss dans le langage de gnration par template.

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

Guide de rfrence de la gnration

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

Dfinition des concepts utiliss dans le langage de gnration par template

Exemple de templates Java

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.

Dfinition des variables


Les variables sont des valeurs qualifies encadres par des caractres % et ventuellement prcds par des options de format. Au moment de l'valuation, elles sont remplaces par la valeur correspondante dans la porte de la traduction courante. Une variable peut avoir l'un des types suivants : Attribut d'un objet Membre d'une collection ou d'une collection tendue Template Variable d'environnement

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

Les variables suivantes sont reprsentes avec leur syntaxe possible :


Variable bloc-variable variable Syntaxe '%' ['.' <options-format> ':'] <variable> '%' [<porte-externe> '.'] [<objet-variable> '.'] [<porte-objet> '.']<membre-objet> [<porte-externe> '.'] [<objet-variable> '.'] [<portecollection> '.']<membre-collection> [<porte-externe> '.']<variable-locale> [<porte-externe> '.'] <global-variable>

372

PowerAMC

Chapitre 7
Variable membre-objet Syntaxe <proprit>

Guide de rfrence de la gnration

[<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.

Documentation utilisateur avance

373

Dfinition des concepts utiliss dans le langage de gnration par template

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

Guide de rfrence de la gnration

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.

Documentation utilisateur avance

375

Dfinition des concepts utiliss dans le langage de gnration par template

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>'%'

Par exemple, le code suivant :


.set_value(i, Code) %*i%

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

Guide de rfrence de la gnration

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 :

Dfinition d'options de formatage de variable


Les variables ont une syntaxe qui impose un format leurs valeurs. Les utilisations classiques de ces options sont les suivantes : Forcer les valeurs en majuscules ou un minuscules Tronque les valeurs Met le texte entre apostrophes ou entre guillemets

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

Guide de rfrence de la gnration

Dfinition de la porte de la conversion


Les templates sont instancis via un processus appel conversion. La conversion est effectue dans une porte dfinie et consiste remplacer les variables par leurs valeurs correspondante dans le cadre dfini par la porte Tous les templates sont dfinis par rapport aux classes du mtamodle, ils sont considrs comme des proprits d'un type particulier qui utilisent le rsultat de leur conversion comme valeur. Une porte est un contexte pour l'valuation d'un template, il inclut l'objet actif et les variables locales. A un point donn de la conversion, un seul objet est actif ; il s'agit de l'objet auquel le template est appliqu. Au sein d'une porte de conversion, tous les attributs et collections de mtamodle dfinis dans la mtaclasse de l'objet actif et ses parents sont visibles, de mme que les attributs tendus et templates correspondantes. Lorsque le moteur de conversion commence valuer un template, une nouvelle porte de conversion est cre. Pour plus d'informations sur les collections d'objets, reportez-vous la section Associations et collections, dans le chapitre Mtamodle public PowerAMC.
Lorsqu'une porte est cre il s'agit de la porte de la conversion courante, l'ancienne porte de conversion constituant la porte externe de la porte de conversion courante Lorsqu'une porte est quitte sa porte externe est restaure comme tant la porte de conversion courante

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 :

Conversion d'un raccourci


Les raccourcis sont drfrencs lors de la conversion : la porte de l'objet cible remplace la porte du raccourci. Par exemple, le fichier gnr suivant dfini dans la mtaclasse package fournit la liste des classes contenues dans le package. Si un raccourci vers une classe est trouv, le code de son objet cible suivi de (Raccourci) est gnr, suivi par l'ID de l'objet parent, puis par l'ID du raccourci, ce qui montre clairement que la porte du raccourci est remplace par la porte de l'objet cible du raccourci :
.foreach_item(Classes) .if (%IsShortcut%) %Code% (Raccourci) oid = %ObjectID% shortcut oid = %Shortcut.ObjectID% .else %Code%

380

PowerAMC

Chapitre 7
%Shortcut% .endif .next(\n)

Guide de rfrence de la gnration

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%.

Dfinition d'un hritage


Les templates sont dfinis par rapport une classe de mtamodle donne et sont hrits par ses enfants. Ils sont hrits par tous les enfants de la mtaclasse pour laquelle ils sont dfinis. Ce mcanisme est utile pour partager le code de template entre diffrentes mtaclasses ayant un parent en commun. Exemple Exemple d'hritage : Un classificateur/dfinition est disponible via l'hritage d'une classe et d'une interface. Dans l'exemple suivant, le template de dfinition spcifi sur la mtaclasse parent est utilis dans l'valuation du template de contenu sur la mtaclasse enfant.

Redfinition d'un template


La redfinition d'un template signifie qu'un template dfini par rapport une mtaclasse peut tre redfini sur une classe enfant, auquel cas le template de la mtaclasse parent est dit redfini. La nouvelle dfinition masque la premire pour les objets de la mtaclasse enfant. Pour pouvoir utiliser la dfinition d'une mtaclasse parent particulire, le langage de gnration par template fournit l'oprateur qualifiant "::".
Documentation utilisateur avance

381

Dfinition des concepts utiliss dans le langage de gnration par template

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

Guide de rfrence de la gnration

Le contenu de %definition% est celui dfini dans Classifier pour une interface, et celui dfini dans Class pour une classe.

Dfinition d'une surcharge de template


Vous pouvez avoir plusieurs dfinitions du mme template qui s'appliquent diffrentes conditions. Si tel est le cas, le template n'est dfini que pour les objets qui satisfont la condition (les templates sont toujours lis de faon dynamique). La fonctionnalit de surcharge peut tre utilise comme un mcanisme de commutation trs puissant : vous pouvez trier les lments par ordre alphabtique afin d'obtenir une meilleure lisibilit lorsque vous rassemblez diffrentes versions du mme template. Elle permet galement d'amliorer la lisibilit en vitant d'utiliser des conditions .if trop longues. Au moment de la conversion, le moteur de conversion value chaque condition successivement jusqu' ce qu'il en trouve une qui soit vrifie, puis prend alors la dfinition de template correspondante. Si aucune condition n'est vrifie, le template non conditionnel, s'il est dfini, est utilis par dfaut (voir syntax1 dans l'illustration suivante). Les conditions doivent tre mutuellement exclusives pour garantir un comportement dterministe. Les templates peuvent galement tre dfinis sous des critres ou des strotypes, auxquels cas les conditions correspondantes sont combines. Pour plus d'informations sur les critres et les strotypes, reportezvous aux sections Dfinition d'un critre et Dfinition d'un strotype, dans le chapitre Gestion des profils. Exemple

Pour plus d'informations sur <condition-simple>, reportez-vous la section Macro if.

Dfinition des squences d'chappement


Des squences d'chappement sont des squences de caractres spcifiques utilises pour configurer la prsentation du fichier gnr.

Documentation utilisateur avance

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

Guide de rfrence de la gnration

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 \".

Documentation utilisateur avance

385

Dfinition des concepts utiliss dans le langage de gnration par template

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= | | | | | | | | | | | |

<template-simple> <constante> true false null notnull

constante=

'"' <texte> '"'

386

PowerAMC

Chapitre 7

Guide de rfrence de la gnration

Paramtres

Paramtre <fin>

Type Texte

Description Ajout la sortie, si elle existe

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

Paramtre <liste-paramscript> (facultatif) <bloc-entrevbscript> <fin>

Type Liste d'arguments de template-simple spars par des virgules Texte Texte

Description Paramtres passs sur le script via le tableau ScriptInputArray

Texte VB script Ajout la sortie, si elle existe

Rsultat

Le rsultat de la valeur ScriptResultArray. Exemple :


.vbscript(hello, world) ScriptResult = ScriptInputArray(0) + " " + ScriptInputArray(1) .endvbscript

Documentation utilisateur avance

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

Paramtre <bloc-entreunique> <fin>

Type Template complexe Texte

Description Paramtre utilis pour saisir du texte Ajout au rsultat, s'il y en a un

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

Guide de rfrence de la gnration

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.

Documentation utilisateur avance

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

Paramtre <anciennechane> <nouvellechane>

Type Texte Texte

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

Guide de rfrence de la gnration


Description Un paramtre est utilis pour spcifier du texte

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

Documentation utilisateur avance

391

Dfinition des concepts utiliss dans le langage de gnration par template

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

Paramtre <en-tte> (facultatif) <fin> (facultatif) <bloc-entre>

Type Template simple Texte Template complexe

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

Le rsultat est la concatnation de <en-tte>, l'valuation de <bloc-entre> et <fin>. Exemple :


.block (<b>) The current text is in bold .endblock (</b>)

392

PowerAMC

Chapitre 7

Guide de rfrence de la gnration

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.

Documentation utilisateur avance

393

Dfinition des concepts utiliss dans le langage de gnration par template

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

Guide de rfrence de la gnration

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.

Documentation utilisateur avance

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

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 \". 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

.foreach_item(Attributes,,,,%Item1.Code% >= %Item2.Code%)) Attribute %Code%[ = %InitialValue%]; .next(\n)

396

PowerAMC

Chapitre 7 Le rsultat est le suivant : Attribute cust_foreign = false Attribute cust_name; Remarque

Guide de rfrence de la gnration

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

Paramtre <entre> <en-tte> (facultatif) <fin> (facultatif) <sparateur> (facultatif)

Type Template simple Texte Texte Texte

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)

Documentation utilisateur avance

397

Dfinition des concepts utiliss dans le langage de gnration par template

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

Guide de rfrence de la gnration

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

Documentation utilisateur avance

399

Dfinition des concepts utiliss dans le langage de gnration par template

Macro bool
Cette macro renvoie 'true' or 'false' en fonction de la valeur de la condition spcifie.
.bool '(' <condition> ')'

Paramtres

Paramtre <condition>

Type Condition

Description Condition valuer

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

Paramtre <nom-varlocale> <object-ref> (facultatif)

Type Template simple [<porte>.]<porte -objet>]

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)

new ou update (la valeur par dfaut est update)

La variable est une rfrence l'objet spcifi l'aide du second argument. Exemple :
.set_object(Attribute1, Attributes.First)

400

PowerAMC

Chapitre 7

Guide de rfrence de la gnration

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

Paramtre <nom-varlocale> <value>

Type Template simple Template simple (squences d'chappement ignores) New ou update (la valeur par dfaut est update)

Description Nom de variable Valeur

<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.

Documentation utilisateur avance

401

Dfinition des concepts utiliss dans le langage de gnration par template

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>

Type Template simple (squences d'chappement ignores) Template simple

Description Chemin d'accs du fichier VB script

<paramtrescript> (facultatif)

Paramtre pass au script via la proprit globale ScriptInputParameters

Rsultat

Le rsultat est la proprit globale ScriptResult. Exemple :


.execute_vbscript(C:\samples\vbs\login.vbs, %username%)

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>

Type Template simple (squences d'chappement ignores)

Description Chemin d'accs d'excutables

402

PowerAMC

Chapitre 7
Paramtre <args> (facultatif) Type Template simple (squences d'chappement ignores) cmd_ShellExecute or cmd_PipeOutput

Guide de rfrence de la gnration


Description Arguments pour l'excutable

<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> ')'

Documentation utilisateur avance

403

Dfinition des concepts utiliss dans le langage de gnration par template

Paramtre

Paramtre <chemin>

Type Template simple (squences d'chappement ignores)

Description Nouveau rpertoire courant

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>

Type Template simple (squences d'chappement ignores)

Description Chemin crer

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>

Type Template simple

Description Message consigner

Exemple :
.log undefined environment variable: JAVAC

404

PowerAMC

Chapitre 7

Guide de rfrence de la gnration

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>

Type Template simple

Description Message d'avertissement

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>

Type Template simple

Description Message d'erreur

Exemple :
.error aucune valeur initiale fournie pour l'attribut %Code% de la classe %Parent.Code%

Documentation utilisateur avance

405

Dfinition des concepts utiliss dans le langage de gnration par template

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

Dfinition de blocs conditionnels


Les blocs conditionnels peuvent tre utiliss pour spcifier diffrents templates en fonction de la valeur d'une variable. {syntax 1}: '[' <variable> '?' <template-simple> [':' <template-simple>] ']' {syntax 2}: '[' <texte> <variable> <texte> ']' Syntaxe 1 est similaire C et aux expressions ternaires Java. Si la valeur de la variable est false, null, ou la chane null, le second template, s'il est spcifi, est valu. Dans le cas contraire, c'est le premier template qui est valu. Syntax 2 a une signification lgrement diffrente. Le template simple <texte><variable><texte> est converti si et uniquement si la valeur de la variable n'est pas la chane null. Exemple : dclaration d'attribut dans Java :
%Visibility% %DataType% %Code% [= %InitialValue%]

Dfinition de messages d'erreur


Les messages d'erreur interrompent la gnration du fichier dans lequel des erreurs ont t trouves. Ces erreurs sont affiches dans la page Aperu de la feuille de proprits de l'objet correspondant. Les messages d'erreur ont le format suivant :

406

PowerAMC

Chapitre 7

Guide de rfrence de la gnration

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]

set_value [syntaxe incorrecte]

Documentation utilisateur avance

407

Dfinition des concepts utiliss dans le langage de gnration par template


Message d'erreur execute_vbscript [syntaxe incorrecte] Description et correction La syntaxe doit tre : .execute_vbscript(<fichier-script>[,<scriptinput_params>])

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

Guide de rfrence de la gnration

Conseils et techniques de gnration


Cette section fournit des informations supplmentaires relatives au mcanisme du langage de gnration par template.

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

Documentation utilisateur avance

409

Conseils et techniques de gnration

Utilisation des templates rcursifs


Un template rcursif est template qui est dfini par rapport lui-mme. Exemple Considrons trois X, Y et Z. X est interne Y, et Y est interne Z. La variable %topContainerCode% est dfinie pour extraire la valeur du conteneur parent d'une classe. La valeur du template est la suivante :
.if (%isInner%) %ContainerClassifier.topContainerCode% .else %Code% .endif

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.

Utilisation des variables d'environnement


Dans le langage de gnration par template, vous pouvez accder aux variables situes dans la bote de dialogue Options gnrales (Slectionnez OutilsOptions gnrales). Si la variable n'a pas t dfinie, une chane null est renvoye.

Utilisation de nouvelles lignes dans la chane d'en-tte et de fin


Les chanes d'en-tte et de fin sont utiles car elles ne sont gnres que lorsque ncessaire, cela est particulirement utile lorsque vous utilisez de nouvelles lignes '\n'. Elles sont ajoutes respectivement au dbut et la fin du code gnr, la chane d'en-tte et la chane de fin n'apparaissant pas dans le code gnr.

410

PowerAMC

Chapitre 7

Guide de rfrence de la gnration

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}

Texte gnr 1 Description 1

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).

Documentation utilisateur avance

411

Conseils et techniques de gnration

Template 2 (nouvelle ligne)

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

String nurseName et char nurseGender se trouvent sur deux lignes distinctes

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

Guide de rfrence de la gnration

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

Documentation utilisateur avance

413

Conseils et techniques de gnration

Utilisation du passage de paramtres


Vous pouvez passer des paramtres dans, hors ou dans/hors un template via des variables locales en tirant parti des portes de traduction. Vous pouvez accder des paramtres avec la variable %@<number>%. Exemple Template 1 Templates de classe :
<show> template <<< Class "%Code%" attributes : // Public %publicAttributes% // Protected %protectedAttributes% // Private %privateAttributes% >>>

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

Guide de rfrence de la gnration

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.

Documentation utilisateur avance

415

Conseils et techniques de gnration

416

PowerAMC

C H A P I T R E

Mtamodle public PowerAMC

Sujet Ce chapitre dcrit le contenu et l'utilisation du mtamodle public PowerAMC. Sommaire


Section Qu'est-ce que le mtamodle public PowerAMC ? Concepts relatifs au mtamodle Notions de base relatives la structure du mtamodle Utilisation du mtamodle avec VBS Utilisation du mtamodle l'aide du langage de gnration par template (GTL) Utilisation du mtamodle pour comprendre le format de fichier XML de PowerAMC Page 418 419 422 426 428 432

Documentation utilisateur avance

417

Qu'est-ce que le mtamodle public PowerAMC ?

Qu'est-ce que le mtamodle public PowerAMC ?


Dfinition du mtamodle L'emploi d'un mtamodle est une extension logique du processus d'abstraction utilis pour crer des objets de modle. Un modle objet est une abstraction des donnes, et peut tre dcrit l'aide de mtadonnes. Un mtamodle est une abstraction des mtadonnes. Les mtamodles dcrivent de faon formelle les lments du modle, ainsi que la syntaxe et la smantique de la notation qui permet leur manipulation. Leur utilisation permet de rendre plus puissant, plus souple et plus versatile un logiciel car ils isolent l'application des changements intervenant dans le modle d'application. Par exemple, vous pouvez utiliser le mtamodle pour reprsenter le modle objet d'un modle objet, le modle objet d'un modle dynamique, ou la grammaire d'une grammaire. Mtamodle PowerAMC Le mtamodle public de PowerAMC est une abstraction des mtadonnes de PowerAMC reprsentes dans un Modle Orient Objet (MOO). Le mtamodle public de PowerAMC est divis en packages contenant des classes lies entre elles via des associations et des gnralisations. Chaque classe est dote d'un nom (nom public) et peut tre dcrite par des attributs ; elle peut assumer plusieurs rles dans les associations avec d'autres classes. Pourquoi publier un mtamodle ? Le mtamodle public de PowerAMC a pour but de : Faire en sorte que tout changement dans le codage et la conception soit reprsent pleinement dans l'architecture du mtamodle et viter des incohrences de codage Permettre aux utilisateurs d'avoir la fois une vue d'ensemble et une connaissance approfondie des mtadonnes PowerAMC Complter le fichier d'aide Visual Basic afin de permettre aux utilisateurs de crer leurs propres scripts VB Aider les utilisateurs utiliser le langage de gnration par template (GTL) Permettre une meilleure comprhension et simplifier la modification des fichiers PowerAMC enregistrs au format XML

418

PowerAMC

Chapitre 8

Mtamodle public PowerAMC

Concepts relatifs au mtamodle


Le mtamodle public de PowerAMC prend en charge pleinement la mthode et le formalisme d'UML. Les sections suivantes rcapitulent brivement les termes et concepts employs dans le cadre du mtamodle.

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

Documentation utilisateur avance

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

Mtamodle public PowerAMC

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.

Commentaires et notes sur les objets


La plupart des classes, des diagrammes et des packages sont dots d'un commentaire qui explique leur rle dans le mtamodle. Certains dtails de mise en oeuvre interne sont galement disponibles dans la page NotesAnnotation de la feuille de proprits des classes.

Documentation utilisateur avance

421

Notions de base relatives la structure du mtamodle

Notions de base relatives la structure du mtamodle


Le mtamodle PowerAMC est publi dans un Modle Orient Objet. Il utilise le formalisme du diagramme de classes UML pour reprsenter les mtadonnes PowerAMC.

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

Mtamodle public PowerAMC

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

Contenu des autres packages de bibliothque


Tous les autres packages de bibliothque affichent des diagrammes correspondant aux diffrents aspects du modle.
Diagramme Features Description Toutes les fonctionnalits mises en oeuvre par des classes dans la bibliothque courante. Par exemple, AbstractDataType est une fonctionnalit de PdPDM Objets de conception de la bibliothque courante Reprsentation graphique des objets de conception

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.

Navigation dans le mtamodle


Vous pouvez utiliser l'interface graphique du MOO pour naviguer dans la structure du mtamodle. Code de couleurs Les classes en vert sont des classes dont le comportement est expliqu dans le diagramme courant. Les classes en mauve sont visibles pour vous aider comprendre le contexte, mais ne sont pas expliques dans le diagramme courant.

Documentation utilisateur avance

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.

Navigation l'aide de l'interface


Vous pouvez utiliser l'Explorateur d'objets pour dvelopper ou rduire les catgories afin de comprendre la structure globale du mtamodle partir d'une arborescence. Vous pouvez galement afficher des diagrammes et observer la reprsentation graphique des mtadonnes. Les classes en mauve sont le plus souvent des raccourcis d'une classe existant dans un autre package. Le raccourci facilite la lecture du diagramme et la comprhension des liens de gnralisation entre les classes. Si vous souhaitez obtenir une explication relative une classe mauve dans un diagramme, pointez sur cette classe, cliquez le bouton droit de la souris et slectionnez Ouvrir un diagramme associ pour afficher le diagramme dans lequel la classe est dfinie. Rles d'association Le diagramme affiche galement la plupart des associations avec leurs rles ce qui permet d'identifier des collections d'objets. Pour plus d'informations sur les rles d'association, reportez-vous la section Associations et collections.

424

PowerAMC

Chapitre 8

Mtamodle public PowerAMC

Navigation l'aide de feuilles de proprits d'objets


Vous pouvez utiliser l'onglet Dpendances dans la feuille de proprits des classes du mtamodle pour consulter les pages suivantes : Associations : vous pouvez personnaliser le filtre afin d'afficher le rle des associations, vous obtenez ainsi la liste des collections de l'objet courant Gnralise : affiche une liste des liens de gnralisation dans lesquelles l'objet courant est le parent. Cette liste permet d'afficher les enfants de la classe courante. Les classes enfant hritent des attributs de la classe parent et n'affichent pas d'attribut driv Spcialise : affiche le parent de l'objet courant. La classe courante hrite des attributs de ce parent Raccourcis : affiche la liste des raccourcis crs pour l'objet courant

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.

Documentation utilisateur avance

425

Utilisation du mtamodle avec VBS

Utilisation du mtamodle avec VBS


Vous pouvez accder aux objets internes de PowerAMC et les manipuler l'aide de Visual Basic Scripting. Les scripts permettent d'accder aux proprits, collections et mthodes d'objet et de les modifier en utilisant le nom public de ces objets. Le mtamodle PowerAMC fournit des informations utiles relatives ces objets :
Information Nom public Description Le nom et le code des objets du mtamodle sont les noms publics des objets internes de PowerAMC Vous pouvez identifier les collections d'une classe en observant les associations lies cette classe dans le diagramme. Le rle de chaque association est le nom de la collection Vous pouvez afficher les attributs d'une classe avec les attributs que cette classe hrite d'une autre classe via des liens de gnralisation Exemple AssociationLinkSymbol ClassMapping CubeDimensionAssociation

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>>

Mtamodle public PowerAMC


Exemple RepositoryGroup

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.

Documentation utilisateur avance

427

Utilisation du mtamodle l'aide du langage de gnration par template (GTL)

Utilisation du mtamodle l'aide du langage de gnration par template (GTL)


Le GTL utilise des templates pour gnrer des fichiers. Un template est un lment de code dfini sur une mtaclasse PowerAMC dfinie qui hrite de cette classe. Il peut tre utilis dans diffrents contextes pour la gnration de texte et, ventuellement, de code. Ces templates peuvent tre considrs comme des extensions du mtamodle car ils dfinissent les classes de mtamodle, ils constituent des types d'attributs de mtamodle particuliers. L'utilisateur peut dfinir autant de templates qu'il le souhaite pour une mtaclasse donne en utilisant la syntaxe suivante :
<metamodel-classname> / <template-name>

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

Mtamodle public PowerAMC

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

PdCommon. BaseModel PdOOM. Class

GenOptions

struct

MinCardinality MaxCardinality SimpleTypeAttribute (XML-specific) @<tag> (Java-specific)

string string

string

Attribut tendu Javadoc@<tag> avec formatage supplmentaire Attribut tendu Javadoc@<tag> avec formatage supplmentaire

PdOOM. Interface PdOOM. Attribute

@<tag> (Java-specific)

string

MinMultiplicity MaxMultiplicity Overridden DataTypeModifier Prefix DataTypeModifier Suffix

string string boolean string string

Documentation utilisateur avance

429

Utilisation du mtamodle l'aide du langage de gnration par template (GTL)


Nom de mtaclasse

Nom d'attribut @<tag> (Java-specific)

Type string

Description Attribut tendu Javadoc@<tag> avec formatage supplmentaire

PdOOM. Operation

DeclaringInterface GetSetAttribute Overridden ReturnTypeModifier Prefix ReturnTypeModifier Suffix @<tag> (Java-specific)

object object boolean string string string Attribut tendu Javadoc@<tag> formatage supplmentaire (particulirement pour @throws, @exception, @params)

PdOOM. Parameter

DataTypeModifier Prefix DataTypeModifier Suffix

string string string string string string string Commentaire supprim (avec /**, /*, */ et // retirs)

PdOOM. Association

RoleAMinMultiplicity RoleAMaxMultiplicity RoleBMinMultiplicity RoleBMaxMultiplicity

PdOOM.*

ActualComment

430

PowerAMC

Chapitre 8

Mtamodle public PowerAMC

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

PdCommon. BaseClassifierMapping PdCommon. BaseAssociationMapping

SourceLinks SourceLinks

Documentation utilisateur avance

431

Utilisation du mtamodle pour comprendre le format de fichier XML de PowerAMC

Utilisation du mtamodle pour comprendre le format de fichier XML de PowerAMC


Les modles PowerAMC sont composs d'objets dont les proprits et interactions sont expliques dans le mtamodle public. Vous pouvez utiliser le mtamodle public pour mieux comprendre : Les noms d'objet dans les fichiers XML, ces noms correspondent aux noms publics disponibles dans le mtamodle Les collections d'objets qui s'affichent sous la forme de rles d'association dans le mtamodle

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

Spcification du format de fichier PowerAMC

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

Documentation utilisateur avance

433

Format de fichier XML

Format de fichier XML


Tous les fichiers de modle dans PowerAMC sont dots d'un suffixe qui correspond au module dans lequel ils sont enregistres. Par exemple, un modle enregistr dans le module orient objet a comme suffixe MOO. Outre le suffixe de nom de fichier, vous pouvez dcider du format de sauvegarde de vos modles :
Format de fichier BIN (Binary) Permet de Disposer de fichiers moins volumineux et donc moins gourmands en espace-disque, permettant galement une ouverture et un enregistrement plus rapides dans PowerAMC Visualiser et modifier la structure et le contenu des objets de modle dans un diteur de texte ou un diteur XML

XML (Extensible Markup Language)

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

Structure et contenu des fichiers XML


Les sections suivantes dcrivent la syntaxe et la structure XML dans le fichiers PowerAMC.

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

Spcification du format de fichier PowerAMC

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

XML et le mtamodle PowerAMC


Les modles PowerAMC sont composs d'objets dont les proprits et interactions sont expliques dans le mtamodle public. Le mtamodle utilise le formalisme du MOO pour documenter les mtadonnes PowerAMC (sous la forme de classes) et leurs liens (sous la forme d'associations et de gnralisations). Vous pouvez utiliser le mtamodle public PowerAMC pour mieux comprendre le format des fichiers XML de PowerAMC. En premier lieu, les noms d'objet, qui sont dclars dans les balises <o:nom de l'objet> correspondent aux noms publics dans le mtamodle. Vous pouvez chercher un objet dans le mtamodle l'aide du nom d'objet trouv dans le fichier XML.
Documentation utilisateur avance

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

Spcification du format de fichier PowerAMC

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.

Documentation utilisateur avance

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.

Notions de base relatives aux format XML


Le format des fichiers XML reflte la faon dont les informations du modle sont enregistres : PowerAMC parcourt chaque objet pour enregistrer sa dfinition. Chevauchement des collections La dfinition d'un objet implique la dfinition de ses attributs et de ses collections. Ceci justifie le fait que PowerAMC vrifie chaque objet et analyse les collections de cet objet pour dfinir chaque nouvel objet et collection dans ces collections, et ainsi de suite, jusqu' ce que le processus trouve les objets terminaux qui ne ncessitent pas d'tre analyss plus avant. Compte tenu du chevauchement des collections, le format des fichiers de modle PowerAMC peut tre compar une arborescence : il part d'un noeud racine (l'objet racine contenant toutes les collections de modle) et cascade au travers des collections. Cette analogie est utilise par la plupart des diteurs XML pour afficher la structure des fichiers XML. Dfinition d'objet ou rfrence Lorsqu'un objet est mentionn dans une collection, PowerAMC dfinit cet objet l'aide de la syntaxe <o:object Id="XYZ"> ou fait rfrence cet objet l'aide de la syntaxe <o:object Ref="XYZ"/>. Les dfinitions d'objet ne sont utilises que dans les collections de composition (l'objet parent possde l'enfant dans l'association). Dans ces deux cas, XYZ est un identificateur unique affect automatiquement un objet lorsqu'il est rencontr pour la premire fois.

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

Spcification du format de fichier PowerAMC

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.

Documentation utilisateur avance

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

Spcification du format de fichier PowerAMC

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>

Documentation utilisateur avance

441

Modification d'un fichier XML

Modification d'un fichier XML


Lorsque vous devez modifier un modle l'aide de son fichier XML, vous devez y ajouter ou supprimer des objets qu'avec prcautions. En raison de la structure du fichier qui comporte des chevauchements, une seule erreur de syntaxe mineure peut rendre le fichier inutilisable. OID Si vous crez un objet dans un fichier XML en copiant un objet existant du mme type, assurez-vous de supprimer l'OID dupliqu. Il est prfrable de supprimer un OID que d'essayer d'en crer un nouveau car ce nouvel ID risque de ne pas tre unique dans le modle. PowerAMC va automatiquement affecter un OID au nouvel objet ds que vous ouvrirez le modle. Vous pouvez modifier un fichier XML l'aide de : Un diteur de texte standard Un diteur XML

Vous pouvez visualiser un fichier XML l'aide d'une visionneuse XML.

Modification d'un fichier XML l'aide d'un diteur standard


Si vous utilisez un diteur standard, vous pouvez personnaliser la mise en forme XML comme dfini dans la section Modification d'un fichier XML.
Pour modifier le contenu d'un fichier XML :

Ouvrez le fichier dans un diteur de texte.

442

PowerAMC

Chapitre 9

Spcification du format de fichier PowerAMC

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 < >).

Documentation utilisateur avance

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.

Modification d'un fichier XML l'aide d'un diteur XML


Vous pouvez modifier le fichier dans un diteur XML. Dans cette section, l'diteur XML utilis est Microsoft Bloc-notes XML.
Pour visualiser le contenu d'un fichier XML dans un diteur XML :

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.

Dveloppez ou rduisez les noeuds situs gauche des objets.

Vous pouvez modifier une valeur en saisissant directement dans le champ correspondant du volet Valeurs.

444

PowerAMC

Chapitre 9

Spcification du format de fichier PowerAMC

Dans l'exemple suivant, les proprits de modle ont t modifies en ajoutant NEW au nom du modle :

Une fois les modifications termines, enregistrez puis fermez le fichier.

Visualisation d'un fichier XML l'aide d'une visionneuse XML


Vous pouvez visualiser un fichier XML avec une visionneuse XML, par exemple l'aide d'un explorateur Internet compatible XML. Vous ne pouvez pas modifier le fichier dans une visionneuse XML, mais seulement consulter son contenu.
Pour visualiser le contenu d'un fichier XML l'aide d'une visionneuse XML :

Ouvrez le fichier dans l'explorateur.

Documentation utilisateur avance

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

Vous aimerez peut-être aussi