Vbscript Sparx企业架构师获得标记的´;值来自于otDiagram VB脚本代码
我有一个UML图,所有组件都有标记值。我想用元素名检索标记的值。类似这样的东西来获取标记值,我有代码,但不知道如何为图表启动它Vbscript Sparx企业架构师获得标记的´;值来自于otDiagram VB脚本代码,vbscript,enterprise-architect,Vbscript,Enterprise Architect,我有一个UML图,所有组件都有标记值。我想用元素名检索标记的值。类似这样的东西来获取标记值,我有代码,但不知道如何为图表启动它 function TVGetElementTaggedValue( theElement, taggedValueName, defaultValue ) TVGetElementTaggedValue = defaultValue if not theElement is nothing and Len(taggedValueName) > 0
function TVGetElementTaggedValue( theElement, taggedValueName, defaultValue )
TVGetElementTaggedValue = defaultValue
if not theElement is nothing and Len(taggedValueName) > 0 then
dim taggedValue as EA.TaggedValue
set taggedValue = theElement.TaggedValues.GetByName( taggedValueName )
if not taggedValue is nothing then
TVGetElementTaggedValue = taggedValue.Value
end if
end if
end function
图表上没有标记的值。最后,这是我得到的解决方案,它最终成功了:
Repository.gettreeselectioneditemtype()=otDiagram
Roles=TVGetElementTaggedValue(元素,“角色”、“角色”、“角色”)
谢谢您的帮助。图表不是一个好的工具!你想得到图表对象的标记值吗?是的,这是正确的,这是一个uml图表,我有我的标记值,想用vb脚本检索。这是一个uml图表,我有我的标记值,想用vb脚本检索。根据Ajay的自我回答,你有什么要做的吗在您的答案中更改/查看/增强?@xmojmr不太可能,无论自我回答中的代码在做什么(我不太清楚),它都不会对图表上定义的标记值做任何事情。@GeertBellekens对我来说,它的工作实际上是我在使用相同的代码。但请确定图表的类型。我的意思是,请使用以下命令:如果(Repository.gettreselectedItemType()=otDiagram)'显示脚本输出窗口Repository.EnsureOutputVisible“script”将图形变暗为EA.Diagram设置为Diagram=Repository.GetTreeSelectedObject(),然后调用函数:TVGetElementTaggedValue(元素,“您的taggedvaluename”,“”,“”)
Function TVGetElementTaggedValue( theElement, taggedValueName, defaultValueMissing, defaultValueEmpty )
if not theElement is nothing and Len(taggedValueName) > 0 then
dim taggedValue as EA.TaggedValue
set taggedValue = theElement.TaggedValues.GetByName( taggedValueName )
if taggedValue is nothing then
TVGetElementTaggedValue = defaultValueMissing
' Dump warning
'Session.Output(theElement.Name & " " & taggedValueName & " TAG Missing")
else
if taggedValue.Value = "" then
TVGetElementTaggedValue = defaultValueEmpty
' Dump warning
'Session.Output(theElement.Name & " " & taggedValueName & " Value Missing")
else
TVGetElementTaggedValue = taggedValue.Value
end if
end if
end if
end function
Session.Output("Roles: " + CStr(Roles))