我能够通过导航到Project > Settings > Code Engineering Datatypes...
在Enterprise Architect中使用自定义数据类型定义自定义编程语言。当我创建一个MDG文件时,我可以选择包含编程语言定义,据我所知,这是有效的 - 至少在使用MDG文件的新项目中,我可以看到编程语言。
现在,我希望通过Project > Settings > Database Datatypes...
定义的DBMS和数据库数据类型具有相同的行为。从我的测试中,我得到的印象是这些类型不会自动包含在MDG文件中,我还没有找到包含它们的简单方法。有没有办法将数据库数据类型添加到MDG文件?如果没有,是否有办法通过自动化界面实现相同的结果,例如: G。通过编写一个创建DBMS和相关数据类型的加载项?
答案 0 :(得分:2)
采用MDG技术方式,答案似乎是否定的。可以将EA(11)欺骗为在MDG技术中导出数据库类型,但即使它们在那里,它们也会在使用MDG技术的项目中被忽略。
数据库类型和代码工程(或者有时候,“编程语言”)数据类型都存储在EA的t_datatypes表中。相同的产品名称可用于编程语言和数据库引擎。
看起来MDG技术向导扫描此表在设置期间在“类型”列中查找带有“代码”的行(代码模块向导页面),但是到了将实际数据类型写入输出文件的时候,它检索具有指定ProductName的所有行。
这意味着如果您创建一个数据库产品并使用一组数据类型填充它,然后创建一个具有相同名称但只有一个虚拟数据类型的编程语言产品,那么您的数据库类型将包含在MDG技术XML中文件和虚拟类型。
但是,看起来虽然常规属性对话框(对于类等)除了t_datatypes表之外还检查加载的MDG技术以填充语言下拉列表,但数据库表的专用属性对话框不会检查填充相应的数据库下拉列表时的MDG技术。因此,即使数据类型在文件中,也不能使用它们。
进入加载项路线,答案是肯定的。
让您的加载项响应EA_FileOpen事件并检查Repository.Datatypes集合以查看您的数据库类型是否已安装,如果没有,请添加它们。
如果您不想要,实际上不需要编写加载项,您可以编写一个in-EA脚本。加载项唯一能做的就是脚本无法响应事件(这就是为什么这些列在帮助文件的加载项模型部分中)。因此,使用脚本,您必须手动触发该功能。
还有一个API来管理项目的参考数据,其中代码/数据库数据类型是一个类别,但它只能让您控制某些类别(例如需求类型和约束类型),而数据类型类别不是一个他们。