如何使用DXL OLE機制從Enterprise Architect 12獲取圖表的修改時間?使用DXL從Enterprise Architect檢索「Variant」數據類型
詳情:
我想從EA檢索圖,並將它們作爲OLE對象集成到IBM Rational DOORS中9.5。這已經在工作。我打算在檢索圖表前比較EA圖表和DOORS對象的修改日期,以確定是否真的需要此操作。
問題是,EA提供了圖屬性EA.Diagram.ModifiedDate,它將圖的修改日期返回爲數據類型變體。我如何在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的支持團隊(商業,供付費用戶)不能幫助,並建議對這個問題轉發到服務團隊(額外的$ S)。相當令人失望。
我在Perl中使用它,在那裏我必須使用'variant-> value'來獲取內容。 –
我猜想OleAutoObj應該有一個'value'屬性。 –