Rally API 2查询历史速度

时间:2014-08-25 03:14:15

标签: rally

我正在对一个版本中的迭代进行一些处理,我想知道团队在那个时间点的速度是什么,有没有办法使用回顾API或以其他方式获取该期间的信息?

即。当时拉力赛产生的速度或手动计算最后10次或所有时间速度测量?

所以,基于下面的回答,我最终得到了这段代码:

_getVelocity: function() {
    this.logger.log("_getVelocity");
    var me = this;
    var deferred = Ext.create('Deft.Deferred');
    Ext.Array.each(this.iterations,function(iteration){
        iteration.PlanEstimate = 1;
        me.logger.log("Fetching velocity for iteration", iteration.Name);

        var start_date_iso = Rally.util.DateTime.toIsoString(iteration.StartDate);
        var end_date_iso = Rally.util.DateTime.toIsoString(iteration.EndDate);

        var type_filter = Ext.create('Rally.data.lookback.QueryFilter', {
            property: '_TypeHierarchy',
            operator: 'in',
            value: this.show_types
        });

        var date_filter = Ext.create('Rally.data.lookback.QueryFilter', {
            property: '_ValidFrom',
            operator: '>=',
            value:start_date_iso
        }).and(Ext.create('Rally.data.lookback.QueryFilter', {
            property: '_ValidFrom',
            operator: '<=',
            value:end_date_iso
        })); 

        var filters = type_filter.and(date_filter);
        me.logger.log("Filter ", filters.toObject());
        Ext.create('Rally.data.lookback.SnapshotStore',{
            autoLoad: true,
            filters: filters,
            fetch: ['FormattedID','PlanEstimate','ScheduleState'],
            hydrate: ['ScheduleState'],
            listeners: {
                scope: this,
                load: function(store,it_snaps,successful) {
                    if ( !successful ) {
                        deferred.reject("There was a problem retrieving changes");
                    } else {
                        me.logger.log("  Back for ", it_snaps.length, it_snaps);
                        deferred.resolve(it_snaps);
                    }   
                }
            }
        });
    });
    deferred.resolve([]);
    return deferred;        
},    

此代码和过滤器等的形状从同一个应用程序中的另一个功能中解除,但是这个不起作用,我得到以下错误:

未捕获的TypeError:无法读取属性&#39;错误&#39;为null 获取https://rally1.rallydev.com/analytics/v2.0/service/rally/workspace/99052282 ... ScheduleState%22%5D&amp; pagesize = 20000&amp; start = 0&amp; jsonp = Ext.data.JsonP.callback49 400(错误请求)

1 个答案:

答案 0 :(得分:0)

由于LookbackAPI提供历史数据,您可以在特定时间点查询故事并获得当时完成的点数。没有Rally生成的速度,因此必须手动访问和汇总。例如,我的迭代开始于8月7日,并于8月14日结束,但如果我想要8月10日的数据,我会使用:

https://rally1.rallydev.com/analytics/v2.0/service/rally/workspace/1234/artifact/snapshot/query.js?find={"Iteration":5678,"_TypeHierarchy":"HierarchicalRequirement",_ValidFrom:{$gte:"014-08-10",$lte:"2014-08-14"}}&fields=['FormattedID','ScheduleState','PlanEstimate']&hydrate=['ScheduleState']

更新:就您发布的代码而言,请更改

var start_date_iso = Rally.util.DateTime.toIsoString(iteration.StartDate)
 var end_date_iso = Rally.util.DateTime.toIsoString(iteration.EndDate);

var start_date_iso = Rally.util.DateTime.toIsoString(iteration.get('StartDate'),true);
var end_date_iso = Rally.util.DateTime.toIsoString(iteration.get('EndDate'),true);

我使用您的语法复制了错误的请求错误,并在将其更改为此格式后工作:iteration.get('StartDate'),true

应用源代码位于this repo