Я пытаюсь создать и обновить рабочий элемент RTC, используя простой Java API. Я могу установить большинство необходимых мне атрибутов, кроме "Найдено в".
Я попробовал что-то вроде:
IAttribute FoundInAttribute = workItemClient.findAttribute(projectArea, "Found In", null); wc.getWorkItem(). setValue (FoundInAttribute, "Значение, которое я хочу установить");
И я получил исключение, поскольку setValue() ожидает объект IDeliverableHandle, а не String.
Как я могу получить IDeliverableHandle, в котором я нуждаюсь?
Спасибо, Кейн
OP Kane Zeng сообщает в комментариях, что из нижеприведенных ниже решений один работает:
Я использую:
IDeliverableHandle deliverable =
workItemClient.findDeliverableByName(projectArea, currentFoundIn,
IDeliverable.SMALL_PROFILE ,null);
и я могу получить то, что мне нужно сейчас
Оригинальный ответ:
В этой теме упоминается:
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);
Это похоже на эту тему:
Атрибуты можно получить, используя
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);
Более поздний ответ дает:
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);
}
(там вы найдете аналогичный подход)
IDeliverableHandle deliverable= workItemClient.findDeliverableByName(projectArea, currentFoundIn ,IDeliverable.SMALL_PROFILE ,null);
и я могу получить то, что мне нужно сейчас