2

我想获得从回溯 API 获得的用户故事的 Feature 对象。但是当我尝试水合功能时,我只得到未格式化的功能 ID。

我可以从回溯结果集中获取用户故事的真实特征对象吗?

下面是我用于检索数据的代码示例:

storeConfig: {
            find: {
                "_TypeHierarchy": { '$in' : [-51038] },
                "Children": null
            },
            fetch: ["ScheduleState", "PlanEstimate", "ObjectID", "_ValidFrom", "_ValidTo", "c_BaselineDeliveryConfidence", "Name", "Feature"],
            hydrate: ["ScheduleState", "c_BaselineDeliveryConfidence", "Name", "Feature"],
            sort: {
                "_ValidFrom": 1
            },
            compress: true,
            useHttpPost: true
4

2 回答 2

2

无法直接从 LBAPI 中对对象进行水合。但是,我一直在研究一个帮助类来做到这一点,使用类似于尼克建议的方法。

https://github.com/ConnerReeves/RallyHelpers/blob/master/RecordHydrator/RecordHydrator.js

这是一个如何使用它的例子。我正在收集所有叶子用户故事(具有迭代任务),然后为该倡议字段补充水分:

launch: function() {
    var self = this;
    Ext.create('Rally.data.lookback.SnapshotStore', {
        limit   : Infinity,
        fetch   : ['Name','Iteration'],
        filters : [{
            property : '__At',
            value    : 'current'
        },{
            property : '_TypeHierarchy',
            value    : 'HierarchicalRequirement'
        },{
            property : 'Iteration',
            operator : '!=',
            value    : null
        },{
            property : 'Children',
            value    : null
        }]
    }).load({
        params : {
            compress                    : true,
            removeUnauthorizedSnapshots : true
        },
        callback : function(records, operation, success) {
            self._hydrateRecords(records);
        }
    });
},

_hydrateRecords: function(records) {
    Ext.create('CustomApp.RecordHydrator', {
        fields: [{
            name    : 'Iteration',
            hydrate : ['Name','StartDate','EndDate']
        }]
    }).hydrate(records).then({
        success: function(hydratedRecords) {
            console.log(_.groupBy(hydratedRecords, function(record) {
                return record.get('Iteration') && record.get('Iteration').get('Name');
            }));
        }
    });
}
于 2014-02-26T18:23:28.687 回答
0

Feature 是用户故事引用的完整对象(通过 Feature 属性)。您的代码类似于此查询:

https://rally1.rallydev.com/analytics/v2.0/service/rally/workspace/111/artifact/snapshot/query.js?find={"_TypeHierarchy":"HierarchicalRequirement"}&fields=["Name","ScheduleState","PlanEstimate","Feature"]&hydrate=["ScheduleState"]

将返回如下内容:

{
Feature: 12483739639,
Name: "my story",
ScheduleState: "Defined",
PlanEstimate: 3
}

其中 12483739639 是特征的 ObjectID。在水合物中添加“功能”不会产生影响。

如果您想获取完整的 Feature 对象或其某些属性,您可以在代码中使用该功能的 OID 并发出单独的查询。您还可以将这些 OID 推送到数组中,并$in在第二个查询中使用运算符。

于 2014-02-26T15:19:37.910 回答