Munkaelem lekérdezési nyelvének szintaxisreferenciája

Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019

A WIQL szintaxissal hivatkozásként vagy a munkaelem lekérdezési nyelvének (REST API) használatakor definiálhat lekérdezést.

A WIQL szintaxis a webes portálon elérhető összes függvényt támogatja, Lekérdezésszerkesztő és még néhányat. Megadhatja a visszaadni kívánt mezőket, és megadhatja a lekérdezési záradékok logikai csoportosítását. Emellett egy ASOF záradékkal is szűrhet a hozzárendelések alapján egy korábbi dátum alapján.

Fontos

A WIQL szintaxis a Lekérdezés wiql REST API általi végrehajtására szolgál. Jelenleg nem lehet meghívni az API-t, hogy közvetlenül a WIQL-lekérdezésből adja vissza a részletes munkaelem-információkat. A Standard kiadás LECT utasításban szereplő mezőktől függetlenül az API csak a munkaelem-azonosítókat adja vissza. A teljes információ lekéréséhez két lépést kell végrehajtania: (1) le kell kérnie a munkaelemek azonosítóját egy WIQL-ből, és (2) be kell szereznie a munkaelemeket a munkaelemek listájának beolvasása azonosító és adott mezők alapján.

Előfeltételek

A lekérdezés csak azokat a munkaelemeket adja vissza, amelyekhez a munkaelemek megtekintése vagy a munkaelemek megtekintése a csomópont engedélyében van. Ezeket az engedélyeket általában az Olvasók és közreműködők csoportok tagjai kapják meg az egyes csapatprojektekhez. További információ: Engedélyek és csoportok.

A lekérdezés nyelvének áttekintése

A munkaelem lekérdezési nyelvének öt része látható az alábbi szintaxisrészletben, és az alábbi táblázatban található. A WIQL szintaxisa nem érzékeny a kis- és nagybetűkre.

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'

Tipp.

A Wiql Editor Marketplace bővítmény telepítésével létrehozhatja a lekérdezéseket a Lekérdezésszerkesztő, majd megtekintheti a WIQL szintaxist. Ezután másolhatja és módosíthatja a WIQL szintaxist, és futtathatja a lekérdezést a Táblákhoz hozzáadott Wiql Playground hub használatával.

Záradék

Példa

SELECT

A lekérdezés által visszaadott minden munkaelemhez visszaadandó mezőket azonosítja. Megadhatja a rövid nevet vagy a hivatkozás nevét. Használjon szögletes zárójeleket ([]), ha a név üres vagy pontokat tartalmaz.

FROM

Azt jelzi, hogy a lekérdezés munkaelemeket vagy munkaelemek közötti hivatkozásokat keres-e.

  • Munkaelemek visszaadására használható FROM WorkItems .
  • A munkaelemek közötti hivatkozások visszaadására használható FROM workItemLinks . További információ: A munkaelemek közötti hivatkozások lekérdezése a cikk későbbi részében.

WHERE

Megadja a lekérdezés szűrőfeltételeit. További információt a cikk későbbi részében, a Szűrési feltételek (WHERE) című témakörben talál.

ORDER BY

A visszaadott munkaelemek rendezési sorrendjét adja meg. Egy vagy több mezőhöz megadhat növekvő (Asc) vagy csökkenő (Desc) értéket. Példa:
ORDER BY [State] Asc, [Changed Date] Desc

ASOF

Előzmény lekérdezést ad meg a szűrő alkalmazásának dátumával. Ez a lekérdezés például minden olyan felhasználói történetet visszaad, amely 2020. február 11-én aktívként lett definiálva. Adja meg a dátumot a Dátum és idő minta útmutatójának megfelelően. ASOF '02-11-2020'

Feljegyzés

Az Azure Boardson végzett lekérdezések WIQL-hossza nem haladhatja meg a 32 000 karaktert. A rendszer nem teszi lehetővé az ilyen hosszúságú lekérdezések létrehozását vagy futtatását.

Dátum- és időminta

A DateTime mezőkhöz megadott dátum- és időmintának meg kell egyeznie azzal, amelyet a profilon keresztül választ ki. A kijelölés megtekintéséhez vagy módosításához tekintse meg az Idő és a Területi beállítás felhasználói beállításainak megadása című témakört.

Képernyőkép a Dátumminta legördülő listáról az Idő és a Területi beállítás panelen.Képernyőkép az Időminta legördülő listáról az Idő és a Területi beállítás panelen.

Képernyőkép az Idő és a Területi beállítás panelről Dátumminta és Időminta mezőkkel.

Idézőjel (az egy- vagy dupla idézőjelek támogatottak) Az összehasonlításokban használt DateTime-literálok. A lekérdezést futtató helyi ügyfélszámítógép .NET DateTime formátumúnak kell lennie. Ha nincs megadva időzóna, a DateTime-literálok a helyi számítógép időzónájában találhatók.

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

Ha az idő ki van hagyva egy DateTime-literálban, és a dayPrecision paraméter értéke hamis, akkor az idő nullának (éjfélnek) számít. A dayPrecision paraméter alapértelmezett beállítása hamis.

Vagy megadhatja az ISO 8601 formátumot, amely a területi beállítástól függetlenül érvényes. Az ISO 8601 a dátumot és az időt jelöli az évtől kezdve, majd a hónapot, a napot, az órát, a percet, a másodpercet és az ezredmásodpercet. Például a 2021-12-10 15:00:00.000 óra helyi idő szerint 2021. december 10-én 15:00 órakor. Példa az ISO 8601 formátum használatára az alábbiak szerint.

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

Egyéni mezők

Egyéni mezőt is hozzáadhat egy lekérdezési záradékhoz. A WIQL használatával meg kell adnia az egyéni mező referencianevét. Öröklődő folyamatmodellt használó projektek esetében az egyéni mezők általában Egyéni címkével vannak ellátva. Példa:

Rövid név Hivatkozás neve
Jóváhagyó Custom.Approver
Kéréstípus Custom.RequestType
Hatókör becslése Custom.CustomEstimate

A helyszíni XML-folyamatmodellt használó projektek esetében a referencia neve az XML-munkaelem-típusdefiníciókban van definiálva.

További információ: Munkaelem mezői és attribútumai.

Szűrőzáradékok megadása (WHERE)

A WHERE záradék megadja a szűrési feltételeket. A lekérdezés csak a megadott feltételeknek megfelelő munkaelemeket adja vissza. Az alábbi példamondat WHERE például olyan felhasználói történeteket ad vissza, amelyek aktívak és önhöz vannak rendelve.

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

A logikai operátorok kiértékelésének sorrendjét úgy szabályozhatja, hogy zárójelek közé rendezi őket a szűrőfeltételek csoportosításához. Ha például önhöz rendelt vagy bezárt munkaelemeket szeretne visszaadni, módosítsa a lekérdezésszűrőt úgy, hogy az megfeleljen az alábbi példának.

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

Szűrési feltételek

Minden szűrőfeltétel három részből áll, amelyek mindegyikének meg kell felelnie a következő szabályoknak:

  • Mező: Megadhatja a hivatkozás nevét vagy a rövid nevet. Az alábbi példák érvényes WIQL-szintaxist jelentenek:
    • Hivatkozás neve: SELECT [System.AssignedTo] ...
    • Rövid név szóközökkel: SELECT [Assigned To] ...
    • A szóköz nélküli nevekhez nincs szükség szögletes zárójelekre: SELECT ID, Title ...
  • Operátor: Az érvényes értékek a cikk későbbi, Operátorok szakaszában vannak megadva.
  • Mezőérték: A megadott mezőtől függően a következő három érték egyikét adhatja meg.
    • A literális értéknek meg kell egyeznie a mezőérték adattípusával.
    • Egy *változó vagy makró, amely egy bizonyos értéket jelez. A @Me például azt a személyt jelöli, aki a lekérdezést futtatja. További információ: Makrók és változók a cikk későbbi részében.
    • Egy másik mező neve. Használhatja például a [Assigned to] = [Changed by] munkaelemet legutóbb módosító személyhez rendelt munkaelemeket.

A rendszer által definiált mezők leírását és hivatkozásnevét lásd: Munkaelem mezőindexe.

Operátorok

A lekérdezések logikai kifejezésekkel minősítik az eredményhalmazokat. Ezeket a logikai kifejezéseket egy vagy több összekapcsolt művelet alkotja.

Néhány egyszerű lekérdezési művelet alább látható.

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

Az alábbi táblázat összefoglalja a különböző mezőtípusok összes támogatott operátorát. Az egyes mezőtípusokról további információt a Munkaelem mezők és attribútumok című témakörben talál.

Az =, <>, >, <, >=, and <= operátorok a várt módon működnek. Például System.ID > 100 az összes 100-nál nagyobb azonosítójúmunkaelem lekérdezése. System.ChangedDate > '01-01-19 12:00:00' 2019. január 1., dél után módosult összes munkaelem lekérdezései.

Ezen alapműveletek mellett bizonyos mezőtípusokra jellemző viselkedések és operátorok is léteznek.

Feljegyzés

Az Ön számára elérhető operátorok a platformtól és a verziótól függenek. További információ: Lekérdezés – gyorshivatkozás.

Mező típusa

Támogatott operátorok

Logikai

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

Dátum/idő

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

Dupla, GUID, Egész szám

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

Identitás

= , <> , > , < , >= , <= , =[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

Sztring

= , <> , > , < , >= , <= , =[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

Logikai csoportosítások

A kifejezések AND és OR a tipikus logikai értelemben két záradék kiértékelésére használhatók. Használhatja a feltételeket AND EVER , és OR EVER ha operátort WAS EVER ad meg. Szükség szerint csoportosíthatja a logikai kifejezéseket, és további összekapcsolhatja őket. Példák az alábbiakban láthatók.

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

Az operátorokat és in az operátorokat a contains, under, következővel nottagadhatja meg: . Nem tagadhatja meg az operátort ever . Az alábbi példa lekérdezi az összes olyan munkaelemet, amely nincs hozzárendelve a részhalmazhoz Fabrikam Fiber\Account Management.

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

Példa lekérdezésre, amelyhez valaha hozzá lett rendelve

Az alábbi Lekérdezésszerkesztő példa megkeresi a Jamal Hartnetthez valaha hozzárendelt összes munkaelemet.

Képernyőkép a Lekérdezésszerkesztő, egybesimított lista lekérdezéséről.

És itt van a megfelelő WIQL szintaxis.

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

Makrók vagy változók

Az alábbi táblázat a WIQL-lekérdezésekben használható makrókat és változókat sorolja fel.

Macro Használat
@Me Ezzel a változóval automatikusan megkeresheti az aktuális felhasználó aliasát egy felhasználói aliasokat tartalmazó mezőben. Megtalálhatja például a megnyitott munkaelemeket, ha a Mező oszlopot Aktiválva értékre, az Operátor oszlopot =pedig @Me értékre állítja.
@CurrentIteration Ezzel a változóval automatikusan szűrheti a kijelölt csapat aktuális futamához rendelt munkaelemeket a kijelölt csapat környezete alapján.
@Project Ezzel a változóval kereshet munkaelemeket az aktuális projektben. Az aktuális projekt összes munkaelemét megtalálhatja például, ha a Mező oszlopot Csoportprojektre, az Operátor oszlopot=pedig @Project értékre állítja.
@StartOfDay
@StartOfWeek
@StartOfMonth
@StartOfYear
Ezekkel a makrókkal szűrheti a DateTime mezőket az aktuális nap, hét, hónap, év kezdete vagy az értékek egyikének eltolása alapján. Az elmúlt 3 hónapban létrehozott összes elemet megtalálhatja például, ha a Mező oszlopot Létrehozás dátuma, az Operátor oszlopot =értékre>, az Érték oszlopot pedig @StartOfMonth - 3 értékre állítja.
@Today Ezzel a változóval megkeresheti az aktuális dátumhoz vagy egy korábbi dátumhoz kapcsolódó munkaelemeket. A @Today változót napok kivonásával is módosíthatja. Ha például a Mező oszlopot Aktivált dátum értékre, az Operátor oszlopot =értékre, az Érték oszlopot >pedig @Today - 7 értékre állítja.
[Bármely] Ezzel a változóval olyan munkaelemeket kereshet, amelyek egy adott mezőhöz definiált bármely értékhez kapcsolódnak.

@me Makró

A @me makró lecseréli a lekérdezést futtató felhasználó Integrált Windows-fióknevét. Az alábbi példa bemutatja, hogyan használhatja a makrót és az azzal egyenértékű statikus utasítást. A makró olyan identitásmezőkhöz használható, mint a Assigned To.

WHERE  
   [System.AssignedTo] = @Me 

@today Makró

A makró bármely @today DateTime-mezővel használható. Ez a makró az aktuális dátum éjfélét váltja fel a lekérdezést futtató helyi számítógépen. Megadhatja @today+x vagy @today-y használhatja az egész szám eltolását az x nap után @today , illetve az azt megelőző @todayy napon belül. A makrót használó lekérdezések @today a futtatás időzónájától függően különböző eredményhalmazokat adhatnak vissza.

Az alábbi példák feltételezik, hogy ma 1/3/19.

WHERE  
   [System.CreatedDate] = @today

Egyenértékű a következő értékével:

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

And

WHERE  
   [System.CreatedDate] > @today-2

Egyenértékű a következő értékével:

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

@StartOfDay, @StartOfWeek, @StartOfMonthmakrók @StartOfYear

A @StartOf... makrókat bármely DateTime mezővel használhatja. Ez a makró az aktuális nap éjfélét, a hét kezdetét, a hónap kezdetét vagy az évkezdetet váltja fel a lekérdezést futtató helyi számítógépen.

Feljegyzés

Az Azure DevOps Server 2019 1-es vagy újabb verziójára van szükség.

Ezek a makrók elfogadnak egy módosító sztringet, amelynek formátuma (+/-)nn(y|M|w|d|h|m): . A makróhoz @Today hasonlóan megadhat plusz vagy mínusz egész szám eltolásokat. Ha az időegység-minősítő nincs megadva, alapértelmezés szerint a függvény természetes időszaka lesz. Például ugyanaz, @StartOfWeek("+1") mint @StartOfWeek("+1w")a . Ha a plusz/mínusz (+/-) jel nincs megadva, a pluszjelet feltételezzük.

Ez a szintaxis lehetővé teszi a módosítók beágyazását és a lekérdezés kétszeri eltolását. A záradék Closed Date >= @StartOfYear - 1például szűri a tavalyi év óta bezárt munkaelemeket. Módosításával Closed Date >= @StartOfYear('+3M') - 1kizárja az előző év első három hónapjában bezárt munkaelemeket. A WIQL szintaxisa az alábbi példában látható.

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

Az alábbi példák feltételezik, hogy ma 4/5/19.

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

Egyenértékű a következő értékével:


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

And

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

Egyenértékű a következő értékével:

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

Egyéni makrók

A WIQL tetszőleges egyéni makrókat is támogat. A rendszer minden sztringelőtagot @ egyéni makróként kezel, és lecseréli őket. Az egyéni makró csereértéke az objektummodell lekérdezési metódusának környezeti paraméteréből lesz lekérve. A makrókhoz használt API a következő módszer:

public WorkItemCollection Query(string wiql, IDictionary context)

A környezeti paraméter kulcs-érték párokat tartalmaz a makrókhoz. Ha például a környezet tartalmaz egy kulcs-érték párot (projekt, MyProject), akkor @project helyébe MyProject a WIQL kerül. Ez a csere az, ahogyan a munkaelem-lekérdezésszerkesztő kezeli a @project makrót a Visual Studióban.

Előzmény típusú lekérdezések megadása (ASOF)

A lekérdezések záradékával ASOF szűrheti azokat a munkaelemeket, amelyek megfelelnek a megadott szűrési feltételeknek egy adott dátumon és időpontban meghatározottak szerint.

Feljegyzés

A Visual Studióban nem hozhat létre ASOF lekérdezéseket a lekérdezésszerkesztőben. Ha létrehoz egy záradékot tartalmazó ASOF lekérdezésfájlt (.wiq), majd betölti azt a Visual Studióban, a ASOF záradék figyelmen kívül lesz hagyva.

Tegyük fel, hogy egy munkaelem 2022.05.05-e előtt a Jamal Hartnett iterációs útvonalaFabrikam Fiber\Release 1 alá lett besorolva, és hozzá lett rendelve. A munkaelemet azonban nemrég hozzárendelték a "Raisa Pokrovskaya"-hoz, és a 2. kiadás új iterációs útvonalára került. Az alábbi példa lekérdezés a Jamal Hartnetthez rendelt munkaelemeket adja vissza, mivel a lekérdezés a munkaelemek múltbeli dátum és idő szerinti állapotán alapul.

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'

Feljegyzés

Ha nincs megadva idő, a WIQL éjfélt használ. Ha nincs megadva időzóna, a WIQL a helyi ügyfélszámítógép időzónáját használja.

Rendezési sorrend beállítása (ORDER BY)

A ORDER BY záradék használatával egy lekérdezés eredményeit egy vagy több mező alapján rendezheti növekvő vagy csökkenő sorrendben.

Feljegyzés

Az adatszinten lévő SQL Server rendezési beállításai határozzák meg az alapértelmezett rendezési sorrendet. Az explicit rendezési sorrend kiválasztásához azonban használhatja a paramétereket vagy desc a asc paramétereket.

Az alábbi példa a munkaelemeket először prioritás szerint rendezi növekvő sorrendben (alapértelmezett), majd a Létrehozás dátuma szerint csökkenő sorrendben (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

A munkaelemek közötti hivatkozások visszaadásához adja meg a kívánt FROM WorkItemLinksértéket. A záradékban szereplő szűrési WHERE feltételek vonatkozhatnak a hivatkozásokra vagy bármely olyan munkaelemre, amely a hivatkozás forrása vagy célja. Az alábbi lekérdezés például a termékháttérelemek és az aktív gyermekelemek közötti kapcsolatokat adja vissza.

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)

Az alábbi táblázat összefoglalja a munkaelem-lekérdezések és a munkaelemek közötti kapcsolatok lekérdezései közötti különbségeket.

Záradék

Munkaelemek

Munkaelemek közötti hivatkozások

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

nem alkalmazható

Adja meg az alábbiak egyikét:

  • MODE (MustContain): (Alapértelmezett) Csak olyan WorkItemLinkInfo rekordokat ad vissza, amelyekben a forrás, a cél és a hivatkozás feltételei teljesülnek.
  • MODE (MayContain): WorkItemLinkInfo rekordokat ad vissza az összes olyan munkaelemhez, amely megfelel a forrás- és hivatkozási feltételeknek, még akkor is, ha egyetlen csatolt munkaelem sem felel meg a célfeltételnek.
  • MODE (DoesNotContain): A WorkItemLinkInfo rekordokat adja vissza a forrásnak megfelelő összes munkaelemhez, csak akkor, ha egyetlen csatolt munkaelem sem felel meg a hivatkozásnak és a célfeltételnek.
  • MODE (Recursive): Fa lekérdezésekhez használható([System.Links.LinkType] = 'System.LinkTypes.Hierarchy-Forward'). A hivatkozástípusnak fa topológiának és előrefelé irányulónak kell lennie. Visszaadja a WorkItemLinkInfo rekordokat az összes olyan munkaelemhez, amely megfelel a forrásnak, rekurzívan a cél számára. ORDER BY és ASOF nem kompatibilisek a fa lekérdezésekkel.

RETURNS

Az alábbi rendszerhivatkozás-típusnevek egyikét adhatja meg.

Az alábbiakban felsorolt rendszerhivatkozás-típusnevek egyikét vagy a helyszíni XML-folyamattal definiált egyéni hivatkozástípust is megadhatja.

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

További információ: Hivatkozástípus-hivatkozás.

Példa fatípusú lekérdezésre

Az alábbi lekérdezés az aktuális projektben definiált munkaelem-típusokat adja vissza. A Lekérdezésszerkesztő látható lekérdezés az alábbi képen látható módon jelenik meg.

Képernyőkép a Lekérdezésszerkesztő, a fa lekérdezésről, az összes munkaelemről és állapotról.

Az egyenértékű WIQL szintaxis alább látható.

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)


Az alábbi lekérdezés az aktuális projektben definiált munkaelem-típusokat adja vissza. A Lekérdezésszerkesztő látható lekérdezés az alábbi képen látható módon jelenik meg.

Képernyőkép Lekérdezésszerkesztő, közvetlen csatolású lekérdezésről, az összes munkaelemről és állapotról.

Az egyenértékű WIQL-szintaxis az ábrán látható.

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)

További lekérdezési példák

Az alábbi tipikus WIQL-lekérdezési példa hivatkozásneveket használ a mezőkhöz. A lekérdezés kiválasztja a priority=1 típusú munkaelemeket (nincs megadva munkaelem-típus). A lekérdezés oszlopként adja vissza a visszatérési csoport azonosítóját és címét . Az eredmények növekvő sorrendben, azonosító szerint vannak rendezve.

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

Dátum-idő minta

A dátum-idő mintát két minta egyikének megfelelően adhatja meg:

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

Példa záradékok

Az alábbi példautasítások konkrét minősítő záradékokat mutatnak be.

Záradék

Példa

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 (Időszűrő)

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

Sztring és egyszerű szöveg

Sztringkonstansok (az egy- vagy dupla idézőjelek támogatottak) egy sztring- vagy egyszerű szöveges mező összehasonlításában. A sztringkonstansok támogatják az összes Unicode-karaktert.

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

A tartalmaz operátorral a mező értékének bármely pontján kereshet részszűrést.

WHERE [System.Description] contains 'WIQL' 

Terület és iteráció (TreePath)

A Terület és az UNDER Iterációs útvonal mezőihez használhatja az operátort. Az UNDER operátor kiértékeli, hogy egy érték egy adott besorolási csomópont altartományán belül van-e. Az alábbi kifejezés például igaz értéket ad, ha a terület elérési útja "MyProject\Server\Rendszergazda istration", "MyProject\Server\Rendszergazda istration\Feature 1", "MyProject\Server\Rendszergazda istration\Feature 2\SubFeature 5" vagy bármely más csomópont a részterületen belül.

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

Módosítók és speciális operátorok

A lekérdezési kifejezésekben használhat néhány módosítót és speciális operátort.

IN Az operátorral kiértékelhető, hogy egy mező értéke egyenlő-e bármely értékkészlettel. Ez az operátor a Sztring, egész szám, Dupla és DateTime mezőtípusok esetében támogatott. Lásd a következő példát a szemantikai megfelelőjével együtt.

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

Az EVER operátor annak kiértékelésére szolgál, hogy egy mező értéke egyenlő-e vagy valaha is egyenlő volt-e egy adott értékkel a munkaelemek összes korábbi változatában. A Sztring, egész szám, Dupla és DateTime mezőtípus támogatja ezt az operátort. Az operátornak vannak alternatív szintaxisai EVER . Az alábbi kódrészletek például azt kérdezik le, hogy az összes munkaelem hozzá lett-e rendelve a Jamalhoz, a Emeléshez vagy a Christie-hez.

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