Munkaelem-típus munkafolyamatának módosítása

Azure DevOps Server 2022 – Azure DevOps Server 2019

A munkaelem-típus (WIT) munkafolyamatát módosíthatja az üzleti és a csapatfolyamatok támogatásához. A WIT-k támogatják az összes munkatípus – követelmények, feladatok, kódhibák – nyomon követését a szoftverfejlesztés támogatásához.

A munkafolyamat határozza meg a csapattagok által végzett munka logikai előrehaladását és regresszióját. Az Állapot és ok mezők legördülő menüjében megjelenő értékeket is megadja. További információ: Folyamatok és folyamatsablonok.

Munkafolyamat a termék-teendőlista-elemhez (Scrum-folyamatsablon)

Termék-hátraléktétel munkafolyamata, Scrum-folyamat

Feljegyzés

Ez a cikk bemutatja, hogyan szabhat testre munkafolyamat-állapotokat. Ha ehelyett egy adott munkaelemhez rendelt állapotot szeretné módosítani, tekintse meg a következő cikkek egyikét: Kanban tábla, Folyamatban lévő munka nyomon követése vagy Feladattábla, Tevékenységállapot frissítése. Számos munkaelem állapotának tömeges frissítését is végrehajthatja.

A folyamat-munkafolyamatokról további információt a CI/CD használatának első lépései című témakörben talál.

Munkaelem-típus XML-definíciójának frissítése

Ha még nem ismerkedik a WIT testreszabásával, vegye figyelembe a következőket:

  • A munkaelem-típus bármely aspektusának testreszabásához frissítenie kell annak XML-definícióját. Az XML-definíciót az Összes WITD XML-elemre vonatkozó hivatkozás ismerteti
  • Ha testre szabja az új munkaelem-felületet használó webes űrlapot, hivatkoznia kell a WebLayout és a Control elemekre
  • Ha testre szab egy ügyfélűrlapot a Visual Studióval való használatra, hivatkoznia kell az Elrendezés XML-elemére
  • Kövesse a munkaelem-követési webes űrlap testreszabása című szakasz lépéseit.

A munkafolyamat testreszabásához kövesse az alábbi két lépést:

  1. Módosítsa a WORKFLOW WIT-definíció jelen témakörben ismertetett szakaszát.

  2. Módosítsa a folyamatkonfigurációt az új munkafolyamat-állapotok metastatesre való leképezéséhez.

    Ez a második lépés az Agilis eszközoldalon megjelenő WIT munkafolyamatának módosításakor szükséges. Ezek a WIT-k a követelmény- vagy tevékenységkategóriákhoz tartoznak. Az állapotkategóriákról további információt a Munkafolyamat állapota és az állapotkategóriák című témakörben talál.

Munkafolyamat-tervezési irányelvek

A munkafolyamatot úgy határozhatja meg, hogy először azonosítja az állapotokat és a közöttük lévő érvényes átmeneteket. A WORKFLOW WIT-definíció szakasza meghatározza azokat az érvényes állapotokat, áttűnéseket, az áttűnések okait és választható műveleteket, amelyeket a csapattagok a munkaelem állapotának módosításakor hajtanak végre.

Általánosságban elmondható, hogy az egyes állapotokat egy csapattagi szerepkörrel és egy olyan feladattal társítja, amelyet az adott szerepkörben lévő személynek el kell végeznie a munkaelem feldolgozásához az állapot módosítása előtt. Az áttűnések határozzák meg az állapotok közötti érvényes progressziókat és regressziókat. Az okok meghatározzák, hogy a csapattagok miért módosítanak egy munkaelemet egyik állapotból a másikba, és a műveletek támogatják a munkafolyamat egy pontján lévő munkaelem áttűnésének automatizálását.

Az állapot például Új értékre van állítva, amikor egy tesztelő új hibát nyit meg, amely az alapértelmezett Agile-folyamaton alapul. A fejlesztő a hiba javításakor aktív állapotra módosítja az állapotot, és a hiba kijavítása után a fejlesztő feloldott állapotúra módosítja az állapotát, és az Ok mező értékét Rögzített értékre állítja. A javítás ellenőrzése után a tesztelő bezárt állapotúra módosítja a hiba állapotát, az Ok mező pedig ellenőrzöttre változik. Ha a tesztelő megállapította, hogy a fejlesztő nem javította a hibát, a tesztelő a hiba állapotát Aktív értékre változtatja, és megadhatja a Nem javítva vagy a Sikertelen teszt okát.

Munkafolyamat tervezésekor vagy módosításakor vegye figyelembe az alábbi irányelveket:

  • STATE Az elem használatával egyedi állapotot határozhat meg minden olyan csapattagi szerepkörhöz, amely egy adott műveletet hajt végre egy munkaelemen. Minél több állapotot határoz meg, annál több átmenetet kell meghatároznia. Függetlenül attól, hogy milyen sorrendben definiálja az állapotokat, azok alfanumerikus sorrendben jelennek meg az Állapot mező legördülő menüjében.

    Ha olyan munkaelem-típushoz ad hozzá állapotot, amely a webes portál hátralék- vagy táblaoldalain jelenik meg, az állapotot állapotkategóriára is le kell képeznie. További információ: Munkafolyamat-állapotok és állapotkategóriák áttekintése.

  • TRANSITION Az elem használatával definiálhat átmenetet az egyes érvényes progressziókhoz és regressziókhoz az egyik állapotból a másikba.

    Legalább egy átmenetet kell definiálnia minden egyes állapothoz, valamint a null állapotról a kezdeti állapotra való áttérést.

    Csak egy áttűnést definiálhat a nem hozzárendelt (null) és a kezdeti állapot között. Új munkaelem mentésekor a rendszer automatikusan hozzá lesz rendelve a kezdeti állapothoz.

    Amikor egy csapattag módosítja egy munkaelem állapotát, a módosítás aktiválja az áttűnést, valamint a kijelölt állapothoz és az áttűnéshez végrehajtandó műveleteket. A felhasználók csak azokat az állapotokat adhatók meg, amelyek az aktuális állapothoz megadott áttűnések alapján érvényesek. Emellett egy ACTION elem, amely a gyermekelem TRANSITION, megváltoztathatja egy munkaelem állapotát.

  • Az egyes áttűnések esetében az elem használatával meg kell határoznia egy DEFAULTREASON alapértelmezett okot. Az elem használatával REASON tetszőleges számú választható okot definiálhat. Ezek az értékek az Ok mező legördülő menüjében jelennek meg.

  • Megadhatja azokat a szabályokat, amelyek akkor lesznek alkalmazva, amikor a munkaelem állapota megváltozik, áttűn, vagy amikor egy felhasználó kiválaszt egy adott okot. Ezen szabályok közül sok kiegészíti azokat a feltételes szabályokat, amelyeket a definíció alatti WORKITEMTYPE szakasz mezőinek FIELDS definiálásakor alkalmazhat. További információ: Mezők frissítése a munkafolyamat módosítása során a témakör későbbi részében.

  • Az állapotokhoz és okokhoz rendelt nevek nem érzéketlenek.

    A munkaelem űrlapon vagy lekérdezésszerkesztőben az Állapot és ok mezők legördülő menüi a munkaelem típusának szakaszában WORKFLOW hozzárendelt értékeket jelenítik meg.

Példa munkafolyamat-diagramra és kódra

Az alábbi példakód az WORKFLOW Agile-folyamatsablon hiba WIT-definícióját mutatja be. Ez a példa három állapotot és öt átmenetet határoz meg. Az STATE elemek az aktív, a feloldott és a lezárt állapotot határozzák meg. A progressziós és regressziós áttűnések összes lehetséges kombinációját a három állapot határozza meg, egy kivételével. Nincs definiálva az áttűnés a lezártról a megoldottra. Ezért a csapattagok nem tudják feloldani az ilyen típusú munkaelemet, ha a munkaelem be van zárva.

Ez a példa nem sorolja fel a DEFAULTREASON, REASON, ACTIONés FIELD.

Példa munkafolyamatállapot-diagramra – Agilis hiba – WIT

Hibafolyamat-állapotok, Agilis folyamatsablon

<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>

Az állapotok számának és típusainak meghatározása

Az érvényes állapotok számát és típusait azon különböző logikai állapotok száma alapján határozza meg, amelyekben az ilyen típusú munkaelemeket meg szeretné jeleníteni. Ha a különböző csapattagok eltérő műveleteket hajtanak végre, érdemes megfontolni az állapot tagszerepkör alapján történő meghatározását. Minden állapot egy olyan műveletnek felel meg, amelyet a csapattagnak végre kell hajtania a munkaelemen a következő állapotba való áthelyezéshez. Minden egyes állapothoz meg kell határoznia az adott műveleteket, valamint azokat a csapattagokat, akik jogosultak a műveletek végrehajtására.

Az alábbi táblázat négy olyan állapotot mutat be, amelyek egy funkció előrehaladásának nyomon követésére vannak meghatározva, valamint az érvényes felhasználókra, akiknek végre kell hajtaniuk a megadott műveleteket:

Állapot Érvényes felhasználó Végrehajtandó művelet
Javasolt Projektvezető A funkció munkaelemét bárki létrehozhatja. A munkaelemet azonban csak a projektmenedzserek hagyhatják jóvá vagy tilthatják le. Ha egy projektmenedzser jóváhagy egy funkciót, a projektmenedzser aktív állapotúra módosítja a munkaelem állapotát; ellenkező esetben egy csapattag bezárja azt.
Aktív Fejlesztési vezető A fejlesztési vezető felügyeli a funkció fejlesztését. A szolgáltatás befejezése után a fejlesztési érdeklődő a funkció munkaelemének állapotát Véleményezésre módosítja.
Áttekintés Projektvezető A projektmenedzser áttekinti a csapat által megvalósított funkciót, és ha a megvalósítás kielégítő, a munkaelem állapotát Lezártra módosítja.
Lezárva Projektvezető A bezárt munkaelemeken nem várható további művelet. Ezek az elemek archiválási és jelentéskészítési célból maradnak az adatbázisban.

Feljegyzés

Minden állapot betűrendben jelenik meg egy adott típusú munkaelem űrlapjának listájában, függetlenül attól, hogy milyen sorrendben adja meg őket.

Áttűnések definiálása

Az érvényes állapot-előrehaladások és regressziók megadásakor ön szabályozhatja, hogy a csapattagok mely állapotba és melyikből módosíthatják a munkaelemeket. Ha nem definiál áttűnést egyik állapotról a másikra, a csapattagok nem módosíthatják egy adott típusú munkaelemet egy adott állapotról egy másik állapotra.

Az alábbi táblázat a jelen témakörben korábban ismertetett négy állapot mindegyikére vonatkozóan meghatározza az érvényes áttűnéseket, valamint az egyes állapotok alapértelmezett okát.

Állapot Áttűnés állapotra Alapértelmezett ok
Javasolt Aktív (progresszió) Fejlesztésre jóváhagyva
Zárt (progresszió) Nincs jóváhagyva
Aktív Áttekintés (progresszió) Teljesültek az elfogadási feltételek
Áttekintés Zárt (progresszió) A funkció befejeződött
Aktív (regresszió) Nem felel meg a követelményeknek
Lezárva Javasolt (regresszió) Újragondolás jóváhagyásra
Aktív (regresszió) Hiba miatt bezárva

Az elem attribútumainak használatával korlátozhatja, hogy ki válthat át egyik állapotról a másikra.TRANSITION Ahogy az alábbi példa is mutatja, a tesztelők újra megnyithatnak egy hibát, de a fejlesztők nem.

<TRANSITION from="Closed" to="Active"  
   for="[Project]\Testers"  
   not="[Project]\Developers">  
   . . .  
</TRANSITION>  

Az okok megadása

Ha egy csapattag módosítja az Állapot mezőt, az adott felhasználó megtarthatja az áttűnés alapértelmezett okát, vagy megadhat egy másik okot, ha további beállításokat határoz meg. Az elem használatával DEFAULTREASON csak egy alapértelmezett okot adhat meg. Csak akkor adjon meg további indokokat, ha segítenek a csapatnak az adatok nyomon követésében vagy jelentésében.

A fejlesztők például a következő okok egyikét adhatja meg egy hiba megoldásakor: Rögzített (Alapértelmezett), Késleltetett, Duplikált, Tervezettként, Nem reprodukálható vagy Elavult. Minden ok egy adott műveletet határoz meg a tesztelő számára a hiba tekintetében.

Feljegyzés

Minden ok betűrendben jelenik meg az adott típusú munkaelemek munkaűrlapjának listájában, függetlenül attól, hogy milyen sorrendben adja meg az REASON elemeket.

Az alábbi példa azokat az elemeket mutatja be, amelyek meghatározzák, hogy a csapattagok miért oldhatnak meg egy hibát:

<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>  

Műveletek megadása

A csapattagok általában úgy módosítják a munkaelem állapotát, hogy egy másik értéket ad meg az Állapot mezőhöz, majd menti a munkaelemet. Definiálhat azonban olyan ACTION elemet is, amely automatikusan módosítja a munkaelem állapotát az áttűnés bekövetkezésekor. Ahogy az alábbi példa is mutatja, megadhatja, hogy a hibamunkaelemeket automatikusan meg kell oldani, ha olyan fájlokhoz vannak társítva, amelyeket a fejlesztő ellenőriz a verziókövetésben:

<TRANSITION from="Active" to="Resolved">  
      <ACTIONS>  
      <ACTION value="Microsoft.VSTS.Actions.Checkin"/>  
      </ACTIONS>  
. . .  
</TRANSITION>  

Az elem használatával ACTION automatikusan módosíthatja egy adott típusú munkaelem állapotát, amikor események történnek a Microsoft Visual Studio alkalmazás életciklus-kezelésének más részein vagy a Visual Studio alkalmazás életciklus-felügyeletén kívül (például egy hívásokat nyomon hívó eszközről). További információ: ACTION.

Mező frissítése munkafolyamat-módosítás során

A mezőket a következő események bekövetkezésekor módosító szabályokat határozhat meg:

  • Rendeljen hozzá egy mezőszabályt STATE , ha azt szeretné, hogy a szabály az állapot megadásának minden áttűnésére és okára vonatkozzanak.

  • Rendeljen hozzá egy mezőszabályt TRANSITION , ha azt szeretné, hogy a szabály az adott áttűnést alkalmazza, és az áttűnés minden okát.

  • Rendeljen hozzá egy mezőszabályt DEFAULTREASON , vagy REASON ha azt szeretné, hogy a szabályok csak erre az adott okra vonatkozzanak.

    Ha egy mezőnek mindig ugyanazt az értéket kell tartalmaznia, akkor a mezőt meghatározó elem alatt kell meghatároznia a FIELD szabályt. A szabályhasználatról további információt a Szabályok és a szabályértékelés című témakörben talál.

    Próbálja meg minimálisra csökkenteni a munkaelem-típushoz definiált feltételek számát. Minden hozzáadott feltételes szabály esetében növeli az ellenőrzési folyamat összetettségét, amely minden alkalommal megtörténik, amikor egy csapattag ment egy munkaelemet. Az összetett szabálykészletek növelhetik a munkaelem mentéséhez szükséges időt.

    Az alábbi példák az MSF Agile Software Development folyamatsablonjának rendszermezőire alkalmazott szabályokat mutatják be.

Mező értékének módosítása az állapot változásakor

Ha egy munkaelem Állapot mezőjének értéke Aktív értékre van állítva, és a munkaelem mentése megtörténik, az Aktiválva és hozzárendelve mezők értékei automatikusan az aktuális felhasználó nevére lesznek állítva. A felhasználónak a Team Foundation Kiszolgáló érvényes felhasználói csoportjának tagjának kell lennie. Az Aktivált dátum mező értéke is automatikusan be van állítva. Az alábbi példa a szabályt kényszerítő elemeket mutatja be:

<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>  

Mező értékének törlése, ha egy másik mező értéke megváltozik

Ha egy munkaelem Állapot mezőjének értéke Aktív értékre van állítva, és a munkaelem mentése megtörténik, a Bezárt dátum és a Záró dátum mező automatikusan null értékre van állítva, és írásvédett állapotúvá lesz, ha az EMPTY elemet használja, ahogy az az alábbi példában is látható.

<STATE value="Active">  
      <FIELDS>  
. . .  
      <FIELD refname="Microsoft.VSTS.Common.ClosedDate"><EMPTY/></FIELD>  
      <FIELD refname="Microsoft.VSTS.Common.ClosedBy"><EMPTY/></FIELD>  
      </FIELDS>  
</STATE>  

Mező definiálása egy másik mező tartalma alapján

Ha egy munkaelem Állapot mezőjének értéke Feloldva értékre változik, és a munkaelem mentése történik, a Feloldott ok mező értéke az Ok mezőben megadott felhasználó által megadott értékre lesz állítva. Az alábbi példa a szabályt kényszerítő elemeket mutatja be:

<STATE value="Resolved">  
      <FIELDS>  
. . .  
      <FIELD refname="Microsoft.VSTS.Common.ResolvedReason">  
         <COPY from="field" field="System.Reason"/>  
      </FIELD>  
      </FIELDS>  
</STATE>  

Eszköztámogatás

A Visual Studio Marketplace-ről telepített Állapotmodell vizualizációs bővítmény telepítésével támogathatja a felhasználókat a munkafolyamat vizualizációjában.