预订演示

该网络研讨会已完成, 录音将很快发布.

概览

Enterprise Architect基于行业标准Javascript,Microsoft JScript和VBScript实现了灵活且易于使用的脚本功能. Bellekens.com的所有者兼Sparx Systems合作伙伴的Geert Bellekens将展示自动化如何节省您的时间.

在此网络研讨会中,您将学习如何:

立刻注册!

不要错过这个机会来了解有关Enterprise Architect的更多信息

第一场

墨尔本 Thu 07 05 08:00 am

第二场

演讲者

Geert Bellekens Bellekens IT

探索网络研讨会资源

Example model: EAExample.eap Download links

问题和答案

常见

Enterprise Architect 12(Build 1213).

是.自Enterprise Architect 7.5,Corporate Edition或更高版本以来,Enterprise Architect的每个版本中都可以使用脚本.

有关有关自动化和脚本化

是.单击上面的链接下载脚本.

是.单击上面的链接下载脚本.

在整个网络研讨会中都使用了EAExample模型.该模型随Enterprise Architect的每个副本一起提供.

包括对自动化API的支持,以允许对其他框架和导出格式进行自定义扩展.

执行脚本

Sparx:是的.您必须编写一个可以由Windows作为计划任务运行的可执行文件.了解有关在Windows Server中运行计划的脚本

Geert:请参见 EA-Matic 及其在 Github 一个例子.

是.网络研讨会演示了如何将脚本应用于多个图表元素.

是.您可以使用!INC语句从其他脚本中包含并执行脚本.

否.

安全性,共享和版本控制

您可以使用安全性来允许或禁止使用工作流脚本,但不幸的是,该功能不适用于标准脚本.有关工作流程脚本的详细信息,请查看《 Enterprise Architect用户指南》.

否.

否.

但是,MDG Technologies可以包含脚本以防止用户修改.阅读《 Enterprise Architect用户指南》,以了解有关将脚本添加到MDG技术文件的更多信息.

最好使用某种版本控制系统在EA外部进行组织

当前没有与脚本的版本控制系统集成.任何版本控制都必须手动完成.

The网络研讨会中创建的脚本存储在模型中,并且仅在该模型中可用.您可以将其导出并导入到其他模型中,以便在那里使用,也可以在网络研讨会中显示.
在不同模型之间共享脚本的其他选项是通过将文件保存在适当的文件夹中来将它们存储为本地脚本:
< EA安装文件夹>\EA\Scripts .

您也可以将脚本保存在MDG技术文件中并进行分发那样.

否.您可以测试脚本中的元素原型,并做出适当反应.

API

API ,请参见自动化和脚本| Enterprise Architect对象模型|参考

脚本语言支持

选择脚本语言是个人喜好的问题.

否.

否.

其他

使用"上下文"脚本组,您可以将菜单限制为"元素","包","图"或"连接器".如果需要更多细粒度的控件,则可以可以考虑编写插件或使用由Geert Bellekens编写的 EA-Matic 第三方插件.

You \必须使用EA.Element.ParentID,EA.Element.PackageID和EA.Package.ParentID自下而上
像这样:

函数getQualifiedNameElement(element,fqn)
'将我的名字添加到fqn
fqn = element.name& " /" & fqn
'首先检查此元素是否嵌套在其他元素下
如果element.ParentID> 0,然后
将parentElement调暗为EA.Element
设置parentElement = Repository.GetElementByID(element.ParentID)
fqn = getQualifiedNameElement(parentElement,fqn)
其他
'没有父元素,因此我们转到包
将dimparentpackage设置为EA.Package
设置parentPackage = Repository.GetPackageByID(element.PackageID)
fqn = getQualifiedNamePackage(parentPackage,fqn)
如果
结束 '返回fqn
getQualifiedNameElement = fqn
最终功能


函数getQualifiedNamePackage(package,fqn)
'将我的名字添加到fqn
fqn = package.name& " /" & fqn
如果package.ParentID> 0,然后
将dimparentpackage设为EA.Package
设置parentPackage = Repository.GetPackageByID(package.ParentID)
fqn = getQualifiedNamePackage(parentPackage,fqn)
如果
结束 '返回fqn
getQualifiedNamePackage = fqn
最终功能

是.在Project Interface上,可以使用诸如ImportDirectory()和ImportFile()之类的操作进行逆向工程

是.有关报告的简单运行,请阅读RunReport .请注意,设置文件扩展名(.rtf或.pdf)将设置输出类型.在这种情况下,可以使用文档生成器类来执行特定的脚本化报告.

Project.RunReport(PackageGUID," Diagram Report"," C:\ Temp\MyDiagrams.pdf")

或使用Diagram.SaveAsPDF将每个单独的图导出到单独的PDF.

您可以在以下示例中找到

用例种类繁多.通常我们会看到类似的

  • 模型维护-用于在模型中进行一些清理的脚本
  • Helper函数-帮助用户执行复杂或耗时操作的脚本.
  • 导入/导出-用于在模型之间导入或导出内容的脚本
  • …还有更多...

您可以使用Repository.GetContextItemType()确定上下文中对象的类型.

否.

Geert:是的,您可以使用Excel API在脚本中创建Excel文件.或者,您也可以采用其他方法来完成此操作,并在Excel中编写VBA脚本,然后在Excel中使用EA API.可以在 Bellekens.com 上免费获取将Excel元素导入EA的此类示例.

Sparx:Office的MDG集成旨在与Microsoft Office和Visio Suites集成.将文档和电子表格导入Enterprise Architect,提供丰富的建模体验.了解有关用于Microsoft Office的MDG集成界面-请参阅"工作流程白皮书"中的脚本与Microsoft Project的界面

这是标准的VBScript语法检查对象是否已初始化.

  • 请勿编写大型脚本,仅在完成后才开始对其进行测试. 而是写一些小片段并在进行过程中对其进行测试. 调试大型脚本非常困难.
  • 请勿尝试在脚本中迭代整个模型. 迭代很慢,如果您迭代整个模型,那么对于大型模型而言,这可能很容易花费几分钟甚至几小时. 而是使用Repository.SQLQuery()查找所需元素的ID,并使用Repository.GetElementByID()实例化它们.

本地脚本中有一个处理标记值的示例脚本.VBScript-元素额外示例