Pola zapytań, operatory i makra

Usługi Azure DevOps | Azure DevOps Server | Azure DevOps Server 2022

Wskazówka

Po raz pierwszy wykonywanie zapytań? Zacznij od sekcji Zdefiniuj zapytanie, aby zobaczyć instrukcje krok po kroku, lub od Szybkiego przewodnika po zapytaniach, aby zapoznać się z przykładami.

Skorzystaj z tego przewodnika referencyjnego, aby wyszukać typy danych pól, operatory zapytań, makra i zmienne podczas tworzenia zapytań w Edytor Power Query. Wszystkie operatory i makra są obsługiwane w Azure Boards; niektóre dotyczą tylko określonych wersji Azure DevOps Server.

Aby zapoznać się z szybkimi przykładami i zadaniami edytora, zobacz Szybkie informacje na temat zapytań oraz Zarządzanie i organizowanie zapytań.

Warunki wstępne

Kategoria Wymagania
członkostwo w projekcie Musisz zostać dodany jako członek projektu.
Poziomy dostępu - Aby wyświetlić i uruchomić udostępnione zapytania: musisz być członkiem Project.
- Aby dodać i zapisać udostępnione zapytanie: musisz mieć co najmniej dostęp podstawowy.
uprawnienia Upewnij się, że uprawnienie Współtworzenie ma ustawioną wartość Zezwalaj dla folderu, w którym chcesz dodać zapytanie. Aby przyznać to uprawnienie, organizacja może wymagać ręcznego skonfigurowania grupy Współautorzy .

Uwaga

Potrzebny jest zarówno wystarczający poziom dostępu, jak i uprawnienie Współtworzenie do zapisywania udostępnionych zapytań. Dostęp podstawowy nie wystarczy.

Kategoria Wymagania
członkostwo w projekcie Musisz zostać dodany jako członek projektu.
Poziomy dostępu - Aby wyświetlić i uruchomić udostępnione zapytania: musisz być członkiem Project.
- Aby dodać i zapisać udostępnione zapytanie: musisz mieć co najmniej dostęp podstawowy.
uprawnienia Upewnij się, że uprawnienie Współtworzenie ma ustawioną wartość Zezwalaj dla folderu, w którym chcesz dodać zapytanie. Aby przyznać to uprawnienie, organizacja może wymagać ręcznego skonfigurowania grupy Współautorzy .

Uwaga

Potrzebny jest zarówno wystarczający poziom dostępu, jak i uprawnienie Współtworzenie do zapisywania udostępnionych zapytań. Dostęp podstawowy nie wystarczy.

Wykonywanie zapytań dotyczących typów danych i wartości pól

Określ wartość zgodną z typem danych dla pola. W poniższej tabeli wymieniono obsługiwane typy danych:

Uwaga

W przypadku Azure Boards (chmura) typ danych jest zgodny z polem wyświetlanym na stronie >. W przypadku wdrożeń lokalnych typ danych odpowiada atrybutowi typeFIELD w definicji. Aby uzyskać szczegółowe informacje, zobacz Pola elementów roboczych i atrybuty pól .

Typ danych Description
Boolean Przechowuje wartość true/false.
Data i godzina lub data/godzina Użyj zmiennej daty (np. @Today lub @Today-1) albo konkretnej daty, takiej jak 01/01/2025. Wprowadź daty zgodnie z formatem ustalonym w Twoim profilu. Przykłady zapytań można znaleźć pod Query by date or @CurrentIteration. W przypadku zapytań WIQL można również określić daty w formacie UTC. Zobacz Składnia języka zapytań elementów roboczych (WIQL).
Double lub Decimal Przechowuje liczbę rzeczywistą, taką jak 0,2 lub 3,5. Aby zapoznać się z przykładami , zobacz Zapytanie według pól liczbowych .
identyfikator GUID Przechowuje unikatowy ciąg identyfikatora.
Historia Niestandardowe sformatowane pole używane do informacji historycznych (pole Historia ). Gdy wyszukiwanie pełnotekstowe jest dostępne, to pole jest indeksowane dla zapytań pełnotekstowych. Zobacz Historia i inspekcja.
HTML Przechowuje sformatowany tekst, taki jak Opis lub Kroki odtworzenia. Gdy wyszukiwanie pełnotekstowe jest dostępne, te pola są indeksowane. Aby wykonywać zapytania dotyczące pól tekstu sformatowanego, zobacz Wykonywanie zapytań według tytułów, identyfikatorów i pól tekstu sformatowanego.
Tożsamość Przechowuje krótki ciąg tekstowy identyfikujący tożsamość użytkownika.
Liczba całkowita Przechowuje podpisaną liczbę całkowitą 32-bitową, taką jak 0, 1, 2 lub 34.
Zwykły tekst lub pole tekstowe (wielowierszowe) Przechowuje długie wartości tekstowe, takie jak informacje o uruchamianiu aplikacji. Te pola są indeksowane do wyszukiwania pełnotekstowego, gdy jest ono obsługiwane. Zobacz Zapytania według tytułów, identyfikatorów i pól tekstu sformatowanych.
picklistDouble Pole niestandardowe zawierające listę wyboru wartości dziesiętnych.
picklistInteger Pole niestandardowe zawierające listę wyboru wartości całkowitych.
picklistString Pole niestandardowe zawierające listę wyboru krótkich wartości tekstowych (255 znaków lub mniej).
Ciąg lub pole tekstowe (pojedynczy wiersz) Przechowuje krótki tekst do 255 znaków Unicode. Zespoły często używają tych pól do list wyboru lub menu rozwijanych.
TreePath Reprezentuje drzewo rozgałęziania, takie jak ścieżka obszaru lub ścieżka iteracji. Wybierz prawidłową wartość węzła. Można filtrować według równości, nierówności, „Poniżej” lub „Nie poniżej”. Użyj operatorów In i Not In, aby określić wiele wartości. Zdefiniuj struktury drzewa dla projektu — ścieżki obszaru i ścieżki iteracji — i wybierz węzły do skojarzenia z zespołami. Aby zapoznać się z przykładami zapytań, zobacz Zapytanie według obszaru lub ścieżki iteracji i Zapytanie według daty lub bieżącej iteracji.

Uwaga

Typy picklist... mają zastosowanie tylko do pól niestandardowych zdefiniowanych dla dziedziczonego procesu.

Wzorzec daty i godziny

Wzorzec daty i godziny, który wprowadzisz w polach DateTime, powinien być zgodny z tym, który wybierzesz w swoim profilu. Aby wyświetlić lub zmienić wybór, zobacz Ustawianie preferencji użytkownika.

Zrzut ekranu przedstawiający opcje listy rozwijanej Wzorzec daty w okienku Czas i ustawienia regionalne. Zrzut ekranu przedstawiający opcje listy rozwijanej Wzorzec czasu w okienku Czas i ustawienia regionalne.

Zrzut ekranu przedstawiający okienko Czas i locale z polami Wzorzec daty i Wzorzec godziny.

Operatory zapytań

Użyj operatorów, aby zdefiniować, w jaki sposób wartość klauzuli musi być powiązana z wartością pola elementu roboczego. Aby uzyskać informacje o typach danych pól, zobacz Referencję pól elementu zadania. Aby uzyskać pomoc w tworzeniu zapytań, zobacz Definiowanie zapytania.

Operator zapytania Gdy operator zwraca pasujące elementy robocze Odpowiednie typy danych
= Pasuje do wartości klauzuli. Liczba (Podwójna/Dziesiętna/GuiD/Liczba całkowita), Ciąg, DateTime, TreePath
<> Nie jest zgodna z wartością klauzuli. Number, String, DateTime, TreePath
> Jest większa niż wartość klauzuli. Liczba, ciąg, data/godzina
< Jest mniejsza niż wartość klauzuli. Liczba, ciąg, data/godzina
>= Jest większe lub równe wartości klauzuli. Liczba, ciąg, data/godzina
<= Jest mniejsza lub równa wartości klauzuli. Liczba, ciąg, data/godzina
=[Pole] Pasuje do wartości w innym określonym polu (musi być tym samym typem danych). Nazwa pola tego samego typu danych (pola logiczne porównują równość z innymi polami).
<>[Pole] Wartość nie jest zgodna z wartością w innym określonym polu. Nazwa pola tego samego typu danych.
>[Pole] Wartość jest większa niż wartość w innym określonym polu. Nazwa pola tego samego typu danych.
<[Pole] Jest mniejsza niż wartość w innym określonym polu. Nazwa pola tego samego typu danych.
>=[Pole] Jest większe lub równe wartości w innym określonym polu. Nazwa pola tego samego typu danych.
<=[Pole] Wartość jest mniejsza lub równa wartości w innym określonym polu. Nazwa pola tego samego typu danych.
Zawiera Zawiera dokładne lub częściowe dopasowanie tekstu. Sznurek
Nie zawiera Nie zawiera dokładnej ani częściowej zgodności tekstowej. Sznurek
Zawiera wyrazy Dopasowuje dokładną frazę lub słowa (obsługuje symbole wieloznaczne na końcu *). Limit: 100 znaków. Ten operator używa indeksowania pełnotekstowego; Zobacz sekcję Pełny tekst w tym artykule, aby zapoznać się z wymaganiami dotyczącymi serwera i sortowania. Pola długiego tekstu indeksowane do wyszukiwania pełnotekstowego (Zwykły tekst, HTML, Historia i Tytuł).
nie zawiera wyrazów Wyklucza elementy zawierające określoną frazę lub wyrazy. Limit: 100 znaków. Aby uwzględnić lub wykluczyć słowa kluczowe, użyj Contains Words w klauzulach towarzyszących. Pola tekstowe indeksowane na potrzeby wyszukiwania pełnotekstowego.
W Dopasowuje dowolną wartość w zestawie rozdzielanym (użyj separatora listy regionalnej systemu operacyjnego, zazwyczaj przecinka). Number, String, DateTime, TreePath
Jest pusta Pasuje do elementów, w których pole HTML nie zawiera zawartości (bez określonej wartości). Obsługiwane w przypadku Azure Boards i Azure DevOps Server. HTML
Nie jest pusty Pasuje do elementów, w których pole HTML zawiera zawartość. Obsługiwane w przypadku Azure Boards i Azure DevOps Server. HTML
Nie w Wyklucza wartości w zestawie rozdzielonym (użyj separatora listy regionalnej). Obsługiwane w przypadku Azure Boards i Azure DevOps Server. Number, String, DateTime, TreePath
W grupie Dopasuje wartości, które są członkami nazwanej grupy (zespołu, grupy zabezpieczeń lub kategorii). Na przykład użyj grupy Współautorzy lub grupy zespołu o nazwie we wzorcu [Project Name]\Team Name. Przykłady można znaleźć w temacie Query by assignment or workflow changes (Wykonywanie zapytań według przydziału lub zmian przepływu pracy ). Użyj opcji W grupie tylko z polami typu ciąg lub typem elementu roboczego. Możesz używać grup Microsoft Entra ID, gdy Twoje konto korzysta z Microsoft Entra ID, lub grup Active Directory dla środowiska lokalnego. Ciąg (pasuje do nazwy grupy lub zespołu) lub typu elementu roboczego
Nie w grupie Wyklucza członków nazwanej grupy. Ciąg pasujący do grupy użytkowników lub kategorii projektu.
Nie w obszarze Wyklucza elementy, które są równe do lub zawarte pod określonym węzłem drzewa. Ścieżka Drzewa
Pod Dopasowuje elementy równe lub znajdujące się pod określonym węzłem drzewa. Ścieżka Drzewa
Czy kiedykolwiek było Dopasowuje wartość, którą pole miało w dowolnym wcześniejszym momencie. (Edytor Power Query: tylko pola tekstowe. Obsługa typu DateTime wymaga bezpośrednich zapytań WIQL.) Łańcuch, Data i Czas

Wskazówka

Zapytania WIQL, które używają operatorów (na przykład Was Ever), można tworzyć dla innych typów danych, takich jak ścieżka iteracji. Zobacz Wyświetlanie listy elementów roboczych przeniesionych z przebiegu , aby zapoznać się z przykładem.

Typowe przykłady operatorów

Oto reprezentatywne przykłady zapytań, które używają różnych operatorów:

Query Returns
State = Active Elementy robocze ze stanem "Aktywne"
Priority <> Low Wszystkie elementy z wyjątkiem elementów o niskim priorytcie
Created Date >= @Today-7 Elementy robocze utworzone w ciągu ostatnich 7 dni
Assigned To = @Me Elementy przypisane do bieżącego użytkownika
Tags Contains "frontend" Elementy z tagiem zawierającym „frontend”
State In (Active, In Progress) Elementy w jednym ze stanów
Area Path Under "Project\Web" Wszystkie elementy w obszarze sieci Web, w tym obszary podrzędne
Assigned To In Group "[Project]\Developers" Elementy przypisane do każdej osoby w grupie Deweloperzy
Description Contains Words "urgent" Elementy, w których opis zawiera słowo "pilne"

Wyszukiwanie pełnotekstowe i częściowe wyrazów

Użyj Zawiera lub Nie zawiera, aby wyszukiwać dokładnych lub częściowych dopasowań w polach długiego tekstu. Te operatory używają indeksu zapytań. Użyj opcji Zawiera wyrazy lub Nie zawiera wyrazów , aby wyszukać dokładne frazy lub użyć końcowego symbolu wieloznakowego (*). Te operatory wymagają indeksu pełnotekstowego.

Symbol wieloznaczny można używać tylko na końcu częściowego wyrazu lub frazy. Aby zapoznać się z przykładami, zobacz Przykładowe zapytania dotyczące elementów roboczych i Zapytanie dotyczące elementów roboczych przy użyciu pola Historia.

Uwaga

Nie wszystkie wdrożenia obsługują wyszukiwanie pełnotekstowe. Na przykład usługa SQL Express i niektóre konfiguracje sql w chmurze nie obsługują wyszukiwania pełnotekstowego. W tych wdrożeniach widoczne są tylko operatory Contains i Does Not Contains .

Azure DevOps Server indeksuje pola długiego tekstu (PlainText i HTML) oraz pole Title na potrzeby wyszukiwania pełnotekstowego, gdy podstawowa SQL Server obsługuje indeksowanie pełnotekstowe.

Wyszukiwanie pełnotekstowe wymaga również kolacji SQL z zarejestrowanym modułem do łamania wyrazów dla używanego języka. Jeśli sortowanie bazy danych kolekcji nie jest zgodne z obsługiwanym językiem, wyniki mogą nie odpowiadać oczekiwaniom. W takich przypadkach należy użyć opcji Zawiera lub Nie zawiera .

Aby uzyskać więcej informacji, zobacz Zapytania wyszukiwania pełnotekstowego i ustawienia sortowania.

Łączenie operatorów

Zapytania używają logiki AND do łączenia wielu klauzul. Każda dodatkowa klauzula dodatkowo zawęża wyniki. Przykład:

  • State = Active AND Priority = High Funkcja zwraca elementy robocze, które są aktywne i mają wysoki priorytet.
  • State = Active AND State <> Closed Zwraca aktywne elementy z wyłączeniem tych oznaczonych jako zamknięte.
  • Assigned To = @Me AND State <> Done Zwraca elementy przypisane do ciebie, które nie są ukończone.

Nawiasy umożliwiają grupowanie warunków dla złożonych zapytań w składni bezpośredniej WIQL:

  • (State = Active OR State = In Progress) AND Priority = High zwraca elementy o wysokim priorytecie w stanie aktywnym lub w toku.

Aby uzyskać więcej przykładów i szczegółów składni WIQL, zobacz Składnia języka zapytań elementów roboczych (WIQL).

Rozwiązywanie problemów i typowe błędy

Problem Prawdopodobna przyczyna Rozwiązanie
Makro nie zwraca żadnych wyników @CurrentIteration działa tylko w portalu; interfejsy API REST i CLI mogą zwracać puste wyniki Zamiast tego użyj bezpośrednich dat w skryptach lub interfejsach API. Aby uzyskać alternatywy, zobacz Zapytanie według daty lub bieżącej iteracji.
zapytanie @TeamAreas zwraca nieoczekiwane wyniki Makro działa tylko z polem Ścieżka obszaru ; używanie go z innymi polami nie ma wpływu Sprawdź, czy filtrujesz według ścieżki obszaru. Zamiast tego użyj innych pól ścieżki drzewa (ścieżka iteracji) z operatorem Under .
Zawiera błąd operatora wyrazów Zapytanie przekracza limit 100 znaków lub zawiera symbole wieloznaczne w nieprawidłowym miejscu Zmniejsz tekst zapytania do mniej niż 100 znaków. Użyj symbolu wieloznacznego tylko na końcu terminu (na przykład feature*), a nie na początku.
Zapytanie In Group kończy się niepowodzeniem Nieprawidłowy format nazwy grupy lub grupa nie istnieje Użyj dokładnego formatu: Assigned To In Group "[Project]\\Team Name" dla zespołów. Sprawdź nazwę grupy w ustawieniach projektu.
Czy operator Ever nie działał z datami Edytor Power Query nie obsługuje operacji Was Ever dla pól DateTime Użyj bezpośredniej składni WIQL zamiast edytora zapytań wizualnych. Aby uzyskać więcej informacji, zobacz Składnia języka zapytań elementów roboczych (WIQL).
Zapytanie pola logicznego nie zwraca żadnych wyników Wartość uwzględnia wielkość liter w zapytaniach WIQL Użyj dokładnej wielkości liter: CustomBoolField = True lub CustomBoolField = False (w WIQL wielkie T/F).

Wykonywanie zapytań dotyczących makr i zmiennych

Użyj poniższych makr, aby dynamicznie filtrować zapytania.

Uwaga

Następujące makra są obsługiwane tylko w portalu internetowym: @CurrentIteration, @CurrentIteration +/- n, @Follows, @MyRecentActivity, @RecentMentions, @RecentProjectActivityi @TeamAreas. Zapytania zawierające te makra nie będą działać po otwarciu w programie Visual Studio/Team Explorer, Microsoft Excel lub Microsoft Project.

Makro Description
[Dowolny] Użyj z typem elementu roboczego lub stanem, aby wyszukiwać we wszystkich typach lub stanach. Na przykład Work Item Type=[Any] usuwa filtrowanie oparte na typach.
@CurrentIteration Aby filtrować elementy robocze w ramach bieżącego sprintu na podstawie bieżącego kontekstu zespołu, użyj ścieżki iteracji. Aby zapoznać się z przykładami, zobacz Zapytanie według daty lub bieżącej iteracji . @CurrentIteration działa tylko w przypadku uruchamiania z portalu internetowego (nie w interfejsach API REST lub niektórych operacjach kopiowania/klonowania).
@CurrentIteration +/- n Użyj z Ścieżka iteracji, aby uwzględnić sprinty względem bieżącej iteracji (na przykład @CurrentIteration-1 lub @CurrentIteration+2). Obsługiwane w portalu internetowym dla Azure Boards i Azure DevOps Server.
@Follows Użyj ID i In jako operatora, aby wyświetlić listę elementów roboczych obserwowanych w projekcie. Zobacz Śledzenie elementu roboczego lub pull requesta. To makro działa tylko z poziomu portalu internetowego.
@Me Użyj z polami tożsamości, aby filtrować elementy połączone z kontem (na przykład Created By=@Me). Zobacz Tworzenie zapytań według przypisań, przepływu pracy lub zmian tablicy.
@MyRecentActivity Użyj ID i In do wyświetlenia elementów roboczych, które przeglądałeś lub aktualizowałeś w ciągu ostatnich ~30 dni. Aby uzyskać tę samą listę, zobacz stronę Elementy robocze Moja aktywność .
@Project Użyj z Team Project aby filtrować elementy robocze w bieżącym projekcie (na przykład Team Project=@Project). Zobacz Zapytanie między projektami.
@RecentMentions Użyj identyfikatora i In, aby wyświetlić elementy robocze, w których wymieniono Cię w dyskusjach. Zobacz stronę Elementy robocze Wymienione przestawnie.
@RecentProjectActivity Użyj z ID i In, aby wyświetlić listę ostatnio zaktualizowanych elementów roboczych w całym projekcie. Makro zwraca do 5000 elementów; rzeczywiste okno zależy od działania projektu.
@StartOfDay Użyj z polami DateTime, aby filtrować względem dnia dzisiejszego (na przykład Closed Date>=@StartOfDay-7).
@StartOfMonth Użyj z polami DateTime, aby filtrować względem początku miesiąca (na przykład Created Date>=@StartOfMonth-3).
@StartOfWeek Użyj z polami typu DateTime, aby filtrować względem początku tygodnia (na przykład Changed Date>=@StartOfWeek-2).
@StartOfYear Używaj z polami datetime, aby filtrować zgodnie z początkiem roku (na przykład Target Date>=@StartOfYear).
@TeamAreas Użyj tylko z ścieżka obszaru i operatorem =, aby znaleźć elementy przypisane do ścieżek obszaru zespołu (na przykład Area Path=@TeamAreas [Fabrikam Fiber]\Web). Obsługiwane w portalu internetowym dla Azure Boards i Azure DevOps Server.
@Today Użyj z polami DateTime, aby filtrować względem dnia dzisiejszego (na przykład Created Date>=@Today-7). Zobacz Zapytanie według daty lub bieżącej iteracji.

Typowe przykłady makr

Oto reprezentatywne przykłady zapytań, które używają makr do dynamicznego wykonywania zapytań:

Query Zwroty (portal internetowy)
Iteration Path = @CurrentIteration Elementy pracy w bieżącym sprincie
Iteration Path = @CurrentIteration-1 Elementy pracy w poprzednim sprincie
Assigned To = @Me Elementy przypisane do bieżącego użytkownika
Created Date >= @Today-30 Elementy utworzone w ciągu ostatnich 30 dni
State = Active AND Area Path = @TeamAreas [Project]\MyTeam Aktywne elementy w obszarze Twojego zespołu
Work Item Type = [Any] Wszystkie typy elementów roboczych (usuwa filtrowanie typów)
Assigned To In Group @Follows Elementy przypisane do obserwowanych osób

Uwaga

Makra takie jak @CurrentIteration, @Me, @Followsi @TeamAreas działają tylko w portalu internetowym. W przypadku interfejsów API REST, interfejsu wiersza polecenia i Power BI zamiast tego użyj bezpośrednich dat i identyfikatorów użytkowników. Aby uzyskać alternatywy, zobacz Zapytanie według daty lub bieżącej iteracji.

interfejs API REST

Aby programowo korzystać z zapytań, zobacz jeden z następujących zasobów interfejsu API REST: