Kurallar Nasıl Değerlendirilir
Bir alana birden çok kural uygulandığında kuralların nasıl değerlendirildiği hakkında biraz fikir edinebilirsiniz. Kuralların nasıl değerlendirildiği, tamamen kararlı değildir. Bu bölüm <WHEN*>, <DEFAULT> ve <COPY> kurallarını kullanırken, beklenen davranış ve etkileşimleri tanımlar.
Aşağıdaki adımlar, Team Foundation Server ve çalışma öğesi formunun kullanıcısı tarafından gerçekleştirilen etkileşimleri doğru sırada gösterir. Kullanıcı tarafından sadece 1., 8. ve 13. adımlar gerçekleştirilir.
Visual Studio kullanıcı arayüzünü kullanarak, kullanıcı yeni bir iş öğesi oluşturur veya varolan iş öğesini düzenler.
Alan varsayılanlarını doldurun. Tüm alanlar için, <WHEN*> kuralları dışında kalan herhangi bir <DEFAULT> kuralı kullanın.
Alan değerlerini kopyalayın. Tüm alanlar için, <WHEN*> tümceleri dışında kalan herhangi bir <COPY> kuralını kullanın.
<WHEN> kuralı eşleşen tüm alanlar için, içeride önce <DEFAULT> ve sonra <COPY> kurallarını yapın.
<WHENNOT> kuralı eşleşen tüm alanlar için, içeride önce <DEFAULT> ve sonra <COPY> kurallarını yapın.
Not
Team Foundation Server her zaman <WHEN> kurallarını <WHENNOT> kurallarından önce işler.
Adım 1'den itibaran değerleri değiştirilen ve <WHENCHANGED> kurallarını içeren alanlar için, içeride önce <DEFAULT> ve sonra <COPY> kurallarını yapın.
Kullanıcının düzenlemeye başlamasına izin verin.
Kullanıcı, alan değerini değiştirir ve alandan odağı taşır.
Yeni değerle eşleşen alan için, herhangi bir <WHEN> kuralını başlatın.
Yeni değerle eşleşen alan için, herhangi bir <WHENNOT> kuralını başlatın.
Yeni değerle eşleşen alan için, herhangi bir <WHENCHANGED> kuralını başlatın.
Kullanıcıya düzenleme yetkisini geri verin.
Kullanıcı değişiklikleri veritabanına kaydeder.
Tüm alanlar için, <WHEN> veya <WHENNOT> kuralı altında alan için doğrudan veya dolaylı olarak tanımlanan <SERVERDEFAULT> işlemlerini gerçekleştirin.
Tuş Vuruş İşlemi
Kullanıcı iş öğesi formunu değiştirmek için grafik kullanıcı arayüzünü kullandığında, alan için bir tuş vuruşu her girildiğinde yeni bir değer ayarlanır. Bu, kuralların ön koşulları ne zaman karşılanırsa, <WHEN*> kuralının beklenmedik şekilde gerçekleşebildiği anlamına gelir.
Aşağıdaki XML örneğinde, siz Status alanına “Tekrar Onaylandı” yazarken, SubStatus boşaltılacaktır; çünkü istenen son değer “Onayla” olmasa bile kullanıcı Onaylandı'daki "e" harfini yazar yazmaz, <WHEN*> kuralı gerçekleşir. Bu nedenle, koşullu kuralları kullanırken dikkatle düşünün.
<FIELD refname="MyCorp.SubStatus" />
<WHEN field="MyCorp.Status" value="Approve" >
<EMPTY />
</WHEN>
</FIELD>