Share via


Entwerfen des Workflows

Sie entwerfen den Workflow für einen Arbeitsaufgabentyp zur Unterstützung von Geschäfts- und Teamprozessen.Der Workflow bestimmt den logischen Fortschritt der ausgeführten Aufgaben und von wem diese ausgeführt werden.Sie definieren den Workflow, indem Sie zuerst die Zustände und die gültigen Übergänge zwischen diesen identifizieren.Im Abschnitt WORKFLOW der Definition für den Arbeitsaufgabentyp werden die gültigen Zustände, Übergänge, Gründe für die Übergänge sowie die optionalen Aktionen definiert, die ausgeführt werden, wenn ein Teammitglied den Zustand einer Arbeitsaufgabe ändert.Weitere Informationen zu Typdefinitionen finden Sie unter XML-Elementreferenz für WITD.

Im Allgemeinen verknüpfen Sie jeden Zustand mit einer Teammitgliederrolle und einer Aufgabe, die eine Person in dieser Rolle zum Verarbeiten der Arbeitsaufgabe ausführen muss, bevor der Zustand geändert werden kann.Durch Übergänge werden die gültigen Fortschritte und Regressionen zwischen Zuständen definiert.Anhand von Gründen wird angegeben, warum ein Teammitglied eine Arbeitsaufgabe von einem Zustand in einen anderen ändert, und durch Aktionen wird die Automatisierung des Übergangs einer Arbeitsaufgabe an einem Punkt im Workflow unterstützt.

Wichtiger HinweisWichtig

Wenn Sie einen Zustand einem Arbeitsaufgabentyp, der auf dem Rückstand oder dem Komitee angezeigt wird, blättern in Team Web Access hinzufügen, müssen Sie den Zustand zu einem Metazustand auch zuordnen.Siehe Anpassen der Rückstands- und Boardseiten mit Prozesskonfiguration.

Beispielsweise wird der Zustand auf Neu festgelegt, wenn ein Tester einen neuen Fehler öffnet, der auf der Standard agile Prozessvorlage, die Team Foundation Server (TFS) bereitstellt.Der Entwickler ändert den Zustand zu Aktiv, wenn er den Fehler behoben, und einmal behoben, der Entwickler ändert den Zustand zu Gelöst und legt den Wert des Felds auf Korrigiert.Nachdem der Lösung überprüft hat, Tester ändert den Zustand des Fehlers in Geschlossen und das Feld Grund ändert in Bestätigt.Wenn der Tester feststellt, dass der Entwickler nicht den Fehler behoben hat, kann der Tester den Zustand des Fehlers in Aktiv ändern und den Grund als Nicht behoben oder Fehler bei Test angeben.

HinweisHinweis

Mit dem Process Editor, einem Power Tool für Visual Studio, können Sie die Definitionen für Arbeitsaufgabentypen und andere Objekte erstellen und ändern, um Arbeitsaufgaben nachzuverfolgen.Dieses Tool wird nicht unterstützt.Weitere Informationen finden Sie auf der folgenden Seite der Microsoft-Website: Team Foundation Server-Toole.

In diesem Thema

  • Richtlinien für den Workflowentwurf

  • Workflowdiagramm und Codebeispiel

  • Bestimmen von Anzahl und Typen der Zustände

  • Definieren der Übergänge

    • Festlegen der Gründe

    • Festlegen von Aktionen

  • Aktualisieren eines Felds bei Zustandsänderungen

    • Definieren eines Felds bei Zustandsänderungen

    • Löschen des Werts für ein Feld

    • Definieren eines Felds auf Grundlage des Inhalts eines anderen Felds

  • Anzeigen des Workflowzustandsdiagramms

Richtlinien für den Workflowentwurf

Beachten Sie beim Entwerfen oder Ändern eines Workflows die folgenden Richtlinien:

  • Mit dem STATE-Element definieren Sie für jede Teammitgliederrolle, die eine bestimmte Aktion für eine Arbeitsaufgabe ausführt, einen eindeutigen Zustand.Je mehr Zustände Sie definieren, desto mehr Übergänge müssen Sie definieren.Unabhängig von der Reihenfolge, in der Sie die Zustände definieren, werden diese in alphanumerischer Reihenfolge in der Liste Zustand aufgeführt.

  • Mit dem TRANSITION-Element definieren Sie einen Übergang für alle gültigen Fortschritte und Regressionen von einem Zustand in einen anderen.

  • Sie müssen mindestens einen Übergang für jeden Zustand sowie den Übergang vom Zustand NULL in den Ausgangszustand definieren.

  • Für jeden Übergang muss mit dem DEFAULTREASON-Element ein Standardgrund definiert werden.Mit dem REASON-Element können Sie beliebig viele optionale Gründe definieren.

  • Die Dropdownmenüs für die Zustands- und "Grund" in dem Arbeitsaufgabenformular oder fragen Editoranzeige ab, die die Werte im WORKFLOW-Abschnitt des Arbeitsaufgabentyps zugewiesen haben.

  • Sie können nur einen Übergang vom nicht zugewiesen Zustand (NULL) in den Anfangszustand definieren.Wenn Sie eine neue Arbeitsaufgabe speichern, wird diese automatisch dem Anfangszustand zugewiesen.

  • Wenn ein Teammitglied den Zustand einer Arbeitsaufgabe ändert, werden dadurch der Übergang und die von Ihnen definierten Aktionen ausgelöst, die für den ausgewählten Zustand und den Übergang ausgeführt werden sollen.Benutzer können nur solche Zustände angeben, die auf Grundlage der Übergänge, die Sie für den aktuellen Zustand definieren, gültig sind.Außerdem kann der Zustand einer Arbeitsaufgabe von einem ACTION-Element, ein untergeordnetes Element von TRANSITION, geändert werden.

  • Sie können für jedes Feld bedingte Regeln definieren, die angewendet werden, wenn sich der Zustand der Arbeitsaufgabe ändert, wenn Übergänge ausgeführt werden oder wenn ein Benutzer einen bestimmten Grund auswählt.Viele dieser Regeln sind Ergänzungen der bedingten Regeln, die Sie anwenden können, wenn Sie die Felder im Abschnitt FIELDS unter der WORKITEMTYPE-Definition definieren.Weitere Informationen finden Sie unter Aktualisieren eines Felds bei Zustandsänderungen weiter unten in diesem Thema.

  • Sie sollten möglichst wenige Bedingungen für die einzelnen Arbeitsaufgabentypen definieren.Mit jeder bedingten Regel, die Sie hinzufügen, wird der Validierungsprozess beim Speichern einer Arbeitsaufgabe durch ein Teammitglied komplexer.Komplexe Regelsätze können die Zeitspanne für das Speichern der Arbeitsaufgabe verlängern.

  • Bei den Namen, die Sie Zuständen und Gründen zuweisen, wird die Groß-/Kleinschreibung nicht beachtet.

Zurück nach oben

Workflowdiagramm und Codebeispiel

In der folgenden Tabelle werden der Abschnitt WORKFLOW der Definition für einen Arbeitsaufgabentyp, mit dem Codefehler verfolgt werden, sowie das Workflowzustandsdiagramm für die Definition dargestellt.In diesem Beispiel werden drei Zustände, sechs Übergänge und neun Gründe definiert.Die STATE-Elemente geben die Zustände Aktiv, Gelöst und Geschlossen an.Außer einer werden alle möglichen Kombinationen für Fortschritts- und Regressionsübergänge für die drei Zustände definiert.Der Übergang von Geschlossen in Gelöst wird nicht definiert.Daher können Teammitglieder keine Arbeitsaufgabe dieses Typs auflösen, wenn die Arbeitsaufgabe geschlossen ist.

HinweisHinweis

Im Beispiel sind die Elemente für DEFAULTREASON, REASON, ACTION und FIELD nicht aufgeführt.

<WORKFLOW>
<STATES>
  <STATE value="Active">
    <FIELDS> . . . </FIELDS>
  </STATE>
  <STATE value="Resolved">
    <FIELDS> . . . </FIELDS>
  </STATE>
  <STATE value="Closed" />
</STATES>
<TRANSITIONS>
  <TRANSITION from="" to="Active">
    <REASONS>
      <DEFAULTREASON value="New" />
    </REASONS>
    <FIELDS> . . . </FIELDS>
  </TRANSITION>
  <TRANSITION from="Active" to="Resolved">
    <REASONS> . . . </REASONS>
    <FIELDS> . . . </FIELDS>
    < ACTIONS > . . . </ ACTIONS >
</TRANSITION>
<TRANSITION from="Resolved" to="Closed">
    <REASONS> . . . </REASONS>
    <FIELDS> . . . </FIELDS>
    < ACTIONS > . . . </ ACTIONS >
</TRANSITION>
<TRANSITION from="Resolved" to="Active">
    <REASONS> . . . </REASONS>
    <FIELDS> . . . </FIELDS>
</TRANSITION>
<TRANSITION from="Active" to="Closed ">
    <REASONS> . . . </REASONS>
    <FIELDS> . . . </FIELDS>
</TRANSITION>
<TRANSITION from="Closed" to="Active">
    <REASONS> . . . </REASONS>
    <FIELDS> . . . </FIELDS>
</TRANSITION>
</TRANSITIONS>
</WORKFLOW>
Beispiel für ein Workflowzustandsdiagramm

Diagramm der Zustände von User Storys

Bestimmen von Anzahl und Typen der Zustände

Sie bestimmen die Anzahl und Typen der gültigen Zustände auf Grundlage der Anzahl unterschiedlicher logischer Zustände, in der die Arbeitsaufgaben dieses Typs vorhanden sein sollen.Wenn außerdem verschiedene Teammitglieder unterschiedliche Aktionen ausführen, sollten Sie eventuell auch einen Zustand auf Grundlage einer Mitgliederrolle definieren.Jeder Zustand entspricht einer Aktion, die ein Teammitglied für die Arbeitsaufgabe ausführen muss, damit der nächste Zustand erreicht wird.Für jeden Zustand sollten Sie die spezifischen Aktionen sowie die Teammitglieder, die diese Aktionen durchführen dürfen, definieren.

Die folgende Tabelle enthält ein Beispiel für vier Zustände, die definiert werden, um den Status einer Funktion und die gültigen Benutzer zu verfolgen, die die angegebenen Aktionen ausführen müssen:

Zustand

Gültiger Benutzer

Auszuführende Aktion

Vorgeschlagen

Projektmanager

Jeder kann eine Funktionsarbeitsaufgabe erstellen.Allerdings kann die Arbeitsaufgabe nur von Projektmanagern genehmigt oder abgelehnt werden.Wenn ein Projektmanager eine Funktion genehmigt, ändert er den Status der Arbeitsaufgabe in Aktiv. Andernfalls wird sie von einem Teammitglied geschlossen.

Aktiv

Entwicklungsleiter

Der Entwicklungsleiter beaufsichtigt die Entwicklung der Funktion.Wenn die Funktion abgeschlossen ist, ändert der Entwicklungsleiter den Status der Funktionsarbeitsaufgabe in Prüfen.

Zusammenfassung

Projektmanager

Der Projektmanager überprüft die Funktion, die vom Team implementiert wurde, und ändert den Status der Arbeitsaufgabe in Geschlossen, wenn die Implementierung zufriedenstellend ist.

Closed

Projektmanager

Für geschlossene Arbeitsaufgaben wird keine zusätzliche Aktion mehr erwartet.Diese Elemente verbleiben zu Archivierungs- und Berichtszwecken in der Datenbank.

HinweisHinweis

Alle Zustände werden in der Liste auf dem Formular für eine Arbeitsaufgabe eines bestimmten Typs in alphabetischer Reihenfolge angezeigt, unabhängig von der Reihenfolge, in der Sie diese angeben.

Zurück nach oben

Definieren der Übergänge

Wenn Sie die gültigen Zustandsfortschritte und -regressionen definieren, steuern Sie die Zustände, in die und von denen Teammitglieder eine Arbeitsaufgabe ändern können.Wenn Sie keinen Übergang von einem Zustand in einen anderen definieren, können Teammitglieder eine Arbeitsaufgabe eines bestimmten Typs nicht von einem bestimmten Zustand in einem anderen bestimmten Zustand ändern.

In der folgenden Tabelle sind die gültigen Übergänge für jeden der vier Zustände definiert, die weiter oben in diesem Thema beschrieben wurden, zusammen mit dem jeweiligen Standardgrund.

Zustand

Übergang in Zustand

Standardgrund

Vorgeschlagen

Aktiv (Fortschritt)

Genehmigt für Entwicklung

Geschlossen (Fortschritt)

Nicht genehmigt

Aktiv

Prüfen (Fortschritt)

Akzeptanzkriterien erfüllt

Zusammenfassung

Geschlossen (Fortschritt)

Funktion abgeschlossen

Aktiv (Regression)

Erfüllt die Anforderungen nicht

Closed

Vorgeschlagen (Regression)

Genehmigung erneut prüfen

Aktiv (Regression)

Versehentlich geschlossen

Mit den for- und not-Attributen des TRANSITION-Elements können Sie einschränken, wer einen Übergang von einem Zustand in einen anderen durchführen darf.Wie im folgenden Beispiel veranschaulicht, können Tester einen Fehler erneut öffnen, Entwickler jedoch nicht.

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

Zurück nach oben

ms194981.collapse_all(de-de,VS.110).gifFestlegen der Gründe

Wenn ein Teammitglied das Feld Zustand ändert, kann dieser Benutzer den Standardgrund für diesen Übergang übernehmen oder einen anderen Grund angeben, wenn Sie zusätzliche Optionen definieren.Mit dem DEFAULTREASON-Element darf genau ein Standardgrund angegeben werden.Zusätzliche Gründe sollten Sie nur dann angeben, wenn diese das Team beim Nachverfolgen von Daten oder bei der Berichterstellung unterstützen.

Ein Entwickler kann z. B. in Bezug auf die Fehlerbehebung einen der folgenden Gründe angeben: Korrigiert (Standard), Verzögert, Doppelt, Wie entwickelt, Nicht reproduzierbar oder Veraltet.Jeder Grund gibt eine bestimmte Aktion an, die der Tester hinsichtlich des Fehlers ausführen soll.

HinweisHinweis

Alle Gründe werden in der Liste auf dem Arbeitsformular für Arbeitsaufgaben eines bestimmten Typs in alphabetischer Reihenfolge angezeigt, unabhängig von der Reihenfolge, in der Sie die REASON-Elemente angeben.

Das folgende Beispiel zeigt die Elemente, mit denen die Gründe definiert werden, warum ein Mitglied des Teams einen Fehler beheben könnte:

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

Zurück nach oben

ms194981.collapse_all(de-de,VS.110).gifFestlegen von Aktionen

Im Allgemeinen ändern Teammitglieder den Zustand einer Arbeitsaufgabe, indem sie einen anderen Wert für das Feld Zustand angeben und die Arbeitsaufgabe dann speichern.Sie können jedoch auch ein ACTION-Element definieren, anhand dessen der Zustand einer Arbeitsaufgabe automatisch geändert wird, wenn dieser Übergang auftritt.Wie das folgende Beispiel zeigt, können Sie angeben, dass Fehlerarbeitsaufgaben automatisch aufgelöst werden sollen, wenn sie Dateien zugeordnet sind, die ein Entwickler in die Versionskontrolle eincheckt:

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

Sie können das ACTION-Element verwenden, um den Zustand der Arbeitsaufgaben eines bestimmten Typs automatisch ändern, wenn Ereignisse an anderer Stelle in Microsoft Visual Studio Application Lifecycle Management oder in der außerhalb Visual Studio Application Lifecycle Management auftreten (beispielsweise, einem Tool, das Aufrufe verfolgt).Weitere Informationen finden Sie unter Automatisieren von Feldzuweisungen auf Grundlage von Zustand, Übergang oder Grund.

Zurück nach oben

Aktualisieren eines Felds

Sie können Regeln definieren, mit denen Felder immer dann aktualisiert werden, wenn die folgenden Ereignisse auftreten:

  • Weisen Sie unter STATE eine Feldregel zu, wenn die Regel für alle Übergänge zu diesem Zustand und Gründe für das Eintreten in diesen Zustand angewendet werden soll.

  • Weisen Sie unter TRANSITION eine Feldregel zu, wenn die Regel für diesen Übergang und für alle Gründe zur Durchführung dieses Übergangs angewendet werden soll.

  • Weisen Sie unter DEFAULTREASON oder REASON eine Feldregel zu, wenn die Regeln nur für diesen bestimmten Grund angewendet werden sollen.

Wenn ein Feld immer den gleichen Wert enthalten soll, definieren Sie die Regel unter dem FIELD-Element, von dem das entsprechende Feld definiert wird.Weitere Informationen finden Sie unter Festlegen von Bedingungen für ein Arbeitsaufgabenfeld.

In den folgenden Beispielen werden einige der Regeln veranschaulicht, die auf Systemfelder in der Prozessvorlage für MSF Agile Software Development v5.0 angewendet werden.

  • Ändern des Werts eines Felds bei Zustandsänderungen

  • Löschen des Werts eines Felds bei Änderungen des Werts eines anderen Felds

  • Definieren eines Felds auf Grundlage des Inhalts eines anderen Felds

Zurück nach oben

ms194981.collapse_all(de-de,VS.110).gifÄndern des Werts eines Felds bei Zustandsänderungen

Wenn der Wert des Felds Zustand für eine Arbeitsaufgabe auf Aktiv festgelegt ist und die Arbeitsaufgabe gespeichert wird, werden die Werte der Felder Aktiviert von und Zugewiesen an automatisch auf den Namen des aktuellen Benutzers festgelegt.Dieser Benutzer muss Mitglied der Gruppe "Gültige Team Foundation Server-Benutzer" sein.Der Wert des Felds Aktivierungsdatum wird ebenfalls automatisch festgelegt.Das folgende Beispiel zeigt die Elemente, die diese Regel erzwingen:

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

Zurück nach oben

ms194981.collapse_all(de-de,VS.110).gifLöschen des Werts eines Felds bei Änderungen des Werts eines anderen Felds

Wenn der Wert des Felds Zustand für eine Arbeitsaufgabe auf Aktiv festgelegt ist und die Arbeitsaufgabe gespeichert wird, werden, wie das folgende Beispiel zeigt, die Felder Schließungsdatum und Geschlossen von automatisch auf NULL festgelegt und schreibgeschützt, wenn Sie das EMPTY-Element verwenden.

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

Zurück nach oben

ms194981.collapse_all(de-de,VS.110).gifDefinieren eines Felds auf Grundlage des Inhalts eines anderen Felds

Wird der Wert des Felds Zustand für eine Arbeitsaufgabe in Gelöst geändert und die Arbeitsaufgabe gespeichert, wird der Wert des Felds Grund für Lösung auf den Wert festgelegt, der vom Benutzer im Feld Grund angegeben wurde.Das folgende Beispiel zeigt die Elemente, die diese Regel erzwingen:

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

Zurück nach oben

Anzeigen des Workflowzustandsdiagramms

Sie können das Workflowzustandsdiagramm anzeigen, das Sie mit definieren, den Prozess-Editor verwenden, einem Powertool für Visual Studio anzeigen.Dieses Tool wird nicht unterstützt.Weitere Informationen finden Sie auf der folgenden Seite der Microsoft-Website: Team Foundation Server-Toole.

Zurück nach oben

Siehe auch

Weitere Ressourcen

Definieren und Anpassen des Workflows für Arbeitsaufgaben