如何獲取Drools的when/Lhs子句中的規則名稱?在'when'子句中獲取規則名稱:Drools
回答
不要將ID附加到規則的名稱,使用一個類,您可以將所有感興趣的規則ID定義爲常量並使用這些常量,這樣您還可以非常輕鬆地跟蹤引用所有這些ID的位置。
rule "MyRule"
when
eval((com.test.Rules.RULE1_ID) == 123)
then
...
end
或者,如果你有短短的規則,你可以使用標誌部分User
指示是否規則已經爲各自的用戶或者沒有被執行,然後你的支票會是什麼樣子User(!myRuleHasRun)
。
再次感謝:)這種方法會確保規則只被解僱一次嗎?請原諒這個問題,但我似乎不太清楚上面提到的概念:)我的規則不是靜態的,我也使用DSL來映射規則。所有規則名稱都是基於它包含的條款[要求]生成的。再次感謝您對幫助我解決問題的興趣:)我錯過了什麼? – Avinash 2013-04-10 10:57:22
第一種方法解決了獲取執行規則的id的問題,您仍然必須像以前一樣進行檢查。第二種方法完全解決了你的問題,那就是需要完成的檢查。默認情況下,標誌必須是'false',當規則啓動時它必須更新爲'true',並且顯然會持續。因爲我不知道所有的細節,所以我們很難指出需要做什麼。你確定你想要非靜態規則嗎?你爲什麼需要它們是非靜態的?與最初的話題無關的問題,但你必須考慮。 – 2013-04-10 11:08:05
我確實需要他們是動態的。他們是要求的一部分。我會試着說出你的話,並保持你的發言。感謝您的關注:)非常感謝! – Avinash 2013-04-10 11:17:02
- 1. 在drools的「then」子句中獲取規則名稱
- 2. drools - 根據名稱獲取規則的內容?
- 3. 如何在drools規則的'when'部分中調用Java函數?
- 4. 激活Drools中子對象的規則
- 5. 將SQL語句轉換爲Drools規則
- 6. 獲取錯誤:相關名稱「常規」在FROM子句中多次指定
- 7. Drools規則解僱
- 8. Drools規則分類
- 9. Drools的規則流
- 10. drools規則繼承
- 11. Drools如何從大規則中獲取較小的可讀規則
- 12. Drools中的嵌套規則
- 13. Drools規則多個規則流組
- 14. 在不使用日程過濾器的情況下通過規則名稱在Drools中引發特定規則
- 15. scala:規則不能在drools中執行
- 16. 在Drools Expert中組合規則邏輯
- 17. Drools:時間限制規則
- 18. Drools規則流程設計
- 19. Drools Planner規則剖析
- 20. Drools規則編譯性能
- 21. Drools來規則excel表
- 22. Drools動態更新規則
- 23. 從句子中提取名稱
- 24. Drools如何獲取規則執行的對象?
- 25. Drools guvnor,避免評估並在運行時激活按名稱規則
- 26. 在DROOLS的WHEN條件中使用OR
- 27. Lexer規則的句子
- 28. magento以規則名稱
- 29. Drools在創建規則之前規則觸發事件
- 30. 在ExpandableListView中獲取子元素的名稱或名稱
您能否向我們解釋您爲什麼需要它? – 2013-04-10 09:30:15
感謝您的回覆!我的規則名稱附有一個唯一的「ID」。我使用這個'id'來確保規則只對給定的用戶觸發一次[我有一張表,它維護着一個給定用戶觸發的規則列表]。如果這個特定的'userId'和'Id'出現在數據庫中,則不會評估該規則。該方法是否存在任何水?有其他方法嗎?打開建議:) – Avinash 2013-04-10 09:41:46