Bridge Specifications
Vendor | erwin, Inc. |
Tool Name | erwin Data Modeler |
Tool Version | 9.x to 2020 |
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 |
BRIDGE INFORMATION
Import tool: erwin, Inc. erwin Data Modeler 9.x to 2020 (https://erwin.com/products/erwin-data-modeler/)
Import interface: [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 from erwin 9.x to 2020 Data Modeler (File)
Import bridge: 'CaErwin9Xml' 10.1.0
BRIDGE DOCUMENTATION
This bridge can import either the .erwin format files or .XML format files saved using erwin Data Modeler.
ERWIN XML FORMAT:
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
ERWIN NATIVE FORMAT (.erwin):
The 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'.
Starting with Erwin Data Modeler 9.8 / 2020 R1, Erwin requires the user to re-confirm the license in the UI if the tool has not been used for more than 72 hours.
In order to avoid this inconvenience, Erwin Data Modeler should be installed through the 'Offline Activation' email process which is available only on a node locked license.
ERWIN WINDOWS USER:
The bridge must run on behalf of the Windows user that can run the erwin software.
If the bridge is running as part of a Windows desktop application, then you must log on windows with that user.
If the 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 using erwin, and restart the Windows service.
ERWIN WINDOWS COM API:
The bridge uses the Erwin Windows COM API via simple scripts (ErwinApi.js and ErwinXml.js).
If these scripts are not working properly, contact Erwin support to debug the issue (which may require re-installing erwin).
The scripts can be tested as follows:
cscript.exe //E:jscript //Nologo .\conf\MIRModelBridgeTemplate\ERwin\ERwinApi.js -version 9 -GetVersion
cscript.exe //E:jscript //Nologo .\conf\MIRModelBridgeTemplate\ERwin\ERwinXml.js -version 9 -from eMovies.erwin -to eMovies.xml -log eMoviesLog.txt
FREQUENTLY ASKED QUESTIONS
Q: What erwin version does this bridge support?
A: This import bridge supports the XML file version generated by erwin.
Q: How does the bridge import the ordering of attributes ?
A: The 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 9:
- Switch to the model Physical View,
- In the 'Diagram' menu, select 'Diagrams',
- Click on the 'Table' tab
- Select 'Physical Order' from the 'Physical Display Level' pull-down.
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.
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 9 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 the 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.
WARNING ON POTENTIAL POPUP MESSAGES
When importing .erwin models, there is a possibility that erwin may present a popup window that is unavailable for the bridge to respond to.
The result is the bridge will hang during import. A possible workaround recommended by the vendor is to modify the registry as follows, to avoid popup messages:
* Edit the registry on the machine where the bridge is running, using Regedit.exe
* Look for the key:
for version 9.0 to 9.6: HKEY_CURRENT_USER\Software\CA\ERwin Data Modeler\9.0\Messages
for version 9.7: HKEY_CURRENT_USER\Software\erwin\Data Modeler\9.7\Messages
* Add data 'GDM-46=1;' to the value 'Message Status'
Bridge Parameters
Parameter Name | Description | Type | Values | Default | Scope | ||||
File | When creating the .xml version of a file (Save As... in erwin), it is recommended that one select the 'XML Repository Format' radio button for the type of XML file that erwin creates. Please see warnings in the overall bridge tool tip about using the standard XML format that erwin provides. 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 The bridge will use the generated XML or ERWIN file as input. Remember that erwin must be installed on the same machine that the bridge runs on in order for the ERWIN format to be parsed. |
FILE |
|
Mandatory | |||||
Import UDPs | A User Defined Property (UDP) is usually defined with a property definition object that has a default value. The objects the property applies to may also specify an explicit value for this property, or no value at all in which case the default value of the property definition applies. This option allows you to control how property definitions and values are imported: - By default, the bridge imports the property definition as a Property Type. - 'As metadata' - Import an explicit value as Property Value, implicit values are not imported, the default value is kept on the Property Type only. This is the default behavior. - '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 | Specifies how to import the relationship names from erwin 'From relationship name' - from the name property. This is the default. 'From derived name' - from the verb phrase derived name. |
ENUMERATED |
|
From relationship name | |||||
Import column order from | Specifies how to import the position of columns in tables '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. This is the default value. To view the columns physical order in erwin, edit the current subject area 'Stored Display Settings', then click on tab 'Physical', group 'Display Level', then on the 'Physical Order' radio button. |
ENUMERATED |
|
Physical order | |||||
Import owner schemas | Specifies if owner schemas should be imported. 'True' - The owner schema for Tables, Views and other database objects is imported. This is the default value. 'False' - The owner schema for Tables, 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 | Specifies if diagrams should be imported. 'None' - Diagrams are not imported. 'Current view' - Only the current view of the diagrams are imported. This is the default value. 'All' - Diagrams are imported twice: once for the logical view and once for the physical view. |
ENUMERATED |
|
Current view | |||||
Move entities to subject areas | erwin entities belong under the model and may be assigned to one or more subject areas. This parameter is useful if the erwin modeler wished to use subject areas as conventional (UML) design packages with their own namespace where any entity may belong to ONLY one subject area. Specifically, if entities belong to only one subject area, they will be placed in the corresponding package. Other entities are placed under the model. Additionally, this option assumes that all entities are defined within a user defined subject area. |
BOOLEAN |
|
False | |||||
Miscellaneous | Specify miscellaneous options identified with a -letter and value. For example, -m 4G -v set environment variable(s) (e.g. -v var1=value -v var2="value with spaces"). -m the maximum Java memory size whole number (e.g. -m 4G or -m 2500M ). -j the last option that is followed by Java command line options (e.g. -j -Dname=value -Xms1G). |
STRING |
Bridge Mapping
Meta Integration Repository (MIR) Metamodel (based on the OMG CWM standard) |
"erwin 9.x to 2020 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 | |
Comment | Comment | |
Description | Definition | |
DesignLevel | Design Level | |
Name | Name | |
NativeId | Native Id | |
PhysicalName | Physical Name | |
ConnectionPackage | Data Source Schema, Directory | |
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 | |
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 |