【发布时间】:2014-06-02 15:18:07
【问题描述】:
我想要为元素定义的场景步骤之一更新字段“结果”(UI),但它不起作用。方法“Update()”(API)更新了提交的“结果”而不是“结果”。 UI 中仅显示“结果”(数据库,t_objectscenarios.XMLContent=>result)中的值。是真的?这是使用 API 更新字段“结果”(UI)的另一种方式吗?
foreach (EA.IDualScenario es in element.Scenarios)
{
foreach (EA.IDualScenarioStep ess in es.Steps)
{
if (ess.Name.Trim().Length == 0 &&
ess.Uses.Trim().Length == 0 &&
ess.Results.Trim().Length == 0
)
{
ess.Name = "TEST_Name";
ess.Uses = "TEST_Uses";
ess.Results = "TEST_Results";
ess.Update();
}
}
es.Update();
}
element.Update();
【问题讨论】:
-
看起来您正在更新步骤和场景,这是您需要做的(不需要更新元素)。但是,我不知道有任何方法(至少在 GUI 中)创建一个名称为空的步骤,这就是您要搜索的内容。您绝对确定“if”表达式的计算结果为真吗?
-
是的,我非常确定,'if' 表达式有时会计算为真。也许这些带有“空”字段的步骤是通过使用 API 而不是 GUI 创建的,我不知道。这不是我的 EAP。
-
发现,方法 Update() 和 Refresh() 正在工作,但是... 方法 Update() (API) 更新了提交的“结果”而不是“结果”。 GUI 中仅显示“结果”(数据库,t_objectscenarios.XMLContent=>result)中的值。
-
当我更新步骤时,数据库中的字段“结果”(使用 API)添加了一个新字段 t_objectscenarios.XMLContent=>results 具有新值,但归档 t_objectscenarios.XMLContent=>result 仍然是现在并且有一个旧值,最后,在 GUI 中,“结果”列中没有任何变化。我认为这是不正确的,这是真正的问题。
-
您使用的是什么版本?我没有在 EA 10 或 11 中使用 VBScript 获得该行为,但我获得了正确的行为(XML 中的“结果”标签已更新,GUI 中的“结果”列已更新)。
标签: c# add-in enterprise-architect scenarios