Professional Documents
Culture Documents
PowerAMC
Documentation utilisateur
avancée
Version 10.0
DC20013-01-1000-01
Dernière révision : Janvier 2004
Copyright © 1991–2004 Sybase, Inc. Tous droits réservés.
Les informations contenues dans ce document pourront faire l’objet de modifications sans préavis et ne constituent aucun engagement
de la part de Sybase, Inc. et de ses filiales.
Sybase, Inc. fournit le logiciel décrit dans ce manuel sous Contrat de licence Sybase. Le logiciel ne peut être utilisé que conformément
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, mécanique, manuel, optique ou autre) sans l'accord écrit préalable 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, Client-
Library, 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, E-
Anywhere, 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, Net-
Gateway, 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.
Tous les autres noms de produit, société ou marque peuvent appartenir à des tiers.
Table des matières
iv PowerAMC
Commandes pour tous les objets ......................................... 175
MaxConstLen ................................................................. 175
EnableOption.................................................................. 175
Catégorie 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 génération de base de données,
ainsi que celle des triggers et procedures...................... 182
Variables pour le reverse engineering............................ 183
Variables pour la synchronisation de base de données . 184
Variables pour la sécurité dans la base de données...... 184
Variables pour les métadonnées.................................... 185
Variables communes pour tous les objets nommés ...... 185
Variables communes pour les objets ............................. 185
Variables relatives aux SGBD, options de base de
données.......................................................................... 186
Variables pour les tables ................................................ 186
Variables pour vérifications sur les domaines et sur les
colonnes ......................................................................... 187
Variables pour les colonnes ........................................... 188
Variables pour les types de données abstraits............... 188
Variable pour les attributs de types de données
abstraites........................................................................ 189
Variable pour les domaines............................................ 189
Variables pour les règles................................................ 189
Variables pour ASE & SQL Server ................................. 190
Variables pour les séquences ........................................ 190
Variables pour les index ................................................. 190
Variables pour les join indexes (IQ) ............................... 191
Variables pour les colonnes d'index ............................... 191
Variables pour les références......................................... 191
Variables de colonnes de référence............................... 193
Variables pour les clés ................................................... 193
Variables pour les vues .................................................. 194
Variables pour les triggers.............................................. 194
Variables pour les procédures........................................ 195
vi PowerAMC
Définition de menus dans un profil ....................................... 252
Propriétés d'un menu ..................................................... 253
Création d'un menu ........................................................ 254
Utilisation de profils : une étude de cas ................................ 256
Scénario ......................................................................... 257
Attachement d'une nouvelle définition étendue de
modèle au modèle.......................................................... 257
Création de stéréotypes d'objet...................................... 260
Définition de symboles personnalisés pour les
stéréotypes ..................................................................... 262
Création de liens entre objets et de messages entre
objets.............................................................................. 266
Création de vérifications personnalisées sur les liens
d'instance ....................................................................... 267
Génération d'une description sous forme de texte des
messages ....................................................................... 274
viii PowerAMC
Généralisations .............................................................. 421
Commentaires et notes sur les objets............................ 421
Notions de base relatives à la structure du métamodèle...... 422
Organisation générale .................................................... 422
Contenu de PdCommon................................................. 423
Contenu des autres packages de bibliothèque .............. 423
Navigation dans le métamodèle ..................................... 423
Utilisation du métamodèle avec VBS.................................... 426
Utilisation du métamodèle à l'aide du langage de
génération par template (GTL) ............................................. 428
Attributs calculés ............................................................ 429
Collections calculées...................................................... 431
Utilisation du métamodèle pour comprendre le format
de fichier XML de PowerAMC............................................... 432
Index .........................................................................................447
Sommaire
Section Page
Attention
Ne modifiez pas les fichiers de SGBD fournis avec PowerAMC. Pour
chaque SGBD que vous souhaitez modifier, créez un nouveau SGBD
correspondant. Pour ce faire, créez le nouveau SGBD à partir de la boîte
de dialogue Liste des SGBD, définissez un nom, puis sélectionnez le SGBD
d'origine dans la liste déroulante Copier depuis. Cette méthode permet de
créer un nouveau SGBD identique au fichier d'origine, à la différence du
nom près.
2 PowerAMC
Chapitre 1 Guide de référence du SGBD
Editeur de SGBD
Vous pouvez consulter ou modifier un fichier de définition de SGBD à l'aide
de l'éditeur de SGBD.
4 PowerAMC
Chapitre 1 Guide de référence du SGBD
Catégorie Description
General Identification du SGBD cible
Script Caractéristiques du SGBD, définition de commande et
conversions de types de données pour la génération et le
reverse engineering de script
ODBC Caractéristiques du SGBD, définition de commande et
conversions de types de données pour la génération et le
reverse engineering via ODBC
Profil de Permet de créer des profils contenant des transformations
transformations utilisées au cours de la génération de modèle ou appliquées
dans un modèle
Profile Extension des métaclasses PowerAMC pour personnaliser les
modèles
Remarquez que certains SGBD n'affichent pas de catégorie ODBC car cette
dernière n'est pas nécessaire à leur définition.
Propriété Description
Nom Nom du SGBD. Ce nom doit être unique dans un modèle
Code Code du SGBD. Ce code doit être unique dans un modèle
Nom du Chemin d'accès et nom du fichier du SGBD. Vous ne pouvez pas
fichier modifier le contenu de cette zone
Famille Utilisé pour classifier un SGBD. L'utilisation d'une famille
permet d'établir un lien entre différents fichiers de ressources
de base de données. Par exemple, Sybase AS Anywhere et
Sybase AS Enterprise appartiennent à la famille SQL Server.
Les triggers ne sont pas effacés lorsque vous changez de base de
données cible au sein d'une même famille.
Une interface de fusion permet de fusionner des modèles de la
même famille
Propriété Description
Commentaire Informations supplémentaires relatives au SGBD
Catégorie General
La catégorie General contient des informations générales relatives à la base
de données, sans catégorie. Toutes les entrées définies dans la catégorie
General s'appliquent à tous les objets de la base de données.
Exemple Si l'entrée EnableCheck a la valeur Yes, les paramètres de contrôle sont
générés.
6 PowerAMC
Chapitre 1 Guide de référence du SGBD
Catégories Description
SQL Contient les catégories Syntax, Format, File et Keywords.
Chaque catégorie contient des entrées dont les valeurs
définissent la syntaxe générale pour la base de données
Objects Contient des catégories pour chaque type d'objet dans la
base de données. Chaque catégorie contient des entrées
dont les valeurs définissent des commandes de base de
données et des caractéristiques objet
Data Type Contient des entrées de conversion des types de données.
Ces entrées répertorient les correspondances entre les types
de données internes PowerAMC et les types de données de
la base de données cible
Customize Extrait les informations de fichiers de définition de SGBD
de PowerAMC Version 6. Non utilisé dans les versions
ultérieures
Catégorie SQL
La catégorie SQL contient les catégories suivantes :
♦ Syntax contient des paramètres généraux relatifs à la syntaxe SQL
♦ Format contient des paramètres concernant les caractères admis
♦ File contient les entrées de texte header, footer et usage utilisées lors de
la génération
♦ Keywords contient la liste des mots réservés et fonctions disponibles
dans SQL
8 PowerAMC
Chapitre 1 Guide de référence du SGBD
Catégorie Objects
La catégorie Object contient toutes les commandes pour créer, supprimer ou
modifier tous les objets dans la base de données. Elle inclut également des
commandes qui définissent le comportement des objets, les valeurs par
défaut, les instructions SQL nécessaires, les options de reverse engineering,
etc.
10 PowerAMC
Chapitre 1 Guide de référence du SGBD
Catégorie Profile
La catégorie Profile est utilisée pour définir les profils PowerAMC.
Dans un SGBD, vous pouvez définir les types d'attributs étendus et les
attributs étendus pour les objets de base de données.
La catégorie Profile contient les catégories suivantes :
Catégorie Description
Shared\Extended Permet de définir les types d'attributs étendus et les
attribute types templates partagés. Les types d'attributs étendus sont des
types de données réutilisés entre attributs étendus. Les
templates partagés sont des morceaux de code utilisés dans
la génération de texte
Metaclasses Permet de définir des extensions de métaclasse, par
exemple des symboles personnalisés, des stéréotypes, des
critères ou des fichiers générés
12 PowerAMC
Chapitre 1 Guide de référence du SGBD
Propriété de
l'entrée Description
Nom Nom de la catégorie ou de l'entrée
Commentaire Description de la catégorie ou de l'entrée sélectionnée
Type de données Types d'attributs étendus prédéfinis ou définis par
l'utilisateur
Valeur par défaut Valeur par défaut de la liste des valeurs. Dépend du type de
données sélectionné
select
tbcreator,
tbname,
name,
case indextype when '2' then 'type 2' else 'type 1'
end,
case uniquerule when 'D' then '' else 'unique' end,
case uniquerule when 'P' then 'primary' when 'U' then
'unique' else '' end,
case clustering when 'Y' then 'cluster' else '' end,
case uniquerule when 'N' then 'TRUE' else 'FALSE' end
from
sysibm.sysindexes
where 1=1
[ and tbname=%.q:TABLE%]
[ and tbcreator=%.q:OWNER%]
[ and dbname=%.q:CATALOG%]
order by
1 ,2 ,3
14 PowerAMC
Chapitre 1 Guide de référence du SGBD
Par défaut, les attributs étendus s'affichent sur un onglet distinct dans la page
Attributs étendus d'une feuille de propriétés d'objet ou dans des listes
d'objets.
Chaque attribut étendu a les propriétés suivantes :
Propriété Description
Nom Nom de l'attribut étendu
Type de données Type de données de l'attribut étendu (boolean, color, date,
file, float, font, etc.) ou type de données personnalisé
Valeur Valeur de l'attribut étendu. Cette zone affiche la valeur par
défaut définie pour le type de données d'attribut étendu
R Valeur redéfinie. Cette case est cochée si vous modifiez la
valeur par défaut dans la colonne Valeur, soit en ouvrant la
liste déroulante, soit en cliquant sur le bouton Points de
suspension
Vous pouvez créer autant d'attributs étendus que vous le souhaitez, pour
chaque objet pris en charge par le SGBD.
16 PowerAMC
Chapitre 1 Guide de référence du SGBD
Exemple Dans DB2 UDB 7, l'attribut étendu WhereNotNull permet d'ajouter une
clause qui spécifie 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 défini le type de l'attribut étendu
WhereNotNull comme True, la clause "where not nul" sera insérée dans le
script.
Dans l'entrée 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
Mode de fonctionnement
Cette section décrit les mécanismes de génération et de reverse engineering.
Terminologie Le mot instruction est utilisé pour définir un fragment de syntaxe SQL ; les
instructions contiennent le plus souvent des variables qui seront évaluées lors
de la génération et du reverse engineering de script.
Le mot requête est réservé pour le reverse engineering ODBC.
Génération Lors de la génération, les instructions sont analysées et les variables
contenues dans les instructions sont évaluées et remplacées par leur valeur
prise dans le modèle courant. Les mêmes instructions sont utilisées pour la
génération de script et la génération ODBC.
Reverse Lors du reverse engineering de script, PowerAMC analyse le script et
engineering identifie les différentes instructions grâce au caractère de fin (terminator)
(défini dans Script\Sql\Syntax). Chaque instruction individuelle est
"associée" à une instruction existante dans le fichier de définition de SGBD
afin de valider en tant qu'éléments dans un modèle PowerAMC, les variables
contenues dans les instructions récupérées via reverse engineering.
Lors du reverse engineering ODBC, des requêtes spéciales sont utilisées
pour extraire les informations de tables système de la base de données.
Chaque colonne d'un jeu de résultats de requête est associée à une variable.
L'en-tête de la requête spécifie l'association entre les colonnes du jeu de
résultats et la variable. Les valeurs des enregistrements renvoyés sont
stockées dans ces variables qui sont alors validées en tant qu'attributs d'objet.
Pour plus d'informations sur les variables, reportez-vous à la section
Chaînes et variables facultatives.
18 PowerAMC
Chapitre 1 Guide de référence du SGBD
20 PowerAMC
Chapitre 1 Guide de référence du SGBD
Génération de script
Les instructions de génération de script sont disponibles dans la catégorie
Script, sous les différentes catégories d'objet.
Par exemple, dans Sybase ASA 8, l'instruction Create de la catégorie Table
se présente comme suit :
create table [%QUALIFIER%]%TABLE%
(
%TABLDEFN%
)
[%OPTIONS%]
Cette instruction contient les paramètres de création de la table ainsi que le
nom de son propriétaire et ses options physiques.
Mécanisme Vous pouvez étendre des instructions de génération de script pour compléter
d'extension la génération. Le mécanisme d'extension permet de générer les instructions
immédiatement avant ou après 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
supplémentaires, reportez-vous à la section Reverse engineering de script.
Vous utilisez des instructions before ou after pour générer du code
supplémentaire ; il s'agit d'éléments de texte définis dans une catégorie
d'objet sélectionnée dans le SGBD. Dans cette section, nous les appellerons
instructions d'extension.
Langage de Les instructions d'extension sont définies à l'aide du mécanisme de langage
génération par de génération par template (GTL) PowerAMC.
template (GTL)
Une instruction d'extension peut contenir :
♦ Une référence à d'autres instructions qui sera évaluée lors de la
génération. Ces entrées sont des éléments de texte qui doivent être
définis dans la même catégorie que les objet des instructions d'extension
♦ Des variables utilisées pour évaluer des propriétés d'objet et des
attributs étendus. Les variables sont encadrées par des caractères %
♦ Des macros fournissant des structures de programmation générique pour
tester des variables (.if)
22 PowerAMC
Chapitre 1 Guide de référence du SGBD
24 PowerAMC
Chapitre 1 Guide de référence du SGBD
Génération ODBC
Le plus souvent, la génération pour ODBC utilise les mêmes instructions que
la génération de script. Toutefois, lorsque le SGBD ne prend pas en charge la
syntaxe SQL standard, des instructions de génération spéciales sont définies
dans la catégorie ODBC. C'est notamment le cas pour MSACCESS qui a
besoin de scripts VB pour créer des objets de base de données à l'aide de la
génération ODBC.
Ces instructions sont définies dans la catégorie ODBC du SGBD.
Entrée Description
SqlListQuery Dresse la liste des objets pouvant être sélectionnés dans
la zone Sélection. SqlListQuery extrait les objets et
remplit la fenêtre de reverse engineering. Par la suite,
chacune des autres requêtes ci-dessous est exécutée pour
chaque objet sélectionné.
Si SqlListQuery n'est pas défini, des fonctions
ODBC standard sont utilisées pour extraire les objets.
SqlAttrQuery, SqlOptsQuery etc. seront ensuite
exécutées, si elles ont été définies.
SqlListQuery doit extraire le plus petit nombre de
colonnes possible car le processus fait une utilisation
intensive de la mémoire
SqlAttrQuery Procède au reverse engineering d'attributs d'objets
SqlAttrQuery peut ne pas être nécessaire si
SqlListQuery peut extraire toutes les informations
nécessaires. Par exemple, dans Sybase Adaptive Server
Anywhere 6, TablespaceListQuery suffit pour
extraire toutes les informations requises pour l'utilisation
dans un MPD
SqlOptsQuery Procède au reverse engineering des options physiques
SqlListChildrenQuery Procède au reverse engineering des objets enfant, par
exemple des colonnes d'un index ou d'une clé
particulière, des jointures d'une référence spécifique
SqlSysIndexQuery Procède au reverse engineering des index système créés
par la base de données
SqlChckQuery Procède au reverse engineering des contraintes relatives
aux vérifications d'objet
SqlPermQuery Procède au reverse engineering de permissions sur les
objets
26 PowerAMC
Chapitre 1 Guide de référence du SGBD
Remarque : les requêtes étendues ne doivent pas être définies dans l'entrée
ReversedQueries. Pour plus d'informations sur ReversedQueries, reportez-
vous à la section Mécanisme d'extension pour les requêtes de reverse
engineering ODBC.
Structure de requête
Chaque colonne d'un jeu de résultats est associée à une variable. Un en-tête
de script spécifie l'association entre les colonnes du jeu de résultats et la
variable. Les valeurs des enregistrements renvoyés sont stockées dans ces
variables, qui sont alors validées comme valeurs d'attribut d'objet.
L'en-tête de script est contenu entre accolades { }. Ces variables sont
répertoriées entre crochets, et sont séparées les unes des autres par une
virgule. Il existe une colonne pour chaque variable dans l'instruction Select
qui suit l'en-tête.
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.
Chaque partie de l'en-tête (séparée par des virgules) est associée 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
concaténée pour toutes les lignes renvoyées par la requête SQL et ayant
les mêmes valeurs pour les colonnes d'ID
♦ Retrieved_value = PD.value répertorie l'association entre une
valeur extraite et une valeur PowerAMC. Une table de conversion
permet de convertir chaque valeur de l'enregistrement (table système) en
une autre valeur (dans PowerAMC). Ce mécanisme est un mécanisme
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 clés ID et … (points de suspension)
sont mutuellement exclusifs.
Traitement avec {TABLE ID, ISPKEY ID, CONSTNAME ID, COLUMNS ...}
des noms de select
t.table_name,
variable 1,
null,
c.column_name + ', ',
c.column_id
from
systable t,
syscolumn c
where
etc..
Dans ce script, l'identifiant est défini comme TABLE + ISKEY+
CONSTNAME.
Dans les lignes de résultat renvoyées par le script SQL, les valeurs du
quatrième champ sont concaténées 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 référence du SGBD
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 requête SQL renvoie la valeur 25 ou 26, elle est
remplacée par JAVA dans la variable TYPE.
ReversedQueries
Les requêtes étendues ne doivent pas être définies dans l'entrée
ReversedQueries.
Etape 1 Une requête est exécutée pour évaluer les variables dans un jeu d'instructions
de chaîne.
30 PowerAMC
Chapitre 1 Guide de référence du SGBD
Variable 1 1 Variable 2 2
Variable 3 3 Variable 4 4
Variable 5 5 Variable 6 6
Etape 3 Les noms des variables définies par l'utilisateur sont remplacés par leurs
valeurs.
Les sections suivantes expliquent les requêtes utilisateur définies pour
remédier aux limitations du reverse engineering.
Dans Informix SQL 9, SqlOptsQuery est fourni par défaut avec les
requêtes et variables utilisateur suivantes (le code suivant est un sous-
ensemble 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'exécution de SqlOptsQuery, la requête définie par
l'utilisateur SqlFragQuery est exécutée pour évaluer FragDbsp n,
FragExpr n, et FragSprt n. n représente evalpos qui définit 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 définis
dans la table.
FragDbsp n, FragExpr n, et FragSprt n sont des variables utilisateur
qui seront évaluées pour récupérer des informations concernant les options
physiques des fragments dans la base de données :
32 PowerAMC
Chapitre 1 Guide de référence du SGBD
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 définie par l'utilisateur est unique, il s'agit du résultat
de la concaténation de "Xpr", du nom de table, du nom d'index et de la
position de colonne.
34 PowerAMC
Chapitre 1 Guide de référence du SGBD
Vous pouvez ajouter une section relative aux qualifiants lorsque vous
personnalisez votre SGBD. Cette section doit contenir les entrées suivantes :
♦ enable: YES/NO
♦ SqlListQuery (script) : cette entrée contient la requête SQL qui est
exécutée pour extraire la liste des qualifiants. Vous ne devez pas ajouter
d'en-tête à cette requête
L'effet de ces entrées est affiché dans le tableau ci-dessous :
36 PowerAMC
Chapitre 1 Guide de référence du SGBD
Reverse
Variable Génération engineering
[%--%] Généré si la variable est Reçoit une valeur si
définie. Si la variable est l'analyseur détecte un
vide ou a la valeur NO ou morceau de commande
FALSE, elle n'est pas SQL correspondant à la
générée variable. Si la variable
est vide ou s'est vue
affecter la valeur NO ou
FALSE, elle n'est pas
renseignée
38 PowerAMC
Chapitre 1 Guide de référence du SGBD
Reverse
Variable Génération engineering
[%--%? Is true : Si la variable est true, Is Si l'analyseur détecte Is
Is false]
true est généré, si la true, Is true subit le
pour tester la valeur de la variable est false, Is reverse engineering, si
variable (valeur false est généré l'analyseur détecte Is
conditionnelle) false, Is false subit
le reverse engineering
et la variable % % est
définie à True ou False
en fonction
[%--%=--? Is true Si la variable est égale à la Si l'analyseur détecte Is
: Is false]
valeur constante, Is true, Is true subit le
pour tester le contenu de true est généré, si la reverse engineering, si
la variable (valeur variable est différente, Is l'analyseur détecte Is
conditionnelle) false est généré false, Is false subit
le reverse engineering
[.Z: [s1][s2]...] .Z est ignoré Spécifie que la chaîne
et les variables entre
crochets ne sont pas
triés
Exemples ♦ [%--%]
[%OPTIONS%]
Si %OPTIONS% n'est pas FALSE, n'est pas vide ou n'a pas la valeur
NO, la variable est générée, ce texte est remplacé par la valeur de
%OPTIONS% (options physiques pour les objets visibles dans la feuille
de propriétés 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 spécification n'est pas obligatoire et l'instruction SQL fait
l'objet d'un reverse engineering même si la spécification est absente.
Dans la génération du script, si la valeur par défaut est définie (10, par
exemple) lors de la génération, le texte est remplacé par default 10,
dans le cas contraire rien n'est généré pour le bloc.
♦ [%--%? Is true : Is false]
Utilisation des Une chaîne placée entre crochets est toujours générée ; toutefois, que cette
chaînes chaîne soit présente 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 création d'une vue
inclut une chaîne :
create [or replace] view %VIEW% as %SQL%
Lorsque vous procédez 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 chaîne est facultative.
40 PowerAMC
Chapitre 1 Guide de référence du SGBD
Option Description
n (n, étant un Ajoute des espaces ou des zéros à gauche pour remplir la
entier) largeur et justifier à droite
-n Ajoute des espaces ou des zéros à droite pour remplir la
largeur et justifier à gauche
.L Force les caractères en minuscules
.U Force les caractères en majuscules
.c Force la majuscule à la première lettre ainsi que des
minuscules aux autres lettres du mot
.F Combiné avec L et U, applique des conversions au premier
caractère
.T Les espaces de début et de fin sont supprimés de la variable
.n Tronque la valeur pour ne conserver que les n premiers
caractères
.-n Tronque la valeur pour ne conserver que les n derniers
caractères
q Place la variable entre apostrophes
Q Place la variable entre guillemets
Exemple Les exemples suivants montrent les codes de format incorporés dans la
syntaxe de variable pour le template de nom de contrainte des clés primaires,
en utilisant une table nommée CUSTOMER_PRIORITY :
42 PowerAMC
Chapitre 1 Guide de référence du SGBD
Catégorie Description
TABLE Template de nom de contrainte pour les vérifications de table
COLUMN Template de nom de contrainte pour les vérifications de
colonne
PKEY Template de nom de contrainte pour les vérifications de clé
primaire
KEY Template de nom de contrainte pour les vérifications de clé
alternative
REFERENCE Template de nom de contrainte pour les vérifications de clé
étrangère
Dans PowerAMC, vous pouvez définir des noms de contrainte définis par
l'utilisateur. Les templates s'appliquent à toutes les contraintes pour lesquelles
vous ne définissez pas de noms de contrainte définis par l'utilisateur.
Variables Code et De nombreux objets ont des variables Code et Generated Code qui sont
Generated code différenciées comme suit :
Variable Description
Code Code d'attribut défini dans la feuille de propriétés
Generated Code Code calculé en fonction des options de génération. Le
code généré peut être différent du code dans les cas
suivants :
Le code est un mot réservé ou contient des caractères
incorrects. Le code généré est placé entre
guillemets
Le code est plus long que la longueur autorisée par le
SGBD. Le code généré est tronqué
Variables de nom Le champ ConstName pour tous les objets peut accepter les variables
communes pour courantes suivantes :
ConstName
Variable Description
%@OBJTNAME% Nom d'objet
%@OBJTCODE% Code d'objet
%@OBJTLABL% Commentaire pour l'objet
%@OBJTDESC% Description pour l'objet
ConstName pour Le champ ConstName pour l'objet TABLE peut accepter les variables
TABLE suivantes :
Variable Valeur
%TABLE% Code généré pour la table
%TNAME% Nom de la table
%TCODE% Code de la table
%TLABL% Commentaire de la table
ConstName pour Le champ ConstName pour l'objet COLUMN peut accepter les variables
COLUMN suivantes :
Variable Valeur
%COLUMN% Code généré pour la colonne
%COLNAME% Nom de la colonne
%COLNCODE% Code de la colonne
ConstName pour Le champ ConstName pour l'objet PKEY peut accepter la variable suivante :
PKEY
Variable Valeur
%CONSTNAME% Nom de contrainte
ConstName pour Le champ ConstName pour l'objet KEY peut accepter les variables
KEY suivantes :
Variable Valeur
%AKEY% Code de la clé alternative
%TABLE% Code de la table
44 PowerAMC
Chapitre 1 Guide de référence du SGBD
ConstName pour Le champ ConstName pour l'objet REFERENCE peut accepter les variables
REFERENCE suivantes :
Variable Valeur
%REFR% Code généré pour la référence
%PARENT% Code généré pour la table parent
%PNAME% Nom de la table parent
%PCODE% Code de la table parent
%CHILD% Code généré pour la table enfant
%CNAME% Nom de la table enfant
%CCODE% Code généré pour la table enfant
%PQUALIFIER% Qualifiant de la table parent
%CQUALIFIER% Qualifiant de la table enfant
%REFRNAME% Nom de référence
%REFRCODE% Code de référence
%PKCONSTRAINT% Nom de contrainte de clé parent utilisé pour faire
référence à l'objet
%POWNER% Propriétaire de la table parent
%COWNER% Propriétaire de la table enfant
%CHCKONCMMT% TRUE lorsque Check on commit est sélectionné sur la
référence (spécifique ASA 6.0)
Le script résultant que vous pouvez générer pour une table utilisant Adaptive
Server Anywhere 6 déclare 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 référence du SGBD
Variables dans les Vous pouvez utiliser les variables PowerAMC définies pour un objet donné
options physiques pour définir les options pour cet objet.
Par exemple, dans Oracle, vous pouvez définir la variable suivante pour un
cluster si vous souhaitez que ce cluster prenne le même nom que la table.
Cluster %TABLE%
Pour obtenir la liste de toutes les variables utilisées 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 Catégorie Profile.
Lors du reverse engineering par script, la section de la requête SQL
déterminée comme étant les options physiques est stockée dans
%OPTIONS%, et sera ensuite analysée lorsque requis par une feuille de
propriétés d'objet.
Lors du reverse engineering ODBC, l'instruction SqlOptsQuery est
exécutée pour extraire les options physiques qui sont stockées dans
%OPTIONS% afin de les analyser lorsque requis par une feuille de
propriétés d'objet.
Selon la définition de SGBD, vous pouvez définir 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 définissez des options physiques sur la feuille de propriétés d'un objet.
48 PowerAMC
Chapitre 1 Guide de référence du SGBD
Lorsque vous sélectionnez 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 utilisée lorsque
l'option physique requiert une valeur. Les variables possibles sont les
suivantes :
Variable Description
%d Une valeur numérique suit l'option physique. Vous devez saisir une
valeur numérique dans le champ d'édition
%s La chaîne suit l'option physique. Vous devez saisir une chaîne dans
la zone d'édition
Chaque option sélectionnée crée une ligne dans le volet droit. Si la sélection
contient une variable %d, une valeur numérique peut être entrée. Si la
sélection contient une variable %s, un texte est entré. Si la sélection ne
contient ni variable %d ni variable %s, aucune valeur n'est entrée.
Les variables entre signes % (%--%) ne sont pas admises dans les options
physiques.
Vous pouvez spécifier une contrainte sur n'importe quelle ligne contenant une
variable, par exemple une liste de valeurs, des valeurs par défaut, la valeur
doit être un storage ou un tablespace, certaines lignes peuvent être groupées.
Ces contraintes sont introduites par une virgule directement derrière l'option
physique et séparées par des virgules (voir la section suivante).
Exemple La page Options dans une feuille de propriétés de tables est illustrée ci-
dessous :
50 PowerAMC
Chapitre 1 Guide de référence du SGBD
52 PowerAMC
Chapitre 1 Guide de référence du SGBD
Dans Sybase Adaptive Server Enterprise 11, la valeur par défaut pour l'objet
d'index est définie dans les options comme suit :
on %s: category=storage
Vous pouvez sélectionner le storage approprié dans une liste déroulante dans
la page d'options physiques.
Default= et/ou List= peut également être utilisé avec les mots clés
composite=, separator= et parenthesis=. Category= peut être
utilisé avec les trois mots clés 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 Dans Oracle, la catégorie Storage est utilisée comme template pour définir
avec Oracle toutes les valeurs de storage dans une entrée de storage. Ceci vous permet
d'éviter d'avoir à définir des valeurs indépendamment chaque fois que vous
devez utiliser les mêmes 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 référence du SGBD
Répétitions d'options
Certaines bases de données répètent un bloc d'options, groupées dans une
option composite. Dans ce cas, la définition composite contient le mot clé
multiple :
with: composite=yes, multiple=yes
Si la sélection se trouve sur l'option composite dans le volet droit et que vous
cliquez sur la même option composite dans le volet gauche afin de l'ajouter,
une boîte de message vous demande si vous souhaitez réutiliser l'option
sélectionnée. Si vous cliquez sur Non, l'option composite est ajoutée dans le
volet droit comme nouvelle ligne.
56 PowerAMC
Chapitre 1 Guide de référence du SGBD
Catégorie General
La catégorie General contient des informations d'identification de SGBD.
EnableCheck
Détermine si la génération des paramètres de contrôle est autorisée ou non.
Valeur Résultat
Yes Paramètres de contrôle générés
No Toutes les variables liées aux paramètres de contrôle ne seront pas
évaluées lors des processus de génération et de reverse engineering
EnableIntegrity
Permet de recourir à des contraintes d'intégrité dans le SGBD. Vous
contrôlez ainsi si les paramètres de génération relatifs aux clés primaires,
étrangères ou alternatives sont grisés ou disponibles.
Valeur Résultat
Yes Les cases relatives aux clés primaires, clés alternatives et clés
étrangères sont disponibles pour la génération et la modification de
base de données
No Les cases relatives aux clés primaires, clés alternatives et clés
étrangères sont grisées et non disponibles pour la génération et la
modification de base de données
EnableMultiCheck
Détermine si la génération de plusieurs paramètres de contrôle pour les tables
et colonnes est autorisée ou non.
Valeur Résultat
Yes Plusieurs paramètres de contrôle sont générés. La première contrainte
dans le script correspond à la concaténation de toutes les règles de
validation, les autres contraintes correspondent à chaque règle de
gestion de contrainte attachée à un objet
No Toutes les règles de gestion (validation et contrainte) sont concaténées
dans une même expression de contrainte
EnableConstname
Détermine si les noms de contrainte sont utilisés lors de la génération.
Valeur Résultat
Yes Les noms de contrainte sont utilisés lors de la génération
No Les noms de contrainte ne sont pas utilisés
SqlSupport
Détermine si la syntaxe SQL est admise. Cette entrée est sans influence sur la
génération de script mais a un impact sur l'aperçu de code SQL.
Valeur Résultat
Yes Syntaxe SQL admise et Aperçu SQL disponible
No La Syntaxe SQL admise et Aperçu SQL disponible
58 PowerAMC
Chapitre 1 Guide de référence du SGBD
UniqConstName
Détermine si les noms de contrainte uniques pour les objets sont ou non
autorisés.
Valeur Résultat
Yes Tous les noms de contrainte doivent être uniques dans la base de
données, y compris les noms d'index
No Les noms de contrainte doivent être uniques pour un objet
60 PowerAMC
Chapitre 1 Guide de référence du SGBD
Catégorie SQL
La catégorie SQL contient les catégories suivantes :
♦ Syntax
♦ Format
♦ File
♦ Keywords
Ces catégories contiennent les entrées qui définissent la syntaxe SQL pour le
SGBD.
Syntax
La catégorie Syntax contient les entrées qui définissent la syntaxe spécifique
au SGBD.
Terminator
Caractère de fin d'instruction. Est utilisé pour terminer les instructions telles
que les instructions de création de table, de vue ou d'index, ou bien pour les
instructions d'ouverture/fermeture de base de données.
Exemple Terminator = ;
Si aucune valeur n'est spécifiée, c'est BlockTerminator qui est utilisé.
BlockTerminator
Caractère de fin de bloc. Est utilisé pour terminer les expressions pour les
triggers et les procédures stockées.
Exemple BlockTerminator = /
UseBlockTerm
Syntaxe d'utilisation de BlockTerminator.
Valeur Résultat
Yes BlockTerminator est toujours utilisé
No BlockTerminator est utilisé pour les triggers et les procédures
stockées uniquement
Delimiter
Caractère de séparation de champs. Par exemple : col1, col2, col3.
Exemple Delimiter = ,
Les colonnes sont séparées par des virgules dans l'instruction create table.
create table CUSTOMER
(
CUSNUM numeric(5) not null,
CUSNAME char(30) not null,
CUSADDR char(80) not null,
CUSACT char(80) ,
CUSTEL char(12) ,
CUSFAX char(12) ,
primary key (CUSNUM)
);
Quote
Caractère utilisé pour encadrer les valeurs de chaîne. 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 défaut dans le code SQL généré.
62 PowerAMC
Chapitre 1 Guide de référence du SGBD
SqlContinue
Caractère de suite. Certaines bases de données requièrent un caractère de
suite lorsqu'une instruction dépasse une ligne. Pour connaître le caractère
approprié, reportez-vous à la documentation relative à votre SGBD. Ce
caractère est attaché à chaque ligne, juste avant le caractère de saut de ligne.
BlockComment
Caractère utilisé pour encadrer un commentaire portant sur plusieurs lignes.
Utilisé dans le reverse engineering et dans la génération.
Exemple BlockComment = /* */
Ajoute un espace entre les caractères d'ouverture et de fermeture.
LineComment
Caractère utilisé pour encadrer un commentaire d'une seule ligne.
Utilisé dans le reverse engineering.
Exemple LineComment = %%
Format
La catégorie Format contient des entrées qui définissent le format du script.
IllegalChar
Caractères incorrects pour les noms. Utilisé uniquement pour la génération.
Si le code contient un caractère illégal, il est défini entre guillemets lors de la
génération.
IllegalChar = "+-*/!=<>'"()"
Exemple If the name of the table is “SALES+PROFITS", the
generated create statement will be:
CREATE TABLE "SALES+PROFITS"
Des guillemets sont placés de part et d'autre du nom de table pour indiquer
qu'un caractère incorrect est utilisé.
Lors du reverse engineering, tout caractère illégal est considéré comme
séparateur à moins qu'il ne soit situé dans un nom entre guillemets.
CaseSensitivityUsingQuote
Détermine si la sensibilité à la casse est gérée à l'aide de guillemets. Vous
devez définir cette valeur booléenne à Yes si le SGBD que vous utilisez
nécessite des guillemets pour préserver la casse des codes d'objet.
UpperCaseOnly
Majuscules uniquement. Lorsque vous générez un script à partir d'un MPD,
tous les objets (tables, colonnes, contraintes, index, etc.) peuvent être forcés
en majuscules à la génération, indépendamment des conventions de
dénomination définies pour le modèle (Majuscules, Minuscules ou Mixte) et
des codes du MPD.
Valeur Résultat
Yes Force tous les caractères du script généré en majuscules
No Génère tout le script sans changer la façon dont les objets sont écrits
dans le modèle (majuscules, minuscules, ou mixte)
Exemple UpperCaseOnly = NO
LowerCaseOnly
Minuscules uniquement. Lorsque vous générez un script à partir d'un MPD,
tous les objets (tables, colonnes, contraintes, index, etc.) peuvent être forcés
en minuscules à la génération, indépendamment des conventions de
dénomination définies pour le modèle (Majuscules, Minuscules ou Mixte) et
des codes du MPD.
Valeur Résultat
Yes Force tous les caractères du script généré en minuscules
No Génère tout le script sans changer la façon dont les objets sont écrits
dans le modèle (majuscules, minuscules, ou mixte)
64 PowerAMC
Chapitre 1 Guide de référence du SGBD
EnableOwnerPrefix et EnableDtbsPrefix
Les codes d'objet peuvent être préfixés par le nom du propriétaire de l'objet,
le nom de la base de données, ou les deux, ce afin d'être identifiés de façon
unique. Vous pouvez pour ce faire utiliser la variable %QUALIFIER%.
Si vous souhaitez que le préfixe soit le propriétaire de l'objet, vous devez
définir la valeur de l'entrée EnableOwnerPrefix à Yes, puis cocher la case
Préfixe de propriétaire dans la boîte de dialogue de génération. Si vous
souhaitez que le préfixe soit le nom de la base de données, vous devez définir
la valeur de l'entrée EnableDtbsPrefix à Yes et cocher la case Préfixe de base
de données dans la boîte de dialogue de génération.
Si vous cochez à la fois les cases Préfixe de base de données et Préfixe de
propriétaire, les deux noms sont concaténés lorsque %QUALIFIER% est
évalué.
Valeur Résultat
Yes Les cases Préfixe de base de données et Préfixe de propriétaire sont
disponibles dans la boîte de dialogue de génération. La variable
%QUALIFIER% est renseignée avec le nom de l'objet, ou le nom de la
base de données, ou bien les deux lors de la génération ou du reverse
engineering
No Les cases Préfixe de base de données et Préfixe de propriétaire sont
grisées et le préfixe n'est pas disponible
MaxScriptLen
Indiquent la longueur maximale d'une ligne de script.
Exemple 1024
AddQuote
Détermine si les codes d'objet sont systématiquement placés entre
apostrophes ou guillemets lors de la génération.
Valeur Résultat
Yes Les codes d'objet sont systématiquement placés entre apostrophes ou
guillemets lors de la génération
No Les codes d'objet sont générés sans apostrophes ou guillemets
Dans lequel :
Format Description
yyyy Année sur quatre chiffres
yy Année sur deux chiffres
mm Mois
dd Jour
HH Heure
66 PowerAMC
Chapitre 1 Guide de référence du SGBD
Format Description
MM Minute
SS Seconde
File
La catégorie File contient des entrées qui définissent le format du script.
Header
Texte d'en-tête pour un script de génération de base de données.
Footer
Texte de fin pour un script de génération de base de données.
EnableMultiFile
Multi-script admis. Cette variable agit sur la disponibilité de la case Un seul
fichier dans la boîte de dialogue de génération de base de données, la boîte
de dialogue de triggers et de procédures ou la boîte de dialogue de
modification de base de données.
Valeur Résultat
Yes La case à cocher Un seul fichier est disponible. Si vous décochez cette
case, un script est créé pour chaque table, et un script général récapitule
toutes les entrées de script de table. Chaque script a le nom de la table
et le suffixe défini dans la variable TableExt. Si vous cochez cette case,
un seul script global inclut tous les scripts.
Le script général a comme suffixe de nom de fichier celui décrit dans la
variable de SGBD ScriptExt, et son nom est personnalisable dans la
zone Nom de fichier des boîtes de dialogue de génération ou de
modification. Les noms par défaut sont CREBAS pour la génération de
base de données, CRETRG pour la génération des triggers et les
procédures stockées, et ALTER pour la modification de base de
données
No La case à cocher Un seul fichier est grisée, et un seul script inclut toutes
les commandes.
Le suffixe de nom de fichier est décrit dans la variable ScriptExt, et son
nom est personnalisable dans la zone Nom de fichier des boîtes de
dialogue de génération ou de modification. Les noms par défaut sont
CREBAS pour la génération de base de données, CRETRG pour la
génération des triggers et les procédures stockées, et ALTER pour la
modification de base de données
ScriptExt
La variable ScriptExt définit le suffixe de script par défaut lorsque vous
générez une base de données ou la modifiez pour la première fois.
Exemple ScriptExt = sql
68 PowerAMC
Chapitre 1 Guide de référence du SGBD
TableExt
Si vous ne cochez pas la case Un seul fichier lorsque vous générez une base
de données, ou lorsque vous modifiez une base de données, un script est
généré pour chaque table, avec le suffixe de nom de fichier défini dans la
variable TableExt.
Exemple TableExt = sql
Voir aussi EnableMultiFile.
StartCommand
Instruction d'exécution d'un script. Ce paramètre correspond à la variable
%STARTCMD%. La valeur de cette variable dépend de ce paramètre.
L'instruction de début correspond à l'instruction utilisée par la base de
données cible pour exécuter un script SQL.
Le contenu de cette variable est utilisé dans le fichier d'en-tête pour une
génération portant sur plusieurs fichiers. Elle est utilisée pour appeler tous les
autres fichiers générés depuis le fichier d'en-tête.
Exemple Dans Sybase AS Enterprise 11.x :
StartCommand = isql %NAMESCRIPT%
Usage1
Applicable lorsque vous utilisez un script unique.
S'affiche à la fin de la génération dans la fenêtre Résultats.
(1) Start the SQL interpreter: ISQL
Exemple (2) Open the script %NAMESCRIPT%
(3) Execute the script
Usage2
Applicable lorsque vous utilisez plusieurs scripts.
S'affiche à la fin de la génération dans la fenêtre Résultats.
(1) Start the SQL interpreter: ISQL
Exemple (2) Open one script from the directory %PATHSCRIPT%
(3) Execute this script
TriggerExt
Variable qui définit le suffixe du script principal lorsque vous générez des
triggers et des procédures stockées pour la première fois.
Exemple TriggerExt = trg
TrgUsage1
Applicable lorsque vous utilisez un script unique pour la génération des
triggers et des procédures.
S'affiche à la fin de la génération dans la fenêtre Résultats.
(1) Start the SQL interpreter: ISQL
Exemple (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 génération des
triggers et procédures.
S'affiche à la fin de la génération dans la fenêtre Résultats.
(1) Start the SQL interpreter: ISQL
Exemple (2) Select the item "Options" of the menu "Command"
(3) Change "Command Delimiter" to /
(4) Open one script from the directory %PATHSCRIPT%
(5) Execute the script
(6) Restore "Command Delimiter" to ;
70 PowerAMC
Chapitre 1 Guide de référence du SGBD
TrgHeader
Script d'en-tête pour la génération des triggers et procédures.
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;
end IntegrityPackage;
TrgFooter
Texte de fin pour un script (génération de triggers et de procédures).
AlterHeader
Texte d'en-tête pour un script (modification de base de données).
AlterFooter
Texte de fin pour un script (modification de base de données).
Keywords
La catégorie Keywords contient des mots clés et des valeurs qui sont
réservées pour des tâches spéciales et qui ne peuvent pas être utilisées
comme noms ou valeurs de variable.
ReservedWord
Mots réservés.
Si un mot réservé est utilisé comme code d'objet, il est placé entre
apostrophes lors de la génération (en utilisant les apostrophes spécifiés dans
SGBD→ Script → SQL → Syntax → Quote)
Exemple Dans Adaptive Server Anywhere 6 :
TABLE
CREATE
DELETE
WHENEVER
ReservedDefault
Valeurs par défaut réservées.
Si un mot réservé est saisi dans une valeur par défaut, la valeur ne sera pas
placée entre apostrophes, elle sera utilisée comme valeur par défaut pour les
colonnes.
Exemple Dans Adaptive Server Anywhere 6, USER est une valeur par défaut réservée:
Create table CUSTOMER (
Username varchar(30) default USER,
)
72 PowerAMC
Chapitre 1 Guide de référence du SGBD
GroupFunc
Liste de fonctions SQL à utiliser avec des mots clés 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 mêmes
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 mêmes
que celles disponibles dans le SGBD.
Exemple abs()
acos()
asin()
atan()
CharFunc
Liste de fonctions SQL pour les caractères et les chaînes.
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 mêmes
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 mêmes
que celles disponibles dans le SGBD.
Exemple dateadd()
datediff()
datename()
ConvertFunc
Liste de fonctions SQL à utiliser pour convertir des valeurs entre hex et
integer et pour gérer les chaînes.
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 mêmes
que celles disponibles dans le SGBD.
Exemples convert()
hextoint()
inttohex()
OtherFunc
Liste de fonctions SQL pour l'estimation, la concaténation et les vérifications
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 mêmes
que celles disponibles dans le SGBD.
Exemple db_id()
db_name()
host_id()
ListOperators
Liste d'opérateurs 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 mêmes
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 référence du SGBD
Catégorie Objects
La catégorie Objects définit chaque type d'objet qui est pris en charge par la
définition de SGBD.
A la racine de la catégorie Objects, les deux entrées suivantes sont définies
pour tous les objets du SGBD :
♦ EnableOption : Valeur booléenne qui spécifie si les options physiques
sont admises pour les objets de SGBD
♦ MaxConstLen : Définit la valeur pour la longueur de nom de contrainte
pour les tables, les colonnes, les clés primaires et les clés étrangères
Enable
Instruction permettant déterminer si un objet est admis.
Exemple Enable = Yes
Maxlen
Instruction permettant de définir la longueur maximale de code pour un objet.
Cette valeur est mise en oeuvre lors de la vérification de modèle et produit
une erreur si le code dépasse la valeur définie. Le code d'objet est également
tronqué au moment de la génération.
Exemple MaxLen = 128
Create
Instruction permettant de créer un objet (génération et reverse engineering).
Exemple create table %TABLE%
Add
Instruction permettant d'ajouter un objet dans l'instruction de création d'un
autre objet (génération et reverse engineering).
Par exemple, Table create avec l'appel Column add.
Drop
Instruction permettant de supprimer un objet (génération uniquement).
Exemple Dans Sybase Adaptive Server Anywhere 6 :
if exists(select 1 from sys.systable where
table_name='%TABLE%' and table_type='BASE'[%QUALIFIER%?
and creator=user_id('%OWNER%')]) then
drop table [%QUALIFIER%]%TABLE%
end if
Options
Options physiques portant sur la création d'un objet (génération et reverse
engineering).
Exemple Dans Sybase Adaptive Server Anywhere 6 :
in %s : category=tablespace
76 PowerAMC
Chapitre 1 Guide de référence du SGBD
DefOptions
Valeurs par défaut pour les options physiques d'objet qui seront appliquées à
tous les objets. Ces valeurs doivent respecter la syntaxe SQL.
Par exemple :
in default_tablespace
SqlListQuery
Requête SQL permettant de répertorier les objets dans une boîte de dialogue
de reverse engineering.
La requête est exécutée pour renseigner les variables d'en-tête et créer des
objets en mémoire.
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
]
SqlAttrQuery
Requête SQL permettant d'extraire des information supplémentaires sur les
objets récupérés 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
Requête SQL permettant d'extraire les options physiques d'objet sur les objets
récupérés via reverse engineering par SqlListQuery.
Le résultat de la requête 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 Mécanisme
d'extension pour les requêtes de reverse engineering ODBC.
78 PowerAMC
Chapitre 1 Guide de référence du SGBD
ModifiableAttributes
Liste des attributs étendus qui seront pris en compte dans la boîte de dialogue
de fusion lors de la synchronisation de base de données.
Pour plus d'informations, reportez-vous à la section Génération 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 catégorie Table contient des entrées qui définissent des paramètres
associés à la table.
Entrée Exemple
Enable 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%]
Entrée Exemple
Drop 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 entrée est fréquemment vide. Elle définit les options
qui sont appliquées à toutes les tables, par exemple
with_max_row_per_page = 128
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 Guide de référence du SGBD
Entrée Exemple
SqlFragQuery Dans Oracle 9I :
{VAR1NAME, VAR1VALUE}
select
'HighVal'||tp.partition_position,
tp.high_value
from
all_tab_partitions tp
where 1=1
[ and tp.table_owner=%.q:OWNER% ]
[ and tp.table_name=%.q:TABLE%]
ModifiableAttributes Liste des attributs étendus qui seront pris en compte dans
la boîte de dialogue de fusion lors de la synchronisation
de base de données
ReversedStatements Liste des instructions qui vont faire l'objet d'un reverse
engineering
Permission
Permissions disponibles pour les tables. La première colonne affiche le nom
SQL de la permission (SELECT, par exemple). La seconde colonne est le
nom abrégé 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 paramètre de vérification de table.
Utilisé dans la feuille de propriétés 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 boîte de dialogue de génération est grisée et non disponible.
Utilisé pour la génération 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 défini dans la boîte de
dialogue Liste des tables, ou dans la feuille de propriétés de la table. La
variable %COMMENT% est le commentaire défini dans la zone
Commentaire de la feuille de propriétés de la table.
82 PowerAMC
Chapitre 1 Guide de référence du SGBD
Rename
Instruction permettant de renommer une table. Si Rename est vide, le
processus de modification de base de données supprime les contraintes de clé
étrangère, crée une nouvelle table avec le nouveau nom, insère les lignes de
l'ancienne table dans la nouvelle table, et crée les index et contraintes sur la
nouvelle table à l'aide de tables temporaires.
Utilisé dans le script de modification de base de données lorsqu'une table a
été renommée.
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
renommée. La variable %NEWTABL% est le nouveau code de la table.
AlterTableHeader
En-tête de l'instruction alter table. Tout ce qui est ajouté dans cette
entrée est ajouté avant l'instruction alter table. Vous pouvez placer un
en-tête 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 entrée est ajouté après
l'instruction alter table et avant le caractère de fin.
Exemple AlterTableFooter = /* End of alter statement */
DefineTableCheck
Instruction permettant de personnaliser le script de contraintes de table
(vérifications) 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.
alter table [%QUALIFIER%]%TABLE%
Exemple add check (%CONSTRAINT%)
DropTableCheck
Instruction permettant de supprimer une vérification de table dans une
instruction alter table.
alter table [%QUALIFIER%]%TABLE%
Exemple delete check
SqlChckQuery
Requête SQL permettant de procéder au reverse engineering de vérifications
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
Requête SQL permettant de procéder au reverse engineering de permissions
accordées 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 référence du SGBD
SqlListRefrTables
Requête SQL utilisée pour répertorier les tables référencées 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 même nom pour un index et une contrainte sur une
même table.
Valeur Résultat
Yes Le nom de contrainte et le nom d'index de la table doivent être
différents. Pris en compte pendant la vérification du modèle
No Le nom de contrainte et le nom d'index de la table peuvent être
identiques
Header
En-tête de table. Tout ce qui est ajouté dans cette entrée est ajouté avant
l'instruction create table.
Footer
Table footer. Tout ce qui est ajouté dans cette entrée est ajouté après
l'instruction create table.
AllowedADT
Liste de types de données abstraits sur lesquels une table peut être basée.
Vous pouvez affecter des types de données abstraits objet aux tables. La table
utilise les propriétés du type de données abstrait et les attributs du type de
données abstrait deviennent des colonnes de la table.
Cette liste de types de données abstraits s'affiche dans la liste déroulante Basé
sur dans la feuille de propriétés de la table.
Exemple Dans Oracle 8I2 :
OBJECT
Dans DB2 UDB 5.x :
STRUCTURED
MaxConstLen
Instruction permettant de définir la longueur maximale de nom de contrainte
prise en charge par la base de données cible. Cette valeur est mise en oeuvre
dans la vérification de modèle et produit une erreur si le code dépasse la
valeur définie. Le nom de contrainte est également tronqué au moment de la
génération.
86 PowerAMC
Chapitre 1 Guide de référence du SGBD
Column
La catégorie Column contient des entrées qui définissent les paramètres
relatifs aux colonnes.
DefOptions Cette entrée est souvent vide. Elle définit des options qui sont
appliquées aux colonnes
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 Guide de référence du SGBD
ModifiableAt Liste des attributs étendus qui seront pris en compte dans la boîte
tributes de dialogue de fusion lors de la synchronisation de base de
données
ReversedStat Liste des instructions qui vont faire l'objet d'un reverse
ements engineering
Permission
Permissions disponibles pour les colonnes. La première colonne affiche le
nom SQL de la permission (SELECT, par exemple). La seconde colonne est
le nom abrégé qui s'affiche dans le titre des colonnes de grille.
Exemple Dans Sybase ASA 8 :
REFERENCES / References
SELECT / Select
UPDATE / Update
AltEnableAddColnChk
Indique si une contrainte de vérification de colonne, construite à partir des
paramètres de contrôle de la colonne, peut ou non être ajoutée dans une table
à l'aide de l'instruction alter table.
Valeur Résultat
Yes AddColnChck peut être utilisé pour modifier la contrainte de
vérification de colonne dans une instruction alter table
No Le processus de modification de la base de données procède comme
suit :
Supprime les contraintes de clé étrangère
Crée une table temporaire avec la même structure et les mêmes
colonnes que la table avant l'ajout de la contrainte de vérification de
colonne
Insère la ligne depuis l'ancienne table dans la nouvelle table temporaire
Supprime la table actuelle
Crée une nouvelle table avec la nouvelle contrainte de vérification de
colonne
Insère la ligne depuis la table temporaire dans la nouvelle table
Crée les index et contraintes sur la nouvelle table
Exemple AltEnableAddColnChk = NO
Voir aussi AddColnChck.
CheckNull
Vérifie si une colonne peut être NULL.
Valeur Résultat
Yes La vérification de modèle vérifie si les colonnes peuvent être NULL
No Aucune vérification sur la valeur NULL pour les colonnes
90 PowerAMC
Chapitre 1 Guide de référence du SGBD
EnableBindRule
Permet ou interdit la liaison d'une règle de gestion à une colonne pour les
paramètres de vérification.
Valeur Résultat
Yes Les entrées Create et Bind sont générées pour l'objet Rule
No La vérification est générée dans la commande Add de colonne
Exemple EnableBindRule = No
EnableComputedColn
Instruction permettant l'utilisation de colonnes calculées.
Valeur Résultat
Yes Colonnes calculées admises
No Colonnes calculées non admises
EnableDefault
Permet d'utiliser des valeurs prédéfinies.
Valeur Résultat
Yes La valeur par défaut est générée pour les colonnes lorsque la valeur par
défaut est définie. La valeur par défaut peut être définie dans les
paramètres de contrôle pour chaque colonne. La variable
%DEFAULT% contiendra la valeur par défaut
La case Valeur par défaut pour les colonnes doit être cochée dans la
page Tables & vues de la boîte de dialogue de génération
No La case Valeur par défaut pour les colonnes est grisée dans la page
Tables & vues de la boîte de dialogue de génération. La valeur par
défaut ne peut pas être générée
EnableIdentity
Prise en charge de l'entrée de mot clé Identity. Les colonnes Identity sont des
compteurs séquentiels gérés par la base de données (par exemple, Sybase et
Microsoft SQL Server).
Valeur Résultat
Yes Active la case à cocher Identity dans la feuille de propriétés de la
colonne
No La case à cocher Identity ne s'affiche pas dans la feuille de propriétés de
la colonne
Lorsque la case Identity est cochée, le mot clé Identity est généré dans le
script après le type de données de la colonne. Une colonne Identity ne peut
pas être NULL : lorsque vous cochez la case Identity, la case Obligatoire est
automatiquement cochée.
92 PowerAMC
Chapitre 1 Guide de référence du SGBD
EnableNull
Permet l'utilisation du mot clé NULL.
Base de données
Valeur cible Résultat
Yes Supports NULL Les colonnes non signalées comme
keyword Obligatoire dans le MPD sont générées avec
le mot clé NULL après le type de données
No Does not support Les colonnes non signalées comme
NULL keyword Obligatoire dans le MPD sont générées sans
le mot clé NULL après le type de données
94 PowerAMC
Chapitre 1 Guide de référence du SGBD
EnableNotNullWithDflt
Instruction permettant d'utiliser Not null with default.
Valeur Résultat
Yes Lorsque vous activez With Default dans la feuille de propriétés d'une
colonne, une valeur par défaut est affectée à une colonne lorsqu'une
valeur Null est insérée
No L'option With Default dans une feuille de propriétés de colonne est
cachée
Bind
Instruction permettant de lier une règle à 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 paramètre de contrôle de colonne.
Utilisé dans les feuilles de propriétés de colonne pour renseigner les noms de
contrainte.
Exemple CKC_%.U17:COLUMN%_%.U8:TABLE%
ColumnComment
Instruction permettant d'ajouter un commentaire à une colonne.
Utilisé pour la génération 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
(vérifications) au sein d'une instruction create table. Cette instruction
est appelée si les instructions create, add, ou alter contiennent
%CONSTDEFN%.
Exemple [constraint %CONSTNAME%] check (%CONSTRAINT%)
DropColnChck
Instruction permettant de supprimer une vérification de colonne dans une
instruction alter table. Cette instruction est utilisée dans le script de
modification de base de données lorsque les paramètres de contrôle ont été
supprimés d'une colonne.
Si DropColnChck est vide, la procédure de modification d'une base de
données :
♦ Supprime les contraintes de clé étrangère
♦ Crée une table temporaire avec la même structure et les mêmes colonnes
que la table avant la suppression du paramètre de contrôle
♦ Insère les lignes depuis l'ancienne table dans la nouvelle table temporaire
♦ Supprime la table actuelle
♦ Crée une nouvelle table sans paramètre de contrôle sur la colonne
modifiée
♦ Insère les lignes depuis la table temporaire dans la nouvelle table
♦ Crée les index et contraintes sur la nouvelle table
96 PowerAMC
Chapitre 1 Guide de référence du SGBD
DropColnComp
Instruction permettant de supprimer une expression calculée 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 paramètre est utilisé dans
le script de modification de base de données lorsque la définition de la
colonne a été modifiée. L'instruction ModifyColumn définie dans ce
paramètre est une instruction SQL spécifique différente 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 défaut de colonne dans une
instruction alter table. Ce paramètre est utilisé dans le script de modification
de base de données, lorsque la valeur par défaut d'une colonne a été modifiée
dans la table.
Si ModifyColnDflt est vide, le processus de modification de base de
données :
♦ Supprime les contraintes de clé étrangère
♦ Crée une table temporaire avec la même structure et les mêmes colonnes
que la table avant la modification de la valeur par défaut
♦ Insère les lignes depuis l'ancienne table dans la nouvelle table temporaire
♦ Supprime la table actuelle
♦ Crée une nouvelle table avec la nouvelle valeur par défaut pour la
colonne modifiée
♦ Insère les lignes depuis la table temporaire dans la nouvelle table
♦ Créer les index et les contraintes sur la nouvelle table
AddColnChck
Instruction permettant de modifier une vérification de colonne dans une
instruction alter table. Cette instruction est utilisée dans un script de
modification de base de données lorsque les paramètres de contrôle d'une
colonne ont été modifiés dans la table.
AltEnableAddColnChk doit être défini à YES pour permettre
l'utilisation de cette instruction.
Si AddColnChck est vide, le processus de modification de base de
données :
♦ Supprime les contraintes de clé étrangère
♦ Crée une table temporaire avec la même structure et les mêmes colonnes
que la table avant modification des paramètres de contrôle
♦ Insère les lignes depuis l'ancienne table dans la nouvelle table temporaire
♦ Supprime la table actuelle
♦ Crée une nouvelle table avec les paramètres de contrôle pour la colonne
♦ Insère les lignes depuis la table temporaire dans la nouvelle table
♦ Crée les index et les contraintes sur la nouvelle table
98 PowerAMC
Chapitre 1 Guide de référence 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 calculée 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 définir la longueur maximale de nom de contrainte
prise en charge par la base de données cible. Cette valeur est mise en oeuvre
dans la vérification de modèle et produit une erreur si le code dépasse la
valeur définie. Le nom de contrainte est également tronqué au moment de la
génération.
Rename
Instruction permettant de renommer une colonne dans une instruction alter
table.
Exemple alter table [%QUALIFIER%]%TABLE%
rename %OLDCOLUMN% to %NEWCOLUMN%
SqlChckQuery
Requête SQL permettant de procéder au reverse engineering de paramètres
de contrôle d'une colonne.
Le résultat doit être conforme à la syntaxe SQL appropriée.
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
Requête SQL permettant de procéder au reverse engineering de permissions
d'objet.
Le résultat doit être conforme à la syntaxe SQL appropriée.
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 référence du SGBD
Unbind
Instruction permettant de faire en sorte qu'une règle ne soit plus liée à une
colonne.
Exemple Dans Sybase Adaptive Server Enterprise 12 :
sp_unbindrule %TABLE%.%COLUMN%, %RULE%
Index
La catégorie Index contient des entrées définissant les paramètres associés à
un index.
Entrée Exemple
Enable Enable = Yes
Maxlen Maxlen = 128
Create Dans Sybase ASA 8 :
create [%UNIQUE%] index %INDEX% on
[%QUALIFIER%]%TABLE% (
%CIDXLIST%
)
[%OPTIONS%]
Options in %s : category=tablespace
DefOptions in %s : category=tablespace
SqlListQuery —
SqlAttrQuery —
Entrée Exemple
SqlOptsQuery 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%]
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 boîte de dialogue de fusion lors de la synchronisation
de base de données
ReversedStatements Liste des instructions qui vont faire l'objet d'un reverse
engineering
102 PowerAMC
Chapitre 1 Guide de référence du SGBD
EnableAscDesc
Mots clés ASC et DESC admis sur une définition d'index. Vous pouvez
indiquer un ordre ascendant ou descendant en sélectionnant la valeur
correspondante dans la liste déroulante Tri de la page Colonnes d'une feuille
de propriétés d'index. Ascendant est la valeur par défaut.
EnableCluster
Permet de définir un index comme index cluster.
Valeur Résultat
Yes La case à cocher Cluster s'affiche dans la feuille de propriétés d'index
No L'index ne prend pas en charge les index cluster
EnableFunction
Permet d'utiliser des index basés sur des fonctions.
Valeur Résultat
Yes Vous pouvez définir des expressions pour les index
No L'index ne prend pas en charge les expressions
EnableOwner
Permet de définir des propriétaires d'index. Le propriétaire d'index peut être
le propriétaire de la table, ou bien il peut s'agir d'un autre utilisateur.
Valeur Résultat
Yes La liste déroulante Propriétaire s'affiche dans la feuille de propriétés
d'index et l'utilisateur peut sélectionner un propriétaire pour l'index
courant
No L'index ne prend pas en charge les propriétaires
104 PowerAMC
Chapitre 1 Guide de référence du SGBD
MandIndexType
Détermine si le type d'index est obligatoire pour un index.
Valeur Résultat
Yes Le type est obligatoire
No Le type n'est pas obligatoire
MaxColIndex
Nombre maximum de colonnes admis dans un index dans le SGBD. La
vérification de modèle procède au contrôle et indique une erreur si le nombre
de colonnes incluses dans la définition d'index dépasse la valeur admise.
Exemple MaxColIndex = 99
Cluster
Mot clé Cluster. Si ce paramètre est vide, la valeur par défaut de la variable
%CLUSTER% est CLUSTER.
Exemple Dans Sybase AS Enterprise 11.x :
Cluster = clustered
AddColIndex
Instruction permettant d'ajouter une colonne dans l'instruction Create
Index. Ce paramètre définit chaque colonne dans la liste des colonnes de
l'instruction Create Index.
Exemple Dans Sybase Adaptive Server Anywhere 6 :
AddColIndex = %COLUMN% [%ASC%]
DefIndexType
Définit le type par défaut pour un index.
Exemple Dans DB2 :
Type2
DefineIndexColumn
Définit la colonne d'un index.
Footer
Fin d'index. Tout ce qui est ajouté dans cette entrée est ajouté après
l'instruction create index.
Header
En-tête d'index. Tout ce qui est ajouté dans cette entrée 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 référence du SGBD
SqlSysIndexQuery
Requête SQL utilisée pour répertorier les index système créés par la base de
données. 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.
comment on index [%QUALIFIER%]%TABLE%.%INDEX% is
Exemple %.q:COMMENT%
UniqName
Définition de la portée d'un nom d'index unique. Utilisé par la vérification de
modèle.
Valeur Résultat
Yes Un nom d'index unique est utilisé pour toute la base de données
No Un nom d'index peut être utilisé plusieurs fois s'il est associé à
différents objets
CreateBeforeKey
Permet d'inverser l'ordre de génération des index et des clés.
Valeur Résultat
Yes Les index sont générés avant les clés
No Les index sont générés après les clés
108 PowerAMC
Chapitre 1 Guide de référence du SGBD
Pkey
La catégorie Pkey contient des entrées qui définissent les paramètres relatifs
aux clés primaires.
DefOptions —
PkAutoIndex
Clé primaire auto-indexée. Cette option détermine principalement si
l'instruction Create Index doit être générée pour chaque instruction de
clé primaire.
UseSpPrimKey
Utilisez l'instruction Sp_primarykey pour générer une clé primaire.
Pour une base de données qui prend en charge la procédure de mise en
oeuvre de définition de clé, vous pouvez tester la valeur de la variable
correspondante %USE_SP_PKEY% et choisir entre la création d'une clé
dans la table et le lancement d'une procédure.
Valeur Résultat
Yes L'instruction Sp_primarykey est utilisée pour générer une clé
primaire
No Les clés primaires sont générées séparément dans une instruction alter
table
110 PowerAMC
Chapitre 1 Guide de référence du SGBD
ConstName
Permet de déclarer un template personnalisable pour tous les noms de
contrainte de clé primaire dans un MPD.
Pour chaque table dans un modèle, le nom de contrainte de clé primaire est
défini dans l'entrée Nom de contrainte pour la clé définie comme clé
primaire. Ce nom de contrainte est généré dans la base de données si cette
dernière prend en charge les clés primaires et noms de contrainte.
Certaines variables PowerAMC peuvent être utilisées pour définir le nom de
contrainte de clé primaire :
♦ %TABLE% : code de table
♦ %KEY% : code de clé
♦ %COLUMN% : code de colonne
♦ %COLNNO% : numéro de colonne
Les noms de contrainte en double sont renommés automatiquement en
prenant en compte la longueur de la contrainte.
%OID%
La variable %OID% utilisée dans certains fichier .Def dans la Version 6
n'est plus disponible. Les identificateurs d'objet sont codés sur plus de 20
caractères, ce qui les rend inutilisables pour les noms de contrainte
(souvent limités à 8 ou à 18 caractères)
PKeyComment
Instruction permettant d'ajouter un commentaire de clé primaire.
Exemple comment on primary key [%QUALIFIER%]%TABLE%.%PKEY% is
%.q:COMMENT%
Key
La catégorie Key contient des entrées qui définissent les paramètres associés
aux clés.
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
SqlAttrQuery —
SqlOptsQuery —
112 PowerAMC
Chapitre 1 Guide de référence du SGBD
SqlFragQuery —
ModifiableAttributes Liste des attributs étendus qui seront pris en compte dans
la boîte de dialogue de fusion lors de la synchronisation
de base de données
ReversedStatements Liste des instructions qui vont faire l'objet d'un reverse
engineering
AllowNullableColn
Instruction indiquant que la clé peut contenir des colonnes non obligatoires.
Valeur Résultat
Yes Colonne pouvant être non obligatoires admises
No Seules les colonnes obligatoires sont admises
UniqConstAutoIndex
Indexaction automatique de contrainte unique de clé alternative. Cette option
commence par déterminer si une instruction Create Index est requise
pour chaque instruction de clé.
114 PowerAMC
Chapitre 1 Guide de référence du SGBD
UniqInTable
Clé alternative créée dans la table. Cette entrée détermine l'endroit où la clé
alternative est définie dans le script SQL.
Valeur Résultat
Yes Les clés alternatives sont incluses dans l'instruction create table.
L'entrée Add pour la clé est concaténée dans la variable
%TABLEDEFN%
No Les clés alternatives sont générées séparément dans une instruction
alter table, le contenu de l'entrée Create pour la clé alternative est
utilisé lors de la génération
MaxConstLen
Instruction permettant de définir la longueur maximale de nom de contrainte
prise en charge par la base de données cible. Cette valeur est mise en oeuvre
dans la vérification de modèle et produit une erreur si le code dépasse la
valeur définie. Le nom de contrainte est également tronqué au moment de la
génération.
ConstName
Permet de déclarer un template personnalisable pour tous les noms de
contrainte de clé alternative dans un MPD. Utilisé dans la feuille de
propriétés de clé pour toutes les clés qui sont des clés alternatives et qui ne
sont pas des clés primaires.
Pour chaque table dans un modèle, un nom de contrainte de clé alternative est
défini dans l'entrée Nom de contrainte des propriétés de la clé si cette clé est
définie comme clé alternative. Ce nom de contrainte est généré dans la base
de données si la base de données prend en charge les clés alternatives et les
noms de contrainte.
SqlAkeyIndex
Requête 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 référence du SGBD
Reference
La catégorie Reference contient des entrée définissant des paramètres liés aux
références.
SqlAttrQuery —
SqlListQuery —
ModifiableAttributes Liste des attributs étendus qui seront pris en compte dans
la boîte de dialogue de fusion lors de la synchronisation
de base de données
ReversedStatements Liste des instructions qui vont faire l'objet d'un reverse
engineering
EnableChangeJoinOrder
Lorsqu'une référence est liée à une clé, comme affiché sur la page Jointures
d'une feuille de propriétés de référence, cette entrée détermine si
l'organisation automatique de l'ordre des jointures est disponible.
Valeur Résultat
Yes 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 déplacement
ne sont pas disponibles). En décochant cette case, vous pouvez
modifier manuellement l'ordre de jointure à l'aide des boutons de
déplacement (qui sont alors disponibles)
No La case Organisation automatique de l'ordre des jointures est grisée et
non disponible
EnablefKeyName
Rôle de clé étrangère admis lors de la génération de base de données.
Valeur Résultat
Yes Le code de la référence est utilisé comme rôle pour la clé étrangère
No Le rôle n'est pas admis pour la clé étrangère
118 PowerAMC
Chapitre 1 Guide de référence du SGBD
FKAutoIndex
Clé étrangère auto-indexée. Cette option détermine si une instruction
Create Index doit ou non être générée pour chaque instruction de clé
étrangère.
MaxConstLen
Instruction permettant de définir la longueur maximale de nom de contrainte
prise en charge par la base de données cible. Cette valeur est mise en oeuvre
dans la vérification de modèle et produit une erreur si le code dépasse la
valeur définie. Le nom de contrainte est également tronqué au moment de la
génération.
ConstName
Permet de déclarer un template personnalisable pour tous les noms de
contrainte de clé étrangère dans un MPD. Utilisé dans la feuille de propriétés
de référence, dans la zone Nom de contrainte sur la page Intégrité.
Pour chaque table dans un modèle, un nom de contrainte de clé étrangère est
défini dans l'entrée Nom de contrainte de la feuille de propriétés d'une
référence pour une clé définie comme clé étrangère. Ce nom de contrainte est
généré dans la base de données si cette dernière prend en charge les clés
étrangères et les noms de contrainte.
Les variables PowerAMC suivantes peuvent être utilisées pour définir un
nom de contrainte de clé étrangère :
%TABLE% : code de la table (table parent et enfant, compatible Version 6)
Les noms de contrainte en double sont automatiquement renommés en tenant
compte de la longueur de la contrainte.
Exemple FK_%.U8:CHILD%_%.U9:REFR%_%.U8:PARENT%
CheckOnCommit
Le test d'intégrité référentielle est uniquement effectué après COMMIT.
Contient le mot clé utilisé pour spécifier une référence avec l'option
CheckOnCommit.
Exemple CHECK ON COMMIT
DclUpdIntegrity
Contraintes d'intégrité référentielle déclarative pour la modification admises.
Doit contenir une liste de mots de la sélection suivante.
RESTRICT
CASCADE
SET NULL
SET DEFAULT
Selon la liste de mots sélectionnés, le bouton radio sur la page Intégrité de la
feuille de propriétés de référence est disponible ou non.
120 PowerAMC
Chapitre 1 Guide de référence du SGBD
DclDelIntegrity
Contraintes d'intégrité référentielle déclarative pour la suppression admises.
Doit contenir une liste de mots de la sélection suivante.
RESTRICT
CASCADE
SET NULL
SET DEFAULT
Selon la liste de mots sélectionnés, le bouton radio sur la page Intégrité de la
feuille de propriétés de référence est disponible ou non.
Exemple Dans Sybase Adaptive Server Anywhere 6 :
RESTRICT
CASCADE
SET NULL
SET DEFAULT
DefineJoin
Définit une jointure pour une référence, ce qui correspond à la variable
%JOINS%. Il s'agit d'une autre façon de définir le contenu de l'instruction
create reference.
En règle générale, le script create pour une référence utilise les variables
%CKEYCOLUMNS% et %PKEYCOLUMNS% qui contiennent des
colonnes enfant et parent séparées par une virgule.
Si vous utilisez %JOINS%, vous pouvez faire référence à chaque paire de
colonnes parent-enfant séparément.
Lorsque vous utilisez %JOINS%, une boucle est exécutée sur la jointure pour
chaque paire de colonnes parent-enfant, ce qui permet d'utiliser une syntaxe
mélangeant PK et FK.
SqlListChildrenQuery
Requête SQL utilisée pour répertorier les jointures dans une référence.
Exemple Dans Oracle 8 :
SELECT COL2.COLUMN_NAME, COL1.COLUMN_NAME
FROM SYS.ALL_CONS_COLUMNS COL1, SYS.ALL_CONS_COLUMNS
COL2
WHERE
COL1.POSITION = COL2.POSITION
AND COL1.OWNER='%SCHEMA%' AND
COL1.TABLE_NAME='%TABLE%'
AND COL2.OWNER='%POWNER%' AND
COL2.TABLE_NAME='%PARENT%'
AND COL1.CONSTRAINT_NAME='%FKCONSTRAINT%' AND
COL2.CONSTRAINT_NAME='%PKCONSTRAINT%'
ORDER BY COL1.POSITION
UseSpFornKey
Utilise l'instruction Sp_foreignkey pour générer une clé étrangère.
Valeur Résultat
Yes L'instruction Sp_foreignkey est utilisée pour créer une référence
No Les clés étrangères sont générées séparément dans une instruction alter
table à l'aide de la commande Create de la référence
FKeyComment
Commande permettant d'ajouter un commentaire à une clé étrangère.
Exemple comment on foreign key [%QUALIFIER%]%TABLE%.%FK% is
%.q:COMMENT%
122 PowerAMC
Chapitre 1 Guide de référence du SGBD
View
La catégorie View contient des entrées qui définissent les paramètres associés
aux vues.
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
]
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 boîte de dialogue de fusion lors de la synchronisation
de base de données
Permission
Permissions disponibles pour les vues. La première colonne affiche le nom
SQL de la permission (SELECT, par exemple). La seconde colonne est le
nom abrégé 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 entrée est ajouté après
l'instruction create view.
Header
En-tête de vue. Tout ce qui est ajouté dans cette entrée est ajouté avant
l'instruction create view.
124 PowerAMC
Chapitre 1 Guide de référence du SGBD
SqlPermQuery
Requête SQL permettant de procéder au reverse engineering de permissions
accordées 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 paramètre est vide, la case à cocher Commentaire est grisée et
non disponible (zone de groupe Vues, dans la page Tables et vues de la boîte
de dialogue de génération).
Exemple Dans Oracle 8 :
comment on table [%QUALIFIER%.]%VIEW% is '%COMMENT%'
La variable %VIEW% est le nom de la vue tel que défini dans la boîte de
dialogue Liste des vues ou dans la feuille de propriétés de la vue. La variable
%COMMENT% représente le commentaire défini dans la zone de texte
Commentaire de la feuille de propriétés de la vue.
ViewCheck
Option permettant de vérifier une vue. Ce paramètre détermine si la case
With Check Option dans la feuille de propriétés de la vue est disponible ou
grisée.
Si la case est cochée et que le paramètre ViewCheck n'est pas vide, la
valeur de ViewCheck est générée à la fin de l'instruction select de la vue et
avant le caractère de fin.
Exemple Dans Sybase SQL Anywhere 5.5 :
ViewCheck = with check option
Le script généré 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 définir le type d'utilisation d'une vue. La valeur définie
pour cette entrée sera affichée dans la liste déroulante Utilisation sur la
feuille de propriétés de la vue.
Exemple Dans Oracle 9i :
ViewStyle = materialized view
Tablespace
Le Tablespace contient des entrées qui définissent les paramètres associés
aux tablespace.
126 PowerAMC
Chapitre 1 Guide de référence du SGBD
DefOptions —
SqlListQuery {TABLESPACE}
SqlOptsQuery —
SqlFragQuery —
ModifiableAttributes Liste des attributs étendus qui seront pris en compte dans la
boîte de dialogue de fusion lors de la synchronisation de
base de données
ReversedStatements Liste des instructions qui vont faire l'objet d'un reverse
engineering
TablespaceComment
Instruction permettant d'ajouter un commentaire à un tablespace.
Exemple comment on tablespace [%QUALIFIER%]%TABLESPACE% is
%.q:COMMENT%
Storage
La catégorie Storage contient des entrées qui définissent les paramètres
associés aux storages.
128 PowerAMC
Chapitre 1 Guide de référence du SGBD
DefOptions —
SqlList Query —
SqlAttrQuery {STORAGE, OPTIONS}
ModifiableAttributes Liste des attributs étendus qui seront pris en compte dans
la boîte de dialogue de fusion lors de la synchronisation
de base de données
ReversedStatements Liste des instructions qui vont faire l'objet d'un reverse
engineering
StorageComment
Instruction permettant d'ajouter un commentaire à un storage.
Exemple comment on storage [%QUALIFIER%]%STORAGE% is
%.q:COMMENT%
Database
La catégorie Database contient des entrées qui définissent les paramètres
associés aux database.
Options 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 boîte de dialogue de fusion lors de la synchronisation
de base de données
ReversedStatements Liste des instructions qui vont faire l'objet d'un reverse
engineering
130 PowerAMC
Chapitre 1 Guide de référence du SGBD
BeforeCreateDatabase
Détermine si les instructions Create Tablespace et Create
Storage sont générées avant ou après la création de la base de données.
Valeur par défaut : YES.
Valeur Résultat
Yes Les instructions Create Tablespace et Create Storage sont générées
avant l'instruction Create Database
No Les instructions Create Tablespace et Create Storage sont générées
après l'instruction Create Database
CloseDatabase
Instruction permettant de fermer une base de données. Si ce paramètre est
vide, la case Fermeture de la base est grisée et non disponible (zone de
groupe Base de données sur la page Base de données) dans la boîte de
dialogue de génération.
Exemple Dans Sybase AS Enterprise 11.x :
CloseDatabase =
OpenDatabase
Instruction permettant d'ouvrir une base de données. Si ce paramètre est vide,
la case Ouverture de la base est grisée et non disponible (zone de groupe
Base de données sur la page Base de données) dans la boîte de dialogue de
génération.
Exemple Dans Sybase AS Enterprise 11.x :
OpenDatabase = use %DATABASE%
La variable %DATABASE% est le code de la base de données associé au
modèle généré.
EnableManyDatabases
Détermine si le SGBD prend en charge plusieurs bases de données dans le
même modèle.
Exemple Dans DB2MVS8 :
EnableManyDatabases = Yes
Domain
La catégorie Domain contient des entrées qui définissent les paramètres
associés aux domaines.
132 PowerAMC
Chapitre 1 Guide de référence du SGBD
EnableBindRule
Permet ou interdit l'association d'une règle de gestion à un domaine pour les
paramètres de contrôle.
Valeur Résultat
Yes Les entrées Create et Bind de l'objet Rule sont générées
No Le contrôle inclus dans la commande d'ajout du domaine est généré
EnableDefault
Permet l'utilisation de valeurs par défaut prédéfinies.
Valeur Résultat
Yes La valeur par défaut est générée pour le domaine lorsque la valeur par
défaut est définie. La valeur par défaut peut être définie dans les
paramètres de contrôle. La variable %DEFAULT% va contenir la
valeur par défaut
No La valeur par défaut ne peut pas être générée
EnableCheck
Détermine si la génération de paramètres de contrôle est autorisée ou non.
Cette entrée est testée lors de la génération des colonnes : si l'option Type utilisateur
est sélectionnée pour les colonnes dans la boîte de dialogue de génération, et si
EnableCheck est défini à Yes pour les domaines, alors les paramètres de contrôle ne
sont pas générés pour les colonnes, puisque la colonne est associée à un domaine
ayant des paramètres de contrôle. Lorsque les contrôles portant sur la colonne
divergent de ceux sur le domaine, les contrôles sur la colonne sont générés.
Valeur Résultat
Yes Paramètres de contrôle générés
No Toutes les variables liées aux paramètres de contrôle ne seront pas
évaluées lors de la génération et du reverse engineering
EnableOwner
Permet de définir des propriétaires pour les domaines.
Valeur Résultat
Yes La liste déroulante Propriétaire s'affiche dans la feuille de propriétés du
domaine et l'utilisateur peut sélectionner un propriétaire pour le
domaine courant
No Le domaine ne prend pas en charge les propriétaires
UserTypeName
Vous pouvez définir des types de données avec des noms spécifiés par
l'utilisateur. Vous améliorez ainsi la lisibilité du contenu des objets dans vos
applications particulières.
Exemple UserTypeName = T_%DOMAIN%
Bind
Lie une règle de gestion à un domaine.
Exemple Dans Sybase Adaptive Server Enterprise 11 :
[execute] sp_bindrule %RULE%, %DOMAIN%
134 PowerAMC
Chapitre 1 Guide de référence du SGBD
BindDefault
Lie une valeur par défaut à un domaine.
Exemple Dans Microsoft SQL Server and Sybase 11 :
sp_bindefault %DEFAULTNAME%, %DOMAIN%
CreateDefault
Crée une valeur par défaut pour un domaine.
Exemple Dans Microsoft SQL Server and Sybase 11 :
create default %DEFAULTNAME%
as %DEFAULT%
SqlListDefaultQuery
Requête SQL permettant de répertorier les valeurs par défaut du domaine.
Dans le cas de certains SGBD, le processus de reverse engineering ODBC
extrait les valeurs par défaut de domaine dans les tables système. Cette
requête répertorie ces valeurs par défaut.
UddtComment
Instruction permettant d'ajouter un commentaire pour un type de données
utilisateur.
Exemple comment on user-defined data type [%QUALIFIER%]%DOMAIN%
is %.q:COMMENT%
Unbind
Dissocie une règle de gestion d'un domaine.
Exemple Dans Sybase Adaptive Server Enterprise 11 :
[execute] sp_unbindrule %DOMAIN%, %RULE%
Entrée Exemple
Enable Sybase Adaptive Server Anywhere 6 :
Enable = Yes
SqlAttrQuery —
ModifiableAttributes Liste des attributs étendus qui seront pris en compte dans
la boîte de dialogue de fusion lors de la synchronisation
de base de données
ReversedStatements Liste des instructions qui vont faire l'objet d'un reverse
engineering
136 PowerAMC
Chapitre 1 Guide de référence du SGBD
EnableAdtOnDomn
Instruction permettant l'utilisation de types de données abstraits sur les
domaines.
Valeur Résultat
Yes Les types de données abstraits sont ajoutés dans la listes des types de
domaines, à condition qu'ils aient un type correct
No Les types de données abstraits ne sont pas admis pour les domaines
EnableAdtOnColn
Instruction permettant l'utilisation de types de données abstraits sur les
colonnes.
Valeur Résultat
Yes Les types de données abstraits sont ajoutés dans la listes des types de
colonne, à condition qu'ils aient un type correct
No Les types de données abstraits ne sont pas admis pour les colonnes
Install
Instruction permettant d'installer une classe Java. Cette entrée équivaut à une
instruction create.
Dans Sybase Adaptive Server Anywhere, les types de données abstraits ne
sont pas réellement créés, mais installés.
Exemple Dans Sybase Adaptive Server Anywhere 6 :
install JAVA UPDATE from file '%FILE%'
Remove
Instruction permettant de désinstaller une classe Java. Cette entrée équivaut à
une instruction de suppression.
Dans Sybase Adaptive Server Anywhere, les types de données abstraits ne
sont pas réellement supprimés, mais retirés.
Exemple Dans Sybase Adaptive Server Anywhere 6 :
remove JAVA class %ADT%
AllowedADT
Liste des types de données abstraits qui peuvent être utilisés comme types de
données pour un type de données abstrait.
Exemple Dans Oracle 8i :
OBJECT
ADTComment
Instruction permettant d'ajouter un commentaire au type de données abstrait.
Exemple comment on abstract data type [%QUALIFIER%]%ADT% is
%.q:COMMENT%
Entrée Example
_
Create
Add Dans Oracle 8 :
%ADTATTR% %DATATYPE%
138 PowerAMC
Chapitre 1 Guide de référence du SGBD
Entrée Example
Drop —
Modify —
SqlListQuery Dans Oracle 8 :
{ ADT, ADTATTR , DTTPCODE, LENGTH, PREC }
SELECT type_name, attr_name, attr_type_name,
length, precision
FROM all_type_attrs
ORDER BY type_name
ModifiableAttributes Liste des attributs étendus qui seront pris en compte dans
la boîte de dialogue de fusion lors de la synchronisation
de base de données
ReversedStatements Liste des instructions qui vont faire l'objet d'un reverse
engineering
AllowedADT
Liste des types de données abstraits qui peuvent être utilisés comme type de
données pour des attributs de type de données abstrait.
Dans PowerAMC, lorsque vous sélectionnez le type OBJECT pour un type
de données abstrait, un onglet Attributs est ajoutée dans la feuille de
propriétés du type de données abstrait. Cet onglet vous permet de spécifier
les attributs du type de données de l'objet.
Exemple Dans Oracle 8i :
OBJECT
TABLE
VARRAY
User
La catégorie User contient des entrées qui définissent les paramètres associés
aux utilisateurs.
SqlAttrQuery —
Create Dans Sybase ASE 12.5 :
sp_adduser %USERID%
[%PRIVILEGE%]
ModifiableAttributes Liste des attributs étendus qui seront pris en compte dans
la boîte de dialogue de fusion lors de la synchronisation
de base de données
ReversedStatements Liste des instructions qui vont faire l'objet d'un reverse
engineering
140 PowerAMC
Chapitre 1 Guide de référence du SGBD
SqlPermQuery
Requête SQL permettant de procéder au reverse engineering des permissions
accordées aux utilisateurs.
Exemple Dans Sybase Adaptive Server Enterprise 12.5 :
{USER ID, PRIVILEGE ...}
Rule
La catégorie Rule contient des entrées qui définissent les paramètres associés
aux règles.
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
SqlAttrQuery —
ModifiableAttributes Liste des attributs étendus qui seront pris en compte dans
la boîte de dialogue de fusion lors de la synchronisation
de base de données
ReversedStatements Liste des instructions qui vont faire l'objet d'un reverse
engineering
142 PowerAMC
Chapitre 1 Guide de référence du SGBD
MaxDefaultLen
Longueur maximale que le SGBD prend en charge pour le nom par défaut de
la colonne. Ce nom n'est défini que dans la syntaxe des bases de données de
la famille Sybase.
Exemple MaxDefaultLen = 254
ColnDefaultName
Nom de la valeur par défaut pour la colonne. Lorsqu'une colonne a une
valeur par défaut particulière définie dans ses paramètres de contrôle, un nom
est créé pour cette valeur par défaut de colonne. Cette entrée est utilisée avec
les SGBD qui ne prennent pas en charge les paramètres de contrôle 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 défaut, Technical Engineer. Le nom par défaut de la
colonne, D_EMPFUNC_EMPLOYEE, est créé :
create default D_EMPFUNC_EMPLOYEE
as 'Technical Engineer'
go
ColnRuleName
Les paramètres de contrôle de colonne sont définis dans des règles séparées
dans l'instruction create table pour Sybase SQL Server 4.x et Microsoft
SQL Server. Lorsqu'une colonne a une règle particulière définie dans ses
paramètres de contrôle, ces SGBD créent un nom pour cette règle 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
définie dans ses paramètres de contrôle : Industry, Military, Nuclear, Bank,
Marketing.
UddtDefaultName
Nom par défaut pour un type de données défini par l'utilisateur. Lorsqu'un
domaine a une valeur par défaut particulière définie dans ses paramètres par
défaut, les bases de données Sybase créent un nom comme valeur par défaut
pour ce type de données par défaut.
La variable correspondante est %DEFAULTNAME%
Exemple Dans Sybase Adaptive Server Enterprise 11 :
UddtDefaultName = D_%.28:DOMAIN%
Le domaine FunctionList a une valeur par défaut définie dans ses
paramètres de contrôle : Technical Engineer. Le script SQL suivant
va générer un nom par défaut pour cette valeur par défaut :
create default D_Functionlist
as 'Technical Engineer'
go
UddtRuleName
Nom d'une règle définie pour un type de données utilisateur. Lorsqu'un
domaine a une règle spécifique définie dans ses paramètres de contrôle, la
base de données Sybase crée un nom pour cette valeur de type de données
utilisateur pour une règle.
La variable correspondante est %RULE%
144 PowerAMC
Chapitre 1 Guide de référence du SGBD
RuleComment
Instruction permettant d'ajouter un commentaire à une règle.
Exemple comment on rule [%QUALIFIER%]%RULE% is %.q:COMMENT%
Procedure
La catégorie Procedure contient des entrées qui définissent les paramètres
associés aux procédures stockées.
ModifiableAttributes Liste des attributs étendus qui seront pris en compte dans
la boîte de dialogue de fusion lors de la synchronisation
de base de données
ReversedStatements Liste des instructions qui vont faire l'objet d'un reverse
engineering
Permission
Permissions disponibles pour les procédures. La première colonne affiche le
nom SQL de la permission (SELECT, par exemple). La seconde colonne est
le nom abrégé qui s'affiche dans le titre des colonnes de grille.
Exemple Dans Sybase ASE 12.5 :
EXECUTE / Exe
EnableFunc
Détermine si les fonctions sont admises ou non.
Les fonctions sont une forme de procédure qui renvoie à l'environnement une
valeur à utiliser dans des requêtes et dans d'autres instructions SQL.
Valeur Résultat
Yes La fonction est admise
No La fonction n'est pas admise
146 PowerAMC
Chapitre 1 Guide de référence du SGBD
EnableOwner
Permet de définir des propriétaires pour les procédures.
Valeur Résultat
Yes La liste déroulante Propriétaire s'affiche dans la feuille de propriétés de
procédure et l'utilisateur peut sélectionner un propriétaire pour la
procédure courante
No La procédure ne peut pas prendre en charge les propriétaires
MaxFuncLen
Détermine la longueur maximum du nom d'une fonction.
Exemple MaxFuncLen = 128
CreateFunc
Instruction permettant de créer une fonction.
Exemple Dans Sybase Adaptive Server Anywhere 6 :
create function %FUNC%[(%PROCPRMS%)]
%TRGDEFN%
CustomProc
Instruction permettant de créer une procédure stockée.
Les procédures stockées sont des scripts qui utilisent des opérateurs
prédéfinis, des variables, des fonctions et des macros pour gérer et modifier
des données.
Exemple Dans Sybase Adaptive Server Anywhere 6 :
create procedure %PROC% (IN <arg> <type>)
begin
.
.
.
end
/
CustomFunc
Instruction permettant de créer une fonction.
Les fonctions définies par l'utilisateur ont la forme d'une procédure qui
renvoie une valeur à l'environnement appelant afin de l'utiliser dans des
requêtes 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
Requête SQL permettant de procéder au reverse engineering de permissions
accordées sur les procédures.
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 Guide de référence du SGBD
ProcedureComment
Instruction permettant d'ajouter un commentaire à une procédure.
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 catégorie Trigger contient des entrées qui définissent les paramètres
associés aux triggers.
ModifiableAttributes Liste des attributs étendus qui seront pris en compte dans
la boîte de dialogue de fusion lors de la synchronisation
de base de données
ReversedStatements Liste des instructions qui vont faire l'objet d'un reverse
engineering
EnableMultiTrigger
Détermine si plusieurs triggers de même type peuvent être utilisés ou non.
Exemple EnableMultiTrigger = Yes
150 PowerAMC
Chapitre 1 Guide de référence du SGBD
EnableOwner
Permet de définir des propriétaires de trigger. Le propriétaire de trigger peut
être identique ou différent du propriétaire de table.
Valeur Résultat
Yes La liste déroulante Propriétaire s'affiche dans la feuille de propriétés de
trigger et l'utilisateur peut sélectionner un propriétaire pour le trigger
courant
No Le trigger ne prend pas en charge le propriétaire
DefaultTriggerName
Nom de trigger par défaut.
Exemple Dans Sybase Adaptive Server Anywhere 6 :
%TEMPLATE%_%.L:TABLE%
UseErrorMsgTable
Gère les erreurs lors de la génération de trigger en utilisant des messages
définis par l'utilisateur.
Lorsque vous sélectionnez Utilisateur dans la page Messages d'erreur de la
boîte de dialogue Régénération des triggers, la macro .ERROR sera
remplacée par le contenu de l'entrée UseErrorMsgTable lors du
processus de régénération.
La macro .ERROR, est appelée par un élément de modèle dans le modèle de
trigger, elle a deux paramètres : %ERRNO% est le numéro d'erreur et
%ERRMSG% est le texte du message.
Les messages utilisateur sont stockés dans une table de messages que vous
devez créer dans votre base de données :
Variable Description
%MSGTAB% Nom de la table
%MSGNO% Colonne de numéro de message qui stocke le numéro du
message d'erreur référencé dans le script de trigger
%MSGTXT% Colonne de texte de message qui stocke le texte du message
UseErrorMsgText
Gère les erreurs lors de la génération de triggers en utilisant des messages
d'erreur standard.
Lorsque vous sélectionnez Standard dans la page Messages d'erreur de la
boîte de dialogue Régénération des triggers, la macro .ERROR sera
remplacée par le contenu de l'entrée UseErrorMsgText lors du processus
de régénération.
La macro .ERROR, est appelée par un élément de modèle dans le modèle de
trigger, elle a deux paramètres : %ERRNO% est le numéro d'erreur et
%ERRMSG% est le texte du message.
Si l'option Standard est sélectionnée pour les messages d'erreur, si un numéro
d'erreur dans le script de trigger correspond au paramètre %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
utilisés.
152 PowerAMC
Chapitre 1 Guide de référence 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'événements de trigger.
Exemple Select
EventDelimiter
Caractère utilisé pour séparer les événements si vous souhaitez affecter
plusieurs événements à un trigger.
Exemple ,
Group
La catégorie Group contient des entrées qui définissent les paramètres
associés aux groupes.
order by 1
SqlAttrQuery —
sp_addgroup %GROUP%
Create [%BIND%]
[%PRIVILEGE%]
Maxlen —
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 référence du SGBD
SqlListChildrenQuery
Requête 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
Requête SQL permettant de procéder au reverse engineering des permissions
accordées aux groupes.
Role
La catégorie Role contient des entrées qui définissent les paramètres associés
aux rôles.
select
u.name
from
master.dbo.syssrvroles u
order by 1
SqlAttrQuery —
Maxlen —
Bind
Instruction permettant d'affecter un rôle à un utilisateur ou à un autre rôle.
Exemple Dans Sybase Adaptive Server Enterprise 12.5 :
grant role %ROLE% to %USERID%
Unbind
Instruction permettant de désaffecter un rôle d'un utilisateur ou d'un autre
rôle.
Exemple Dans Sybase Adaptive Server Enterprise 12.5 :
revoke role %ROLE% from %USER%
156 PowerAMC
Chapitre 1 Guide de référence du SGBD
SqlListChildrenQuery
Requête SQL qui dresse la liste des utilisateurs auxquels le rôle a été affecté.
Exemple Dans Sybase Adaptive Server Enterprise 12.5 :
{ ROLE ID, MEMBER }
SELECT
r.name, u.name
FROM
master.dbo.sysloginroles l,
[%CATALOG%.]dbo.sysroles s,
[%CATALOG%.]dbo.sysusers u,
[%CATALOG%.]dbo.sysusers r
where
l.suid = u.suid
and s.id =l.srid
and r.uid = s.lrid
SqlPermQuery
Requête SQL permettant de procéder au reverse engineering des permissions
accordées aux rôles.
Privilege
La catégorie Privilege contient des entrées qui définissent les paramètres
associés aux privilèges.
ModifiableAttributes Liste des attributs étendus qui seront pris en compte dans
la boîte de dialogue de fusion lors de la synchronisation
de base de données
ReversedStatements Liste des instructions qui vont faire l'objet d'un reverse
engineering
GrantOption
Option pour la commande grant.
Exemple Dans Oracle 9i :
with admin option
RevokeOption
Option pour la commande revoke.
System
Liste de privilèges système admis dans le SGBD courant.
Exemple Dans Sybase ASE 12.5 :
CREATE DATABASE
CREATE DEFAULT
CREATE PROCEDURE
CREATE TRIGGER
CREATE RULE
CREATE TABLE
CREATE VIEW
Permission
La catégorie Permission contient des entrées qui définissent les paramètres
associés aux permissions.
158 PowerAMC
Chapitre 1 Guide de référence du SGBD
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 catégorie Default contient les entrées qui définissent les paramètres
associés aux défauts.
Bind
Commande permettant de lier un défaut à un domaine ou à une colonne.
Lorsqu'un domaine ou une colonne utilise un défaut, ce dernier n'est pas
ajouté mais une instruction binddefault est générée après l'instruction de
création du domaine ou de la table. Dans l'exemple suivant, la colonne
Address dans la table Customer utilise le défaut CITYDFLT :
create table CUSTOMER (
ADDRESS char(10)
null
)
160 PowerAMC
Chapitre 1 Guide de référence du SGBD
EnableOwner
Permet de définir le propriétaire d'un défaut.
Value Result
Yes La liste déroulante Propriétaire s'affiche dans la feuille de propriétés de
défaut et l'utilisateur peut sélectionner un propriétaire pour le défaut
No Le défaut ne prend pas en charge les propriétaires
Unbind
Détache un défaut d'un domaine ou d'une colonne.
Maxlen
Instruction permettant de définir la longueur maximale du code pour un
objet. Cette valeur est mise en oeuvre dans la vérification de modèle et
produit une erreur si le nom ou le code dépasse la valeur définie.
Example MaxLen = 30
Join index
La catégorie Join Index contient des entrées qui définissent les paramètres
associés aux join index.
_
Options
if exists(select 1 from sys.sysiqjoinindex where
Drop joinindex_name='%JIDX%') then
drop join index %JIDX%
end if
_
Add
_
DefOptions
create join index %JIDX% for
Create %JIDXDEFN%
ModifiableAttributes Liste des attributs étendus qui seront pris en compte dans
la boîte de dialogue de fusion lors de la synchronisation
de base de données
ReversedStatements Liste des instructions qui vont faire l'objet d'un reverse
engineering
162 PowerAMC
Chapitre 1 Guide de référence du SGBD
Header
En-tête de join index. Tout ce qui est ajouté dans cette entrée est ajouté avant
l'instruction create join index.
Footer
Fin de join index. Tout ce qui est ajouté dans cette entrée est ajouté après
l'instruction create join index.
AddJoin
Instruction SQL utilisée pour définir 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 entrée permet d'autoriser l'ajout de colonnes aux join index à l'aide de
la liste des colonnes dans la feuille de propriétés 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 propriétaire de join index. Si vous
positionnez cette entrée à oui, la zone Propriétaire s'affiche dans la feuille de
propriétés du join index.
Qualifier
Vous pouvez définir des valeurs pour les entrées courantes suivantes pour
l'objet Qualifier dans la définition de SGBD.
SqlListQuery —
Label Label=All Qualifiers
Sequence
La catégorie Sequence contient des entrées qui définissent les paramètres
associés aux séquences.
164 PowerAMC
Chapitre 1 Guide de référence du SGBD
DefOptions —
SqlListQuery {SQNC}
SELECT sequence_name
FROM user_sequences
ORDER BY sequence_name
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
ModifiableAttributes Liste des attributs étendus qui seront pris en compte dans
la boîte de dialogue de fusion lors de la synchronisation
de base de données
EnableOwner
Permet de définir des propriétaires de séquence.
Valeur Résultat
Yes La liste déroulante Propriétaire s'affiche dans la feuille de propriétés de
séquence et l'utilisateur peut sélectionner un propriétaire pour la
séquence courante
No La séquence ne prend pas en charge le propriétaire
SequenceComment
Instruction permettant d'ajouter un commentaire de séquence.
Exemple comment on sequence [%QUALIFIER%]%SQNC% is %.q:COMMENT%
Synonym
La catégorie Synonym contient des entrées qui définissent les paramètres
associés aux synonymes.
166 PowerAMC
Chapitre 1 Guide de référence du SGBD
[%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
]
SqlAttrQuery —
Maxlen
Instruction permettant de définir la longueur maximum du code pour un
objet. Cette valeur est mise en oeuvre dans la vérification de modèle et
produit une erreur si le nom ou le code dépasse la longueur définie.
Exemple MaxLen = 30
EnableAlias
Instruction permettant de définir si le type d'alias de synonyme est admis.
Exemple Dans DB2 :
EnableAlias = Yes
DB Package
La catégorie DB Package contient des entrées qui définissent les paramètres
associés aux packages de base de données.
Maxlen MaxLen = 30
Create Instruction permettant de créer the specification of the
database package
create [or replace ]package %DBPACKAGE% [authid
%DBPACKAGEPRIV% ][%R%?[is][as]:as]
%DBPACKAGESPEC%
end [%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
]
168 PowerAMC
Chapitre 1 Guide de référence du SGBD
[%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 boîte de dialogue de fusion lors de la synchronisation
de base de données
ReversedStatements Liste des instructions qui vont faire l'objet d'un reverse
engineering
CreateBody
Template permettant de définir le corps du package de base de données.
Cette instruction est utilisée 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 évaluée après l'instruction create DB package.
Pour plus d'informations sur les instructions d'extension, reportez-vous
à la section Génération de script.
DB Package Procedure
La catégorie DB Package Procedure contient des entrées qui définissent les
paramètres associés aux procédures de package.
170 PowerAMC
Chapitre 1 Guide de référence du SGBD
DBProcedureBody
Template permettant de définir le corps de la procédure de package dans la
page Définition de la feuille de propriétés de procédure de package.
Exemple Dans Oracle 9i :
begin
end
ParameterTypes
Types disponibles pour les procédures de package.
Exemple Dans Oracle 9i :
in
in out
out
out no copy
DB Package Variable
La catégorie DB Package Variable contient des entrées qui définissent les
paramètres associés aux variables de package.
DB Package Type
La catégorie DB Package Type contient des entrées qui définissent les
paramètres associés aux types de package.
DB Package Cursor
La catégorie DB Package Cursor contient des entrées qui définissent les
paramètres associés aux curseur de package.
ParameterTypes
Types disponibles pour le curseur de package.
in
Exemple
172 PowerAMC
Chapitre 1 Guide de référence du SGBD
DB Package Exception
La catégorie DB Package Exception contient des entrées qui définissent les
paramètres associés aux exceptions de package.
DB Package Parameter
La catégorie DB Package Parameter contient des entrées qui définissent des
paramètres relatifs aux paramètres du package.
DB Package Pragma
La catégorie DB Package Pragma contient qui définissent les paramètres
relatifs au pragma de package.
174 PowerAMC
Chapitre 1 Guide de référence du SGBD
MaxConstLen
Commande permettant de définir la longueur maximale de nom de contrainte
prise en charge par la base de données cible. Cette valeur est mise en oeuvre
dans la vérification de modèle et produit une erreur si le code dépasse la
valeur définie. Le nom de contrainte est également tronqué au moment de la
génération.
EnableOption
Commande permettant d'activer les options physiques pour le modèle, les
tables, les index, les clés alternatives et autres objets quis ont pris en charge
par le SGBD cible. Elle contrôle également la disponibilité de la page
Options d'une feuille de propriétés d'objet.
176 PowerAMC
Chapitre 1 Guide de référence du SGBD
AmcdDataType
Table de conversion des types de données qui montre les correspondances
entre les types de données internes de PowerAMC et ceux du SGBD. Cette
table est utilisée pendant la génération d'un MCD vers un MPD ainsi que
lorsque vous changez de SGBD courant. Les variables suivantes sont
utilisées pour qualifier les types de données :
Variable Indique
%n Longueur du type de données
%s Taille du type de données
%p Précision du type de données
Type de données
ASE 12 Type de données PowerAMC
A%n char(%n)
VA%n varchar(%n)
LA%n varchar(%n)
BT tinyint
PhysDataType
Table de conversion des types de données qui montre les correspondances
entre les types de données du SGBD et ceux de PowerAMC. Cette table est
utilisée pendant la génération d'un MPD vers un MCD ainsi que lorsque vous
changez de SGBD courant (utilisation des types de données internes de
PowerAMC pour trouver un correspondance entre deux types de données de
fichier de définition de SGBD). Les variables suivantes sont utilisées pour
qualifier les types de données :
Variable Indique
%n Longueur du type de données
%s Taille du type de données
%p Précision du type de données
Type de données
PowerAMC Type de données ASE 12
sysname VA30
integer I
PhysDttpSize
Tableau des tailles de stockage pour les types de données de SGBD.
La taille de stockage appropriée est affectée à chaque type de données pour le
SGBD sélectionné.
Exemple Dans Sybase Adaptive Server Enterprise 12.5 :
Type de données
ASA 6 Taille de Storage
smallmoney 8
smalldatetime 4
datetime 8
timestamp 8
178 PowerAMC
Chapitre 1 Guide de référence du SGBD
OdbcPhysDataType
Table de conversion des types de données qui montre les correspondances
entre les types de données ODBC et ceux du SGBD.
Cette table est utilisée lors du reverse engineering via ODBC pour mettre en
correspondance les types de données extraits de la base de données et les
types de données de SGBD. Bien que les types de données soient des
concepts identiques dans la base de données et le SGBD, la façon dont ces
types de données sont stockés dans la base de données diffère de la notation
dans le SGBD. Par exemple, vous pouvez créer une colonne avec le type de
données decimal dans la base de données. Le type de données decimal est
stocké sous la forme decimal(30,6) dans Sybase Adaptive Server
Anywhere 6. Cette précision (30,6) n'apparaissait pas dans votre commande
create, et n'est pas requis lorsque vous utilisez les types de données de
SGBD, "decimal" suffit. Lorsque vous procédez au reverse engineering de la
base de données, le processus extrait des types de données tels qu'ils sont
stockés dans la base de données, i.e. decimal(30,6). A ce stade, PowerAMC
va utiliser la table de conversion pour mettre en correspondance les types de
données ODBC (decimal(30,6)) avec la notation préférée du type de données
SGBD (decimal).
Exemple Dans Sybase Adaptive Server Anywhere 6 :
Type de données
ODBC Type de données ASA 6
numeric(30,6) numeric
char(1) char
binary(1) binary
decimal(30,6) decimal
PhysOdbcDataType
Table de conversion des types de données de la base de données cible vers
les types de données ODBC.
Exemple Dans MS Access 95/97 :
PhysLogADTType
Table de conversion des types de données abstraits cible vers les types de
données abstraits internes. Vous ne devez pas modifier ces valeurs.
Exemple Dans Sybase Adaptive Server Anywhere 6 :
LogPhysADTType
Table de conversion des types de données abstraits internes vers les types de
données abstraits cible. Vous ne devez pas modifier ces valeurs.
Exemple Dans Sybase Adaptive Server Anywhere 6 :
180 PowerAMC
Chapitre 1 Guide de référence du SGBD
AllowedADT
Liste des types de données abstraits qui peuvent être utilisés comme types de
données pour les domaines et les colonnes.
Exemple Dans Sybase Adaptive Server Anywhere 6 :
JAVA
HostDataType
Conversion des types de données de base de données vers les types de
données de procédure.
Exemple Dans Oracle8 :
Float FLOAT
Integer INT
Integer INTEGER
Varchar VARCHAR(%n)
Varchar VARCHAR2(%n)
Variables de MPD
Vous pouvez incorporer des variables dans les requêtes SQL du SGBD
sélectionné. Ces variables sont remplacées par les valeurs de votre modèle
lors de la génération du script.
182 PowerAMC
Chapitre 1 Guide de référence du SGBD
184 PowerAMC
Chapitre 1 Guide de référence du SGBD
Nom de la
variable Commentaire
COMMENT Commentaire de l'objet ou son nom (en l'absence de
commentaire)
OWNER Code généré pour l'utilisateur propriétaire de l'objet ou de
son parent. N'utilisez pas cette variable pour les requêtes
sur les objets répertoriés dans les boîtes de dialogue de
reverse engineering ODBC, car leur propriétaire n'est pas
encore défini
DBPREFIX Préfixe de base de données des objets (nom de la base + '.'
si la base est définie)
QUALIFIER Qualifiant de l'objet complet (préfixe de base + préfixe de
propriétaire)
OPTIONS Texte SQL définissant les options physiques pour l'objet
Nom de la
variable Commentaire
CONSTNAME Nom de contrainte de l'objet
CONSTRAINT Corps de la contrainte SQL de l'objet. Ex : (A <= 0) AND
(A >= 10)
CONSTDEFN Définition de contrainte de colonne. Ex : contraint C1
checks (A>=0) AND (A<=10)
RULES Concaténation d'expression serveur des règles de gestion
associée à l'objet
NAMEISCODE True si le nom et le code de l'objet (table, colonne, index)
sont identiques (spécifique AS/400)
186 PowerAMC
Chapitre 1 Guide de référence du SGBD
Nom de la
variable Commentaire
COLUMN Code généré pour la colonne
COLNNO Position de la colonne dans la liste des colonnes de la table
COLNNAME Nom de la colonne
COLNCODE Code de la colonne
PRIMARY Contient le mot clé "primaire" si la colonne est une colonne
de clé primaire
ISPKEY TRUE si la colonne fait partie d'une clé primaire
FOREIGN TRUE si la colonne fait partie d'une clé étrangère
COMPUTE Calcul du texte de la contrainte
188 PowerAMC
Chapitre 1 Guide de référence du SGBD
190 PowerAMC
Chapitre 1 Guide de référence du SGBD
Nom de la
variable Commentaire
PCODE Code de la table parent
PQUALIFIER Qualifiant de la table parent. Voir aussi QUALIFIER.
CHILD Code généré pour la table enfant
CNAME Nom de la table enfant
CCODE Code de la table enfant
CQUALIFIER Qualifiant de la table enfant. Voir aussi QUALIFIER.
REFRNAME Nom de référence
REFRCODE Code de référence
FKCONSTRAINT Nom de contrainte de clé étrangère (référence)
PKCONSTRAINT Nom de contrainte de clé primaire utilisée pour faire
référence à un objet
CKEYCOLUMNS Liste des colonnes de clé parent. Ex : C1, C2, C3
FKEYCOLUMNS Liste des colonnes de clé étrangère. Ex : C1, C2, C3
UPDCONST Contient des mots clés de contrainte déclarative pour les
modifications : "restrict", "cascade", "set null" ou "set
default"
DELCONST Contient des mots clés de contrainte déclarative pour les
suppressions : "restrict", "cascade", "set null" ou "set
default"
MINCARD Cardinalité minimale
MAXCARD Cardinalité maximale
POWNER Nom du propriétaire de la table parent
COWNER Nom du propriétaire de la table enfant
CHCKONCMMT TRUE si vous avez coché la case "check on commit" pour
la référence (spécifique à ASA 6.0)
REFRNO Numéro de référence dans la collection de référence de la
table enfant
JOINS Jointures de référence
192 PowerAMC
Chapitre 1 Guide de référence du SGBD
Nom de la
variable Commentaire
ORDER Numéro d'ordre du trigger (si le SGBD prend en charge
plusieurs triggers d'un même type)
TRIGGER Code généré du trigger
TRGTYPE Type de trigger. Contient les mots clés "beforeinsert",
"afterupdate", etc.
TRGEVENT Evénement déclencheur. Contient les mots clés "insert",
"update", "delete"
TRGTIME Moment du déclenchement. Contient les mots clés NULL,
"before", "after"
REFNO Numéro d'ordre de référence dans la liste des références
ERRNO Numéro d'erreur pour une erreur standard
ERRMSG Message d'erreur pour une erreur standard
MSGTAB Nom de la table contenant des messages définis par
l'utilisateur
MSGNO Nom de la colonne contenant des numéros d'erreur dans un
tableau d'erreurs défini par l'utilisateur
194 PowerAMC
Chapitre 1 Guide de référence du SGBD
Nom de la
variable Commentaire
MSGTXT Code de la colonne contenant des numéros d'erreur dans un
tableau d'erreurs défini par l'utilisateur
SCRIPT Script SQL du trigger ou de la procédure
TRGBODY Corps du trigger (uniquement pour le reverse engineering
ODBC de Oracle)
TRGDESC Description du trigger (uniquement pour le reverse
engineering ODBC de Oracle)
TRGDEFN Définition de trigger
196 PowerAMC
C H A P I T R E 2
Prérequis
Il est recommandé de bien connaître la structure et la philosophie du
métamodèle afin de pouvoir faire une utilisation optimale des profils
PowerAMC.
198 PowerAMC
Chapitre 2 Gestion des profils
Extensions disponibles
Selon le niveau auquel vous définissez les extensions, différents éléments
sont disponibles.
Vous pouvez attacher plusieurs fichiers de ressource à un modèle, il s'agit
alors de plusieurs définitions étendues de modèle ainsi que du langage objet
ou de SGBD du modèle. Les extensions définies dans chaque fichier de
ressource s'affichent dans des pages distinctes pour indiquer leur origine.
Par exemple, dans un MPD, les attributs étendus peuvent être définis pour
une table dans le SGBD ainsi que dans les définitions étendues de modèle
attachées au modèle, ils sont affichés sur différents onglets dans la page
Attributs étendus de la feuille de propriétés de table.
Conflit d'extensions Un conflit se produit lorsque les extensions ayant des noms identiques sont
définies sur les mêmes métaclasses dans différents fichiers de ressources
attachés au même modèle.
Par exemple, le stéréotype <<document>> est défini pour les composants
dans deux définitions étendues de modèle attachées au même MOO. Dans
chaque définition étendue de modèle, le stéréotype <<document>> a un
symbole personnalisé différent. Un conflit se produit dès lors que vous créez
un composant et lui affectez le stéréotype <<document>> : PowerAMC va
sélectionner de façon aléatoire l'un des symboles.
En cas de conflit entre SGBD ou langage objet et définition étendue de
modèle, c'est le plus souvent la définition étendue de modèle qui prévaut.
200 PowerAMC
Chapitre 2 Gestion des profils
Extensions de Les extensions définies sur une métaclasse s'appliquent à toutes les instances
métaclasse de la métaclasse. Vous pouvez étendre les sémantiques d'une métaclasse à
l'aide des éléments suivants :
♦ Stéréotypes : ils sont utilisés pour sous-classifier les instances d'une
métaclasse
♦ Attributs étendus : ils sont utilisés pour enrichir la définition d'une
métaclasse ainsi que pour contrôler la génération
♦ Symbole personnalisé et outil personnalisé : ils permettent aux
utilisateurs de mieux identifier la métaclasse
♦ Vérifications personnalisées : elles sont utilisées pour affiner la
vérification de la métaclasse dans votre modèle
♦ Fichiers générés et templates : ils sont utilisés pour personnaliser la
génération pour la métaclasse
♦ Critères : ils sont utilisés pour évaluer des conditions sur une métaclasse
♦ Collections étendues : elles sont utilisées pour ajouter des collections à
des métaclasses
♦ Méthodes : elles peuvent être définies sur une métaclasse
♦ Transformations : elles sont utilisées pendant la génération de modèle
ou directement appliquées dans le modèle
♦ Gestionnaires d'événement : ils sont déclenchés lorsque certains
événements se produisent sur un objet
♦ Menus : ils permettent d'appeler des méthodes pour une instance de
métaclasse
Stéréotype et Les extensions définies pour un stéréotype ou pour un critère s'appliquent aux
critère instances de métaclasse ayant le stéréotype ou vérifiant la condition du
critère.
Vous pouvez définir les extensions suivantes dans un stéréotype ou dans un
critère :
♦ Attributs étendus : ils sont utilisés pour enrichir la définition de
l'instance de métaclasse ainsi que pour contrôler la génération
♦ Symbole personnalisé et outil personnalisé (l'outil personnalisé n'est
disponible que pour les stéréotypes) : ils permettent aux utilisateurs
d'identifier plus facilement l'instance de métaclasse
♦ Vérifications personnalisées : elles sont utilisées pour affiner la
vérification de l'instance de métaclasse dans votre modèle
202 PowerAMC
Chapitre 2 Gestion des profils
Convention de
dénomination de code Description
firstLowerWord Première lettre en minuscule, ensuite les premières
lettres des autres mots en majuscules
FirstUpperChar Première lettre de chaque mot en majuscules
lower_case Tous les mots en minuscules et séparés par un trait
de soulignement
UPPER_CASE Tous les mots en majuscules et séparés par un trait
de soulignement
204 PowerAMC
Chapitre 2 Gestion des profils
Propriétés de stéréotype
Lorsque vous définissez un stéréotype, vous devez définir les propriétés
suivantes :
Propriété Description
Nom Nom du stéréotype tel qui s'affichera dans la liste déroulante
Stéréotype de la feuille de propriétés de l'objet
Parent Nom du parent du stéréotype courant. Vous pouvez utiliser la
liste déroulante pour sélectionner un stéréotype défini dans la
même métaclasse ou dans une métaclasse parent. Vous pouvez
utiliser le bouton Propriétés pour sélectionner le stéréotype
parent dans l'arborescence et afficher ses propriétés
206 PowerAMC
Chapitre 2 Gestion des profils
Propriété Description
Abstrait Le stéréotype ne peut pas être appliqué aux instances de
métaclasse, ce stéréotype ne s'affiche pas dans la liste
déroulante Stéréotype de la feuille de propriétés de l'objet, et ne
peut être utilisé que comme parent d'autres stéréotypes enfant.
Lorsque vous sélectionnez cette propriété, la case à cocher
Utiliser comme métaclasse n'est pas disponible
Utiliser comme Le stéréotype devient une sous-classification des instances de la
métaclasse métaclasse sélectionnée. Les instances de même stéréotype
seront regroupées dans la catégorie de la métaclasse au niveau
de l'Explorateur ou de la boîte de dialogue de fusion. Cette
option permet également de créer un sous-espace de nom de
façon à avoir dans la même métaclasse des instances de même
nom mais avec différents stéréotypes utilisés comme métaclasse
Outil Si vous cochez cette case, vous pouvez associer un outil dans
personnalisé une palette au stéréotype courant. Cette option est disponible
dans la palette pour les objets qui prennent en charge des symboles, et n'est
pas disponible pour des objets comme les attributs, par exemple
Commentaire Informations supplémentaires relatives au stéréotype
Une fois que vous avez créé le stéréotype, vous pouvez définir des
extensions telles qu'un outil personnalisé, ou bien des vérifications
personnalisées pour le stéréotype. Ces extensions seront appliquées aux
instances de métaclasse avec le stéréotype.
208 PowerAMC
Chapitre 2 Gestion des profils
212 PowerAMC
Chapitre 2 Gestion des profils
214 PowerAMC
Chapitre 2 Gestion des profils
Dans les autres cas Le format de symbole par défaut tel qu'affiché dans
les préférences d'affichage est utilisé
216 PowerAMC
Chapitre 2 Gestion des profils
218 PowerAMC
Chapitre 2 Gestion des profils
220 PowerAMC
Chapitre 2 Gestion des profils
Paramètre Description
Nom Nom de la vérification personnalisée. Ce nom s'affiche
sous la catégorie d'objet sélectionnée dans la boîte de
dialogue Paramètres de vérification de modèle. Ce nom
est également utilisé (concaténé) dans le nom de la
fonction de vérification, afin d'identifier cette dernière de
façon unique
Commentaire Informations supplémentaires relatives à la vérification
personnalisée
Message d'aide Texte affiché dans la zone de message qui s'affiche
lorsque l'utilisateur sélectionne Aide dans le menu
contextuel de la vérification personnalisée dans la boîte
de dialogue de vérification de modèle
Message de résultats Texte affiché dans la fenêtre Liste de résultats lors de
l'exécution des vérifications
Sévérité par défaut Permet de définir si la vérification personnalisée
correspond à une erreur (problème majeur dans la syntaxe
du modèle) ou un avertissement (problème mineur ou
simple recommandation)
Exécuter la Permet de vous assurer que cette vérification
vérification par personnalisée est sélectionnée par défaut dans la boîte de
défaut dialogue Paramètres de vérification de modèle
Exécuter la Permet d'autoriser la correction automatique pour la
correction vérification personnalisée
automatique
Exécuter la Permet de vous assurer que la correction automatique
correction correspondant à cette vérification personnalisée est
automatique par exécutée par défaut
défaut
222 PowerAMC
Chapitre 2 Gestion des profils
Exemple Dans Sybase AS IQ, vous devez créer des vérifications supplémentaires sur
les index afin de vérifier leurs colonnes. La vérification personnalisée que
vous allez créer vérifie si les index de type HG, HNG, CMP ou LF sont liés
aux colonnes ayant comme type de données VARCHAR et si la longueur est
supérieure à 255.
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
6 Déclarez la fin de la fonction.
224 PowerAMC
Chapitre 2 Gestion des profils
226 PowerAMC
Chapitre 2 Gestion des profils
Variables globales Vous pouvez également déclarer des variables globales dans le script global.
Ces variables sont réinitialisées chaque fois que vous exécutez la vérification
personnalisée.
Dépannage d'erreurs VB
Les scripts que vous avez définis sont exécutés lors de la vérification du
modèle.
Si des erreurs sont détectées lors de la vérification personnalisée, la
correction automatique ou le script global, une boîte de message s'affiche et
vous propose les actions suivantes :
Bouton Action
Ignorer Permet de sauter le script problématique et de reprendre la
vérification
Ignorer tout Permet de sauter tous les scripts problématiques et de reprendre le
processus avec les vérifications standard
Annuler Arrête la vérification du modèle
Déboguer Arrête la vérification du modèle, ouvre l'éditeur de ressources et
indique sur quelle ligne se trouve le problème. Vous pouvez
corriger les erreurs et redémarrer la vérification du modèle
228 PowerAMC
Chapitre 2 Gestion des profils
Vous utilisez le GTL pour définir un template. Les templates sont utilisés
dans les fichiers générés : lors de la génération, chaque template est évalué et
remplacé par sa valeur dans le fichier généré.
Pour plus d'informations sur la syntaxe du GTL, reportez-vous au
chapitre Guide de référence de la génération.
Les templates peuvent être créés dans la catégorie Shared lorsque vous les
appliquez à toutes les métaclasses. Ils peuvent également être créés au niveau
de la métaclasse ou pour un stéréotype ou critère donné.
Nouvelle syntaxe Dans les version précédentes de PowerAMC, vous pouviez lier l'utilisation
d'un template particulier à l'existence d'un stéréotype à l'aide de la syntaxe
suivante :
template name <<stéréotype>>
Dans la version courant de PowerAMC, vous pouvez créer un template dans
un stéréotype particulier afin de vous assurer que ce template est utilisé
uniquement pour les instances de métaclasse avec le stéréotype.
Outil Parcourir Vous pouvez utiliser l'outil Parcourir pour trouver tous les templates portant
(F12) le même nom. Pour ce faire, ouvrez un template, placez le curseur sur un nom
de template (entre les caractères %) et cliquez sur Parcourir (ou appuyez sur
F12). Vous affichez ainsi une fenêtre Résultats qui répertorie tous les
templates préfixés par le nom de leur métaclasse. Vous pouvez double-
cliquer sur un template dans la fenêtre Résultats pour localiser sa définition
dans l'éditeur de ressources.
230 PowerAMC
Chapitre 2 Gestion des profils
Propriété Description
Nom Nom de l'entrée du fichier généré dans l'éditeur de
ressources
Nom de fichier Nom du fichier qui sera généré, il peut contenir des
variables
Propriété Description
Codage Format du fichier généré, PowerAMC prend en charge
plusieurs formats. Vous pouvez utiliser le bouton Points
de suspension pour afficher la boîte de dialogue Format
de codage pour le texte en sortie dans laquelle vous
pouvez sélectionner un format dans une liste
déroulante. Dans cette boîte de dialogue, la case à
cocher Annuler si perte de caractère permet d'arrêter la
génération si cette dernière provoque la perte de
caractères
Commentaire Informations supplémentaires relatives aux fichiers
générés
Utiliser la hiérarchie Indique que la hiérarchie de packages doit être utilisée
des packages comme pour générer la hiérarchie des répertoires de fichiers
chemin d'accès
Template du fichier Template du fichier à générer. Vous pouvez ouvrir un
généré (zone de texte) é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 même nom
(reportez-vous à la section Création d'un template)
Coloration Si la zone Nom de fichier est vide, aucun fichier n'est généré. Toutefois, il
syntaxique peut s'avérer utile car il permet d'afficher un aperçu du contenu du fichier
avant la génération. Vous pouvez utiliser la page Aperçu de l'objet
correspondant à tout moment pour ce faire.
Si la zone Nom de fichier contient un caractère '.' (point), aucun fichier n'est
généré, mais vous pouvez utiliser la page Aperçu, comme indiqué ci-avant,
en tirant profit de la coloration syntaxique. Vous pouvez ajouter des suffixes
après le point afin d'utiliser l'éditeur de votre choix (par exemple : .dtd pour
XML).
232 PowerAMC
Chapitre 2 Gestion des profils
Propriété Description
Nom Nom de la collection étendue
Commentaire Informations supplémentaires relatives à la collection étendue
234 PowerAMC
Chapitre 2 Gestion des profils
Propriété Description
Nom inverse Nom de la métaclasse parent qui va s'afficher dans la page
Dépendances de la métaclasse cible. Si vous ne saisissez pas
de valeur dans cette zone, un nom inverse est
automatiquement créé et affiché dans la page Dépendances
Type de cible Définit la métaclasse associée à la métaclasse ou au
stéréotype courant. La liste déroulante permet de sélectionner
le type d'objet qui peut être stocké dans la collection (dans
notre exemple, vous sélectionnez FileObject). La liste
déroulante affiche uniquement les métaclasses qui peuvent
être instanciées dans un modèle ou un package comme des
classes ou des tables. Vous ne pouvez pas sélectionner des
sous-objets tels que les attributs de classe ou des colonnes de
table. Assurez-vous de sélectionner un type de cible, faute de
quoi la définition de la collection étendue est ignorée
Stéréotype cible Filtre supplémentaire défini sur la collection étendue. Cette
zone répertorie tous les stéréotypes définis dans le profil
courant pour le type de cible sélectionné. Vous pouvez
également saisir un nouveau stéréotype dans cette zone
Lorsque vous créez une collection étendue sur un stéréotype, la liste d'objets
correspondante s'affiche uniquement si l'instance de la métaclasse parent a le
stéréotype approprié. Si vous changez le stéréotype, la liste disparaît.
Lorsque vous ouvrez un modèle 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 différentes feuilles de
propriétés. Ceci vous permet de supprimer des objets dans les collections qui
ne sont plus prises en charge.
236 PowerAMC
Chapitre 2 Gestion des profils
Propriété Description
Nom Nom de la méthode qui identifie un script
Commentaire Informations supplémentaires relatives à la méthode
Vous pouvez également utiliser la page Script global pour déclarer des
variables globales. Dans ce cas, n'oubliez pas que les variables globales ne
sont pas réinitialisées chaque fois que la méthode est exécutée. 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 particulièrement lorsque des variables font référence à
des objets qui peuvent être modifiés, voire supprimés. N'oubliez pas
d'initialiser la variable globale au début d'une méthode si vous ne souhaitez
pas conserver la valeur de l'exécution précédente.
Pour plus d'informations sur la définition d'un script et l'utilisation de la
page Script global, reportez-vous aux sections Définition du script d'une
vérification personnalisée et Utilisation du script global.
Les méthodes peuvent être utilisées comme commandes dans des menus
définis par l'utilisateur. Il est donc important de créer des méthodes avant de
créer des menus.
Pour plus d'informations sur les menus, reportez-vous à la section
Définition de menus dans un profil.
238 PowerAMC
Chapitre 2 Gestion des profils
Par exemple, vous pouvez créer une méthode pour une classe qui convertit
des classes en interfaces. Le script suivant copie les propriétés de base et
opérations de classe, supprime la classe pour éviter tout problème d'espace de
nom et crée la nouvelle interface. Notez que le script ne gère par les autres
propriétés de classe, ni l'affichage de l'interface.
Sub %Mthd%(obj)
' Convertit la class en interface
240 PowerAMC
Chapitre 2 Gestion des profils
Lorsque vous créez une transformation, vous devez définir les propriétés
suivantes :
Propriété Description
Nom Nom de la transformation. Prenez soin de spécifier des noms
explicites afin de les identifier plus facilement dans les listes de
sélection
Commentaire Informations supplémentaires relatives à la transformation
utilisées pour expliquer le script
242 PowerAMC
Chapitre 2 Gestion des profils
obj représente l'objet dans le modèle pour lequel le script est exécuté ; trfm
est un objet transformation interne qui sert à accéder à un jeu de fonctions
helper dans le script.
Pour plus d'informations sur les fonctions helper, reportez-vous à la
section Méthodes helper de script pour les transformations.
Vérifications de Le script de transformation ne requiert pas autant de vérifications que les
script scripts standards. Dans un script standard, vous devez vérifier le contenu d'un
modèle pour éviter les erreurs. Par exemple, un script qui crée et renomme un
composant à partir d'une classe doit contenir un contrôle qui vérifie si le
composant n'existe pas déjà dans le modèle.
Ces vérifications ne sont pas requises dans un script de transformation car les
transformations sont toujours mises en oeuvre dans un modèle temporaire ne
contenant aucun objet. Ce modèle temporaire sera ensuite fusionné avec le
modèle cible de génération si l'option de conservation de modifications est
activée lors de la mise à jour.
Si vous créez une transformation en utilisant un script existant, vous pouvez
supprimer ces contrôles.
Objet Les objets transformation interne ne s'affichent pas dans l'interface de
transformation PowerAMC. Ils sont créés comme objets temporaires et passés au script de
interne sorte que l'utilisateur puisse accéder aux fonctions helper mais aussi pour
enregistrer l'exécution d'une séquence de transformations afin de pouvoir les
exécuter ultérieurement.
244 PowerAMC
Chapitre 2 Gestion des profils
246 PowerAMC
Chapitre 2 Gestion des profils
%CanCreate% = True
End Function
Vous utilisez la page Script du gestionnaire d'événement pour définir la
fonctionnalité du gestionnaire d'événement et l'adapter à votre modèle et à
vos besoins. La page Script global est utilisée pour partager les fonctions de
bibliothèque et les attributs statiques dans le fichier de ressources.
Vous pouvez également utiliser la page Script global pour déclarer des
variables globales. Dans ce cas, n'oubliez pas que les variables globales ne
sont pas réinitialisées chaque fois que le gestionnaire d'événement est
exécuté. 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 particulièrement lorsque des variables font
référence à des objets qui peuvent être modifiés, voire supprimés. N'oubliez
pas d'initialiser la variable globale au début d'une méthode si vous ne
souhaitez pas conserver la valeur de l'exécution précédente.
Pour plus d'informations sur la définition d'un script et l'utilisation de la
page Script global, reportez-vous aux sections Définition du script d'une
vérification personnalisée et Utilisation du script global.
End Function
248 PowerAMC
Chapitre 2 Gestion des profils
Initialize Le gestionnaire d'événement Initialize est utilisé pour instancier des objets
avec des templates prédéfinis. Par exemple, dans un MPM, un processus
BusinessTransaction doit être un processus composite avec un sous-graphe
prédéfini. Le script du gestionnaire d'événement Initialize associé au
stéréotype de processus BusinessTransaction contient toutes les fonctions
nécessaires pour la création du sous-graphe. L'extrait de script suivant est un
sous-ensemble du gestionnaire d'événement 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
250 PowerAMC
Chapitre 2 Gestion des profils
252 PowerAMC
Chapitre 2 Gestion des profils
Propriété Description
Nom Nom du menu qui va apparaître dans l'interface PowerAMC.
Vous pouvez définir une touche de raccourci dans l'entrée de
menu en ajoutant une perluète immédiatement avant le
caractère à utiliser comme touche de raccourci, cette lettre sera
soulignée dans le menu
Commentaire Informations supplémentaires relatives au menu
Emplacement Liste des emplacements où la nouvelle entrée de menu doit
s'afficher. Cette liste est disponible uniquement si la métaclasse
sélectionnée est Model ou Diagram. Dans le cas des
métaclasses d'objet, la valeur unique est Menu contextuel de
l'objet, et donc cachée
Page Menu Zone de création du menu, vous pouvez utiliser des outils pour
faciliter l'ajout de commandes, de menus contextuels et de
séparateurs de menu dans le nouveau menu
Page XML Résumé XML de ce qui est défini dans la page Menu
Outils de la page Vous pouvez utiliser les outils suivants dans la page Menu pour créer des
Menu menus et commandes :
Outil Fonction
Affiche une boîte de dialogue de sélection permettant de sélectionner
une ou plusieurs méthodes ou transformations afin de créer des
commandes associées. Vous pouvez sélectionner parmi les méthodes
ou transformations définies dans la métaclasse courante et ses
métaclasses parent. Lorsque vous sélectionnez une méthode ou une
transformation, cette dernière n'est pas retirée de la liste, car vous
pouvez la réutiliser à différents niveaux de menu
Crée un séparateur sous l'élément sélectionné dans le niveau de menu
courant
Outil Fonction
Supprime l'élément sélectionné dans l'arborescence de menu
Ajout d'une Lorsque vous ajoutez une commande à l'aide d'une méthode ou
commande transformation existante, le contenu suivant est ajouté dans le menu :
<Libellé> (<Nom de méthode/transformation>)
L'élément libellé est le nom de la commande tel qui s'affichera dans le menu.
Vous pouvez définir une touche de raccourci en ajoutant une perluète
immédiatement avant la touche de raccourci, ce caractère s'affiche souligné
dans le menu.
Le nom de méthode/transformation est le nom qui identifie le script.
Synchronisation Les méthodes ou transformations associées aux commandes de menu ne sont
pas synchronisées avec celles définies dans une métaclasse. Si vous modifiez
le nom ou le script d'une méthode ou transformation, vous devez utiliser
l'outil de recherche pour localiser et mettre à jour toutes les commandes qui
utilisent cette méthode ou transformation.
254 PowerAMC
Chapitre 2 Gestion des profils
Rappel
Les méthodes ou transformations de commande ne sont pas
synchronisées avec la définition de méthode ou de transformation.
256 PowerAMC
Chapitre 2 Gestion des profils
Scénario
Vous allez construire la définition étendue de modèle robustness à partir d'un
exemple concret. Le cas d'utilisation suivant représente une transaction Web
de base : un client souhaite connaître la valeur de ses actions afin de décider
s'il va ou non les vendre. Il envoie une requête sur explorateur Internet pour
obtenir la valeur de l'action, la requête est transférée depuis l'explorateur vers
le serveur de bases de données via le serveur d'applications.
258 PowerAMC
Chapitre 2 Gestion des profils
260 PowerAMC
Chapitre 2 Gestion des profils
264 PowerAMC
Chapitre 2 Gestion des profils
Source Destination
Client Explorateur Internet
Explorateur Internet Serveur d'applications
Serveur Serveur de bases de données
d'applications
Numéro
Direction Nom du message d'ordre
Client - Explorateur Internet Demande de cotation 1
Explorateur Internet - Serveur Demande valeur à serv. 2
d'applications app
Serveur d'applications - Serveur de Demande valeur à bd 3
bases de données
Serveur de bases de données - Serveur Renvoie valeur de bd 4
d'applications
266 PowerAMC
Chapitre 2 Gestion des profils
Numéro
Direction Nom du message d'ordre
Serveur d'applications - Explorateur Renvoie valeur de serv 5
Internet app
Explorateur Internet - Client Renvoie valeur 6
268 PowerAMC
Chapitre 2 Gestion des profils
%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 réutilisés entre les
différentes fonctions.
13 Saisissez le script suivant dans la zone de texte.
' Cette fonction globale vérifie si un objet a un
type particulier
' ou s'il est un raccourci d'un type particulier
Function CompareObjectKind(Obj, Kind)
' La valeur par défaut est false
CompareObjectKind = False
' Vérifie 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 vérifie si un objet a un
type particulier
' et compare sa valeur de stéréotype
Function CompareStéréotype(Obj, Kind, Value)
' La valeur par défaut est false
CompareStéréotype = False
' Vérifie l'objet
If Obj is Nothing or not
Obj.HasAttribute("Stéréotype") Then
Exit Function
End If
' Cas particulier du raccourci, recherche de son
objet cible
If Obj.IsShortcut() Then
CompareStéréotype =
CompareStéréotype(Obj.TargetObject)
Exit Function
End If
If Obj.IsKindOf(Kind) Then
' Type d'objet correcte
270 PowerAMC
Chapitre 2 Gestion des profils
End Function
16 Répétez les étapes 4 à 14 et créez une vérification pour vérifier que seuls
les objets Control accèdent aux objets Entity :
272 PowerAMC
Chapitre 2 Gestion des profils
Vous pouvez tester les vérifications en créant des liens entre objets entre
Client et Serveur d'applications par exemple, puis en appuyant sur F4
pour lancer la vérification du modèle.
Pour plus d'informations la fonctionnalité de vérification de
modèle, reportez-vous aux sections correspondantes dans les différents
guides de l'utilisateur.
274 PowerAMC
Chapitre 2 Gestion des profils
276 PowerAMC
Chapitre 2 Gestion des profils
278 PowerAMC
Chapitre 2 Gestion des profils
280 PowerAMC
Chapitre 2 Gestion des profils
282 PowerAMC
C H A P I T R E 3
Avant de Ne modifiez pas un langage objet fourni avec PowerAMC. Créez toujours
commencer 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 façon dont PowerAMC fonctionne, tout particulièrement en ce qui
concerne la génération d'objets. Vous devez tester en profondeur les objets
générés.
Pour plus d'informations sur la création d'un langage objet par copie
d'un langage objet existant, reportez-vous à la section Création d'un fichier de
ressources, dans le chapitre L'éditeur de ressources du manuel Guide des
fonctionnalités générales.
Attention
Ne modifiez pas les langages objet fournis avec PowerAMC. Pour chaque
langage objet que vous souhaitez modifier, vous devez créer un nouveau
langage objet. Pour ce faire, vous devez créer un nouveau langage objet à
partir de la boîte de dialogue Liste des langages objet
(Outils→Ressources→Langages objet), définir un nom et sélectionner le
fichier d'origine dans la liste déroulante Copier depuis. Vous pouvez ainsi
créer un nouveau langage objet identique au fichier d'origine (sauf en ce
qui concerne le nom).
Qu'est-ce qu'un Le langage objet est un composant requis lorsque vous travaillez avec des
langage objet ? modèles orienté objet (MOO). Chaque langage objet a sa propre définition de
langage objet au format XML qui contient les spécifications pour un langage
objet particulier dans un format lisible par un MOO. Il fournit la syntaxe et
les règles de création des objets et met en oeuvre les stéréotypes, types de
données, scripts et constantes pour un langage objet.
Chaque MOO est par défaut attaché à un langage objet. Lorsque vous créez
un nouveau MOO, vous devez choisir un langage objet : vous pouvez créer
un nouveau langage objet, ou bien utiliser l'un des langages objet fournis
avec le MOO.
La définition d'un langage objet est disponible dans sa feuille de propriétés
(Outils→Ressources→Langages objet. Vous pouvez sélectionner et
configurer des paramètres utilisés lors de la définition des objets ou de la
génération à partir d'un MOO.
Que contient un Tous les langages objet ont la même structure constituée d'un certain nombre
langage objet ? de catégories. Une catégorie peut contenir d'autres catégories, des entrées et
des valeurs. Ces entrées sont des paramètres reconnaissables par un MOO.
Les valeurs pour les entrées de langage objet varient selon le langage
considéré. Certaines entrées peuvent ne pas être disponibles si la
fonctionnalité ne s'applique pas au langage objet.
Exemples de Même si un langage objet particulier est utilisé pour illustrer un exemple, le
langage objet mécanisme expliqué dans ce chapitre s'applique à tous les langages objet pris
en charge dans un MOO.
284 PowerAMC
Chapitre 3 Guide de référence du langage objet
Catégorie Description
Settings Contient des types de données, des constantes, des conventions
de dénomination et des catégories d'événements utilisés dans le
MOO
Generation Contient des objets de génération avec des options et des scripts
de commandes définis dans le fichier .XOL
Profil de Permet de créer des profils contenant des transformations
transformations utilisées au cours de la génération de modèle ou appliquées
dans un modèle
Profile Contient des templates, des stéréotypes, des attributs étendus
pour la génération
Propriété Description
Nom Nom du langage objet
Code Code du langage objet
Nom de fichier Chemin d'accès 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
Famille Classification utilisée pour impliquer un certain
comportement dans le modèle objet. Dans PowerAMC, la
famille est utilisée pour activer certaines fonctionnalités
dans le modèle. De telles fonctionnalités n'existent pas par
défaut dans le MOO standard. Voir l'exemple ci-après
Sous-famille Sous-classification qui peut être combinée avec la
classification en familles pour impliquer un certain
comportement dans le langage objet
286 PowerAMC
Chapitre 3 Guide de référence du langage objet
Propriété Description
Activer le suivi Affiche les templates de génération utilisés pour le texte
généré dans la page Aperçu des feuilles de propriétés
d'objets
Commentaire Informations supplémentaires relatives au langage objet
Catégorie Settings
La catégorie Settings contient des éléments permettant de personnaliser et de
gérer les fonctionnalités de génération de MOO. Les éléments spécifiques à
un langage objet ne sont pas détaillés dans cette section.
Catégorie Description
Data Types Tables pour les correspondances de types de données
Constants Liste de valeurs constantes
Namings Contient les valeurs par défaut des opérations getter et setter,
un caractère illégal ou des valeurs de nom de composant J2EE,
par exemple
Events Valeurs d'événement standard
288 PowerAMC
Chapitre 3 Guide de référence du langage objet
Catégorie Constants
La catégorie Constants contient les valeurs constantes suivantes définies par
défaut :
Null
True
False
Void
Bool
Cette catégorie contient une table de correspondances entre les constantes et
leurs valeurs par défaut. Les valeurs par défaut varient en fonction du langage
objet.
Catégorie Namings
La catégorie Namings contient des paramètres qui influent sur ce qui sera
inclus dans les fichiers que vous générez à partir d'un MOO. Vous pouvez
modifier les valeurs par défaut de cette catégorie pour personnaliser le
processus de génération dans PowerAMC.
Constante Description
GetterName Nom et valeur pour les opérations getter
GetterCode Code et valeur pour les opérations getter
SetterName Nom et valeur pour les opérations setter
SetterCode Code et valeur pour les opérations setter
IllegalChar Liste des caractères illégaux dans le langage objet courant. Voir
l'exemple ci-après
Caractères illégaux La liste des caractères illégaux est utilisée lorsque vous créez un MOO, ou
bien quand vous changez le langage objet pour initialiser les listes de
caractères illégaux pour tous les codes de tous les objets du modèle. La liste
des caractères illégaux est visible après la création du modèle
(Outils→Options du modèle→Convention de dénomination).
Par exemple, les caractères suivants ne sont pas acceptés pour les noms ou
les codes dans XML-Schema :
"/!=<>""'()"
Catégorie Events
Vous pouvez utiliser cette catégorie pour définir des événements standard sur
les opérations. Vous pouvez trouver des événements existants par défaut tels
que les constructeur et destructeur, en fonction du langage objet.
Un événement est lié à une opération. Le contenu de la catégorie Events est
affiché dans la liste déroulante Evénement dans les feuilles de propriétés
d'opération. Il décrit les événements qui peuvent être utilisés par une
opération.
Dans PowerBuilder, par exemple, la catégorie Events est utilisée pour
associer les opérations aux événements PowerBuilder.
290 PowerAMC
Chapitre 3 Guide de référence du langage objet
Catégorie Generation
La catégorie Generation contient des catégories et des entrées permettant de
définir et d'activer un processus de génération. Vous pouvez utiliser les
catégories suivantes :
♦ Commandes de génération
♦ Tâches de génération
♦ Options de génération
Catégorie Commands
La catégorie Commands permet d'écrire des commandes de génération. Les
commande de génération peuvent être exécutées à la fin du processus de
génération, une fois tous les fichiers générés. Vous pouvez par exemple
intégrer des commandes de compilation ou de création d'un fichier d'archives
à la fin du processus de génération à partir d'un MOO.
Toutes les commandes écrites dans la catégorie Commands sont disponibles
après la création dans la page Tâches de la boîte de dialogue de génération,
elles peuvent alors être exécutées à la fin de la génération. Vous pouvez
trouver des commandes par défaut dans le langage objet courant. Toutes les
commandes par défaut ne sont pas répertoriées ici car elles dépendent
entièrement du langage objet utilisé.
Les commandes doivent être incluses au sein de tâches pour être exécutées.
Pour plus d'informations sur le rôle des tâches, reportez-vous à la
section Catégorie Tasks.
Les commandes sont liées à un langage objet. Le texte qui définit le code de
la commande est écrit à l'aide du langage de génération par templates (GTL).
Il utilise les variables d'environnement qui peuvent correspondre aux
exécutables tels que javac.exe, par exemple.
Pour plus d'informations sur le GTL, reportez-vous au chapitre Guide
de référence de génération.
292 PowerAMC
Chapitre 3 Guide de référence du langage objet
Explication du code
des commandes
Catégorie Tasks
Une tâche est une liste de commandes à exécuter à l'issue de la génération.
Ces commandes doivent être référencées au sein des différentes tâches
définies pour la génération, une commande non référencée dans une tâche ne
peut pas être exécutée. Vous trouverez à la fin de cette section un exemple
comportant une commande et une tâche contenant cette commande.
Le mécanisme d'exécution de la commande fonctionne comme suit :
lorsqu'une tâche est sélectionnée dans la page Tâches de la boîte de dialogue
de génération, les commandes incluses dans la tâches sont extraites et le
template associé à la commande est évalué et exécuté.
Les tâches s'affichent dans la page Tâches de la boîte de dialogue de
génération et sont exécutées dans un ordre défini. Cet ordre peut être
facilement modifié en utilisant les flèches de déplacement dans la page
Tâches.
Vous devez créer la commande avant de créer la tâche qui contient cette
commande : dans l'exemple suivant, la tâche nommée Compile fait référence
à une commande nommée Javac (écrite dans la colonne Nom). Le code de la
commande Javac est situé dans la catégorie Commands.
294 PowerAMC
Chapitre 3 Guide de référence du langage objet
296 PowerAMC
Chapitre 3 Guide de référence du langage objet
Catégorie Options
La catégorie Options permet de personnaliser le processus de génération. Elle
contient des entrées par défaut qui représentent des options de génération.
Vous pouvez définir des options de génération à partir de la catégorie
Generation\Options dans le langage objet. Ces options définies par
l'utilisateur sont disponibles après la création dans la page Options de la boîte
de dialogue de génération.
Les options de génération peuvent être utilisées dans tous les templates.
Vous pouvez créer les différents types d'options suivants :
Type Description
Booléenne Lorsque ce type est sélectionné, une zone Valeur permet de choisir
entre Oui et Non
Chaîne Lorsque ce type est sélectionné, une zone Valeur permet de saisir la
chaîne
Liste Lorsque ce type est sélectionné, 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
boîte de dialogue de génération : lorsqu'un commentaire de valeur est
spécifié, il est affiché dans la liste à la place du nom de la valeur.
Par exemple, si une case Value:Attribute est cochée dans une liste
d'options nommée myListOption dans la catégorie Generation\Options, seule
la description Attribute est affichée dans la page Options de la boîte de
dialogue de génération. Toutefois, le GTL va évaluer
%GenOptions.MyListOption% à Value.
Vous pouvez trouver des options par défaut définies dans le langage objet.
Ces options ne sont pas répertoriées ici car elles dépendent du langage objet
que vous utilisez.
Pour plus d'informations sur la liste des options de votre langage objet,
reportez-vous au chapitre Génération pour un langage dans le manuel Guide
de l'utilisateur du Modèle Orienté Objet.
298 PowerAMC
Chapitre 3 Guide de référence du langage objet
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 définissez une option booléenne nommée
GenerateComment, %GenOptions.GenerateComment% sera évaluée à true
ou false dans un template, selon la valeur spécifiée dans la page Options de la
boîte de dialogue de génération.
Catégorie Profile
Chaque objet a une catégorie identifiée par son nom qui peut contenir les
catégories suivantes :
♦ Criteria
♦ Stereotypes
♦ Extended attributes
♦ Generated Files et Templates
♦ Custom Check
♦ Custom Symbol et outil
♦ Methods
♦ Transformations
♦ Menus
Pour plus d'informations sur les vérifications personnalisées et les
symboles personnalisés, reportez-vous aux sections Définition d'une
vérification personnalisée dans un profil et Définition d'un symbole
personnalisé dans un profil, dans le chapitre Gestion des profils.
Ces objets sont des métaclasses (du métamodèle), puisque chaque objet est
représenté sous forme de métaclasse dans le métamodèle.
Pour plus d'informations sur le métamodèle, reportez-vous au chapitre
Métamodèle public PowerAMC.
300 PowerAMC
Chapitre 3 Guide de référence du langage objet
Catégorie Shared La catégorie Profile inclut également une catégorie Shared utilisée pour
stocker des entrées réutilisables telles que les types d'attributs étendus et les
templates partagés.
Pour plus d'informations sur les éléments de la catégorie Profile,
reportez-vous au chapitre Gestion des profils.
Catégorie Criteria
Les critères (catégorie Criteria) sont un mécanisme d'extension générique
pour les métaclasses PowerAMC. Ils peuvent être utilisés pour des objets qui
ne prennent pas en charge les stéréotypes dans un MCD ou dans un MPD.
Un critère définit une condition avec les expressions utilisées dans la macro
.if du langage de génération par templates (GTL) de PowerAMC. Lorsqu'une
instance de métaclasse vérifie la condition du critère, les extensions définies
sur le critère sont appliquées à cette instance.
Pour plus d'informations sur les critères, reportez-vous à la section
Définition d'un critère, dans le chapitre Gestion des profils.
Catégorie Stereotypes
Dans la catégorie Stereotypes, vous pouvez définir des stéréotypes pour des
objets qui prennent en charge les stéréotypes. Vous pouvez modifier les
stéréotypes par défaut existants, ou bien définir de nouveaux stéréotypes pour
n'importe quel objet du modèle.
Lorsque vous modifiez les valeurs d'un stéréotype pour un objet, les
changements s'appliquent à tous les objets existants et tous les objets du
même type que vous créez dans le modèle.
Pour plus d'informations sur les stéréotypes, reportez-vous à la section
Définition d'un stéréotype, dans le chapitre Gestion des profils.
302 PowerAMC
Chapitre 3 Guide de référence du langage objet
Exemple Dans le langage objet C#, l'attribut étendu virtual est utilisé pour
identifier l'opération :
Dans la partie inférieure, on trouve une zone de texte qui affiche le code du
template du fichier à générer.
Propriété Description
Codage Format de codage du fichier généré
Annuler si perte de Permet d'arrêter la génération si des caractères ne peuvent
caractère pas être identifiés et risquent d'être perdus dans le codage
courant
304 PowerAMC
Chapitre 3 Guide de référence du langage objet
Coloration Si la zone Nom de fichier de l'entrée Generated Files est vide, aucun fichier
syntaxique n'est généré. Toutefois, il peut s'avérer utile de laisser cette colonne vide de
façon à afficher un aperçu du contenu du fichier avant génération. Vous
pouvez utiliser à cet effet la page Aperçu de l'objet correspondant à tout
moment.
Au cours de la génération, le template dans Nom de fichier est évalué et si
l'une des extensions suivantes est rencontrée, le code est affiché dans l'éditeur
et avec la coloration syntaxique correspondante (exemple : .cs pour C++) :
Fichier généré Le mécanisme de la génération de fichiers est le suivant pour chaque objet
ayant une entrée Generated Files qui n'est pas vide :
306 PowerAMC
Chapitre 3 Guide de référence du langage objet
Dans cet exemple, un fichier appelé ejb-jar.xml situé dans le dossier META-
INF est généré.
Aucun fichier Dans cet exemple, aucun fichier n'est généré car le contenu de la zone Nom
généré de fichier commence par un caractère . (point). Le contenu du fichier n'est
disponible que dans la page Aperçu de la feuille de propriétés du composant
(EJB - Entity Bean).
Catégorie Templates
Les templates sont utilisés pour définir ce que vous souhaitez générer pour
l'objet courant.
Pour plus d'informations sur l'utilisation des templates, reportez-vous à
la section Définition de templates, dans le chapitre Guide de référence de
génération.
Exemple Le template suivant est défini pour les opérations dans Java. Il définit les
règles relatives à l'affichage de la visibilité. Il est également disponible dans
la catégorie Templates pour les attributs et les classes.
308 PowerAMC
Chapitre 3 Guide de référence du langage objet
Comment les Dans l'exemple suivant, la catégorie Generated Files pour les classificateurs
fichiers générés et contient une entrée 'Java Source'. Cette entrée contient le template nommé
les templates %source% dans la zone de texte.
fonctionnent
ensemble ?
Roles d'association Vous pouvez définir des collections d'implémentation pour les associations.
Les attributs d'association évalués sont : Nom de rôle, Visibilité, Multiplicité,
Implémentation (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 définir le rôle actif dans l'association à l'aide des
attributs RoleAActive ou RoleBActive. Lorsque vous référencez par
exemple RoleAActive, le rôle A de l'association devient actif et le script
d'implémentation peut récupérer les attributs correspondant au rôle A.
310 PowerAMC
C H A P T E R 4
Attention
Ne modifiez pas les langages de processus fournis avec PowerAMC. Pour
chaque langage de processus que vous souhaitez modifier, vous devez
créer un nouveau langage de processus. Pour ce faire, vous devez créer un
nouveau langage de processus à partir de la boîte de dialogue Liste des
langages de processus (Outils→Ressources→Langages objet), définir un
nom et sélectionner le fichier d'origine dans la liste déroulante Copier
depuis. Vous pouvez ainsi créer un nouveau langage de processus
identique au fichier d'origine (sauf en ce qui concerne le nom).
Qu'est-ce qu'un Le langage de processus est un composant requis lorsque vous travaillez avec
langage de des Modèles de Processus Métiers (MPM). Chaque langage de processus a sa
processus ? propre définition de langage de processus au format XML qui contient les
spécifications pour un langage de processus particulier dans un format lisible
par un MPM. Il fournit la syntaxe et les règles de génération des objets et la
mise en oeuvre des stéréotypes, des scripts et des constantes pour un langage
de processus.
Chaque MPM est par défaut attaché à un langage de processus. Lorsque vous
créez un nouveau MPM, vous devez choisir un langage de processus : vous
pouvez créer un nouveau langage de processus, ou bien utiliser l'un des
langages de processus fournis avec le MPM.
La définition d'un langage de processus est disponible dans sa feuille de
propriétés (Outils→Ressources→Langages de processus. Vous pouvez
sélectionner et configurer des paramètres utilisés lors de la définition des
objets ou de la génération à partir d'un MPM.
Que contient un Tous les langages de processus ont la même structure constituée d'un certain
langage de nombre de catégories. Une catégorie peut contenir d'autres catégories, des
processus ? entrées et des valeurs. Ces entrées sont des paramètres reconnaissables par un
MPM.
Les valeurs pour les entrées de langage de processus varient selon le langage
considéré. Certaines entrées peuvent ne pas être disponibles si la
fonctionnalité ne s'applique pas au langage de processus.
312 PowerAMC
Chapter 4 Guide de référence du langage de processus
314 PowerAMC
Chapter 4 Guide de référence du langage de processus
Catégorie Description
Settings Contient des types de données, des constantes, des conventions
de dénomination et des catégories d'événements utilisés dans le
MPM
Generation Contient des objets de génération avec des options et des scripts
de commandes définis dans le fichier .XPL
Profile Contient des templates, des stéréotypes, des attributs étendus
pour la génération
Transformation Contient un groupe de transformations utilisées lors de la
profile génération de modèle
Propriété Description
Nom Nom du langage de processus
Code Code du langage de processus
Nom de fichier Chemin d'accès 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
Famille Classification utilisée pour impliquer un certain
comportement dans le modèle objet. Dans PowerAMC, la
famille est utilisée pour activer certaines fonctionnalités
dans le modèle. De telles fonctionnalités n'existent pas par
défaut dans le MPM standard. Voir l'exemple ci-après
Sous-famille Sous-classification qui peut être combinée avec la
classification en familles pour impliquer un certain
comportement dans le langage de processus
Activer le suivi Affiche les templates de génération utilisés pour le texte
généré dans la page Aperçu des feuilles de propriétés
d'objets
Commentaire Informations supplémentaires relatives au langage de
processus
Catégorie Generation
La catégorie Generation contient des catégories et des entrées permettant de
définir et d'activer un processus de génération. Vous pouvez utiliser les
catégories suivantes :
♦ Commands
♦ Tasks
♦ Options
316 PowerAMC
Chapter 4 Guide de référence du langage de processus
Catégorie Commands
La catégorie Commands permet d'écrire des commandes de génération. Les
commande de génération peuvent être exécutées à la fin du processus de
génération, une fois tous les fichiers générés.
Toutes les commandes écrites dans la catégorie Commands sont disponibles
après la création dans la page Tâches de la boîte de dialogue de génération,
elles peuvent alors être exécutées à la fin de la génération. Vous pouvez
trouver des commandes par défaut dans le langage de processus courant.
Toutes les commandes par défaut ne sont pas répertoriées ici car elles
dépendent entièrement du langage de processus utilisé.
Les commandes doivent être incluses au sein de tâches pour être exécutées.
Pour plus d'informations sur le rôle des tâches, reportez-vous à la
section Catégorie Tasks.
Les commandes sont spécifiquement liées à un langage de processus. Le texte
qui définit le code de la commande est écrit à l'aide du langage de génération
par template (GTL, Generation Template Language).
Pour plus d'informations sur le GTL, reportez-vous au chapitre Guide
de référence de la génération.
Les macros spécifiques sont disponibles dans le cadre de l'exécution des
commandes.
Pour plus d'informations sur les macros, reportez-vous à la section
Utilisation de macros dans le chapitre Guide de référence de génération.
Catégorie Tasks
Une tâche est une liste de commandes à exécuter à l'issue de la génération.
Ces commandes doivent être référencées au sein des différentes tâches
définies pour la génération, une commande non référencée dans une tâche ne
peut pas être exécutée. Vous trouverez à la fin de cette section un exemple
comportant une commande et une tâche contenant cette commande.
318 PowerAMC
Chapter 4 Guide de référence du langage de processus
320 PowerAMC
Chapter 4 Guide de référence du langage de processus
Catégorie Options
La catégorie Options permet de personnaliser le processus de génération. Elle
contient des entrées par défaut qui représentent des options de génération.
Vous pouvez définir des options de génération à partir de la catégorie
Generation\Options dans le langage de processus. Ces options définies par
l'utilisateur sont disponibles après la création dans la page Options de la boîte
de dialogue de génération.
Les options de génération peuvent être utilisées dans tous les templates.
Vous pouvez créer les différents types d'options suivants :
Type Description
Booléenne Lorsque ce type est sélectionné, une zone Valeur permet de choisir
entre Oui et Non
Chaîne Lorsque ce type est sélectionné, une zone Valeur permet de saisir la
chaîne
Liste Lorsque ce type est sélectionné, 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
boîte de dialogue de génération : lorsqu'un commentaire de valeur est
spécifié, il est affiché dans la liste à la place du nom de la valeur.
Vous pouvez trouver des options par défaut définies dans le langage de
processus. Ces options ne sont pas répertoriées ici car elles dépendent 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 Génération pour un langage dans le
manuel Guide de l'utilisateur du Modèle Orienté Objet.
1 Pointez sur la catégorie Generation\Options et cliquez le bouton droit de
la souris.
2 Sélectionnez Nouveau.
La nouvelle entrée s'affiche avec un nom par défaut.
322 PowerAMC
Chapter 4 Guide de référence du langage de processus
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 définissez une option booléenne nommée
GenerateComment, %GenOptions.GenerateComment% sera évaluée à true
ou false dans un template, selon la valeur spécifiée dans la page Options de la
boîte de dialogue de génération.
324 PowerAMC
Chapter 4 Guide de référence du langage de processus
Catégorie Settings
La catégorie Settings contient des éléments permettant de personnaliser et de
gérer les fonctionnalités de génération de MPM. Les éléments spécifiques à
un langage de processus ne sont pas détaillés dans cette section.
Catégorie Description
Implementation Disponible uniquement pour un MPM exécutable. Rassemble
les options qui influencent les possibilités de mise en oeuvre
du processus
DataHandling Disponible uniquement pour un MPM exécutable. Rassemble
les options qui permettent de générer les données dans le
langage
Choreography Rassemble des objets qui permettent de modéliser le graphe
des activités (début, fin, décision, synchronisation,
transition...)
Catégorie Implementation
La catégorie Implementation (uniquement disponible pour le MPM
exécutable) contient les valeurs constantes suivantes définies par défaut :
326 PowerAMC
Chapter 4 Guide de référence du langage de processus
Catégorie DataHandling
La catégorie DataHandling (uniquement disponible pour le MPM exécutable)
contient les valeurs constantes suivantes définies par défaut :
Constante Description
EnableMessageOnFlow Ce paramètre indique si un format de message
peut ou non être associé à un flux. La valeur par
défaut est Oui
EnableMessageVariable Ce paramètre permet à une variable de stocker la
totalité d'un format de message. Dans ce cas, le
format de message apparaîtra dans la liste
déroulante Type de données de la variable
Catégorie Choreography
La catégorie Choreography contient les valeurs constantes suivantes définies
par défaut :
Constante Description
EnableMultipleStarts Lorsque défini à Non, ce paramètre vérifie
qu'un processus composite ne comporte pas
plusieurs débuts
EnableTopLevelChoreography Lorsque défini à Non, ce paramètre vérifie
qu'aucun flux ou objet de chorégraphie (début,
fin, décision...) n'est défini directement sous le
modèle ou sous un package. Ces objets peuvent
être définis uniquement sous un processus
composite
Catégorie Profile
Chaque métaclasse dans le profil a une catégorie identifiée par son nom qui
contient plusieurs catégories telles que Stereotypes, Extended attributes,
Methods, etc.
Le profil est un mécanisme d'extension utilisé pour personnaliser un
métamodèle en lui ajoutant des sémantiques supplémentaires. Les profils sont
utilisés pour créer des catégories d'objets (stéréotypes et critères),
personnaliser les graphiques d'objets, ajouter des métadonnées
supplémentaires aux objets (attributs étendus), définir des possibilités de
génération nouvelles ou modifiées (templates), ajouter des méthodes, des
transformations, et des collections étendues sur les métaclasses et menus.
Pour plus d'informations sur la catégorie Profile, reportez-vous au
chapitre Gestion des profils.
328 PowerAMC
C H A P I T R E 5
Avant de Ne modifiez pas un langage XML fourni avec PowerAMC. Créez toujours
commencer 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 façon dont PowerAMC fonctionne, tout particulièrement en ce qui
concerne la génération d'objets. Vous devez tester en profondeur les objets
générés.
Pour plus d'informations sur la création d'un langage XML par copie
d'un langage XML existant, reportez-vous à la section Création d'un fichier
de ressources, dans le chapitre L'éditeur de ressources du manuel Guide des
fonctionnalités générales.
Attention
Ne modifiez pas les langages XML fournis avec PowerAMC. Pour chaque
langage XML que vous souhaitez modifier, vous devez créer un nouveau
langage XML. Pour ce faire, vous devez créer un nouveau langage XML à
partir de la boîte de dialogue Liste des langages XML
(Outils→Ressources→Langages XML), définir un nom et sélectionner le
fichier d'origine dans la liste déroulante Copier depuis. Vous pouvez ainsi
créer un nouveau langage XML identique au fichier d'origine (sauf en ce
qui concerne le nom).
Qu'est-ce qu'un Le langage XML est un composant requis lorsque vous travaillez avec des
langage XML ? modèles XML. Chaque langage XML a sa propre définition de langage XML
au format XML qui contient les spécifications pour un langage XML
particulier dans un format lisible par un modèle XML. Il fournit la syntaxe et
les règles de création des objets et met en oeuvre les stéréotypes, types de
données, scripts et constantes pour un langage XML.
Chaque modèle XML est par défaut attaché à un langage XML. Lorsque
vous créez un nouveau modèle XML, vous devez choisir un langage XML :
vous pouvez créer un nouveau langage XML, ou bien utiliser l'un des
langages XML fournis avec le modèle XML.
La définition d'un langage XML est disponible dans sa feuille de propriétés
(Outils→Ressources→Langages XML. Vous pouvez sélectionner et
configurer des paramètres utilisés lors de la définition des objets ou de la
génération à partir d'un modèle XML.
Que contient un Tous les langages XML ont la même structure constituée d'un certain nombre
langage XML ? de catégories. Une catégorie peut contenir d'autres catégories, des entrées et
des valeurs. Ces entrées sont des paramètres reconnaissables par un modèle
XML.
Les valeurs pour les entrées de langage XML varient selon le langage
considéré. Certaines entrées peuvent ne pas être disponibles si la
fonctionnalité ne s'applique pas au langage XML.
Exemples de Même si un langage XML particulier est utilisé pour illustrer un exemple, le
langage XML mécanisme expliqué dans ce chapitre s'applique à tous les langages XML
pris en charge dans un modèle XML.
330 PowerAMC
Chapitre 5 Guide de référence du langage XML
Catégorie Description
Settings Contient des tables de conversion de types de données
Generation Contient des options de génération, des tâches et des scripts de
commande définis dans le fichier .XPL
Profile Contient des templates, des stéréotypes, des attributs étendus
pour la génération
Transformation Contient un groupe de transformations utilisé lors de la
profile génération de modèle
Propriété Description
Nom Nom du langage XML
Code Code du langage XML
Nom de fichier Chemin d'accès 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
Famille Classification utilisée pour impliquer un certain
comportement dans le modèle XML. Dans PowerAMC, la
famille est utilisée pour activer certaines fonctionnalités
dans le modèle. De telles fonctionnalités n'existent pas par
défaut dans le modèle XML standard
Sous-famille Sous-classification qui peut être combinée avec la
classification en familles pour impliquer un certain
comportement dans le langage XML
Activer le suivi Affiche les templates de génération utilisés pour le texte
généré dans la page Aperçu des feuilles de propriétés
d'objets
Commentaire Informations supplémentaires relatives au langage XML
332 PowerAMC
Chapitre 5 Guide de référence du langage XML
Activer le suivi La case Activer le suivi permet de prévisualiser les templates utilisés lors de
la génération. Avant même de lancer la génération, vous pouvez afficher la
page Aperçu de l'objet impliqué dans la génération pour voir ses templates et
utiliser l'outil Réactualiser pour les afficher.
Lorsque vous double-cliquez sur une ligne de suivi dans la page Aperçu, la
définition de template correspondante s'affiche dans l'éditeur de ressources,
dans la catégorie Profile\Objet\Templates. Le code du template peut être
affiché dans des couleurs distinctes.
Catégorie Generation
La catégorie Generation contient des catégories et des entrées permettant de
définir et d'activer un processus de génération. Vous pouvez utiliser les
catégories suivantes :
♦ Commandes de génération
♦ Tâches de génération
♦ Options de génération
Catégorie Commands
La catégorie Commands permet d'écrire des commandes de génération. Les
commande de génération peuvent être exécutées à la fin du processus de
génération, une fois tous les fichiers générés.
Toutes les commandes écrites dans la catégorie Commands sont disponibles
après la création dans la page Tâches de la boîte de dialogue de génération,
elles peuvent alors être exécutées à la fin de la génération. Vous pouvez
trouver des commandes par défaut dans le langage XML courant. Toutes les
commandes par défaut ne sont pas répertoriées ici car elles dépendent
entièrement du langage XML utilisé.
Les commandes doivent être incluses au sein de tâches pour être exécutées.
Pour plus d'informations sur le rôle des tâches, reportez-vous à la
section Catégorie Tasks.
Les commandes sont liées à un langage XML. Le texte qui définit le code de
la commande est écrit à l'aide du langage de génération par templates (GTL).
Pour plus d'informations sur le GTL, reportez-vous au chapitre Guide
de référence de génération.
Les macros spécifiques sont disponibles dans le cadre de l'exécution des
commandes.
Pour plus d'informations sur les macros, reportez-vous à la section
Utilisation de macros dans le chapitre Guide de référence de génération.
334 PowerAMC
Chapitre 5 Guide de référence du langage XML
Catégorie Tasks
Une tâche est une liste de commandes à exécuter à l'issue de la génération.
Ces commandes doivent être référencées au sein des différentes tâches
définies pour la génération, une commande non référencée dans une tâche ne
peut pas être exécutée. Vous trouverez à la fin de cette section un exemple
comportant une commande et une tâche contenant cette commande.
Le mécanisme d'exécution de la commande fonctionne comme suit :
lorsqu'une tâche est sélectionnée dans la page Tâches de la boîte de dialogue
de génération, les commandes incluses dans la tâches sont extraites et le
template associé à la commande est évalué et exécuté.
Les tâches s'affichent dans la page Tâches de la boîte de dialogue de
génération et sont exécutées dans un ordre défini. Cet ordre peut être
facilement modifié en utilisant les flèches de déplacement dans la page
Tâches.
Vous devez créer la commande avant de créer la tâche qui contient cette
commande.
Catégorie Options
La catégorie Options permet de personnaliser le processus de génération.
Elle contient des entrées par défaut qui représentent des options de
génération.
Vous pouvez définir des options de génération à partir de la catégorie
Generation\Options dans le langage XML. Ces options définies par
l'utilisateur sont disponibles après la création dans la page Options de la boîte
de dialogue de génération.
Les options de génération peuvent être utilisées dans tous les templates.
Vous pouvez créer les différents types d'options suivants :
Type Description
Booléenne Lorsque ce type est sélectionné, une zone Valeur permet de choisir
entre Oui et Non
Chaîne Lorsque ce type est sélectionné, une zone Valeur permet de saisir la
chaîne
Liste Lorsque ce type est sélectionné, 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 boîte de dialogue de génération : lorsqu'un commentaire de valeur est
spécifié, il est affiché dans la liste à la place du nom de la valeur.
Vous pouvez trouver des options par défaut définies dans le langage XML.
Ces options ne sont pas répertoriées ici car elles dépendent du langage XML
que vous utilisez.
Pour plus d'informations sur la liste des options de votre langage XML,
reportez-vous au chapitre Génération pour un langage dans le manuel Guide
de l'utilisateur du Modèle Orienté Objet.
1 Pointez sur la catégorie Generation\Options et cliquez le bouton droit de
la souris.
2 Sélectionnez Nouveau.
La nouvelle entrée s'affiche avec un nom par défaut.
336 PowerAMC
Chapitre 5 Guide de référence du langage XML
338 PowerAMC
Chapitre 5 Guide de référence du langage XML
Catégorie Settings
La catégorie Settings contient la sous-catégorie Data types qui montre la
correspondance entre les types de données internes et ceux du langage XML.
Les types de données suivants sont définis par défaut :
Catégorie Profile
Chaque métaclasse dans le profil a une catégorie identifiée par son nom qui
contient plusieurs catégories telles que Stereotypes, Extended attributes,
Methods, etc.
Le profil est un mécanisme d'extension utilisé pour personnaliser un
métamodèle en lui ajoutant des sémantiques supplémentaires. Les profils
sont utilisés pour créer des catégories d'objets (stéréotypes et critères),
personnaliser les graphiques d'objets, ajouter des métadonnées
supplémentaires aux objets (attributs étendus), définir des possibilités de
génération nouvelles ou modifiées (templates), ajouter des méthodes, des
transformations, et des collections étendues sur les métaclasses et menus.
Pour plus d'informations sur la catégorie Profile, reportez-vous au
chapitre Gestion des profils.
340 PowerAMC
C H A P I T R E 6
Attention
Il est préférable de ne pas modifier les définitions étendues de modèle
fournies avec PowerAMC. Pour chaque définition étendue de modèle
d'origine que vous souhaitez modifier, créez une nouvelle définition
étendue de modèle. Pour ce faire, vous devez créer la nouvelle définition
étendue de modèle à la partir de la boîte de dialogue Liste des définitions
étendues de modèle, définir un nom et sélectionner le fichier d'origine
dans la liste déroulante Copier depuis. Cette méthode permet de créer une
nouvelle définition étendue de modèle identique au fichier d'origine,
excepté son nom.
342 PowerAMC
Chapitre 6 Guide de référence des définitions étendues de modèle
Que contient une Toutes les définitions étendues de modèle ont la même structure composée de
définition étendue catégories. Une catégorie peut contenir d'autres catégories, des entrées, et
de modèle ? des valeurs. Ces entrées sont des paramètres reconnaissables par
PowerAMC.
Les valeurs pour les catégories de définition étendue de modèle varient d'une
définition étendue de modèle à l'autre. Certaines entrées peuvent ne pas
exister dans un fichier de définition étendue de modèle si elles ne sont pas
applicables à cette définition étendue de modèle particulière.
Comment utiliser Vous pouvez créer des définitions étendues de modèle génériques et
les définitions spécifiques.
étendues de
modèle ? ♦ Une définition étendue de modèle générique est une bibliothèque
d'extensions de métamodèle, ainsi que des paramètres de génération. Ce
fichier est stocké dans une partie centrale et peut être référencé par des
modèles afin de garantir la cohérence des données et permettre à
l'utilisateur de gagner du temps
♦ Une définition étendue de modèle spécifique est incorporée dans un
modèle et développe des définitions d'objet et des paramètres de
génération dans ce modèle particulier
344 PowerAMC
Chapitre 6 Guide de référence des définitions étendues de modèle
346 PowerAMC
Chapitre 6 Guide de référence des définitions étendues de modèle
348 PowerAMC
Chapitre 6 Guide de référence des définitions étendues de modèle
Option
d'importation Description
Partage : Utiliser Vous utilisez une version partagée de la définition étendue
des définitions de modèle. Cette définition est partagée par tous les
étendues de modèle modèles, voire par tous les utilisateurs d'une équipe de
partagées conception. Toute modification dans les propriétés de la
définition étendue de modèle sont appliquées à tous les
modèles qui partagent la définition étendue de modèle
Copie : Créer une Vous créez une copie de la définition étendue de modèle
copie des définitions dans le modèle. Vous pouvez modifier cette définition
étendues dans votre modèle. Toute modification apportée aux
sélectionnées propriétés de la définition étendue de modèle n'est
appliquée qu'au seul modèle courant
Conventions de dénomination
Lorsque vous importez une définition étendue de modèle et la copiez dans
un modèle, le nom et le code de la définition étendue de modèle peut être
modifié afin de respecter les conventions de dénomination définies dans la
boîte de dialogue Options du modèle.
350 PowerAMC
Chapitre 6 Guide de référence des définitions étendues de modèle
Une définition étendue de modèle créée dans un modèle ne s'affiche pas dans
la boîte de dialogue Liste des définitions étendues de modèle. En revanche,
une définition étendue de modèle exportée s'affiche dans la boîte de dialogue
Liste des définitions étendues de modèle.
352 PowerAMC
Chapitre 6 Guide de référence des définitions étendues de modèle
Editeur de Vous pouvez consulter ou modifier une définition étendue de modèle à l'aide
définitions de l'éditeur de définition étendue de modèle.
étendues de
modèle L'éditeur de définition étendue de modèle permet de naviguer parmi les
catégories et entrées. Lorsque vous sélectionnez une catégorie dans l'éditeur
de définition étendue de modèle, le nom, le code et le commentaire associé
s'affichent dans la partie droite de la fenêtre. Lorsque vous sélectionnez une
entrée dans l'éditeur, le nom, la valeur et le commentaire associé s'affiche
dans la partie droite de la fenêtre.
Pour plus d'informations sur l'utilisation de l'éditeur de définition
étendue de modèle, reportez-vous au chapitre L'éditeur de ressources dans le
manuel Guide des fonctionnalités générales.
Une définition étendue de modèle contient les principales catégories
suivantes :
Catégorie Description
Generation Utilisé pour définir et/ou activer une génération
Profile Utilisé pour définir des extensions pour les métaclasses
PowerAMC afin de définir des stéréotypes, des critères, des
attributs étendus, des fichiers générés, des templates de
génération, des symboles personnalisés et des vérifications
personnalisées
Ces catégories sont analysées plus en détails dans les sections suivantes du
présent chapitre.
Propriété Description
Nom Nom de la définition étendue de modèle. Ce nom doit être
unique dans un modèle dans le cas des définitions étendues
de modèle génériques ou spécifiques
Code Code de la définition étendue de modèle. Ce code doit être
unique dans un modèle pour les définitions étendues de
modèle génériques ou spécifiques
Nom de fichier Chemin et nom du fichier de la définition étendue de
modèle. Cette zone est renseignée lorsque la définition
étendue de modèle est partagée. Si la définition étendue de
modèle est une copie, la zone est vide. Vous ne pouvez pas
modifier le contenu de cette zone
Famille Utilisé pour classifier une définition étendue de modèle. La
famille est conçue pour aider à établir un lien entre le
langage objet d'un MOO et une définition étendue de
modèle. Lorsque la famille de langage objet correspond à la
famille de la définition étendue de modèle, suggère que la
définition étendue de modèle peut être utilisée pour
compléter le langage objet. Par exemple, lorsqu'une
définition étendue de modèle a comme famille JAVA, elle a
été conçue pour fonctionner avec le langage objet JAVA.
Cette fonctionnalité n'est disponible que pour le MOO
Sous-famille Utiliser pour affiner la famille. Par exemple, EJB 2.0 est
une sous-famille de Java
Rattachement Utilisé pour lier la définition étendue de modèle au langage
automatique objet courant. Si la case Rattachement automatique est
cochée, la définition étendue de modèle correspondante
sera sélectionnée dans la page Définitions étendues de
modèle de la boîte de dialogue Nouveau modèle
Catégorie Utilisé pour regrouper des définitions étendues de modèle
concurrentes pour la génération. Par exemple, une catégorie
appelée "Serveurs d'applications" peut être créée pour
regrouper des définitions étendues de modèle dédiées aux
différents serveurs. Les définitions étendues de modèle de
même catégorie ne peuvent pas être générées simultanément
Activer le suivi Lorsque cette option est sélectionnée, affiche les templates
de génération utilisés pour le texte généré dans la page
Aperçu d'une feuille de propriétés d'objet
354 PowerAMC
Chapitre 6 Guide de référence des définitions étendues de modèle
Propriété Description
Compléter la Indique que la définition étendue de modèle est utilisée
génération de pour compléter la génération d'un langage objet. Voir la
langage section ci-après
Commentaire Commentaires relatifs à la définition étendue de modèle
Activer le suivi La case Activer le suivi permet de prévisualiser les templates utilisés lors de
la génération. Avant même de lancer la génération, vous pouvez afficher la
page Aperçu de l'objet impliqué dans la génération pour voir ses templates.
Lorsque vous double-cliquez sur une ligne de suivi dans la page Aperçu, la
définition de template correspondante s'affiche dans l'éditeur de ressources,
dans la catégorie appropriée. Le code du template peut être affiché dans des
couleurs distinctes.
Pour plus d'informations sur la coloration syntaxique, reportez-vous à la
section Création d'un fichier généré dans le chapitre Gestion des profils.
Cibles de génération
L'entrée Category influence le format de la page Cibles de la boîte de
dialogue de génération. Les définitions étendues de modèle sont regroupées
par catégorie sur cette page : chaque définition étendue de modèle s'affiche
en regard d'un bouton radio et au sein de la catégorie à laquelle elle
appartient. Si vous ne définissez aucune catégorie, la définition étendue de
modèle est considérée comme cible de la génération.
356 PowerAMC
Chapitre 6 Guide de référence des définitions étendues de modèle
Propriétés Description
Nom Nom du profil de transformation
Commentaire Informations supplémentaires relatives au profil de
transformation
Type de modèle Spécifie le type de modèle avec lequel le profil de
transformation peut être utilisé. Permet de filtrer les profils
lors de la génération. Par exemple, si vous sélectionnez MOO
alors que la définition étendue de modèle courante est celle
d'un MPD, le profil de transformation peut être utilisé lors de
la génération d'un MPD vers un MOO (ou depuis un MOO
vers un MPD)
Famille et Sous- Si le type de modèle prend en charge un fichier de ressource
famille cible, vous pouvez également définir une famille et une sous-
famille pour filtrer l'affichage des profils dans la boîte de
dialogue de génération.
La famille est utilisée pour établir un lien entre le fichier de
ressources d'un modèle et une définition étendue de modèle.
Lorsque la famille du fichier de ressources correspond à la
famille de la définition étendue de modèle, cela suggère que
la définition étendue de modèle complète le fichier de
ressources
Pré-génération
La page Pré-génération du profil affiche une liste ordonnée de
transformations qui sont exécutées avant la génération dans le modèle source.
Ces transformations sont exécutées lorsque le modèle courant dans lequel
vous avez créé la définition étendue de modèle est le modèle source et que
les contraintes définies pour les type de modèle, famille et sous-famille sont
respectées.
Tout objet créé lors de la pré-génération est automatiquement ajouté à la liste
des objets utilisés lors de la génération.
Par exemple, vous pouvez définir un profil de transformation à l'aide d'une
transformation qui annule la création des EJB à partir des classes avant de
générer un MOO dans un MPD, ce afin d'établir une meilleur correspondance
entre les classes et tables lors de la génération.
Post-génération
La page post-génération du profil affiche une liste ordonnée de
transformations qui sont exécutées à l'issue de la génération. Ces
transformations sont exécutées après la génération, si le modèle dans lequel
vous avez créé la définition étendue de modèle est la cible de la génération.
Par exemple, vous définissez un profil de transformation avec des
transformations qui appliquent automatiquement les conventions de
dénomination appropriées aux objets générés.
Transformations
Un profil de transformation est une liste de transformations qui doit être
définie préalablement dans la catégorie Profile\Tranformations de la
définition étendue de modèle.
358 PowerAMC
Chapitre 6 Guide de référence des définitions étendues de modèle
Catégorie Generation
La catégorie Generation contient des catégories et des entrées servant à
définir et à activer un processus de génération. Vous pouvez utiliser les
catégories suivantes :
♦ Commands, pour lancer des commandes lors de la génération
♦ Options, pour définir des options relatives à la génération
♦ Tasks, pour stocker des commandes et pour définir des templates pour la
génération et pour les requêtes O/R et R/R
Commandes et tâches
La catégorie Commands permet de définir les commandes de génération. Les
commandes de génération peuvent être exécutées à la fin de la génération,
une fois les fichiers générés.
Le texte qui définit le code de la commande est écrit à l'aide du langage de
génération par templates (GTL). Il fait appel à des variables d'environnement
qui correspondent à des exécutables. Vous pouvez également utiliser des
macros dans vos commandes.
Pour plus d'informations sur le GTL, reportez-vous au chapitre Guide
de référence de la génération.
Toutes les commandes écrites dans la catégorie Commands sont disponibles
dans la page Tâches de la boîte de dialogue de génération depuis laquelle
elles peuvent être exécutées à la fin de la génération. Une tâche est une liste
de commandes à exécuter après la génération. Chaque tâche est répertoriée
dans la page Tâches de la boîte de dialogue de génération, en regard du nom
de la définition étendue de modèle. Vous pouvez les sélectionner et utiliser
les flèches pour définir leur ordre.
Si une entrée de la liste des commande n'est pas référencée dans une entrée
de la liste des tâches, elle ne sera pas exécutée lors de la génération.
Lorsqu'une tâche est sélectionnée dans la page Tâches de la boîte de dialogue
de génération, les commandes qu'elle inclut sont extraites et le template
associé à chaque commande est évalué et exécuté.
360 PowerAMC
Chapitre 6 Guide de référence des définitions étendues de modèle
Dans l'exemple suivant, des tâches sont définies dans la définition étendue de
modèle Weblogic ; les autres tâches proviennent du langage objet du modèle
(Java):
Création d'une Vous devez créer des commandes avant de pouvoir créer des tâches.
commande
Pour créer une commande :
1 Pointez sur la catégorie Commands, cliquez le bouton droit de la souris
et sélectionnez Nouveau dans le menu contextuel.
Une nouvelle commande est créée.
2 Saisissez un nom dans la zone Nom.
3 <facultatif> Saisissez un commentaire dans la zone Commentaire.
Création d'une
tâche Pour créer une tâche :
1 Pointez sur la catégorie Tasks, cliquez le bouton droit de la souris et
sélectionnez Nouveau dans le menu contextuel.
Une nouvelle tâche est créée.
2 Saisissez un nom dans la zone Nom.
3 <facultatif> Saisissez un commentaire dans la zone Commentaire.
Le commentaire de la tâche s'affiche dans la boîte de dialogue de
génération.
4 Cliquez sur l'outil Ajouter des commandes.
La boîte de dialogue Ajout de commandes s'affiche.
5 Sélectionnez une ou plusieurs commandes, puis cliquez sur OK.
La commande s'affiche dans la liste des commandes.
362 PowerAMC
Chapitre 6 Guide de référence des définitions étendues de modèle
6 Utilisez les flèches situées sous la liste pour définir l'ordre des
commandes.
Options
La catégorie Options permet de personnaliser le processus de génération.
Vous pouvez définir les types d'entrées suivants dans la catégorie Options :
364 PowerAMC
Chapitre 6 Guide de référence des définitions étendues de modèle
Vous pouvez utiliser les opérations de génération dans tous les templates et
toutes les commandes de génération. Pour connaître la valeur d'une option de
génération, 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 référence de la génération.
Compléter la Les paramètres de génération d'une définition étendue de modèle influent sur
génération le contenu de la boîte de dialogue de génération. Le tableau suivant montre
principale que vous pouvez personnaliser la génération à partir de l'éditeur de définition
étendue de modèle.
Boîte de dialogue
de génération Définition étendue de modèle
Page Cibles La page Cibles s'affiche si vous avez coché la case
Compléter la génération de langage dans la feuille de
propriétés de la définition étendue de modèle et si cette
définition étendue de modèle contient au moins une tâche
et un fichier généré
Page Options Définition des options dans Generation\Options à l'aide
d'entrées de type Booléenne, Liste et Chaîne
Page Tâches Définit les commandes à l'aide des entrées de commandes
et de références à ces commandes dans des tâches
Générer pour une Les définitions étendues de peuvent être utilisées pour créer de nouvelles
cible séparée cibles de génération. Dans ce cas, la case Compléter la génération de langage
doit être décochée et la définition étendue de modèle doit contenir des
entrées GeneratedFiles.
Cette génération est disponible pour tous les modules PowerAMC, à tout
moment vous pouvez générer pour une génération étendue en sélectionnant
Outils→Génération étendue.
366 PowerAMC
C H A P I T R E 7
Sujet
Ce chapitre fournit une référence complète sur les concepts utilisés dans le
langage de génération par templates (GTL, Generation Template Language)
disponible dans PowerAMC. Vous y trouverez également des conseils relatifs
à l'utilisation du GTL.
Sommaire
Section Page
368 PowerAMC
Chapitre 7 Guide de référence de la génération
Concepts pris en Le langage de génération par template prend en charge des concepts orientés
charge objet tels que les héritages et le polymorphisme et permet donc de réutiliser
les objets et d'assurer plus facilement leur maintenance. Il met également à
votre disposition des macros conditionnelles, itératives et de format de texte
permettant de spécifier la logique des templates. Les macros fournissent les
structures de programmation génériques pour le test des variables (par
exemple : .if) et permettent l'itération entre les éléments dépendant d'un objet
(par exemple : .foreach.).
Java pour les Dans ce chapitre, la plupart des exemples utilisent le langage Java. Toutefois,
exemples le mécanisme décrit dans cette section est également applicable à tous les
langages objets et à toutes les définitions étendues de modèle.
Définition de templates
370 PowerAMC
Chapitre 7 Guide de référence de la génération
Exemples
Vous allez trouver des exemples spécifiques de l'utilisation des templates
dans les différentes sections de ce chapitre.
Chaque variable entre % peut être le nom d'un attribut, ou bien une propriété
de l'objet courant, ou encore le nom d'un template.
Pour plus d'informations sur les variables, reportez-vous à la section
Définition des variables.
Les variables sont des valeurs qualifiées encadrées par des caractères % et
éventuellement précédés par des options de format. Au moment de
l'évaluation, elles sont remplacées par la valeur correspondante dans la portée
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
évaluée dans une macro et remplacée par le nom de l'interface dans le fichier
généré.
Respect de la casse
Attention, la casse des caractères est prise en compte pour les noms de
variable. La première lettre d'un nom de variable doit être une majuscule,
comme dans %Code%.
Syntaxe des
variables Les variables suivantes sont représentées avec leur syntaxe possible :
Variable Syntaxe
bloc-variable '%' ['.' <options-format> ':'] <variable> '%'
variable [<portée-externe> '.'] [<objet-variable> '.'] [<portée-objet>
'.']<membre-objet>
[<portée-externe> '.'] [<objet-variable> '.'] [<portée-
collection> '.']<membre-collection>
[<portée-externe> '.']<variable-locale>
[<portée-externe> '.'] <global-variable>
372 PowerAMC
Chapitre 7 Guide de référence de la génération
Variable Syntaxe
membre-objet <propriété>
[<code-cible> '::'] [<nom-métaclasse> '::'] <nom-
template>['('<liste-paramètres>')']
[<code-cible> '::']<attribut-étendu>
[' * ']+ <valeur-locale> ['('<liste-paramètres>')']
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>
portée-externe [<portée-externe> '.'] 'Outer'
portée-objet [<portée-objet> '.'] <objet-membre-objet>
<portée-collection> '.' <collection-membre-objet>
objet-membre-objet <propriété-typeobjet>
objet-membre- 'First'
collection
portée-collection [<portée-objet> '.'] <collection>
[<portée-objet> '.'] <collection étendue>*
* La collection inverse d'une collection étendue ne peut pas être évaluée avec le langage de
génération par template
Membres d'objet
374 PowerAMC
Chapitre 7 Guide de référence de la génération
Membres de collection
Remarque : Count est tout particulièrement utile pour définir des critères
basés sur la finle de la collection, par exemple (Attributes.Count>=10).
Variables locales
Les variables locales ne sont visibles dans la portée que si elles sont définies
dans ses portées internes.
Les variables locales peuvent être définies 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.
Opérateur de Les variables définies via la macro set_object sont référencées comme des
déréférencement objets locaux, tandis que celles définies à l'aide de la macro set_value sont
appelées valeurs locales. L'opérateur de déréférencement * peut être appliqué
aux valeurs locales.
L'opérateur * permet l'évaluation des variables dont le nom est la valeur de la
variable locale spécifiée.
'%'['.' <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 portée courante.
Certaines variables spécifiques au langage de génération par template sont
répertoriées dans le tableau suivant :
Portée externe
Une portée externe peut être accessible à l'aide du mot clé Outer. Le fait de
spécifier une portée change la portée de la conversion courante utilisée pour
l'évaluation de la variable.
376 PowerAMC
Chapitre 7 Guide de référence de la génération
Portée de l'objet
Pour accéder aux membres d'un objet qui n'est pas actif dans la portée de la
conversion courante, il est possible de spécifier une portée d'objet. Le fait de
spécifier une portée d'objet change la portée de la conversion courante
utilisée pour évaluer la variable.
Le caractère '.' (point) se comporte comme un opérateur d'indirection comme
dans le langage de programmation Java, le côté droit correspond à un
membre de l'objet référencé par le côté gauche.
Portée de la collection
Pour accéder aux membre d'une collection, vous pouvez spécifier une portée
de collection. Le caractère '.' (point) se comporte comme un opérateur
d'indirection comme dans le langage de programmation Java, le côté droit
correspond à un membre de la collection référencée par le côté gauche.
Par exemple :
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%
Option Description
n (n représente un Extrait les n premiers caractères. Des espaces ou des zéros
entier) sont ajoutés à gauche pour compléter la largeur et justifier le
résultat à droite
-n Extrait les n derniers caractères. Des espaces ou des zéros
sont ajoutés à droite pour compléter la largeur et justifier le
résultat à gauche
L Convertit les caractères en minuscules
U Convertit les caractères en majuscules
c Initiale majuscule et les autres caractères en minuscules
A Supprime automatique le retrait à droite et aligne le texte sur
le bord gauche
D Affiche la valeur d'interface d'une propriété d'objet avec un
nom différent dans la ligne de code. Dans l'exemple suivant,
la valeur pour la visibilité sera 'public', tandis que cette valeur
est stockée sous la forme '+' dans le MOO.
%Visibility% = +
%.D:Visibility% = public
F Combiné avec L et U, applique la conversion sur le premier
caractère
T Les espaces de gauche et de droite sont supprimés de la
variable
q Place la variable entre apostrophes
Q Place la variable entre guillemets
X Ignore les caractères interdits pour XML
378 PowerAMC
Chapitre 7 Guide de référence de la génération
380 PowerAMC
Chapitre 7 Guide de référence de la génération
%Shortcut%
.endif
.next(\n)
Ce comportement est l'inverse de celui du VB Script, dans lequel la
conversion des raccourcis récupère le raccourci lui-même.
Si un raccourci externe a le statut fermé, il est ignoré lors de la conversion et
n'apparaît pas dans le fichier généré.
Si vous souhaitez générer le raccourci lui-même plutôt que l'objet auquel il
fait référence, vous pouvez utiliser la variable %Shortcut%.
Les templates sont définis par rapport à une classe de métamodèle donnée et
sont hérités par ses enfants. Ils sont hérités par tous les enfants de la
métaclasse pour laquelle ils sont définis. Ce mécanisme est utile pour
partager le code de template entre différentes métaclasses ayant un parent en
commun.
Exemple Exemple d'héritage : Un classificateur/définition est disponible via l'héritage
d'une classe et d'une interface. Dans l'exemple suivant, le template de
définition spécifié sur la métaclasse parent est utilisé dans l'évaluation du
template de contenu sur la métaclasse enfant.
La redéfinition d'un template signifie qu'un template défini par rapport à une
métaclasse peut être redéfini sur une classe enfant, auquel cas le template de
la métaclasse parent est dit redéfini. La nouvelle définition masque la
première pour les objets de la métaclasse enfant.
Pour pouvoir utiliser la définition d'une métaclasse parent particulière, le
langage de génération par template fournit l'opérateur qualifiant "::".
Exemple
Définition du polymorphisme
382 PowerAMC
Chapitre 7 Guide de référence de la génération
Séquence
d'échappement Description
\n Caractère de passage à la ligne, crée une nouvelle
ligne
\t Caractère de tabulation, crée une tabulation
\\ Crée une barre oblique inverse
\ au début d'une ligne Crée un caractère de suite (ignore la nouvelle ligne)
. au début d'une ligne Ignore la ligne
.. au début d'une ligne Crée un caractère point (pour générer une macro)
%% Crée un caractère pourcent
Utilisation de macros
Les macros peuvent être utilisées pour exprimer la logique, et pour boucler
sur des collections d'objets. Chaque mot clé de macro doit être précédé d'un
caractère "." (point) et doit être le premier caractère, autre qu'un espace, sur
une ligne. Prenez soin de respecter la syntaxe des macros en termes de
passage à la ligne.
Vous pouvez définir une macro dans un template, ou dans une commande.
Vous pouvez définir trois types de macros, comme indiqué dans le tableau
suivant :
Macro Syntaxe
Macro de bloc <if> | <vbscript> | <unique> | <lowercase> |
<uppercase> | <replace> | <delete> | <block>
Macro de <foreach_item> | <foreach_line> | <foreach_part>
boucle
Macro simple <bool> | <set_object> | <set_value> |
<execute_vbscript> | <execute_command> |
<abort_command> | <change_dir> | <create_path> |
<log> | <warning> | <error>
384 PowerAMC
Chapitre 7 Guide de référence de la génération
Macro de bloc
Les macros de bloc se composent d'un mot clé de début et d'un mot clé de fin
délimitant un bloc auquel la macro est appliquée.
Leur structure se présente comme suit :
'.'<nom-macro> ['(' <paramètres> ')' ]
<bloc-entrée-macro>
'.'end<nom-macro> [ '(' <tail> ')' ]
<fin> est une constante de type chaîne facultative et qui est ajoutée au texte
généré, s'il existe.
Macro de boucle
Les macros de boucle sont utilisées pour l'itération. A chaque itération, une
nouvelle portée est créée. Le template spécifié dans le bloc est converti
simultanément conformément à la portée d'itération.
'.'foreach_<nom-macro> ['(' <paramètres> [',' <head>
[',' <fin>]] ')' ]
<template-complexe>
'.'next [ '(' <séparateur> ')' ]
<head> et <fin> sont des constantes de type chaîne facultatives. <head> est
générée avant, et <fin> est ajoutée après le texte généré, s'il existe.
Un <séparateur> peut également être spécifié 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 constituées que d'une seule
ligne.
Macro if
386 PowerAMC
Chapitre 7 Guide de référence de la génération
Macro vbscript
Macro unique
Résultat Le résultat est le bloc fourni en entrée dans lequel chaque ligne redondante a
été supprimée.
Exemple :
.unique
import java.util.*;
import java.lang.String;
%imports%
.endunique
388 PowerAMC
Chapitre 7 Guide de référence de la génération
Macro lowercase
Cette macro est particulièrement utile lorsque vous travaillez sur les
conventions de dénomination.
Pour plus d'informations les conventions de dénomination, reportez-
vous à la section Définition des conventions de dénomination, dans le
chapitre Gestion des modèles du manuel Guide des fonctionnalités générales.
Paramètres Paramètre Type Description
<bloc-entrée- Template Un paramètre est utilisé pour spécifier du texte
minuscules> complexe
Résultat Le résultat est le bloc utilisé en entrée 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
Cette macro est particulièrement utile lorsque vous travaillez sur les
conventions de dénomination.
Résultat Le résultat est le bloc utilisé en entrée 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 chaîne par une autre
chaîne dans un bloc de texte.
Cette macro est particulièrement utile lorsque vous travaillez sur les
conventions de dénomination.
Pour plus d'informations les conventions de dénomination, reportez-
vous à la section Définition des conventions de dénomination, dans le
chapitre Gestion des modèles du manuel Guide des fonctionnalités générales.
La macro .replace remplace l'ancienne chaîne <ancienne-chaîne> par la
chaîne <nouvelle-chaîne> dans le bloc de texte <Bloc>.
.replace '(' <ancienne-chaîne> ',' <nouvelle-chaîne> ')'
<bloc-entrée-replace>
.endreplace
390 PowerAMC
Chapitre 7 Guide de référence de la génération
Résultat Le résultat est que toutes les occurrences de la chaîne <ancienne-chaîne> sont
remplacées par des instances de la chaîne <nouvelle-chaîne> dans le bloc
spécifié.
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 chaîne dans un bloc de
texte. Dans le script suivant, elle supprime la chaîne <chaîne-suppr> dans le
bloc.
.delete '('<chaîne-suppr> ')'
<bloc-entrée-delete>
.enddelete
Cette macro est particulièrement utile lorsque vous travaillez sur les
conventions de dénomination.
Pour plus d'informations les conventions de dénomination, reportez-
vous à la section Définition des conventions de dénomination, dans le
chapitre Gestion des modèles du manuel Guide des fonctionnalités générales.
Paramètres Paramètre Type Description
<chaîne-suppr> Texte Chaîne à supprimer dans le bloc
<bloc-entrée- Template Un paramètre est utilisé pour spécifier du texte
delete> complexe
Résultat Le résultat est que toutes les occurrences de la chaîne <chaîne-suppr> sont
supprimées dans le bloc spécifié.
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 utilisée pour ajouter un en-tête et/ou une fin à son
contenu lorsque ce dernier n'est pas vide.
.block ['('<en-tête> ')']
<bloc-entrée>
.endblock['(' <fin> ')']
392 PowerAMC
Chapitre 7 Guide de référence de la génération
Macro convert_name
Remarque Vous pouvez également utiliser cette macro hors des conventions de
dénomination à condition que la table de conversion soit la table de l'objet
courant du script. Voici un exemple d'une macro qui peut être ajoutée à partir
de la catégorie Profile\Column dans une nouvelle entrée 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 Définition
des conversions de nom et de code du manuel Guide des fonctionnalités
générales.
Macro convert_code
Vous pouvez utiliser cette macro avec une table de conversion personnalisée
que vous sélectionnez dans la liste déroulante Table de conversion. Pour ce
faire, affichez la boîte de dialogue Options du modèle, sélectionnez l'objet
approprié dans la catégorie Conventions de dénomination, puis cliquez sur
l'onglet Nom en code.
394 PowerAMC
Chapitre 7 Guide de référence de la génération
Macro foreach_item
Définition de Toutes les collections sont accessibles pour un objet donné. Chaque objet
collections 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 règles de
gestion, etc.
Les collections sont représentées dans le métamodèle public PowerAMC par
des associations entre objets. Les rôles des associations correspondent aux
collections d'un objet.
.foreach_item(Attributes,,,,%Item1.Code% >=
%Item2.Code%))
Attribute %Code%[ = %InitialValue%];
.next(\n)
396 PowerAMC
Chapitre 7 Guide de référence de la génération
Macro foreach_line
La macro foreach_line est une macro simple qui procède à l'itération sur les
lignes du template de saisie spécifié comme premier argument pour la macro.
Le template spécifié dans le bloc est converti pour chaque ligne de l'entrée.
Cette macro crée une nouvelle portée avec la variable locale CurrentLine.
Cette dernière est définie dans le bloc comme étant la i-ème ligne du template
en entrée dans l'itération i.
.foreach_line '(' <entrée> [',' <en-tête> [',' <fin>]]
')' <template-complexe>
.next ['(( <séparateur> ')']
Macro foreach_part
Cette macro crée une nouvelle portée dans laquelle la variable locale
CurrentPart est définie comme la i-ème partie du template en entrée à
l'itération i. La variable locale Separator contient le séparateur suivant.
Cette macro est particulièrement utile lorsque vous travaillez sur les
conventions de dénomination.
Pour plus d'informations les conventions de dénomination, reportez-
vous à la section Définition des conventions de dénomination, dans le
chapitre Gestion des modèles du manuel Guide des fonctionnalités générales.
Séparateur-motif Le <séparateur-motif> est défini dans une chaîne entre guillemets et se
comporte comme suit :
♦ Tout caractère spécifié dans le motif peut être utilisé comme séparateur
♦ [<c1> - <c2>] spécifie un caractère au sein de la plage définie entre
les caractères <c1> et <c2>
Par exemple, le motif suivant “ -_,[A-Z]” spécifie que chaque partie peut
être séparée par un espace, un tiret, un trait de soulignement, une virgule ou
un caractère compris entre A et Z (majuscule).
Par défaut, le <séparateur-motif> est initialisé avec le motif (“ -_,\t”). Si
le motif spécifié est vide, le motif est initialisé à l'aide de la valeur par défaut.
398 PowerAMC
Chapitre 7 Guide de référence de la génération
Macro bool
Exemple :
.bool(%.3:Code%= =ejb)
Macro set_object
Cette macro est utilisée pour définir une variable locale de type objet (objet
local).
.set_object '(' <nom-var-locale> [',' <object-ref>[',' <new> ]] ')'
400 PowerAMC
Chapitre 7 Guide de référence de la génération
Remarque
Lorsque vous spécifiez une nouvelle variable, il est recommandé de
spécifier 'new' comme troisième argument pour vous assurer qu'une
nouvelle variable soit créée dans la portée courante.
Macro set_value
Cette macro est utilisée pour définir une variable locale ou un type de valeur.
.set_value '(' <nom-var-locale> ')' <value>[',' <new> ')'
Remarque
Lorsque vous spécifiez une nouvelle variable, il est recommandé de
spécifier 'new' comme troisième argument pour vous assurer qu'une
nouvelle variable soit créée dans la portée courante.
Macro execute_vbscript
Cette macro est utilisée pour exécuter un script VB spécifié dans un fichier
séparé.
.execute_vbscript '(' <fichier-vbs> [',' <script-
parameter>] ')'
Macro execute_command
Cette macro est utilisée pour lancer des exécutables sous forme de processus
séparés. Elle est disponible pour exécuter des commandes de génération
uniquement, et peut être combinée aux macros standard du langage de
génération par template lorsque vous définissez des commandes.
.execute_command '(' <cmd> [',' <args> [',' <mode>]] ')'
402 PowerAMC
Chapitre 7 Guide de référence de la génération
Macro abort_command
Macro change_dir
Cette macro change le répertoire courant. Elle est disponible pour exécuter
des commandes de génération uniquement, et peut être combinée aux macros
standard du langage de génération par template lorsque vous définissez des
commandes.
.change_dir '(' <chemin> ')'
Exemple :
.change_dir(C:\temp)
Macro create_path
Exemple :
.create_path(C:\temp)
Macro log
Exemple :
.log undefined environment variable: JAVAC
404 PowerAMC
Chapitre 7 Guide de référence de la génération
Macro warning
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'apparaît pas
dans le fichier généré. En revanche error stoppe la génération. Le message
d'erreur est le template spécifié converti pour l'objet actif. Il est affiché à la
fois dans la page Aperçu de la feuille de propriétés de l'objet et dans la
fenêtre Résultats.
.error <message>
Exemple :
.error aucune valeur initiale fournie pour l'attribut
%Code% de la classe %Parent.Code%
Commentaire et macro //
406 PowerAMC
Chapitre 7 Guide de référence de la génération
Erreurs de syntaxe
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 :
408 PowerAMC
Chapitre 7 Guide de référence de la génération
Partage de templates
Partage de conditions
Un template récursif est template qui est défini par rapport à lui-même.
Exemple Considérons trois X, Y et Z. X est interne à Y, et Y est interne à Z.
La variable %topContainerCode% est définie pour extraire la valeur du
conteneur parent d'une classe.
La valeur du template est la suivante :
.if (%isInner%)
%ContainerClassifier.topContainerCode%
.else
%Code%
.endif
Les chaînes d'en-tête et de fin sont utiles car elles ne sont générées que
lorsque nécessaire, cela est particulièrement utile lorsque vous utilisez de
nouvelles lignes '\n'. Elles sont ajoutées respectivement au début et à la fin du
code généré, la chaîne d'en-tête et la chaîne de fin n'apparaissant pas dans le
code généré.
410 PowerAMC
Chapitre 7 Guide de référence de la génération
Exemple Vous souhaitez générer le nom d'une classe et ses attributs sous le format
suivant (une ligne vide entre les attributs et la classe) :
Attribute 1 attr1
Attribute 2 attr2
Class
Vous pouvez insérer le séparateur "\n" après l'instruction .foreach pour vous
assurer que chaque attribut s'affiche dans une ligne séparée. Vous pouvez
également ajouter "\n\n " après l'instruction .endfor pour insérer une ligne
vide après la liste d'attributs et avant le mot "Class".
.foreach (Attribute) ("\n")
Attribute %Code%
.endfor ("\n\n")
Class
Exemple Considérons une classe nommée Nurse, ayant pour code de classe Nurse, et
supplémentaire dotée de deux attributs :
Les templates suivants sont fournis à titre d'exemple, avec le texte généré
pour chacune d'entre eux, ainsi qu'une description de chaque résultat :
Template 1 class "%Code%" {
// Attributes
.foreach_item(Attributes)
%DataType% %Code%
.if (%InitialValue%)
= %InitialValue%
.endif
.next
// Operations
.foreach_item(Operations)
%ReturnType% %Code%(...)
.next
}
Description 1 Au-dessous du code de classe, le code est généré sur une ligne. Il s'agit d'un
exemple d'une macro de bloc (.if, .endif macro).
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
même 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 affichée dans le résultat et ce, même en l'absence
d'opération (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)
}
412 PowerAMC
Chapitre 7 Guide de référence de la génération
Description 4 Le caractères guillemet ("") dans " // Attributes\n" permet d'insérer un espace
comme indiqué dans le résultat : // Attributes
yields: JackPaul
instead of:
Jack
Paul
Vous pouvez passer des paramètres dans, hors ou dans/hors un template via
des variables locales en tirant parti des portées de traduction. Vous pouvez
accéder à des paramètres avec la variable %@<number>%.
Exemple Templates de classe :
Template 1 <show> template
<<<
Class "%Code%" attributes :
// Public
%publicAttributes%
// Protected
%protectedAttributes%
// Private
%privateAttributes%
>>>
414 PowerAMC
Chapitre 7 Guide de référence de la génération
// Protected
%attributes(#)%
// Private
%attributes(-)%
>>>
Description Le premier paramètre 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.
416 PowerAMC
C H A P I T R E 8
Sujet
Ce chapitre décrit le contenu et l'utilisation du métamodèle public
PowerAMC.
Sommaire
Section Page
418 PowerAMC
Chapitre 8 Métamodèle public PowerAMC
Noms publics
Classes
Associations et collections
Les associations sont utilisées pour exprimer les connexions sémantiques
entre des classes appelées collections. Dans la feuille de propriétés d'une
association, les rôles transportent l'information relative à l'objet d'extrémité
de l'association. Dans le métamodèle PowerAMC, ce rôle a le même nom
qu'une collection pour l'objet courant. Les objets PowerAMC sont liés à
d'autres objets via des collections.
En règle générale, les associations n'ont qu'un seul rôle, ce rôle se trouve à
l'opposé de la classe qui représente une collection. Dans l'exemple suivant,
Identifier a une collection appelée Attributes :
Lorsque les associations ont deux rôles, les deux collections ne peuvent pas
être enregistrées dans le fichier XML, seule la collection ayant un rôle
navigable sera enregistrée.
Pour plus d'informations sur les rôles navigables, reportez-vous à la
section XML et le métamodèle PowerAMC dans le chapitre Spécification du
format de fichier PowerAMC.
Composition Parmi les associations, les compositions expriment une forte propriété 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 Métamodèle public PowerAMC
Généralisations
Le métamodèle PowerAMC utilise des généralisations pour montrer les liens
d'héritage entre une classe plus générale (le plus souvent une classe
abstraite) et une classe plus spécifique (le plus souvent une classe
instanciable). La classe la plus spécifique hérite des attributs de la classe plus
générique, ces attributs étant appelés attributs dérivés.
En partageant les attributs et comportements, les héritages améliorent la
lisibilité du métamodèle.
Organisation générale
Lorsque vous ouvrez le métamodèle PowerAMC, le diagramme Modules
s'affiche, et vous pouvez voir une série de packages liés à PdCommon. Ces
packages représentent les différentes bibliothèques de PowerAMC, chaque
bibliothèque (en dehors de PdCommon) équivaut à un type de modèle :
422 PowerAMC
Chapitre 8 Métamodèle public PowerAMC
Contenu de PdCommon
La bibliothèque PdCommon est organisée en sous-packages contenant
différents diagrammes qui illustrent un certain aspect de la bibliothèque.
Sous-package Description
Features Toutes les fonctionnalités mises en oeuvre par les classes
dans PdCommon. Par exemple, Report appartient à
PdCommon car cette fonctionnalité est partagée par tous les
modèles
Objects Les objets de conception partagés par plusieurs modèles
Symbols Représentation graphique d'objets de conception partagés
Diagramme Description
Features Toutes les fonctionnalités mises en oeuvre par des classes dans la
bibliothèque courante. Par exemple, AbstractDataType est une
fonctionnalité de PdPDM
Objects Objets de conception de la bibliothèque courante
Symbols Représentation graphique des objets de conception
424 PowerAMC
Chapitre 8 Métamodèle public PowerAMC
426 PowerAMC
Chapitre 8 Métamodèle public PowerAMC
Héritage Les templates sont hérités par tous les descendants de la métaclasse pour
laquelle ils sont définis. Ce mécanisme est utile pour partager le code de
template entre les métaclasses ayant un ancêtre commun. Par exemple, si
vous définissez un template pour une classe abstraite telle que BaseObjects,
toutes les classes liées via des liens de généralisation à cette classe héritent de
ce template.
Collections Le GTL utilise des macros telles que foreach_item, pour permettre l'itération
des collections d'objets. Ce template spécifié dans le bloc est converti sur
tous les objets contenus dans la collection spécifiée. Le métamodèle fournit
des informations très utiles concernant les collections de métaclasses sur
lesquelles vous définissez un template contenant une macro d'itération.
428 PowerAMC
Chapitre 8 Métamodèle public PowerAMC
Attributs calculés
Les attributs calculés suivants sont des extensions de métamodèle spécifiques
au GTL :
Nom de
métaclasse Nom d'attribut Type Description
PdCommon. isSelected boolean True si l'objet
BaseObject correspondant fait partie
de la sélection dans la
boîte de dialogue de
génération, false dans le
cas contraire
isShortcut boolean True si l'objet était
accessible via un
raccourci, false dans le cas
contraire
PdCommon. GenOptions struct Permet d'accéder aux
BaseModel options de génération
définies par l'utilisateur
PdOOM. MinCardinality string
Class
MaxCardinality string
SimpleTypeAttribute
(XML-specific)
@<tag> (Java-specific) string Attribut étendu
Javadoc@<tag> avec
formatage supplémentaire
PdOOM. @<tag> (Java-specific) string Attribut étendu
Interface Javadoc@<tag> avec
formatage supplémentaire
PdOOM. MinMultiplicity string
Attribute
MaxMultiplicity string
Overridden boolean
DataTypeModifier string
Prefix
DataTypeModifier string
Suffix
Nom de
métaclasse Nom d'attribut Type Description
@<tag> (Java-specific) string Attribut étendu
Javadoc@<tag> avec
formatage supplémentaire
PdOOM. DeclaringInterface object
Operation
GetSetAttribute object
Overridden boolean
ReturnTypeModifier string
Prefix
ReturnTypeModifier string
Suffix
@<tag> (Java-specific) string Attribut étendu
Javadoc@<tag> formatage
supplémentaire
(particulièrement pour
@throws, @exception,
@params)
PdOOM. DataTypeModifier string
Parameter Prefix
DataTypeModifier string
Suffix
PdOOM. RoleAMinMultiplicity string
Association
RoleAMaxMultiplicity string
RoleBMinMultiplicity string
RoleBMaxMultiplicity string
PdOOM.* ActualComment string Commentaire supprimé
(avec /**, /*, */ et //
retirés)
430 PowerAMC
Chapitre 8 Métamodèle public PowerAMC
Collections calculées
Les collections calculées sont des extensions de métamodèle spécifiques au
GTL :
432 PowerAMC
C H A P I T R E 9
Sujet Ce chapitre décrit le format de fichier utilisé pour enregistrer les modèles
PowerAMC.
Sommaire
Section
Balises XML
Les fichiers XML contiennent des objets, attributs et collections, le plus
souvent déclarés à l'aide de balises begin et end ; les objets référencés n'ont
qu'une seule balise pour le début et la fin, comme indiqué dans le tableau ci-
après.
434 PowerAMC
Chapitre 9 Spécification du format de fichier PowerAMC
La différence entre une balise de début (begin) et une balise de fin (end)
réside dans le fait que la balise de fin comporte une barre oblique (/) après le
caractère <.
Les balises suivantes sont utilisées dans les fichiers XML de PowerAMC :
Balise de
début Balise de fin Objet Description
<c:collection> </c:collection> Collection Collection d'objets liés à un
autre objet. Vous pouvez
utiliser le métamodèle
PowerAMC pour visualiser
les collections d'un objet.
Par exemple, <c:Children>
<o:object> </o:object> Object Un objet que vous pouvez
créer dans PowerAMC. Par
exemple, <o:Model>
<o:object/> — Referenced Lorsqu'un objet est déjà
object défini dans le fichier, une
référence est créée la
prochaine fois que ce fichier
est lu dans le fichier XML.
Par exemple, <o:Class Ref=
"xyz"/>
<a:attribute> </a:attribute> Attribute Un objet est constitué d'un
nombre d'attributs dont
chacun peut être modifié
indépendamment. Par
exemple, <a:ObjectID>
Une fois vous que vous avez trouvé et localisé l'objet dans le métamodèle,
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 représentées par les associations existant entre objets.
Les rôles des associations (agrégations et compositions incluses)
correspondent aux collections d'un objet. Par exemple, chaque modèle
PowerAMC contient une collection de domaines appelée Domains.
En règle générale, les associations n'ont qu'un seul rôle, le rôle s'affiche à
l'opposé de la classe pour lequel il représente une collection. Toutefois,
le métamodèle contient également des associations ayant deux rôles,
auquel cas, les deux collections ne peuvent pas être enregistrées dans le
fichier XML. Vous pouvez identifier la collection qui sera enregistrée à
partir de la feuille de propriétés de l'association : il s'agit du rôle pour
lequel la case Navigable est cochée.
Dans l'exemple suivant, les association ont deux rôles qui signifient que
Classifier a une collection Actors, et que Actor2 a une collection
ImplementationClasses :
436 PowerAMC
Chapitre 9 Spécification du format de fichier PowerAMC
♦ Les attributs ayant le type de données IOBJECT sont des attributs dans
le métamodèle 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 métamodèle public PowerAMC est disponible dans le répertoire
\Exemples.
Pour plus d'informations sur le métamodèle PowerAMC, reportez-vous
au chapitre Métamodèle 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
créer des scripts Visual Basic car il fournit des informations utiles sur les
propriétés, collections et méthodes d'objets.
Pour plus d'informations sur la création de scripts Visual Basic pour les
objets PowerAMC, reportez-vous au chapitre Manipulation des objets via
VBScript du manuel Guide des fonctionnalités générales.
Etude de cas
Le modèle suivant contient deux classes et une association. Nous allons
explorer le fichier XML correspondant à ce modèle.
438 PowerAMC
Chapitre 9 Spécification du format de fichier PowerAMC
Le fichier commence par plusieurs lignes qui spécifient des détails relatifs à
XML et au modèle.
Le premier objet qui apparaît est la racine du modèle <o:RootObject
Id="01">. RootObject est un conteneur de modèle qui est défini par défaut
lorsque vous créez et enregistrez un modèle. RootObject contient une
collection appelée Children qui est composée de modèles.
Dans notre exemple, Children ne contient qu'un objet de modèle qui est
défini comme suit :
<o:Model Id="o2">
<a:ObjectID>3CEC45F3-A77D-11D5-BB88-
0008C7EA916D</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 définition de l'objet modèle, vous pouvez voir la série d'attributs
ModelOptions. Remarquez que ModelOptions n'est pas limité aux options
définies dans la boîte de dialogue Options du modèle d'un modèle, mais
rassemble toutes les propriétés enregistrées dans un modèle, notamment les
options relatives à la génération intermodèle.
Après ModelOptions, vous pouvez identifier la collection
<c:ObjectLanguage>. Il s'agit du langage objet lié au modèle. La seconde
collection du modèle est <c:ClassDiagrams>. Il s'agit de la collection des
diagrammes liés au modèle. Dans notre exemple, un seul diagramme est
défini dans le paragraphe suivant :
<o:ClassDiagram Id="o4">
<a:ObjectID>3CEC45F6-A77D-11D5-BB88-
0008C7EA916D</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 modèle, la définition ClassDiagram
est suivie d'une série d'attributs de préférences d'affichage.
440 PowerAMC
Chapitre 9 Spécification du format de fichier PowerAMC
442 PowerAMC
Chapitre 9 Spécification du format de fichier PowerAMC
444 PowerAMC
Chapitre 9 Spécification du format de fichier PowerAMC
446 PowerAMC
Index
B
BasicDataTypes 288
. BeforeCreate 76
.EXA fichier 349 BeforeCreateDatabase 131
.syntaxe de format Z 38 BeforeDrop 76
BeforeModify 76
Bind 95, 134, 154, 156
BindDefault 135
A bitmap join index 163
abort_command (macro) 403 bloc 372
Abstract Data Type 136 bloc (macro) 385
Abstract Data Type Attribute 138 bloc conditionnel 406
activer la sélection pour la génération block (macro) 392
de fichiers 203 BlockComment 63
activer le suivi 286, 315, 332 bool (macro) 400
Add 76 boucle (macro) 384, 385
AddColIndex 105
AddColnChck 95, 98
AdditionalDataTypes 288
AddJoin 163 C
AddQuote 65 CanCreate gestionnaire d'événement 248
AddTableCheck 83 caractère de fin 61
ADTComment 138 caractère de fin de bloc 61
AfterCreate 76, 170 caractères illégaux (langage objet) 289
AfterDrop 76 CaseSensitivityUsingQuote 64
AfterModify 76 catégorie 3
AKeyComment 116 ODBC 6
AllowedADT 86, 138, 139, 181 Script 6
AllowNullableColn 114 catégorie de script 5, 60
AltEnableAddColnChk 90 catégorie Generation
AlterFooter 72 (définition étendue de modèle) 359
AlterHeader 72 change_dir (macro) 403
AlterTableFooter 83 CharFunc 73
AlterTableHeader 83 CheckNull 90
AmcdDataType 177 CheckOnCommit 120
apostrophe variable par défaut 81 Choreography
association 420 catégorie (langage de processus) 327
attribut dérivé 419 cible de génération 355
attribut étendu 13, 201, 218 classe
créer 219 abstraite 419
importer depuis des versions antérieures 348 attribute 419
type 218, 219 concrète 419
métamodèle 419
448 PowerAMC
définition étendue de modèle (suite) EnableMultiCheck 58
génération de langage 354 EnableMultiFile 68
générer 366 EnableMultiTrigger 150
générer pour une cible séparée 366 EnableNotNullWithDflt 95
générique 343, 344 EnableNull 94
importer 346, 350 EnableOption 175
mode de suivi 354 EnableOwner 104, 134, 147, 151, 166
modifier 342 EnableOwnerPrefix 65
options 363 en-tête chaîne 410
paramètres de génération 342 entrée 3
profil 342 erreur de script (VB) 228
propriétés 354 error (macro) 405
rattachement automatique 354 étiquette 245
sous-famille 354 Event 153
spécifique 343, 346 EventDelimiter 153
tâche 360 Events catégorie (langage objet) 290
DefOptions 77 exclure une métaclasse 205
delete (macro) 391 execute_command (macro) 402
délimiteur 62 execute_vbscript (macro) 402
dépendance 425 exporter définition étendue de modèle 351
Domain 132 Extended attributes
Drop 76 (catégorie de langage objet) 302
DropColnChck 96 extension 21, 29
DropColnComp 97
DropFunc 148
DropTableCheck 84
F
famille 5, 286, 315, 332, 354
fichier généré 201, 229, 370
E créer 231
élément de template de trigger 4 File (catégorie)
Enable 75 AlterFooter 72
EnableAdtOnColn 137 AlterHeader 72
EnableAdtOnDomn 137 EnableMultiFile 68
EnableAlias 167 Footer 67
EnableAscDesc 103 Header 67
EnableBindRule 91, 133 ScriptExt 68
EnableChangeJoinOrder 118 StartCommand 69
EnableCheck 57, 134 TableExt 69
EnableCluster 103 TrgFooter 72
EnableComputedColn 91 TrgHeader 71
EnableConstname 58 TrgUsage1 70
EnableDefault 91, 133 TrgUsage2 70
EnableDtbsPrefix 65 TriggerExt 70
EnablefKeyName 118 Usage1 69
EnableFunc 146 Usage2 69
EnableFunction 104 fin chaîne 410
EnableIdentity 92 First 375
EnableIntegrity 57 FKAutoIndex 119
EnableManyDatabases 132 FKeyComment 122
450 PowerAMC
if (macro) 386 langage de processus (suite)
IllegalChar 63 catégorie Implementation 325
Implementation catégorie catégorie Options 322
(langage de processus) 325 catégorie Profile 328, 339
importer Catégorie Settings 325
attributs étendus 348 catégorie Tasks 318
définition étendue de modèle 350 éditeur 314
fichier .EXA 349 entrée 312
Index (catégorie) 101 famille 315
Footer 106 modifier 312
Header 106 propriétés 315
index basé sur une fonction 33 sous-famille 315
IndexComment 107 langage objet 283, 284
IndexType 106 activer le suivi 286
Initialize gestionnaire d'événement 249 catégorie 284
Install 137 catégorie Commands 291
instruction SQL 36 catégorie Constants 289
format de variable 41 catégorie Criteria 301
mots réservés 36 catégorie Data types 288
template de nom de contrainte 43 catégorie Events 290
variables 38 catégorie Extended attributes 302
IsEmpty 375 catégorie Generated Files 303
catégorie Generation 291
catégorie Namings 289
catégorie Options 297
J catégorie Profile 300
join index Catégorie Settings 288
EnableJidxColn 163 catégorie Stereotype 301
EnableOwner 163 catégorie Tasks 293
Join Index (catégorie) 161 catégorie Templates 308
Footer 163 éditeur 285
Header 163 entrée 284
JoinIndexComment 163 famille 286
modifier 284
propriétés 286
rôle d'association 310
K sous-famille 286
Key 112 langage XML 329, 330
tasks category 335
activer le suivi 332
catégorie 330
L catégorie Commands 333
langage de génération par template (GTL) 367
catégorie Generation 333
langage de processus 311, 312
catégorie Options 336
activer le suivi 315
Catégorie Settings 339
catégorie 312
éditeur 331
catégorie Choreography 327
entrée 330
catégorie Commands 317
famille 332
catégorie Datahandling 327
modifier 330
catégorie Generation 316
propriétés 332
452 PowerAMC
méthode (suite) Objects (catégorie) (suite)
VBS 238 Maxlen 75
ModifiableAttributes 79 ModifiableAttributes 79
modifier permission 158
définition étendue de modèle 342 Pkey 109
langage XML 330 Privilege 157
SGBD 2 Procedure 145
Modify instruction 20 Qualifier 164
ModifyColnComp 99 Reference 117
ModifyColnDflt 97 ReversedStatements 79
ModifyColnNull 99 Role 155
ModifyColumn 97 Rule 142
mot clé 72 Sequence 164
mot réservé 36 SqlAttrQuery 78
SqlFragQuery 78
SqlListQuery 77
SqlOptsQuery 78
N Storage 128
Namings catégorie (langage objet) 289 Synonym 166
nom par défaut 211 Table 79
nom public 419 Tablespace 126
NumberFunc 73 trigger 149
User 140
View 123
objet
O définition 438
Objects (catégorie de SGBD) Default 159 membre 372, 374
Objects (catégorie) 9, 75 portée 372, 377
Abstract Data Type 136 référence 438
Abstract Data Type Attribute 138 objet transformation interne 243
Add 76 ODBC
Column 87 génération 25
Create 75 requête 20
Database 130 requête de reverse engineering étendue 29
DB Package 168 reverse engineering 25
DB Package Cursor 172 reverse engineering à l'aide des qualifiants 35
DB Package Exception 173 reverse engineering d'index basés sur une
DB Package Parameter 173 fonction 33
DB Package Pragma 174 reverse engineering d'options physiques 31
DB Package Procedure 170 SqlAttrQuery 25
DB Package Type 172 SqlChckQuery 25
DB Package Variable 171 SqlListChildrenQuery 25
DefOptions 77 SqlListQuery 25
Domain 132 SqlOptsQuery 25
Drop 76 SqlPermQuery 25
Enable 75 SqlSysIndexQuery 25
Group 153 ODBC (catégorie) 5, 60
index 101 OdbcPhysDataType 179
Join Index 161 OID 442
Key 112 OpenDatabase 131
454 PowerAMC
RevokeOption 158, 159 SQL (catégorie) (suite)
Role 155 caractère de fin 61
rôle d'association 310 caractère de fin de bloc 61
Rule 142 délimiteur 62
RuleComment 145 Format 63
LineComment 63
Quote 62
SqlContinue 63
S SqlAkeyIndex 116
script variables globales 227 SqlAttrQuery 25, 78
Script (catégorie) 6 SqlChckQuery 25, 84, 100
script (reverse engineering) 24 SqlContinue 63
script de vérification 222 SqlFragQuery 78
script helper methods 245 SqlListChildrenQuery 25, 122, 155, 157
ScriptExt 68 SqlListDefaultQuery 135
Sequence 164 SqlListQuery 25, 77
séquence d'échappement 383 SqlListRefrTables 85
SequenceComment 166 SqlOptsQuery 25, 78
set_object (macro) 400 SqlPermQuery 25, 84, 100, 125, 141, 148, 155,
set_value (macro) 401 157
SetSource 245 SqlSupport 58
Settings SqlSysIndexQuery 25, 107
catégorie (langage de processus) 325 StartCommand 69
catégorie (langage XML) 339 Stereotype catégorie (langage objet) 301
Settings (catégorie de langage objet) 288 stéréotype 206
SGBD 1 affecter un outil 210
attributs étendus 13 ajouter un attribut étendu 219
catégorie 3, 5 attacher une icône 209
catégorie Data type 11 créer 207
catégorie General 6, 57 nom par défaut 211
catégorie Objects 9, 75 propriétés 206
catégorie ODBC 6, 60 utiliser comme métaclasse 208
catégorie Profile 12 storage 128
catégorie Script 6, 60 option physique 52
catégorie SQL 8, 61 StorageComment 129
éditeur 4 suppression d'une commande 291, 317, 333
entrée 3 surcharge 383
famille 5 symbole personnalisé 201, 215
génération 18 créer 216
instruction 18, 19 format 215
modifier 2 Synonym 166
nom de fichier 5 syntaxe 36
présentation 2 System 158
propriétés 5
requête 18, 19
reverse engineering 18
simple (macro) 384, 385 T
sous-famille 286, 315, 332, 354 table
SQL (catégorie) 8, 61 Footer 86
BlockComment 63 Header 86
456 PowerAMC
variable (SGBD) (suite)
colonne 188
X
XML
colonne de référence 193
balises 434
colonne d'index 191
format de fichier 432, 433
domaine 189
format 41
génération 182
Index 190
Join Index 191
métadonnées 185
options physiques 48
procédure 182, 195
référence 191
règles 189
reverse engineering 183
sécurité de base de données 184
Sequence 190
synchronisation de base de données 184
table 186
trigger 182
triggers 194
type de données abstraits 188
vérifications sur les domaines et sur les
colonnes 187
vues 194
variable locale 375
variable par défaut apostrophes 81
variables de format 377
VBS 426
vbscript (macro) 387
vérification personnalisée 201, 221
définir le script global 227
définir un script 223
définir une correction automatique 225
dépannage 228
exécuter 228
propriétés 222
variables globales 227
View 123
View (catégorie)
Footer 124
Header 124
ViewCheck 126
ViewComment 125
ViewStyle 126
W
warning (macro) 405