2012-05-30 14 views
9

Kurallar arasında hiyerarşi (yalnızca yürütme sırasını değil) tanımlamanın bir yolu olup olmadığını kontrol etmenin bir yolu olup olmadığını kontrol ettim - diğer bir deyişle, üst kuralı tetiklediyse aşağıdakiler değerlendirilmemelidir vb ... Bozukluklar - kural hiyerarşisi ve koşullu yürütme

Information in this thread is an option but it is essentially IF/THEN/ELSE

farklı bir seçenek var mı? Sorunuzu anlıyorum ama neye ihtiyacınız elde olabilecek Aktivasyon Grupları ve geleneksel çözüm stratejilerine bir arada kullanarak eğer

sayesinde

cevap

14

emin değilim. Örneğin, A, B ve C olmak üzere 3 kuralınız olduğunu varsayalım. Kullanmak istediğinizde, bu düzende kendilerine önceliğe öncelik vermeyi tercih edersiniz, ve bir kez yürütüldüğünde, o grupta başka bir kural yürütmemelidir. . Böyle bunları tanımlayabilirsiniz:

rule A 
    salience 30 
    activation-group "x" 
... 

rule B 
    salience 20 
    activation-group "x" 
... 

rule C 
    salience 10 
    activation-group "x" 
... 

atlama 'A aktive eğer, bunların aktive olsaydı C, ardından B izlenerek, ilk ateş edeceğini garanti eder. Aktivasyon Grubu, kurallardan biri ateşlendiğinde, o gruptaki diğer etkin kuralların iptal edileceğini garanti eder. Öyleyse, oturumunuzda, B ve C kurallarının aktive olduğunu, fakat A'yı değil, B'nin ateş edeceğini ve C'nin iptal edileceğini söyleyelim.

Lütfen etkinleştirme gruplarının kuralların daha sonra yeniden etkinleştirilmesini engellemediğini unutmayın. Sadece grup ateşindeki kurallardan biri olan gündemdeki tüm aktivasyonları iptal eder.