DXL OLE メカニズムを使用して、 Enterprise Architect 12からダイアグラムの変更時間を取得するにはどうすればよいですか?
詳細:
EA からダイアグラムを取得し、それらを OLE オブジェクトとしてIBM Rational DOORS 9.5に統合したいと考えています。これはすでに機能しています。この操作が本当に必要かどうかを判断するために、ダイアグラムを取得する前に、EA ダイアグラムと DOORS オブジェクトの変更日を比較するつもりです。
問題は、EA がダイアグラム属性EA.Diagram.ModifiedDateを提供し、ダイアグラムの変更日をデータ型Variantとして返すことです。これを DXL 内で処理するにはどうすればよいですか? の結果パラメーターoleGet()
は、タイプの 1 つにすることができますstring|int|bool|char|OleAutoObj
。構造化された型はありません (おそらくDxlObject
)。string パラメーターにも int パラメーターにも、呼び出し後に有用なデータは含まれません。null 値だけです。
テストコード:
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 のサポート チーム(商用、有料の顧客が利用可能) は助けにならず、この質問をサービス チームに転送することを提案しました(追加料金で)。むしろ残念です。