1

我想将包中 DDL 的生成包含到我们的夜间构建中,这样我们就不必签入生成模式(以及我们之后从模式生成的 ORM 类)。

如果没有 Generate Package DDL UI,我看不到任何通过命令行执行此操作的方法。EA 文档链接中没有信息

有没有人找到一种方法来自动化这个?

4

1 回答 1

1

是的,使用 EA 的 API 完全可行。

所谓的“EA 对象模型”可从 EA(脚本)内部以及 .NET 和 Java API 中获得(而“插件模型”只能通过 .NET 获得)。与 EA 存储库的交互基于两个类,RepositoryProject. 因此,对于命令行,您需要编写一个程序

  1. 连接到相关的 EA 存储库——Repository::OpenFile
  2. 检索项目接口——Repository::GetProjectInterface
  3. 检索包和元素——Repository::Get[Package/Element]By[ID/Guid]
  4. 生成 DDL --Project::Generate[Package/Element]DDL

为了遍历包/元素结构,请使用Package::PackagesandPackage::Elements集合(也可能使用Element::Elements,但数据库模型通常在其他元素中没有元素)。

对于未来的读者,请注意Project该类还包括类似的方法来生成代码、WSDL 和 XSD。

相关帮助文件页面位于自动化和脚本 - Enterprise Architect 对象模型 - 参考(在 EA 10.0.1007 中):

  • 存储库包——存储库类
  • 项目接口包——项目类
  • 存储库包——包类
  • 存储库包——元素类
  • 存储库包——集合类
于 2013-07-15T05:15:02.837 回答