PSI ReadStatusTimephasedData возвращает неверный TaskUID
Я использую метод ReadStatusTimephasedData, чтобы прочитать фактические и запланированные часы в день для всех задач. Я достигаю этого, просматривая все ресурсы и все их назначения и используя олицетворение. Для некоторых назначений результирующий набор данных StatusingTimephasedActualsDataSet содержит TaskUID, который не совпадает с ASSN_UID, переданным в качестве параметра, и я не могу найти этот TaskUID в базе данных. Из-за этой проблемы я не могу связать результаты с таблицей задач. Я не могу найти никакой разницы между присваиваниями, для которых метод возвращает правильные данные, и теми, которых нет. Пожалуйста, скажите мне, если я делаю что-то не так или есть другой способ получить фактические и запланированные часы в день, используя PSI.
1 ответ
Я выяснил, что заставляет метод возвращать неправильные Task_UID. Эта проблема возникает только для забронированных часов, которые еще не утверждены руководителем проекта. Когда владелец или ресурс назначения вносит изменения в назначение, эти изменения сохраняются в сохраненной таблице назначений. В этой таблице (MSP_ASSIGNMENTS_SAVED) поле Task_UID имеет другое значение, чем в (MSP_ASSIGNMENTS), и это значение поля, возвращаемое ReadStatusTimephasedData. Только когда владелец или ресурс назначения публикует изменения, обновленное назначение копируется в обновленную таблицу назначений, и ReadStatusTimephasedData возвращает реальный Task_UID. Вот ссылка с жизненным циклом обновления статуса: http://msdn.microsoft.com/en-us/library/office/websvcstatusing.statusing_di_pj14mref%28v=office.14%29.aspx