Bridge Specifications
Vendor | erwin, Inc. |
Tool Name | erwin Data Modeler |
Tool Version | 4.x |
Tool Web Site | https://erwin.com/products/erwin-data-modeler/ |
Supported Methodology | [Data Modeling] Data Store (Physical Data Model, Logical Data Model, Stored Procedure Expression Parsing), Graphical Layout via COM API on Native (.ER1) or Export (.XML) File |
SPECIFICATIONS
Tool: erwin, Inc. / erwin Data Modeler version 4.x via COM API on Native (.ER1) or Export (.XML) File
See https://erwin.com/products/erwin-data-modeler/
Metadata: [Data Modeling] Data Store (Physical Data Model, Logical Data Model, Stored Procedure Expression Parsing), Graphical Layout
Component: CaErwin4Xml version 11.2.0
OVERVIEW
This bridge imports data models from erwin Data Modeler, including logical only models with Entities, Attributes, Domains, physical only models with Tables, Columns, Data Types, or Logical/Physical models with both. This bridge also imports all relationships and their implementation (e.g. PK/FK) as well as the graphical layout of the data models (diagrams).
This bridge can import either the .ER1 format files or .XML format files saved using erwin Data Modeler.
- erwin Native Format (.ER1):
This bridge requires the erwin Data Modeler COM/OLE API to be installed in order to parse .ER1 format files.
erwin Data Modeler must be properly installed with a valid license on the machine executing this bridge.
In order to test this, open an erwin model in Data Modeler and save it as 'XML Repository Format'.
- erwin XML File Format (.XML):
You can create the .XML version of a file (Save As... in erwin), select the 'XML Repository' format for the type of XML file that erwin creates.
Here are the steps to create this type of .XML file:
1. Open the .ER1 file in erwin.
2. Select 'Tools'->'Add-Ins...'->'Advantage Repository Export'
3. Select 'XML files (*.xml)' for the 'Save as type' pulldown.
4. Specify a path and name for the exported file.
5. Click OK
REQUIREMENTS
WARNING: This bridge uses the COM API of a Windows based tool client and/or SDK which must be (a) properly installed, (b) licensed on behalf of a Windows user capable of running this tool, and (c) capable of accessing the tool server content. In addition:
(1) As recommended by the tool vendor, the tool server must NOT be installed/coexist on the same machine where the tool client (and the bridge) is installed/running because of potential conflicts of resources, including with respect to COM API.
(2) Windows COM API based tools are notoriously unstable after repeated failures or lack of system resources, which requires a Windows reboot to make that tool COM API work properly again.
(3) If this bridge is running as an application, then it must be logged with the same above Windows user.
If the bridge is running as a Windows service, then go to the services manager of Windows, right-click on the MIMB Application Server service, and go to the "Log On" tab to define an account by name under which the service will run.
By default, erwin Data Modeler is NOT installed with this option to save .XML files in the 'Advantage Repository Format'. When installing, or modifying an installation, be sure to specifically select this component for installation.
- erwin User:
This bridge must run on behalf of the Windows user that can run the erwin software.
If this bridge is running as part of a Windows desktop application, then you must log onto Windows with that user.
If this bridge is running as part of a Windows service, then go to the Windows services and click on the 'Properties' menu of such service, go to the 'Log On' tab, select 'This account' and specify the same user name and password used as Windows session when testing connectivity from erwin to the mart, and restart the Windows service.
FREQUENTLY ASKED QUESTIONS
Q: How does this bridge import the ordering of attributes?
A: This bridge imports the physical order preferably, if the information is present in the XML file, otherwise the logical order is used.
To view the physical column ordering in erwin:
- Switch to the model Physical View,
- In the 'Format' menu, select 'Stored Display Settings...',
- Click on the 'Physical' tab, and select the 'Physical Order' radio button.
This is the order erwin uses when generating SQL DDL, and MIMB will import this order, if it is available in the file.
If you wish to import the logical order, please derive a logical only model in erwin and import it.
Q: Why do I see the message 'Error getting persistence units' when I run this bridge with an ER1 file?
A: This message usually indicates that the erwin software requires more information translating between the ER1 and XML formats. You can usually resolve this error by opening the ER1 file in the latest version of erwin 4 and saving it again as XML.
LIMITATIONS
Refer to the current general known limitations at https://metaintegration.com/Products/MIMB/Help/#!Documents/mimbknownlimitations.html
- Warning On Potential Missing Physical Names:
This issue is particularly relevant when converting from erwin to ETL or BI tools, or to the OMG CWM XMI standard.
When saving a logical and physical model, the physical names of tables, columns, and keys may not always be saved into the XML file. Indeed, when erwin is used to manage the automatic generation of physical names from logical names, only the generation rules are saved. This will obviously not be an issue for physical only erwin models (which is often the case when re-engineering existing databases).
The main workaround for this issue is to use the erwin 4 Add-In for the Advantage Repository available in the menu 'Tools' -> 'Add-Ins' -> 'Advantage Repository Export'. This Add-In is primarily used to exchange metadata between erwin 4 and the Advantage Repository software. It is available since erwin v4.1 SP1 (build 2522) and a specific checkbox allows to install it in the erwin 4 installer wizard. This Add-In generates a slightly different XML file in which the physical names are explicitly expanded. Just import the produced XML file in the erwin 4 import bridge as usual.
Another solution is to make sure all physical names are explicitly set, therefore not relying on any generation rules from the logical names.
Alternatively, you can derive a new physical model (to be saved as XML) from your existing logical and physical model. Select 'Derive New Model...' from the 'Tools' menu, and select 'New Model Type' as 'Physical'. The next step of the wizard will then invoke all the generation rules to produce all the physical names. The new physical model can then be saved as XML. Note that the logical names of the tables are also available in this new XML file, but unfortunately the logical names of attributes might still be missing.
Note that this bridge automatically parses the .ER1 files using the correct XML generation function in erwin, so that the problem of missing physical names does not occur.
- Warning On Potential Missing Dimensional Modeling Roles:
This issue is particularly relevant when erwin is used for dimensional modeling to BI tools, or to the OMG CWM XMI standard. As for the physical name issue explained above, the dimensional modeling roles (Fact, Dimensional, or Outrigger) may not be available in the XML file if they are automatically calculated by erwin.
One solution, is to make sure all dimensional modeling roles are explicitly set (use the 'Table Editor', tab 'Dimensional'), therefore not relying on automatic calculations by erwin based on usage.
- Known Bugs of erwin 4.0 (SP1) build 1511:
1. Warning On Incorrect Graphical Information On Relationships: Some relationships can be properly displayed in the GUI of erwin, but the export XML may contain incorrect graphical positions. The solution is to move the relationships within erwin, then the graphical positions are systematically recomputed, and therefore properly exported to XML.
2. Warning On Missing Discriminator Of Subtype Relationship: When you import an erwin 3.5x ER1 file into erwin 4.0 (SP1) and save it as XML, discriminators of subtype relationships might be missing. Open the subtype relationship window and reselect the discriminators before exporting the XML.
SUPPORT
Provide a troubleshooting package with debug log. Debug log can be set in the UI or in conf/conf.properties with MIR_LOG_LEVEL=6
Bridge Parameters
Parameter Name | Description | Type | Values | Default | Scope | |||||
File | The erwin data model file which can be either: 'model.ER1' The native format which requires erwin Data Modeler to be installed (Windows only) in order to access its COM API. 'model.XML' The erwin data model file in the .ERX (erwin exchange format) which can then be used for import on both Linux and Windows. This .ERX format is produced by erwin Data Modeler as follows: 1. Choose 'Save As' from the 'File' menu. 2. Select the XML or ER1 format type in the 'Save as type' list. 3. Type the file name for the model you are saving in the 'File name' text box 4. Click 'Save'. |
FILE |
|
Mandatory | ||||||
Apply binary characters filter | Specifies if invalid binary characters should be filtered out of the file as a pre-process, before parsing the XML document. This option is a workaround for a bug in the erwin 4 tool which sometimes generates a file that is not conformant with the XML specification, with binary characters in it. Warning: Applying this filter may remove some Unicode national characters. If some of your Unicode national characters are removed, turn this option off. |
BOOLEAN | True | |||||||
Import IDs | Each object defined in the erwin 4 XML file has an ID. This option allows you to specify whether this bridge should import them in the NativeID property. 'True' The ID is saved in the NativeId property. 'False' The ID is ignored. |
BOOLEAN | True | |||||||
Import UDPs | In erwin data modeler, a User Defined Property (UDP) is defined with a name (e.g. Threat Level), a definition (e.g. an enumeration with values: green, yellow, orange, red), and a possible default value (e.g. green). Applying a UDP to an object (e.g. table or column) can be done with an explicit value (e.g. orange) or without value therefore the default value of the UDP (e.g. green). By default, this bridge imports the UDP definitions as a Property Type. UDP can be imported: 'As metadata' Import an explicit value as Property Value, implicit values are not imported, the default value is kept on the Property Type only. 'As metadata, migrate default values' Import explicit and implicit values as Property Value objects. 'In description, migrate default values' Append the property name and value, even if implicit, to the object's description and/or comment (depending upon the design level). This allows you to export the UDP values to another tool which does not support the notion of UDP. 'Both, migrate default values' Import the UDP value, even if implicit, both as metadata and in the object's description and/or comment (depending upon the design level). |
ENUMERATED |
|
As metadata | ||||||
Import relationship name | Controls how the erwin relationship names are imported: 'From relationship name' from the name property. 'From relationship description' from the description property. This option may be useful to some database modelers who decided to use the description property to document the relationships name instead of the regular name property. |
ENUMERATED |
|
From relationship name | ||||||
Import column order from | In erwin data modeler, the columns physical order can viewed through edit the current subject area 'Stored Display Settings', then click on tab 'Physical', group 'Display Level', then on the 'Physical Order' radio button. Controls how the erwin table's column order is imported: 'Column order' Order of the columns displayed in the erwin physical view. 'Physical order' Order of the columns in the database, as generated in SQL DDL. |
ENUMERATED |
|
Physical order | ||||||
Import subject areas | This bridge option controls how the erwin subject areas are imported: 'As diagrams' Import as diagrams only. 'As packages and diagrams' Import as packages and diagrams. This option may be useful to some database modelers who decided to save the hierarchy structure of subject areas. This is the default value. 'Do not import subject areas' Do not import subject areas. |
ENUMERATED |
|
As packages and diagrams | ||||||
Import owner schemas | Controls how the erwin owner schemas are imported: 'True' The owner schema for Tables and views and other database objects is imported. 'False' The owner schema for Tables and views and other database objects is ignored. Useful for models where physical names are not unique, to indicate the model should be treated as a logical model (not ready for SQL DDL generation) while physical information is still maintained the model. |
BOOLEAN | True |
Bridge Mapping
Meta Integration Repository (MIR) Metamodel (based on the OMG CWM standard) |
"erwin 4.x Data Modeler" Metamodel CaErwin4Xml |
Mapping Comments |
Association | Relationship | |
Aggregation | Identifying/ Non Identifying | True if identifying |
Comment | Comment | |
Description | Definition | optional: UDP values can be added to the description |
DesignLevel | Logical_Only, Physical_Only | |
PhysicalName | Physical_Name | Foreign Key Constraint Name |
AssociationRole | Relationship | |
DesignLevel | Logical Only, Physical Only | |
ExtraConstraint | Delete, Insert, Update Rule | We may not know all the codes for these rules for models migrated from erwin 3.5 |
Multiplicity | Cardinality, Nulls | |
Source | Based on the multiplicity of each role and the Identifying/Non Identifying property | |
AssociationRoleNameMap | Attribute/Index | The association between the primary key column and the foreign key column |
Attribute | Attribute/Column | |
Comment | Comment | |
Description | Definition | optional: UDP values can be added to the description |
DesignLevel | Logical Only, Physical Only | |
ExtraConstraint | Validation Rule | if the validation rule cannot be set on the type |
Optional | Null Option | |
PhysicalName | Column Name | |
Position | Physical Order | |
BaseType | Domain, Attribute Data Type | |
Comment | Comment | |
DataType | Datatype | See datatype conversion arrays |
Description | Definition | optional: UDP values can be added to the description |
Length | Datatype | extracted from the datatype |
Name | Logical Name | |
PhysicalName | computed from the datatype, length and precision | |
Scale | Datatype | extracted from the datatype |
CandidateKey | Key Group/Index (non Foreign Key) | |
Comment | Comment | |
Description | Definition | |
PhysicalName | Physical_Name | if set by the user |
UniqueKey | True for Primary Key/Alternate Key, False for Inversion Entries | |
Class | Entity/Table | |
Comment | Comment | |
CppClassType | Set to ENTITY | |
CppPersistent | Set to True | |
Description | Definition | optional: UDP values can be added to the description |
DesignLevel | Logical_Only, Physical_Only | |
DimensionalRole | Dimensional Modeling Role | |
DimensionalType | Dimension Type | |
Name | Logical Name | |
PhysicalName | Physical Name | |
ClassDiagram | Subject Area | |
Description | Definition | |
Name | Name | |
DatabaseSchema | Owner | Table, View or Index owner |
Name | Name | |
DerivedType | Domain, Attribute Data Type, Validation Rule | |
Comment | Comment | |
DataType | Datatype | See datatype conversion arrays |
Description | Definition | |
InitialValue | Default value | imported from the default value tag associated to this type |
Length | Datatype | extracted from the datatype |
LowerBound | Validation_Rule_Max_Value | imported from the validation rule associated to this type |
Name | Logical Name | |
PhysicalName | Physical Name | computed from the datatype, length and precision |
Scale | Datatype | extracted from the datatype |
UpperBound | Validation_Rule_Max_Value | imported from the validation rule associated to this type |
UserDefined | True for User Defined Domain | |
DesignPackage | No equivalent in erwin. A main package "Logical View" will be created to contain all entities/references | |
ForeignKey | Key Group/Index (Foreign Key) | |
Comment | Comment | |
Description | Definition | |
PhysicalName | Physical_Name | if set by the user |
Generalization | Supertype/Subtype | |
DesignLevel | set to Logical Only if involved in a transformation | |
GeneralizationRole | Supertype/Subtype Relationships | |
DesignLevel | set to Logical Only if involved in a transformation | |
Identity | Sequence, Identity properties | |
Cycle | Cycle | |
IncrementValue | Increment By | |
MaximumValue | Maximum Value | |
MinimumValue | Minimum Value | |
StartValue | Starting Value | |
Index | Key Group/Index | |
Clustered | Index Clustered | |
Generate | Index Generate | |
Name | physical name of the key | erwin does it this way |
IndexMember | Key Group Member/Index Member | Associated with each attribute in a key |
Position | Key Group Member Position | |
SortOrder | Desc | |
Note | Note | |
Value | Note value | |
Projection | Drawing Object | Graphical Information |
BackgroundColor | fill color | |
Bold | bold | |
FontColor | font color | |
FontName | font | |
FontSize | font size | |
Height | height | |
Italic | italic | |
LineColor | outline color | |
Strike | strikeout | |
Underline | underline | |
Width | width | |
X | x | |
Y | y | |
PropertyElementTypeScope | User Defined Property | |
Scope | UDP Class | |
PropertyType | User Defined Property | |
DataType | Type | |
Description | Description | |
DesignLevel | UDP design level: Logical and/or Physical | |
InitialValue | Default value | |
NativeId | Object id | |
PhysicalName | Not used | |
Position | position | |
Usage | set to User | |
PropertyValue | User Defined Property | used for UDP values and column physical information specific to Teradata: COMPRESS, CASE and FORMAT |
Value | Value | value set on an object |
RelationshipProjection | Drawing Object | Graphical Information |
BackgroundColor | fill color | |
Bold | bold | |
FontName | font | |
FontSize | font size | |
Italic | italic | |
LineColor | outline color | |
LinePoints | relationship path | |
Strike | strikeout | |
Underline | underline | |
X | x | relationship mid point |
Y | y | relationship mid point |
SQLViewAssociation | View Relationship | |
Comment | Comment | |
SQLTableSequence | Relationship Sequence | |
SQLViewAttribute | View Column | |
Comment | Comment | |
Description | Definition | optional: UDP values can be added to the description |
PhysicalName | Column Name | |
Position | Column Position | |
SQLViewEntity | View Table | |
Comment | Comment | |
Description | Definition | optional: UDP values can be added to the description |
WhereClause | View SQL or Where clause | The View SQL if user defined or else the Where clause |
Sequence | Sequence | |
DataType | Datatype | |
Length | Datatype | |
Name | name | |
NativeDataType | Datatype | |
Scale | Datatype | |
Shape | Drawing Object | |
BackgroundColor | Fill Color | Shape's background color |
Bold | Font, Bold | Text property |
FontColor | Font Color | |
FontName | Font | Font typeface name |
FontSize | Font Size | |
Height | Calculated property | |
Italic | Font Italic | Text property |
LineColor | Line Color | Shape outline color |
LinePoints | Vertex coordinates for polygons and polylines, end points for straight lines | |
Name | Name | Autogenerated name of the shape |
ShapeType | Type of the shape in the drawing objects palette | |
Strike | Font Strikeout | Text property |
Underline | Font Underline | |
Width | Calculated property | |
X | X coordinate for center of the shape | |
Y | Y coordinate for center of the shape | |
Z | Not a user accesible property | |
StoreModel | Model/Diagram | The model is built using the elements contained in the erwin file |
Description | Definition | optional: UDP values can be added to the description |
SystemType | Target Server | |
SystemTypeOld | Target Server | |
StoredProcedure | Stored Procedure | Model-level and Table-level Stored Procedure |
Comment | Comment | |
Description | optional: UDP values can be added to the description | |
Semantics | Code | |
Trigger | Trigger | Table Trigger |
Comment | Comment | |
Description | optional: UDP values can be added to the description | |
Semantics | Trigger Code | |
TriggerType | Fire | |
TypeValue | Validation Rule | |
Position | Order | |
Value | Definition |