我想我会和大家分享一些我发现在我们的工作中很有用的东西。我们正在捕获所有业务系统的架构概述。它们包含(至少)一个组件图,用于捕获应用程序体系结构的高级视图,以及一个技术架构图,捕捉不同部署实例中的服务器以及部署在它们上的内容(使用可追溯性链接返回到应用程序架构组件)。
我们有一个模型,其中包含了所有可重用的信息对象。这个模型在图书馆里,所以每个人都可以随时使用它。硬件服务器就是这个模型中的对象之一。如果我们想在物理服务器上识别虚拟机,或者在虚拟机中使用主机名命名服务器,我们已经使用嵌套的硬件服务器对象进行了设置。
对于特定的System XX技术模型,我们会复制副本(出于一些原因,我们没有使用快捷方式,但这是另一个主题),并在描述时使用它们特定的业务系统。如果我最终在这些模型中的一个模型中使用子硬件服务器,那么找出父服务器是一件痛苦的事,如果您使用的是从这个模型生成的报告,那么更痛苦的事。我想在查看硬件服务器时,一眼就能看到这些信息。
可能有更好的方法来处理它,但为了它的价值,下面是我们所做的……
1。创建扩展属性–首先需要一个属性来存储数据。其目的是用父级的名称来填充它对象。在作为EA模型的扩展,我们定义了一个扩展属性("父\服务器")。另外,人工智能的技术有哪些,因为我们的一个用例是在查看复制对象时,我们在方法脚本中添加了以下内容,海量数据,以便在用户按下元数据项旁边的编辑按钮时获得更多信息。
Sub%Method%(obj)
在上实现您的方法
Dim modelFileName
方法中的输出"
if目标副本则
的输出"是副本"
如果不是obj.SourceReplication.OriginalStatus源="打开"然后
输出"未打开"
模型文件名=obj.SourceReplication.OriginalModel原始模型.TargetModelFileName
如果文件不存在(modelFileName),则
输出"文件不存在"
msgbox"文件:"&modelFileName&"不存在!"
Exit Sub
end if
Output"opening replica original model:"&modelFileName
OpenModel modelFileName,omf\u DontOpenView
end if
obj.SourceReplication.OriginalObject对象.父.ShowPropertySheet()
否则
对象父对象ShowPropertySheet()
结束如果
结束子
2。脚本来填充字段–然后我们需要一些东西来填充字段。如前所述,几乎所有的硬件服务器都在一个模型中,然后在其他模型中使用复制。把它们放在同一个地方很方便。在另一个扩展中(如果需要,也可以是同一个扩展),我们为模型对象创建了以下内容–这将填充字段…
Sub%Method%(obj)
ProcessHardwareServers obj
End Sub
Sub ProcessHardwareServers(obj)
Dim replica,modelFileName,parent,parentTitle,硬件
对于每个对象硬件服务器
如果硬件副本那么
如果不是hws.SourceReplication.OriginalStatus原始状态="打开"然后
"模型文件名=hws.SourceReplication.OriginalModel源复制.TargetModelFileName
'输出"打开副本原始模型:"&modelFileName
'打开model modelFileName,omf\u DontOpenView
'结束if
输出硬件名称+"是副本–改为修改源模型中的源对象"
"set parent=hws.SourceReplication.OriginalObject.Parent
else
set Parent=工作流父级
如果结束
如果父类名称= "硬件服务器"然后
输出"填充:"+硬件名称+"带"+父项名称
家长职位=父项名称
else
parentTitle="
"end if
hws.SetExtendedAttributeText文件"父服务器",parentTitle
处理嵌套硬件服务器
处理硬件服务器硬件
结束如果
下一步
如果对象类名称="硬件服务器"然后
退出Sub
结束如果
dim pack
为当前型号的所有软件包/中的每个软件包
评分目标包
迭代所有包和子包的递归
ProcessHardwareServerpack
next
End Sub
最后,我们在Tools菜单中添加了一个条目来执行这个方法。编辑库模型的权限受到相当严格的控制,因此作者知道,游戏返利,当他们添加一组服务器时,物联网大会,他们应该附加扩展并运行它。后来,自助建站服务,当用户在某个模型中使用复制时,他们的HardwareServer对象中嵌入了一个父服务器元数据项。
正如我在开始时所说的,也许有更好的方法,但我们没有找到一种满足我们所有要求的方法。不管它值多少钱,也许这对某人有用。
谢谢
布鲁斯
文章不错,布鲁斯。我做了一些类似的工作,将实体的最终超类型的名称添加到实体属性中。