首页 > 解决方案 > 如何使用来自适当序列的名称从 API 创建元素?

问题描述

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

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

有没有办法通过 EA API 或 EA SQL 获取(并正确使用)序列号?

标签: enterprise-architect

解决方案


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

描述;数字重量;备注;TRX;TRX_ID;样式;

Autocount;1,00;prefix=bla;suffix=x;active=1;active_a=0;counter=126;;Class;1; ;

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

前缀=bla;后缀=x;活动=1;活动_a=0;计数器=126;

这是当前编号为 126 的类的测试设置。因此下一个创建的类将被命名bla126x并且条目将更改为

前缀=bla;后缀=x;活动=1;活动_a=0;计数器=127;

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

注意EA 不(似乎)允许直接访问数据库。但是,它有一个经过验证的后门:

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。


推荐阅读