It's all about the answers!

Ask a question

Can we download the files attached to workitems in RTC?


Neha Nayak (1535) | asked Oct 09 '17, 8:53 a.m.

I need to export files attached to multiple work items in one folder. is this possible using any plug in.

2 answers



permanent link
Ralph Schoon (61.1k33643) | answered Oct 09 '17, 9:04 a.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER

permanent link
Luca Martinucci (1.0k284109) | answered Oct 10 '17, 2:44 a.m.

I have done that in a plugin (follow-up action), using server-side Java API.

This works for only one work item, but you can use thes snippets as a starting point, by adapting them to plain Java API.

public IAttachment getAttachment (IWorkItem workItem)
    throws TeamRepositoryException {
    IAttachment attachment = null;
    IWorkItemReferences workItemReferences = saveParameter.getNewReferences();
    List<IReference> attachmentReferencesList = workItemReferences.getReferences(WorkItemEndPoints.ATTACHMENT);
    for (IReference attachmentReference : attachmentReferencesList) {
    if (attachmentReference.isItemReference()) {
IItemHandle referencedItem = ((IItemReference) attachmentReference).getReferencedItem();
String itemKind = referencedItem.getItemType().getName();
if (referencedItem instanceof IAttachmentHandle) {
attachment = (IAttachment) repositoryItemService.fetchItem(referencedItem, IRepositoryItemService.COMPLETE);
break;
}
    }
    }
    return attachment;
}
  
public boolean saveAttachment(IAttachment attachment)
    throws TeamRepositoryException {   
    boolean saved = false;
    try {
    String attachmentName = attachment.getName();
    String attachmentPath = attachmentsFolder + "\" + attachmentName;
    File save = new File(attachmentPath);
    OutputStream out = new FileOutputStream(save);
    try {
    contentService.retrieveContent(attachment.getContent(), out);
    } finally {
    out.close();
    }
    saved = true;
    } catch (FileNotFoundException e) {
    saved = false;
    } catch (IOException e) {
    saved = false;
    }
    return saved;
}

Your answer


Register or to post your answer.