1

分析エンジンから情報を読み込もうとして、カスタムフィールドを読み込めませんでした。特に、ポートフォリオアイテムに属する情報をロードしようとしています。StateなどのOIDを返すフィールドがいくつかあり、分析シナリオのドキュメントではハイドレイトできますが、SDKではハイドレイトできません。実際、State値を取得できません。また、InvestmentCategoryのOIDは返されますが、すべてのレコードで同じであり、「なし」にハイドレイトされているようです。

SDKのこの部分がどれほど成熟しているか、および/または不足している追加のパラメーターがあるかどうか疑問に思っていますか?カスタムフィールドの前に「c_」を付ける必要がありますか?接頭辞の有無にかかわらず、運が悪かったのでそれらを指定しようとしました。

編集1:制限を増やす必要があったようです。接頭辞「c_」が付いたカスタムフィールドに値が返されるのを確認しています。混乱したのは初期の記録であることが確認できたら、別の更新を投稿します。水分補給の「問題」はまだ残っています。InvestmentCategoryがハイドレイトされているのを見ているだけです。

EDIT2:確かに、「問題」は、時間の経過とともに必須フィールドのセットが変更され、古いレコードには投資カテゴリなどの一部のフィールドが指定/定義されていないことでした。州のフィールドでの水分補給の問題はまだ残っています。更新があったときにマークから返信をもらいたいと思います。将来、より多くの分野の水分補給を可能にするアップデートがあることを願っています。

4

1 に答える 1

4

私は、LookbackApiを構築したチームの一員としてRallySoftwareで働いています。これをテストしたところ、PortfolioItem InvestmentCategoryフィールドでは機能するようですが、Stateでは部分的にしか機能しないため、問題が見つかったと思います。

「なし」以外のInvestmentCategoryを持つPortfolioItemがあることを確認するには、次のクエリを試すことができます。

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拡張機能「JSONViewandJSONLintfor 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スタイルの構文のどちらを使用するかという問題です。2つのパフォーマンスの違いはごくわずかであるはずです(私は認めますが、これをマイクロベンチマークでテストしていません)。

欠陥はまだ調査対象のバックログにありますが、現在の理論では、削除された状態が原因である可能性があり、現在の値を使用して値をハイドレイトすることしかできません。これらの外国人には「今日のレンズ」を使用します。キー。将来変更される可能性はありますが、何もお約束できません。申し訳ありません。欠陥が見つかったら、再度更新します。

于 2012-11-16T20:07:33.807 に答える