Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - Jes

Pages: [1]
1
General Board / Locations in Archimate 3.0
« on: May 17, 2017, 07:03:13 pm »
How should we model a location inside an organization viewpoint diagram?
I see that the Archimate 3.0 notation classifies a location (i.e. a department) as a composite - just as it does for the grouping.
But in Sparx EA I cannot see anything about location. I would have expected to find it under: Other Relationships...

2
General Board / Export Reference Data in the ribbon UI
« on: February 24, 2017, 01:10:02 am »
I can't find anything in the ribbon UI that matches this functionality

http://www.sparxsystems.com/enterprise_architect_user_guide/10/projects_and_teams/exportrefdata.html

How would one go about and export the database datatypes that were defined in another project?

3
Bugs and Issues / "Skipping: Locked Class" issue during transform
« on: February 22, 2017, 08:05:42 pm »
I can't figure out why my MDA transform all of a sudden do not create any PDM out of my checked out LDM. It usually works as expected, but i now get this message during the transform progress: "Skipping: Locked class - CLASS_NAME"
I use SVN for package versioning and made sure thtat the underlying XMI file for the package is unlocked in SVN. I have no idea about why all my classes are locked and no clue how to unlock these...

4
When transforming an LDM to PDM then the whole UI blocks... and Windows intreprets this as a crash and asks if I would like to kill the program - which I learned to ignore. Hands-down, this is a true annoyance, especially when transforming a larger LDM.
Also, during the transformation then the cancel button is of very limited use since the UI thread seams to be the one performing the transform.
Thank you,
Jes

5
I can't figure out why my Logical Data Model --> Physical Data Model transformation is no longer creating Tables in the destination package as it previously did. Instead, it states that it synchronizes these tables... what would make it beleive that the tables already exists even though the destination package is brand new and completely empty.

The Transformation Progress would show the following:
Code: [Select]
...
Parsing intermediary representation.
Creating packages.
    Synchronizing: Class ...
    Synchronizing: Class ...
    Synchronizing: Class ...
    Synchronizing: Class ...
    Skipping: Locked Class...
    Synchronizing: Class ...
    Synchronizing: Class ...
...

And the newly created physical package would be still be completely empty.

Any input would be appreciated.

By the way, the intermediary file resulting from the transformation looks like it provided all the expected tables and attributes...

6
Suggestions and Requests / CWM support in Sparx EA 12
« on: October 27, 2016, 12:18:56 am »
I would like to know what capabilities does EA provides in order to export a data model in the CWM format which is used by the Informatica MDM tool.

In my attempt to quickly import my Master Data Management data model into Informatica MDM Iíve stumbled on the following problem:
Informatica MDM can import data tables together with columns and references if they are defined using CWM (I know very little about this format).

It is clear that MDM uses the CWMRDB namespace to stitch together the model in the resulting XML file. The results looks a great deal as the one that EA produces when exporting a PDM , but not completely. For example:


INFORMATICA MDM CWM EXPORT:
          <CWM:Namespace.ownedElement>
            <CWMRDB:PrimaryKey xmi.id = 'a17' name = 'SVR1_1JAS'>
              <CWM:UniqueKey.feature>
                <CWMRDB:Column xmi.idref = 'a18'/>
              </CWM:UniqueKey.feature>
              <CWM:UniqueKey.keyRelationship>
                <CWMRDB:ForeignKey xmi.idref = 'a19'/>
              </CWM:UniqueKey.keyRelationship>
            </CWMRDB:PrimaryKey>
          </CWM:Namespace.ownedElement>



EA EXPORT:
<UML:Association xmi.id="EAID_63365DE7_E591_4123_93BE_D9F4C3F2C80D" visibility="public" isRoot="false" isLeaf="false" isAbstract="false">
     <UML:Association.connection>
           <UML:AssociationEnd visibility="public" name="Colour" aggregation="none" isOrdered="false" targetScope="instance" changeable="none" isNavigable="false" type="EAID_FE6D5C58_717C_4c37_94C8_48E51485C18C">
                <UML:AssociationEnd.multiplicity>
                     <UML:Multiplicity>
                           <UML:Multiplicity.range>
                                <UML:MultiplicityRange lower="0" upper="-1"/>
                           </UML:Multiplicity.range>
                     </UML:Multiplicity>
                </UML:AssociationEnd.multiplicity>
                <UML:AssociationEnd.participant>
                     <UML:Class xmi.idref="EAID_FE6D5C58_717C_4c37_94C8_48E51485C18C"/>
                </UML:AssociationEnd.participant>
           </UML:AssociationEnd>
           <UML:AssociationEnd visibility="public" aggregation="none" isOrdered="false" targetScope="instance" changeable="none" isNavigable="true" type="EAID_9CFB1BB2_2391_4e00_94D2_F2D333E18951"> <- Reference to Physical Characteristics
                <UML:AssociationEnd.multiplicity>
                     <UML:Multiplicity>
                           <UML:Multiplicity.range>
                                <UML:MultiplicityRange lower="0" upper="-1"/>
                           </UML:Multiplicity.range>
                     </UML:Multiplicity>
                </UML:AssociationEnd.multiplicity>
                <UML:AssociationEnd.participant>
                     <UML:Class xmi.idref="EAID_9CFB1BB2_2391_4e00_94D2_F2D333E18951"/>
                </UML:AssociationEnd.participant>
           </UML:AssociationEnd>
     </UML:Association.connection>
</UML:Association>



What would you suggest we do to close this GAP?
-   Build an EA transformation that would pass through all the design elements in a diagram and provide the expected XML?
-   Export the model from EA using the format that comes the closest to Informatica MDM and close the gap manually in a text editor?
-   Something else?



By the way, this is what Informatica MDM produces when exporting tables from it to an XML file. I guess what i need is to match this format 1 to 1.
Code: [Select]
<?xml version = '1.0' encoding = 'windows-1252' ?>
<XMI xmi.version = '1.2' xmlns:CWMTFM = 'org.omg.xmi.namespace.CWMTFM' xmlns:CWM = 'org.omg.xmi.namespace.CWM'
  xmlns:CWMRDB = 'org.omg.xmi.namespace.CWMRDB' xmlns:CWMOLAP = 'org.omg.xmi.namespace.CWMOLAP'
  timestamp = 'Wed Oct 26 07:16:26 UTC 2016'>
  <XMI.header>
    <XMI.documentation>
      <XMI.exporter>Netbeans XMI Writer</XMI.exporter>
      <XMI.exporterVersion>1.0</XMI.exporterVersion>
    </XMI.documentation>
  </XMI.header>
  <XMI.content>
    <CWMRDB:SQLSimpleType xmi.id = 'a1' name = 'NUMBER' isAbstract = 'false'
      typeNumber = '2'/>
    <CWMRDB:SQLSimpleType xmi.id = 'a2' name = 'FLOAT' isAbstract = 'false'
      typeNumber = '6'/>
    <CWMRDB:SQLSimpleType xmi.id = 'a3' name = 'INT' isAbstract = 'false' typeNumber = '4'/>
    <CWMRDB:SQLSimpleType xmi.id = 'a4' name = 'CHAR' isAbstract = 'false' typeNumber = '1'/>
    <CWMRDB:SQLSimpleType xmi.id = 'a5' name = 'NCHAR' isAbstract = 'false'
      typeNumber = '-15'/>
    <CWMRDB:SQLSimpleType xmi.id = 'a6' name = 'VARCHAR' isAbstract = 'false'
      typeNumber = '12'/>
    <CWMRDB:SQLSimpleType xmi.id = 'a7' name = 'VARCHAR2' isAbstract = 'false'
      typeNumber = '12'/>
    <CWMRDB:SQLSimpleType xmi.id = 'a8' name = 'NVARCHAR' isAbstract = 'false'
      typeNumber = '-15'/>
    <CWMRDB:SQLSimpleType xmi.id = 'a9' name = 'NVARCHAR2' isAbstract = 'false'
      typeNumber = '-15'/>
    <CWMRDB:SQLSimpleType xmi.id = 'a10' name = 'DATE' isAbstract = 'false'
      typeNumber = '91'/>
    <CWMRDB:SQLSimpleType xmi.id = 'a11' name = 'TIMESTAMP' isAbstract = 'false'
      typeNumber = '91'/>
    <CWMRDB:SQLSimpleType xmi.id = 'a12' name = 'CLOB' isAbstract = 'false'
      typeNumber = '2005'/>
    <CWMRDB:SQLSimpleType xmi.id = 'a13' name = 'BLOB' isAbstract = 'false'
      typeNumber = '2004'/>
    <CWMRDB:SQLSimpleType xmi.id = 'a14' name = 'BIGINT' isAbstract = 'false'
      typeNumber = '8'/>
    <CWMRDB:Schema xmi.id = 'a15' name = 'CMX_ORS_JSYC'>
      <CWM:Namespace.ownedElement>
        <CWMRDB:Table xmi.id = 'a16' name = 'C_TEST' isAbstract = 'false' isTemporary = 'false'
          isSystem = 'false'>
          <CWM:Namespace.ownedElement>
            <CWMRDB:PrimaryKey xmi.id = 'a17' name = 'SVR1_1ICD'>
              <CWM:UniqueKey.feature>
                <CWMRDB:Column xmi.idref = 'a18'/>
              </CWM:UniqueKey.feature>
            </CWMRDB:PrimaryKey>
          </CWM:Namespace.ownedElement>
          <CWM:Classifier.feature>
            <CWMRDB:Column xmi.id = 'a19' name = 'AUTH_STAT_DT' precision = '0' scale = '0'
              isNullable = 'columnNullable' length = '0'>
              <CWM:StructuralFeature.type>
                <CWMRDB:SQLSimpleType xmi.idref = 'a10'/>
              </CWM:StructuralFeature.type>
            </CWMRDB:Column>
            <CWMRDB:Column xmi.id = 'a20' name = 'MAH_NUMBER' precision = '0' scale = '0'
              isNullable = 'columnNullable' length = '50'>
              <CWM:StructuralFeature.type>
                <CWMRDB:SQLSimpleType xmi.idref = 'a6'/>
              </CWM:StructuralFeature.type>
            </CWMRDB:Column>
            <CWMRDB:Column xmi.id = 'a21' name = 'REGISTRATION_NO' precision = '0' scale = '0'
              isNullable = 'columnNullable' length = '50'>
              <CWM:StructuralFeature.type>
                <CWMRDB:SQLSimpleType xmi.idref = 'a6'/>
              </CWM:StructuralFeature.type>
            </CWMRDB:Column>
            <CWMRDB:Column xmi.id = 'a22' name = 'EXCLVTY_END' precision = '0' scale = '0'
              isNullable = 'columnNullable' length = '0'>
              <CWM:StructuralFeature.type>
                <CWMRDB:SQLSimpleType xmi.idref = 'a10'/>
              </CWM:StructuralFeature.type>
            </CWMRDB:Column>
            <CWMRDB:Column xmi.id = 'a23' name = 'INTR_BIRTH_DT' precision = '0' scale = '0'
              isNullable = 'columnNullable' length = '0'>
              <CWM:StructuralFeature.type>
                <CWMRDB:SQLSimpleType xmi.idref = 'a10'/>
              </CWM:StructuralFeature.type>
            </CWMRDB:Column>
            <CWMRDB:Column xmi.id = 'a24' name = 'EXCLVTY_START' precision = '0' scale = '0'
              isNullable = 'columnNullable' length = '0'>
              <CWM:StructuralFeature.type>
                <CWMRDB:SQLSimpleType xmi.idref = 'a10'/>
              </CWM:StructuralFeature.type>
            </CWMRDB:Column>
            <CWMRDB:Column xmi.id = 'a25' name = 'FIRST_AUTH_DT' precision = '0' scale = '0'
              isNullable = 'columnNullable' length = '0'>
              <CWM:StructuralFeature.type>
                <CWMRDB:SQLSimpleType xmi.idref = 'a10'/>
              </CWM:StructuralFeature.type>
            </CWMRDB:Column>
            <CWMRDB:Column xmi.id = 'a26' name = 'VALIDITY_END' precision = '0' scale = '0'
              isNullable = 'columnNullable' length = '0'>
              <CWM:StructuralFeature.type>
                <CWMRDB:SQLSimpleType xmi.idref = 'a10'/>
              </CWM:StructuralFeature.type>
            </CWMRDB:Column>
            <CWMRDB:Column xmi.id = 'a27' name = 'VALIDITY_START' precision = '0' scale = '0'
              isNullable = 'columnNullable' length = '0'>
              <CWM:StructuralFeature.type>
                <CWMRDB:SQLSimpleType xmi.idref = 'a10'/>
              </CWM:StructuralFeature.type>
            </CWMRDB:Column>
            <CWMRDB:Column xmi.id = 'a28' name = 'PROTOCOL_NO' precision = '0' scale = '0'
              isNullable = 'columnNullable' length = '50'>
              <CWM:StructuralFeature.type>
                <CWMRDB:SQLSimpleType xmi.idref = 'a6'/>
              </CWM:StructuralFeature.type>
            </CWMRDB:Column>
            <CWMRDB:Column xmi.id = 'a29' name = 'INVESTIGATION_C' precision = '0' scale = '0'
              isNullable = 'columnNullable' length = '50'>
              <CWM:StructuralFeature.type>
                <CWMRDB:SQLSimpleType xmi.idref = 'a6'/>
              </CWM:StructuralFeature.type>
            </CWMRDB:Column>
            <CWMRDB:Column xmi.id = 'a30' name = 'AUTHORISATN_DT' precision = '0' scale = '0'
              isNullable = 'columnNullable' length = '0'>
              <CWM:StructuralFeature.type>
                <CWMRDB:SQLSimpleType xmi.idref = 'a10'/>
              </CWM:StructuralFeature.type>
            </CWMRDB:Column>
            <CWMRDB:Column xmi.id = 'a31' name = 'ANTICPTD_END_DT' precision = '0' scale = '0'
              isNullable = 'columnNullable' length = '0'>
              <CWM:StructuralFeature.type>
                <CWMRDB:SQLSimpleType xmi.idref = 'a10'/>
              </CWM:StructuralFeature.type>
            </CWMRDB:Column>
            <CWMRDB:Column xmi.id = 'a32' name = 'CM_DIRTY_IND' precision = '0' scale = '0'
              isNullable = 'columnNullable' length = '0'>
              <CWM:StructuralFeature.type>
                <CWMRDB:SQLSimpleType xmi.idref = 'a3'/>
              </CWM:StructuralFeature.type>
            </CWMRDB:Column>
            <CWMRDB:Column xmi.id = 'a33' name = 'HUB_STATE_IND' precision = '0' scale = '0'
              isNullable = 'columnNoNulls' length = '0'>
              <CWM:Attribute.initialValue>
                <CWM:Expression xmi.id = 'a34' body = '1'/>
              </CWM:Attribute.initialValue>
              <CWM:StructuralFeature.type>
                <CWMRDB:SQLSimpleType xmi.idref = 'a3'/>
              </CWM:StructuralFeature.type>
            </CWMRDB:Column>
            <CWMRDB:Column xmi.id = 'a35' name = 'INTERACTION_ID' precision = '0' scale = '0'
              isNullable = 'columnNullable' length = '0'>
              <CWM:StructuralFeature.type>
                <CWMRDB:SQLSimpleType xmi.idref = 'a3'/>
              </CWM:StructuralFeature.type>
            </CWMRDB:Column>
            <CWMRDB:Column xmi.id = 'a36' name = 'DIRTY_IND' precision = '0' scale = '0'
              isNullable = 'columnNullable' length = '0'>
              <CWM:StructuralFeature.type>
                <CWMRDB:SQLSimpleType xmi.idref = 'a3'/>
              </CWM:StructuralFeature.type>
            </CWMRDB:Column>
            <CWMRDB:Column xmi.id = 'a37' name = 'DELETED_DATE' precision = '0' scale = '0'
              isNullable = 'columnNullable' length = '0'>
              <CWM:StructuralFeature.type>
                <CWMRDB:SQLSimpleType xmi.idref = 'a11'/>
              </CWM:StructuralFeature.type>
            </CWMRDB:Column>
            <CWMRDB:Column xmi.id = 'a38' name = 'LAST_ROWID_SYSTEM' precision = '0'
              scale = '0' isNullable = 'columnNoNulls' length = '14'>
              <CWM:StructuralFeature.type>
                <CWMRDB:SQLSimpleType xmi.idref = 'a4'/>
              </CWM:StructuralFeature.type>
            </CWMRDB:Column>
            <CWMRDB:Column xmi.id = 'a18' name = 'ROWID_OBJECT' precision = '0' scale = '0'
              isNullable = 'columnNoNulls' length = '14'>
              <CWM:StructuralFeature.type>
                <CWMRDB:SQLSimpleType xmi.idref = 'a4'/>
              </CWM:StructuralFeature.type>
            </CWMRDB:Column>
            <CWMRDB:Column xmi.id = 'a39' name = 'CREATE_DATE' precision = '0' scale = '0'
              isNullable = 'columnNullable' length = '0'>
              <CWM:Attribute.initialValue>
                <CWM:Expression xmi.id = 'a40' body = 'CURRENT_TIMESTAMP'/>
              </CWM:Attribute.initialValue>
              <CWM:StructuralFeature.type>
                <CWMRDB:SQLSimpleType xmi.idref = 'a11'/>
              </CWM:StructuralFeature.type>
            </CWMRDB:Column>
            <CWMRDB:Column xmi.id = 'a41' name = 'UPDATED_BY' precision = '0' scale = '0'
              isNullable = 'columnNullable' length = '50'>
              <CWM:StructuralFeature.type>
                <CWMRDB:SQLSimpleType xmi.idref = 'a6'/>
              </CWM:StructuralFeature.type>
            </CWMRDB:Column>
            <CWMRDB:Column xmi.id = 'a42' name = 'CREATOR' precision = '0' scale = '0'
              isNullable = 'columnNullable' length = '50'>
              <CWM:Attribute.initialValue>
                <CWM:Expression xmi.id = 'a43' body = 'CMX'/>
              </CWM:Attribute.initialValue>
              <CWM:StructuralFeature.type>
                <CWMRDB:SQLSimpleType xmi.idref = 'a6'/>
              </CWM:StructuralFeature.type>
            </CWMRDB:Column>
            <CWMRDB:Column xmi.id = 'a44' name = 'DELETED_IND' precision = '0' scale = '0'
              isNullable = 'columnNullable' length = '0'>
              <CWM:StructuralFeature.type>
                <CWMRDB:SQLSimpleType xmi.idref = 'a3'/>
              </CWM:StructuralFeature.type>
            </CWMRDB:Column>
            <CWMRDB:Column xmi.id = 'a45' name = 'DELETED_BY' precision = '0' scale = '0'
              isNullable = 'columnNullable' length = '50'>
              <CWM:StructuralFeature.type>
                <CWMRDB:SQLSimpleType xmi.idref = 'a6'/>
              </CWM:StructuralFeature.type>
            </CWMRDB:Column>
            <CWMRDB:Column xmi.id = 'a46' name = 'LAST_UPDATE_DATE' precision = '0'
              scale = '0' isNullable = 'columnNullable' length = '0'>
              <CWM:StructuralFeature.type>
                <CWMRDB:SQLSimpleType xmi.idref = 'a11'/>
              </CWM:StructuralFeature.type>
            </CWMRDB:Column>
            <CWMRDB:Column xmi.id = 'a47' name = 'CONSOLIDATION_IND' precision = '0'
              scale = '0' isNullable = 'columnNoNulls' length = '0'>
              <CWM:Attribute.initialValue>
                <CWM:Expression xmi.id = 'a48' body = '4'/>
              </CWM:Attribute.initialValue>
              <CWM:StructuralFeature.type>
                <CWMRDB:SQLSimpleType xmi.idref = 'a3'/>
              </CWM:StructuralFeature.type>
            </CWMRDB:Column>
          </CWM:Classifier.feature>
        </CWMRDB:Table>
      </CWM:Namespace.ownedElement>
    </CWMRDB:Schema>
  </XMI.content>
</XMI>


7
Automation Interface, Add-Ins and Tools / Custom DDL transformation
« on: November 28, 2015, 11:47:24 pm »
In my logical to physical model transformation, I can't figure out how would one connect an exisiting table with a newly created one - created by the transformation - using a foreign key.

How do I get the GUID of the newly created table, so that my intermediary file would reflect these in the join? See below.

part of my custom DDL transform:
Code: [Select]
table {
            ...
            PrimaryKey
            {
                  Column
                  {
                   †..
                  }
            }            
            Column
            {
                  ...
            }
      }      
      ForeignKey
      {            
            %TRANSFORM_REFERENCE("FK1",classGUID)%
            Source
            {      
                  %TRANSFORM_REFERENCE("Table",classGUID)%
                  $tabName=%CONVERT_NAME(className, "Spaced","Underscored")%
                  name=%qt%%TO_UPPER($tabName)%%qt%
                  multiplicity="1"
                  Column
                  {
                        name=%qt%%attName%%qt%
                        type=%qt%%CONVERT_TYPE(genOptDefaultDatabase,"Integer")%%qt%
                  }
            }
            Target
            {
                  %TRANSFORM_REFERENCE("Table",attGUID)%
                  Column
                  {                  
                        name=%qt%%TO_UPPER($cvAttName)%_ID%qt%
                        type=%qt%%CONVERT_TYPE(genOptDefaultDatabase,"Integer")%%qt%
                  }
            }
      }

Part of the intermediary file:
Code: [Select]
ForeignKey
      {            
            XRef{namespace="DDL IDMP" name="FK1" source="{2CA9A5E3-214F-41e4-ACF1-BCBDD795B130}"}
            Source
            {      
                  XRef{namespace="DDL IDMP" name="Table" source="{2CA9A5E3-214F-41e4-ACF1-BCBDD795B130}"}
                  name="AUTHORIZATION"
                  multiplicity="1"
                  Column
                  {
                        name="Status"
                        type="INTEGER"
                  }
            }
            Target
            {
                  XRef{namespace="DDL IDMP" name="Table" source="{EE4CB7B8-0236-46e7-A7C0-A007D608680F}"}
                  Column
                  {                  
                        name="STATUS_ID"
                        type="INTEGER"
                  }
            }
      }

The problem is that the source and target GUID above are both for the same original table and none for the newly created one.

Pages: [1]