Změna pracovního postupu pro typ pracovní položky
Azure DevOps Server 2022 – Azure DevOps Server 2019
Pracovní postup pro typ pracovní položky (WIT) můžete změnit tak, aby podporoval obchodní a týmové procesy. Technologie WIT podporují sledování všech typů práce – požadavků, úkolů, vad kódu – pro podporu vývoje softwaru.
Pracovní postup určuje logický průběh a regresi práce, kterou budou členové týmu provádět. Určuje také hodnoty, které se zobrazí v rozevíracích nabídkách polí Stát a Důvod. Další informace naleznete v tématu O procesech a šablonách procesů.
Pracovní postup pro položku backlogu produktu (šablona procesu Scrum)
Poznámka:
Tento článek popisuje, jak přizpůsobit stav pracovního postupu. Pokud místo toho chcete změnit stav přiřazený ke konkrétní pracovní položce, přečtěte si jeden z následujících článků: Panel, Sledovat probíhající práci nebo Panel úkolů, Aktualizovat stav úkolu. Můžete také provést hromadnou aktualizaci stavu pro mnoho pracovních položek.
Informace o pracovních postupech kanálu buildu najdete v tématu Začínáme s CI/CD.
Aktualizace definice XML pro typ pracovní položky
Pokud s přizpůsobením technologie WIT začínáte, mějte na paměti následující:
- Chcete-li přizpůsobit jakýkoli aspekt typu pracovní položky, musíte aktualizovat jeho definici XML. Definice XML je popsána v odkazech na všechny elementy WITD XML.
- Pokud upravujete webový formulář, který používá nové prostředí pracovních položek, budete chtít odkazovat na prvky WebLayout a Control.
- Pokud upravujete klientský formulář pro použití se sadou Visual Studio, budete chtít odkazovat na odkaz na element XML rozložení.
- Postupujte podle posloupnosti kroků uvedených ve webovém formuláři Přizpůsobení webového formuláře sledování pracovních položek.
Pokud chcete pracovní postup přizpůsobit, postupujte takto:
WORKFLOW
Upravte oddíl definice DEFINICE WIT, jak je popsáno v tomto tématu.Upravte konfiguraci procesu tak, aby mapovat nové stavy pracovního postupu na metastate.
Tento druhý krok se vyžaduje, když změníte pracovní postup pro pracovní postup pracovní položky, který se zobrazí na stránce agilního nástroje. Tyto pracovní položky patří do kategorií Požadavek nebo Úkol. Další informace o kategoriích stavů naleznete v tématu Stavy pracovního postupu a kategorie stavů.
Pokyny pro návrh pracovního postupu
Pracovní postup definujete tak, že nejprve identifikujete stavy a platné přechody mezi nimi. Oddíl WORKFLOW
definice pracovní položky určuje platné stavy, přechody, důvody přechodů a volitelné akce, které budou provedeny, když člen týmu změní stav pracovní položky.
Obecně platí, že každý stav přidružíte k roli člena týmu a k úkolu, který musí osoba v této roli provést, aby pracovní položku před změnou stavu zpracovávala. Přechody definují platné progrese a regrese mezi stavy. Důvody identifikují, proč člen týmu změní pracovní položku z jednoho stavu na jiný a akce podporují automatizaci přechodu pracovní položky v okamžiku pracovního postupu.
Například Stav je nastaven na Nový , když tester otevře novou chybu, která je založená na výchozím agilním procesu. Vývojář změní stav na Aktivní při opravě chyby a jakmile ji opraví, vývojář změní stav na Vyřešeno a nastaví hodnotu pole Důvod na Opraveno. Po ověření opravy tester změní stav chyby na Uzavřeno a pole Důvod se změní na Ověřeno. Pokud tester zjistil, že vývojář chybu neopravil, tester by změnil stav chyby na Aktivní a určil důvod jako neopravěný nebo test selhal.
Při návrhu nebo úpravě pracovního postupu zvažte následující pokyny:
STATE
Tento prvek slouží k definování jedinečného stavu pro každou roli člena týmu, která provede konkrétní akci na pracovní položce. Čím více stavů definujete, tím více přechodů musíte definovat. Bez ohledu na posloupnost, ve které definujete stavy, jsou uvedeny v alfanumerickém pořadí v rozevírací nabídce pro pole Stát .Pokud přidáte stav do typu pracovní položky, který se zobrazí na stránkách backlogu nebo panelu na webovém portálu, musíte také namapovat stav na kategorii stavu. Další informace najdete v tématu Stavy pracovního postupu a kategorie stavů.
Pomocí elementu
TRANSITION
definujte přechod pro každý platný průběh a regresi z jednoho stavu do druhého.Minimálně musíte definovat jeden přechod pro každý stav a přechod ze stavu null na počáteční stav.
Můžete definovat pouze jeden přechod z nepřiřazené (null) do počátečního stavu. Když uložíte novou pracovní položku, automaticky se přiřadí k počátečnímu stavu.
Když člen týmu změní stav pracovní položky, tato změna aktivuje přechod a akce, které definujete pro vybraný stav a přechod. Uživatelé mohou zadat pouze ty stavy, které jsou platné na základě přechodů, které definujete pro aktuální stav. Kromě toho může prvek,
ACTION
což je podřízený prvekTRANSITION
, změnit stav pracovní položky.Pro každý přechod definujete výchozí důvod pomocí elementu
DEFAULTREASON
. Pomocí elementuREASON
můžete definovat libovolný počet volitelných důvodů. Tyto hodnoty se zobrazí v rozevírací nabídce pole Důvod .Můžete zadat pravidla, která se použijí při změně stavu pracovní položky, při přechodu nebo když uživatel vybere konkrétní důvod. Mnohé z těchto pravidel doplňují podmíněná pravidla, která můžete použít při definování polí v
FIELDS
oddílu pod definicíWORKITEMTYPE
. Další informace naleznete v tématu Aktualizace polí během změny pracovního postupu později v tomto tématu.Názvy, které přiřadíte k stavům a důvodům, nerozlišují velká a malá písmena.
Rozevírací nabídky polí Stav a Důvod ve formuláři pracovní položky nebo editoru dotazů zobrazují hodnoty přiřazené v
WORKFLOW
oddílu typu pracovní položky.
Diagram pracovního postupu a příklad kódu
Následující příklad kódu ukazuje WORKFLOW
definici chyby WIT pro šablonu agilního procesu. Tento příklad definuje tři stavy a pět přechodů. Prvky STATE
určují aktivní, vyřešené a uzavřené stavy. Všechny možné kombinace pro přechody progrese a regrese jsou definovány pro tři stavy, s výjimkou jedné. Přechod z uzavřeno na Vyřešeno není definován. Členové týmu proto nemohou vyřešit pracovní položku tohoto typu, pokud je pracovní položka uzavřena.
Tento příklad neobsahuje seznam všech prvků pro DEFAULTREASON
, REASON
, ACTION
a FIELD
.
Příklad diagramu stavu pracovního postupu – agilní definice chyby
<WORKFLOW>
<STATES>
<STATE value="Active">
<FIELDS> . . . </FIELDS>
</STATE>
<STATE value="Resolved">
<FIELDS> . . . </FIELDS>
</STATE>
<STATE value="Closed">
<FIELDS> . . . </FIELDS>
</STATE>
</STATES>
<TRANSITIONS>
<TRANSITION from="" to="Active">
<REASONS>
<REASON value="Build Failure" />
<DEFAULTREASON value="New" />
</REASONS>
<FIELDS> . . . </FIELDS>
</TRANSITION>
<TRANSITION from="Active" to="Resolved">
<ACTIONS> . . . </ACTIONS>
<REASONS> . . . </REASONS>
</TRANSITION>
<TRANSITION from="Resolved" to="Active">
<REASONS> . . . </REASONS>
</TRANSITION>
<TRANSITION from="Resolved" to="Closed">
<REASONS>
<DEFAULTREASON value="Verified" />
</REASONS>
<FIELDS> . . . </FIELDS>
</TRANSITION>
<TRANSITION from="Closed" to="Active">
<REASONS>
<REASON value="Reactivated" />
<DEFAULTREASON value="Regression" />
</REASONS>
<FIELDS> . . . </FIELDS>
</TRANSITION>
</TRANSITIONS>
</WORKFLOW>
Určení počtu a typů stavů
Určíte počet a typy platných stavů na základě počtu jedinečných logických stavů, ve kterých chcete, aby pracovní položky daného typu existovaly. Pokud také různí členové týmu provádějí různé akce, můžete zvážit definování stavu na základě členské role. Každý stav odpovídá akci, kterou musí člen týmu provést s pracovní položkou, aby ji přesunul do dalšího stavu. Pro každý stav byste měli definovat konkrétní akce a členy týmu, kteří mají povoleno provádět tyto akce.
Následující tabulka obsahuje příklad čtyř stavů, které jsou definovány ke sledování průběhu funkce a platných uživatelů, kteří musí provést uvedené akce:
State | Platný uživatel | Action to perform |
---|---|---|
Navrženo | Vedoucí projektu | Pracovní položku funkce může vytvořit kdokoli. Pracovní položku ale můžou schválit nebo zrušit pouze projektoví manažeři. Pokud projektový manažer schválí funkci, projektový manažer změní stav pracovní položky na Aktivní; jinak ho člen týmu zavře. |
Aktivní | Vedoucí vývoje | Vedoucí vývoje dohlíží na vývoj funkce. Po dokončení funkce vedoucí vývoje změní stav pracovní položky funkce na zkontrolovat. |
Přehled | Vedoucí projektu | Projektový manažer zkontroluje funkci, kterou tým implementoval, a změní stav pracovní položky na Uzavřeno, pokud je implementace uspokojivá. |
Zavřeno | Vedoucí projektu | U pracovních položek, které jsou zavřené, se neočekává žádná další akce. Tyto položky zůstanou v databázi pro účely archivace a generování sestav. |
Poznámka:
Všechny stavy se zobrazí v abecedním pořadí v seznamu ve formuláři pro pracovní položku určitého typu bez ohledu na pořadí, ve kterém je zadáte.
Definování přechodů
Pokud definujete platné průběhy a regrese stavu, můžete určit stavy, na které členové týmu můžou pracovní položku změnit. Pokud nedefinujete přechod z jednoho stavu do jiného, členové týmu nemohou změnit pracovní položku určitého typu z určitého stavu na jiný konkrétní stav.
Následující tabulka definuje platné přechody pro každý ze čtyř stavů, které byly popsány výše v tomto tématu, spolu s výchozím důvodem každého.
State | Přechod na stav | Výchozí důvod |
---|---|---|
Navrženo | Aktivní (průběh) | Schváleno pro vývoj |
Uzavřeno (průběh) | Neschválili | |
Aktivní | Kontrola (průběh) | Splněná kritéria přijetí |
Přehled | Uzavřeno (průběh) | Funkce je dokončená. |
Aktivní (regrese) | Nesplňuje požadavky | |
Zavřeno | Navrhované (regrese) | Znovu zvážit schválení |
Aktivní (regrese) | Uzavřeno v chybě |
Můžete omezit, kdo může provést přechod z jednoho stavu do druhého pomocí atributu TRANSITION
for a nikoli atributů prvku. Jak ukazuje následující příklad, testeři můžou znovu otevřít chybu, ale vývojáři nemůžou.
<TRANSITION from="Closed" to="Active"
for="[Project]\Testers"
not="[Project]\Developers">
. . .
</TRANSITION>
Určení důvodů
Když člen týmu změní pole Stát, může tento uživatel zachovat výchozí důvod tohoto přechodu nebo zadat jiný důvod, pokud definujete další možnosti. Prvek je nutné použít DEFAULTREASON
k určení jednoho a pouze jednoho výchozího důvodu. Měli byste zadat další důvody jenom v případě, že týmu pomáhají sledovat nebo hlásit data.
Vývojář může například určit jeden z následujících důvodů při řešení chyby: Opraveno (výchozí), Deferred, Duplicate, As Designed, Cannot Reprodukovat nebo zastaralé. Každý důvod určuje konkrétní akci, kterou má tester provést s ohledem na chybu.
Poznámka:
Všechny důvody se zobrazí v abecedním pořadí v seznamu v pracovním formuláři pro pracovní položky určitého typu bez ohledu na pořadí, ve kterém zadáte REASON
prvky.
Následující příklad ukazuje prvky, které definují důvody, proč může člen týmu vyřešit chybu:
<TRANSITION from="Active" to="Resolved">
. . .
<REASONS>
<DEFAULTREASON value="Fixed"/>
<REASON value="Deferred"/>
<REASON value="Duplicate"/>
<REASON value="As Designed"/>
<REASON value="Unable to Reproduce"/>
<REASON value="Obsolete"/>
</REASONS>
. . .
</TRANSITION>
Zadání akcí
Obecně platí, že členové týmu mění stav pracovní položky zadáním jiné hodnoty pole Stát a uložením pracovní položky. Můžete ale také definovat ACTION
prvek, který automaticky změní stav pracovní položky, když dojde k přechodu. Jak ukazuje následující příklad, můžete určit, že pracovní položky chyby by se měly vyřešit automaticky, pokud jsou přidružené k souborům, které vývojář zkontroluje do správy verzí:
<TRANSITION from="Active" to="Resolved">
<ACTIONS>
<ACTION value="Microsoft.VSTS.Actions.Checkin"/>
</ACTIONS>
. . .
</TRANSITION>
Tento ACTION
prvek můžete použít k automatické změně stavu pracovních položek určitého typu, pokud se události vyskytují jinde ve správě životního cyklu aplikací sady Microsoft Visual Studio nebo mimo správu životního cyklu aplikací sady Visual Studio (například z nástroje, který sleduje volání). Další informace naleznete v tématu AKCE.
Aktualizace pole během změny pracovního postupu
Můžete definovat pravidla, která aktualizují pole vždy, když dojde k následujícím událostem:
Přiřaďte pravidlo pole,
STATE
podle kterého má pravidlo platit pro všechny přechody a důvody pro zadání tohoto stavu.Pravidlo pole
TRANSITION
přiřaďte, pokud chcete, aby pravidlo platilo pro tento přechod, a všechny důvody pro provedení tohoto přechodu.Přiřaďte pravidlo pole pod
DEFAULTREASON
neboREASON
pokud chcete, aby pravidla platila pouze z tohoto konkrétního důvodu.Pokud by pole mělo vždy obsahovat stejnou hodnotu, definujete pravidlo pod
FIELD
elementem, který toto pole definuje. Další informace o používání pravidel najdete v tématu Pravidla a vyhodnocení pravidel.Měli byste se pokusit minimalizovat počet podmínek, které definujete pro libovolný typ pracovní položky. U každého podmíněného pravidla, které přidáte, zvýšíte složitost procesu ověřování, ke kterému dochází při každém uložení pracovní položky členem týmu. Komplexní sady pravidel můžou zvýšit dobu potřebnou k uložení pracovní položky.
Následující příklady ukazují některá pravidla použitá pro systémová pole v šabloně procesu pro agilní vývoj softwaru MSF.
Změna hodnoty pole při změně stavu
Pokud je hodnota pole Stát pro pracovní položku nastavena na Hodnotu Aktivní a pracovní položka je uložena, hodnoty polí Aktivováno a Přiřazeno jsou automaticky nastaveny na název aktuálního uživatele. Tento uživatel musí být členem skupiny Valid Users pro Team Foundation Server. Hodnota pole Aktivované datum je také nastavena automaticky. Následující příklad ukazuje prvky, které vynucuje toto pravidlo:
<STATE value="Active">
<FIELDS>
<FIELD refname="Microsoft.VSTS.Common.ActivatedBy">
<COPY from="currentuser"/>
<VALIDUSER/>
<REQUIRED/>
</FIELD>
<FIELD refname="Microsoft.VSTS.Common.ActivatedDate">
<SERVERDEFAULT from="clock"/></FIELD>
<FIELD refname="System.AssignedTo">
<DEFAULT from="currentuser"/>
</FIELD>
. . .
</FIELDS>
</STATE>
Vymazání hodnoty pole, když se hodnota jiného pole změní
Pokud je hodnota pole Stát pro pracovní položku nastavena na Aktivní a pracovní položka je uložena, pole Uzavřeno datum a Uzavřeno podle jsou automaticky nastaveny na hodnotu null a jsou nastaveny jen pro čtení, pokud použijete EMPTY
prvek, jak ukazuje následující příklad.
<STATE value="Active">
<FIELDS>
. . .
<FIELD refname="Microsoft.VSTS.Common.ClosedDate"><EMPTY/></FIELD>
<FIELD refname="Microsoft.VSTS.Common.ClosedBy"><EMPTY/></FIELD>
</FIELDS>
</STATE>
Definování pole na základě obsahu jiného pole
Když se hodnota pole Stát pro pracovní položku změní na Vyřešeno a pracovní položka je uložena, hodnota pole Vyřešeno důvod je nastavena na hodnotu, kterou uživatel zadal v poli Důvod . Následující příklad ukazuje prvky, které vynucuje toto pravidlo:
<STATE value="Resolved">
<FIELDS>
. . .
<FIELD refname="Microsoft.VSTS.Common.ResolvedReason">
<COPY from="field" field="System.Reason"/>
</FIELD>
</FIELDS>
</STATE>
Související články
- Stavy pracovního postupu a kategorie stavů
- Přizpůsobení prostředí pro sledování práce
- Dotazování podle změn přiřazení, pracovního postupu nebo panelu
- Návrh formuláře pracovní položky
- Import, export a správa typů pracovních položek
Podpora nástrojů
Podporu uživatelů k vizualizaci pracovního postupu můžete provést instalací rozšíření Vizualizace stavového modelu z webu Visual Studio Marketplace.