2014-04-01 41 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

相关问题