Delen via


WiQL-syntaxisreferentie (Work Item Query Language)

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

U kunt de WIQL-syntaxis gebruiken om een query te definiëren als hyperlink of wanneer u de QUERYtaal voor werkitems (REST API) gebruikt.

De WIQL-syntaxis ondersteunt alle functies die beschikbaar zijn via de webportal Power Query-editor plus nog een paar extra functies. U kunt de velden opgeven die moeten worden geretourneerd en logische groepering van queryclausules opgeven. Daarnaast kunt u een ASOF component gebruiken om te filteren op basis van toewijzingen op basis van een vorige datum.

Belangrijk

De WIQL-syntaxis wordt gebruikt om de Query by Wiql REST API uit te voeren. Op dit moment is er geen manier om de API aan te roepen om de gedetailleerde werkitemgegevens rechtstreeks vanuit een WIQL-query te retourneren. Ongeacht welke velden u in de SELECT-instructie opneemt, retourneert de API alleen de werkitem-id's. Als u de volledige informatie wilt ophalen, moet u twee stappen uitvoeren: (1) haal de id van de werkitems op uit een WIQL en (2) haal de werkitems op via Een lijst met werkitems ophalen op id en voor specifieke velden.

Vereisten

Een query retourneert alleen de werkitems waarvoor u de werkitems weergeven hebt of Werkitems weergeven in deze knooppuntmachtiging . Deze machtigingen worden doorgaans verleend aan leden van de groepen Lezers en Inzenders voor elk teamproject. Zie Machtigingen en groepen voor meer informatie.

Overzicht van querytaal

De querytaal voor werkitems bevat vijf onderdelen die worden weergegeven in het volgende syntaxisfragment en beschreven in de volgende tabel. WIQL-syntaxis is niet hoofdlettergevoelig.

SELECT
    [System.Id],
    [System.AssignedTo],
    [System.State],
    [System.Title],
    [System.Tags]
FROM workitems
WHERE
    [System.TeamProject] = 'Design Agile'
    AND [System.WorkItemType] = 'User Story'
    AND [System.State] = 'Active'
ORDER BY [System.ChangedDate] DESC
ASOF '02-11-2020'

Tip

Door de Marketplace-extensie wiql-editor te installeren, kunt u uw query's maken met behulp van de Power Query-editor en vervolgens de WIQL-syntaxis weergeven. Vervolgens kunt u de WIQL-syntaxis kopiëren en wijzigen en de query uitvoeren met behulp van de Wiql Playground-hub die is toegevoegd aan Borden.

Clausule

Voorbeeld

SELECT

Identificeert de velden die moeten worden geretourneerd voor elk werkitem dat door de query wordt geretourneerd. U kunt de beschrijvende naam of verwijzingsnaam opgeven. Gebruik vierkante haken ([]) als de naam lege waarden of punten bevat.

FROM

Hiermee wordt aangegeven of u wilt dat de query werkitems of koppelingen tussen werkitems zoekt.

  • Gebruik FROM WorkItems dit om werkitems te retourneren.
  • Hiermee FROM workItemLinks kunt u koppelingen tussen werkitems retourneren. Zie Query's voor koppelingen tussen werkitems verderop in dit artikel voor meer informatie.

WHERE

Hiermee geeft u de filtercriteria voor de query. Zie Filtervoorwaarden (WHERE) verderop in dit artikel voor meer informatie.

ORDER BY

Hiermee geeft u de sorteervolgorde op van de geretourneerde werkitems. U kunt oplopend (Asc) of Aflopend (Desc) opgeven voor een of meer velden. Voorbeeld:
ORDER BY [State] Asc, [Changed Date] Desc

ASOF

Hiermee geeft u een historische query op door een datum aan te geven waarop het filter moet worden toegepast. Deze query retourneert bijvoorbeeld alle gebruikersverhalen die zijn gedefinieerd als Actief op 11 februari 2020. Geef de datum op volgens de richtlijnen in datum- en tijdpatroon. ASOF '02-11-2020'

Notitie

De WIQL-lengte van query's op Azure Boards mag niet langer zijn dan 32.000 tekens. Het systeem staat u niet toe om query's te maken of uit te voeren die die lengte overschrijden.

Datum- en tijdpatroon

Het datum- en tijdpatroon dat u invoert voor datum/tijd-velden , moet overeenkomen met het patroon dat u selecteert via uw profiel. Zie Gebruikersvoorkeuren instellen om uw selectie weer te geven of te wijzigen.

Schermopname van de vervolgkeuzelijst Datumpatroon in het deelvenster Tijd en Landinstellingen.Schermopname van de vervolgkeuzelijst Opties voor tijdpatroon in het deelvenster Tijd en Landinstellingen.

Schermopname van het deelvenster Tijd en landinstellingen met de velden Datumpatroon en Tijdpatroon.

Aanhalingstekens (enkele of dubbele aanhalingstekens worden ondersteund) Letterlijke datum/tijd die in vergelijkingen worden gebruikt. Ze moeten de .NET DateTime-indeling hebben van de lokale clientcomputer waarop de query wordt uitgevoerd. Tenzij een tijdzone is opgegeven, bevinden de letterlijke datum/tijd zich in de tijdzone van de lokale computer.

WHERE 
   AND [System.ChangedDate] >= '01-18-2019 GMT'
   AND ([Closed Date] < '01-09-2022 GMT'
   OR [Resolved Date] >= '01-18-2019 14:30:01')  

Wanneer de tijd wordt weggelaten in een letterlijke datum/tijd en de parameter dayPrecision gelijk is aan false, wordt ervan uitgegaan dat de tijd nul (middernacht) is. De standaardinstelling voor de parameter dayPrecision is false.

U kunt ook een ISO 8601-indeling opgeven die geldig is, ongeacht de landinstelling. ISO 8601 vertegenwoordigt datum en tijd door te beginnen met het jaar, gevolgd door de maand, de dag, het uur, de minuten, seconden en milliseconden. Bijvoorbeeld: 2021-12-10 15:00:00.000, vertegenwoordigt de 10e van december 2021 om 15:00:00.00 uur in de lokale tijd. Een voorbeeld van het gebruik van iso 8601-indeling is als volgt.

WHERE 
   AND [System.ChangedDate] >= '2019-01-18T00:00:00.0000000'
   AND ([Closed Date] < '2022-01-09T00:00:00.0000000'
   OR [Resolved Date] >= '2019-01-18T00:00:00.0000000')  

Aangepaste velden

U kunt een aangepast veld toevoegen aan een querycomponent. Met WIQL moet u de verwijzingsnaam voor het aangepaste veld opgeven. Voor projecten die een overgenomen procesmodel gebruiken, worden aangepaste velden meestal gelabeld met Aangepast. Deze worden voorafgegaan door hun naam en de spaties worden verwijderd. Voorbeeld:

Beschrijvende naam Naam van verwijzing
Fiatteur Custom.Approver
Aanvraagtype Custom.RequestType
Schatting van bereik Custom.CustomEstimate

Voor projecten die gebruikmaken van het on-premises XML-procesmodel, is de verwijzingsnaam zoals gedefinieerd door de definities van het type XML-werkitem.

Zie Werkitemvelden en -kenmerken voor meer informatie.

Filtercomponenten opgeven (WHERE)

Met WHERE de component worden de filtercriteria opgegeven. De query retourneert alleen werkitems die voldoen aan de opgegeven criteria. Met de volgende voorbeeldcomponent WHERE worden bijvoorbeeld gebruikersverhalen geretourneerd die actief zijn en die aan u zijn toegewezen.

WHERE [Work Item Type] = 'User Story'
   AND [State] = 'Active'
   AND [Assigned to] = @Me

U kunt de volgorde bepalen waarin logische operators worden geëvalueerd door ze tussen haakjes te plaatsen om de filtercriteria te groeperen. Als u bijvoorbeeld werkitems wilt retourneren die aan u zijn toegewezen of die u hebt gesloten, wijzigt u het queryfilter zodat deze overeenkomt met het volgende voorbeeld.

WHERE
    [System.TeamProject] = @project
    AND (
        [System.WorkItemType] = 'Product Backlog Item'
        AND (
            [System.AssignedTo] = @me
            OR [Microsoft.VSTS.Common.ClosedBy] = @me
        )
    )

Filtervoorwaarden

Elke filtervoorwaarde bestaat uit drie delen, die elk moeten voldoen aan de volgende regels:

  • Veld: U kunt de verwijzingsnaam of beschrijvende naam opgeven. De volgende voorbeelden zijn geldige WIQL-syntaxis:
    • Referentienaam: SELECT [System.AssignedTo] ...
    • Beschrijvende naam met spaties: SELECT [Assigned To] ...
    • Voor namen zonder spaties zijn geen vierkante haken vereist: SELECT ID, Title ...
  • Operator: Geldige waarden worden opgegeven in de sectie Operators verderop in dit artikel.
  • Veldwaarde: U kunt een van de volgende drie waarden opgeven, afhankelijk van het opgegeven veld.
    • Een letterlijke waarde moet overeenkomen met het gegevenstype van de veldwaarde.
    • Een *variabele of macro die een bepaalde waarde aangeeft. @Me geeft bijvoorbeeld de persoon aan die de query uitvoert. Zie macro's en variabelen verderop in dit artikel voor meer informatie.
    • De naam van een ander veld. U kunt [Assigned to] = [Changed by] bijvoorbeeld werkitems zoeken die zijn toegewezen aan de persoon die het werkitem het laatst heeft gewijzigd.

Zie de index van het veld Werkitem voor een beschrijving en verwijzingsnamen van alle door het systeem gedefinieerde velden.

Operators

Query's gebruiken logische expressies om resultatensets te kwalificeren. Deze logische expressies worden gevormd door een of meer samengevoegde bewerkingen.

Hieronder vindt u enkele eenvoudige querybewerkingen.

WHERE
    [System.TeamProject] = @project
    AND [System.WorkItemType] <> ''
    AND [System.AssignedTo] = 'Jamal Hartnett <fabrikamfiber4@hotmail.com>'
    AND [Microsoft.VSTS.Common.Severity] <> '1 - Critical'

De onderstaande tabel bevat een overzicht van alle ondersteunde operators voor verschillende veldtypen. Zie Werkitemvelden en -kenmerken voor meer informatie over elk veldtype.

De =, <>, >, <, >=, and <= operators werken zoals verwacht. System.ID > 100 Query's voor alle werkitems met een id groter dan 100. System.ChangedDate > '01-01-19 12:00:00' query's voor alle werkitems zijn gewijzigd na 1 januari 2019.

Naast deze basisoperators zijn er enkele gedragingen en operators die specifiek zijn voor bepaalde veldtypen.

Notitie

De operators die voor u beschikbaar zijn, zijn afhankelijk van uw platform en versie. Zie Snelzoekgids voor query's voor meer informatie.

Veldtype

Ondersteunde operators

Booleaanse waarde

= , <> , =[Field] , <>[Field]

Datum en tijd

= , <> , > , < , >= , <= , =[Field], <>[Field], >[Field], <[Field], >=[Field], <=[Field], In, Not In, Was Ever

Dubbel, GUID, Geheel getal

= , <> , > , < , >= , <= , =[Field], <>[Field], >[Field], <[Field], >=[Field], <=[Field], In, Not In, Was Ever

Identiteit

= , <> , > , < , >= , <= , =[Field], <>[Field], >[Field], <[Field], >=[Field], <=[Field], Contains, Not Contains, In, Not In, In Group, Not In Group, Was Ever

PlainText

Contains Words, Not Contains Words, Is Empty, Is Not Empty

String

= , <> , > , < , >= , <= , =[Field], <>[Field], >[Field], <[Field], >=[Field], <=[Field], Contains, Not Contains, In, Not In, In Group, Not In Group, Was Ever

TreePath

=, <>, In, Not In, Under, Not Under

Logische groeperingen

U kunt de termen AND en OR in de typische Booleaanse betekenis gebruiken om twee componenten te evalueren. U kunt de voorwaarden AND EVER gebruiken en OR EVER bij het opgeven van een WAS EVER operator. U kunt logische expressies groeperen en deze zo nodig verder samenvoegen. Hieronder ziet u voorbeelden.

WHERE
    [System.TeamProject] = @project
    AND (
        [System.WorkItemType] <> ''
        AND [System.State] IN ('Active', 'Approved', 'Committed', 'In Progress')
        AND (
            [System.CreatedBy] = ''
            OR [System.AssignedTo] = 'Jamal Hartnett <fabrikamfiber4@hotmail.com>'
        )
    )

U kunt de contains, under, en in operators negateen met behulp van not. U kunt de ever operator niet ontkrachten. In het onderstaande voorbeeld worden query's uitgevoerd voor alle werkitems die niet zijn toegewezen onder de substructuur van Fabrikam Fiber\Account Management.

WHERE
    [System.TeamProject] = @project
    AND [System.WorkItemType] <> ''
    AND NOT [System.AreaPath] UNDER 'Fabrikam Fiber\Account Management'

Voorbeeldquery, is ooit toegewezen aan

In het volgende Power Query-editor voorbeeld worden alle werkitems gevonden die ooit aan Jamal Hartnett zijn toegewezen.

Schermopname van Power Query-editor, query met platte lijsten, is ooit toegewezen.

En hier is de bijbehorende WIQL-syntaxis.

SELECT
    [System.Id],
    [System.Title],
    [System.State],
    [System.IterationPath]
FROM workitems
WHERE
    [System.TeamProject] = @project
    AND [System.WorkItemType] <> ''
    AND EVER [System.AssignedTo] = 'Jamal Hartnett <fabrikamfiber4@hotmail.com>'

Macro's of variabelen

De volgende tabel bevat de macro's of variabelen die u in een WIQL-query kunt gebruiken.

Macro Gebruik
@Me Gebruik deze variabele om automatisch te zoeken naar de alias van de huidige gebruiker in een veld dat gebruikersaliassen bevat. U kunt bijvoorbeeld werkitems vinden die u hebt geopend als u de kolom Veld instelt op Geactiveerd door, de kolom Operator op =en de kolom Waarde op @Me.
@CurrentIteration Gebruik deze variabele om automatisch te filteren op werkitems die zijn toegewezen aan de huidige sprint voor het geselecteerde team op basis van de geselecteerde teamcontext.
@Project Gebruik deze variabele om te zoeken naar werkitems in het huidige project. U kunt bijvoorbeeld alle werkitems in het huidige project vinden als u de kolom Veld instelt op Teamproject, de kolom Operator op =en de kolom Waarde op @Project.
@StartOfDay
@StartOfWeek
@StartOfMonth
@StartOfYear
Gebruik deze macro's om datum/tijd-velden te filteren op basis van het begin van de huidige dag, week, maand, jaar of een verschuiving naar een van deze waarden. U kunt bijvoorbeeld alle items vinden die in de afgelopen 3 maanden zijn gemaakt als u de kolom Veld instelt op Gemaakt datum, de kolom Operator op >=en de kolom Waarde op @StartOfMonth - 3.
@Today Gebruik deze variabele om te zoeken naar werkitems die betrekking hebben op de huidige datum of een eerdere datum. U kunt de variabele @Today ook wijzigen door dagen af te trekken. U kunt bijvoorbeeld alle items vinden die in de afgelopen week zijn geactiveerd als u de kolom Veld instelt op Geactiveerde datum, de kolom Operator op> =en de kolom Waarde op @Today - 7.
[Any] Gebruik deze variabele om te zoeken naar werkitems die betrekking hebben op een waarde die is gedefinieerd voor een bepaald veld.

@me macro

De @me macro vervangt de naam van het geïntegreerde Windows-account van de gebruiker die de query uitvoert. In het onderstaande voorbeeld ziet u hoe u de macro en de equivalente statische instructie gebruikt. De macro is bedoeld voor gebruik met identiteitsvelden zoals Assigned To.

WHERE  
   [System.AssignedTo] = @Me 

@today macro

U kunt de @today macro gebruiken met een datum/tijd-veld . Deze macro vervangt middernacht van de huidige datum op de lokale computer waarop de query wordt uitgevoerd. U kunt ook gehele getallen opgeven @today+x of @today-y gebruiken voor respectievelijk x dagen na @today en y dagen vóór @today. Een query die gebruikmaakt van de @today macro kan verschillende resultatensets retourneren, afhankelijk van de tijdzone waarin deze wordt uitgevoerd.

In de onderstaande voorbeelden wordt ervan uitgegaan dat dit vandaag 1-3-19 is.

WHERE  
   [System.CreatedDate] = @today

Is het equivalent van:

WHERE  
   [System.CreatedDate] = '01-03-2019'

And

WHERE  
   [System.CreatedDate] > @today-2

Is het equivalent van:

WHERE  
   [System.CreatedDate] > '01-01-2019'

@StartOfDay, , @StartOfWeek, @StartOfYear @StartOfMonthmacro's

U kunt de @StartOf... macro's gebruiken met een datum/tijd-veld . Deze macro vervangt middernacht van de huidige dag, het begin van de week, het begin van de maand of het begin van het jaar op de lokale computer waarop de query wordt uitgevoerd.

Notitie

Vereist azure DevOps Server 2019 Update 1 of nieuwere versie.

Deze macro's accepteren een wijzigingstekenreeks met een indeling van (+/-)nn(y|M|w|d|h|m). Net als bij de @Today macro kunt u verschuivingen met plus- of mintekens voor gehele getallen opgeven. Als de tijdseenheidscheidingsteken wordt weggelaten, wordt deze standaard ingesteld op de natuurlijke periode van de functie. Is bijvoorbeeld @StartOfWeek("+1") hetzelfde als @StartOfWeek("+1w"). Als het plus-/minteken (+/-) wordt weggelaten, wordt er uitgegaan van plusteken.

Met deze syntaxis kunt u modifiers nesten en uw query twee keer verschoven. De component Closed Date >= @StartOfYear - 1filtert bijvoorbeeld werkitems die sinds vorig jaar zijn gesloten. Als u het wijzigt in Closed Date >= @StartOfYear('+3M') - 1, worden werkitems uitgesloten binnen de eerste drie maanden van het afgelopen jaar. De WIQL-syntaxis is zoals weergegeven in het volgende voorbeeld.

WHERE 
   [Microsoft.VSTS.Common.ClosedDate] >=@StartOfYear('+3M') - 1

In de volgende voorbeelden wordt ervan uitgegaan dat het vandaag 4-5-19 is.

WHERE  
   [Microsoft.VSTS.Common.CreatedDate] >= @StartOfMonth-3

Is het equivalent van:


WHERE 
   [Microsoft.VSTS.Common.CreatedDate] >= '01-01-2019'

And

WHERE 
   [Microsoft.VSTS.Scheduling.TargetDate] > @StartOfYear

Is het equivalent van:

WHERE 
   [Microsoft.VSTS.Scheduling.TargetDate]  > '01-01-2019'

Aangepaste macro's

WIQL ondersteunt ook willekeurige aangepaste macro's. Elke tekenreeks die door een tekenreeks @ wordt voorafgegaan, wordt behandeld als een aangepaste macro en wordt vervangen. De vervangingswaarde voor de aangepaste macro wordt opgehaald uit de contextparameter van de querymethode in het objectmodel. De volgende methode is de API die wordt gebruikt voor macro's:

public WorkItemCollection Query(string wiql, IDictionary context)

De contextparameter bevat sleutel-waardeparen voor macro's. Als de context bijvoorbeeld een sleutel-waardepaar (project, MyProject) bevat, wordt @project vervangen door MyProject in de WIQL. Deze vervanging is de manier waarop de opbouwfunctie voor werkitemsquery's de @project macro in Visual Studio verwerkt.

Historische query's opgeven (ASOF)

U kunt een ASOF component in een query gebruiken om te filteren op werkitems die voldoen aan de opgegeven filtervoorwaarden zoals ze zijn gedefinieerd op een specifieke datum en tijd.

Notitie

U kunt geen query's maken ASOF in de opbouwfunctie voor query's in Visual Studio. Als u een querybestand (.wiq) maakt dat een ASOF component bevat en die vervolgens in Visual Studio laadt, wordt de ASOF component genegeerd.

Stel dat een werkitem vóór 5/05/2022 is geclassificeerd onder een iteratiepad van Fabrikam Fiber\Release 1 en toegewezen aan Jamal Hartnett. Het werkitem is echter onlangs toegewezen aan 'Raisa Pokrtovaya' en verplaatst naar een nieuw iteratiepad van Release 2. De volgende voorbeeldquery retourneert werkitems die zijn toegewezen aan Jamal Hartnett, omdat de query is gebaseerd op de status van werkitems vanaf een eerdere datum en tijd.

SELECT
    [System.Id],
    [System.Title],
    [System.State],
    [System.IterationPath]
FROM workitems
WHERE
    [System.TeamProject] = @project
    AND [System.WorkItemType] <> ''
    AND ([System.IterationPath] UNDER 'Fabrikam Fiber\Release 1'
    AND [System.AssignedTo] = 'Jamal Hartnett <fabrikamfiber4@hotmail.com>') 
    ASOF  '01-05-2022 00:00:00.0000000'

Notitie

Als er geen tijd is opgegeven, gebruikt WIQL middernacht. Als er geen tijdzone is opgegeven, gebruikt WIQL de tijdzone van de lokale clientcomputer.

De sorteervolgorde instellen (ORDER BY)

U kunt de ORDER BY component gebruiken om de resultaten van een query te sorteren op een of meer velden in oplopende of aflopende volgorde.

Notitie

De sorteervoorkeuren van de SQL-server op de gegevenslaag bepalen de standaardsorteervolgorde. U kunt echter de asc of desc parameters gebruiken om een expliciete sorteervolgorde te kiezen.

In het volgende voorbeeld worden werkitems eerst gesorteerd op Prioriteit in oplopende volgorde (standaard) en vervolgens op Gemaakt op datum in aflopende volgorde (DESC).

SELECT
    [System.Id],
    [System.Title],
    [System.State],
    [System.IterationPath]
FROM workitems
WHERE
    [System.TeamProject] = @project
    AND [System.WorkItemType] <> ''
    AND [System.State] =  'Active'
    AND [System.AssignedTo] = 'Jamal Hartnett <fabrikamfiber4@hotmail.com>'
ORDER BY [Microsoft.VSTS.Common.Priority],
    [System.CreatedDate] DESC

Als u koppelingen tussen werkitems wilt retourneren, geeft u op FROM WorkItemLinks. Filtervoorwaarden in de WHERE component kunnen van toepassing zijn op de koppelingen of op elk werkitem dat de bron of het doel van een koppeling is. De volgende query retourneert bijvoorbeeld de koppelingen tussen Productachterstanditems en hun actieve onderliggende items.

SELECT
    [System.Id],
    [System.Title],
    [System.State],
    [System.IterationPath]
FROM workitemLinks
WHERE
    (
        [Source].[System.TeamProject] = @project
        AND [Source].[System.WorkItemType] = 'Product Backlog Item'
    )
    AND (
        [System.Links.LinkType] = 'System.LinkTypes.Hierarchy-Forward'
    )
    AND (
        [Target].[System.TeamProject] = @project
        AND [Target].[System.WorkItemType] <> ''
        AND [Target].[System.State] <> 'Closed'
    )
ORDER BY [Microsoft.VSTS.Common.Priority],
    [System.CreatedDate] DESC
MODE (Recursive)

De volgende tabel bevat een overzicht van de verschillen tussen werkitemquery's en query's voor koppelingen tussen werkitems.

Clausule

Werkitems

Koppelingen tussen werkitems

FROM

FROM WorkItems

FROM WorkItemLinks

WHERE

[FieldName] = Value

Specify one or more of the following:
[Source].[FieldName] = Value
[Target].[FieldName] = Value
[System.Links.LinkType] = 'LinkName'

MODE

niet van toepassing

Geef een van de volgende opties op:

  • MODE (MustContain): (Standaard) Retourneert alleen WorkItemLinkInfo-records waarbij aan de bron-, doel- en koppelingscriteria is voldaan.
  • MODE (MayContain): retourneert WorkItemLinkInfo-records voor alle werkitems die voldoen aan de bron- en koppelingscriteria, zelfs als geen gekoppeld werkitem voldoet aan de doelcriteria.
  • MODE (DoesNotContain): retourneert WorkItemLinkInfo-records voor alle werkitems die voldoen aan de bron, alleen als er geen gekoppeld werkitem voldoet aan de koppeling en doelcriteria.
  • MODE (Recursive): Gebruiken voor treequery's([System.Links.LinkType] = 'System.LinkTypes.Hierarchy-Forward'). Het koppelingstype moet structuurtopologie en voorwaartse richting zijn. Retourneert WorkItemLinkInfo-records voor alle werkitems die voldoen aan de bron, recursief voor het doel. ORDER BY en ASOF zijn niet compatibel met structuurquery's.

RETURNS

U kunt een van de volgende systeemkoppelingstypenamen opgeven.

U kunt een van de namen van het systeemkoppelingstype opgeven, hieronder vermeld of een aangepast koppelingstype dat u hebt gedefinieerd met het on-premises XML-proces.

  • System.LinkTypes.Hierarchy-Forward
  • System.LinkTypes.Related
  • System.LinkTypes.Dependency-Predecessor
  • System.LinkTypes.Dependency-Successor
  • Microsoft.VSTS.Common.Affects-Forward (CMMI-proces)

Zie Koppelingstypereferentie voor meer informatie.

Voorbeeld van query van structuurtype

De volgende query retourneert alle typen werkitems die in het huidige project zijn gedefinieerd. De query zoals weergegeven in de Power Query-editor wordt weergegeven, zoals wordt weergegeven in de volgende afbeelding.

Schermopname van Power Query-editor, structuurquery, alle werkitems en statussen.

De equivalente WIQL-syntaxis wordt hieronder weergegeven.

SELECT
    [System.Id],
    [System.Title],
    [System.State],
    [System.IterationPath]
FROM workitemLinks
WHERE
    (
        [Source].[System.TeamProject] = @project
        AND [Source].[System.WorkItemType] <> ''
        AND [Source].[System.State] <> ''
    )
    AND (
        [System.Links.LinkType] = 'System.LinkTypes.Hierarchy-Forward'
    )
    AND (
        [Target].[System.TeamProject] = @project
        AND [Target].[System.WorkItemType] <> ''
    )
MODE (Recursive)


De volgende query retourneert alle typen werkitems die in het huidige project zijn gedefinieerd. De query zoals weergegeven in de Power Query-editor wordt weergegeven, zoals wordt weergegeven in de volgende afbeelding.

Schermopname van Power Query-editor, direct-link-query, alle werkitems en statussen.

De equivalente WIQL-syntaxis is zoals weergegeven.

SELECT
    [System.Id],
    [System.WorkItemType],
    [System.Title],
    [System.AssignedTo],
    [System.State]
FROM workitemLinks
WHERE
    (
        [Source].[System.TeamProject] = @project
        AND [Source].[System.WorkItemType] <> ''
        AND [Source].[System.State] <> ''
    )
    AND (
        [System.Links.LinkType] = 'System.LinkTypes.Dependency-Reverse'
        OR [System.Links.LinkType] = 'System.LinkTypes.Related-Forward'
        OR [System.Links.LinkType] = 'System.LinkTypes.Dependency-Forward'
    )
    AND (
        [Target].[System.TeamProject] = @project
        AND [Target].[System.WorkItemType] <> ''
        AND [Target].[System.ChangedDate] >= @today - 60
    )
ORDER BY [System.Id]
MODE (MustContain)

Meer queryvoorbeelden

In het volgende typische WIQL-queryvoorbeeld worden referentienamen voor de velden gebruikt. De query selecteert werkitems (geen werkitemtype opgegeven) met een Priority=1. De query retourneert de id en titel van de geretourneerde set als kolommen. De resultaten worden gesorteerd op id in oplopende volgorde.

SELECT
    [System.Id],
    [System.Title],
    [System.State],
    [System.IterationPath]
FROM workitems
WHERE
    [System.TeamProject] = @project
    AND [Microsoft.VSTS.Common.Priority] <> ''
ORDER BY [System.Id]

Datum/tijd-patroon

U geeft het datum/tijd-patroon op volgens een van de twee patronen:

AND [System.ChangedDate] >= '1/1/2019 00:00:00Z'

Voorbeeldclausules

In de volgende voorbeeldinstructies ziet u specifieke in aanmerking komende componenten.

Clausule

Voorbeeld

AND

SELECT [System.Id], [System.Title]
FROM WorkItems
WHERE [System.TeamProject] = @project
AND [System.AssignedTo] = 'Jamal Hartnett <fabrikamfiber4@hotmail.com>'

OR

SELECT [System.Id], [System.Title] 
FROM WorkItems 
WHERE [System.TeamProject] = @project 
AND ( [System.AssignedTo] = 'Jamal Hartnett <fabrikamfiber4@hotmail.com>'
OR [System.AssignedTo] = ''Raisa Pokrovskaya <fabrikamfiber5@hotmail.com>' )

NOT

SELECT [System.Id], [System.Title] 
FROM WorkItems 
WHERE [System.TeamProject] = @project 
AND [System.AssignedTo] EVER 'Jamal Hartnett <fabrikamfiber4@hotmail.com>'
AND [System.AssignedTo] NOT CONTAINS 'Raisa Pokrovskaya <fabrikamfiber5@hotmail.com>'

EVER

SELECT [System.Id], [System.Title] 
FROM WorkItems 
WHERE [System.TeamProject] = @project 
AND [System.AssignedTo] EVER 'Jamal Hartnett <fabrikamfiber4@hotmail.com>'

UNDER

SELECT [System.Id], [System.Title] 
FROM WorkItems 
WHERE [System.TeamProject] = @project 
AND [System.AssignedTo] EVER 'Jamal Hartnett <fabrikamfiber4@hotmail.com>'
AND [System.AreaPath] UNDER 'Agile1\Area 0'

ORDER BY

SELECT [System.Id], [System.Title] 
FROM WorkItems 
WHERE [System.TeamProject] = @project 
AND [System.AssignedTo] = 'Jamal Hartnett <fabrikamfiber4@hotmail.com>'
ORDER BY [System.Id] [asc | desc]

ASOF (Tijdfilter)

SELECT [System.Title] 
FROM workitems 
WHERE [System.IterationPath] = 'MyProject\Beta' 
AND [System.AssignedTo] = 'Jamal Hartnett <fabrikamfiber4@hotmail.com>' 
ASOF '3/16/19 12:30'

Tekenreeks en tekst zonder opmaak

Letterlijke aanhalingstekens voor aanhalingstekens (enkele of dubbele aanhalingstekens worden ondersteund) in een vergelijking met een tekenreeks- of tekstveld zonder opmaak. Letterlijke tekenreeksen ondersteunen alle Unicode-tekens.

WHERE [Custom.Blocking] = 'Not Blocking'
WHERE [Custom.Blocking] <> 'Blocked'

U kunt de operator contains gebruiken om overal in de veldwaarde naar een subtekenreeks te zoeken.

WHERE [System.Description] contains 'WIQL' 

Gebied en iteratie (TreePath)

U kunt de UNDER operator gebruiken voor de velden Gebied en Iteratiepad. De UNDER operator evalueert of een waarde zich binnen de substructuur van een specifiek classificatieknooppunt bevindt. De onderstaande expressie zou bijvoorbeeld waar zijn als het gebiedspad 'MyProject\Server\Administration', 'MyProject\Server\Administration\Feature 1', 'MyProject\Server\Administration\Feature 2\SubFeature 5' of een ander knooppunt in de substructuur is.

WHERE [System.AreaPath] UNDER 'MyProject\Server\Administration'

Modifiers en speciale operators

U kunt enkele modifiers en speciale operators gebruiken in een query-expressie.

Gebruik de IN operator om te evalueren of een veldwaarde gelijk is aan een van een set waarden. Deze operator wordt ondersteund voor de veldtypen Tekenreeks, Geheel getal, Dubbel en Datum/tijd. Zie het volgende voorbeeld, samen met het semantische equivalent.

WHERE
    [System.TeamProject] = @project
    AND [System.CreatedBy] IN ('Jamal Hartnett <fabrikamfiber4@hotmail.com>', 'Raisa Pokrovskaya <fabrikamfiber5@hotmail.com>', 'Christie Church <fabrikamfiber1@hotmail.com>')

or

WHERE
    [System.TeamProject] = @project
    AND (
        [System.CreatedBy] = 'Jamal Hartnett <fabrikamfiber4@hotmail.com>'
        OR [System.CreatedBy] = 'Raisa Pokrovskaya <fabrikamfiber5@hotmail.com>'
        OR [System.CreatedBy] = 'Christie Church <fabrikamfiber1@hotmail.com>'
    )

De EVER operator wordt gebruikt om te evalueren of een veldwaarde gelijk is aan of ooit een bepaalde waarde heeft gelijk aan alle eerdere revisies van werkitems. De veldtypen Tekenreeks, Geheel getal, Dubbel en Datum/tijd ondersteunen deze operator. Er zijn alternatieve syntaxis voor de EVER operator. Met de onderstaande fragmenten wordt bijvoorbeeld aangegeven of alle werkitems ooit zijn toegewezen aan Jamal, Raise of Christie.

WHERE
    [System.TeamProject] = @project
    AND (
        EVER [System.AssignedTo] = 'Jamal Hartnett <fabrikamfiber4@hotmail.com>'
        OR EVER [System.AssignedTo] = 'Raisa Pokrovskaya <fabrikamfiber5@hotmail.com>'
        OR EVER [System.AssignedTo] = 'Christie Church <fabrikamfiber1@hotmail.com>'
    )