我想使用EA以编程方式生成Requirement元素。我需要使用与GUI相同的序列号(REQ00000xy),与在GUI上单击“添加元素...”对话框中的“自动”按钮时一样,以便保持从GUI或API创建的需求元素的一致编号。 / p>
从现有的Requierement元素中选择最后使用的序列号将无济于事,因为它不会将序列号向上移动,也不会从GUI创建下一个需求。
是否可以通过EA API或EA SQL获取(并正确使用)序列号?
答案 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(),然后再将描述添加到“名称”字段的内容中。 如此简单。