How to query defects for a secified iteration in Java Client
I want to query defects from RTC with a specific "planned For" (Iteration).
Below my code that i tried. But with that code i got an Exception.
I'm using RTC 4 based clients.
AttributeExpression defectFilter = new AttributeExpression(getQueryableAttribute(IWorkItem.TYPE_PROPERTY), AttributeOperation.EQUALS, "defect");
AttributeExpression targetFilter = new AttributeExpression(getQueryableAttribute(IWorkItem.TARGET_PROPERTY),AttributeOperation.EQUALS,plannedForToBeFiltered );
Term term_List = new Term(Operator.AND);
term_List.add(defectFilter);
term_List.add(targetFilter);
Term term = new Term(Operator.AND);
term.add(term_List);
IQueryResult<IResolvedResult<IWorkItem>> result =
mQueryClient.getResolvedExpressionResults(mProcessArea.getProjectArea(), term, IWorkItem.FULL_PROFILE);
java.lang.IllegalArgumentException: Argument must be an instance of IAuditableHandle
at com.ibm.team.workitem.common.internal.model.SetAttributeType.toString(SetAttributeType.java:73)
at com.ibm.team.workitem.common.internal.expression.AttributeValueFactory$ConstantValue.saveState(AttributeValueFactory.java:58)
at com.ibm.team.workitem.common.expression.AttributeExpression.saveValueProxy(AttributeExpression.java:174)
at com.ibm.team.workitem.common.expression.AttributeExpression.saveState(AttributeExpression.java:164)
at com.ibm.team.workitem.common.expression.Term.saveState(Term.java:209)
at com.ibm.team.workitem.common.expression.Term.saveState(Term.java:209)
at com.ibm.team.workitem.common.internal.expression.XMLExpressionSerializer.serialize(XMLExpressionSerializer.java:137)
at com.ibm.team.workitem.common.internal.expression.XMLExpressionSerializer.serialize(XMLExpressionSerializer.java:56)
at com.ibm.team.workitem.common.internal.query.impl.QueryDescriptorCustomImpl.setExpression(QueryDescriptorCustomImpl.java:56)
at com.ibm.team.workitem.common.internal.query.QueryCommon.createQuery(QueryCommon.java:268)
at com.ibm.team.workitem.common.internal.query.QueryCommon.getResolvedExpressionResults(QueryCommon.java:123)
at RTCHandler.getServiceRequests(RTCHandler.java:256)
at PTFClosingInfo.main(PTFClosingInfo.java:40)
Below my code that i tried. But with that code i got an Exception.
I'm using RTC 4 based clients.
AttributeExpression defectFilter = new AttributeExpression(getQueryableAttribute(IWorkItem.TYPE_PROPERTY), AttributeOperation.EQUALS, "defect");
AttributeExpression targetFilter = new AttributeExpression(getQueryableAttribute(IWorkItem.TARGET_PROPERTY),AttributeOperation.EQUALS,plannedForToBeFiltered );
Term term_List = new Term(Operator.AND);
term_List.add(defectFilter);
term_List.add(targetFilter);
Term term = new Term(Operator.AND);
term.add(term_List);
IQueryResult<IResolvedResult<IWorkItem>> result =
mQueryClient.getResolvedExpressionResults(mProcessArea.getProjectArea(), term, IWorkItem.FULL_PROFILE);
java.lang.IllegalArgumentException: Argument must be an instance of IAuditableHandle
at com.ibm.team.workitem.common.internal.model.SetAttributeType.toString(SetAttributeType.java:73)
at com.ibm.team.workitem.common.internal.expression.AttributeValueFactory$ConstantValue.saveState(AttributeValueFactory.java:58)
at com.ibm.team.workitem.common.expression.AttributeExpression.saveValueProxy(AttributeExpression.java:174)
at com.ibm.team.workitem.common.expression.AttributeExpression.saveState(AttributeExpression.java:164)
at com.ibm.team.workitem.common.expression.Term.saveState(Term.java:209)
at com.ibm.team.workitem.common.expression.Term.saveState(Term.java:209)
at com.ibm.team.workitem.common.internal.expression.XMLExpressionSerializer.serialize(XMLExpressionSerializer.java:137)
at com.ibm.team.workitem.common.internal.expression.XMLExpressionSerializer.serialize(XMLExpressionSerializer.java:56)
at com.ibm.team.workitem.common.internal.query.impl.QueryDescriptorCustomImpl.setExpression(QueryDescriptorCustomImpl.java:56)
at com.ibm.team.workitem.common.internal.query.QueryCommon.createQuery(QueryCommon.java:268)
at com.ibm.team.workitem.common.internal.query.QueryCommon.getResolvedExpressionResults(QueryCommon.java:123)
at RTCHandler.getServiceRequests(RTCHandler.java:256)
at PTFClosingInfo.main(PTFClosingInfo.java:40)
Accepted answer
Solved .
We used some of the code from the link above to find the correct iteration and use the iterationhandle as input for the AttributeExpression.
IIterationHandle iterationHandle = findIteration (mProcessArea.getProjectArea(), l, RTCHandler.BYNAME);
if (iterationHandle != null) {
AttributeExpression targetFilter = new AttributeExpression(getQueryableAttribute(IWorkItem.TARGET_PROPERTY),AttributeOperation.EQUALS,iterationHandle );
term_List.add(targetFilter);
}
We used some of the code from the link above to find the correct iteration and use the iterationhandle as input for the AttributeExpression.
IIterationHandle iterationHandle = findIteration (mProcessArea.getProjectArea(), l, RTCHandler.BYNAME);
if (iterationHandle != null) {
AttributeExpression targetFilter = new AttributeExpression(getQueryableAttribute(IWorkItem.TARGET_PROPERTY),AttributeOperation.EQUALS,iterationHandle );
term_List.add(targetFilter);
}
Comments
Lauren Hayward Schaefer
JAZZ DEVELOPER Jan 20 '14, 7:13 a.m.Thomas Immel
Jan 20 '14, 8:43 a.m.Thomas Immel
Jan 20 '14, 8:45 a.m.Lauren Hayward Schaefer
JAZZ DEVELOPER Jan 21 '14, 7:05 a.m.sam detweiler
Jan 21 '14, 7:58 a.m.