2014-02-06 36 views
0

我正在尝试编写一个过滤器,该拉力赛会在当前的拉力赛项目中产生所有版本,定义为今天开始或今天开始,到今天结束。拉力赛自定义应用程序:需要获得所有当前拉力赛版本

var today = new Date(); 

    var releaseDateFilter = Ext.create('Rally.data.wsapi.Filter', { 
     property : 'ReleaseDate', 
     operator : '>', 
     value : today 
    }); 

    var releaseFilter = releaseDateFilter.and(Ext.create(
      'Rally.data.wsapi.Filter', { 
       property : 'ReleaseStartDate', 
       operator : '<=', 
       value : today 
      })); 

    console.log(releaseFilter.toString()); 

    var myStore = Ext.create('Rally.data.wsapi.Store', 
      { 
       model : 'Release', 
       fetch : [ 'FormattedID', 'Name', 'ReleaseDate', 
         'ReleaseStartDate' ], 
       limit : Infinity, 
       filters : releaseFilter, 
       context : { 
        project : '/project/XXXXXXX', 
        projectScopeDown : true 
       }, 
       autoLoad : true, 
       listeners : { 
        load : function(myStore, myData, mySuccess) { 
         // Do stuff here 
        }, 
        scope : this 
       } 
      }); 

滤波器的输出的console.log:

((ReleaseDate > Thu Feb 06 2014 11:54:26 GMT-0800 (Pacific Standard Time)) AND 
(ReleaseStartDate <= Thu Feb 06 2014 11:54:26 GMT-0800 (Pacific Standard Time))) 

数据存储中没有任何记录。如果我注释掉过滤器,那么数据存储就有289条记录。

当我通过拉力赛的WSAPI帮助页面尝试此查询时,我获得了129个版本。

回答

0

日期在拉力赛的Web服务API需要被格式化为ISO8601字符串,即:

2014-02-06T11:10:14.000Z

尝试使用Rally.util.DateTime.toIsoString如下:

var today = Rally.util.DateTime.toIsoString(new Date());

而且你的过滤器应为你工作期望。

+0

我只是想通了。傻我。感谢您的快速回复! – jmmallon