Switch to standard view 
  Sybase logo

Tapping the Power of PowerDesigner 8.0 Extended Attributes



PowerDesigner 7.x and 8.0 supports a feature called Extended Attributes.  This feature allows you to extend the attributes which PowerDesigner maintains for any given object.  For example PowerDesigner does not have a field to capture whether a table is a Global Temporary Table in Adaptive Server Anywhere.  With an extended attribute, we can add a location to hold this piece of information to every table object and also adds a mechanism for accessing the values in this location when generating DDL so that the appropriate code can be created automatically.  This logic is very tightly integrated with PowerDesigner's Definition Files, which enables you to easily transport this functionality to all of your designers.  PowerDesigner 7.x only allows this functionality in Database and Object Language Definition Files,   which means you can only associate extended attributes with objects in Physical or Object models.  PowerDesigner 8.0 extends this functionality to Conceptual models and also adds the ability to create extended attributes for all model types which are not dependent on the target database or target source language.

PowerDesigner 7.5 support for Extended Attributes is contained in the Database Definition or the Object Language Definition.  PowerDesigner 8.0 introduces the concept of Extended Model Definitions, which allows the definition of extended attributes for all objects in Conceptual, Physical or Objects models. Because of all these options you are allowed to associate multiple definitions with any given model.  The instructions provided below will use a number of the possible methods for implementing Extended Attributes, but the instructions will also apply to the other alternatives.  In every definition file there can be an Extended Attributes section.  This section will contain Types and Objects.

Types are used for restricting what is allowed for entry into an Extended Attribute.  When Types are created they are assigned a name, comment and a list of allowed values.  Types are used by Extended Attributes by assigning them as the attributes Data Type.

Objects are the container to hold your extended attributes.  As you require extended attributes they are added to the appropriate objects within this section of the definition file.  In most cases this subfolder will be empty, and desired objects are added to them as needed.

How to implement extended attributes

Object Creation

First we need to get to the desired Definition file.  To access this capability:
Select Tools > Resources > Object Languages, DBMS, or Extended Model Definitions.  For Extended Model Definitions you must select the type of model this definition applies to.

This example will use a DBMS Definition file.
Select Tools > Resources > DBMS

Step 1:  Create a copy of the target you would like to change, just in case.  In most cases you want to extend the behavior of one of the supplied target databases.


Step 2:  Define Extended Attributes.



Types  are used for restricting values entered in an Extended Attribute to a fixed list.  In the following example there is a requirement to categorize each table into a predefined list of possible values.  To accomplish this an Extended Attribute Type was created to specify my predefined list, then an Extended Attribute was created for a Table.  Since this particular attribute is not related to any specific target database, an Extended Model Definition for a Physical Data Model is the most efficient location for this extended attribute and extended attribute type example.  Using this method I can apply this extended attribute to any model regardless of my target DBMS.

Select Tools > Resources > Extended Model Definitions > Physical Data Models

Step 1:  Create a new Extended Model Definition


Step 2: Create the type

The following screen shows the completed Extended Attribute Type definition, with Application being the desired default value.


Step 3: Create an Extended Attribute

Following the steps described in the Object section above I created a Table Extended Attribute called TableCategory
The following screen shows the completed Extended Attribute definition.  Notice that my Extended Attibute Type is now in my list of valid Data Types.

Step 4: Associate the Model Extended Definition with the current model.

Because we have choosen a Model Extended Definition to contain this example, we need a method of associating the definition with the current model.  In Contrast, if we had choosen a DBMS Definition, the association is automatic because we have choosen it as the target database.

The following screen shows the Extended Model Definition associated to the current model.

The following screen shows the Extended Attibute in use on the table Employee.  Notice that entry is restricted to the list of valid categories.  Also notice that I have separate tabs for each associated definition file.  Here I have a tab for my System Physical Definition and also my Sybase AS Anywhere 7 Extended definitions which come from the DBMS definition.


Accessing Extended Attributes

Now that we have defined extended attributes and types, what can be done with them.  As has already been shown, the values are maintained on the Extended Attributes tab of the property sheet for each object.  These values can be included on reports, via the extended attributes list item within every object in the Report Editor.  These values can affect the generation of script by incorporating these variables into your Create or Add syntax, also maintained in the DBMS Definition files.  If values for the extended attributes are contained in your DBMS, they can be reverse engineered via ODBC by modifying the SqlListQuery, SqlAttrQuery or SqlOptQuery, also maintained in the DBMS Definition files.  Reverse engineering via script files will occur because of the generation changes.  These values will always be accessed by using the %ExtendedAttributeName% format in the definition files.  Extended Attributes can be used as User Defined variables within the context of the object it is assigned to.  Documentation can be found in the Using the DBMS Definition File Reference Guide chapter in the Advanced User Documentation manual on how PowerDesigner uses variables.  Also reference the examples listed below for specific examples of how this is done.


Following is a list of examples with specific steps to include a specified behavior.  We will be adding additional examples.

Back to Top
© Copyright 2010, Sybase Inc.