2014-04-01 39 views
1

我想通過使用普通Java API來創建和更新RTC工作項。 我能夠設置除「找到」以外我需要的大多數屬性。如何爲RTC工作項目的「找到」屬性設置值?

我試圖類似:

IAttribute FoundInAttribute = workItemClient.findAttribute(projectArea, 「在此找到」,NULL); wc.getWorkItem()。setValue(FoundInAttribute,「我想要設置的值」);

而我得到一個異常說setValue()期待一個IDeliverableHandle對象而不是String。

如何獲得我需要的IDeliverableHandle?

感謝, 凱恩

回答

0

OP Kane Zeng報告in the comments的是,下文通過以下方法解決,一個是工作:

我用:

IDeliverableHandle deliverable = 
    workItemClient.findDeliverableByName(projectArea, currentFoundIn, 
    IDeliverable.SMALL_PROFILE ,null); 

an d我能得到什麼,我現在需要


原來的答覆:

That thread提到:

IDeliverableHandle deliverable= ... // Find a deliverable using one of 
the IWorkItemClient#findDeliverable* methods 

IAttribute foundIn= workItemClient.findAttribute(project, 
    IWorkItem.FOUND_IN_PROPRTY, monitor); 
workItem.setValue(foundIn, deliverable); 

這似乎類似於this thread

的屬性可以是通過使用

獲得
IWorkItemCommon#findAttribute(IProjectAreaHandle projectArea, 
    String attributeId, IProgressMonitor monitor); 

所以對於此找到屬性,你會做以下

IAttribute foundIn= workItemClient.findAttribute(projectArea, 
    IWorkItem.FOUND_IN_PROPERTY, monitor); 
IDeliverableHandle deliverable = (IDeliverableHandle)workItem.getValue(foundIn); 

一個more recent answer給出:

IAttribute foundInAttribute = myWorkItemClient.findAttribute(projectAreaHandle, "foundIn" , null); 
IDeliverableHandle foundInDeliverableHandle = (IDeliverableHandle) currentWI.getValue(foundInAttribute); 
if (foundInDeliverableHandle != null){ 
    IDeliverable deliverable = (IDeliverable) this.repository.itemManager().fetchCompleteItem(foundInDeliverableHandle, IItemManager.DEFAULT, null); 
} 

(你會發現一個similar approach there

+0

謝謝,第一個幫助。我使用'IDeliverableHandle交付物= workItemClient.findDeliverableByName(projectArea,currentFoundIn,IDeliverable.SMALL_PROFILE,null);'我可以得到我現在需要的 –

+0

@KaneZeng太棒了!我已將您的結論納入答案中,以獲得更多的知名度。 – VonC

相關問題