【问题标题】:How can I set value for "Found In" Attribute for a RTC workitem?如何为 RTC 工作项的“发现于”属性设置值?
【发布时间】:2014-04-01 15:57:10
【问题描述】:

我正在尝试使用纯 Java API 创建和更新 RTC 工作项。 除了“发现于”之外,我可以设置我需要的大部分属性。

我尝试了类似的方法:

IAttribute FoundInAttribute = workItemClient.findAttribute(projectArea, "Found In" , null); wc.getWorkItem().setValue(FoundInAttribute, "我要设置的值");

我得到一个异常,说 setValue() 需要一个 IDeliverableHandle 对象而不是 String。

如何获得所需的 IDeliverableHandle?

谢谢, 凯恩

【问题讨论】:

    标签: java api attributes rtc workitem


    【解决方案1】:

    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

    【讨论】:

    • 谢谢,第一个确实有帮助。我使用IDeliverableHandle deliverable= workItemClient.findDeliverableByName(projectArea, currentFoundIn ,IDeliverable.SMALL_PROFILE ,null);,我现在可以得到我需要的东西
    • @KaneZeng 太棒了!为了提高知名度,我已将您的结论包含在答案中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多