Я пытаюсь обновить информацию о статусе назначений через веб-службу статуса (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