Rally App SDK 2.0:SnapshotStore无法加载自定义字段和水合物

时间:2012-11-15 18:34:45

标签: javascript extjs4 rally

在我尝试从分析引擎加载信息时,我无法加载自定义字段。特别是,我希望加载属于Portfolio Items的信息。有些字段可以返回OID,例如State,我可以在分析方案文档中进行水合,但是无法通过SDK进行补充。实际上,我无法检索任何状态值。似乎,虽然为InvestmentCategory返回了一个OID,但每个记录都是相同的,并且水合为“无”。

我想知道SDK的这一部分是多么成熟,和/或是否有额外的参数,我只是缺少?自定义字段是否仍需要以“c_”为前缀?我已尝试使用和不使用前缀来指定它们,但没有运气。

EDIT1:我似乎只需要增加限额。我看到自定义字段返回的值,前缀为“c_”。当我确认它只是早期的记录让我感到困惑时,我会回复另一个更新。水化“问题”仍然存在。我只看到InvestmentCategory被水化。

EDIT2:的确,“问题”是,随着时间的推移,必填字段集合发生了变化,旧记录没有指定/定义的某些字段,例如投资类别。国家领域的水化问题仍然存在,我希望在有更新时听到马克的回复。我希望将来有更新可以让更多领域融化。

1 个答案:

答案 0 :(得分:4)

我在Rally Software工作,作为构建Lookback Api的团队的一员。我刚刚测试了它,它似乎适用于PortfolioItem InvestmentCategory字段,但仅部分用于State,所以我认为你发现了一个问题。

要确认您的PortfolioItems的投资范围不是“无”,您可以尝试以下查询:

https://rally1.rallydev.com/analytics/v2.0/service/rally/workspace/<YOUR WORKSPACE OID HERE>/artifact/snapshot/query.js?find={_TypeHierarchy:"PortfolioItem",InvestmentCategory:{$ne:"None"}}&fields=["InvestmentCategory"]&hydrate=["InvestmentCategory"]

同样,如果您通过SDK尝试,您的SnapshotStore配置应该类似于:

{
    context: {
        workspace: this.context.getWorkspace(),
        project: this.context.getProject()
    },
    rawFind: {
        _TypeHierarchy:"PortfolioItem",
        InvestmentCategory:{$ne:"None"}
    },
    fetch: ["InvestmentCategory"],
    hydrate: ["InvestmentCategory"]
}

您可以通过在浏览器的调试器中检查服务器响应来验证调试器中查询的原始结果。 在Chrome中,如果您转到“网络”标签,则会看到“查询”条目,您可以在右侧的“响应”标签中查看,或者(我喜欢这样做)右键单击它并选择'在新标签页中打开链接'。如果您使用Chrome扩展程序“JSONView和JSONLint for Google Chrome”(https://chrome.google.com/webstore/detail/jsonview-and-jsonlint-for/mfjgkleajnieiaonjglfmanlmibchpam),它也会让您更容易阅读。

对于PortfolioItem上的字段State,我认为您发现了一个缺陷。我已将此作为DE15305进行调查。当我们了解更多时,我会在这里回复。

编辑:

是的,我们允许您在_TypeHierarchy中使用字符串版本的类型名称,然后将它们解析为基础OID。从理论上讲,使用OID应该要快一些,所以如果你从类型选择器中获得它很好,但如果你对它们进行硬编码,那么使用字符串来提高可读性应该没问题。您对PortflioItem类型也是正确的,您可以搜索“PortfolioItem / Strategy”,“PortfolioItem / Feature”等(取决于它们是否已在您的工作区中重命名)。使用OID确实可以使您免于重命名。

查询过滤器应该支持rawFind所做的一切,这只是一个问题,你是否更喜欢ExtJS风格的语法或原生的Lookback API / MongoDB风格的语法。两者之间的性能差异应该可以忽略不计(尽管我承认,我还没有在微基准测试中对此进行测试)。

缺陷仍然存在于待研究的积压中,但目前的理论是它可能是一个被删除的国家,我们只能使用当前值来水合价值 - 我们使用“今天的镜头”对于这些外键。这可能会在将来发生变化,但我不能保证任何事情,对不起。当缺陷被拿起时我会再次更新。