【问题标题】:Enterprise Architect: Change diagram type (MetaType) by scriptEnterprise Architect:通过脚本更改图表类型(MetaType)
【发布时间】:2015-11-17 23:14:23
【问题描述】:

我必须在我的 Enterprise Architect 模型中更改许多图表的图表类型。可以使用以下选项手动进行更改(按预期工作):

选择图表 - 图表 - 高级 - 更改类型...

由于我必须更改很多图表,因此我创建了一个脚本,它可以搜索所有相关图表并自动更改类型。我已经编写了很多用于更改一些建模元素的 JScript EA 脚本。不幸的是,此功能似乎无法通过脚本界面使用。

我必须更改图表对象的“MetaType”。但这是只读的(请参阅http://www.sparxsystems.com/enterprise_architect_user_guide/12/automation_and_scripting/diagram2.html)。因此,我得到了一个错误。

var currentDiagram as EA.Diagram
currentDiagram = theDiagram
currentDiagram.MetaType = MY_DIAGRAM_METATYPE // ERROR

在下一步中,我在存储库界面 (http://www.sparxsystems.com/enterprise_architect_user_guide/12/automation_and_scripting/repository3.html) 和项目界面中搜索了适当的功能。但我没有找到合适的。

我使用的是 Enterprise Architect 12.0.1215,我使用了 JScript。

有没有人已经通过脚本尝试过这个? 我错过了什么吗? 有没有其他方法可以通过脚本来实现图表类型的改变?

提前致谢!

【问题讨论】:

    标签: enterprise-architect


    【解决方案1】:

    您必须分两步完成(如果您更改为不同的 MDG 图类型)。例如。要将类图更改为 BPMN2.0::BPEL,您首先将 Diagram_TypeLogical 更改为 Analysis。此外,您需要将 MDGDgm=BPMN2.0::BPEL; 添加到 StyleEx。如果您的旧图表来自另一个 MDG,您需要修改 StyleEx 中现有的 MDGDgm 属性。

    正如 Uffe 所说,API 中的图表类型是 r/o。所以如果你需要改变,你需要做类似的事情

    Repository.Execute("UPDATE t_diagram SET Diagram_Type='Analysis' WHERE Diagram_ID=<theId>")
    

    &lt;theId&gt; 是正确的图表 ID。

    【讨论】:

    • 如问题中所述,Diagram 类的 Type 属性是只读的,因此要更改它,您需要直接在数据库中更新它。
    • 建议的解决方案对我有用!非常感谢。我不需要更改图表的类型,只需要更改元类型(其他 MDG),因此 StyleEx 属性的更改就足够了。至于相关图表,有一个空的“MDGgm”条目可用,我可以使用以下代码:currentDiagram.StyleEx = currentDiagram.StyleEx.replace( "MDGDgm=;", "MDGDgm=" + FSM_DIAGRAM_METATYPE + ";" )
    • 这适用于 Sparx 14 吗?我可以使用 Repository.execute (在 MS SQL 上)进行更新,它会更新,但是 repository.update 似乎将其更改回原始类型。似乎有对旧类型的隐藏引用?
    • @Hightower 这与版本无关。调用Update 将写回先前加载的更改信息。所以你需要ExecuteGetDiagram...,做出改变,最后Update
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-28
    • 1970-01-01
    • 2017-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-17
    相关资源
    最近更新 更多