2012-12-19 7 views
9

Pracuję nad rozszerzeniem naszego TWA i wydarzyło się coś ciekawego.
Posiadamy bibliotekę funkcji do pracy z naszymi niestandardowymi elementami pracy, zawierającą między innymi funkcję aktualizacji konkretnego - UpdateContract. W trakcie mojej pracy musiałem rozszerzyć jeden z innych niestandardowych elementów pracy (TeamTask) o dodatkowe pole.Aktualizacja istniejącego przedmiotu pracy z kodu

Początkowo metoda UpdateContract działało bez problemu, ale teraz to działa tylko wtedy, gdy dodam wyraźny wezwanie do item.Open() lub item.PartialOpen() do niego, inaczej rzuca następujący wyjątek:

ValidationException:
TF400276: You have tried to set a value for a field of a work item which is not opened or partial opened. You cannot set a value for a field of a work item which is not opened or partial opened.

I m pobiera elementy pracy tego samego typu z aplikacji internetowej, ale nigdy nie zmieniam ich z tego miejsca.

Byłbym bardzo szczęśliwy, gdyby ktoś mógł rzucić trochę światła na to, będąc całkowicie nowym dla TFS Mam zero wskazówek, co jest przyczyną tego.

Odpowiedz

16

Kwerenda, której używasz do pobrania danego elementu roboczego, musi określić dodatkowe pole, abyś mógł je zaktualizować.

Domyślnie podczas wysyłania kwerendy do TFS zwraca tylko te pola elementu roboczego (oprócz wymaganych), które nieostrożnie określono. Jeśli nie określisz pola, które chcesz zmienić, będziesz potrzebował użyć item.Open() w celu leniwego załadowania wszystkich elementów pracy do edycji.