WIQL söz dizimi, web portalı Sorgu Düzenleyicisi ve birkaç tane daha aracılığıyla kullanılabilen tüm işlevleri destekler. Döndürülecek alanları belirtebilir ve sorgu yan tümcelerinin mantıksal gruplandırmalarını belirtebilirsiniz. Ayrıca, önceki tarihe ASOF göre atamalara göre filtrelemek için bir yan tümce kullanabilirsiniz.
Önemli
WIQL söz dizimi, Wiql'e Göre Sorgu REST API'sini yürütmek için kullanılır. Şu anda, bir WIQL sorgusundan ayrıntılı iş öğesi bilgilerini doğrudan döndürmek için API'yi çağırmanın bir yolu yoktur. SELECT deyimine hangi alanları eklerseniz ekleyin, API yalnızca iş öğesi kimliklerini döndürür. Bilgilerin tamamını almak için iki adım gerçekleştirmeniz gerekir: (1) WIQL'den iş öğelerinin kimliğini alma ve (2) İş öğelerinin kimliğe göre listesini alma ve belirli alanlar aracılığıyla alma.
Önkoşullar
Kategori
Gereksinim -leri
İzinleri
İş öğelerini görüntüleme veya Bu düğümdeki iş öğelerini görüntüleme izin İzin verolarak ayarlanır. Genellikle, bu izinler her takım projesi için Okuyucular ve Katkıda Bulunanlar grupları üyelerine verilir. Daha fazla bilgi için bkz . İzinler ve gruplar.
Sorgu diline genel bakış
İş öğesi sorgu dili, aşağıdaki söz dizimi kod parçacığında gösterilen ve aşağıdaki tabloda açıklanan beş bölüme sahiptir. WIQL söz dizimi büyük/küçük harfe duyarlı değildir.
WIQL
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'
İpucu
Wiql Editor Market uzantısını yükleyerek Sorgu Düzenleyicisi kullanarak sorgularınızı oluşturabilir ve wiql söz dizimini görüntüleyebilirsiniz. Ardından WIQL söz dizimini kopyalayıp değiştirebilir ve Boards'a eklenen Wiql Playground hub'ını kullanarak sorguyu çalıştırabilirsiniz.
Cümlecik
Örnek
SELECT
Sorgu tarafından döndürülen her iş öğesi için döndürülecek alanları tanımlar. Kolay adı veya başvuru adını belirtebilirsiniz. Ad boşluk veya nokta içeriyorsa köşeli ayraç ([]) kullanın.
FROM
Sorgunun iş öğelerini mi yoksa iş öğeleri arasındaki bağlantıları mı bulmasını istediğinizi gösterir.
İş öğelerini döndürmek için kullanın FROM WorkItems .
Sorgu için filtre ölçütlerini belirtir. Daha fazla bilgi için bu makalenin devamında yer alan Filtreleme koşullarına (WHERE) bakın.
ORDER BY
Döndürülen iş öğelerinin sıralama düzenini belirtir. Bir veya daha fazla alan için Artan (Asc) veya Azalan (Desc) belirtebilirsiniz. Örneğin: ORDER BY [State] Asc, [Changed Date] Desc
ASOF
Filtrenin uygulanacağı tarihi belirterek geçmiş sorguyu belirtir. Örneğin, bu sorgu 11 Şubat 2020'de Etkin olarak tanımlanan tüm kullanıcı hikayelerini döndürür. Tarih ve saat düzeninde sağlanan kılavuza göre tarihi belirtin.
ASOF '02-11-2020'
Not
Azure Boards'ta yapılan sorguların WIQL uzunluğu 32.000 karakteri aşmamalıdır. Sistem, bu uzunluğu aşan sorgular oluşturmanıza veya çalıştırmanıza izin vermez.
Tarih ve saat düzeni
DateTime alanları için girdiğiniz tarih ve saat deseni, profiliniz aracılığıyla seçtiğiniz tarih ve saat düzeniyle eşleşmelidir. Seçiminizi görüntülemek veya değiştirmek için bkz . Kullanıcı tercihlerini ayarlama.
Tırnak işareti (tek veya çift tırnaklar desteklenir) Karşılaştırmalarda kullanılan DateTime değişmez değerleri. Sorguyu çalıştıran yerel istemci bilgisayarın .NET DateTime biçiminde olmalıdır. Bir saat dilimi belirtilmediği sürece, DateTime değişmez değerleri yerel bilgisayarın saat dilimindedir.
WIQL
WHERE
AND [System.ChangedDate] >= '01-18-2019 GMT'
AND ([Closed Date] < '01-09-2022 GMT'
OR [Resolved Date] >= '01-18-2019 14:30:01')
DateTime değişmez değerinde saat atlandığında ve dayPrecision parametresi false değerine eşitse, saat sıfır (gece yarısı) olarak kabul edilir. dayPrecision parametresi için varsayılan ayar false'tur.
Alternatif olarak, yerel ayar ne olursa olsun geçerli olan ISO 8601 biçimini belirtebilirsiniz. ISO 8601, yıl ile başlayıp ay, gün, saat, dakikalar, saniyeler ve milisaniyeler takip ederek tarih ve saati temsil eder. Örneğin, 2021-12-10 15:00:00.000, 10 Aralık 2021'i yerel saatle 15:00'te temsil eder. ISO 8601 biçiminin kullanımına bir örnek aşağıda verilmiştir.
WIQL
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')
Özel alanlar
Sorgu yan tümcesine özel alan ekleyebilirsiniz. WIQL ile özel alan için başvuru adını belirtmeniz gerekir. Devralınan işlem modeli kullanan projeler için özel alanlar genellikle Özel olarak etiketlenir. adlarına eklenir ve boşluklar kaldırılır. Örneğin:
Kolay ad
Başvuru adı
Onaylayan
Custom.Approver
İstek Türü
Custom.RequestType
Kapsam Tahmini
Custom.CustomEstimate
Şirket içi XML işlem modelini kullanan projeler için başvuru adı, XML iş öğesi türü tanımları tarafından tanımlandığı şekildedir.
WHERE yan tümcesi filtre ölçütlerini belirtir. Sorgu yalnızca belirtilen ölçütleri karşılayan iş öğelerini döndürür. Örneğin, aşağıdaki örnek WHERE yan tümcesi etkin olan ve size atanan kullanıcı öykülerini döndürür.
WIQL
WHERE [Work Item Type] = 'User Story'
AND [State] = 'Active'
AND [Assigned to] = @Me
Filtre ölçütlerini gruplandırmak için, mantıksal işleçleri parantez içine alarak hangi sırada değerlendirileceklerini denetleyebilirsiniz. Örneğin, size atanmış veya kapattığınız iş öğelerini döndürmek için sorgu filtresini aşağıdaki örnekle eşleşecek şekilde değiştirin.
WIQL
WHERE
[System.TeamProject] = @project
AND (
[System.WorkItemType] = 'Product Backlog Item'
AND (
[System.AssignedTo] = @me
OR [Microsoft.VSTS.Common.ClosedBy] = @me
)
)
Filtre koşulları
Her filtre koşulu, her biri aşağıdaki kurallara uyması gereken üç bölümden oluşur:
Alan: Başvuru adını veya kolay adı belirtebilirsiniz. Aşağıdaki örnekler geçerli WIQL söz dizimidir:
Başvuru adı: SELECT [System.AssignedTo] ...
Boşluklu kolay ad: SELECT [Assigned To] ...
Boşluk içermeyen adlar köşeli ayraç gerektirmez: SELECT ID, Title ...
İşleç: Bu makalenin devamında İşleçler bölümünde geçerli değerler belirtilir.
Alan değeri: Belirtilen alana bağlı olarak aşağıdaki üç değerden birini belirtebilirsiniz.
Değişmez değer, alan değerinin veri türüyle eşleşmelidir.
Belirli bir değeri gösteren değişkeni veya makro. Örneğin, @Me sorguyu çalıştıran kişiyi gösterir. Daha fazla bilgi için bu makalenin devamında yer alan Makrolar ve değişkenler bölümüne bakın.
Başka bir alanın adı. Örneğin, iş öğesini en son değiştiren kişiye atanmış iş öğelerini bulmak için kullanabilirsiniz [Assigned to] = [Changed by] .
Sistem tanımlı tüm alanların açıklaması ve başvuru adları için bkz . İş öğesi alan dizini.
İşleçler
Sorgular, sonuç kümelerini nitelerken mantıksal ifadeler kullanır. Bu mantıksal ifadeler bir veya daha fazla birleştirilmiş işlem tarafından oluşturulur.
Bazı basit sorgu işlemleri aşağıda listelenmiştir.
WIQL
WHERE
[System.TeamProject] = @project
AND [System.WorkItemType] <> ''
AND [System.AssignedTo] = 'Jamal Hartnett <fabrikamfiber4@hotmail.com>'
AND [Microsoft.VSTS.Common.Severity] <> '1 - Critical'
Aşağıdaki tabloda farklı alan türleri için desteklenen tüm işleçler özetlenmiştir. Her alan türü hakkında daha fazla bilgi için bkz . İş öğesi alanları ve öznitelikleri.
İşleçler =, <>, >, <, >=, and <= beklendiği gibi çalışır. Örneğin, System.ID > 100 kimliği 100'den büyük olan tüm iş öğeleri için sorgular.
System.ChangedDate > '01-01-19 12:00:00' tüm iş öğeleri için sorgular 1 Ocak 2019'un öğlenden sonra değiştirildi.
Bu temel işleçlerin ötesinde, belirli alan türlerine özgü bazı davranışlar ve işleçler vardır.
Not
Kullanabileceğiniz operatörler, platformunuza ve sürümünüze bağlıdır. Daha fazla bilgi için bkz . Sorgu hızlı başvurusu.
Alan türü
Desteklenen işleçler
Boolean
= , <> , =[Field] , <>[Field]
DateTime
= , <> , > , < , >= , <= , =[Field], <>[Field], >[Field], <[Field], >=[Field], <=[Field], In, Not In, Was Ever
Çift, GUID, Tamsayı
= , <> , > , < , >= , <= , =[Field], <>[Field], >[Field], <[Field], >=[Field], <=[Field], In, Not In, Was Ever
Kimlik
= , <> , > , < , >= , <= , =[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
Mantıksal gruplandırmalar
İki yan tümceyi AND değerlendirmek için ve OR genel anlamda Boole terimlerini kullanabilirsiniz. Bir işleç belirtirken ve AND EVER terimlerini OR EVERWAS EVER kullanabilirsiniz. Mantıksal ifadeleri gruplandırabilir ve gerektiğinde daha fazla birleştirebilirsiniz. Örnekler aşağıda gösterilmiştir.
WIQL
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>'
)
)
kullanarak contains, under,ve in işleçlerini olumsuzlayabilirsiniznot. İşleci olumsuzlayamazsınız ever . Aşağıdaki örnek, alt ağacı Fabrikam Fiber\Account Managementaltında atanmamış tüm iş öğeleri için sorgular.
WIQL
WHERE
[System.TeamProject] = @project
AND [System.WorkItemType] <> ''
AND NOT [System.AreaPath] UNDER 'Fabrikam Fiber\Account Management'
Örnek sorgu, Hiç Atandı
Aşağıdaki Sorgu Düzenleyicisi örnek, Jamal Hartnett'e atanmış olan tüm iş öğelerini bulur.
Buna karşılık gelen WIQL söz dizimi de aşağıdadır.
WIQL
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>'
Makrolar veya değişkenler
Aşağıdaki tabloda, BIR WIQL sorgusunda kullanabileceğiniz makrolar veya değişkenler listelenir.
Makro
Kullanım
@Me
Kullanıcı diğer adlarını içeren bir alanda geçerli kullanıcının diğer adını otomatik olarak aramak için bu değişkeni kullanın. Örneğin, Alan sütununu Etkinleştirilmiş Olarak, İşleç sütununu olarak ve Değer=@Me olarak ayarlarsanız açtığınız iş öğelerini bulabilirsiniz.
@CurrentIteration
Seçili ekip bağlamını temel alarak seçili ekip için geçerli sprint'e atanan iş öğelerini otomatik olarak filtrelemek için bu değişkeni kullanın.
@Project
Geçerli projedeki iş öğelerini aramak için bu değişkeni kullanın. Örneğin, Alan sütununu Takım Projesi, İşleç sütununu olarak ve Değer sütununu =@Project olarak ayarlarsanız, geçerli projedeki tüm iş öğelerini bulabilirsiniz.
Geçerli gün, hafta, ay, yıl veya bu değerlerden birine uzaklık temelinde DateTime alanlarını filtrelemek için bu makroları kullanın. Örneğin, Alan sütununu Oluşturma Tarihi, İşleç sütununu =, Değer>ise @StartOfMonth - 3 olarak ayarlarsanız, son 3 ay içinde oluşturulan tüm öğeleri bulabilirsiniz.
@Today
Geçerli tarihle veya önceki bir tarihle ilişkili iş öğelerini aramak için bu değişkeni kullanın. Ayrıca, günleri çıkararak @Today değişkenini değiştirebilirsiniz. Örneğin, Alan sütununu Etkinleştirilmiş Tarih, İşleç sütununu =, Değer>da @Today - 7 olarak ayarlarsanız, geçen hafta etkinleştirilmiş tüm öğeleri bulabilirsiniz.
[Tümü]
Belirli bir alan için tanımlanan herhangi bir değerle ilişkili iş öğelerini aramak için bu değişkeni kullanın.
@me Makro
Makro, @me sorguyu çalıştıran kullanıcının Windows Tümleşik hesap adının yerini alır. Aşağıdaki örnekte makronun ve eşdeğer statik deyiminin nasıl kullanılacağı gösterilmektedir. Makro, gibi Assigned Tokimlik alanlarıyla kullanılmak üzere tasarlanmıştır.
WIQL
WHERE
[System.AssignedTo] = @Me
@today Makro
Makroyu @today herhangi bir DateTime alanıyla kullanabilirsiniz. Bu makro, sorguyu çalıştıran yerel bilgisayarda geçerli tarihin gece yarısının yerini alır. Ayrıca, sırasıyla x gün sonrası @today+x ve y gün öncesi @today-yiçin tamsayı uzaklıkları belirtebilir @today veya @today kullanabilirsiniz. Makroyu @today kullanan bir sorgu, çalıştırıldığı saat dilimine bağlı olarak farklı sonuç kümeleri döndürebilir.
Aşağıdaki örneklerde bugünün 3/1/19 olduğu varsayılmaktadır.
Makroları herhangi bir @StartOf... alanıyla kullanabilirsiniz. Bu makro, sorguyu çalıştıran yerel bilgisayarda geçerli günün, haftanın başlangıcının, ayın başlangıcının veya yılın başlangıcının yerini alır.
Not
Azure DevOps Server 2019 Güncelleştirme 1 veya sonraki bir sürümü gerektirir.
Bu makrolar biçiminde (+/-)nn(y|M|w|d|h|m)bir değiştirici dize kabul eder. Makroya @Today benzer şekilde, artı veya eksi tamsayı uzaklıklarını belirtebilirsiniz. Zaman birimi niteleyicisi atlanırsa, varsayılan olarak işlevin doğal süresine ayarlanır. Örneğin @StartOfWeek("+1") ile @StartOfWeek("+1w") aynıdır. Artı/eksi (+/-) işareti atlanırsa, artı varsayılır.
Bu söz dizimi, değiştiricileri iç içe yerleştirmenize ve sorgunuzu iki kez kaydırmanıza olanak tanır. Örneğin, yan tümcesi Closed Date >= @StartOfYear - 1, geçen yıldan bu yana kapatılmış olan iş öğelerini filtreler. olarak değiştirilerek Closed Date >= @StartOfYear('+3M') - 1, geçen yılın ilk üç ayı içinde kapatılan iş öğelerini dışlar. WIQL söz dizimi aşağıdaki örnekte gösterildiği gibidir.
WIQL
WHERE
[Microsoft.VSTS.Common.ClosedDate] >=@StartOfYear('+3M') - 1
Aşağıdaki örneklerde bugünün 5/4/19 olduğu varsayılır.
WIQL
WHERE
[Microsoft.VSTS.Common.CreatedDate] >= @StartOfMonth-3
Eşdeğeri:
WIQL
WHERE
[Microsoft.VSTS.Common.CreatedDate] >= '01-01-2019'
And
WIQL
WHERE
[Microsoft.VSTS.Scheduling.TargetDate] > @StartOfYear
Eşdeğeri:
WIQL
WHERE
[Microsoft.VSTS.Scheduling.TargetDate] > '01-01-2019'
Özel makrolar
WIQL ayrıca rastgele özel makroları da destekler. tarafından önekli herhangi bir @ dize özel makro olarak kabul edilir ve yerine geçer. Özel makronun değiştirme değeri, nesne modelindeki sorgu yönteminin bağlam parametresinden alınır. Aşağıdaki yöntem, makrolar için kullanılan API'dir:
C#
public WorkItemCollection Query(string wiql, IDictionary context)
Bağlam parametresi makrolar için anahtar-değer çiftleri içerir. Örneğin, bağlam bir anahtar-değer çifti (project, MyProject) içeriyorsa, WIQL'de @project ile MyProject değiştirilir. Bu değişiklik, iş öğesi sorgu oluşturucusunun Visual Studio'daki @project makroyu işleme şeklidir.
Geçmiş sorguları belirtme (ASOF)
Belirli bir ASOF tarih ve saatte tanımlandığı gibi belirtilen filtre koşullarını karşılayan iş öğelerini filtrelemek için sorgudaki bir yan tümceyi kullanabilirsiniz.
Not
Visual Studio'da sorgu oluşturucusunda sorgu oluşturamazsınız ASOF . Yan tümcesi içeren ASOF bir sorgu dosyası (.wiq) oluşturur ve bunu Visual Studio'ya yüklerseniz, ASOF yan tümcesi yoksayılır.
Bir iş öğesinin 05.05.2022 tarihinden önce yineleme yoluFabrikam Fiber\Release 1sınıflandırıldığını ve 'Jamal Hartnett'e atandığını varsayalım. Ancak, iş öğesi kısa süre önce 'Raisa Pokrovskaya'ya atandı ve Sürüm 2'nin yeni bir yineleme yoluna taşındı. Aşağıdaki örnek sorgu Jamal Hartnett'e atanan iş öğelerini döndürür çünkü sorgu geçmiş bir tarih ve saat itibarıyla iş öğelerinin durumunu temel alır.
WIQL
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'
Not
Zaman belirtilmezse, WIQL gece yarısını kullanır. Saat dilimi belirtilmezse, WIQL yerel istemci bilgisayarın saat dilimini kullanır.
Sıralama düzenini ayarlama (ORDER BY)
Bir sorgunun ORDER BY sonuçlarını artan veya azalan düzende bir veya daha fazla alana göre sıralamak için yan tümcesini kullanabilirsiniz.
Not
Veri katmanındaki SQL sunucusunun sıralama tercihleri, varsayılan sıralama düzenini belirler. Ancak, açık bir sıralama düzeni seçmek için veya asc parametrelerini kullanabilirsinizdesc.
Aşağıdaki örnek, iş öğelerini önce Önceliğe göre artan düzende (varsayılan) ve ardından Oluşturma Tarihi'ne göre azalan düzende (DESC ) sıralar.
WIQL
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
İş öğeleri arasındaki bağlantıları sorgulama
İş öğeleri arasındaki bağlantıları döndürmek için öğesini belirtirsiniz FROM WorkItemLinks. Yan tümcesindeki WHERE filtre koşulları, bağlantılara veya bağlantının kaynağı veya hedefi olan herhangi bir iş öğesine uygulanabilir. Örneğin, aşağıdaki sorgu Ürün Kapsam Öğeleri ile bunların etkin alt öğeleri arasındaki bağlantıları döndürür.
WIQL
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)
Aşağıdaki tabloda, iş öğeleri arasındaki bağlantılar için iş öğesi sorguları ile sorgular arasındaki farklar özetlemektedir.
Cümlecik
İş öğeleri
İş öğeleri arasındaki bağlantılar
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
uygulanamaz
Aşağıdakilerden birini belirtin:
MODE (MustContain): (Varsayılan) Yalnızca kaynak, hedef ve bağlantı ölçütlerinin tamamlandığı WorkItemLinkInfo kayıtlarını döndürür.
MODE (MayContain): Hiçbir bağlı iş öğesi hedef ölçüte uymasa bile kaynak ve bağlantı ölçütlerini karşılayan tüm iş öğeleri için WorkItemLinkInfo kayıtlarını döndürür.
MODE (DoesNotContain): Kaynağı karşılayan tüm iş öğeleri için WorkItemLinkInfo kayıtlarını döndürür, ancak bağlantılı iş öğesi bağlantıyı ve hedef ölçütleri karşılamazsa.
MODE (Recursive): Ağaç sorguları için kullanın.[System.Links.LinkType] = 'System.LinkTypes.Hierarchy-Forward' Bağlantı türü Ağaç topolojisi ve ileri yönde olmalıdır. Kaynağı karşılayan tüm iş öğeleri için WorkItemLinkInfo kayıtlarını, hedef için özyinelemeli olarak döndürür.
ORDER BY ve ASOF ağaç sorguları ile uyumlu değildir.
Aşağıdaki sorgu, geçerli projede tanımladığınız tüm iş öğesi türlerini döndürür. Sorgu Düzenleyicisi gösterildiği gibi sorgu aşağıdaki görüntüde gösterildiği gibi görünür.
Eşdeğer WIQL söz dizimi aşağıda gösterilmiştir.
WIQL
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)
Doğrudan bağlantı sorgu örneği
Aşağıdaki sorgu, geçerli projede tanımladığınız tüm iş öğesi türlerini döndürür. Sorgu Düzenleyicisi gösterildiği gibi sorgu aşağıdaki görüntüde gösterildiği gibi görünür.
Eşdeğer WIQL söz dizimi gösterildiği gibidir.
WIQL
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)
Diğer sorgu örnekleri
Aşağıdaki tipik WIQL sorgu örneği, alanlar için başvuru adlarını kullanır. Sorgu, Priority=1 ile iş öğelerini (iş öğesi türü belirtilmedi) seçer. Sorgu, dönüş kümesinin kimliğini ve Başlığını sütun olarak döndürür. Sonuçlar, kimliğine göre artan düzende sıralanır.
WIQL
SELECT
[System.Id],
[System.Title],
[System.State],
[System.IterationPath]
FROM workitems
WHERE
[System.TeamProject] = @project
AND [Microsoft.VSTS.Common.Priority] <> ''
ORDER BY [System.Id]
Tarih-saat düzeni
Tarih-saat desenini iki desenden birine göre belirtirsiniz:
UTC tarafından belirtilen ve bu deseni izleyen desen (tarih-saate Z eklenerek).
AND [System.ChangedDate] >= '1/1/2019 00:00:00Z'
Örnek yan tümceler
Aşağıdaki örnek deyimler belirli niteleme yan tümcelerini gösterir.
Cümlecik
Örnek
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 (Zaman filtresi)
SELECT [System.Title]
FROM workitems
WHERE [System.IterationPath] = 'MyProject\Beta'
AND [System.AssignedTo] = 'Jamal Hartnett <fabrikamfiber4@hotmail.com>'
ASOF '3/16/19 12:30'
Dize ve Düz Metin
Bir dize veya düz metin alanıyla karşılaştırmada tırnak dizesi değişmez değerleri (tek veya çift tırnak desteklenir). Dize değişmez değerleri tüm Unicode karakterlerini destekler.
WIQL
WHERE [Custom.Blocking] = 'Not Blocking'
WHERE [Custom.Blocking] <> 'Blocked'
Alan değerinin herhangi bir yerinde alt dize aramak için contains işlecini kullanabilirsiniz.
WIQL
WHERE [System.Description] contains 'WIQL'
Alan ve Yineleme (TreePath)
Alan ve Yineleme Yolu alanları için işlecini kullanabilirsiniz UNDER . işleci UNDER , bir değerin belirli bir sınıflandırma düğümünün alt ağacı içinde olup olmadığını değerlendirir. Örneğin, Alan Yolu 'MyProject\Server\Administration', 'MyProject\Server\Administration\Feature 1', 'MyProject\Server\Administration\Feature 2\SubFeature 5' veya alt ağaç içindeki başka bir düğümse aşağıdaki ifade true olarak değerlendirilir.
WIQL
WHERE [System.AreaPath] UNDER 'MyProject\Server\Administration'
Değiştiriciler ve özel işleçler
Sorgu ifadesinde bazı değiştiricileri ve özel işleçleri kullanabilirsiniz.
Bir alan değerinin IN herhangi bir değer kümesine eşit olup olmadığını değerlendirmek için işlecini kullanın. Bu işleç Dize, Tamsayı, Çift ve DateTime alan türleri için desteklenir. Anlamsal eşdeğeriyle birlikte aşağıdaki örne bakın.
WIQL
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>'
)
İşleci EVER , iş öğelerinin tüm geçmiş düzeltmeleri boyunca bir alan değerinin belirli bir değere eşit olup olmadığını veya belirli bir değere eşit olup olmadığını değerlendirmek için kullanılır. Dize, Tamsayı, Çift ve DateTime alan türleri bu işleci destekler. İşleç için EVER alternatif söz dizimleri vardır. Örneğin, aşağıdaki kod parçacıkları tüm iş öğelerinin Jamal, Raise veya Christie'ye atanıp atanmadığını sorgular.
WIQL
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>'
)
Diğer geliştiriciler ve uzmanlarla gerçek dünyadaki kullanım örneklerini temel alan ölçeklenebilir yapay zeka çözümleri oluşturmak için toplantı serisine katılın.