使用拉力WsapiDataStore在某个日期(Using Rally WsapiDataStore

2019-10-29 05:19发布

我想创建的冲刺长度期间有多少任务是在给定的时间表国家的图表。 是否有可能调用WsapiDataStore的每一天?

Answer 1:

你所寻找的是一个回溯快照存储 ,使用回望API -这允许您指定的日期或你想查询某个时间点。

一个典型的应用是这样的:

    Ext.create('Rally.data.lookback.SnapshotStore', {
        pageSize : 10000,
        fetch    : ['fetch'],
        filters  : [{
            property : '__At',
            value    : 'current'
        },{
            property : '_ItemHierarchy',
            value    : 'HierarchicalRequirement'
        }]
    }).load({
        callback : function(records) {
            Ext.Array.each(records, function(record) {
                // do something with each record
            });
        }
    });


Answer 2:

WsapiDataStore不适用于历史数据。 您需要使用Rally.data.lookback.SnapshotStore从回溯API检索数据。

回望API允许看到任何工作项目或工作项目集合看上去就像过去。 这是来自直接使用WS API(或经由WsapiDataStore),其可为你提供的对象的当前状态,但不具有历史数据不同。

LBAPI文档可在这里

至于拉力释放对象的属性看WS API对象模型在这里 。 但它不是从您的评论清楚你的整个发布数据的意思。 如果你有兴趣取回分配给具体的发布用户故事然后将查询对象应该是分层的需求,不释放,你可能会被释放滤波器。

以下是建立使用发行下拉图表的应用程序。 基于图表刷新(它被破坏,并添加)下拉列表中选择:

Ext.define('CustomApp', {
                extend: 'Rally.app.TimeboxScopedApp',
                componentCls: 'app',
                scopeType: 'release',
                comboboxConfig: {
                                fieldLabel: 'Select a Release:',
                                labelWidth: 100,
                                width: 300
                },

                addContent: function() {
                                this._makeStore();
                },

                onScopeChange: function() {
                                this._makeStore();
                },

                _makeStore: function() {
                    Ext.create('Rally.data.WsapiDataStore', {
                        model: 'UserStory',
                        autoLoad: true,
                        filters: [this.getContext().getTimeboxScope().getQueryFilter()],
                        listeners: {
                            load: this._onDataLoaded,
                            scope: this
                        }
                    });

                },
                _onDataLoaded: function(store, data) {
                    var records = [];
                    var scheduleStateGroups = ["Defined","In-Progress","Completed","Accepted"]

                    // State count variables
                    var definedCount = 0;
                    var inProgressCount = 0;
                    var completedCount = 0;
                    var acceptedCount = 0;

                    // Loop through returned data and group/count by ScheduleState
                    Ext.Array.each(data, function(record) {
                        //Perform custom actions with the data here
                        //Calculations, etc.

                        scheduleState = record.get('ScheduleState');

                        switch(scheduleState)
                        {
                            case "Defined":
                                definedCount++;
                                break;
                            case "In-Progress":
                                inProgressCount++;
                                break;
                            case "Completed":
                                completedCount++;
                                break;
                            case "Accepted":
                                acceptedCount++;
                        }
                    });
                    if (this.down('#myChart')) {
                                this.remove('myChart');
                    }
                    this.add(
                        {
                            xtype: 'rallychart',
                            height: 400,
                            itemId: 'myChart',
                            chartConfig: {
                                chart: {
                                },
                                title: {
                                    text: 'User Story Schedule State Counts',
                                    align: 'center'
                                },
                                xField : 'ScheduleState',
                                xAxis: [
                                    {
                                        //categories: scheduleStateGroups,
                                        title: {
                                            text: 'ScheduleState'
                                        }
                                    }
                                ],
                                yAxis: {
                                    title: {
                                        text: 'Count'
                                    }
                                },
                                plotOptions : {
                                    column: {
                                        color: '#F00'
                                    },
                                    series : {
                                        animation : {
                                            duration : 2000,
                                            easing : 'swing'
                                        }
                                    }
                                }
                            },            
                            chartData: {
                                categories: scheduleStateGroups, 
                                series: [ 
                                    {   
                                        type: 'column',
                                        data: [definedCount, inProgressCount, completedCount, acceptedCount]
                                    }
                                ]
                            }
                        }
                    );
                    this.down('#myChart')._unmask(); 
                }
            });


文章来源: Using Rally WsapiDataStore at a certain date