Evaluatie van regels en regels

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Regels worden gebruikt om waardetoewijzingen in te stellen of te beperken tot een werkitemveld. Er zijn twee belangrijke soorten regels: automatisch gegenereerde regels en aangepaste regels die zijn gedefinieerd voor een proces of project. Automatisch gegenereerde regels minimaliseren de noodzaak om aangepaste regels toe te voegen voor gebieden die op een standaard manier moeten werken.

U definieert aangepaste regels ter ondersteuning van uw zakelijke gebruiksscenario's. Afhankelijk van het gegevenstype van een veld kunt u verschillende beperkingen instellen voor de gegevens die in dat veld kunnen worden ingevoerd. U kunt waarden opgeven voor een keuzelijst (vervolgkeuzelijst), standaardwaarden instellen, vermeldingen wissen of wijzigingen beperken. Op basis van voorwaardelijke regels kunt u regels toepassen op een veld op basis van afhankelijkheden tussen de waarden van verschillende velden. U kunt ook beperken wie een veld of bereik van een regel kan wijzigen, zodat deze alleen van toepassing is op een groep.

Lees dit artikel voor meer informatie over het volgende:

  • Hoe het systeem automatisch gegenereerde regels toepast
  • Beperkingen voor de definitie van aangepaste regels voor systeemvelden
  • De verschillende typen aangepaste regels die u kunt toepassen
  • Hoe regels worden geëvalueerd
  • Verschil tussen regels die zijn gedefinieerd voor een overnameproces versus een on-premises XML-proces
  • Waarom u het aantal aangepaste regels dat u definieert, moet minimaliseren

Voordat u aangepaste regels definieert, leest u Azure Boards configureren en aanpassen om een breed inzicht te krijgen in het aanpassen van Azure Boards aan uw bedrijfsbehoeften.

Tip

Minimaliseer het aantal regels dat u definieert voor een WIT. Hoewel u meerdere regels voor een WIT kunt maken, kunnen toevoegingsregels een negatieve invloed hebben op de prestaties wanneer een gebruiker werkitems toevoegt en wijzigt. Wanneer gebruikers werkitems opslaan, valideert het systeem alle regels die zijn gekoppeld aan de velden voor het type werkitem. Onder bepaalde omstandigheden is de expressie voor regelvalidatie te complex om door SQL te kunnen worden geëvalueerd.

Automatisch gegenereerde regels

Automatisch gegenereerde regels minimaliseren de noodzaak om aangepaste regels toe te voegen voor gebieden die op een standaard manier moeten werken.

Statusovergangsregels

Overgenomen processen genereren de volledige set any-to-any statusovergangsregels dynamisch voor elk aangepast werkitemtype en de aangepaste status die aan een werkstroom wordt toegevoegd. Een overgang van elke status naar een willekeurige status is geldig.

Voor on-premises XML-processen moet u de geldige overgangen opgeven in de WORKFLOW sectie van de definitie van het type werkitem.

Statusovergangen en op/datum-veldregels

De velden By/Date komen overeen met gemaakt door/datum, geactiveerd op/datum, opgelost op/datum en gesloten op/datum.

Voor overgenomen processen worden deze velden automatisch ingesteld of gewist wanneer u een werkitem van de ene status naar de andere overdrat. De velden Gewijzigd op/Datum worden niet opgenomen omdat ze worden bijgewerkt met elk werkitem dat wordt opgeslagen en die niet zijn gerelateerd aan statusovergangen.

Standaardregels en -gedragingen die deze velden bepalen, zijn onder andere:

  1. De status Gesloten is altijd opgenomen in de categorie Voltooide status.
  2. De categorie Voltooide status kan niet worden geconfigureerd en is gekoppeld aan één en slechts één status.
  3. Deze gesloten status is altijd gesloten voor Agile- en CMMI-processen en altijd gereed voor Scrum- en Basisprocessen.
  4. Het automatisch genereren van deze regels wordt beïnvloed door landinstellingen omdat de regelvoorwaarde de naam van de staat bevat, die is gelokaliseerd. Het systeem genereert verschillende regels voor verschillende landinstellingen.
  5. Automatisch gegenereerde regels voor deze velden worden alleen opgegeven voor werkitemtypen die deze velden bevatten. Het is mogelijk dat een type werkitem een of meer van deze velden niet bevat.
  6. Deze regels zijn nodig wanneer een werkitemtype aangepaste statussen heeft of het type werkitem een aangepast werkitemtype is.
  7. Deze regels zijn alleen van toepassing op overgenomen processen; ze worden nooit gegenereerd voor de gehoste XML- of on-premises XML-processen.

Werkstroomstatussen zijn gekoppeld aan statuscategorieën ter ondersteuning van de werkstroom op Kanbanborden. Zie Hoe werkstroomstatussen en statuscategorieën worden gebruikt in achterstanden en borden voor meer informatie.

Veldregels voor datum van statuswijziging

Deze regels zijn technisch gezien veel eenvoudiger dan regels voor gesloten/gesloten datums, omdat ze niet afhankelijk zijn van een bepaalde status. Voor elk type werkitem werken dezelfde regels altijd. Ze moeten automatisch worden gegenereerd omdat sommige typen OOB-werkitems het veld Datum van statuswijziging niet bevatten, dus wanneer de gebruiker dit veld toevoegt aan een aangepast werkitemtype, moeten deze regels ook automatisch worden gegenereerd. Dezelfde principes voor regels voor gesloten/gesloten datums zijn hier ook van toepassing.

Aangepaste regels

Alle aangepaste regels zijn optioneel. Voor een overgenomen proces geeft u een regel op die bestaat uit een voorwaarde plus actie. Voor een on-premises XML-proces geeft u regels op voor een veld of binnen de werkstroom.

Er is geen een-op-een-toewijzing tussen de twee processen. In sommige gevallen wordt de XML-elementregel gedefinieerd in het dialoogvenster Veld bewerken voor het overgenomen proces en niet als regel. Andere XML-elementen, zoals FROZEN, MATCH, worden NOTSAMEASniet ondersteund in het overgenomen proces.

Let op het volgende:

  • Regels worden altijd afgedwongen, niet alleen wanneer u met het formulier werkt, maar ook wanneer u via andere hulpprogramma's communiceert. Als u bijvoorbeeld een veld instelt als alleen-lezen, wordt de regel niet alleen toegepast op het werkitemformulier, maar ook via de API- en Excel Azure DevOps Server-invoegtoepassing.
  • Overgenomen procesvermeldingen geven voorwaarden en acties op om een volledige regel te maken. XML-elementen maken deze verschillen niet.
  • Veldregels bieden geen ondersteuning voor het toewijzen van waarden die de som zijn van twee andere velden of het uitvoeren van andere wiskundige berekeningen. Mogelijk vindt u echter een oplossing die aansluit bij uw behoeften via de MARKETPLACE-extensie TFS Aggregator (webservice ). Zie ook Samenvouwen van werk en andere velden.
  • Mogelijk vindt u aanvullende oplossingen voor het toepassen van aangepaste regels op velden met behulp van een Marketplace-uitbreiding, zoals de bibliotheekextensie formulierbesturingselement voor werkitems.

Regelsamenstelling

Voor een overgenomen proces bestaat elke regel uit twee onderdelen: Voorwaarden en Acties. Voorwaarden bepalen aan welke omstandigheden moet worden voldaan om de regel toe te passen. Acties definiëren de bewerkingen die moeten worden uitgevoerd. Voor de meeste regels kunt u maximaal twee voorwaarden en 10 acties per regel opgeven. Voor alle aangepaste regels moet aan alle voorwaarden worden voldaan om te kunnen worden uitgevoerd.

U kunt bijvoorbeeld een veld maken dat is vereist op basis van de waarde die is toegewezen aan de status en een ander veld. Voorbeeld:

   (Condition) When a work item State isActief
   (Condition) And when the value ofValue Area = Business
   (Action) Then make requiredVerhaalpunten

Notitie

Op dit moment wordt slechts één voorwaarde ondersteund voor statusovergangsregels. Zie Regels toepassen op werkstroomstatussen als u regels toepast op basis van Status.

De volgende tabel bevat een overzicht van de acties die beschikbaar zijn met de geselecteerde voorwaarden.

Condition

Ondersteunde acties

Veldwaarde instellen of vereist of alleen-lezen maken

Voorwaarden, werkitem wordt gemaakt

Acties, werkitem wordt gemaakt

Een overgang beperken op basis van status

Voorwaarde, werkitem wordt verplaatst

Acties, beperken van een transactie op basis van status.

Veld verbergen of veld alleen-lezen maken of vereist op basis van status en gebruiker of groepslidmaatschap

Voorwaarde, lidmaatschap van gebruikersgroep

Acties, beperken van een transactie op basis van status en lidmaatschap.

Stel op basis van het lidmaatschap van gebruikers of groepen het veldkenmerk in of beperk een statusovergang

Voorwaarde, lidmaatschap van gebruikersgroep

Acties, beperken van een transactie op basis van status en lidmaatschap.

Wat gebeurt er als er te veel regels zijn gedefinieerd

Er wordt per project één SQL-expressie gedefinieerd om werkitems te valideren wanneer ze worden gemaakt of bijgewerkt. Deze expressie groeit met het aantal regels dat u opgeeft voor alle typen werkitems die zijn gedefinieerd voor het project. Elke gedragskwalificatie die is opgegeven voor een veld resulteert in een toename van het aantal subexpressies. Geneste regels, regels die alleen van toepassing zijn op een overgang of voorwaarde voor de waarde van een ander veld, zorgen ervoor dat er meer voorwaarden worden toegevoegd aan een IF instructie. Zodra de expressie een bepaalde grootte of complexiteit heeft bereikt, kan SQL deze niet meer evalueren en wordt er een fout gegenereerd. Als u sommige WIT's verwijdert of bepaalde regels verwijdert, kunt u de fout oplossen.

U kunt waarden opgeven voor een keuzelijst (vervolgkeuzelijst), standaardwaarden instellen, vermeldingen wissen of wijzigingen beperken. Op basis van voorwaardelijke regels kunt u regels toepassen op een veld op basis van afhankelijkheden tussen de waarden van verschillende velden. U kunt ook beperken wie een veld of bereik van een regel kan wijzigen, zodat deze alleen van toepassing is op een groep.

Regels voor werkitems bestaan niet als één verzameling. De regels worden in feite dynamisch gegenereerd en samengevoegd op basis van verschillende gegevensbronnen. De samenvoeglogica is een eenvoudige, identieke regels samenvoegen, maar conflicterende regels niet beperken.

Regels omzeilen

Over het algemeen worden alle werkitems gevalideerd door de regelengine wanneer gebruikers het werkitem wijzigen. Om bepaalde scenario's te ondersteunen, kunnen gebruikers echter de regels omzeilen voor werkitems bijwerken op projectniveau werkitems opslaan zonder dat er regels worden geëvalueerd.

Regels kunnen op twee manieren worden overgeslagen. De eerste is via de Werkitems - REST API bijwerken en de bypassRules parameter instellen op true. De tweede is via het clientobjectmodel door de bypassrules-modus te initialiseren (initialiseer WorkItemStore met WorkItemStoreFlags.BypassRules).

Systeemvelden en aangepaste regels

Systeemvelden hebben Systeem.Naamreferentienamen , bijvoorbeeld System.Title en System.State.

De volgende systeemvelden zijn vereist om een waarde te hebben: Area ID, Changed Date, Created Date, Created By, State en Reason.

De regelengine beperkt het instellen van voorwaarden of acties tot systeemvelden, behalve als volgt:

  • U kunt de velden Status en Reden alleen-lezen maken.
  • U kunt de meeste regels toepassen op de velden Titel, Toegewezen aan, Beschrijving en Gewijzigd door .

Als er geen veld wordt weergegeven in de vervolgkeuzelijst van de gebruikersinterface van de regel voor het overnameproces, is dit de reden. Als u bijvoorbeeld het gebiedspad (System.AreaPath) alleen-lezen probeert te maken op basis van een voorwaarde, is het veld Gebiedspad niet beschikbaar voor selectie. Zelfs als u een systeemveld kunt opgeven, kan de regelengine het opslaan van de regel beperken.

Standaardregels en regels kopiëren

Standaardregels en regels voor kopiëren wijzigen de waarden van werkitemvelden. Ze definiëren runtimegedrag en beperkingen, zoals het opgeven van standaardwaarden, het wissen van velden, het vereisen van gedefinieerde velden en meer.

U kunt de toepassing van deze regels beperken op basis van het groepslidmaatschap van de huidige gebruiker, zoals beschreven in regels voor gebruikers- of groepslidmaatschappen.

De meeste van deze regelacties kunnen worden toegepast met de selectie van een voorwaarde.

Overgenomen procesactie

Beschrijving

Copy the value from...

Hiermee geeft u een ander veld op dat een waarde bevat die moet worden gekopieerd naar het huidige veld.

Clear the value of...

Hiermee wist u het veld van een waarde die deze bevat.

Use the current time to set the value of ...

Hiermee stelt u de tijd voor een veld in op basis van de tijdinstelling van de huidige gebruiker.

Regels voor beperkingen

Beperkingsregels beperken het wijzigen van de waarde van een veld. Ze definiëren de geldige statussen voor een werkitem. Elke beperking werkt op één veld. Beperkingen worden geëvalueerd op de server voor het opslaan van werkitems en als een beperking wordt geschonden, wordt de bewerking voor opslaan geweigerd.

U kunt de toepassing van deze regels beperken op basis van het groepslidmaatschap van de huidige gebruiker, zoals beschreven in regels voor gebruikers- of groepslidmaatschappen.

De meeste van deze regelacties kunnen worden toegepast met de selectie van een voorwaarde.

Overgenomen procesactie

Beschrijving

Hide the field...
Alleen beschikbaar wanneer een groepslidmaatschapsvoorwaarde is geselecteerd.

Hiermee geeft u op dat het veld in het werkitemformulier niet wordt weergegeven, zodat de huidige gebruiker de waarde van het veld kan wijzigen.

Make read-only

Hiermee voorkomt u dat een veld helemaal wordt gewijzigd. U kunt deze regel onder bepaalde voorwaarden toepassen. Nadat een werkitem is gesloten, wilt u bijvoorbeeld een veld alleen-lezen maken om de gegevens te bewaren voor rapportagedoeleinden.
Als u de standaardwaarde voor het veld wilt opgeven, geeft u op in het dialoogvenster Veld bewerken, tabblad Opties .

Make required

Vereist dat een gebruiker een waarde voor het veld opgeeft. Gebruikers kunnen een werkitem pas opslaan als ze waarden hebben toegewezen aan alle vereiste velden.
Als u de standaardwaarde voor het veld wilt opgeven, geeft u op in het dialoogvenster Veld bewerken, tabblad Opties .

Lijsten kiezen

Kieslijsten definiëren de waarden die een gebruiker wel of niet kan kiezen voor een tekenreeks- of geheel getalveld. Waarden die in een selectielijst zijn gedefinieerd, worden weergegeven in een werkitemformulier en de queryeditor.

Voor een overgenomen proces worden selectielijsten gedefinieerd via het dialoogvenster Veld bewerken.

Dialoogvenster Veld bewerken

Beschrijving

Tabblad Definitie voor een selectielijstveld

Hiermee definieert u een lijst met toegestane waarden voor het veld. Toegestane waarden zijn waarden die beschikbaar zijn voor selectie in een lijst met velden in werkitemformulieren en in de opbouwfunctie voor query's. U moet een van deze waarden selecteren.

Schakel het selectievakje Toestaan dat gebruikers hun eigen waarden invoeren op het tabblad Opties om gebruikers toe te staan hun eigen vermeldingen op te geven

Hiermee definieert u een lijst met voorgestelde waarden voor het veld. Voorgestelde waarden zijn waarden die beschikbaar zijn voor selectie in een lijst met velden in werkitemformulieren en in de opbouwfunctie voor query's. U kunt ook andere waarden invoeren voor de waarden in de lijst.

Waarden of wijzigingen voor voorwaardelijk veld

Met voorwaardelijke regels wordt een actie opgegeven op basis van de waarde van een veld dat gelijk is aan of niet gelijk is aan een specifieke waarde, of als een wijziging wel of niet is aangebracht in de waarde van een specifiek veld. Over het algemeen worden voorwaardelijke regels eerst toegepast op onvoorwaardelijke regels. Wanneer meerdere voorwaardelijke regels waar worden geëvalueerd, is de uitvoeringsvolgorde: Wanneer, WhenNot, WhenChanged, WhenNotChanged.

U kunt meerdere voorwaardelijke regels per veld opgeven. U kunt echter slechts één rijveld per voorwaardelijke regel opgeven.

Overgenomen voorwaarde

Beschrijving

The value of ... (equals) [Wanneer]

Hiermee geeft u een of meer regels op die moeten worden toegepast op het huidige veld wanneer een ander veld een specifieke waarde heeft.

A change was made to the value of ... [WhenChanged]

Hiermee past u een of meer regels toe op het huidige veld wanneer de waarde van een specifiek veld wordt gewijzigd.

The value of ... (not equals) [WhenNot]

Hiermee past u een of meer regels toe op het huidige veld wanneer een ander veld geen specifieke waarde heeft.

No change was made to the value of ... [WhenNotChanged]

Hiermee past u een of meer regels toe op het huidige veld wanneer de waarde van een specifiek veld niet wordt gewijzigd.


Overgenomen actie

Beschrijving

Clear the value of ...
Copy the value from ...
Make read-only ...
Make required ...
Set the value of ...
Use the current time to set the value of ...
Use the current user to set the value of ...

Hiermee geeft u de actie op die moet worden uitgevoerd voor een specifiek veld.

Beperkingen voor regels voor gebruikers- of groepslidmaatschappen

U kunt de toepassing van een regel beperken op basis van het lidmaatschap van de huidige gebruiker. U wordt aangeraden de regel te bepalen voor een Azure DevOps-beveiligingsgroep en niet voor één gebruiker, maar u kunt deze laatste opgeven. Als u de regel wilt toepassen op meerdere groepen, moet u een bovenliggende Azure DevOps-groep maken die de set groepen bevat die u wilt gebruiken.

Proces-implementatie

Tip

Als u problemen met regelevaluatie wilt voorkomen die zich kunnen voordoen, geeft u Azure DevOps-beveiligingsgroepen op en niet microsoft Entra-id of Active Directory-beveiligingsgroepen. Zie De standaardregels en de regelengine voor meer informatie.

Zoals aangegeven in de volgende tabel, om een regel te beperken op basis van het lidmaatschap van de huidige gebruiker, geeft u een van de twee voorwaarden op voor een overgenomen proces. Deze regels zijn actief voor Azure DevOps 2020 en latere versies.

Is van toepassing op

Regel

Conditie

Current user is a member of group ...
Current user is not member of group ...

Actie

Hide the field ...
Make read-only ...
Make required ...
Restrict the transition to state ...

Tokens gebruiken om te verwijzen naar gebruikers of groepen

Identiteits- of personenkiezervelden kunnen waarden accepteren die verwijzen naar zowel gebruikers als groepen. Wanneer u een regel beperkt tot een groep, geeft u het domein of bereik van de groep aan. Voor sommige waarden kunt u tokens gebruiken.

Voorbeelden van tokens zijn onder andere:

  • [ProjectName], zoals [Fabrikam], [FabrikamFiber], [MyProject]
  • [OrganizationName], zoals [fabrikam], [myorganization]
  • [CollectionName], zoals [fabrikam], [myorganization]

Als u meer wilt weten over de bereiken die beschikbaar zijn voor uw project of organisatie, gaat u naar de pagina Project Instellingen> Groepen> of Organisatie> Instellingen Permissions>Groepen, kunt u de lijst zo nodig filteren. In de volgende afbeelding ziet u bijvoorbeeld de eerste vier vermeldingen in een gefilterde lijst op basis van Azure DevOps. Zie Machtigingen op projectniveau wijzigen of Machtigingen op projectverzamelingsniveau wijzigen voor meer informatie.

Schermopname van de lijst met gefilterde machtigingengroepen.

Zie Machtigingen en groepen voor meer informatie over standaardbeveiligingsgroepen

Evaluatie van regels

Regels die een voorwaarde opgeven op basis van het gebruikers- of groepslidmaatschap van de gebruiker die een werkitem wijzigt, worden op twee manieren geëvalueerd. Wanneer de regel wordt geëvalueerd, moet de toepassing bepalen of de regel van toepassing is op de huidige gebruiker door te controleren of die gebruiker wel of geen lid is van de opgegeven groep.

  • Wanneer u het werkitem wijzigt vanuit de webportal, REST API of Azure Boards-opdracht , wordt er een aanvraag naar de Microsoft Entra-id of Active Directory gedaan. Er treden geen problemen op voor deze bewerking.
  • Wanneer u het werkitem wijzigt vanuit Visual Studio, Excel of een ander aangepast hulpprogramma met behulp van het WIT Client Object Model, is de aanvraag voor het evalueren van lidmaatschap gebaseerd op een clientcache. De clientcache is niet op de hoogte van Active Directory-groepen.

Notitie

Visual Studio 2019 Team Explorer voor projecten die GIT gebruiken, is opnieuw geschreven om REST API's te gebruiken.

Als u problemen wilt voorkomen met gebruikers die werkitems van verschillende clients bijwerken, geeft u Azure DevOps-beveiligingsgroepen op in plaats van Active Directory-groepen. U kunt eenvoudig een Azure DevOps-beveiligingsgroep maken die overeenkomt met een Active Directory-groep. Zie Gebruikers of groepen toevoegen of verwijderen, beveiligingsgroepen beheren voor meer informatie.

Notitie

De WIT Client OM is afgeschaft. Vanaf 1 januari 2020 wordt deze niet meer ondersteund bij het werken met Azure DevOps Services en Azure DevOps Server 2020.

Volgorde waarin regels worden geëvalueerd

Regels worden doorgaans verwerkt in de volgorde waarin ze worden vermeld. De volledige volgorde voor de evaluatie van alle regels is echter niet volledig deterministisch.

In deze sectie worden het verwachte gedrag en de interacties beschreven wanneer u voorwaardelijke, kopieer- en standaardregels toepast.

De volgende stappen tonen, in de juiste volgorde, de interacties die Azure DevOps uitvoert en door de gebruiker van een werkitemformulier. Alleen stap 1, 8 en 13 worden door de gebruiker uitgevoerd.

  1. Vanuit een Azure DevOps-client, zoals de webportal of Visual Studio Team Explorer, maakt een gebruiker een nieuw werkitem of bewerkt een bestaand werkitem.

  2. Vul de standaardinstellingen voor velden in. Pas voor alle velden alle standaardwaarden toe die zijn toegewezen aan het veld dat geen deel uitmaakt van een voorwaardelijke component.

  3. Veldwaarden kopiëren of instellen. Pas voor alle velden regels toe om een waarde te kopiëren of stel de waarde in van een veld dat geen deel uitmaakt van een voorwaardelijke component.

  4. Voor alle velden met een voorwaardelijke regel die overeenkomt, past u regels toe om een veldwaarde in te stellen of te kopiëren.

  5. Pas regels toe om een veldwaarde in te stellen of te kopiëren voor alle velden met een niet-voorwaardelijke regel die overeenkomt.

    Het systeem verwerkt altijd Wanneer regels vóór Wanneer geen regels.

  6. Voor alle velden waarop de waarden zijn gewijzigd sinds stap 1 en die regels bevatten wanneer de regels zijn gewijzigd , past u regels toe om een veldwaarde in te stellen of te kopiëren.

  7. Hiermee staat u de gebruiker toe om te beginnen met bewerken.

  8. De gebruiker wijzigt een veldwaarde en verplaatst vervolgens de focus van het veld.

  9. Alle Wanneer-regels voor dat veld verwerken die overeenkomen met de nieuwe waarde.

  10. Verwerkt alle wanneer niet-regels voor dat veld die overeenkomen met de nieuwe waarde.

  11. Verwerken wanneer er regels zijn gewijzigd voor dat veld die overeenkomen met de nieuwe waarde.

  12. Retourneer de mogelijkheid om de gebruiker te bewerken.

  13. De gebruiker slaat de wijzigingen in het gegevensarchief op.

  14. Pas voor alle velden acties Use the current time to set the value of ... toe die direct of indirect onder een voorwaardelijke regel zijn gedefinieerd voor het veld.