Rally 拉力赛:检查迭代是否落在发行版中

Rally 拉力赛:检查迭代是否落在发行版中,rally,Rally,我必须检查一个给定的迭代是否在一个给定的版本下。例如:迭代5.2在版本PSI5下。我想唯一的方法是检查:IterationStartDate>=ReleaseStartDate&&IterationEndDate下面是一个按发布日期查询迭代的示例: public class FindIterationsByReleaseDate { public static void main(String[] args) throws URISyntaxException, IOException

我必须检查一个给定的迭代是否在一个给定的版本下。例如:迭代5.2在版本PSI5下。我想唯一的方法是检查:
IterationStartDate>=ReleaseStartDate&&IterationEndDate下面是一个按发布日期查询迭代的示例:

public class FindIterationsByReleaseDate {

    public static void main(String[] args) throws URISyntaxException, IOException {


        String host = "https://rally1.rallydev.com";
            String username = "user@co.com";
            String password = "secret";
            String projectRef = "/project/1234";
            String applicationName = "RESTExampleFindReleasesByProject";

            RallyRestApi restApi = null;

        try {
                restApi = new RallyRestApi(
                        new URI(host),
                        username,
                        password);
                restApi.setApplicationName(applicationName); 

                System.out.println(restApi.getWsapiVersion()); 

                QueryRequest  releaseRequest = new QueryRequest("Release");
                releaseRequest.setFetch(new Fetch("ReleaseStartDate", "ReleaseDate"));
                releaseRequest.setScopedDown(false);
                releaseRequest.setScopedUp(false);
                releaseRequest.setProject(projectRef);
                releaseRequest.setQueryFilter(new QueryFilter("Name", "=", "r1"));

                QueryResponse releaseQueryResponse = restApi.query(releaseRequest);

                JsonObject releaseJsonObject = releaseQueryResponse.getResults().get(0).getAsJsonObject();

                String rsd = releaseJsonObject.get("ReleaseStartDate").getAsString();
                String rd = releaseJsonObject.get("ReleaseDate").getAsString();

                QueryRequest  iterationRequest = new QueryRequest("Iteration");
                iterationRequest.setFetch(new Fetch("Name","StartDate","EndDate"));
                iterationRequest.setScopedDown(false);
                iterationRequest.setScopedUp(false);
                iterationRequest.setProject(projectRef);
                iterationRequest.setQueryFilter(new QueryFilter("StartDate", ">=", rsd).and(new QueryFilter("EndDate", "<=", rd)));

                QueryResponse iterationQueryResponse = restApi.query(iterationRequest);
                int numberOfIteraitons = iterationQueryResponse.getTotalResultCount();
                System.out.println(numberOfIteraitons);
                if(numberOfIteraitons >0){
                    for (int i=0;i<numberOfIteraitons;i++){
                        JsonObject iterationJsonObject = iterationQueryResponse.getResults().get(i).getAsJsonObject();
                        System.out.println(iterationJsonObject.get("Name"));
                    }
                }       
        }
        finally{
            if (restApi != null) {
                restApi.close();
            }
        }

    }
}
公共类findItemationsByReleaseDate{
公共静态void main(字符串[]args)抛出URISyntaxException、IOException{
字符串主机=”https://rally1.rallydev.com";
字符串用户名=”user@co.com";
字符串password=“secret”;
字符串projectRef=“/project/1234”;
字符串applicationName=“restexamplefindreleasebyproject”;
RallyRestApi restApi=null;
试一试{
restApi=新的RallyRestApi(
新URI(主机),
用户名,
密码);
restApi.setApplicationName(applicationName);
System.out.println(restApi.getWsapiVersion());
QueryRequest releaseRequest=新的QueryRequest(“发布”);
setFetch(newfetch(“ReleaseStartDate”、“ReleaseDate”);
releaseRequest.setScopedDown(假);
releaseRequest.setScopedUp(假);
releaseRequest.setProject(projectRef);
setQueryFilter(新的QueryFilter(“名称”,“=”,“r1”));
QueryResponse releaseQueryResponse=restApi.query(releaseRequest);
JsonObject releaseJsonObject=releaseQueryResponse.getResults().get(0.getAsJsonObject();
字符串rsd=releaseJsonObject.get(“ReleaseStartDate”).getAsString();
字符串rd=releaseJsonObject.get(“ReleaseDate”).getAsString();
QueryRequest迭代请求=新的QueryRequest(“迭代”);
setFetch(newfetch(“Name”、“StartDate”、“EndDate”));
iterationRequest.setScopedDown(false);
iterationRequest.setScopedUp(false);
iterationRequest.setProject(projectRef);

setQueryFilter(新的QueryFilter(“StartDate”),“>=”,rsd)和(新的QueryFilter(“EndDate”),“这可以在不查询Rally的情况下完成吗?我有一个发布和迭代的ArrayList,我只需要检查每个发布,如果有迭代根据其开始和结束日期落在该发布中。我不想在Rally中查询它。为简单起见,让我们假设我有:1.String startDate=iteration.get(“startDate”).getAsString();2.String endDate=iteration.get(“endDate”).getAsString();如何检查startDate是否=”,rsd)和(新的QueryFilter(“EndDate”),“我不想在Rally中查询它。我可以将这些日期字符串转换为某个日期类并进行比较吗?我唯一的问题是,我是否可以将字符串rd和字符串rsd转换为一些等效的日期类对象并进行比较。根据API文档,QueryFilter将字符串值作为参数:QueryFilter(字符串字段、字符串运算符、字符串值)我不确定我是否理解您不在Rally中查询的意思,但如果这与Rally无关,并且是一个Java问题,将字符串转换为日期,然后比较日期,那么这篇文章可能会有帮助:“Java将字符串转换为日期,然后比较”
DateFormat iterationStartDate = new SimpleDateFormat(iter.StartDate()); //iter.StartDate() is of type String
DateFormat iterationEndDate = new SimpleDateFormat(iter.EndDate());
DateFormat releaseStartDate = new SimpleDateFormat(release.StartDate());
DateFormat releaseEndDate = new SimpleDateFormat(release.EndDate());
//then compare
public class FindIterationsByReleaseDate {

    public static void main(String[] args) throws URISyntaxException, IOException {


        String host = "https://rally1.rallydev.com";
            String username = "user@co.com";
            String password = "secret";
            String projectRef = "/project/1234";
            String applicationName = "RESTExampleFindReleasesByProject";

            RallyRestApi restApi = null;

        try {
                restApi = new RallyRestApi(
                        new URI(host),
                        username,
                        password);
                restApi.setApplicationName(applicationName); 

                System.out.println(restApi.getWsapiVersion()); 

                QueryRequest  releaseRequest = new QueryRequest("Release");
                releaseRequest.setFetch(new Fetch("ReleaseStartDate", "ReleaseDate"));
                releaseRequest.setScopedDown(false);
                releaseRequest.setScopedUp(false);
                releaseRequest.setProject(projectRef);
                releaseRequest.setQueryFilter(new QueryFilter("Name", "=", "r1"));

                QueryResponse releaseQueryResponse = restApi.query(releaseRequest);

                JsonObject releaseJsonObject = releaseQueryResponse.getResults().get(0).getAsJsonObject();

                String rsd = releaseJsonObject.get("ReleaseStartDate").getAsString();
                String rd = releaseJsonObject.get("ReleaseDate").getAsString();

                QueryRequest  iterationRequest = new QueryRequest("Iteration");
                iterationRequest.setFetch(new Fetch("Name","StartDate","EndDate"));
                iterationRequest.setScopedDown(false);
                iterationRequest.setScopedUp(false);
                iterationRequest.setProject(projectRef);
                iterationRequest.setQueryFilter(new QueryFilter("StartDate", ">=", rsd).and(new QueryFilter("EndDate", "<=", rd)));

                QueryResponse iterationQueryResponse = restApi.query(iterationRequest);
                int numberOfIteraitons = iterationQueryResponse.getTotalResultCount();
                System.out.println(numberOfIteraitons);
                if(numberOfIteraitons >0){
                    for (int i=0;i<numberOfIteraitons;i++){
                        JsonObject iterationJsonObject = iterationQueryResponse.getResults().get(i).getAsJsonObject();
                        System.out.println(iterationJsonObject.get("Name"));
                    }
                }       
        }
        finally{
            if (restApi != null) {
                restApi.close();
            }
        }

    }
}