如何使用 DXL OLE 机制从Enterprise Architect 12获取图表的修改时间?
细节:
我想从 EA 检索图表并将它们作为 OLE 对象集成到IBM Rational DOORS 9.5中。这已经在起作用了。我打算在检索图表之前比较 EA 图表和 DOORS 对象的修改日期,以确定是否真的需要此操作。
问题是,EA 提供了一个图表属性EA.Diagram.ModifiedDate,它将图表的修改日期作为数据类型Variant返回。我如何在 DXL 中处理这个问题?的结果参数oleGet()
可以是其中一种类型string|int|bool|char|OleAutoObj
。没有结构化类型(可能是DxlObject
)。string 和 int 参数在调用后都不包含任何有用的数据——只是空值。
测试代码:
OleAutoObj eaRepository, eaProject, eaDiagram
OleAutoObj eaApp = oleGetAutoObject("EA.App")
OleAutoArgs autoArgs = create
string guid = "{729F140F-9DA4-4ff6-A9B2-75622AD1C22D}"
// connect to an existing EA instance
oleGet (eaApp, "Repository", eaRepository)
oleMethod (eaRepository, "GetProjectInterface", autoArgs, eaProject)
// call EA to a diagram which has this GUID
put(autoArgs, guid)
oleMethod(eaRepository, "GetDiagramByGuid", autoArgs, eaDiagram)
delete autoArgs
// access diagram attributes
string eaModifiedDate // DXL accepts [string|int|bool|char|OleAutoObj] only
oleGet(eaDiagram, "ModifiedDate", eaModifiedDate)
print "ModifiedDate = '" eaModifiedDate"'\n"
IBM 的支持团队(商业,可用于付费客户)无法提供帮助,并建议将此问题转发给服务团队(额外收费)。比较失望。