如何为RTC工作项的“Found In”属性设置值?

时间:2014-04-01 15:57:11

标签: java api attributes rtc workitem

我正在尝试使用普通的Java API创建和更新RTC工作项。 除了“Found In”之外,我能够设置我需要的大部分属性。

我尝试过类似的事情:

IAttribute FoundInAttribute = workItemClient.findAttribute(projectArea,“Found In”,null); wc.getWorkItem()。setValue(FoundInAttribute,“我想设置的值”);

我得到一个例外,说setValue()期望一个IDeliverableHandle对象而不是String。

如何获得我需要的IDeliverableHandle?

谢谢, 凯恩

1 个答案:

答案 0 :(得分:0)

OP Kane Zeng报告in the comments,在下面的解决方案中,有一个正在运行:

  

我用:

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

我可以得到我现在需要的东西


原始答案:

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);
  

因此,对于Found In属性,您将执行以下操作

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