PSI - веб-служба статуса - результаты не такие, как ожидалось
Я пытаюсь обновить информацию о статусе назначений через веб-сервис Statusing (PSI). Проблема в том, что результаты не такие, как ожидалось. Я постараюсь объяснить, что я делаю в деталях:
Два случая:
1) Назначение для ресурса существует по указанным задачам. Я хочу сообщить о фактах работы (обновить статус).
2) Нет назначения для ресурса по указанным задачам. Я хочу создать задание и сообщить о фактах работы.
У меня есть одна задача в моем проекте (автоматическое планирование, фиксированная работа). Ресурсная доступность всех ресурсов установлена на 100%. Все они имеют одинаковый календарь.
- Название: Задание 31 - Фиксированная работа
- Продолжительность: 12,5 дней
- Начало: чт 14.03.13
- Конец: вт 02.04.13
- Имена ресурсов: Ресурс 1
- Работа: 100 часов
Сначала я выполняю UpdateStatus со следующим ChangeXML
<Changes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Proj ID="a8a601ce-f3ab-4c01-97ce-fecdad2359d9">
<Assn ID="d7273a28-c038-486b-b997-cdb2450ceef5" ResID="8a164257-7960-4b76-9506-ccd0efabdb72">
<Change PID="251658250">900000</Change>
</Assn>
</Proj>
</Changes>
Затем я вызываю SubmitStatusForResource
client.SubmitStatusForResource(new Guid("8a164257-7960-4b76-9506-ccd0efabdb72"), null, "auto submit PSIStatusingGateway");
В центре утверждения появляется следующая запись (как я и ожидал):
Обновление статуса; Задача 31; Обновление задачи; Ресурс 1; 3/20/2012; 15h; 15%; 85h
Обновление в проекте (по-прежнему выглядит нормально):
- Название задачи: Задача 31 - Фиксированная работа
- Продолжительность: 12,5 дней
- Начало: чт 14.03.13
- Конец: вт 02.04.13
- Имена ресурсов: Ресурс 1
- Работа: 100 часов
- Фактическая работа: 15 часов
- Оставшиеся работы: 85 часов
Затем выполняется второй случай: сначала я создаю новое назначение...
client.CreateNewAssignmentWithWork(
sName: Task 31 - Fixed Work,
projGuid: "a8a601ce-f3ab-4c01-97ce-fecdad2359d9",
taskGuid: "024d7b61-858b-40bb-ade3-009d7d821b3f",
assnGuid: "e3451938-36a5-4df3-87b1-0eb4b25a1dab",
sumTaskGuid: Guid.Empty,
dtStart: 14.03.2013 08:00:00,
dtFinish: 02.04.2013 15:36:00,
actWork: 900000,
fMilestone: false,
fAddToTimesheet: false,
fSubmit: false,
sComment: "auto commit...");
Затем я снова вызываю UpdateStatus:
<Changes xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Proj ID="a8a601ce-f3ab-4c01-97ce-fecdad2359d9">
<Assn ID="e3451938-36a5-4df3-87b1-0eb4b25a1dab" ResID="c59ad8e2-7533-47bd-baa5-f5b03c3c43d6">
<Change PID="251658250">900000</Change>
</Assn>
</Proj>
</Changes>
И, наконец, снова SubmitStatusForResource
client.SubmitStatusForResource(new Guid("c59ad8e2-7533-47bd-baa5-f5b03c3c43d6"), null, "auto submit PSIStatusingGateway");
Это создает следующую запись в центре утверждения:
Обновление статуса; Задача 31 - Фиксированная работа; Новый запрос на переназначение; Ресурс 2; 3/20/2012; 15h; 100%; 0h
Я принимаю это и обновляю свой проект:
- Название: Задание 31 - Фиксированная работа
- Продолжительность: 6,76 дня?
- Начало: чт 14.03.13
- Финиш: Пн 25.03.13
- Имена ресурсов: Ресурс 1; Ресурс 2
- Работа: 69,05 часов
- Фактическая работа: 30 часов
- Оставшиеся работы: 39,05 часов
И я действительно не понимаю, почему новая работа будет 69,05 часа. Результаты, которые я ожидал, были бы:
- Название: Задание 31 - Фиксированная работа
- Продолжительность: 6,76 дня?
- Начало: чт 14.03.13
- Финиш: Пн 25.03.13
- Имена ресурсов: Ресурс 1; Ресурс 2
- Работа: 65 часов
- Фактическая работа: 30 часов
- Оставшаяся работа: 35 часов
Я потратил довольно много времени, пытаясь выяснить, как обновить значения, чтобы получить желаемые результаты. Я действительно был бы признателен за помощь. Это заставляет меня хотеть вырвать мои волосы!
заранее спасибо
PS: забыл сказать, что я работаю с MS Project Server 2010 и MS Project Professional 2010