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 SELECT 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 olvassa el a Felhasználói beállítások megadása című témakört.
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 ...
- Hivatkozás neve:
- 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 not
tagadhatja 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.
É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ő @today
y 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 - 1
például szűri a tavalyi év óta bezárt munkaelemeket. Módosításával Closed Date >= @StartOfYear('+3M') - 1
kizá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 útvonala Fabrikam 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
Munkaelemek közötti hivatkozások lekérdezése
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
ésASOF
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.
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)
Példa közvetlen csatolású 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.
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:
- A Dátumminta és az Időminta formátum a felhasználói beállításokból, az Idő és a Területi beállításból származik
- Az UTC által megadott minta, amely ezt a mintát követi (Z hozzáfűzve a dátum-időhöz).
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\Administration", "MyProject\Server\Administration\Feature 1", "MyProject\Server\Administration\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>'
)