2016-08-06 4 views
1

Нам нужно получить ежедневные данные из поля «Microsoft.VSTS.Scheduling.CompletedWork» (подробно описано в Workload, scheduling and time tracking field references). Однако я получаю данные из базы данных Analysis и обнаружил, что он записывает только последние последние данные и не может получить исторические данные.Как получить ежедневные данные «Microsoft.VSTS.Scheduling.CompletedWork»?

Например, задача ID 3356, которая «CompletedWork» составляет 3 часа в 2016/8/4, и я получаю точные 3 часа-данные из базы данных Analysis во второй день, 2016/8/5, как the pictures in this post show.

Затем в 2016/8/5 я обновляю «CompletedWork» с 3 часов до 4 часов, и я получаю точные 4 часа-данные из базы данных Analysis во второй день, 2016/8/6. Однако данные за 3 часа 2016/8/4 теряются. Ну, как я могу получить исторические данные «Microsoft.VSTS.Scheduling.CompletedWork»?

ответ

1

Прежде всего, важно понять, что CompletedWork является полем данных cumulatieve. Поэтому, когда один пользователь вводит 3, а другой входит в 4, общее количество часов, отработанных в поле, равно не .

Склад имеет зернистость дня и сохраняет эти данные в кубе, хотя таблицы реляционного хранилища будут хранить все изменения в отчетных полях на основе каждой ревизии. Вы не можете легко запросить эти данные с помощью Qube или Power Power Pivot, и они потеряны в таблицах Dim * и fact *, но вы можете написать SQL-запрос с tfs_warehouse и выполнить итерацию по таблицам, содержащим данные рабочего элемента (tbl_workitems[are|were|latest]). Это гораздо медленнее и сложнее построить, к сожалению.

Другой альтернативный вариант - использовать модель объекта клиента TFS и напрямую запросить объект WorkItemStore. Вы сможете запросить все интересующие вас рабочие элементы и выполнить итерацию через них и их изменения. The API for workitems is relatively easy to use and is well documented.

Если вы на TFS 2015 вы можете также использовать новый REST api to query workitem data and revisions.

Смежные вопросы