如何使用适当顺序的名称从API创建元素?

时间:2019-04-15 16:29:40

标签: enterprise-architect

我想使用EA以编程方式生成Requirement元素。我需要使用与GUI相同的序列号(REQ00000xy),与在GUI上单击“添加元素...”对话框中的“自动”按钮时一样,以便保持从GUI或API创建的需求元素的一致编号。 / p>

从现有的Requierement元素中选择最后使用的序列号将无济于事,因为它不会将序列号向上移动,也不会从GUI创建下一个需求。

是否可以通过EA API或EA SQL获取(并正确使用)序列号?

2 个答案:

答案 0 :(得分:2)

您要查找的表是t_trxtypes。其中包含类似(EA的输出)

  

说明;数字重量;注释; TRX; TRX_ID;样式;

     

自动计数; 1,00;前缀= bla;后缀= x; active = 1; active_a = 0; counter = 126 ;; Class; 1; ;

您对列为Notes的CSV列表感兴趣,例如

  

prefix = bla;后缀= x; active = 1; active_a = 0; counter = 126;

这是当前具有数字126的类的测试设置。因此,下一个创建的类将命名为bla126x,并且条目将更改为

  

prefix = bla;后缀= x; active = 1; active_a = 0; counter = 127;

只需使列t_trxtypes.notes与您的创作保持同步。

注意:EA不允许(似乎)允许直接DB访问。但是,它具有可靠的后门:

Repository.Execute("UPDATE t_trxtypes SET Notes='prefix=bla;suffix=x;active=1;active_a=0;counter=127;' WHERE TRX_ID=<your id>")

将进行更新(用适当的密钥替换<your id>)。尽管Execute未被记录,但此后一直有效,并且Sparx肯定不会限制它,因为如今每个人都依赖它。

请注意:此计数器不安全。有很多方法(最简单的方法是简单的重命名)来破解它。您需要一些脚本/加载项来定期检查您的编号是否仍然一致。如果您依靠需求编号,那么最好使用外部系统,例如我敢说的DOORS。

答案 1 :(得分:0)

最后,RTFM ... 对于定义了序列的元素,如果在set = AddNew()函数中使用空名称,则EA将在.Update()上生成序列。不早因此,如果您打算使用生成的序列并添加一些描述,则需要先创建一个具有空名称的元素,然后再对其进行Update(),然后再将描述添加到“名称”字段的内容中。 如此简单。