我试图使用AppSDK2.0创建里程碑报告,并希望找到分配给里程碑的所有用户故事。
我尝试使用getCollection从一个里程碑中提取工件。
Ext.create('Rally.data.wsapi.Store', {
model : 'Milestone',
filters : [ {
property : 'ObjectID',
operator : '=',
value : milestone.get("ObjectID")
} ],
fetch : [ 'Artifacts' ],
limit : Infinity,
autoLoad : true,
listeners : {
load : function(store, records) {
var record = records[0];
var info = record.get('Artifacts');
var count = info.Count;
record.getCollection('Artifacts').load({
fetch : [ 'ObjectID' ],
callback : function(records, operation, success) {
Ext.Array.each(records, function(artifact) {
console.log(artifact.get('ObjectID'));
});
}
});
}
}
});我得到以下错误:
Uncaught Rally.data.ModelFactory.getModel():未能找到注册工厂类型:工件sdk-调试器sdk:7078
从https://rally1.rallydev.com/slm/doc/webservice/来看,里程碑似乎不能在用户故事或PortfolioItem上进行查询。无论如何,我都尝试过使用任务语法,但没有返回任何内容。
Ext.create('Rally.data.wsapi.Store', {
model : 'UserStory',
filters : [ {
property : 'Milestones',
operator : 'contains',
value : milestone.get("_ref")
} ],
fetch : [ 'ObjectID' ],
limit : Infinity,
autoLoad : true,
listeners : {
load : function(store, records) {
console.log(records);
}
}
});发布于 2015-04-02 14:37:09
AppSDK2中有一个缺陷,即它不能处理抽象类型,例如Artifact、UserPermissions。您的第一个代码示例遇到了这个缺陷。但是第二个代码示例必须有效。我怀疑如果对你不起作用,那是一个范围界定的问题。您所筛选的里程碑可能不在您的作用域范围内。您可以在存储区的上下文中硬编码项目引用,以确保它在正确的项目中查找。我最初在我的默认项目中测试了您的代码并使其正常工作,然后我对它进行了如下修改,以确保它在非默认项目中找到了一个里程碑:
Ext.define('CustomApp', {
extend: 'Rally.app.App',
componentCls: 'app',
launch: function() {
Ext.create('Rally.data.wsapi.Store', {
model : 'UserStory',
context:{
project: '/project/16662089077'
},
filters : [
{
property : 'Milestones',
operator : 'contains',
value : "/milestone/33215216897"
}
],
fetch : [ 'ObjectID' ],
limit : Infinity,
autoLoad : true,
listeners : {
load : function(store, records) {
console.log(records);
}
}
});
}
});https://stackoverflow.com/questions/29398897
复制相似问题