Bridge Specifications
Vendor | erwin, Inc. |
Tool Name | erwin Data Modeler |
Tool Version | 7.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 (.erwin) or Export (.XML) File |
SPECIFICATIONS
Tool: erwin, Inc. / erwin Data Modeler version 7.x via COM API on Native (.erwin) 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: CaErwin7Xml 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 .erwin format files or .xml format files saved using erwin Data Modeler.
- erwin Native Format (.erwin):
This bridge requires the erwin Data Modeler COM/OLE API to be installed in order to parse .ERWIN 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 .erwin file in erwin.
2. Select File, then Save As...
3. Select 'XML Repository (*.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.
- 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.
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 you convert from erwin to ETL or BI (business intelligence) tools, or to the OMG CWM XMI standard. When you save a logical and physical model, the physical names of tables, columns, and keys might not always be saved into the XML file. When you use erwin to manage the automatic generation of physical names from logical names, only the generation rules are saved. This is not an issue for physical-only erwin models, which are often used to re-engineer existing databases.
The main workaround for this issue is to select the 'AllFusion Repository Format' radio button (as described above) when saving the .XML file. Just import the produced XML file in the erwin 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 .ERWIN 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.
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.erwin' 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. Open the .erwin file in erwin. 2. Select File, then Save As... 3. Select 'XML Repository (*.xml)' for the 'Save as type' pull down. 4. Specify a path and name for the exported file. 5. Click OK |
FILE |
|
Mandatory | |||||
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. 'From derived name' From the verb phrase derived name. |
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 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. This option may be 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 | ||||||
Import diagrams | Controls how the erwin data model diagrams are imported: 'None' Diagrams are not imported. 'Current view' Only the current view of the diagrams are imported. 'All' Diagrams are imported twice: once for the logical view and once for the physical view. |
ENUMERATED |
|
Current view | |||||
Move entities to subject areas | In a logical model, entities may be assigned to one or more subject areas. When migrating to UML (Unified Modeling Language) entities are migrated as classes. Subject areas are migrated to packages. A class is generally a member of a package. To improve the usefulness of the migrated model,this bridge can move entities to subject areas: 'True' Use subject areas as conventional (UML) design packages with their own namespace where any entity may belong to ONLY one subject area. If entities belong to only one subject area, they will be placed in the corresponding package. Other entities are placed under the model. Assumes that all entities are defined within a user defined subject area. 'False' Do not move entities. |
BOOLEAN | False |
Bridge Mapping
Meta Integration Repository (MIR) Metamodel (based on the OMG CWM standard) |
"erwin 7.x Data Modeler (File)" Metamodel CA ERwin Data Modeler (Model) |
Mapping Comments |
Argument | Argument | |
Comment | Comment | |
DefaultValue | Default Value | |
Description | Definition | |
DesignLevel | Design Level | |
Kind | Kind | |
Name | Name | |
NativeId | Native Id | |
PhysicalName | Physical Name | |
Position | Position | |
Association | Relationship | |
Aggregation | Identifying | True if identifying |
Comment | Comment | |
Description | Definition | |
DesignLevel | Design Level | |
ExtraConstraint | Constraint | |
Name | Name | |
NativeId | Native Id | |
AssociationRole | Unnamed RelationshipEnd, Named RelationshipEnd | |
Multiplicity | Cardinality | |
Name | Name | |
OnDelete | On Delete | |
OnInsert | On Insert | |
OnUpdate | On Update | |
Source | Source | Based on the multiplicity of each role and the Identifying/Non Identifying property |
Attribute | Attribute, Column, Primary Key Column - Attribute, Primary Key Attribute, Column - Attribute, Primary Key Column | |
Comment | Comment | |
Description | Definition | |
DesignLevel | Design Level | |
ExtraConstraint | Constraint | if the validation rule cannot be set on the type |
Generate | Generate | |
InitialValue | Default Value | imported from the default value tag associated to this type |
Name | Physical Name, Name | |
NativeId | Native Id | |
Optional | Nullable | |
PhysicalName | Physical Name | |
Position | Position | |
BusinessRule | Min - Max, Valid Values List, Default Value, User-Defined | |
Comment | Comment | |
Description | Definition | |
DesignLevel | Design Level | |
LowerBound | Min | |
Name | Name | |
NativeId | Native Id | |
PhysicalName | Physical Name | |
UpperBound | Max | |
Value | Default Value, Text | |
CandidateKey | Candidate Key Group | |
Comment | Comment | |
Description | Definition | |
DesignLevel | Design Level | |
Name | Name | |
NativeId | Native Id | |
PhysicalName | Physical Name | if set by the user |
UniqueKey | Unique Key | True for Primary Key/Alternate Key, False for Inversion Entries |
Class | Entity, Table, Table - Entity, Data Source Table | |
Comment | Comment | |
Description | Definition | |
DesignLevel | Design Level | |
DimensionalRole | Dimensional Role | |
DimensionalType | Dimensional Type | |
Generate | Generate | |
Name | Physical Name, Name | |
NativeId | Native Id | |
PhysicalName | Physical Name | |
ClassDiagram | ER Diagram | |
Comment | Comment | |
Description | Definition | |
DesignLevel | Design Level | |
MaxDefinitionLength | Max Definition Length | |
Name | Name | |
NativeId | Native Id | |
Notation | Notation | |
PhysicalName | Physical Name | |
Condition | Condition | |
Name | Name | |
ConnectionNamespace | Folder, Directory | |
Comment | Comment | |
Description | Definition | |
DesignLevel | Design Level | |
Name | Name | |
NativeId | Native Id | |
PhysicalName | Physical Name | |
ConnectionPackage | Data Source Schema | |
Comment | Comment | |
Description | Definition | |
DesignLevel | Design Level | |
Name | Name | |
NativeId | Native Id | |
PhysicalName | Physical Name | |
DatabaseSchema | Database Schema | |
Comment | Comment | |
Description | Definition | |
DesignLevel | Design Level | |
Name | Name | |
NativeId | Native Id | |
PhysicalName | Physical Name | |
DerivedType | Domain | The MIR UserDefined property is set to True for User Defined Domains |
Comment | Comment | |
DataType | Data Type | See datatype conversion arrays |
Description | Definition | |
DesignLevel | Design Level | |
InitialValue | Initial Value | imported from the default value tag associated to this type |
Length | Length | extracted from the datatype |
LowerBound | Lower Bound | imported from the validation rule associated to this type |
Name | Name | |
NativeDataType | Native Data Type | |
NativeId | Native Id | |
NativeLogicalDataType | Native Logical Data Type | |
PhysicalName | Physical Name | computed from the datatype, length and precision |
Scale | Scale | extracted from the datatype |
UpperBound | Upper Bound | imported from the validation rule associated to this type |
UserDataType | User Data Type | |
DesignPackage | Subject Area | |
Comment | Comment | |
Description | Definition | |
DesignLevel | Design Level | |
Name | Name | |
NativeId | Native Id | |
FlatTextFile | Data Source File, File | |
Comment | Comment | |
Description | Definition | |
DesignLevel | Design Level | |
Name | Physical Name, Name | |
NativeId | Native Id | |
PhysicalName | Physical Name | |
ForeignKey | Foreign Key Group | |
Comment | Comment | |
Description | Definition | |
DesignLevel | Design Level | |
Generate | Generate | |
Name | Name | |
NativeId | Native Id | |
PhysicalName | Physical Name | if set by the user |
Generalization | Subtype Relationship | |
Complete | Complete | |
Description | Definition | |
DesignLevel | Design Level | set to Logical Only if involved in a transformation |
Exclusive | Exclusive | |
Name | Name | |
NativeId | Native Id | |
GeneralizationRole | Subtype Relationship Role | |
Description | Definition | |
DesignLevel | Design Level | |
Name | Name | |
NativeId | Native Id | |
OnDelete | On Delete | |
OnInsert | On Insert | |
OnUpdate | On Update | |
Identity | Identity | |
Cache | Cache | |
Cycle | Cycle | |
IncrementValue | Increment Value | |
MaximumValue | Maximum Value | |
MinimumValue | Minimum Value | |
Name | Name | |
StartValue | Start Value | |
Index | Index | |
Clustered | Clustered | |
Comment | Comment | |
Description | Definition | |
DesignLevel | Design Level | |
Generate | Generate | |
Name | Name | |
NativeId | Native Id | |
PhysicalName | Physical Name | |
Unique | Unique | |
IndexMember | Index Member | |
Comment | Comment | |
Description | Definition | |
DesignLevel | Design Level | |
NativeId | Native Id | |
Position | Position | |
SortOrder | Sort Order | |
Note | Note | |
Author | Author | |
Importance | Importance | |
ModificationTime | Modification Time | |
Name | Name | |
NativeId | Native Id | |
Status | Status | |
Value | Note | |
PhysicalObject | SQLServer Database, Oracle Database, Storage Group, DB2 Database, File Group | |
Comment | Comment | |
Name | Name | |
NativeId | Native Id | |
PropertyElementTypeScope | UDPs | used for UDP values and column physical information specific to Teradata: COMPRESS, CASE and FORMAT |
Name | Name | |
Scope | Scope | |
PropertyType | UDP | UDP design level: Logical and/or Physical |
DataType | Data Type | |
Description | Definition | |
DesignLevel | Design Level | |
Group | Group | |
InitialValue | Initial Value | |
Name | Name | |
NativeId | Native Id | |
Position | Position | |
Usage | Usage | set to User |
SQLViewAssociation | View Relationship | |
AliasName | Alias Name | |
Comment | Comment | |
Description | Definition | |
DesignLevel | Design Level | |
Name | Name | |
NativeId | Native Id | |
PhysicalName | Physical Name | |
SQLTableSequence | Sequence | |
SQLViewAttribute | View Column | |
Comment | Comment | |
Description | Definition | |
DesignLevel | Design Level | |
Expression | Expression | |
InitialValue | Default Value | |
Name | Name | |
NativeId | Native Id | |
Optional | Nullable | |
Position | Position | |
SQLViewEntity | View | |
Comment | Comment | |
Description | Definition | |
DesignLevel | Design Level | |
DimensionalRole | Dimensional Role | |
Generate | Generate | |
GroupByClause | Group By Clause | |
HavingClause | Having Clause | |
Name | Name | |
NativeId | Native Id | |
OrderByClause | Order By Clause | |
SelectType | Select Type | |
ViewStatement | View Statement | |
ViewStatementType | View Statement Type | |
ViewType | View Type | |
WhereClause | Where Clause | The View SQL if user defined or else the Where clause |
Sequence | Sequence | |
Comment | Comment | |
DataType | Data Type | |
Description | Definition | |
DesignLevel | Design Level | |
Generate | Generate | |
Length | Length | |
Name | Name | |
NativeDataType | Native Data Type | |
NativeId | Native Id | |
Scale | Scale | |
StoreConnection | Model Source, Data Source | |
Comment | Comment | |
Connection | Connection | |
Description | Definition | |
DesignLevel | Design Level | |
Name | Name | |
NativeId | Native Id | |
PhysicalName | Physical Name | |
StoreType | Store Type | |
SystemMajorVersion | System Major Version | |
SystemMinorVersion | System Minor Version | |
SystemReleaseVersion | System Release Version | |
SystemType | System Type | |
SystemTypeOld | System Type Old | |
StoreModel | Model | |
Author | Author | |
Comment | Comment | |
CreationTime | Creation Time | |
Description | Definition | |
DesignLevel | Design Level | |
ModificationTime | Modification Time | |
Modifier | Modifier | |
Name | Name | |
NativeId | Native Id | |
PhysicalName | Physical Name | |
StoreType | Store Type | |
SystemMajorVersion | System Major Version | |
SystemMinorVersion | System Minor Version | |
SystemReleaseVersion | System Release Version | |
SystemType | System Type | |
SystemTypeOld | System Type Old | |
StoredProcedure | Stored Procedure | |
Comment | Comment | |
Description | Definition | |
DesignLevel | Design Level | |
Generate | Generate | |
Name | Name | |
NativeId | Native Id | |
Postcondition | Postcondition | |
Precondition | Precondition | |
Semantics | Code | |
Synonym | Synonym | |
Comment | Comment | |
Description | Definition | |
DesignLevel | Design Level | |
Generate | Generate | |
Name | Name | |
NativeId | Native Id | |
Trigger | Trigger | |
Comment | Comment | |
Description | Definition | |
DesignLevel | Design Level | |
FireOnDelete | Fire On Delete | |
FireOnInsert | Fire On Insert | |
FireOnUpdate | Fire On Update | |
Generate | Generate | |
Name | Name | |
NativeId | Native Id | |
Semantics | Code | |
TriggerType | Trigger Type | |
TypeValue | Type Value | |
Comment | Comment | |
Description | Definition | |
DesignLevel | Design Level | |
Name | Name | |
NativeId | Native Id | |
PhysicalName | Physical Name | |
Position | Position | |
Value | Value |