2013-05-07 64 views
0

關於企業架構師,我有幾個簡短的問題。企業架構師api:將元素添加到集合

我的問題是關於自動化界面。按照此頁上提供的說明進行操作:http://www.sparxsystems.com/uml_tool_guide/sdk_for_enterprise_architect/colle ...爲了向集合(和.eap文件)添加新元素,它不添加元素。我可以從元素中獲取數據,修改甚至刪除它們,但添加新元素不起作用?提供

說明:

呼叫的AddNew添加一個新的項目。 根據需要修改該項目。 調用該項目的更新以將其保存到數據庫。 在集合上調用刷新以將其包含在當前集合中。

我的Java例如:

元素在模型中的所有元素的集合...

org.sparx.Element elementEa = elements.AddNew("Requirement", "non-functional"); 
elementEa.Update();   
elements.Refresh(); 

與API是有可能改變的ID或GUID元素因爲在org.sparx中沒有指定方法嗎?

最後一件事......是否可以在EA中創建一個自定義元素,例如一個不具備難度,優先級等標準屬性的需求,但是會有其他的東西? (正常特性,不是標籤值)

非常感謝你,

阿列克

回答

2

到的AddNew()的參數是名稱和類型,所以創造你應該指定「SomeRequirementName」的要求元素, 「需求」。

您不能通過API更改ID或GUID,並且如果您的模型(連接器將被懸空,元素將從圖表等消失),您的模型會崩潰並燒壞。

藉助MDG技術,您可以根據自己的視覺表示形狀(形狀腳本)等創建非常詳細的定型元素,但如果您在創建具有其自己的屬性對話框的元素類型後,答案是否定的;在API中沒有自定義對話框的鉤子。

0
Collection<Package> packageCollection = myPackage.GetPackages(); 
Package consolidatedCfsSpecPackage = packageCollection.AddNew("somePackageName", ""); 
if (!consolidatedCfsSpecPackage.Update()) { 
    System.err.println("Not Updated: somePackageName"); 
} 
packageCollection.Refresh(); 

這對我有用。我建議你檢查你調用的方法返回值elementEa.Update()。如果它返回false,則可以通過調用elementEa.GetLastError()來獲取原因。