2012-09-28 9 views
6

Piszę narzędzie do odczytu wszystkich defektów ze starszego systemu śledzenia błędów i importowania ich do TFS (2008/2010). Używam TFS API do tworzenia nowych WorkItems, ustawiania ich pól, a następnie ich zapisywania. Nie mogę jednak modyfikować pól "Utworzono przez" i "Utworzono datę", ponieważ są one ustawione przez system. (A są też inne pola, które chciałbym być w stanie zmusić wartości, takie jak ustawienie Nadesłał być kimś, kto nie jest prawidłowy użytkownik TFS)Programowe wymuszanie wartości pól dla TFS WorkItem

// these fail with "The value for the field 'Created By' cannot be changed." 
defectWorkItem.Fields["Created By"].Value = defect.Submitter; 
defectWorkItem.Fields["Created Date"].Value = defect.SubmitDate; 

Oczywiście, jeśli nie mogę ustawić je pola, skończę ze wszystkimi starszymi błędami wyglądającymi, jakby zostały stworzone w tym samym dniu przez tę samą osobę.

Czy istnieje sposób, w jaki mogę korzystać z interfejsu API, ale wymuszać zmiany w normalnie chronionych polach? Przejrzałem dostęp do tabel bazy danych TFS bezpośrednio, ale schemat wygląda na skomplikowany i myślę, że byłoby bardzo ryzykowne, aby samemu zmodyfikować dane.

Odpowiedz

7

Jesteś mogą ustawić pola Created Date i Created By jeśli konto usługi i włączeniu obwodnicy zasady funkcję.

Możesz wybrać pominięcie reguł podczas tworzenia instancji klasy WorkItemStore przy użyciu tej flagi: WorkItemStoreFlags.BypassRules.

Należy pamiętać, że możesz ustawić te pola tylko dla pierwszej wersji elementów pracy.

+0

dzięki, brzmi to dokładnie Potrzebuję. Wypróbuję to i oznaczy to jako odpowiedź, czy mogę ją uruchomić –

+0

Czy wiesz, czy ta flaga jest nowa z TFS 2012? Nie ma go w poprzedniej wersji biblioteki. –

+0

Próbowałem tego i jest to trochę dziwne. Po pierwsze, nie możesz ustawić tych pól przy pierwszym zapisie, tylko w kolejnych zapisach. Po drugie, nie pozwolę mi zmienić System.CreatedBy, nawet jeśli mogę zmienić System.CreatedDate i Microsoft.VSTS.Common.ActivatedDate tą techniką. –

1

tylko sugestia: Włóż ten tekst na początku opisu pozycji roboczej podczas migracji:

  • migracji z systemu XXX
  • Oryginalna data utworzenia: 1/1 2012
  • Original stworzył przez: John Doe
+0

tak, to co zrobię, jeśli nie będę mógł w ogóle modyfikować utworzonych dat, ale to będzie oznaczać, że ludzie nie będą mogli używać zapytań, do których są przyzwyczajeni ze starego systemu –

Powiązane problemy