2012-05-30 10 views
9

मैं सोच रहा था कि नियमों के बीच पदानुक्रम (निष्पादन का आदेश न केवल) को परिभाषित करने और नियम निष्पादन को नियंत्रित करने का कोई तरीका है - यानी यदि मूल नियम निकाल दिया गया है तो नीचे दिए गए लोगों का मूल्यांकन नहीं किया जाना चाहिए आदि ...Drools - नियम पदानुक्रम और सशर्त निष्पादन

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

वहाँ एक अलग विकल्प है?

धन्यवाद

उत्तर

14

मैं अगर मैं अपने प्रश्न समझते हैं, लेकिन सक्रियण समूह और पारंपरिक संघर्ष समाधान रणनीतियों के संयोजन का उपयोग को प्राप्त हो सकता है कि तुम क्या जरूरत है यकीन नहीं है। उदाहरण के लिए, मान लीजिए कि आपके पास 3 नियम, ए, बी और सी हैं। आप कहें कि, उस क्रम में निष्पादन की प्राथमिकता देने के लिए कहें, और एक बार निष्पादित होने के बाद, उस समूह में कोई अन्य नियम निष्पादित नहीं होना चाहिए । आप उन्हें इस तरह परिभाषित कर सकते हैं:

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

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

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

प्रमुखता गारंटी देता है कि अगर एक सक्रिय करता है, यह पहली बार सक्रिय होगा, बी द्वारा पीछा किया, सी के बाद अगर वे सक्रिय रहे थे। सक्रियण समूह गारंटी देता है कि नियमों में से एक बार आग लगने के बाद, उस समूह के सभी अन्य सक्रिय नियम रद्द कर दिए जाएंगे। तो, मान लीजिए कि आपके सत्र में नियम बी और सी सक्रिय हैं, लेकिन ए नहीं, तो बी आग लग जाएगी और सी रद्द कर दिया जाएगा।

कृपया ध्यान दें कि सक्रियण समूह बाद में पुन: सक्रिय होने से नियमों को रोक नहीं सकते हैं। यह समूह की आग में नियमों में से एक समय में एजेंडा में वर्तमान में किसी भी सक्रियण को रद्द करता है।

संबंधित मुद्दे