SOAPでこれを行う方法はわかりませんが、REST APIを使用すると簡単です:
http://developer.rallydev.com/help/java-toolkit-rally-rest-api
RallyRestApi restApi = new RallyRestApi(new URI("https://rally1.rallydev.com"),
"user@company.com", "password");
QueryRequest stories = new QueryRequest("hierarchicalrequirement");
stories.setFetch(new Fetch("FormattedID", "Name", "ScheduleState"));
stories.setOrder("Iteration.EndDate DESC,Rank DESC");
QueryResponse queryResponse = restApi.query(stories);
if (queryResponse.wasSuccessful()) {
for (JsonElement result : queryResponse.getResults()) {
JsonObject story = result.getAsJsonObject();
System.out.println(String.format("\t%s - %s: ScheduleState=%s",
story.get("FormattedID").getAsString(),
story.get("Name").getAsString(),
story.get("ScheduleState").getAsString()));
}
}