From e641d575e0574489f374016b62061c092efce0a4 Mon Sep 17 00:00:00 2001 From: willem-xbreeze <62752502+willem-xbreeze@users.noreply.github.com> Date: Fri, 1 Mar 2024 09:48:59 +0100 Subject: [PATCH] Add model export extension for basic classes (#13) * Add model export extension for basic classes * review comments * Build all XEM files * review comments * review comments * review comments --- .../compose_and_publish_artifacts/action.yaml | 4 +- README.md | 4 +- decomposed/Workspace/Workspace.sws | 1 - .../a_CheckGlobalScript.xml | 4 + ...seClassifierMapping_XmlExport_Template.xml | 7 + ...turalFeatureMapping_XmlExport_Template.xml | 6 + .../mdde_Entity_XmlExport_Template.xml | 8 +- ...dde_EntityAttribute_XmlExport_Template.xml | 7 + .../Extended_Attributes.xml | 12 + .../mdde_export_extension_attached.xml | 17 + ...rt_extension_initialization_successful.xml | 10 + .../Model/Menus/mdde_Model_ContextMenu.xml | 1 + .../Profile/Model/Methods/Methods.xml | 1 + .../Profile/Model/Methods/mdde_ExportXml.xml | 17 +- .../mdde_InitializeExportExtension.xml | 143 +++++++ .../MDDE_LDM/Profile/Model/Model.xml | 1 + .../mdde_Model_XmlExport_Template.xml | 7 + ...amedObject_XmlAttributeExport_Template.xml | 9 +- .../a_CheckGlobalScript.xml | 8 + .../MDDE_LDM_Export_Extension/Generation.xml | 6 + .../MDDE_LDM_Export_Extension.xem | 20 + .../BaseClassifierMapping.xml | 11 + .../Extended_Attributes.xml | 11 + ...x_BaseClassifierMapping_Export_Content.xml | 11 + .../Templates/Templates.xml | 11 + ..._BaseClassifierMapping_Export_Template.xml | 8 + .../BaseStructuralFeatureMapping.xml | 11 + .../Extended_Attributes.xml | 11 + ...tructuralFeatureMapping_Export_Content.xml | 11 + .../Templates/Templates.xml | 11 + ...ructuralFeatureMapping_Export_Template.xml | 8 + .../Profile/Entity/Entity.xml | 11 + .../Extended_Attributes.xml | 11 + .../mddex_Entity_Export_Content.xml | 11 + .../Profile/Entity/Templates/Templates.xml | 11 + .../mddex_Entity_Export_Template.xml | 8 + .../EntityAttribute/EntityAttribute.xml | 11 + .../Extended_Attributes.xml | 11 + .../mddex_EntityAttribute_Export_Content.xml | 11 + .../EntityAttribute/Templates/Templates.xml | 11 + .../mddex_EntityAttribute_Export_Template.xml | 8 + .../Extended_Attributes.xml | 11 + .../mddex_Model_Export_Content.xml | 11 + .../Profile/Model/Model.xml | 11 + .../Profile/Model/Templates/Templates.xml | 11 + .../Templates/mddex_Model_Export_Template.xml | 8 + .../Extended_Attributes.xml | 11 + ..._NamedObject_Attributes_Export_Content.xml | 11 + .../Profile/NamedObject/NamedObject.xml | 11 + .../NamedObject/Templates/Templates.xml | 11 + ...NamedObject_Attributes_Export_Template.xml | 8 + .../Profile/Profile.xml | 16 + .../Profile/Shared.xml | 8 + .../Entities/BUSINESSRELATION.xml | 8 - .../Entities/BUSINESSTRANSACTION.xml | 8 - .../ExampleBusinessConcepts.ldm | 40 -- .../Shortcuts/MDDE_LDM.xml | 8 - .../EXAMPLEBUSINESSCONCEPTS.xml | 19 - .../LogicalDiagram/a_DisplayPreferences.xml | 385 ----------------- ...y_21AEC1DB-5FA1-4092-9265-A165EEB54D1F.xml | 21 - ...y_FE814A09-B413-46E6-B862-8D9334562194.xml | 21 - ...l_1EA0EFF0-9854-4C3C-9F15-A80D05F4951B.xml | 20 - .../EXAMPLEBUSINESSCONCEPTS/Symbols/o5.xml | 13 - .../EXAMPLEBUSINESSCONCEPTS/Symbols/o6.xml | 10 - .../Model/a_ModelOptionsText.xml | 388 ------------------ .../Relationships/RELATIONSHIP_1.xml | 15 - .../TargetModels/MDDE_LDM.xml | 13 - .../DataSources/BusinessConcepts/Concepts.xml | 13 - .../models/ExampleDWH/Entities/Customer.xml | 12 - .../Entities/Shortcuts/BUSINESSRELATION.xml | 12 - decomposed/models/ExampleDWH/ExampleDWH.ldm | 16 +- .../Local_Extensions/Categories/GENERAL.xml | 18 - .../Local_Extensions/Categories/Shared.xml | 8 - .../Local_Extensions/Local_Extensions.xml | 295 ------------- .../Shortcuts/MDDE_LDM_Export_Extension.xml | 8 + ...l_886CEEF0-1B32-4407-ADDC-1C899A05EB06.xml | 2 +- ...l_A2B869FA-B8A2-47BF-AEEA-75C714608D23.xml | 2 +- ...l_C2A6609F-EE69-45B9-B6D2-C363489ADA42.xml | 10 +- .../Mappings/RelatedBusinesConcepts.xml | 16 - .../Shortcuts/EXAMPLEBUSINESSCONCEPTS.xml | 11 - .../EXAMPLEBUSINESSCONCEPTS.xml | 21 - .../EXAMPLEBUSINESSCONCEPTS.xml | 37 -- .../Entities/BUSINESSRELATION.xml | 8 - .../Model/a_ModelOptionsText.xml | 388 ------------------ .../Model/a_PackageOptionsText.xml | 9 - .../MDDE_LDM_Export_Extension.xml | 13 + .../ExampleSource/EXAMPLESOURCE.model.xml | 33 +- manual/ModelExportExtension.md | 25 ++ manual/README.md | 1 + manual/img/mdde_export_extension_editor.png | Bin 0 -> 72519 bytes manual/img/mdde_export_extension_on_model.png | Bin 0 -> 18476 bytes manual/img/mdde_export_extension_result.png | Bin 0 -> 133884 bytes 92 files changed, 699 insertions(+), 1857 deletions(-) create mode 100644 decomposed/extensions/MDDE_LDM/Profile/Model/Extended_Attributes/Extended_Attributes.xml create mode 100644 decomposed/extensions/MDDE_LDM/Profile/Model/Extended_Attributes/mdde_export_extension_attached.xml create mode 100644 decomposed/extensions/MDDE_LDM/Profile/Model/Extended_Attributes/mdde_export_extension_initialization_successful.xml create mode 100644 decomposed/extensions/MDDE_LDM/Profile/Model/Methods/mdde_InitializeExportExtension.xml create mode 100644 decomposed/extensions/MDDE_LDM_Export_Extension/ExtendedModelDefinition/a_CheckGlobalScript.xml create mode 100644 decomposed/extensions/MDDE_LDM_Export_Extension/Generation.xml create mode 100644 decomposed/extensions/MDDE_LDM_Export_Extension/MDDE_LDM_Export_Extension.xem create mode 100644 decomposed/extensions/MDDE_LDM_Export_Extension/Profile/BaseClassifierMapping/BaseClassifierMapping.xml create mode 100644 decomposed/extensions/MDDE_LDM_Export_Extension/Profile/BaseClassifierMapping/Extended_Attributes/Extended_Attributes.xml create mode 100644 decomposed/extensions/MDDE_LDM_Export_Extension/Profile/BaseClassifierMapping/Extended_Attributes/mddex_BaseClassifierMapping_Export_Content.xml create mode 100644 decomposed/extensions/MDDE_LDM_Export_Extension/Profile/BaseClassifierMapping/Templates/Templates.xml create mode 100644 decomposed/extensions/MDDE_LDM_Export_Extension/Profile/BaseClassifierMapping/Templates/mddex_BaseClassifierMapping_Export_Template.xml create mode 100644 decomposed/extensions/MDDE_LDM_Export_Extension/Profile/BaseStructuralFeatureMapping/BaseStructuralFeatureMapping.xml create mode 100644 decomposed/extensions/MDDE_LDM_Export_Extension/Profile/BaseStructuralFeatureMapping/Extended_Attributes/Extended_Attributes.xml create mode 100644 decomposed/extensions/MDDE_LDM_Export_Extension/Profile/BaseStructuralFeatureMapping/Extended_Attributes/mddex_BaseStructuralFeatureMapping_Export_Content.xml create mode 100644 decomposed/extensions/MDDE_LDM_Export_Extension/Profile/BaseStructuralFeatureMapping/Templates/Templates.xml create mode 100644 decomposed/extensions/MDDE_LDM_Export_Extension/Profile/BaseStructuralFeatureMapping/Templates/mddex_BaseStructuralFeatureMapping_Export_Template.xml create mode 100644 decomposed/extensions/MDDE_LDM_Export_Extension/Profile/Entity/Entity.xml create mode 100644 decomposed/extensions/MDDE_LDM_Export_Extension/Profile/Entity/Extended_Attributes/Extended_Attributes.xml create mode 100644 decomposed/extensions/MDDE_LDM_Export_Extension/Profile/Entity/Extended_Attributes/mddex_Entity_Export_Content.xml create mode 100644 decomposed/extensions/MDDE_LDM_Export_Extension/Profile/Entity/Templates/Templates.xml create mode 100644 decomposed/extensions/MDDE_LDM_Export_Extension/Profile/Entity/Templates/mddex_Entity_Export_Template.xml create mode 100644 decomposed/extensions/MDDE_LDM_Export_Extension/Profile/EntityAttribute/EntityAttribute.xml create mode 100644 decomposed/extensions/MDDE_LDM_Export_Extension/Profile/EntityAttribute/Extended_Attributes/Extended_Attributes.xml create mode 100644 decomposed/extensions/MDDE_LDM_Export_Extension/Profile/EntityAttribute/Extended_Attributes/mddex_EntityAttribute_Export_Content.xml create mode 100644 decomposed/extensions/MDDE_LDM_Export_Extension/Profile/EntityAttribute/Templates/Templates.xml create mode 100644 decomposed/extensions/MDDE_LDM_Export_Extension/Profile/EntityAttribute/Templates/mddex_EntityAttribute_Export_Template.xml create mode 100644 decomposed/extensions/MDDE_LDM_Export_Extension/Profile/Model/Extended_Attributes/Extended_Attributes.xml create mode 100644 decomposed/extensions/MDDE_LDM_Export_Extension/Profile/Model/Extended_Attributes/mddex_Model_Export_Content.xml create mode 100644 decomposed/extensions/MDDE_LDM_Export_Extension/Profile/Model/Model.xml create mode 100644 decomposed/extensions/MDDE_LDM_Export_Extension/Profile/Model/Templates/Templates.xml create mode 100644 decomposed/extensions/MDDE_LDM_Export_Extension/Profile/Model/Templates/mddex_Model_Export_Template.xml create mode 100644 decomposed/extensions/MDDE_LDM_Export_Extension/Profile/NamedObject/Extended_Attributes/Extended_Attributes.xml create mode 100644 decomposed/extensions/MDDE_LDM_Export_Extension/Profile/NamedObject/Extended_Attributes/mddex_NamedObject_Attributes_Export_Content.xml create mode 100644 decomposed/extensions/MDDE_LDM_Export_Extension/Profile/NamedObject/NamedObject.xml create mode 100644 decomposed/extensions/MDDE_LDM_Export_Extension/Profile/NamedObject/Templates/Templates.xml create mode 100644 decomposed/extensions/MDDE_LDM_Export_Extension/Profile/NamedObject/Templates/mddex_NamedObject_Attributes_Export_Template.xml create mode 100644 decomposed/extensions/MDDE_LDM_Export_Extension/Profile/Profile.xml create mode 100644 decomposed/extensions/MDDE_LDM_Export_Extension/Profile/Shared.xml delete mode 100644 decomposed/models/ExampleBusinessConcepts/Entities/BUSINESSRELATION.xml delete mode 100644 decomposed/models/ExampleBusinessConcepts/Entities/BUSINESSTRANSACTION.xml delete mode 100644 decomposed/models/ExampleBusinessConcepts/ExampleBusinessConcepts.ldm delete mode 100644 decomposed/models/ExampleBusinessConcepts/ExtendedModelDefinitions/Shortcuts/MDDE_LDM.xml delete mode 100644 decomposed/models/ExampleBusinessConcepts/LogicalDiagrams/EXAMPLEBUSINESSCONCEPTS/EXAMPLEBUSINESSCONCEPTS.xml delete mode 100644 decomposed/models/ExampleBusinessConcepts/LogicalDiagrams/EXAMPLEBUSINESSCONCEPTS/LogicalDiagram/a_DisplayPreferences.xml delete mode 100644 decomposed/models/ExampleBusinessConcepts/LogicalDiagrams/EXAMPLEBUSINESSCONCEPTS/Symbols/EXAMPLEBUSINESSCONCEPTS_Entity_21AEC1DB-5FA1-4092-9265-A165EEB54D1F.xml delete mode 100644 decomposed/models/ExampleBusinessConcepts/LogicalDiagrams/EXAMPLEBUSINESSCONCEPTS/Symbols/EXAMPLEBUSINESSCONCEPTS_Entity_FE814A09-B413-46E6-B862-8D9334562194.xml delete mode 100644 decomposed/models/ExampleBusinessConcepts/LogicalDiagrams/EXAMPLEBUSINESSCONCEPTS/Symbols/EXAMPLEBUSINESSCONCEPTS_Symbol_1EA0EFF0-9854-4C3C-9F15-A80D05F4951B.xml delete mode 100644 decomposed/models/ExampleBusinessConcepts/LogicalDiagrams/EXAMPLEBUSINESSCONCEPTS/Symbols/o5.xml delete mode 100644 decomposed/models/ExampleBusinessConcepts/LogicalDiagrams/EXAMPLEBUSINESSCONCEPTS/Symbols/o6.xml delete mode 100644 decomposed/models/ExampleBusinessConcepts/Model/a_ModelOptionsText.xml delete mode 100644 decomposed/models/ExampleBusinessConcepts/Relationships/RELATIONSHIP_1.xml delete mode 100644 decomposed/models/ExampleBusinessConcepts/TargetModels/MDDE_LDM.xml delete mode 100644 decomposed/models/ExampleDWH/DataSources/BusinessConcepts/Concepts.xml delete mode 100644 decomposed/models/ExampleDWH/Entities/Shortcuts/BUSINESSRELATION.xml delete mode 100644 decomposed/models/ExampleDWH/ExtendedModelDefinitions/Local_Extensions/Categories/GENERAL.xml delete mode 100644 decomposed/models/ExampleDWH/ExtendedModelDefinitions/Local_Extensions/Categories/Shared.xml delete mode 100644 decomposed/models/ExampleDWH/ExtendedModelDefinitions/Local_Extensions/Local_Extensions.xml create mode 100644 decomposed/models/ExampleDWH/ExtendedModelDefinitions/Shortcuts/MDDE_LDM_Export_Extension.xml delete mode 100644 decomposed/models/ExampleDWH/Mappings/RelatedBusinesConcepts.xml delete mode 100644 decomposed/models/ExampleDWH/SourceModels/Shortcuts/EXAMPLEBUSINESSCONCEPTS.xml delete mode 100644 decomposed/models/ExampleDWH/TargetModels/EXAMPLEBUSINESSCONCEPTS/EXAMPLEBUSINESSCONCEPTS.xml delete mode 100644 decomposed/models/ExampleDWH/TargetModels/EXAMPLEBUSINESSCONCEPTS/FullShortcutModel/EXAMPLEBUSINESSCONCEPTS/EXAMPLEBUSINESSCONCEPTS.xml delete mode 100644 decomposed/models/ExampleDWH/TargetModels/EXAMPLEBUSINESSCONCEPTS/FullShortcutModel/EXAMPLEBUSINESSCONCEPTS/Entities/BUSINESSRELATION.xml delete mode 100644 decomposed/models/ExampleDWH/TargetModels/EXAMPLEBUSINESSCONCEPTS/FullShortcutModel/EXAMPLEBUSINESSCONCEPTS/Model/a_ModelOptionsText.xml delete mode 100644 decomposed/models/ExampleDWH/TargetModels/EXAMPLEBUSINESSCONCEPTS/FullShortcutModel/EXAMPLEBUSINESSCONCEPTS/Model/a_PackageOptionsText.xml create mode 100644 decomposed/models/ExampleDWH/TargetModels/MDDE_LDM_Export_Extension.xml create mode 100644 manual/ModelExportExtension.md create mode 100644 manual/img/mdde_export_extension_editor.png create mode 100644 manual/img/mdde_export_extension_on_model.png create mode 100644 manual/img/mdde_export_extension_result.png diff --git a/.github/actions/compose_and_publish_artifacts/action.yaml b/.github/actions/compose_and_publish_artifacts/action.yaml index 8b1ada8..e812fa1 100644 --- a/.github/actions/compose_and_publish_artifacts/action.yaml +++ b/.github/actions/compose_and_publish_artifacts/action.yaml @@ -17,10 +17,10 @@ runs: uses: actions/upload-artifact@v3 with: name: MDDE Extension - path: ./composed/extensions/MDDE_LDM.xem + path: ./composed/extensions/*.xem - name: Publish sample models uses: actions/upload-artifact@v3 with: name: Sample models path: ./composed/models/*.ldm - # TODO: add logic to version and add to a tag/release \ No newline at end of file + # TODO: add logic to version and add to a tag/release diff --git a/README.md b/README.md index 779723f..77634f4 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # PowerDesigner-MDDE-Extension A PowerDesigner LDM extension to support Model Driven Data Engineering using PowerDesigner LDM models. -This extensions is to add extra modeling possibilities to LDM models, where standard PowerDesigner functionalities are missing options to add metadata. These extra modeling options are listed below per object type. +This extension is to add extra modeling possibilities to LDM models, where standard PowerDesigner functionalities are missing options to add metadata. These extra modeling options are listed below per object type. - Entity - Mapping @@ -22,6 +22,8 @@ This extensions is to add extra modeling possibilities to LDM models, where stan - XML Export - To generate code, tests, etc. using CrossGenerate for the model an XML export has been implemented on model level. +In many cases it is helpful to customize the XML Export to include project-specific extensions. The MDDE Model Export Extension can be used to include this type of project-specific model content in the MDDE XML Export without modifying the MDDE extension. + ## Modeling manual There is a modeling manual available [here](./manual/) on how to use the PowerDesigner extension. diff --git a/decomposed/Workspace/Workspace.sws b/decomposed/Workspace/Workspace.sws index ac8aa40..eb3da08 100644 --- a/decomposed/Workspace/Workspace.sws +++ b/decomposed/Workspace/Workspace.sws @@ -7,7 +7,6 @@ - diff --git a/decomposed/extensions/MDDE_LDM/ExtendedModelDefinition/a_CheckGlobalScript.xml b/decomposed/extensions/MDDE_LDM/ExtendedModelDefinition/a_CheckGlobalScript.xml index 81f8341..9345aed 100644 --- a/decomposed/extensions/MDDE_LDM/ExtendedModelDefinition/a_CheckGlobalScript.xml +++ b/decomposed/extensions/MDDE_LDM/ExtendedModelDefinition/a_CheckGlobalScript.xml @@ -10,6 +10,10 @@ Const cMDDE_EXT_CODE = "MDDE_LDM" Const cMDDE_PDC_COMPOSED_FOLDER = "composed" Const cMDDE_PDC_DECOMPOSED_FOLDER = "decomposed" Const cMDDE_JOIN_TYPE_APPLY = "Apply" +Const cMDDE_EXPORT_EXTENSION_CODE = "MDDE_LDM_Export_Extension" +Const cMDDE_EXPORT_EXTENSION_INITIALIZATION_INDICATOR = "mdde_Export_Extension_Initialization_Successful" +Const cMDDE_NAMEDOBJECT_ATTRIBUTE_EXPORT_TEMPLATE_NAME = "mddex_NamedObject_Attributes_Export_Template" +Const cMDDE_NAMEDOBJECT_ATTRIBUTE_EXPORT_ATTRIBUTE_NAME = "mddex_NamedObject_Attributes_Export_Content" Const cMDDE_DATASOURCE_STEREOTYPE = "mdde_DataSource" diff --git a/decomposed/extensions/MDDE_LDM/Profile/BaseClassifierMapping/Criteria/mdde_Classifier_IsMDDEMapping/Templates/mdde_BaseClassifierMapping_XmlExport_Template.xml b/decomposed/extensions/MDDE_LDM/Profile/BaseClassifierMapping/Criteria/mdde_Classifier_IsMDDEMapping/Templates/mdde_BaseClassifierMapping_XmlExport_Template.xml index 4a6f038..9123673 100644 --- a/decomposed/extensions/MDDE_LDM/Profile/BaseClassifierMapping/Criteria/mdde_Classifier_IsMDDEMapping/Templates/mdde_BaseClassifierMapping_XmlExport_Template.xml +++ b/decomposed/extensions/MDDE_LDM/Profile/BaseClassifierMapping/Criteria/mdde_Classifier_IsMDDEMapping/Templates/mdde_BaseClassifierMapping_XmlExport_Template.xml @@ -16,6 +16,13 @@ .foreach_item(mdde_Mapping_Examples,\n <Examples>\n,\n </Examples>) %mdde_Example_XmlExport_Template% .next(\n) + .comment Add the content of the export extension template + .if (%Model.mdde_Export_Extension_Attached%) + .if (%.D:mddex_BaseClassifierMapping_Export_Content%) +%.D:mddex_BaseClassifierMapping_Export_Content% + .endif + .endif + </Mapping> 1651739964 WesselsH1 diff --git a/decomposed/extensions/MDDE_LDM/Profile/BaseStructuralFeatureMapping/Criteria/mdde_Criterion_ParentIsMDDEMapping/Templates/mdde_BaseStructuralFeatureMapping_XmlExport_Template.xml b/decomposed/extensions/MDDE_LDM/Profile/BaseStructuralFeatureMapping/Criteria/mdde_Criterion_ParentIsMDDEMapping/Templates/mdde_BaseStructuralFeatureMapping_XmlExport_Template.xml index fec76be..43fe75c 100644 --- a/decomposed/extensions/MDDE_LDM/Profile/BaseStructuralFeatureMapping/Criteria/mdde_Criterion_ParentIsMDDEMapping/Templates/mdde_BaseStructuralFeatureMapping_XmlExport_Template.xml +++ b/decomposed/extensions/MDDE_LDM/Profile/BaseStructuralFeatureMapping/Criteria/mdde_Criterion_ParentIsMDDEMapping/Templates/mdde_BaseStructuralFeatureMapping_XmlExport_Template.xml @@ -27,6 +27,12 @@ .endif %SourceFeature.mdde_NamedObject_XmlAttributeExport_Template% /> .endif(\n) +.comment Add the content of the export extension template +.if (%Model.mdde_Export_Extension_Attached%) + .if(%.D:mddex_BaseStructuralFeatureMapping_Export_Content%) +%.D:mddex_BaseStructuralFeatureMapping_Export_Content% + .endif +.endif </%Feature.mdde_NamedObject_XmlElementName%Mapping> 1651753617 WesselsH1 diff --git a/decomposed/extensions/MDDE_LDM/Profile/Entity/Templates/mdde_Entity_XmlExport_Template.xml b/decomposed/extensions/MDDE_LDM/Profile/Entity/Templates/mdde_Entity_XmlExport_Template.xml index 58bee26..b635eb3 100644 --- a/decomposed/extensions/MDDE_LDM/Profile/Entity/Templates/mdde_Entity_XmlExport_Template.xml +++ b/decomposed/extensions/MDDE_LDM/Profile/Entity/Templates/mdde_Entity_XmlExport_Template.xml @@ -35,7 +35,13 @@ %mdde_Entity_Stereotyped_XmlExport_Template% .endif - + .comment Add the content of the export extension template + .if (%Model.mdde_Export_Extension_Attached%) + .if(%.D:mddex_Entity_Export_Content%) +%.D:mddex_Entity_Export_Content% + .endif + .endif + </%mdde_NamedObject_XmlElementName%> 1651670451 WesselsH1 diff --git a/decomposed/extensions/MDDE_LDM/Profile/EntityAttribute/Templates/mdde_EntityAttribute_XmlExport_Template.xml b/decomposed/extensions/MDDE_LDM/Profile/EntityAttribute/Templates/mdde_EntityAttribute_XmlExport_Template.xml index 774163c..7d7f0be 100644 --- a/decomposed/extensions/MDDE_LDM/Profile/EntityAttribute/Templates/mdde_EntityAttribute_XmlExport_Template.xml +++ b/decomposed/extensions/MDDE_LDM/Profile/EntityAttribute/Templates/mdde_EntityAttribute_XmlExport_Template.xml @@ -28,6 +28,13 @@ .if (%mdde_NamedObject_XmlElementExport_Template%) \n %mdde_NamedObject_XmlElementExport_Template% .endif(\n) +.comment Add the content of the export extension template +.if (%Model.mdde_Export_Extension_Attached%) + .if(%.D:mddex_EntityAttribute_Export_Content%) +%.D:mddex_EntityAttribute_Export_Content% + .endif +.endif + </%mdde_NamedObject_XmlElementName%> 1651670975 WesselsH1 diff --git a/decomposed/extensions/MDDE_LDM/Profile/Model/Extended_Attributes/Extended_Attributes.xml b/decomposed/extensions/MDDE_LDM/Profile/Model/Extended_Attributes/Extended_Attributes.xml new file mode 100644 index 0000000..1810eca --- /dev/null +++ b/decomposed/extensions/MDDE_LDM/Profile/Model/Extended_Attributes/Extended_Attributes.xml @@ -0,0 +1,12 @@ + +ExtendedAttributeTargetItem +1E094FE4-6BB9-48B7-BD1F-50F4079BF878 +Extended Attributes +1701429225 +WillemOtten +1 + + + + + \ No newline at end of file diff --git a/decomposed/extensions/MDDE_LDM/Profile/Model/Extended_Attributes/mdde_export_extension_attached.xml b/decomposed/extensions/MDDE_LDM/Profile/Model/Extended_Attributes/mdde_export_extension_attached.xml new file mode 100644 index 0000000..9109bad --- /dev/null +++ b/decomposed/extensions/MDDE_LDM/Profile/Model/Extended_Attributes/mdde_export_extension_attached.xml @@ -0,0 +1,17 @@ + +FD029C97-577C-44C5-A0C5-BFB158940D76 +mdde_Export_Extension_Attached +1701429225 +WillemOtten +Checks if the MDDE LDM Export extension is attached to the model +1 +1 +RO +Function %Get%(obj) + %Get% = False + 'Find the export extension + Dim extensionObject: Set extensionObject = obj.FindChildByCode ("MDDE_LDM_Export_Extension", Cls_ExtendedModelDefinition, "", Nothing, True, True) + %Get% = Not extensionObject is Nothing +End Function +Indicator for export extension + \ No newline at end of file diff --git a/decomposed/extensions/MDDE_LDM/Profile/Model/Extended_Attributes/mdde_export_extension_initialization_successful.xml b/decomposed/extensions/MDDE_LDM/Profile/Model/Extended_Attributes/mdde_export_extension_initialization_successful.xml new file mode 100644 index 0000000..a8d8c46 --- /dev/null +++ b/decomposed/extensions/MDDE_LDM/Profile/Model/Extended_Attributes/mdde_export_extension_initialization_successful.xml @@ -0,0 +1,10 @@ + +3CB69645-4260-4DBC-A602-0536A9D4E6B3 +mdde_Export_Extension_Initialization_Successful +1701438410 +WillemOtten +Used to check if the export initialization was successful +1 +MDDE Export extension initialized successful +0 + \ No newline at end of file diff --git a/decomposed/extensions/MDDE_LDM/Profile/Model/Menus/mdde_Model_ContextMenu.xml b/decomposed/extensions/MDDE_LDM/Profile/Model/Menus/mdde_Model_ContextMenu.xml index 0db6ea4..fda9400 100644 --- a/decomposed/extensions/MDDE_LDM/Profile/Model/Menus/mdde_Model_ContextMenu.xml +++ b/decomposed/extensions/MDDE_LDM/Profile/Model/Menus/mdde_Model_ContextMenu.xml @@ -7,6 +7,7 @@ <Command Name="mdde_ExportXml" Caption="Export XML (MDDE)" /> <Command Name="mdde_Decompose" Caption="Decompose (MDDE)" /> <Command Name="mdde_UpdateDiagramPreferences" Caption="Update Diagram Preferences (MDDE)" /> + <Command Name="mdde_InitializeExportExtension" Caption="Initialize Export Extension (MDDE)" /> </Popup> </Menu> diff --git a/decomposed/extensions/MDDE_LDM/Profile/Model/Methods/Methods.xml b/decomposed/extensions/MDDE_LDM/Profile/Model/Methods/Methods.xml index 3ef9c6d..c01d75f 100644 --- a/decomposed/extensions/MDDE_LDM/Profile/Model/Methods/Methods.xml +++ b/decomposed/extensions/MDDE_LDM/Profile/Model/Methods/Methods.xml @@ -10,5 +10,6 @@ + \ No newline at end of file diff --git a/decomposed/extensions/MDDE_LDM/Profile/Model/Methods/mdde_ExportXml.xml b/decomposed/extensions/MDDE_LDM/Profile/Model/Methods/mdde_ExportXml.xml index 8ea1655..52165b7 100644 --- a/decomposed/extensions/MDDE_LDM/Profile/Model/Methods/mdde_ExportXml.xml +++ b/decomposed/extensions/MDDE_LDM/Profile/Model/Methods/mdde_ExportXml.xml @@ -17,6 +17,19 @@ Dim strModelFolderLocaton : strModelFolderLocaton = objFileSystem.GetParentFolderName(obj.Filename) & "\" & objFileSystem.GetBaseName(obj.Filename) WriteDebug "Model folder location: " & strModelFolderLocaton + ' Check if there is a MDDE Export extension enabled and invoke the initializer + If obj.getExtendedAttribute(cMDDE_EXT_CODE &".mdde_Export_Extension_Attached") Then + WriteInfo "MDDE LDM Export extension found, start initializion" + obj.ExecuteCustomMethod cMDDE_EXT_CODE & ".mdde_InitializeExportExtension" + Dim exportInitializationSuccess: exportInitializationSuccess = obj.getExtendedAttribute (cMDDE_EXT_CODE & "." & cMDDE_EXPORT_EXTENSION_INITIALIZATION_INDICATOR) + If exportInitializationSuccess Then + WriteInfo "MDDE LDM Export extension initializion successful" + Else + WriteError "MDDE LDM Export extension initializion failed" + Exit Sub + End If + End If + ' Update the generation path so the XML export is written to the same folder as the decomposed model. obj.GetPackageOptions().GenerationPath = Replace(strModelFolderLocaton, cMDDE_PDC_COMPOSED_FOLDER, cMDDE_PDC_DECOMPOSED_FOLDER) @@ -34,5 +47,7 @@ ' Revert the generation path to the original value. obj.GetPackageOptions().GenerationPath = strGenerationPath -End Sub +End Sub + + \ No newline at end of file diff --git a/decomposed/extensions/MDDE_LDM/Profile/Model/Methods/mdde_InitializeExportExtension.xml b/decomposed/extensions/MDDE_LDM/Profile/Model/Methods/mdde_InitializeExportExtension.xml new file mode 100644 index 0000000..9505857 --- /dev/null +++ b/decomposed/extensions/MDDE_LDM/Profile/Model/Methods/mdde_InitializeExportExtension.xml @@ -0,0 +1,143 @@ + +A2DF8843-2E87-46FC-9263-927B3E02D9E8 +mdde_InitializeExportExtension +1701423896 +WillemOtten +This method is included in the extension to load the contents of templates that are defined in the optionally attached export extension. +Since it is not possible to directly access the GTL templates in another extension via GTL, the contents of these templates is loaded in local extended attributes so it can be included in the XML export +1 +Sub %Method%(obj) + + WriteInfo "MDDE LDM Export extension initializion started" + + + Dim errorsFound: errorsFound = False + Dim templateAppliedWithoutErrors: templateAppliedWithoutErrors = False + Dim childPackagesProcessedWithoutErrors: childPackagesProcessedWithoutErrors = False + + 'Set the mddex contents attribute on model + templateAppliedWithoutErrors = applyTemplateOnObject (obj, obj, "mddex_Model_Export_Template", "mddex_Model_Export_Content") + If templateAppliedWithoutErrors = False Then + errorsFound = True + End If + + templateAppliedWithoutErrors = applyTemplateOnObject (obj, obj, cMDDE_NAMEDOBJECT_ATTRIBUTE_EXPORT_TEMPLATE_NAME, cMDDE_NAMEDOBJECT_ATTRIBUTE_EXPORT_ATTRIBUTE_NAME) + If templateAppliedWithoutErrors = False Then + errorsFound = True + End If + + 'Process all child objects recursively in all packages + childPackagesProcessedWithoutErrors = processPackage (obj, obj) + If childPackagesProcessedWithoutErrors = False Then + errorsFound = True + End If + + WriteInfo "MDDE LDM Export extension initializion finished" + + 'Set initialization indicator to true + If errorsFound = True Then + Msgbox "There where errors processing the MDDE LDM Export extension, consult the script output window for more information." + Else + obj.setExtendedAttribute cMDDE_EXT_CODE & "." & cMDDE_EXPORT_EXTENSION_INITIALIZATION_INDICATOR, True + End If +End Sub + +' Check if the GTL output contains errors +Function GTLOutputHasErrors(GTLResult) + GTLOutputHasErrors = False + If InStr(GTLResult, cMDDE_EXPORT_EXTENSION_CODE & "::Profile") Then + GTLOutputHasErrors = True + End If +End Function + +Function processPackage(objModel, objPackage) + + Dim collectionProcessedWithoutErrors, childPackagesProcessedWithoutErrors + processPackage = True + collectionProcessedWithoutErrors = False + childPackagesProcessedWithoutErrors = False + + 'Loop over Entities + collectionProcessedWithoutErrors = applyTemplateOnCollection(objModel, objPackage.Entities, "mddex_Entity_Export_Template", "mddex_Entity_Export_Content", True) + If collectionProcessedWithoutErrors = False Then + processPackage = False + End If + + 'Loop over Entity Attributes + collectionProcessedWithoutErrors = applyTemplateOnCollection(objModel, objPackage.EntityAttributes, "mddex_EntityAttribute_Export_Template", "mddex_EntityAttribute_Export_Content", True) + If collectionProcessedWithoutErrors = False Then + processPackage = False + End If + + 'Loop over Mappings + collectionProcessedWithoutErrors = applyTemplateOnCollection(objModel, objPackage.Mappings, "mddex_BaseClassifierMapping_Export_Template", "mddex_BaseClassifierMapping_Export_Content", True) + If collectionProcessedWithoutErrors = False Then + processPackage = False + End If + + 'Loop over AttributeMappings + collectionProcessedWithoutErrors = applyTemplateOnCollection(objModel, objPackage.ModelEntityAttributeMappings, "mddex_BaseStructuralFeatureMapping_Export_Template", "mddex_BaseStructuralFeatureMapping_Export_Content", False) + If collectionProcessedWithoutErrors = False Then + processPackage = False + End If + + 'Loop over packages + Dim childPackage + For Each childPackage in objPackage.Packages + childPackagesProcessedWithoutErrors = processPackage (objModel, childPackage) + If childPackagesProcessedWithoutErrors = False Then + processPackage = False + End If + Next + +End Function + +'Apply template on object and check for translation errors +Function applyTemplateOnObject(objModel, objItem, templateName, extendedAttributeName) + 'Process the object specific template + Dim evaluatedTemplate: evaluatedTemplate = objItem.EvaluateTemplateFor(templateName, cMDDE_EXPORT_EXTENSION_CODE) + applyTemplateOnObject = True + 'Clear the extended attribute if it is set + If objItem.getExtendedAttributeText(extendedAttributeName) <> "" Then + objItem.setExtendedAttribute extendedAttributeName, Nothing + End If + + ' Only set the extended attribute if the template evaluation gave a non-empty result + If Not evaluatedTemplate = empty And Not evaluatedTemplate = "" Then + objItem.setExtendedAttribute extendedAttributeName, evaluatedTemplate + If GTLOutputHasErrors(objItem.getExtendedAttribute(extendedAttributeName)) Then + WriteError ("Error parsing template " & templateName & " for " & objItem.Code) + 'Set success indicator to false + objModel.setExtendedAttribute cMDDE_EXT_CODE & "." & cMDDE_EXPORT_EXTENSION_INITIALIZATION_INDICATOR, False + applyTemplateOnObject = False + End If + End If + +End Function + + +Function applyTemplateOnCollection(objModel, objCollection, templateName, extendedAttributeName, applyNamedObjectTemplate) + Dim obj, metaClassTemplateAppliedWithoutErrors, namedObjectTemplateAppliedWithoutErrors + 'Set default template and attribute that apply to all object types + Dim attributeTemplateName: attributeTemplateName = "mddex_NamedObject_Attributes_Export_Template" + Dim attributeExtendedAttributeName: attributeExtendedAttributeName = "mddex_NamedObject_Attributes_Export_Content" + + applyTemplateOnCollection = True + metaClassTemplateAppliedWithoutErrors = True + namedObjectTemplateAppliedWithoutErrors = True + 'Loop over collection and set the extended attribute based on the export template + 'If specified, also apply the namedobject template for adding custom attributes to the element + For Each obj in objCollection + If Not obj.IsShortCut Then + metaClassTemplateAppliedWithoutErrors = applyTemplateOnObject (objModel, obj, templateName, extendedAttributeName) + If applyNamedObjectTemplate Then + namedObjectTemplateAppliedWithoutErrors = applyTemplateOnObject (objModel, obj, attributeTemplateName, attributeExtendedAttributeName) + End If + If metaClassTemplateAppliedWithoutErrors = False Or namedObjectTemplateAppliedWithoutErrors = False Then + applyTemplateOnCollection = False + End If + End If + Next +End Function + + \ No newline at end of file diff --git a/decomposed/extensions/MDDE_LDM/Profile/Model/Model.xml b/decomposed/extensions/MDDE_LDM/Profile/Model/Model.xml index 5937a21..e02425f 100644 --- a/decomposed/extensions/MDDE_LDM/Profile/Model/Model.xml +++ b/decomposed/extensions/MDDE_LDM/Profile/Model/Model.xml @@ -10,5 +10,6 @@ + \ No newline at end of file diff --git a/decomposed/extensions/MDDE_LDM/Profile/Model/Templates/mdde_Model_XmlExport_Template.xml b/decomposed/extensions/MDDE_LDM/Profile/Model/Templates/mdde_Model_XmlExport_Template.xml index 2d60fb7..02174cf 100644 --- a/decomposed/extensions/MDDE_LDM/Profile/Model/Templates/mdde_Model_XmlExport_Template.xml +++ b/decomposed/extensions/MDDE_LDM/Profile/Model/Templates/mdde_Model_XmlExport_Template.xml @@ -16,6 +16,13 @@ .comment Include the package contents (a model is also a package). %mdde_BasePackage_XmlExport_Template% + .comment Add the content of the export extension template + .if (%mdde_Export_Extension_Attached%) + .if(%.D:mddex_Model_Export_Content%) +%.D:mddex_Model_Export_Content% + .endif + .endif() + </Model> 1651665197 WesselsH1 diff --git a/decomposed/extensions/MDDE_LDM/Profile/NamedObject/Templates/mdde_NamedObject_XmlAttributeExport_Template.xml b/decomposed/extensions/MDDE_LDM/Profile/NamedObject/Templates/mdde_NamedObject_XmlAttributeExport_Template.xml index 1dbcac1..dd1a5cd 100644 --- a/decomposed/extensions/MDDE_LDM/Profile/NamedObject/Templates/mdde_NamedObject_XmlAttributeExport_Template.xml +++ b/decomposed/extensions/MDDE_LDM/Profile/NamedObject/Templates/mdde_NamedObject_XmlAttributeExport_Template.xml @@ -4,7 +4,14 @@ Id="%ObjectID%" Code="%Code%" Name="%Name%" .if (%Stereotype%) Stereotype="%Stereotype%" -.endif +.endif +.comment Add the content of the export extension template +.if (%Model.mdde_Export_Extension_Attached%) + .if(%.D:mddex_NamedObject_Attributes_Export_Content%) +%.D:mddex_NamedObject_Attributes_Export_Content% + .endif +.endif + 1651665197 WesselsH1 1 diff --git a/decomposed/extensions/MDDE_LDM_Export_Extension/ExtendedModelDefinition/a_CheckGlobalScript.xml b/decomposed/extensions/MDDE_LDM_Export_Extension/ExtendedModelDefinition/a_CheckGlobalScript.xml new file mode 100644 index 0000000..b169ca3 --- /dev/null +++ b/decomposed/extensions/MDDE_LDM_Export_Extension/ExtendedModelDefinition/a_CheckGlobalScript.xml @@ -0,0 +1,8 @@ +'****************************************************************************** +'* Purpose: This script holds global definitions shared by all the custom- +'* checks scripts of the model extension. +'****************************************************************************** + +Option Explicit ' This is to ensure all used variables are defined + + \ No newline at end of file diff --git a/decomposed/extensions/MDDE_LDM_Export_Extension/Generation.xml b/decomposed/extensions/MDDE_LDM_Export_Extension/Generation.xml new file mode 100644 index 0000000..5916244 --- /dev/null +++ b/decomposed/extensions/MDDE_LDM_Export_Extension/Generation.xml @@ -0,0 +1,6 @@ + +4FA71D60-5526-4E0B-BFD7-8DD3DC0F71CE +Generation +1700834012 +WillemOtten + \ No newline at end of file diff --git a/decomposed/extensions/MDDE_LDM_Export_Extension/MDDE_LDM_Export_Extension.xem b/decomposed/extensions/MDDE_LDM_Export_Extension/MDDE_LDM_Export_Extension.xem new file mode 100644 index 0000000..39224d1 --- /dev/null +++ b/decomposed/extensions/MDDE_LDM_Export_Extension/MDDE_LDM_Export_Extension.xem @@ -0,0 +1,20 @@ + + + + + + + +0297A8FE-93C4-4612-A9E0-CD7292BFF652 +Model Driven Data Engineering - Export Extension (MDDE) +MDDE_LDM_Export_Extension +1700834012 +WillemOtten + + + + + + + + \ No newline at end of file diff --git a/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/BaseClassifierMapping/BaseClassifierMapping.xml b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/BaseClassifierMapping/BaseClassifierMapping.xml new file mode 100644 index 0000000..8f23072 --- /dev/null +++ b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/BaseClassifierMapping/BaseClassifierMapping.xml @@ -0,0 +1,11 @@ + +9C88FE62-2B4E-49ED-85B3-2829ECE34E5C +BaseClassifierMapping +1700834168 +WillemOtten +1 + + + + + \ No newline at end of file diff --git a/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/BaseClassifierMapping/Extended_Attributes/Extended_Attributes.xml b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/BaseClassifierMapping/Extended_Attributes/Extended_Attributes.xml new file mode 100644 index 0000000..58795de --- /dev/null +++ b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/BaseClassifierMapping/Extended_Attributes/Extended_Attributes.xml @@ -0,0 +1,11 @@ + +ExtendedAttributeTargetItem +9969E47E-27FC-4049-8DE7-249134A328AC +Extended Attributes +1701335822 +WillemOtten +1 + + + + \ No newline at end of file diff --git a/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/BaseClassifierMapping/Extended_Attributes/mddex_BaseClassifierMapping_Export_Content.xml b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/BaseClassifierMapping/Extended_Attributes/mddex_BaseClassifierMapping_Export_Content.xml new file mode 100644 index 0000000..c227e9e --- /dev/null +++ b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/BaseClassifierMapping/Extended_Attributes/mddex_BaseClassifierMapping_Export_Content.xml @@ -0,0 +1,11 @@ + +FF922AC7-4822-4F26-9CF4-5B7E939D01E0 +mddex_BaseClassifierMapping_Export_Content +1701335822 +WillemOtten +During XML export this property is set using the mddex template +1 +14 +Placeholder for content of export extension +0 + \ No newline at end of file diff --git a/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/BaseClassifierMapping/Templates/Templates.xml b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/BaseClassifierMapping/Templates/Templates.xml new file mode 100644 index 0000000..22708e8 --- /dev/null +++ b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/BaseClassifierMapping/Templates/Templates.xml @@ -0,0 +1,11 @@ + +TemplateTargetItem +B03DD71D-330D-4741-9D82-2224999C7BA6 +Templates +1700834322 +WillemOtten +1 + + + + \ No newline at end of file diff --git a/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/BaseClassifierMapping/Templates/mddex_BaseClassifierMapping_Export_Template.xml b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/BaseClassifierMapping/Templates/mddex_BaseClassifierMapping_Export_Template.xml new file mode 100644 index 0000000..2f602d6 --- /dev/null +++ b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/BaseClassifierMapping/Templates/mddex_BaseClassifierMapping_Export_Template.xml @@ -0,0 +1,8 @@ + +15B4C6C1-C042-4830-A532-C8E1DFE7F2E9 +mddex_BaseClassifierMapping_Export_Template +1700834322 +WillemOtten +Use to extend the MDDE xml export with project specific content on base classifier mapping level +1 + \ No newline at end of file diff --git a/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/BaseStructuralFeatureMapping/BaseStructuralFeatureMapping.xml b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/BaseStructuralFeatureMapping/BaseStructuralFeatureMapping.xml new file mode 100644 index 0000000..ac7bbf7 --- /dev/null +++ b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/BaseStructuralFeatureMapping/BaseStructuralFeatureMapping.xml @@ -0,0 +1,11 @@ + +3A08564E-D639-4D55-ADC9-7B66E78DAB87 +BaseStructuralFeatureMapping +1700834168 +WillemOtten +1 + + + + + \ No newline at end of file diff --git a/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/BaseStructuralFeatureMapping/Extended_Attributes/Extended_Attributes.xml b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/BaseStructuralFeatureMapping/Extended_Attributes/Extended_Attributes.xml new file mode 100644 index 0000000..d254ab5 --- /dev/null +++ b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/BaseStructuralFeatureMapping/Extended_Attributes/Extended_Attributes.xml @@ -0,0 +1,11 @@ + +ExtendedAttributeTargetItem +0790F7C7-94F5-493B-8559-C626B51683A3 +Extended Attributes +1701335822 +WillemOtten +1 + + + + \ No newline at end of file diff --git a/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/BaseStructuralFeatureMapping/Extended_Attributes/mddex_BaseStructuralFeatureMapping_Export_Content.xml b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/BaseStructuralFeatureMapping/Extended_Attributes/mddex_BaseStructuralFeatureMapping_Export_Content.xml new file mode 100644 index 0000000..61b14cf --- /dev/null +++ b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/BaseStructuralFeatureMapping/Extended_Attributes/mddex_BaseStructuralFeatureMapping_Export_Content.xml @@ -0,0 +1,11 @@ + +9C5FF090-F453-401C-91AA-1A8E5476668A +mddex_BaseStructuralFeatureMapping_Export_Content +1701335822 +WillemOtten +During XML export this property is set using the mddex template +1 +14 +Placeholder for content of export extension +0 + \ No newline at end of file diff --git a/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/BaseStructuralFeatureMapping/Templates/Templates.xml b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/BaseStructuralFeatureMapping/Templates/Templates.xml new file mode 100644 index 0000000..09b68c4 --- /dev/null +++ b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/BaseStructuralFeatureMapping/Templates/Templates.xml @@ -0,0 +1,11 @@ + +TemplateTargetItem +5CFE6EB6-9179-4EFA-82FA-EA0DFE5DE31C +Templates +1700834322 +WillemOtten +1 + + + + \ No newline at end of file diff --git a/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/BaseStructuralFeatureMapping/Templates/mddex_BaseStructuralFeatureMapping_Export_Template.xml b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/BaseStructuralFeatureMapping/Templates/mddex_BaseStructuralFeatureMapping_Export_Template.xml new file mode 100644 index 0000000..3d0efb7 --- /dev/null +++ b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/BaseStructuralFeatureMapping/Templates/mddex_BaseStructuralFeatureMapping_Export_Template.xml @@ -0,0 +1,8 @@ + +51BEB14F-7F2F-498C-9F2C-4C4A0B0106AE +mddex_BaseStructuralFeatureMapping_Export_Template +1700834322 +WillemOtten +Use to extend the MDDE xml export with project specific content on base structural feature mapping level +1 + \ No newline at end of file diff --git a/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/Entity/Entity.xml b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/Entity/Entity.xml new file mode 100644 index 0000000..3db1dbd --- /dev/null +++ b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/Entity/Entity.xml @@ -0,0 +1,11 @@ + +EEE50520-D725-4237-88DF-B939334270C4 +Entity +1700834168 +WillemOtten +1 + + + + + \ No newline at end of file diff --git a/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/Entity/Extended_Attributes/Extended_Attributes.xml b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/Entity/Extended_Attributes/Extended_Attributes.xml new file mode 100644 index 0000000..df54bbb --- /dev/null +++ b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/Entity/Extended_Attributes/Extended_Attributes.xml @@ -0,0 +1,11 @@ + +ExtendedAttributeTargetItem +5C68EFAE-4B27-4732-AC67-56F043D354D2 +Extended Attributes +1701336008 +WillemOtten +1 + + + + \ No newline at end of file diff --git a/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/Entity/Extended_Attributes/mddex_Entity_Export_Content.xml b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/Entity/Extended_Attributes/mddex_Entity_Export_Content.xml new file mode 100644 index 0000000..947f90c --- /dev/null +++ b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/Entity/Extended_Attributes/mddex_Entity_Export_Content.xml @@ -0,0 +1,11 @@ + +BE48A5A3-4D25-4C3B-A44C-D2DB83835A79 +mddex_Entity_Export_Content +1701336008 +WillemOtten +During XML export this property is set using the mddex template +1 +14 +Placeholder for content of export extension +0 + \ No newline at end of file diff --git a/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/Entity/Templates/Templates.xml b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/Entity/Templates/Templates.xml new file mode 100644 index 0000000..cf07f67 --- /dev/null +++ b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/Entity/Templates/Templates.xml @@ -0,0 +1,11 @@ + +TemplateTargetItem +23CAA5CC-06A1-4B13-A885-1DA7A569627A +Templates +1700834168 +WillemOtten +1 + + + + \ No newline at end of file diff --git a/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/Entity/Templates/mddex_Entity_Export_Template.xml b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/Entity/Templates/mddex_Entity_Export_Template.xml new file mode 100644 index 0000000..4122bd0 --- /dev/null +++ b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/Entity/Templates/mddex_Entity_Export_Template.xml @@ -0,0 +1,8 @@ + +A467E434-E3A6-4EDB-8A1A-19B5BF247596 +mddex_Entity_Export_Template +1700834168 +WillemOtten +Use to extend the MDDE xml export with project specific content on entity level +1 + \ No newline at end of file diff --git a/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/EntityAttribute/EntityAttribute.xml b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/EntityAttribute/EntityAttribute.xml new file mode 100644 index 0000000..ad63e3e --- /dev/null +++ b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/EntityAttribute/EntityAttribute.xml @@ -0,0 +1,11 @@ + +390AC3C0-CF7F-4236-8376-8E940267EA27 +EntityAttribute +1700834168 +WillemOtten +1 + + + + + \ No newline at end of file diff --git a/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/EntityAttribute/Extended_Attributes/Extended_Attributes.xml b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/EntityAttribute/Extended_Attributes/Extended_Attributes.xml new file mode 100644 index 0000000..b49885f --- /dev/null +++ b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/EntityAttribute/Extended_Attributes/Extended_Attributes.xml @@ -0,0 +1,11 @@ + +ExtendedAttributeTargetItem +FC1E1274-7FE1-44FD-86B3-9587653E6368 +Extended Attributes +1701336008 +WillemOtten +1 + + + + \ No newline at end of file diff --git a/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/EntityAttribute/Extended_Attributes/mddex_EntityAttribute_Export_Content.xml b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/EntityAttribute/Extended_Attributes/mddex_EntityAttribute_Export_Content.xml new file mode 100644 index 0000000..3723516 --- /dev/null +++ b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/EntityAttribute/Extended_Attributes/mddex_EntityAttribute_Export_Content.xml @@ -0,0 +1,11 @@ + +0BC22785-3055-4C18-B2AF-0CC8A7A944B8 +mddex_EntityAttribute_Export_Content +1701336008 +WillemOtten +During XML export this property is set using the mddex template +1 +14 +Placeholder for content of export extension +0 + \ No newline at end of file diff --git a/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/EntityAttribute/Templates/Templates.xml b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/EntityAttribute/Templates/Templates.xml new file mode 100644 index 0000000..900ec13 --- /dev/null +++ b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/EntityAttribute/Templates/Templates.xml @@ -0,0 +1,11 @@ + +TemplateTargetItem +984B905B-EB16-4034-B7C8-021AB242898F +Templates +1700834322 +WillemOtten +1 + + + + \ No newline at end of file diff --git a/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/EntityAttribute/Templates/mddex_EntityAttribute_Export_Template.xml b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/EntityAttribute/Templates/mddex_EntityAttribute_Export_Template.xml new file mode 100644 index 0000000..4873a36 --- /dev/null +++ b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/EntityAttribute/Templates/mddex_EntityAttribute_Export_Template.xml @@ -0,0 +1,8 @@ + +FE369860-783C-4A5E-895B-95D148643F78 +mddex_EntityAttribute_Export_Template +1700834322 +WillemOtten +Use to extend the MDDE xml export with project specific content on entityAttribute level +1 + \ No newline at end of file diff --git a/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/Model/Extended_Attributes/Extended_Attributes.xml b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/Model/Extended_Attributes/Extended_Attributes.xml new file mode 100644 index 0000000..73748ba --- /dev/null +++ b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/Model/Extended_Attributes/Extended_Attributes.xml @@ -0,0 +1,11 @@ + +ExtendedAttributeTargetItem +A06203DF-21BC-4671-A907-547A87116108 +Extended Attributes +1701336326 +WillemOtten +1 + + + + \ No newline at end of file diff --git a/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/Model/Extended_Attributes/mddex_Model_Export_Content.xml b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/Model/Extended_Attributes/mddex_Model_Export_Content.xml new file mode 100644 index 0000000..fe779a8 --- /dev/null +++ b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/Model/Extended_Attributes/mddex_Model_Export_Content.xml @@ -0,0 +1,11 @@ + +AB204437-943D-4423-B8E6-E31186F8B700 +mddex_Model_Export_Content +1701336326 +WillemOtten +During XML export this property is set using the mddex template +1 +14 +Placeholder for content of export extension +0 + \ No newline at end of file diff --git a/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/Model/Model.xml b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/Model/Model.xml new file mode 100644 index 0000000..cf5e57d --- /dev/null +++ b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/Model/Model.xml @@ -0,0 +1,11 @@ + +85691C19-708A-4B52-AD52-D5EC7583052A +Model +1700834168 +WillemOtten +1 + + + + + \ No newline at end of file diff --git a/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/Model/Templates/Templates.xml b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/Model/Templates/Templates.xml new file mode 100644 index 0000000..0ddb06f --- /dev/null +++ b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/Model/Templates/Templates.xml @@ -0,0 +1,11 @@ + +TemplateTargetItem +A576B8C7-CD90-4385-8769-3D0066253A76 +Templates +1700834168 +WillemOtten +1 + + + + \ No newline at end of file diff --git a/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/Model/Templates/mddex_Model_Export_Template.xml b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/Model/Templates/mddex_Model_Export_Template.xml new file mode 100644 index 0000000..eb54805 --- /dev/null +++ b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/Model/Templates/mddex_Model_Export_Template.xml @@ -0,0 +1,8 @@ + +EAF4A3B4-0376-46C8-981B-9D4E9EFB9DE4 +mddex_Model_Export_Template +1700834168 +WillemOtten +Use to extend the MDDE xml export with project specific content on model level +1 + \ No newline at end of file diff --git a/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/NamedObject/Extended_Attributes/Extended_Attributes.xml b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/NamedObject/Extended_Attributes/Extended_Attributes.xml new file mode 100644 index 0000000..2e3f758 --- /dev/null +++ b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/NamedObject/Extended_Attributes/Extended_Attributes.xml @@ -0,0 +1,11 @@ + +ExtendedAttributeTargetItem +3F846174-6D7A-4F57-A4A6-FAA31EED85CD +Extended Attributes +1701336326 +WillemOtten +1 + + + + \ No newline at end of file diff --git a/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/NamedObject/Extended_Attributes/mddex_NamedObject_Attributes_Export_Content.xml b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/NamedObject/Extended_Attributes/mddex_NamedObject_Attributes_Export_Content.xml new file mode 100644 index 0000000..23539ac --- /dev/null +++ b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/NamedObject/Extended_Attributes/mddex_NamedObject_Attributes_Export_Content.xml @@ -0,0 +1,11 @@ + +182092E9-DA0B-4BBA-822C-54EFBBF37E3E +mddex_NamedObject_Attributes_Export_Content +1701336326 +WillemOtten +During XML export this property is set using the mddex template +1 +14 +Placeholder for XML element attribute content of export extension +0 + \ No newline at end of file diff --git a/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/NamedObject/NamedObject.xml b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/NamedObject/NamedObject.xml new file mode 100644 index 0000000..6d24144 --- /dev/null +++ b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/NamedObject/NamedObject.xml @@ -0,0 +1,11 @@ + +F32DA8C2-6846-4E3C-A663-11E610FD85AA +NamedObject +1700834168 +WillemOtten +1 + + + + + \ No newline at end of file diff --git a/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/NamedObject/Templates/Templates.xml b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/NamedObject/Templates/Templates.xml new file mode 100644 index 0000000..ec10135 --- /dev/null +++ b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/NamedObject/Templates/Templates.xml @@ -0,0 +1,11 @@ + +TemplateTargetItem +757823F3-0D0F-473A-ABE5-B62A351E611A +Templates +1700834322 +WillemOtten +1 + + + + \ No newline at end of file diff --git a/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/NamedObject/Templates/mddex_NamedObject_Attributes_Export_Template.xml b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/NamedObject/Templates/mddex_NamedObject_Attributes_Export_Template.xml new file mode 100644 index 0000000..c36a396 --- /dev/null +++ b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/NamedObject/Templates/mddex_NamedObject_Attributes_Export_Template.xml @@ -0,0 +1,8 @@ + +EB69897C-BC9E-4C68-A6B1-EEF079BA4205 +mddex_NamedObject_Attributes_Export_Template +1700834322 +WillemOtten +Use to extend the MDDE xml export with project specific attributes on named object level. Use filtering to add attributes to a specific metaclass subtype of NamedObject +1 + \ No newline at end of file diff --git a/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/Profile.xml b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/Profile.xml new file mode 100644 index 0000000..90983b9 --- /dev/null +++ b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/Profile.xml @@ -0,0 +1,16 @@ + +624C3F32-CF52-4178-A418-D1DBE96EEF98 +Profile +1700834012 +WillemOtten +1 + + + + + + + + + + \ No newline at end of file diff --git a/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/Shared.xml b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/Shared.xml new file mode 100644 index 0000000..6e9260c --- /dev/null +++ b/decomposed/extensions/MDDE_LDM_Export_Extension/Profile/Shared.xml @@ -0,0 +1,8 @@ + +6CBC4CE3-4D7E-4AD3-847D-A641A66DDD50 +Shared +Shared +1700834012 +WillemOtten +1 + \ No newline at end of file diff --git a/decomposed/models/ExampleBusinessConcepts/Entities/BUSINESSRELATION.xml b/decomposed/models/ExampleBusinessConcepts/Entities/BUSINESSRELATION.xml deleted file mode 100644 index 2becfc5..0000000 --- a/decomposed/models/ExampleBusinessConcepts/Entities/BUSINESSRELATION.xml +++ /dev/null @@ -1,8 +0,0 @@ - -FE814A09-B413-46E6-B862-8D9334562194 -BusinessRelation -BUSINESSRELATION -1701947720 -WillemOtten -Party we do business with - \ No newline at end of file diff --git a/decomposed/models/ExampleBusinessConcepts/Entities/BUSINESSTRANSACTION.xml b/decomposed/models/ExampleBusinessConcepts/Entities/BUSINESSTRANSACTION.xml deleted file mode 100644 index a29aaa4..0000000 --- a/decomposed/models/ExampleBusinessConcepts/Entities/BUSINESSTRANSACTION.xml +++ /dev/null @@ -1,8 +0,0 @@ - -21AEC1DB-5FA1-4092-9265-A165EEB54D1F -BusinessTransaction -BUSINESSTRANSACTION -1701947722 -WillemOtten -Transaction that involves one or more business relations - \ No newline at end of file diff --git a/decomposed/models/ExampleBusinessConcepts/ExampleBusinessConcepts.ldm b/decomposed/models/ExampleBusinessConcepts/ExampleBusinessConcepts.ldm deleted file mode 100644 index 57bd390..0000000 --- a/decomposed/models/ExampleBusinessConcepts/ExampleBusinessConcepts.ldm +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - -00000000-0000-0000-0000-000000000000 - - -7FFD987F-402B-4A66-86B5-F3E8C4CF140F -ExampleBusinessConcepts -EXAMPLEBUSINESSCONCEPTS -1701947716 -WillemOtten - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/decomposed/models/ExampleBusinessConcepts/ExtendedModelDefinitions/Shortcuts/MDDE_LDM.xml b/decomposed/models/ExampleBusinessConcepts/ExtendedModelDefinitions/Shortcuts/MDDE_LDM.xml deleted file mode 100644 index 2a4b9fe..0000000 --- a/decomposed/models/ExampleBusinessConcepts/ExtendedModelDefinitions/Shortcuts/MDDE_LDM.xml +++ /dev/null @@ -1,8 +0,0 @@ - -35B0DA95-3A86-4CE4-BB2B-26185AC50B93 -Model Driven Data Engineering (MDDE) -MDDE_LDM - -1626A879-DBAC-4E54-8A36-28FCB761FF3A -186C8AC3-D3DC-11D3-881C-00508B03C75C - \ No newline at end of file diff --git a/decomposed/models/ExampleBusinessConcepts/LogicalDiagrams/EXAMPLEBUSINESSCONCEPTS/EXAMPLEBUSINESSCONCEPTS.xml b/decomposed/models/ExampleBusinessConcepts/LogicalDiagrams/EXAMPLEBUSINESSCONCEPTS/EXAMPLEBUSINESSCONCEPTS.xml deleted file mode 100644 index b28f1d4..0000000 --- a/decomposed/models/ExampleBusinessConcepts/LogicalDiagrams/EXAMPLEBUSINESSCONCEPTS/EXAMPLEBUSINESSCONCEPTS.xml +++ /dev/null @@ -1,19 +0,0 @@ - -060662FA-F03B-44CD-AE49-FAA6FFB5DFA7 -ExampleBusinessConcepts -EXAMPLEBUSINESSCONCEPTS -1701947716 -WillemOtten - -(8267, 11692) -((315,354), (433,354)) -1 -1 - - - - - - - - \ No newline at end of file diff --git a/decomposed/models/ExampleBusinessConcepts/LogicalDiagrams/EXAMPLEBUSINESSCONCEPTS/LogicalDiagram/a_DisplayPreferences.xml b/decomposed/models/ExampleBusinessConcepts/LogicalDiagrams/EXAMPLEBUSINESSCONCEPTS/LogicalDiagram/a_DisplayPreferences.xml deleted file mode 100644 index 2630492..0000000 --- a/decomposed/models/ExampleBusinessConcepts/LogicalDiagrams/EXAMPLEBUSINESSCONCEPTS/LogicalDiagram/a_DisplayPreferences.xml +++ /dev/null @@ -1,385 +0,0 @@ -[DisplayPreferences] - -[DisplayPreferences\LDM] - -[DisplayPreferences\General] -Adjust to text=Yes -Snap Grid=No -Constrain Labels=Yes -Display Grid=No -Show Page Delimiter=Yes -Show Links intersections=Yes -Activate automatic link routing=Yes -Grid size=800 -Graphic unit=2 -Window color=255 255 255 -Background image= -Background mode=8 -Watermark image= -Watermark mode=8 -Show watermark on screen=No -Gradient mode=0 -Gradient end color=255 255 255 -Show Swimlane=No -SwimlaneVert=Yes -TreeVert=No -CompDark=0 - -[DisplayPreferences\Object] -Show Icon=No -Mode=2 -Trunc Length=40 -Word Length=40 -Word Text=!"#$%&')*+,-./:;=>?@\]^_`|}~ -Shortcut IntIcon=Yes -Shortcut IntLoct=Yes -Shortcut IntFullPath=No -Shortcut IntLastPackage=Yes -Shortcut ExtIcon=Yes -Shortcut ExtLoct=No -Shortcut ExtFullPath=No -Shortcut ExtLastPackage=Yes -Shortcut ExtIncludeModl=Yes -Area.IconPicture=Yes -Area.Stereotype=Yes -Area.Comment=No -Area.TextStyle=No -Area.SubSymbols=Yes -Area_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Area Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> -EObjShowStrn=Yes -ExtendedObject.Comment=No -ExtendedObject.IconPicture=No -ExtendedObject.TextStyle=No -ExtendedObject_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Object Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> -ELnkShowStrn=Yes -ELnkShowName=Yes -ExtendedLink_SymbolLayout=<Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Source" >[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] </Form>[CRLF]</Form> -ExtDpdShowStrn=Yes -ExtendedDependency_SymbolLayout=<Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Caption="" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Source" >[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] </Form>[CRLF]</Form> -FileObject.Stereotype=No -FileObject.DisplayName=Yes -FileObject.LocationOrName=No -FileObject.IconPicture=No -FileObject.TextStyle=No -FileObject.IconMode=Yes -FileObject_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="Yes" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Location" Attribute="LocationOrName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> -Package.Stereotype=Yes -Package.Comment=No -Package.IconPicture=No -Package.TextStyle=No -Package_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> -Display Model Version=Yes -Entity.Stereotype=Yes -Entity.Attributes=Yes -Entity.Attributes._Filter="All attributes" LDMPENTALL -Entity.Attributes._Columns=Stereotype IdentifierIndicator DomainOrDataType NullIndicator -Entity.Attributes._Limit=-5 -Entity.Identifiers=Yes -Entity.Identifiers._Columns=Stereotype IdentifierIndicator -Entity.Comment=No -Entity.IconPicture=No -Entity.TextStyle=No -Entity_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardCollection Name="Attributes" Collection="Attributes" Columns="Stereotype No\r\nDisplayName Yes\r\nIdentifierIndicator No &quot;Identifier indicators&quot;\r\nDataType No\r\nDomainOrDataType No &quot;Domain or Data type&quot;\r\nDomain No\r\nNullIndicator No Mandatory" Filters="&quot;All attributes&quot; LDMPENTALL &quot;&quot;\r\n&quot;Primary attributes&quot; LDMPENTPK &quot;\&quot;PIDTF \&quot;TRUE\&quot; TRUE\&quot;&quot;\r\n&quot;Identifying attributes&quot; LDMPENTIDTF &quot;\&quot;AIDF \&quot;TRUE\&quot; TRUE\&quot;&quot;" HasLimit="Yes" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardCollection Name="Identifiers" Collection="Identifiers" Columns="Stereotype No\r\nDisplayName Yes\r\nIdentifierIndicator No &quot;Identifier indicators&quot;" HasLimit="No" HideEmpty="No" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Comment" Attribute="Comment" Prefix="" Suffix="" Alignment="LEFT" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> -Relationship.Entity1ToEntity2Role=Yes -Relationship.Entity2ToEntity1RoleCardinality=No -Relationship.Entity1ToEntity2RoleDominant=Yes -Relationship.Stereotype=Yes -Relationship.DisplayName=Yes -Relationship.JoinExpression=No -Relationship.Entity2ToEntity1Role=Yes -Relationship.Entity1ToEntity2RoleCardinality=No -Relationship.Entity2ToEntity1RoleDominant=Yes -Relationship_SymbolLayout=<Form>[CRLF] <Form Name="Source" >[CRLF] <StandardAttribute Name="Role" Attribute="Entity1ToEntity2Role" Prefix="" Suffix="" Caption="Role" Mandatory="No" />[CRLF] <StandardAttribute Name="Cardinality" Attribute="Entity2ToEntity1RoleCardinality" Prefix="" Suffix="" Caption="Cardinality" Mandatory="No" />[CRLF] <StandardAttribute Name="Dominance" Attribute="Entity1ToEntity2RoleDominant" Prefix="" Suffix="" Caption="Dominance" Mandatory="No" />[CRLF] </Form>[CRLF] <Form Name="Center" >[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Caption="" Mandatory="No" />[CRLF] <ExclusiveChoice Name="Exclusive Choice" Mandatory="No" Display="HorizontalRadios" >[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Join" Attribute="JoinExpression" Prefix="" Suffix="" Caption="Join" Mandatory="No" />[CRLF] </ExclusiveChoice>[CRLF] </Form>[CRLF] <Form Name="Destination" >[CRLF] <StandardAttribute Name="Role" Attribute="Entity2ToEntity1Role" Prefix="" Suffix="" Caption="Role" Mandatory="No" />[CRLF] <StandardAttribute Name="Cardinality" Attribute="Entity1ToEntity2RoleCardinality" Prefix="" Suffix="" Caption="Cardinality" Mandatory="No" />[CRLF] <StandardAttribute Name="Dominance" Attribute="Entity2ToEntity1RoleDominant" Prefix="" Suffix="" Caption="Dominance" Mandatory="No" />[CRLF] </Form>[CRLF]</Form> -Inheritance.Stereotype=Yes -Inheritance.DisplayName=Yes -Inheritance.IconPicture=No -Inheritance.TextStyle=No -Inheritance_SymbolLayout=<Form>[CRLF] <StandardAttribute Name="Stereotype" Attribute="Stereotype" Prefix="&lt;&lt;" Suffix="&gt;&gt;" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <StandardAttribute Name="Name" Attribute="DisplayName" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="No" />[CRLF] <Separator Name="Separator" />[CRLF] <StandardAttribute Name="Icon" Attribute="IconPicture" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF] <StandardAttribute Name="Force top align" Attribute="TextStyle" Prefix="" Suffix="" Alignment="CNTR" Caption="" Mandatory="Yes" />[CRLF]</Form> - -[DisplayPreferences\Symbol] - -[DisplayPreferences\Symbol\AREA] -STRNFont=Arial,8,N -STRNFont color=0 0 0 -DISPNAMEFont=Arial,8,N -DISPNAMEFont color=0 0 0 -LABLFont=Arial,8,N -LABLFont color=0 0 0 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Width=9600 -Height=8000 -Brush color=253 249 234 -Fill Color=Yes -Brush style=6 -Brush bitmap mode=12 -Brush gradient mode=16 -Brush gradient color=245 230 173 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 121 98 6 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\FRMEOBJ] -STRNFont=Arial,8,N -STRNFont color=0 0 0 -DISPNAMEFont=Arial,8,N -DISPNAMEFont color=0 0 0 -LABLFont=Arial,8,N -LABLFont color=0 0 0 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Width=6000 -Height=2000 -Brush color=255 255 255 -Fill Color=Yes -Brush style=6 -Brush bitmap mode=12 -Brush gradient mode=64 -Brush gradient color=192 192 192 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 255 128 128 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\FRMELNK] -CENTERFont=Arial,8,N -CENTERFont color=0 0 0 -Line style=1 -Source Arrow=24 -Center Arrow=24 -Target Arrow=7 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Brush color=255 255 255 -Fill Color=Yes -Brush style=1 -Brush bitmap mode=12 -Brush gradient mode=0 -Brush gradient color=118 118 118 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 128 128 255 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\USRDEPD] -CENTERFont=Arial,8,N -CENTERFont color=0 0 0 -Line style=1 -Source Arrow=24 -Center Arrow=24 -Target Arrow=7 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Brush color=255 255 255 -Fill Color=Yes -Brush style=1 -Brush bitmap mode=12 -Brush gradient mode=0 -Brush gradient color=118 118 118 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=2 0 128 128 255 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\FILO] -OBJSTRNFont=Arial,8,N -OBJSTRNFont color=0 0 0 -DISPNAMEFont=Arial,8,N -DISPNAMEFont color=0 0 0 -LCNMFont=Arial,8,N -LCNMFont color=0 0 0 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Width=4800 -Height=3600 -Brush color=255 255 255 -Fill Color=Yes -Brush style=1 -Brush bitmap mode=12 -Brush gradient mode=0 -Brush gradient color=118 118 118 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 0 0 255 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\LDMPCKG] -STRNFont=Arial,8,N -STRNFont color=0 0 0 -DISPNAMEFont=Arial,8,N -DISPNAMEFont color=0 0 0 -LABLFont=Arial,8,N -LABLFont color=0 0 0 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Width=4800 -Height=4000 -Brush color=255 255 192 -Fill Color=Yes -Brush style=6 -Brush bitmap mode=12 -Brush gradient mode=65 -Brush gradient color=255 255 255 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 178 178 178 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\LDMENTT] -STRNFont=Arial,8,N -STRNFont color=0 0 0 -DISPNAMEFont=Arial,8,N -DISPNAMEFont color=0 0 0 -AttributesFont=Arial,8,N -AttributesFont color=0 0 0 -EntityPrimaryAttributeFont=Arial,8,U -EntityPrimaryAttributeFont color=0 0 0 -EntityForeignAttributeFont=Arial,8,N -EntityForeignAttributeFont color=0 0 0 -IdentifiersFont=Arial,8,N -IdentifiersFont color=0 0 0 -LABLFont=Arial,8,N -LABLFont color=0 0 0 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Width=4800 -Height=4000 -Brush color=176 186 255 -Fill Color=Yes -Brush style=6 -Brush bitmap mode=12 -Brush gradient mode=65 -Brush gradient color=255 255 255 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 88 74 181 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\LDMRLSH] -SOURCEFont=Arial,8,N -SOURCEFont color=0 0 0 -CENTERFont=Arial,8,N -CENTERFont color=0 0 0 -DESTINATIONFont=Arial,8,N -DESTINATIONFont color=0 0 0 -Line style=1 -Source Arrow=24 -Center Arrow=24 -Target Arrow=24 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Brush color=255 255 255 -Fill Color=Yes -Brush style=1 -Brush bitmap mode=12 -Brush gradient mode=0 -Brush gradient color=118 118 118 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 88 74 181 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\LDMINHR] -STRNFont=Arial,8,N -STRNFont color=0 0 0 -DISPNAMEFont=Arial,8,N -DISPNAMEFont color=0 0 0 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=Yes -Width=1600 -Height=1000 -Brush color=176 186 255 -Fill Color=Yes -Brush style=6 -Brush bitmap mode=12 -Brush gradient mode=65 -Brush gradient color=255 255 255 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 128 128 255 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\LDMLINH] -CENTERFont=Arial,8,N -CENTERFont color=0 0 0 -Line style=1 -Source Arrow=24 -Center Arrow=24 -Target Arrow=24 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Brush color=255 255 255 -Fill Color=Yes -Brush style=1 -Brush bitmap mode=12 -Brush gradient mode=0 -Brush gradient color=118 118 118 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 128 128 255 -Shadow color=192 192 192 -Shadow=0 - -[DisplayPreferences\Symbol\Free Symbol] -Free TextFont=Arial,8,N -Free TextFont color=0 0 0 -Line style=0 -Source Arrow=24 -Center Arrow=24 -Target Arrow=24 -AutoAdjustToText=Yes -Keep aspect=No -Keep center=No -Keep size=No -Brush color=255 255 255 -Fill Color=Yes -Brush style=1 -Brush bitmap mode=12 -Brush gradient mode=0 -Brush gradient color=118 118 118 -Brush background image= -Custom shape= -Custom text mode=0 -Pen=1 0 0 0 255 -Shadow color=192 192 192 -Shadow=0 \ No newline at end of file diff --git a/decomposed/models/ExampleBusinessConcepts/LogicalDiagrams/EXAMPLEBUSINESSCONCEPTS/Symbols/EXAMPLEBUSINESSCONCEPTS_Entity_21AEC1DB-5FA1-4092-9265-A165EEB54D1F.xml b/decomposed/models/ExampleBusinessConcepts/LogicalDiagrams/EXAMPLEBUSINESSCONCEPTS/Symbols/EXAMPLEBUSINESSCONCEPTS_Entity_21AEC1DB-5FA1-4092-9265-A165EEB54D1F.xml deleted file mode 100644 index f926c65..0000000 --- a/decomposed/models/ExampleBusinessConcepts/LogicalDiagrams/EXAMPLEBUSINESSCONCEPTS/Symbols/EXAMPLEBUSINESSCONCEPTS_Entity_21AEC1DB-5FA1-4092-9265-A165EEB54D1F.xml +++ /dev/null @@ -1,21 +0,0 @@ - -1701947722 --1 -((-35174,22863), (-27452,26862)) -11881048 -16759472 -12632256 -STRN 0 Arial,8,N -DISPNAME 0 Arial,8,N -Attributes 0 Arial,8,N -EntityPrimaryAttribute 0 Arial,8,U -EntityForeignAttribute 0 Arial,8,N -Identifiers 0 Arial,8,N -LABL 0 Arial,8,N -6 -65 -16777215 - - - - \ No newline at end of file diff --git a/decomposed/models/ExampleBusinessConcepts/LogicalDiagrams/EXAMPLEBUSINESSCONCEPTS/Symbols/EXAMPLEBUSINESSCONCEPTS_Entity_FE814A09-B413-46E6-B862-8D9334562194.xml b/decomposed/models/ExampleBusinessConcepts/LogicalDiagrams/EXAMPLEBUSINESSCONCEPTS/Symbols/EXAMPLEBUSINESSCONCEPTS_Entity_FE814A09-B413-46E6-B862-8D9334562194.xml deleted file mode 100644 index ecc8c0e..0000000 --- a/decomposed/models/ExampleBusinessConcepts/LogicalDiagrams/EXAMPLEBUSINESSCONCEPTS/Symbols/EXAMPLEBUSINESSCONCEPTS_Entity_FE814A09-B413-46E6-B862-8D9334562194.xml +++ /dev/null @@ -1,21 +0,0 @@ - -1701947720 --1 -((-55762,22713), (-49164,26712)) -11881048 -16759472 -12632256 -STRN 0 Arial,8,N -DISPNAME 0 Arial,8,N -Attributes 0 Arial,8,N -EntityPrimaryAttribute 0 Arial,8,U -EntityForeignAttribute 0 Arial,8,N -Identifiers 0 Arial,8,N -LABL 0 Arial,8,N -6 -65 -16777215 - - - - \ No newline at end of file diff --git a/decomposed/models/ExampleBusinessConcepts/LogicalDiagrams/EXAMPLEBUSINESSCONCEPTS/Symbols/EXAMPLEBUSINESSCONCEPTS_Symbol_1EA0EFF0-9854-4C3C-9F15-A80D05F4951B.xml b/decomposed/models/ExampleBusinessConcepts/LogicalDiagrams/EXAMPLEBUSINESSCONCEPTS/Symbols/EXAMPLEBUSINESSCONCEPTS_Symbol_1EA0EFF0-9854-4C3C-9F15-A80D05F4951B.xml deleted file mode 100644 index 6eb02b0..0000000 --- a/decomposed/models/ExampleBusinessConcepts/LogicalDiagrams/EXAMPLEBUSINESSCONCEPTS/Symbols/EXAMPLEBUSINESSCONCEPTS_Symbol_1EA0EFF0-9854-4C3C-9F15-A80D05F4951B.xml +++ /dev/null @@ -1,20 +0,0 @@ - -1701947795 -((-49164,24862),(-35174,24862)) -1 -4371 -11881048 -12632256 -CENTER 0 Arial,8,N -SOURCE 0 Arial,8,N -DESTINATION 0 Arial,8,N - - - - - - - - - - \ No newline at end of file diff --git a/decomposed/models/ExampleBusinessConcepts/LogicalDiagrams/EXAMPLEBUSINESSCONCEPTS/Symbols/o5.xml b/decomposed/models/ExampleBusinessConcepts/LogicalDiagrams/EXAMPLEBUSINESSCONCEPTS/Symbols/o5.xml deleted file mode 100644 index ee1d2e3..0000000 --- a/decomposed/models/ExampleBusinessConcepts/LogicalDiagrams/EXAMPLEBUSINESSCONCEPTS/Symbols/o5.xml +++ /dev/null @@ -1,13 +0,0 @@ - -This model is included to illustrate how other, non-MDDE mappings can be used alongside MDDE mappings without conflicts. The ExampleDWH model contains a mapping to this model using a local extension that operates next to the MDDE extension. - - -1701948400 -((-61237,37050), (-27787,29925)) -4130 -0 -16711680 -16777215 -12632256 -Arial,8,N - \ No newline at end of file diff --git a/decomposed/models/ExampleBusinessConcepts/LogicalDiagrams/EXAMPLEBUSINESSCONCEPTS/Symbols/o6.xml b/decomposed/models/ExampleBusinessConcepts/LogicalDiagrams/EXAMPLEBUSINESSCONCEPTS/Symbols/o6.xml deleted file mode 100644 index 5abeb6d..0000000 --- a/decomposed/models/ExampleBusinessConcepts/LogicalDiagrams/EXAMPLEBUSINESSCONCEPTS/Symbols/o6.xml +++ /dev/null @@ -1,10 +0,0 @@ - -1701948401 -((-27787,29925), (-30562,29850)) -4130 -0 -16711680 -16777215 -12632256 -Arial,8,N - \ No newline at end of file diff --git a/decomposed/models/ExampleBusinessConcepts/Model/a_ModelOptionsText.xml b/decomposed/models/ExampleBusinessConcepts/Model/a_ModelOptionsText.xml deleted file mode 100644 index 7920712..0000000 --- a/decomposed/models/ExampleBusinessConcepts/Model/a_ModelOptionsText.xml +++ /dev/null @@ -1,388 +0,0 @@ -[ModelOptions] - -[ModelOptions\Logical options] -CaseSensitive=No -DisplayName=Yes -EnableTrans=No -UseTerm=No -EnableRequirements=No -EnableFullShortcut=Yes -SynchroCode=Yes -Notation=0 -RlshUnique=Yes -DefaultDttp= -DomnCopyDttp=Yes -DomnCopyChck=No -DomnCopyRule=No -DomnCopyExat=No -DomnCopyMand=No -DttpFullName=Yes -RlshMigrateDomain=Yes -RlshMigrateCheck=Yes -RlshMigrateRule=Yes -RlshMigrateExtd=Yes -RlshAllowInhrDivr=No -RlshAllowNN=No -RlshGenNN=Yes -FKNameTemplate=%.3:PARENT%_%ATTRIBUTE% -FKNameTemplateUsage=No -RlshAsstTmpl=Each %Entity1.Name%[CRLF].if %Entity1ToEntity2RoleMandatory%[CRLF] must[CRLF].else[CRLF] may[CRLF].endif[CRLF].if %Entity1ToEntity2Role%[CRLF] %.L:Entity1ToEntity2Role%[CRLF].else[CRLF] have[CRLF].endif[CRLF].if %Entity1ToEntity2RoleMaximumCardinality%==1[CRLF].if %Entity1ToEntity2RoleMandatory%[CRLF] one and only one[CRLF].else[CRLF] at most one[CRLF].endif[CRLF].else[CRLF] one or more[CRLF].endif[CRLF].if %Entity1%==%Entity2%[CRLF] other[CRLF].endif[CRLF] %Entity2.Name%.[CRLF]Each %Entity2.Name%[CRLF].if %Entity2ToEntity1RoleMandatory%[CRLF] must[CRLF].else[CRLF] may[CRLF].endif[CRLF].if %Entity2ToEntity1Role%[CRLF] %.L:Entity2ToEntity1Role%[CRLF].else[CRLF] have[CRLF].endif[CRLF].if %Entity2ToEntity1RoleMaximumCardinality%==1[CRLF].if %Entity2ToEntity1RoleMandatory%[CRLF] one and only one[CRLF].else[CRLF] at most one[CRLF].endif[CRLF].else[CRLF] one or more[CRLF].endif[CRLF].if %Entity1%==%Entity2%[CRLF] other[CRLF].endif[CRLF] %Entity1.Name%. -RlshAsstExt= - -[ModelOptions\Logical options\NamingOptionsTemplates] - -[ModelOptions\Logical options\ClssNamingOptions] - -[ModelOptions\Logical options\ClssNamingOptions\FILO] - -[ModelOptions\Logical options\ClssNamingOptions\FILO\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar="\/:*?<>|" -AllValid=Yes -NoAccent=No -DefaultChar=_ -Script=.convert_name(%Name%,"_") -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Logical options\ClssNamingOptions\FILO\Code] -Template= -MaxLen=254 -Case=U -ValidChar='a'-'z','A'-'Z','0'-'9',"_. " -InvldChar= -AllValid=No -NoAccent=Yes -DefaultChar=_ -Script=.convert_code(%Code%," ") -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Logical options\ClssNamingOptions\FRMEOBJ] - -[ModelOptions\Logical options\ClssNamingOptions\FRMEOBJ\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar=_ -Script=.convert_name(%Name%,"_") -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Logical options\ClssNamingOptions\FRMEOBJ\Code] -Template= -MaxLen=254 -Case=U -ValidChar='a'-'z','A'-'Z','0'-'9',"_" -InvldChar= -AllValid=No -NoAccent=Yes -DefaultChar=_ -Script=.convert_code(%Code%," ") -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Logical options\ClssNamingOptions\FRMELNK] - -[ModelOptions\Logical options\ClssNamingOptions\FRMELNK\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar=_ -Script=.convert_name(%Name%,"_") -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Logical options\ClssNamingOptions\FRMELNK\Code] -Template= -MaxLen=254 -Case=U -ValidChar='a'-'z','A'-'Z','0'-'9',"_" -InvldChar= -AllValid=No -NoAccent=Yes -DefaultChar=_ -Script=.convert_code(%Code%," ") -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Logical options\ClssNamingOptions\AREA] - -[ModelOptions\Logical options\ClssNamingOptions\AREA\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar=_ -Script=.convert_name(%Name%,"_") -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Logical options\ClssNamingOptions\AREA\Code] -Template= -MaxLen=254 -Case=U -ValidChar='a'-'z','A'-'Z','0'-'9',"_" -InvldChar= -AllValid=No -NoAccent=Yes -DefaultChar=_ -Script=.convert_code(%Code%," ") -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Logical options\ClssNamingOptions\DefaultClass] - -[ModelOptions\Logical options\ClssNamingOptions\DefaultClass\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar=_ -Script=.convert_name(%Name%,"_") -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Logical options\ClssNamingOptions\DefaultClass\Code] -Template= -MaxLen=254 -Case=U -ValidChar='a'-'z','A'-'Z','0'-'9',"_" -InvldChar= -AllValid=No -NoAccent=Yes -DefaultChar=_ -Script=.convert_code(%Code%," ") -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Logical options\ClssNamingOptions\LDMPCKG] - -[ModelOptions\Logical options\ClssNamingOptions\LDMPCKG\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar=_ -Script=.convert_name(%Name%,"_") -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Logical options\ClssNamingOptions\LDMPCKG\Code] -Template= -MaxLen=254 -Case=U -ValidChar='a'-'z','A'-'Z','0'-'9',"_" -InvldChar= -AllValid=No -NoAccent=Yes -DefaultChar=_ -Script=.convert_code(%Code%," ") -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Logical options\ClssNamingOptions\LDMDOMN] - -[ModelOptions\Logical options\ClssNamingOptions\LDMDOMN\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar=_ -Script=.convert_name(%Name%,"_") -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Logical options\ClssNamingOptions\LDMDOMN\Code] -Template= -MaxLen=254 -Case=U -ValidChar='a'-'z','A'-'Z','0'-'9',"_" -InvldChar= -AllValid=No -NoAccent=Yes -DefaultChar=_ -Script=.convert_code(%Code%," ") -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Logical options\ClssNamingOptions\LDMENTT] - -[ModelOptions\Logical options\ClssNamingOptions\LDMENTT\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar=_ -Script=.convert_name(%Name%,"_") -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Logical options\ClssNamingOptions\LDMENTT\Code] -Template= -MaxLen=254 -Case=U -ValidChar='a'-'z','A'-'Z','0'-'9',"_" -InvldChar= -AllValid=No -NoAccent=Yes -DefaultChar=_ -Script=.convert_code(%Code%," ") -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Logical options\ClssNamingOptions\LDMPROP] - -[ModelOptions\Logical options\ClssNamingOptions\LDMPROP\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar=_ -Script=.convert_name(%Name%,"_") -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Logical options\ClssNamingOptions\LDMPROP\Code] -Template= -MaxLen=254 -Case=U -ValidChar='a'-'z','A'-'Z','0'-'9',"_" -InvldChar= -AllValid=No -NoAccent=Yes -DefaultChar=_ -Script=.convert_code(%Code%," ") -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Logical options\ClssNamingOptions\LDMIDTF] - -[ModelOptions\Logical options\ClssNamingOptions\LDMIDTF\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar=_ -Script=.convert_name(%Name%,"_") -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Logical options\ClssNamingOptions\LDMIDTF\Code] -Template= -MaxLen=254 -Case=U -ValidChar='a'-'z','A'-'Z','0'-'9',"_" -InvldChar= -AllValid=No -NoAccent=Yes -DefaultChar=_ -Script=.convert_code(%Code%," ") -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Logical options\ClssNamingOptions\LDMRLSH] - -[ModelOptions\Logical options\ClssNamingOptions\LDMRLSH\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar=_ -Script=.convert_name(%Name%,"_") -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Logical options\ClssNamingOptions\LDMRLSH\Code] -Template= -MaxLen=254 -Case=U -ValidChar='a'-'z','A'-'Z','0'-'9',"_" -InvldChar= -AllValid=No -NoAccent=Yes -DefaultChar=_ -Script=.convert_code(%Code%," ") -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Logical options\ClssNamingOptions\LDMINHR] - -[ModelOptions\Logical options\ClssNamingOptions\LDMINHR\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar=_ -Script=.convert_name(%Name%,"_") -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Logical options\ClssNamingOptions\LDMINHR\Code] -Template= -MaxLen=254 -Case=U -ValidChar='a'-'z','A'-'Z','0'-'9',"_" -InvldChar= -AllValid=No -NoAccent=Yes -DefaultChar=_ -Script=.convert_code(%Code%," ") -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Generate] - -[ModelOptions\Generate\Cdm] -CheckModel=Yes -SaveLinks=Yes -NameToCode=No - -[ModelOptions\Generate\Pdm] -CheckModel=Yes -SaveLinks=Yes -NameToCode=No -BuildTrgr=No -TablePrefix= -IndxPKName=%TABLE%_PK -IndxAKName=%TABLE%_AK -IndxFKName=%REFR%_FK -IndxThreshold= \ No newline at end of file diff --git a/decomposed/models/ExampleBusinessConcepts/Relationships/RELATIONSHIP_1.xml b/decomposed/models/ExampleBusinessConcepts/Relationships/RELATIONSHIP_1.xml deleted file mode 100644 index b09bdbf..0000000 --- a/decomposed/models/ExampleBusinessConcepts/Relationships/RELATIONSHIP_1.xml +++ /dev/null @@ -1,15 +0,0 @@ - -1EA0EFF0-9854-4C3C-9F15-A80D05F4951B -Relationship_1 -RELATIONSHIP_1 -1701947795 -WillemOtten -0,n -0,1 - - - - - - - \ No newline at end of file diff --git a/decomposed/models/ExampleBusinessConcepts/TargetModels/MDDE_LDM.xml b/decomposed/models/ExampleBusinessConcepts/TargetModels/MDDE_LDM.xml deleted file mode 100644 index ce5cfe5..0000000 --- a/decomposed/models/ExampleBusinessConcepts/TargetModels/MDDE_LDM.xml +++ /dev/null @@ -1,13 +0,0 @@ - -F5695B06-4507-48B4-BE0E-0D30E628D3A6 -Model Driven Data Engineering (MDDE) -MDDE_LDM -1701948572 -WillemOtten -file:///%[XEM]%/MDDE_LDM.xem -1626A879-DBAC-4E54-8A36-28FCB761FF3A -186C8AC3-D3DC-11D3-881C-00508B03C75C - - - - \ No newline at end of file diff --git a/decomposed/models/ExampleDWH/DataSources/BusinessConcepts/Concepts.xml b/decomposed/models/ExampleDWH/DataSources/BusinessConcepts/Concepts.xml deleted file mode 100644 index 25b7005..0000000 --- a/decomposed/models/ExampleDWH/DataSources/BusinessConcepts/Concepts.xml +++ /dev/null @@ -1,13 +0,0 @@ - -4D29EA96-F938-4870-B042-FEBABFFC87A8 -Concepts -Concepts -1701946008 -WillemOtten -BusinessConcepts -RO -5F45F978-C4F3-4E35-A3FC-AF3318663A0F - - - - \ No newline at end of file diff --git a/decomposed/models/ExampleDWH/Entities/Customer.xml b/decomposed/models/ExampleDWH/Entities/Customer.xml index cebad02..6836f4f 100644 --- a/decomposed/models/ExampleDWH/Entities/Customer.xml +++ b/decomposed/models/ExampleDWH/Entities/Customer.xml @@ -8,18 +8,6 @@ DAT 1680508903 ATT DFLTMAP ATT STRN - - -9CC3AEAE-87A9-4FDB-B319-B5A62EE25C61 -SelectedBusinessConceptMapping -SelectedBusinessConceptMapping -1701948146 -WillemOtten - - - - - diff --git a/decomposed/models/ExampleDWH/Entities/Shortcuts/BUSINESSRELATION.xml b/decomposed/models/ExampleDWH/Entities/Shortcuts/BUSINESSRELATION.xml deleted file mode 100644 index bdd33ba..0000000 --- a/decomposed/models/ExampleDWH/Entities/Shortcuts/BUSINESSRELATION.xml +++ /dev/null @@ -1,12 +0,0 @@ - -D32B89DA-336A-4F0E-851B-56A86DBD4568 -BusinessRelation -BUSINESSRELATION - -FE814A09-B413-46E6-B862-8D9334562194 -D86B0751-A544-42AE-AAA6-6E32C602F706 -<Model> - - - - \ No newline at end of file diff --git a/decomposed/models/ExampleDWH/ExampleDWH.ldm b/decomposed/models/ExampleDWH/ExampleDWH.ldm index e8653d6..74ed77b 100644 --- a/decomposed/models/ExampleDWH/ExampleDWH.ldm +++ b/decomposed/models/ExampleDWH/ExampleDWH.ldm @@ -43,19 +43,23 @@ DLD {E65E8C99-8AC5-4EBA-A95C-E867C0CD0A06} DLD {CA5B68AA-5F42-423A-BA26-0A3F9DE54F2F} ATT DEFTXEM +{1626A879-DBAC-4E54-8A36-28FCB761FF3A},MDDE_LDM,95={3CB69645-4260-4DBC-A602-0536A9D4E6B3},mdde_Export_Extension_Initialization_Successful,4=true + +{0297A8FE-93C4-4612-A9E0-CD7292BFF652},MDDE_LDM_Export_Extension,70={AB204437-943D-4423-B8E6-E31186F8B700},mddex_Model_Export_Content,0= + + - + - @@ -65,16 +69,11 @@ ATT DEFTXEM - - - - - @@ -88,7 +87,6 @@ ATT DEFTXEM - @@ -115,7 +113,7 @@ ATT DEFTXEM - + diff --git a/decomposed/models/ExampleDWH/ExtendedModelDefinitions/Local_Extensions/Categories/GENERAL.xml b/decomposed/models/ExampleDWH/ExtendedModelDefinitions/Local_Extensions/Categories/GENERAL.xml deleted file mode 100644 index 6ea2de6..0000000 --- a/decomposed/models/ExampleDWH/ExtendedModelDefinitions/Local_Extensions/Categories/GENERAL.xml +++ /dev/null @@ -1,18 +0,0 @@ - -62AA0ED9-0321-463D-ABEC-115D17AB3A53 -General -GENERAL -<Form > - <StandardNameAndCode Attribute="NameAndCode" SizeInChars="1" HorizontalResize="true" /> - <StandardAttribute Attribute="Comment" Caption="Comment:" SizeInChars="1" LineNumber="3" HorizontalResize="true" VerticalResize="true" LeftText="false" /> - <StandardAttribute Attribute="ModelType" Caption="Model Type:" SizeInChars="1" LineNumber="3" HorizontalResize="true" VerticalResize="true" LeftText="false" /> - <StandardAttribute Attribute="AccessType" Caption="Access Type:" SizeInChars="1" LineNumber="3" HorizontalResize="true" VerticalResize="true" LeftText="false" /> - <StandardAttribute Attribute="Stereotype" Caption="Stereotype" SizeInChars="1" HorizontalResize="Yes" /> - <StandardAttribute Attribute="KeywordList" SizeInChars="1" LineNumber="3" HorizontalResize="true" VerticalResize="true" LeftText="false" /> -</Form> - -1701781095 -WillemOtten -1 -GENERAL - \ No newline at end of file diff --git a/decomposed/models/ExampleDWH/ExtendedModelDefinitions/Local_Extensions/Categories/Shared.xml b/decomposed/models/ExampleDWH/ExtendedModelDefinitions/Local_Extensions/Categories/Shared.xml deleted file mode 100644 index 1932bb7..0000000 --- a/decomposed/models/ExampleDWH/ExtendedModelDefinitions/Local_Extensions/Categories/Shared.xml +++ /dev/null @@ -1,8 +0,0 @@ - -737871D1-E830-4EA4-9B3E-6B7033D58DC7 -Shared -Shared -1701781095 -WillemOtten -1 - \ No newline at end of file diff --git a/decomposed/models/ExampleDWH/ExtendedModelDefinitions/Local_Extensions/Local_Extensions.xml b/decomposed/models/ExampleDWH/ExtendedModelDefinitions/Local_Extensions/Local_Extensions.xml deleted file mode 100644 index f0acfd1..0000000 --- a/decomposed/models/ExampleDWH/ExtendedModelDefinitions/Local_Extensions/Local_Extensions.xml +++ /dev/null @@ -1,295 +0,0 @@ - -EAC070D3-D054-46E2-B46B-8183E7DD5DAD -Local Extensions -Local Extensions -1701781095 -WillemOtten -This is an example of an in-model extension. This example extends the model with the ability to define non-mdde mappings, for example to use mappings for relating entities to business concepts (vertical lineage). On Entity an additional tab called business concepts is displayed that can be used to create these mappings. - -These mappings are not included when running the custom MDDE checks and are also not part of the MDDE XML export. -Purpose of this example is to illustrate that the MDDE extension can be used alongside other extensions or use cases in one model without conflicts -26BBDCC2-15B0-4F8B-9176-3E9D3A44E3CC -'****************************************************************************** -'* Purpose: This VB-Script holds global definitions shared by all the custom- -'* checks scripts of the model extension. -'****************************************************************************** - -Option Explicit ' This is to ensure all used variables are defined - - - - -037DF7D7-3F49-49AE-A2C0-8D85308A5309 -Generation -1701781095 -WillemOtten - - -BF784056-3012-43A6-B176-9B4644BABB4B -Profile -1701781095 -WillemOtten -1 - - - -D50809C3-3B59-4A86-ACC6-4EF99A8AD0C3 -DefaultDataSource -1701781095 -WillemOtten -1 - - -FormTargetItem -0C86F92F-05C5-4D81-A45F-386A89FA2847 -Forms -1701781095 -WillemOtten -1 - - - - - - - -5BB98B73-2189-4CA6-9422-3E5FD4AD1E15 -DefaultObjectMapping -1701781355 -WillemOtten -1 - - -9FA8852C-90DF-48AE-AED2-1B36664544AD -Entity -1701946163 -WillemOtten -1 - - -FormTargetItem -BD5F1045-5D1A-4902-AFD1-56775AC199B9 -Forms -1701946163 -WillemOtten -1 - - -C16A264D-1DFF-4049-80CF-3237E09603DF -BusinessConcepts -<Form > - <HorizontalLayout Name="HorizontalLayout1" > - <ExtendedAttribute Attribute="SelectedBusinessConceptMapping" Caption="Selected mapping" AttributeID="{1956216E-813A-4125-9C32-F19E254C0553}" GrayHiddenAttributes="Yes" SizeInChars="1" LineNumber="3" HorizontalResize="Yes" VerticalResize="true" LeftText="false" /> - <CustomMethod Method="addBusinessConceptMapping" Name="addBusinessConceptMapping" Caption="Add mapping" HorizontalResize="No" Display="Img_Create" /> - <CustomMethod Method="deleteBusinessConceptMapping" Name="deleteBusinessConceptMapping" Caption="Delete mapping" HorizontalResize="No" Display="Img_Delete" /> - </HorizontalLayout> - <Include Name="Mapping" Context="SelectedBusinessConceptMapping" Form="GENERAL" SizeInChars="3" LineNumber="1" HorizontalResize="Yes" VerticalResize="Yes" ReadOnly="No" /> -</Form> - -1701946163 -WillemOtten -1 -Business concepts - - - - -TemplateTargetItem -0B01DAEF-9FCC-4921-8143-2BA73AF65470 -Templates -1701946163 -WillemOtten -1 - - -E0230920-1351-4E73-86C4-EFEA05346AE8 -Entity_BusinessConceptMappingList_Template -.collection(Mappings, %DataSource.Stereotype%=="BusinessConcepts") -1701946163 -WillemOtten -1 - - - - -ExtendedAttributeTargetItem -0554E64F-3823-470F-9BBE-DFD173344BD4 -Extended Attributes -1701946454 -WillemOtten -1 - - -1956216E-813A-4125-9C32-F19E254C0553 -SelectedBusinessConceptMapping -1701946454 -WillemOtten -1 -15 -%Entity_BusinessConceptMappingList_Template% -E32D93EC-027C-4FD9-976E-3A94CD0AB996 -Selected mapping -0 - - - - - - - - - - -ExtendedCollectionTargetItem -9A0144CF-732C-476C-9D12-6D5408130AFB -Extended Collections -1701946454 -WillemOtten -1 - - -8A5567AD-486A-4332-AA03-76C31503C27E -SelectedBusinessConceptMapping -1701946454 -WillemOtten -1 -E32D93EC-027C-4FD9-976E-3A94CD0AB996 -NAME 80 CODE 80 - - - - -MethodTargetItem -A12B28CD-E46D-4609-8244-84AE1B002D8C -Methods -1701946755 -WillemOtten -1 - - -0E07D1A9-0EF3-4305-921F-132B8517656E -addBusinessConceptMapping -1701946755 -WillemOtten -1 -Sub %Method%(obj) - - 'If there is no datasource, give an error - If (obj.Model.DataSources.Count = 0) Then - MsgBox _ - "There are no DataSources defined for this model!" & vbCrLf & vbCrLf _ - & "Please first add a data source with the required stereotype and conceptual models." _ - ,vbExclamation _ - ,"No data sources available" - Exit Sub - End If - - - ' Let the user select the appropriate data source - Dim objSelectedDS - Dim objDSSelection : Set objDSSelection = obj.Model.CreateSelection - ' Show an object picker for data sources (in this model) and store the selected object. - Set objSelectedDS = objDSSelection.ShowObjectPicker("DefaultDataSource", "", "Please select a data source for the mapping", True, True, False) - ' Delete the selection. - objDSSelection.Delete() - - - ' Exit the routine if there is no selected data source. - If (objSelectedDS Is Nothing) Then - Exit Sub - End If - - ' If we cannot create a mapping in the given data source, report an error. - If (objSelectedDS.CanCreateMapping(obj) = False) Then - MsgBox "Cannot create a mapping on " & obj.Code & " using datasource " & objSelectedDS.Code - Exit Sub - - MsgBox _ - "Cannot create a mapping on " & obj.Code & " using datasource " & objSelectedDS.Code & "!" _ - ,vbExclamation _ - ,"Cannot create mapping" - Exit Sub - End If - - ' Now we know we can create a mapping in the data source we ask the user to choose the primary source object (from any open model). - Dim objPrimarySourceSelection : Set objPrimarySourceSelection = obj.model.CreateSelection - Dim objPrimarySource : Set objPrimarySource = objPrimarySourceSelection.ShowObjectPicker("Entity", "", "Please select the primary business concept for the mapping", True, False, False) - ' Delete the selection. - objPrimarySourceSelection.Delete() - - ' If there is no primary source selected, the user pressed cancel, so we exit the routine. - If (objPrimarySource Is Nothing) Then - Exit Sub - End If - - ' If the primary source object is selected, we can create the mapping with it's primary source (from) object. - ' Create the new mapping in the selected data source for this entity (obj), set the new mapping as default and enforce the creation. - Dim objNewMapping : Set objNewMapping = objSelectedDS.CreateMapping(obj, Nothing, True, True) - objNewMapping.addSource objPrimarySource - obj.setExtendedAttribute "SelectedBusinessConceptMapping", objNewMapping -End Sub - - -FE2A2DD3-D59E-4152-B7AC-18CFBAB96B9E -deleteBusinessConceptMapping -1701946797 -WillemOtten -1 -Sub %Method%(obj) - - ' Check whether there is a mapping selected (DefaultMapping), and if not report an error. - If (obj.getExtendedAttribute("SelectedBusinessConceptMapping") Is Nothing) Then - MsgBox _ - "There is no mapping selected to delete!" & vbCrLf & vbCrLf _ - & "Please select a mapping before trying to delete." _ - ,vbExclamation _ - ,"No mapping selected" - Exit Sub - End If - - ' Ask for confirmation to remove the mapping. - Dim iAnswer : iAnswer = MsgBox("Are you sure you want to delete mapping " & obj.getExtendedAttribute("SelectedBusinessConceptMapping").Name & "?", vbYesNo) - - ' If the user pressed 'Yes', delete the mapping. - If (iAnswer = vbYes) Then - ' Remove the mapping from the entity and remove the object (this will automatically reset the DefaultMapping). - obj.Mappings.Remove obj.getExtendedAttribute("SelectedBusinessConceptMapping"), True - End If - -End Sub - - - - - - -B5BEAB80-6ABC-48B1-8D35-80D88DDBEE61 -BaseDataSource -1701946163 -WillemOtten -1 - - -StereotypeTargetItem -71E002F2-7469-47CB-8594-0849B0439B85 -Stereotypes -1701946163 -WillemOtten -1 - - -E859D7B3-B5A6-4B9B-ABE8-B445C1CAC5EC -BusinessConcepts -1701946163 -WillemOtten -1 -Business concepts - - - - - - - - - \ No newline at end of file diff --git a/decomposed/models/ExampleDWH/ExtendedModelDefinitions/Shortcuts/MDDE_LDM_Export_Extension.xml b/decomposed/models/ExampleDWH/ExtendedModelDefinitions/Shortcuts/MDDE_LDM_Export_Extension.xml new file mode 100644 index 0000000..81844c8 --- /dev/null +++ b/decomposed/models/ExampleDWH/ExtendedModelDefinitions/Shortcuts/MDDE_LDM_Export_Extension.xml @@ -0,0 +1,8 @@ + +06F398D9-7F68-44F0-892B-6A835940A500 +Model Driven Data Engineering - Export Extension (MDDE) +MDDE_LDM_Export_Extension + +0297A8FE-93C4-4612-A9E0-CD7292BFF652 +186C8AC3-D3DC-11D3-881C-00508B03C75C + \ No newline at end of file diff --git a/decomposed/models/ExampleDWH/LogicalDiagrams/ExampleDWH/Symbols/ExampleDWH_Symbol_886CEEF0-1B32-4407-ADDC-1C899A05EB06.xml b/decomposed/models/ExampleDWH/LogicalDiagrams/ExampleDWH/Symbols/ExampleDWH_Symbol_886CEEF0-1B32-4407-ADDC-1C899A05EB06.xml index facbf0e..ea6d85e 100644 --- a/decomposed/models/ExampleDWH/LogicalDiagrams/ExampleDWH/Symbols/ExampleDWH_Symbol_886CEEF0-1B32-4407-ADDC-1C899A05EB06.xml +++ b/decomposed/models/ExampleDWH/LogicalDiagrams/ExampleDWH/Symbols/ExampleDWH_Symbol_886CEEF0-1B32-4407-ADDC-1C899A05EB06.xml @@ -13,7 +13,7 @@ LABL 0 Arial,8,N 11396853 1 - + -1 (9534, 2472) ((-31349,4124), (-17325,9900)) diff --git a/decomposed/models/ExampleDWH/LogicalDiagrams/ExampleDWH/Symbols/ExampleDWH_Symbol_A2B869FA-B8A2-47BF-AEEA-75C714608D23.xml b/decomposed/models/ExampleDWH/LogicalDiagrams/ExampleDWH/Symbols/ExampleDWH_Symbol_A2B869FA-B8A2-47BF-AEEA-75C714608D23.xml index f9b3c3c..0efc5ca 100644 --- a/decomposed/models/ExampleDWH/LogicalDiagrams/ExampleDWH/Symbols/ExampleDWH_Symbol_A2B869FA-B8A2-47BF-AEEA-75C714608D23.xml +++ b/decomposed/models/ExampleDWH/LogicalDiagrams/ExampleDWH/Symbols/ExampleDWH_Symbol_A2B869FA-B8A2-47BF-AEEA-75C714608D23.xml @@ -6,7 +6,7 @@ 12632256 CENTER 0 Arial,8,N - + diff --git a/decomposed/models/ExampleDWH/LogicalDiagrams/ExampleDWH/Symbols/ExampleDWH_Symbol_C2A6609F-EE69-45B9-B6D2-C363489ADA42.xml b/decomposed/models/ExampleDWH/LogicalDiagrams/ExampleDWH/Symbols/ExampleDWH_Symbol_C2A6609F-EE69-45B9-B6D2-C363489ADA42.xml index 540b4a4..7ce3a72 100644 --- a/decomposed/models/ExampleDWH/LogicalDiagrams/ExampleDWH/Symbols/ExampleDWH_Symbol_C2A6609F-EE69-45B9-B6D2-C363489ADA42.xml +++ b/decomposed/models/ExampleDWH/LogicalDiagrams/ExampleDWH/Symbols/ExampleDWH_Symbol_C2A6609F-EE69-45B9-B6D2-C363489ADA42.xml @@ -13,7 +13,7 @@ LABL 0 Arial,8,N 11396853 1 - + -1 (5512, 2000) ((14025,11550), (25575,14024)) @@ -51,7 +51,7 @@ Entity.Comment 0 - + -1 (3562, 1988) ((14025,6600), (25575,9074)) @@ -89,7 +89,7 @@ Entity.Comment 0 - + 1680514655 -1 (5775, 1238) @@ -128,7 +128,7 @@ Entity.Comment 0 - + 1683207699 -1 ((28875,12376), (41249,18974)) @@ -163,7 +163,7 @@ Entity.Comment 0 - + 1690285337 -1 ((28050,4125), (42074,8249)) diff --git a/decomposed/models/ExampleDWH/Mappings/RelatedBusinesConcepts.xml b/decomposed/models/ExampleDWH/Mappings/RelatedBusinesConcepts.xml deleted file mode 100644 index 3043f21..0000000 --- a/decomposed/models/ExampleDWH/Mappings/RelatedBusinesConcepts.xml +++ /dev/null @@ -1,16 +0,0 @@ - -CB4B7C91-F23C-4355-AF07-DAB434BCF27D -RelatedBusinesConcepts -RelatedBusinesConcepts -1701948146 -WillemOtten - - - - - - - - - - \ No newline at end of file diff --git a/decomposed/models/ExampleDWH/SourceModels/Shortcuts/EXAMPLEBUSINESSCONCEPTS.xml b/decomposed/models/ExampleDWH/SourceModels/Shortcuts/EXAMPLEBUSINESSCONCEPTS.xml deleted file mode 100644 index 6a7d0d5..0000000 --- a/decomposed/models/ExampleDWH/SourceModels/Shortcuts/EXAMPLEBUSINESSCONCEPTS.xml +++ /dev/null @@ -1,11 +0,0 @@ - -A0402FA6-A4FF-4E9F-B631-37B663C9924E -ExampleBusinessConcepts -EXAMPLEBUSINESSCONCEPTS - -7FFD987F-402B-4A66-86B5-F3E8C4CF140F -5F45F978-C4F3-4E35-A3FC-AF3318663A0F - - - - \ No newline at end of file diff --git a/decomposed/models/ExampleDWH/TargetModels/EXAMPLEBUSINESSCONCEPTS/EXAMPLEBUSINESSCONCEPTS.xml b/decomposed/models/ExampleDWH/TargetModels/EXAMPLEBUSINESSCONCEPTS/EXAMPLEBUSINESSCONCEPTS.xml deleted file mode 100644 index 0836c93..0000000 --- a/decomposed/models/ExampleDWH/TargetModels/EXAMPLEBUSINESSCONCEPTS/EXAMPLEBUSINESSCONCEPTS.xml +++ /dev/null @@ -1,21 +0,0 @@ - -A0367C67-8A43-42B3-B4E0-150ADAF10C88 -ExampleBusinessConcepts -EXAMPLEBUSINESSCONCEPTS -1701947831 -WillemOtten -file:///%MDDE_EXAMPLE_MODELS%/models/ExampleBusinessConcepts.ldm -7FFD987F-402B-4A66-86B5-F3E8C4CF140F -5F45F978-C4F3-4E35-A3FC-AF3318663A0F - - - - - - - - - - - - \ No newline at end of file diff --git a/decomposed/models/ExampleDWH/TargetModels/EXAMPLEBUSINESSCONCEPTS/FullShortcutModel/EXAMPLEBUSINESSCONCEPTS/EXAMPLEBUSINESSCONCEPTS.xml b/decomposed/models/ExampleDWH/TargetModels/EXAMPLEBUSINESSCONCEPTS/FullShortcutModel/EXAMPLEBUSINESSCONCEPTS/EXAMPLEBUSINESSCONCEPTS.xml deleted file mode 100644 index 9697b9d..0000000 --- a/decomposed/models/ExampleDWH/TargetModels/EXAMPLEBUSINESSCONCEPTS/FullShortcutModel/EXAMPLEBUSINESSCONCEPTS/EXAMPLEBUSINESSCONCEPTS.xml +++ /dev/null @@ -1,37 +0,0 @@ - -7AA1ACEE-8676-4A00-979A-D5859B993986 -ExampleBusinessConcepts -EXAMPLEBUSINESSCONCEPTS -1701947824 -WillemOtten - - - - - - - -49B7A3F1-B3AF-48BC-B795-2BD447320AAA -1701947824 -WillemOtten -7FFD987F-402B-4A66-86B5-F3E8C4CF140F -5F45F978-C4F3-4E35-A3FC-AF3318663A0F - - -9763D3F6-F2D0-420A-BE64-32D449CB57C7 -1701948146 -WillemOtten -FE814A09-B413-46E6-B862-8D9334562194 -D86B0751-A544-42AE-AAA6-6E32C602F706 -Entities::Entity 'BUSINESSRELATION' - - - - - - - - - - - \ No newline at end of file diff --git a/decomposed/models/ExampleDWH/TargetModels/EXAMPLEBUSINESSCONCEPTS/FullShortcutModel/EXAMPLEBUSINESSCONCEPTS/Entities/BUSINESSRELATION.xml b/decomposed/models/ExampleDWH/TargetModels/EXAMPLEBUSINESSCONCEPTS/FullShortcutModel/EXAMPLEBUSINESSCONCEPTS/Entities/BUSINESSRELATION.xml deleted file mode 100644 index aef85ca..0000000 --- a/decomposed/models/ExampleDWH/TargetModels/EXAMPLEBUSINESSCONCEPTS/FullShortcutModel/EXAMPLEBUSINESSCONCEPTS/Entities/BUSINESSRELATION.xml +++ /dev/null @@ -1,8 +0,0 @@ - -ADF0E2F1-CD2E-4E79-A060-1B55843B9B01 -BusinessRelation -BUSINESSRELATION -1701948146 -WillemOtten -Party we do business with - \ No newline at end of file diff --git a/decomposed/models/ExampleDWH/TargetModels/EXAMPLEBUSINESSCONCEPTS/FullShortcutModel/EXAMPLEBUSINESSCONCEPTS/Model/a_ModelOptionsText.xml b/decomposed/models/ExampleDWH/TargetModels/EXAMPLEBUSINESSCONCEPTS/FullShortcutModel/EXAMPLEBUSINESSCONCEPTS/Model/a_ModelOptionsText.xml deleted file mode 100644 index 7920712..0000000 --- a/decomposed/models/ExampleDWH/TargetModels/EXAMPLEBUSINESSCONCEPTS/FullShortcutModel/EXAMPLEBUSINESSCONCEPTS/Model/a_ModelOptionsText.xml +++ /dev/null @@ -1,388 +0,0 @@ -[ModelOptions] - -[ModelOptions\Logical options] -CaseSensitive=No -DisplayName=Yes -EnableTrans=No -UseTerm=No -EnableRequirements=No -EnableFullShortcut=Yes -SynchroCode=Yes -Notation=0 -RlshUnique=Yes -DefaultDttp= -DomnCopyDttp=Yes -DomnCopyChck=No -DomnCopyRule=No -DomnCopyExat=No -DomnCopyMand=No -DttpFullName=Yes -RlshMigrateDomain=Yes -RlshMigrateCheck=Yes -RlshMigrateRule=Yes -RlshMigrateExtd=Yes -RlshAllowInhrDivr=No -RlshAllowNN=No -RlshGenNN=Yes -FKNameTemplate=%.3:PARENT%_%ATTRIBUTE% -FKNameTemplateUsage=No -RlshAsstTmpl=Each %Entity1.Name%[CRLF].if %Entity1ToEntity2RoleMandatory%[CRLF] must[CRLF].else[CRLF] may[CRLF].endif[CRLF].if %Entity1ToEntity2Role%[CRLF] %.L:Entity1ToEntity2Role%[CRLF].else[CRLF] have[CRLF].endif[CRLF].if %Entity1ToEntity2RoleMaximumCardinality%==1[CRLF].if %Entity1ToEntity2RoleMandatory%[CRLF] one and only one[CRLF].else[CRLF] at most one[CRLF].endif[CRLF].else[CRLF] one or more[CRLF].endif[CRLF].if %Entity1%==%Entity2%[CRLF] other[CRLF].endif[CRLF] %Entity2.Name%.[CRLF]Each %Entity2.Name%[CRLF].if %Entity2ToEntity1RoleMandatory%[CRLF] must[CRLF].else[CRLF] may[CRLF].endif[CRLF].if %Entity2ToEntity1Role%[CRLF] %.L:Entity2ToEntity1Role%[CRLF].else[CRLF] have[CRLF].endif[CRLF].if %Entity2ToEntity1RoleMaximumCardinality%==1[CRLF].if %Entity2ToEntity1RoleMandatory%[CRLF] one and only one[CRLF].else[CRLF] at most one[CRLF].endif[CRLF].else[CRLF] one or more[CRLF].endif[CRLF].if %Entity1%==%Entity2%[CRLF] other[CRLF].endif[CRLF] %Entity1.Name%. -RlshAsstExt= - -[ModelOptions\Logical options\NamingOptionsTemplates] - -[ModelOptions\Logical options\ClssNamingOptions] - -[ModelOptions\Logical options\ClssNamingOptions\FILO] - -[ModelOptions\Logical options\ClssNamingOptions\FILO\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar="\/:*?<>|" -AllValid=Yes -NoAccent=No -DefaultChar=_ -Script=.convert_name(%Name%,"_") -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Logical options\ClssNamingOptions\FILO\Code] -Template= -MaxLen=254 -Case=U -ValidChar='a'-'z','A'-'Z','0'-'9',"_. " -InvldChar= -AllValid=No -NoAccent=Yes -DefaultChar=_ -Script=.convert_code(%Code%," ") -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Logical options\ClssNamingOptions\FRMEOBJ] - -[ModelOptions\Logical options\ClssNamingOptions\FRMEOBJ\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar=_ -Script=.convert_name(%Name%,"_") -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Logical options\ClssNamingOptions\FRMEOBJ\Code] -Template= -MaxLen=254 -Case=U -ValidChar='a'-'z','A'-'Z','0'-'9',"_" -InvldChar= -AllValid=No -NoAccent=Yes -DefaultChar=_ -Script=.convert_code(%Code%," ") -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Logical options\ClssNamingOptions\FRMELNK] - -[ModelOptions\Logical options\ClssNamingOptions\FRMELNK\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar=_ -Script=.convert_name(%Name%,"_") -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Logical options\ClssNamingOptions\FRMELNK\Code] -Template= -MaxLen=254 -Case=U -ValidChar='a'-'z','A'-'Z','0'-'9',"_" -InvldChar= -AllValid=No -NoAccent=Yes -DefaultChar=_ -Script=.convert_code(%Code%," ") -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Logical options\ClssNamingOptions\AREA] - -[ModelOptions\Logical options\ClssNamingOptions\AREA\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar=_ -Script=.convert_name(%Name%,"_") -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Logical options\ClssNamingOptions\AREA\Code] -Template= -MaxLen=254 -Case=U -ValidChar='a'-'z','A'-'Z','0'-'9',"_" -InvldChar= -AllValid=No -NoAccent=Yes -DefaultChar=_ -Script=.convert_code(%Code%," ") -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Logical options\ClssNamingOptions\DefaultClass] - -[ModelOptions\Logical options\ClssNamingOptions\DefaultClass\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar=_ -Script=.convert_name(%Name%,"_") -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Logical options\ClssNamingOptions\DefaultClass\Code] -Template= -MaxLen=254 -Case=U -ValidChar='a'-'z','A'-'Z','0'-'9',"_" -InvldChar= -AllValid=No -NoAccent=Yes -DefaultChar=_ -Script=.convert_code(%Code%," ") -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Logical options\ClssNamingOptions\LDMPCKG] - -[ModelOptions\Logical options\ClssNamingOptions\LDMPCKG\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar=_ -Script=.convert_name(%Name%,"_") -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Logical options\ClssNamingOptions\LDMPCKG\Code] -Template= -MaxLen=254 -Case=U -ValidChar='a'-'z','A'-'Z','0'-'9',"_" -InvldChar= -AllValid=No -NoAccent=Yes -DefaultChar=_ -Script=.convert_code(%Code%," ") -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Logical options\ClssNamingOptions\LDMDOMN] - -[ModelOptions\Logical options\ClssNamingOptions\LDMDOMN\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar=_ -Script=.convert_name(%Name%,"_") -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Logical options\ClssNamingOptions\LDMDOMN\Code] -Template= -MaxLen=254 -Case=U -ValidChar='a'-'z','A'-'Z','0'-'9',"_" -InvldChar= -AllValid=No -NoAccent=Yes -DefaultChar=_ -Script=.convert_code(%Code%," ") -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Logical options\ClssNamingOptions\LDMENTT] - -[ModelOptions\Logical options\ClssNamingOptions\LDMENTT\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar=_ -Script=.convert_name(%Name%,"_") -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Logical options\ClssNamingOptions\LDMENTT\Code] -Template= -MaxLen=254 -Case=U -ValidChar='a'-'z','A'-'Z','0'-'9',"_" -InvldChar= -AllValid=No -NoAccent=Yes -DefaultChar=_ -Script=.convert_code(%Code%," ") -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Logical options\ClssNamingOptions\LDMPROP] - -[ModelOptions\Logical options\ClssNamingOptions\LDMPROP\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar=_ -Script=.convert_name(%Name%,"_") -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Logical options\ClssNamingOptions\LDMPROP\Code] -Template= -MaxLen=254 -Case=U -ValidChar='a'-'z','A'-'Z','0'-'9',"_" -InvldChar= -AllValid=No -NoAccent=Yes -DefaultChar=_ -Script=.convert_code(%Code%," ") -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Logical options\ClssNamingOptions\LDMIDTF] - -[ModelOptions\Logical options\ClssNamingOptions\LDMIDTF\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar=_ -Script=.convert_name(%Name%,"_") -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Logical options\ClssNamingOptions\LDMIDTF\Code] -Template= -MaxLen=254 -Case=U -ValidChar='a'-'z','A'-'Z','0'-'9',"_" -InvldChar= -AllValid=No -NoAccent=Yes -DefaultChar=_ -Script=.convert_code(%Code%," ") -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Logical options\ClssNamingOptions\LDMRLSH] - -[ModelOptions\Logical options\ClssNamingOptions\LDMRLSH\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar=_ -Script=.convert_name(%Name%,"_") -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Logical options\ClssNamingOptions\LDMRLSH\Code] -Template= -MaxLen=254 -Case=U -ValidChar='a'-'z','A'-'Z','0'-'9',"_" -InvldChar= -AllValid=No -NoAccent=Yes -DefaultChar=_ -Script=.convert_code(%Code%," ") -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Logical options\ClssNamingOptions\LDMINHR] - -[ModelOptions\Logical options\ClssNamingOptions\LDMINHR\Name] -Template= -MaxLen=254 -Case=M -ValidChar= -InvldChar= -AllValid=Yes -NoAccent=No -DefaultChar=_ -Script=.convert_name(%Name%,"_") -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Logical options\ClssNamingOptions\LDMINHR\Code] -Template= -MaxLen=254 -Case=U -ValidChar='a'-'z','A'-'Z','0'-'9',"_" -InvldChar= -AllValid=No -NoAccent=Yes -DefaultChar=_ -Script=.convert_code(%Code%," ") -ConvTable= -ConvTablePath=%_HOME%\Resource Files\Conversion Tables - -[ModelOptions\Generate] - -[ModelOptions\Generate\Cdm] -CheckModel=Yes -SaveLinks=Yes -NameToCode=No - -[ModelOptions\Generate\Pdm] -CheckModel=Yes -SaveLinks=Yes -NameToCode=No -BuildTrgr=No -TablePrefix= -IndxPKName=%TABLE%_PK -IndxAKName=%TABLE%_AK -IndxFKName=%REFR%_FK -IndxThreshold= \ No newline at end of file diff --git a/decomposed/models/ExampleDWH/TargetModels/EXAMPLEBUSINESSCONCEPTS/FullShortcutModel/EXAMPLEBUSINESSCONCEPTS/Model/a_PackageOptionsText.xml b/decomposed/models/ExampleDWH/TargetModels/EXAMPLEBUSINESSCONCEPTS/FullShortcutModel/EXAMPLEBUSINESSCONCEPTS/Model/a_PackageOptionsText.xml deleted file mode 100644 index 42d45fa..0000000 --- a/decomposed/models/ExampleDWH/TargetModels/EXAMPLEBUSINESSCONCEPTS/FullShortcutModel/EXAMPLEBUSINESSCONCEPTS/Model/a_PackageOptionsText.xml +++ /dev/null @@ -1,9 +0,0 @@ -[FolderOptions] - -[FolderOptions\Common] -GenerationCheckModel=Yes -GenerationPath= -GenerationOptions= -GenerationTasks= -GenerationTargets= -GenerationSelections= \ No newline at end of file diff --git a/decomposed/models/ExampleDWH/TargetModels/MDDE_LDM_Export_Extension.xml b/decomposed/models/ExampleDWH/TargetModels/MDDE_LDM_Export_Extension.xml new file mode 100644 index 0000000..b3579cf --- /dev/null +++ b/decomposed/models/ExampleDWH/TargetModels/MDDE_LDM_Export_Extension.xml @@ -0,0 +1,13 @@ + +329CC2E4-8560-47E5-B3A2-F50B1E6C5D3C +Model Driven Data Engineering - Export Extension (MDDE) +MDDE_LDM_Export_Extension +1708095266 +WillemOtten +file:///%[XEM]%/MDDE_LDM_Export_Extension.xem +0297A8FE-93C4-4612-A9E0-CD7292BFF652 +186C8AC3-D3DC-11D3-881C-00508B03C75C + + + + \ No newline at end of file diff --git a/decomposed/models/ExampleSource/EXAMPLESOURCE.model.xml b/decomposed/models/ExampleSource/EXAMPLESOURCE.model.xml index 36c98a3..93536c4 100644 --- a/decomposed/models/ExampleSource/EXAMPLESOURCE.model.xml +++ b/decomposed/models/ExampleSource/EXAMPLESOURCE.model.xml @@ -3,14 +3,14 @@ - - - - - + + + + + - + @@ -21,19 +21,19 @@ - + - - - - - - + + + + + + - + @@ -44,7 +44,6 @@ - + - - \ No newline at end of file + \ No newline at end of file diff --git a/manual/ModelExportExtension.md b/manual/ModelExportExtension.md new file mode 100644 index 0000000..cbbb81b --- /dev/null +++ b/manual/ModelExportExtension.md @@ -0,0 +1,25 @@ +> [Modeling](./README.md) > Customize the XML export + +# MDDE Model Export Extension + +Attach the MDDE LDM Export Extension to the model and open the extension editor +![Extension is attached to the model](img/mdde_export_extension_on_model.png) +> **Note**: +> Consult the [SAP PowerDesigner documentation](https://help.sap.com/docs/SAP_POWERDESIGNER/31c48596e34446a68956e0aa7e700a2e/c7e1ddda6e1b101482c096290e45387b.html) for more information about attaching extension to a model. + +In the editor, expand the profile section in the left panel to navigate through the available metaclasses that are configured for customization. Each metaclass contains a template that can be used to include specific content to the XML Export. Initially all templates are empty since they should only contain customer/project specific additions to the MDDE LDM extension. + +The example shows a fixed xml text that is included in all objects of PowerDesigner metaclass Entity (MDDE entities, MDDE business rules). It is also possible to add custom extended attributes or content from a different extension. + +![Extension editor](img/mdde_export_extension_editor.png) + +> **Note**: +> Consult the [SAP PowerDesigner documentation](https://help.sap.com/docs/SAP_POWERDESIGNER/31c48596e34446a68956e0aa7e700a2e/c7d31d216e1b1014ab88822700700793.html) for more information about working with extensions. Instructions on working with GTL templates can be found in [this section](https://help.sap.com/docs/SAP_POWERDESIGNER/31c48596e34446a68956e0aa7e700a2e/c7d455d56e1b1014b2d09c0c6adc50fa.html). Formatting options are described in [this section](https://help.sap.com/docs/SAP_POWERDESIGNER/31c48596e34446a68956e0aa7e700a2e/c7d47e266e1b1014bed1d75ce550a7dc.html). + +The resulting XML with this example would be (only showing fragment with relevant changes): + +![Extension editor](img/mdde_export_extension_result.png) + +Be aware that changes that are done in the model export extension will apply to all models that have this particular instance of the extension attached. It is possible to use different variations of the model export extension for different models by saving them in different locations. + +[Go back to main modeling page](./README.md) diff --git a/manual/README.md b/manual/README.md index 0540651..3588a94 100644 --- a/manual/README.md +++ b/manual/README.md @@ -10,6 +10,7 @@ In the following section the modeling options are elaborated per topic. - [Mapping](./Mapping.md) - [Model checks](./Model%20checks.md) - [PowerDeComposer](./PowerDeComposer.md) +- [Customize the XML export](./ModelExportExtension.md) - [Frequently asked questions](./FAQs.md) - [Modeling guidelines](./ModelingWiki.md) diff --git a/manual/img/mdde_export_extension_editor.png b/manual/img/mdde_export_extension_editor.png new file mode 100644 index 0000000000000000000000000000000000000000..13209df5ed54530b4641426df906287b6dfd5ad5 GIT binary patch literal 72519 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⁣r#Dbm;tS2mUH*{?zfSx?)>}{0h-5d; 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

?GB^6lW@;?b2>m`wvWskr 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 x)~}gk&wrHWZGHp?2