累積フロー図 (CFD) サンプル レポート
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
この記事では、指定したチームのストーリー CFD を表示する方法について説明します。 このデータは、組み込みのグラフとダッシュボード ウィジェットでも使用できます。 これらのオプションの詳細については、「 View」を参照し、累積フロー ダイアグラムを構成します。
次の図に、 Researching、 Committed、 In Progress、 In Review 状態のユーザー ストーリーの数を示す例を示します。 日付をポイントすると、その日付のデータに関する情報が表示されます。
累積フローの詳細については、「 umulative flow、lead time、cycle time guidance および Umulative flow、lead time、cycle time guidanceを参照してください。
Note
この記事では、 OData クエリを使用したサンプル レポートの概要 Power BI の基本的な理解があることを前提としています。
前提条件
- アクセス: 少なくとも Basic アクセス権を持つプロジェクト メンバー。
- Permissions: 既定では、プロジェクト メンバーには Analytics にクエリを実行してビューを作成する権限があります。
- サービスと機能の有効化と一般的なデータ追跡アクティビティに関するその他の前提条件の詳細については、「 Analytics にアクセスするためのアクセス許可と前提条件を参照してください。
サンプル クエリ
このセクションのクエリでは、ユーザー ストーリーの累積フロー データの返しがサポートされています。 これらのクエリでは、時間の経過に伴ってボードに対して計算されたデータを返す WorkItemBoardSnapshot
エンティティ セットを指定します。
Note
フィルターまたはレポートの目的で使用できるプロパティを確認するには、「Azure Boardsのメタデータ リファレンス」を参照してください。 クエリをフィルター処理したり、 で使用可能な または 値のProperty
下EntityType
NavigationPropertyBinding Path
の値のいずれかを使用してプロパティをEntitySet
返したりできます。 各 は EntitySet
に EntityType
対応します。 各値のデータ型の詳細については、対応する EntityType
に指定されたメタデータを確認してください。
次の Power BI クエリをコピーして、 Get Data>Blank クエリ ウィンドウに直接貼り付けます。 詳細については、「 OData クエリを使用したサンプル レポートの概要を参照してください。
let
Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/V3.0-preview/WorkItemBoardSnapshot?"
&"$apply=filter( "
&"Team/TeamName eq '{teamname}' "
&"and BoardName eq 'Stories' "
&"and DateValue ge {startdate} "
&") "
&"/groupby( "
&"(DateValue,ColumnName,LaneName,State,WorkItemType,AssignedTo/UserName,Area/AreaPath), "
&"aggregate($count as Count) "
&") "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
置換文字列とクエリの内訳
次の文字列を実際の値に置き換えます。 置換に角かっこを {} 含めないでください。 たとえば、組織名が "Fabrikam" の場合は、 ではなく {organization}
を にFabrikam
置き換えます{Fabrikam}
。
{organization}
- 組織名{project}
- プロジェクト間クエリの場合は、チーム プロジェクト名を指定するか、"/{project}" を完全に省略します
{teamname}
- CFD データを表示するチームの名前
{startdate}
- 指定した日付以降に完了したアイテムのレポートを、YYYY-MM-DDZ
形式で開始します。 たとえば、2022-04-01Z
は 2022 年 4 月 1 日を表します。 引用符で囲む必要はありません。
クエリの内訳
次の表では、クエリの各部分について説明します。
クエリ パーツ
説明
$apply=filter(
句 filter()
開始します。
Team/TeamName eq '{teamname}'
特定のチームのアイテムを返します。
and BoardName eq 'Stories'
Stories バックログの項目を返します。 他のバックログ名 ( EpicsFeatures など) を指定できます。 プロジェクトに対して選択したプロセスに対応するバックログ レベルを指定します。
and DateValue ge {startdate}
2022-04-01Z など、指定した日付以降のデータを返は 2022 年 4 月 1 日から 2019 年 7 月 1 日までを表します。
)
句 filter()
閉じます。
/groupby(
句 groupby()
開始します。
(DateValue, ColumnName, LaneName, State, WorkItemType,AssignedTo/UserName,Area/AreaPath),
DateValue
(トレンドに使用)、ColumnName
、レポートするその他のプロパティでグループ化します。 ここでは、スイムレーンによるフィルター処理を有効にする LaneName
について取り上げます。
aggregate($count as Count)
作業項目の数として集計します。
)
句 groupby()
閉じます。
(省略可能)クエリの名前を変更する
既定のクエリ ラベル Query1 の名前を、より意味のある名前に変更できます。 [ クエリ設定] ペインから新しい名前を入力するだけです。
Power Query エディターの列を展開する
Power Query エディターから、変換するデータを含むクエリを選択します。 CFD グラフの場合は、 Area
、 Iteration
、および AssignedTo
の列を展開する必要があります。 方法については、 Transform Analytics データの次のセクションを参照して、Power BI レポートを生成し、列を展開します。
(省略可能)フィールドの名前を変更する
列を展開したら、1 つ以上のフィールドの名前を変更できます。 たとえば、列 AreaPath
の名前を Area Path
に変更できます。 方法については、「 Rename 列フィールドを参照してください。
クエリを閉じて変更を適用する
すべてのデータ変換が完了したら、Home メニューから Close & Apply を選択してクエリを保存し、Power BI の Report タブに戻ります。
積み上げ面グラフを作成する
次の例では、クエリの名前は CFD に変更されましたが、列の名前は変更されませんでした。
Power BI で、Visualizations で Stacked area グラフを選択します。
Axis に
DateValue
を追加しDateValue
を右クリックし、DateValue
ではなくDate Hierarchy
を選択します。Count
にを追加します。ColumnName
] にを追加します。Filters ペインで、
ColumnName
展開し、グラフに表示する値のみを選択します。 たとえば、 New、 Proposed、 Done、 Closed の選択を解除できます。
このレポートの例では、列がアルファベット順に表示されます。 ただし、推奨される順序は、列の順序またはプログレッシブ順序に従ってデータを並べ替える方法です。
列を順に並べ替える
ボード上の特定の順序でグラフの列を並べ替えるには、次の手順を実行します。
- 次のクエリに従って、Power BI で新しいクエリを作成します。 完了したら、クエリの名前を ColumnOrder に変更します。
次の Power BI クエリをコピーして、 Get Data>Blank クエリ ウィンドウに直接貼り付けます。 詳細については、「 OData クエリを使用したサンプル レポートの概要を参照してください。
let
Source = OData.Feed ("https://analytics.dev.azure.com/{organization}/{project}/_odata/V3.0-preview/BoardLocations?"
&"$apply=filter( "
&"Team/TeamName eq '{teamname}' "
&"and BoardName eq 'Stories' "
&"and IsCurrent eq true "
&") "
&"/groupby ((ColumnName,ColumnOrder)) "
,null, [Implementation="2.0",OmitValues = ODataOmitValues.Nulls,ODataVersion = 4])
in
Source
レポートを正しい順序で並べ替える
Power BI で、 ColumnOrder クエリを展開し、
ColumnName
を選択します。Column Toolsを選択し列で並べ替え
ColumnOrder
を選択します。[Modeling メニューを選択し、リレーションシップの管理します。
CFD.ColumnName
とColumnOrder.ColumnName
の間に関係があることを確認します。 リレーションシップが自動検出された可能性があります。上記で作成したレポートの Legend で、
CFD.ColumnName
をColumnOrder.ColumnName
に置き換えて、 Legend に置き換えます。レポートは、ボードで使用されるのと同じ順序で並べ替えられた列で更新されます。
Note
その後削除された列に作業項目がある場合は、上記のレポートに "空白" と表示されます。