尝试在Jscript中更新Enterprise Architect StateMachine连接器时出错

时间:2015-05-28 16:31:52

标签: enterprise-architect

更新Enterprise Architect连接器时,出现以下错误消息:

StateFlow is not legal for State --> State, Line:47 

我想要更新的原因是我想在我的一个连接器中添加一个Stereotype。 我已经通过SQL Quierie搜索了一个特定的EA.Element来搜索1 GUID。

"SELECT * FROM t_object WHERE ea_guid='<Some specific GUID>'"

从这个元素我选择了唯一一个自我连接的连接器。 如果我理解正确,我必须设置selftransition标签,然后更新连接器。但是当我更新时,会显示上面的错误消息。

我的代码:

if(element.Elements.Count!=0)//element is Propably a comp state or Statemachine
    {   
        connectors = element.Connectors; 
        for(var j = 0; j<connectors.Count; j++)
        {
            connector = connectors.GetAt(j);
            if(connector.ClientID == connector.SupplierID)
            {
                tempElement = element;
                connector.Stereotype="New Stereotype";
                connector.Update();

            }   
        }       
    }

图片中的红色转换是抛出错误的转换。

enter image description here

错误是什么意思,为什么我无法更新连接器? 如果你有其他建议如何将连接符添加到连接器,我很乐意apreciate他们。

1 个答案:

答案 0 :(得分:0)

这似乎是一个错误,因为StateFlow似乎是两个国家之间的合法连接器类型。

您可以尝试取消选中选项中的严格连接器语法设置 enter image description here

如果您在最新版本中仍然遇到此问题,那么您可以report将其作为错误

如果没有任何帮助,您可以尝试直接绕过API和数据库。 尝试像

这样的东西
Repository.Execute("update t_connector set stereotype = 'MyStereo' where connector_ID = 1234");

当然,用实际的connector_ID替换1234