Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Kurallar, bir iş öğesi alanına değer atamalarını ayarlamak veya kısıtlamak için kullanılır. Otomatik olarak oluşturulan kurallar ve bir işlem veya proje için tanımlanan özel kurallar olmak üzere iki ana kural türü vardır. Otomatik oluşturulan kurallar, standart bir şekilde çalışması gereken alanlar için özel kurallar ekleme gereksinimini en aza indirir.
İş kullanım örneklerinizi desteklemek için özel kurallar tanımlarsınız. Alanın veri türüne bağlı olarak, bu alana hangi verilerin girilebileceğine ilişkin çeşitli kısıtlamalar ayarlayabilirsiniz. Seçim listesi için değerler belirtebilir (açılan menü), varsayılan değerleri ayarlayabilir, girdileri temizleyebilir veya değişiklikleri kısıtlayabilirsiniz. Koşullu kurallarla, farklı alanların değerleri arasındaki bağımlılıkları temel alan bir alana kurallar uygulayabilirsiniz. Ayrıca, bir alanı veya kuralın kapsamını değiştirebilecek kişileri yalnızca gruba uygulanacak şekilde kısıtlayabilirsiniz.
Aşağıdakileri anlamak için bu makaleyi okuyun:
Sistem otomatik olarak oluşturulan kuralları nasıl uygular?
Sistem alanlarındaki özel kuralların tanımına getirilen kısıtlamalar
Uygulayabileceğiniz farklı özel kural türleri
Kurallar nasıl değerlendirilir?
Devralma işlemi için tanımlanan kurallar ile Şirket İçi XML işlemi arasındaki fark
Tanımladığınız özel kuralların sayısını neden en aza indirmelisiniz?
Özel kurallar tanımlamadan önce Azure Boards'ı yapılandırma ve özelleştirme konusunu okuyarak Azure Boards'ı iş gereksinimlerinizi karşılayacak şekilde özelleştirme hakkında daha fazla bilgi edinin.
İpucu
WIT için tanımladığınız kural sayısını en aza indirin. WIT için birden çok kural oluşturabilirsiniz ancak, kullanıcı iş öğelerini ekleyip değiştirdiğinde toplama kuralları performansı olumsuz etkileyebilir. Kullanıcılar iş öğelerini kaydettiğinde, sistem iş öğesi türü için alanlarla ilişkili tüm kuralları doğrular. Belirli koşullar altında, kural doğrulama ifadesi SQL'i değerlendiremeyecek kadar karmaşıktır.
Otomatik oluşturulan kurallar
Otomatik oluşturulan kurallar, standart bir şekilde çalışması gereken alanlar için özel kurallar ekleme gereksinimini en aza indirir.
Durum geçiş kuralları
Devralınan işlemler, bir iş akışına eklenen her özel iş öğesi türü ve özel durum için herhangi bir durumdan herhangi birine geçiş kurallarının tamamını dinamik olarak oluşturur. Herhangi bir durumdan herhangi bir duruma geçiş geçerlidir.
Şirket içi XML işlemleri için, iş öğesi türü tanımının WORKFLOW bölümünde geçerli geçişleri belirtmeniz gerekir.
Durum geçişleri ve Tarihe Göre alan kuralları
Göre/Tarih alanları Oluşturma Ölçütü/Tarihi, Etkinleştirilmiş Ölçütü/Tarihi, Çözümlenen/Tarih ve Kapanış Tarihi/Tarihi'ne karşılık gelir.
Devralınan işlemler için, bir iş öğesini bir durumdan diğerine geçirdiğinizde bu alanlar otomatik olarak ayarlanır veya temizlenir. Değişen/Tarih alanları, her iş öğesi kaydıyla güncelleştirildiğinden ve durum geçişleriyle ilişkili olmadığından dahil değildir.
Bu alanları yöneten varsayılan kurallar ve davranışlar şunlardır:
Kapalı durumu her zaman Tamamlandı durum kategorisinde yer alır.
Tamamlandı durum kategorisi yapılandırılamaz ve tek bir Durum ile ilişkilendirilir.
Bu Kapalı durum Çevik ve CMMI işlemleri için her zaman Kapalı , Scrum ve Temel işlemler için ise her zaman Bitti şeklindedir.
Kural koşulu yerelleştirilmiş Durum adını içerdiğinden, bu kuralların otomatik olarak oluşturulması yerel ayardan etkilenir. Sistem, farklı yerel ayarlar için farklı kurallar oluşturur.
Bu alanlar için otomatik oluşturulan kurallar yalnızca bu alanları içeren iş öğesi türleri için belirtilir. bir iş öğesi türünün bu alanlardan birini veya daha fazlasını içermemesi mümkündür.
Bu kurallar, bir iş öğesi türünün özel durumları olduğunda veya iş öğesi türü özel bir iş öğesi türündeyse gereklidir.
Bu kurallar yalnızca devralınan işlemler için geçerlidir; Bunlar hiçbir zaman Barındırılan XML veya Şirket İçi XML işlemleri için oluşturulmaz.
Bu kurallar teknik olarak Kapalı Tarih/Kapalı Tarih kurallarından çok daha basittir çünkü bunlar belirli bir duruma bağımlı değildir. Herhangi bir iş öğesi türü için aynı kurallar her zaman çalışır. Bazı OOB iş öğesi türleri Durum Değiştirme Tarihi alanını içermediğinden otomatik olarak oluşturulmaları gerekir, bu nedenle kullanıcı bu alanı özel bir iş öğesi türüne eklediğinde, bu kuralların da otomatik olarak oluşturulması gerekir. Kapalı Tarih/Kapanış Tarihi kuralları için de burada aynı ilkeler geçerlidir.
Özel kurallar
Tüm özel kurallar isteğe bağlıdır. Devralınan bir işlem için koşul artı eyleminden oluşan bir kural belirtirsiniz. Şirket içi XML işlemi için, bir alan için veya iş akışı içinde kurallar belirtirsiniz.
İki işlem arasında bire bir eşleme yoktur. Bazı durumlarda XML öğesi kuralı, kural olarak değil devralınan işlem için Düzenleme alanı iletişim kutusunda tanımlanır. Devralınan işlemde , MATCH, NOTSAMEAS, gibi FROZENdiğer XML öğeleri desteklenmez.
Aşağıdakileri dikkate alın:
Kurallar her zaman uygulanır, yalnızca formla etkileşim kurarken değil, aynı zamanda diğer araçlarla etkileşim kurarken de uygulanır. Örneğin, bir alanı salt okunur olarak ayarlamak, kuralı yalnızca iş öğesi formuna değil, API ve Excel Azure DevOps Server Eklentisi aracılığıyla da uygular.
Devralınan işlem girişleri, tam bir kural oluşturmak için koşulları ve eylemleri belirtir. XML öğeleri bu ayrımları yapmaz.
Alan kuralları, diğer iki alanın toplamı olan değerleri atamayı veya başka matematiksel hesaplamalar gerçekleştirmeyi desteklemez. Ancak, TFS Toplayıcısı (Web Hizmeti) Market uzantısı aracılığıyla gereksinimlerinize uygun bir çözüm bulabilirsiniz. Ayrıca bkz. çalışma ve diğer alanların toplaması.
Market uzantılarını kullanarak alanlara özel kurallar uygulamak için İş öğesi formu denetim kitaplığı uzantısı gibi ek çözümler bulabilirsiniz.
Devralınan bir işlem için her kural iki bölümden oluşur: Koşullar ve Eylemler. Koşullar, kuralın uygulanması için karşılanması gereken koşulları tanımlar. Eylemler gerçekleştirilecek işlemleri tanımlar. Çoğu kural için, kural başına en fazla iki koşul ve 10 eylem belirtebilirsiniz. Tüm özel kuralların çalıştırılması için tüm koşulların karşılanması gerekir.
Örneğin, duruma ve başka bir alana atanan değere göre gerekli bir alan oluşturabilirsiniz. Örneğin:
(Condition) When a work item State isEtkin (Condition) And when the value ofDeğer Alanı = İş (Action) Then make requiredYazı Noktaları
Not
Şu anda durum geçişi kuralları için yalnızca bir koşul desteklenmektedir. Durum temelinde kurallar uyguluyorsanız bkz . İş akışı durumlarına kural uygulama.
Aşağıdaki tabloda, seçili Koşullar ile kullanılabilen Eylemler özetlenir.
Condition
Desteklenen Eylemler
Alan değerini ayarlama veya gerekli veya salt okunur yapma
Durumu temel alarak geçişi kısıtlama
Durumu ve kullanıcı veya grup üyeliğini temel alarak alanı gizleyin veya alanı salt okunur veya gerekli hale getirin
ve kullanıcı veya grup üyeliğine bağlı olarak alan özniteliğini ayarlayın veya Durum geçişini kısıtlayın
Şirket içi XML işlemi, XML öğelerini kullanan kuralları tanımlar. Bu kural öğelerinin tümü bir iş öğesi türü tanımının tanımı içinde FIELD tanımlanabilir. Öğesinin HELPTEXT dışında, iş akışı geçişi sırasında veya bir (Genel iş akışı) öğesinde FIELD alt öğeler olarak bu kuralları belirtebilirsiniz.
Not
VALIDUSER öğesi TFS 2018 ve sonraki sürümlerde desteklenmez.
Alan kuralı nereye uygulanır?
Bir kuralın iş öğesinin ömrü boyunca bir alana uygulanmasını istiyorsanız, bu kuralı bölümünde belirtin FIELD . Örneğin, yeni ve etkin bir hata için gerekli olan bir alan, hata kapatılana kadar gerekli kalır. Aksi takdirde, Durum, Neden veya geçişteki bir değişikliğe göre uygulanmasını istiyorsanız, bölümün WORKFLOW içinde belirtin.
State (System.State) ve Reason (System.Reason) alanları bölümünde tanımlanır WORKFLOW . Durum değişikliği, neden seçimi veya belirli bir geçiş sırasında alana uygulanacak alan kurallarının çoğunu belirtebilirsiniz. Daha fazla bilgi için bkz . İş öğesi türü için iş akışını değiştirme.
Aksi takdirde, yalnızca durum değişikliği sırasında değerlendirilecek bir kural belirtin. Bu kurallar , REASONveya TRANSITION öğelerinin WORKFLOWSTATEaltındaki bölümde tanımlanır. dışında HELPTEXTtüm kurallar bir FIELD (İş Akışı) öğesi içinde uygulanabilir.
Alan kuralları eklenir. Başka bir ifadeyle, aynı alan için tümü kural altyapısı tarafından değerlendirilecek dört kural kümesi belirtebilirsiniz.
İş öğesi türüne özgü kurallar, bir iş öğesinin durum modelindeki konumundan bağımsız olarak uygulanır. Örneğin, bir <REQUIRED \> kural aşağıdaki denetimi gerçekleştirir:
"MyField Value" != NULL
Duruma özgü kuralların kapsamı belirli bir durumda olduğunda iş öğesi örneği olarak belirlenmiştir. Aşağıdaki koşul doğru olduğunda duruma özgü bir kural zorlanır:
State field value == "MyState" && "MyField Value" != NULL
Belirli bir geçiş için belirttiğiniz geçişe özgü kurallar, belirli bir geçişte olan bir iş öğesi kapsamındadır. Aşağıdaki koşullar doğru olduğunda bu kurallar uygulanır:
State field value == "ToState" && "Previous State Before Edit/New" == "FromState" && "MyField Value" != NULL
Belirli bir nedenle belirttiğiniz nedene özgü kuralların kapsamı belirli bir geçiş için belirli bir neden olarak belirlenmiş. Aşağıdaki koşullar doğru olduğunda işlenir:
Reason field == "MyReason" && State field value == "ToState" && "Previous State Before Edit/New" == "FromState" && "MyField Value" != NULL
Aşağıdaki örnek, iş öğesi Etkin durumdayken müşteri önem derecesi alanının değiştirilmesini kısıtlar.
Her oluşturulduğunda veya güncelleştirildiğinde iş öğelerini doğrulamak için proje başına tek bir SQL ifadesi tanımlanır. Bu ifade, proje için tanımlanan tüm iş öğesi türleri için belirttiğiniz kural sayısıyla büyür. Bir alan için belirtilen her davranış niteleyicisi, alt ifade sayısında artışa neden olur. İç içe kurallar, yalnızca geçişe uygulanan veya başka bir alanın değerine göre koşullandırılmış kurallar, deyimine IF daha fazla koşul eklenmesine neden olur. İfade belirli bir boyuta veya karmaşıklık düzeyine ulaştığında SQL artık ifadeyi değerlendiremez ve bir hata oluşturur. Bazı WIT'leri kaldırmak veya bazı kuralları ortadan kaldırmak hatayı çözebilir.
Seçim listesi için değerler belirtebilir (açılan menü), varsayılan değerleri ayarlayabilir, girdileri temizleyebilir veya değişiklikleri kısıtlayabilirsiniz. Koşullu kurallarla, farklı alanların değerleri arasındaki bağımlılıkları temel alan bir alana kurallar uygulayabilirsiniz. Ayrıca, bir alanı veya kuralın kapsamını değiştirebilecek kişileri yalnızca gruba uygulanacak şekilde kısıtlayabilirsiniz.
İş öğesi kuralları tek bir koleksiyon olarak mevcut değildir. Kurallar aslında dinamik olarak oluşturulur ve farklı veri kaynaklarından birleştirilir. Birleştirme mantığı basit bir mantıktır ve aynı kuralları birleştirir, ancak çakışan kuralları kırpmaz.
Kuralları atlama
Genel olarak, kullanıcılar iş öğesini değiştirdiğinde tüm iş öğeleri kural altyapısı tarafından doğrulanır. Ancak, belirli senaryoları desteklemek için, iş öğesi güncelleştirmelerinde kuralları atlama proje düzeyi izni atanmış kullanıcılar, iş öğelerini kurallar değerlendirilmeden kaydedebilir.
Kurallar iki yoldan biriyle atlanabilir. birincisi İş Öğeleri aracılığıyla yapılır- REST API'yi güncelleştirin ve parametresini bypassRules olarak trueayarlayın. İkincisi, bypassrules modunda başlatılarak (ile başlatılır WorkItemStore ) istemci nesne modeli üzerinden WorkItemStoreFlags.BypassRulesyapılır.
Sistem alanları ve özel kurallar
Sistem alanlarında Sistem vardır.Ad başvuru adları, örneğin System.Title ve System.State.
Aşağıdaki sistem alanlarının bir değere sahip olması gerekir: Alan Kimliği, Değiştirme Tarihi, Oluşturma Tarihi, Oluşturan, Durum ve Neden.
Kural altyapısı, aşağıdakiler dışında ayar koşullarını veya eylemlerini sistem alanlarıyla kısıtlar:
Durum ve Neden alanlarını salt okunur yapabilirsiniz.
Kuralların çoğunu Başlık, Atanan, Açıklama ve Değiştiren alanlarına uygulayabilirsiniz.
Devralma işlemi için kural kullanıcı arabiriminin açılan menüsünde listelenen bir alan görmüyorsanız, bunun nedeni budur. Örneğin, alan yolunu (System.AreaPath) bir koşula göre salt okunur hale getirmeye çalışırsanız, Alan Yolu alanı seçim için kullanılamaz. Bir sistem alanı belirtebiliyor olsanız bile, kural altyapısı kuralı kaydetmenizi kısıtlayabilir.
Varsayılan ve kopyalama kuralları
Varsayılan ve kopyalama kuralları, iş öğesi alanlarının değerlerini değiştirir. Varsayılan değerleri belirtme, alanları temizleme, alanların tanımlanmasını gerektirme ve daha fazlası gibi çalışma zamanı davranışını ve kısıtlamalarını tanımlar.
Bu kuralların uygulanmasını, kullanıcı veya grup üyeliği kuralı kısıtlamaları bölümünde açıklandığı gibi geçerli kullanıcının grup üyeliğine göre kısıtlayabilirsiniz.
Bu kural eylemlerinin çoğu herhangi bir koşul seçimiyle uygulanabilir.
Devralınan işlem eylemi
Açıklama
Copy the value from...
Geçerli alana kopyalanacak değeri içeren başka bir alanı belirtir.
Clear the value of...
İçeren herhangi bir değerin alanını temizler.
Use the current time to set the value of ...
Bir alanın saatini geçerli kullanıcının saat ayarına göre ayarlar.
Bu kurallar varsayılanları ayarlamayı, değerleri bir alandan diğerine kopyalamayı veya bir alan değerinin belirtilen desenle eşleşmesini zorunlu kılmayı destekler. Söz dizimi yapısı ve örnekleri için bkz . Varsayılan değer tanımlama veya bir değeri alana kopyalama.
XML öğesi
Kullanım
COPY
Kullanıcı bir iş öğesi oluşturduğunda veya değiştirdiğinde, belirtilen değeri bir alana kopyalar.
Kullanıcı bir iş öğesi oluşturduğunda veya değiştirdiğinde boş olan bir alan için bir değer belirtir. Bir alan zaten bir değere DEFAULT sahipse, kural yoksayılır. Varsayılan kurallar yalnızca alanın değeri şu anda boşsa Is yürütülür. Desteklenen değerler arasında geçerli saat (from = "clock"), geçerli kullanıcı (from = "currentuser"), değişmez değer (from = "value" value = "literal") veya başka bir alanın değeri (from = field field = "referenceNameField").
XML
<FIELDrefname="MyCorp.Priority"name="Priority"type="String"
<HELPTEXT>Specify the severity of the problem</HELPTEXT
<ALLOWEDVALUES
<LISTITEMvalue="P1"/
<LISTITEMvalue="P2"/
<LISTITEMvalue="P3"/
</ALLOWEDVALUES
<DEFAULTfrom="value"value="P3"/
</FIELD
SERVERDEFAULT
Alan değerini tanımlamak için sunucu saatini veya geçerli kullanıcıyı belirtir.
Kısıtlama kuralları bir alanın değerini değiştirmeyi kısıtlar. Bir iş öğesi için geçerli durumları tanımlar. Her kısıtlama tek bir alanda çalışır. Kısıtlamalar iş öğesi kaydetme işleminde sunucuda değerlendirilir ve herhangi bir kısıtlama ihlal edilirse kaydetme işlemi reddedilir.
Bu kuralların uygulanmasını, kullanıcı veya grup üyeliği kuralı kısıtlamaları bölümünde açıklandığı gibi geçerli kullanıcının grup üyeliğine göre kısıtlayabilirsiniz.
Bu kural eylemlerinin çoğu herhangi bir koşul seçimiyle uygulanabilir.
Devralınan işlem eylemi
Açıklama
Hide the field... Yalnızca bir grup üyeliği koşulu seçildiğinde kullanılabilir.
Alanın iş öğesi formunda gösterilmemesi için geçerli kullanıcının alanın değerini değiştirme becerisini kaldırmayı belirtir.
Make read-only
Bir alanın değiştirilmesini engeller. Bu kuralı belirli koşullar altında uygulamak isteyebilirsiniz. Örneğin, bir iş öğesi kapatıldıktan sonra, raporlama amacıyla verileri korumak için bir alanı salt okunur yapmak istersiniz.
Varsayılan alanın salt okunur olduğunu belirtmek için, Alanı düzenle iletişim kutusunda Seçenekler sekmesini belirtin.
Make required
Kullanıcının alan için bir değer belirtmesini gerektirir. Kullanıcılar, tüm gerekli alanlara değer atamadan bir iş öğesini kaydedemez.
Varsayılan alanın gerekli olduğunu belirtmek için, Alanı düzenle iletişim kutusunda Seçenekler sekmesini belirtin.
XML öğesi
Kullanım
ALLOWEDVALUES
Alan için izin verilen değerlerin listesini tanımlar. İzin verilen değerler, iş öğesi formlarındaki bir alan listesinde ve sorgu oluşturucusunda seçim için kullanılabilen değerlerdir. Bu değerlerden birini seçmelisiniz.
CANNOTLOSEVALUE
Bir değer belirtildikten sonra kullanıcıların bir değerin alanını temizlemesini engeller. Bu öğe geçerli alan değerini tutar ve temizlenemez veya boş yapılamaz.
Kullanıcıların bir değer içerdiğinde alanın değerini değiştirmesini engeller. Kullanıcı iş öğesini bu alanda bir değerle kaydettiğinde, değer artık değiştirilemez. Dondurulmuş alan, değişiklikler işlendikten sonra boş olmayan bir değerle değiştirilemez. Ancak, alanı el ile temizleyebilir, iş öğesini kaydedebilir ve sonra farklı bir değer belirtebilirsiniz.
içerdiği herhangi bir değerin alanını temizler ve kullanıcı iş öğesini kaydettiğinde alanı salt okunur yapar. ile READONLYkullanmamalısınızEMPTY. EMPTYöncelikli olarak durum geçişi sırasında öğenin geçiş yaptığı duruma uygulanan alanları temizlemek için kullanılır.
Dize alanına yapılan girişleri belirtilen karakter veya sayı desenine uymaya zorlar. Birden çok MATCH öğe tanımlarsanız, değer belirttiğiniz desenlerden herhangi biri ile eşleşiyorsa geçerli kabul edilir. En az bir öğe başarılı olursa, alanın geçerli bir değeri vardır.
Alan için yasaklanmış değerlerin listesini tanımlar. Belirli bir alan için birden çok ALLOWEDVALUES ve/veya PROHIBITEDVALUES kural geçerliyse, geçerli değerlerin tam listesi izin verilen tüm değer listelerinin (veya izin verilen değer listeleri yoksa, eksi, fark ayarla) her şeyin kesişimidir ve yasaklanan tüm değer listelerinin birleşimidir.
READONLY
Bir alanın değiştirilmesini engeller. Bu kuralı belirli koşullar altında uygulamak isteyebilirsiniz. Örneğin, bir iş öğesi kapatıldıktan sonra, raporlama amacıyla verileri korumak için bir alanı salt okunur yapmak istersiniz.
Bir alanı da salt okunur hale getirdiğinden EMPTYEMPTY öğesiyle kullanmayınREADONLY. Bu öğelerin birleştirilmesi tutarsız sonuçlar verebilir.
Ayrıca, öğe ReadOnly özniteliğini kullanarak Control bir alanın iş öğesi formundan salt okunur olarak görünmesini sağlayabilirsiniz. Alan, iş öğesi formu aracılığıyla değil, diğer istemciler tarafından yazılabilir.
Seçim listeleri, bir kullanıcının Dize veya Tamsayı alanı için seçebileceği veya seçemeyecekleri değerleri tanımlar. Seçim listesinde tanımlanan değerler, bir iş öğesi formunda ve sorgu düzenleyicisinde görünür.
Devralınan bir işlem için, seçme listeleri Alanı düzenle iletişim kutusu aracılığıyla tanımlanır.
Alanı düzenle iletişim kutusu
Açıklama
Seçim listesi alanı için tanım sekmesi
Alan için izin verilen değerlerin listesini tanımlar. İzin verilen değerler, iş öğesi formlarındaki bir alan listesinde ve sorgu oluşturucusunda seçim için kullanılabilen değerlerdir. Bu değerlerden birini seçmelisiniz.
Kullanıcıların kendi girdilerini belirtmesine izin vermek için Seçenekler sekmesinde Kullanıcıların kendi değerlerini girmesine izin ver onay kutusunu işaretleyin
Alan için önerilen değerlerin listesini tanımlar. Önerilen değerler, iş öğesi formlarındaki bir alan listesinde ve sorgu oluşturucusunda seçim için kullanılabilen değerlerdir. Listedeki değerlere ek olarak başka değerler de girebilirsiniz.
Aşağıdaki tabloda listelenen XML öğelerini kullanarak seçim listeleri tanımlarsınız. Söz dizimi yapısı ve örnekler için bkz . Seçme listelerini tanımlama.
Listeleri birleştirebilir, listeleri genişletebilir veya sözleşme yapabilirsiniz. Ayrıca, kullanıcı veya grup üyeliği kuralı kısıtlamaları bölümünde açıklandığı gibi geçerli kullanıcının grup üyeliğine göre bu kuralların uygulanmasını kısıtlayabilirsiniz.
XML öğesi
Açıklama
ALLOWEDVALUES
Alan için izin verilen değerlerin listesini tanımlar. İzin verilen değerler, iş öğesi formlarındaki bir alan listesinde ve sorgu oluşturucusunda seçim için kullanılabilen değerlerdir. Bu değerlerden birini seçmelisiniz.
ALLOWEXISTINGVALUE
Mevcut değerlere izin vermek için alanını tanımlar. Bu öğe, geçerli olmasalar bile zaten var olan alan değerlerinin kullanılmasına izin verir. Tüm yeni alan değerleri geçerli olmalıdır.
PROHIBITEDVALUES
Alan için yasaklanmış değerlerin listesini tanımlar.
SUGGESTEDVALUES
Alan için önerilen değerlerin listesini tanımlar. Önerilen değerler, iş öğesi formlarındaki bir alan listesinde ve sorgu oluşturucusunda seçim için kullanılabilen değerlerdir. Listedeki değerlere ek olarak başka değerler de girebilirsiniz.
Kimlik alanları ve doğrulama hataları
Üyeler ekipten ayrıldığında ve artık proje katkıda bulunanları olarak kaydedilmediğinde ortaya çıkabilecek doğrulama hatalarını önlemek için Atanan alanına ALLOWEXISTINGVALUE öğesini ekleyin.
XML
<FIELDname="Assigned To"refname="System.AssignedTo"type="String"syncnamechanges="true"reportable="dimension"><HELPTEXT>The user who is working on this work item</HELPTEXT><ALLOWEXISTINGVALUE /><VALIDUSER /><ALLOWEDVALUESexpanditems="true"filteritems="excludegroups"><LISTITEMvalue="Active" /><LISTITEMvalue="[project]\Contributors" /></ALLOWEDVALUES><DEFAULTfrom="field"field="System.CreatedBy" /></FIELD>
Koşullu alan değerleri veya değişiklikleri
Koşullu kurallar, belirli bir değere eşit olan veya eşit olmayan bir alanın değerine veya belirli bir alanın değerinde bir değişiklik yapılıp yapılmadığını temel alan bir eylem belirtir. Genel olarak koşullu kurallar, koşulsuz kurallar yerine önce uygulanır. Birden çok koşullu kural true olarak değerlendirildiğinde yürütme sırası şöyledir: When, WhenNot, WhenChanged, WhenNotChanged.
Alan başına birden çok koşullu kural belirtebilirsiniz. Ancak, koşullu kural başına yalnızca tek bir sürüş alanı belirtebilirsiniz.
Devralınan koşul
Açıklama
The value of ... (equals) [Ne zaman]
Başka bir alan belirli bir değere sahip olduğunda geçerli alana uygulanacak bir veya daha fazla kural belirtir.
A change was made to the value of ... [WhenChanged]
Belirli bir alanın değeri değiştirildiğinde geçerli alana bir veya daha fazla kural uygular.
The value of ... (not equals) [WhenNot]
Başka bir alanın belirli bir değeri olmadığında geçerli alana bir veya daha fazla kural uygular.
No change was made to the value of ... [WhenNotChanged]
Belirli bir alanın değeri değiştirilmediğinde geçerli alana bir veya daha fazla kural uygular.
Devralınan eylem
Açıklama
Clear the value of ... Copy the value from ... Make read-only ... Make required ... Set the value of ... Use the current time to set the value of ... Use the current user to set the value of ...
Belirli bir alanda gerçekleştirecek eylemi belirtir.
Aşağıdaki XML öğeleri, diğer kuralların ne zaman değerlendirileceğini belirlemek için kullanılır. Alan başına birden çok koşullu kural belirtebilirsiniz. Ancak, koşullu kural başına yalnızca tek bir sürüş alanı belirtebilirsiniz. Koşullu kuralları iç içe yerleştiremezsiniz. Her işlem modeli için desteklenen eylemler aşağıdaki tabloda listelenenleri içerir.
Söz dizimi yapısı ve örnekleri için bkz . Koşullu tabanlı değerler ve kurallar atama. Bu kuralların uygulanmasını, kullanıcı veya grup üyeliği kuralı kısıtlamaları bölümünde açıklandığı gibi geçerli kullanıcının grup üyeliğine göre kısıtlayabilirsiniz.
XML öğesi
Kullanım
WHEN
Başka bir alan belirli bir değere sahip olduğunda geçerli alana uygulanacak bir veya daha fazla kural belirtir. Üst öğe geçerli alanı tanımlar.
Belirtilen alan belirtilen değere sahip olduğunda, bu öğedeki kurallar geçerli alana uygulanır.
WHENCHANGED
Geçerli alana bir veya daha fazla kuralın uygulanacağı koşulu belirtir. Bir iş öğesinde yapılan düzeltmede başka bir alanın değeri değiştirildiğinde kurallar geçerli alana uygulanır. Üst öğe geçerli alanı tanımlar.
WHENNOT
Geçerli alana bir veya daha fazla kuralın uygulanacağı koşulu belirtir. Kurallar, başka bir alanın değeri değiştiğinde geçerli alana uygulanır. Üst öğe geçerli alanı tanımlar.
Belirtilen alan belirtilen değeri içermiyorsa, bu öğedeki kurallar geçerli alana uygulanır.
WHENNOTCHANGED
Geçerli alana bir veya daha fazla kuralın uygulanacağı koşulu belirtir. Kurallar, bir iş öğesinde yapılan düzeltmede başka bir alanın değeri değiştirilmediğinde geçerli alana uygulanır. Üst öğe geçerli alanı tanımlar.
Kullanıcı veya grup üyeliği kuralı kısıtlamaları
Geçerli kullanıcının üyeliğine göre bir kuralın uygulanmasını kısıtlayabilirsiniz. Kuralın kapsamını tek bir kullanıcı değil Azure DevOps güvenlik grubu olarak belirlemenizi öneririz, ancak ikincisini belirtebilirsiniz. Kuralın kapsamını birden çok grup olarak belirlemek için, kullanmak istediğiniz grup kümesini içeren bir üst Azure DevOps grubu oluşturmanız gerekir.
İşlem uygulaması
İpucu
Ortaya çıkabilecek kural değerlendirme sorunlarını önlemek için Microsoft Entra Id veya Active Directory güvenlik gruplarını değil Azure DevOps güvenlik gruplarını belirtin. Daha fazla bilgi için bkz . Varsayılan kurallar ve kural altyapısı.
Aşağıdaki tabloda belirtildiği gibi, geçerli kullanıcının üyeliğini temel alan bir kuralı kısıtlamak için Devralınan işlem için iki koşuldan birini belirtirsiniz. Bu kurallar Azure DevOps 2020 ve sonraki sürümler için etkindir.
Şunlar için geçerlidir:
Kural
Koşul
Current user is a member of group ... Current user is not member of group ...
Eylem
Hide the field ... Make read-only ... Make required ... Restrict the transition to state ...
Geçerli kullanıcının üyeliğine göre bir kuralı kısıtlamak için kural öğesinde for veya not özniteliklerini belirtirsiniz. Kuralın kapsamını belirtirsiniz. Kuralın kapsamını birden çok grup olarak belirlemek için, kullanmak istediğiniz grup kümesini içeren bir üst Azure DevOps grubu oluşturmanız gerekir.
Senaryo
Kullanım
Bir alanı yalnızca belirtilen bir grup için gerekli hale getirme
Bir gruba kural uygulamak için kullanın for . Bu örnek, İkinci Onaylayan alanını tamamlamak için Junior Analysts grubundaki herhangi bir kullanıcının olmasını gerektirir.
Bir alanın değiştirilmesini bir kullanıcı grubuyla kısıtlama
Bir grubu kuraldan dışlamak için kullanın not . Bu örnek, Önceliklendirme Açıklaması alanını, Önceliklendirme Komitesi grubundaki kullanıcılar dışında herkes için salt okunur olarak tanımlar.
Bir alanı başkaları için değil bazı kullanıcılar için gerekli hale getirme
Bazılarına for aynı anda kural uygulamak için ve not birleşimini kullanın, başkalarına değil. Bu örnek Önem Derecesi'ni Proje Üyeleri grubundaki kullanıcılar için gerekli bir alan olarak tanımlar, ancak Proje Yöneticileri grubundaki kullanıcılar için değil. Bir kullanıcı her iki grupta da yer alırsa, for deyimi zorlanır ve alan gerekli olur.
Kullanıcılara veya gruplara başvurmak için belirteçleri kullanma
Kimlik veya kişi seçici alanları hem kullanıcılara hem de gruplara başvuran değerleri kabul edebilir. Bir kuralı bir grupla kısıtladığınızda, grubun etki alanını veya kapsamını belirtirsiniz. Bazı değerler için belirteçleri kullanabilirsiniz.
[ProjectName], örneğin [Fabrikam], [FabrikamFiber], [Projem]
[OrganizationName], örneğin [fabrikam], [myorganization]
[CollectionName], örneğin [fabrikam], [myorganization]
Projeniz veya kuruluşunuz için kullanılabilir kapsamlar hakkında bilgi edinmek için Proje Ayarları İzin Grupları veya Kuruluş Ayarları>İzin>Grupları sayfasına gidin, listeyi gerektiği gibi filtreleyebilirsiniz.>> Örneğin, aşağıdaki görüntüde Azure DevOps'a göre filtrelenmiş bir listeye ilk dört giriş gösterilmektedir. Daha fazla bilgi için bkz . Proje düzeyi izinlerini değiştirme veya Proje koleksiyonu düzeyi izinlerini değiştirme.
Belirteçlere örnek olarak şunlar verilebilir:
[Project]\Contributors, [Project]\Fabrikam Team, [Project]\Project Approvers gibi [Project], [Project] belirteci bir proje için tanımlanmış bir grubu belirtir. Bu, bir takıma, varsayılan veya özel bir güvenlik grubuna ya da projeye eklenmiş bir Active Directory grubuna karşılık gelebilir.
[GLOBAL], koleksiyon kapsamlı bir gruba başvurmak için, örneğin[GLOBAL]\Project Collection Administrators Use [GLOBAL] to reference a collection-scoped security group, örneğin Project Collection Administrators group or a Windows group added to a collection. Örneğin:
[Team Foundation] sunucu kapsamlı bir gruba başvurmak için, örneğin, [Team Foundation]\Team Foundation Yöneticileri Sunucu düzeyinde bir gruba eklediğiniz yerleşik grup veya Windows grubu gibi sunucu kapsamlı bir gruba başvurmak için [Team Foundation] kullanın. Örneğin:
XML
<FIELDname="Title"><READONLYfor="[Team Foundation]\Team Foundation Valid Users"/></FIELD>
Sunucu kapsamlı bir gruba başvurmak için [DomainName] örneğin, [Team Foundation]\Team Foundation Administrators Etki alanı-nitelenmiş hesap adı, örneğin aşağıdaki örnekte gösterilen, bir etki alanı kullanıcısına veya grubuna başvurmak için kullanılabilir. Bazı kurallar yalnızca grupları destekler ve etki alanı kullanıcılarına başvurmayı desteklemez.
XML
<LISTITEMvalue="FABRIKAM\Christie Church's Direct Reports"/>
Not
[Project], [GLOBAL] ve [Team Foundation] olduğu gibi kullanılır. Bunları projenin, koleksiyonun veya sunucu adının adıyla değiştirmezsiniz.
Projeniz veya koleksiyonunuz için kullanılabilir kapsamlar hakkında bilgi edinmek için Proje Ayarları İzin Grupları veya Koleksiyon Ayarları>İzin>Grupları sayfasına gidin.>> Listeyi gerektiği gibi filtreleyin. Örneğin, aşağıdaki görüntüde Azure DevOps'a göre filtrelenmiş bir listeye ilk dört giriş gösterilmektedir. Daha fazla bilgi için bkz . Proje düzeyi izinlerini değiştirme veya Proje koleksiyonu düzeyi izinlerini değiştirme.
Tüm kullanıcıların ve grupların bu belirteçlerden biri tarafından nitelenmiş olması gerekir. Örneğin, belirtilen grubu geçerli bir belirteçle nitelemediğinden aşağıdaki XML geçerli değildir.
Varsayılan güvenlik grupları hakkında daha fazla bilgi edinmek için bkz. İzinler ve gruplar
Kural değerlendirmesi
Bir iş öğesini değiştiren kullanıcının kullanıcı veya grup üyeliğini temel alan bir koşul belirten kurallar iki şekilde değerlendirilir. Kural değerlendirildiğinde, uygulamanın bu kullanıcının belirtilen grubun üyesi olup olmadığını denetleyerek kuralın geçerli kullanıcıya uygulanıp uygulanmadığını belirlemesi gerekir.
İş öğesi web portalından, REST API'den veya azure boards komutundan değiştirilirken, Microsoft Entra Kimliği'ne veya Active Directory'ye bir istek yapılır. Bu işlem için hiçbir sorun oluşmaz.
WIT İstemci Nesne Modeli'ni kullanarak Visual Studio, Excel veya başka bir özel araçtan iş öğesi değiştirilirken, üyeliği değerlendirme isteği istemci önbelleğini temel alır. İstemci önbelleği Active Directory gruplarının farkında değildir.
Not
GIT kullanan projeler için Visual Studio 2019 Takım Gezgini REST API'lerini kullanmak üzere yeniden yazıldı.
Kullanıcıların çeşitli istemcilerden iş öğelerini güncelleştirmesiyle ilgili sorunları önlemek için Active Directory grupları yerine Azure DevOps güvenlik gruplarını belirtin. Active Directory grubuna karşılık gelen bir Azure DevOps güvenlik grubunu kolayca oluşturabilirsiniz. Nasıl yapılacağını öğrenmek için bkz . Kullanıcı veya grup ekleme veya kaldırma, güvenlik gruplarını yönetme.
Not
WIT İstemcisi OM kullanım dışı bırakıldı. 1 Ocak 2020 itibarıyla Azure DevOps Services ve Azure DevOps Server 2020'de çalışırken artık desteklenmez.
Kuralların değerlendirilme sırası
Kurallar genellikle listelendikleri sırayla işlenir. Ancak, tüm kuralların değerlendirilmesi için tam sıra tam olarak belirleyici değildir.
Bu bölümde koşullu, kopyalama ve varsayılan kurallar uyguladığınızda beklenen davranış ve etkileşimler açıklanmaktadır.
Aşağıdaki adımlarda, Azure DevOps'un gerçekleştirdiği etkileşimler doğru sırada ve bir iş öğesi formunun kullanıcısı tarafından gösterilmektedir. Yalnızca 1, 8 ve 13. adımlar kullanıcı tarafından gerçekleştirilir.
Web portalı veya Visual Studio Ekip Gezgini gibi bir Azure DevOps istemcisinden kullanıcı yeni bir iş öğesi oluşturur veya var olan bir iş öğesini düzenler.
Alan varsayılanlarını doldurun. Tüm alanlar için, alana atanan ve koşullu yan tümcenin parçası olmayan varsayılan değerleri uygulayın.
Alan değerlerini kopyalayın veya ayarlayın. Tüm alanlar için, bir değeri kopyalamak veya koşullu yan tümcenin parçası olmayan bir alanın değerini ayarlamak için herhangi bir kural uygulayın.
Eşleşen bir When koşullu kuralı olan tüm alanlar için, alan değeri ayarlamak veya kopyalamak için kurallar uygulayın.
Eşleşen koşullu kuralı olmayan tüm alanlar için, alan değeri ayarlamak veya kopyalamak için kurallar uygulayın.
Sistem her zaman When kurallarından önce ne zaman değil kurallarını işler.
1. adımdan bu yana değerleri değiştirilmiş olan ve Değiştirildiğinde kurallarını içeren tüm alanlar için, alan değerini ayarlamak veya kopyalamak için kurallar uygulayın.
Kullanıcının düzenlemeye başlamasına izin verin.
Kullanıcı bir alan değerini değiştirir ve ardından odağı alandan taşır.
Bu alan için yeni değerle eşleşen when kurallarını işleyin.
Bu alan için yeni değerle eşleşen tüm When Not kurallarını işleyin.
Bu alan için yeni değerle eşleşen tüm Değiştirildiğinde kurallarını işleyin.
Kullanıcıya düzenleme özelliğini döndür.
Kullanıcı değişiklikleri veri deposuna kaydeder.
Tüm alanlar için, alan için doğrudan veya dolaylı olarak koşullu bir kural altında tanımlanan tüm Use the current time to set the value of ... eylemleri uygulayın.
Kurallar genellikle listelendikleri sırayla işlenir. Ancak WHEN, DEFAULT ve COPY öğelerini kullandığınızda ek davranışlar uygulanabilir. Aşağıdaki adımlarda, Azure DevOps'un gerçekleştirdiği etkileşimler doğru sırada ve bir iş öğesi formunun kullanıcısı tarafından gösterilmektedir. Yalnızca 1, 8 ve 13. adımlar kullanıcı tarafından gerçekleştirilir.
Web portalı veya Visual Studio Ekip Gezgini gibi bir Azure DevOps istemcisinden kullanıcı yeni bir iş öğesi oluşturur veya var olan bir iş öğesini düzenler.
Alan varsayılanlarını doldurun. Tüm alanlar için, dışında veya WHEN kuralları dışında belirtilen TÜM DEFAULT kurallarını uygulayın.
Alan değerlerini kopyalayın. Tüm alanlar için, WHEN yan tümcelerinin dışındaki COPY kurallarını kullanın.
Eşleşen bir WHEN kuralına sahip tüm alanlar için, önce DEFAULT ve ardından COPY kurallarını içeride yapın.
EŞLEŞEN BIR WHENNOT kuralına sahip tüm alanlar için, önce DEFAULT ve ardından COPY kurallarını içeride yapın.
Sistem her zaman WHEN kurallarını WHENNOT kurallarından önce işler.
1. adımdan bu yana değerleri değiştirilmiş olan ve WHENCHANGED kuralları içeren tüm alanlar için, önce DEFAULT ve ardından COPY kurallarını içeride yapın.
Kullanıcının düzenlemeye başlamasına izin verin.
Kullanıcı bir alan değerini değiştirir ve ardından odağı alandan taşır.
Bu alan için yeni değerle eşleşen herhangi bir WHEN kuralı oluşturun.
Bu alan için yeni değerle eşleşen tüm WHENNOT kurallarını oluşturun.
Bu alan için yeni değerle eşleşen tüm WHENCHANGED kurallarını oluşturun.
Kullanıcıya düzenleme özelliğini döndür.
Kullanıcı değişiklikleri veritabanına kaydeder.
Tüm alanlar için, alan için bir WHENveya WHENNOT kuralı altında doğrudan veya dolaylı olarak tanımlanan SERVERDEFAULT işlemlerini gerçekleştirin.
Tuş vuruşu girişleri ve kural değerlendirmesi
Sistem, bir kullanıcı iş öğesi formu aracılığıyla bir alana her tuş vuruşu girdiğinde alan için yeni bir değer ayarlar. Bu, kuralın önkoşul koşulları karşılandığında koşullu kuralın beklenmedik bir şekilde gerçekleşebileceği anlamına gelir.
Aşağıdaki XML örneğinde sistem, Durum alanına "Yeniden Onaylandı" yazdığınızda MyCorp.SubStatus'ı boşaltıyor çünkü kullanıcı onaylanan son değer "Onayla" olmasa bile KULLANıCı "e" harfini yazdığı anda WHEN kuralı oluşuyor. Bu nedenle, koşullu kuralları kullanırken dikkatli düşünün.
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.