Как установить значение для атрибута «Найдено в» для рабочего места RTC?

1

Я пытаюсь создать и обновить рабочий элемент RTC, используя простой Java API. Я могу установить большинство необходимых мне атрибутов, кроме "Найдено в".

Я попробовал что-то вроде:

IAttribute FoundInAttribute = workItemClient.findAttribute(projectArea, "Found In", null); wc.getWorkItem(). setValue (FoundInAttribute, "Значение, которое я хочу установить");

И я получил исключение, поскольку setValue() ожидает объект IDeliverableHandle, а не String.

Как я могу получить IDeliverableHandle, в котором я нуждаюсь?

Спасибо, Кейн

Теги:
attributes
workitem
rtc

1 ответ

0
Лучший ответ

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

(там вы найдете аналогичный подход)

  • 0
    Спасибо, первый помог. Я использую IDeliverableHandle deliverable= workItemClient.findDeliverableByName(projectArea, currentFoundIn ,IDeliverable.SMALL_PROFILE ,null); и я могу получить то, что мне нужно сейчас
  • 0
    @ KaneZeng Отлично! Я включил ваш вывод в ответ для большей наглядности.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню