استخدام جدول القرار في JBoss سال لعابه

قواعد. لقد عرفنا هذه الكلمة منذ الطفولة. أولاً ، يعلمنا الآباء كيفية القيام بالشيء الصحيح ، ثم نأتي إلى المدرسة ، حيث يفرض المعلمون قواعدهم الخاصة. في الجامعة ، نواجه مرة أخرى القواعد التي وضعها لنا المدرسون ومكتب العميد. عندما نكبر ، نبدأ في اتباع القوانين التي وضعتها الدولة. ما المشترك بين كل هذه القواعد؟ حقيقة أنه تم التحقق منها على مر السنين والعقود وحتى بعض الأجيال. تخيل كيف ستكون حياتنا إذا تم تغيير القواعد كثيرًا: كل أسبوع أو كل يوم!





, Mediascope, : , . . -.  , , . 





?

, . ( ) - . BRMS Business Rule Management System. ,

- , -. , - , - .





, , «», . . : , , , , . , !





BRMS . : IBM, Red Hat, Agiloft, SAS Bosch. – , . JBoss Drools. , , , , - DRL, Excel-. UI- . , UI Excel-.





- ?

- , . , , , . .





,   (gender).   (SEX).  ,  gender = male, «»  1.  2. DRL :





rule "Rule 1 Example 1"
      when
         $s: Respondent($s.gender == "male")
      then
         $s.addResult("SEX", "1");
end

 rule "Rule 2 Example 2"
      when
         $s: Respondent($s.gender == "female")
      then
         $s.addResult("SEX", "2");
 end
      
      



, ,  Gherkin. , (  when) , (  then).   Drools   Left Hand Side ( LHS), - Right Hand Side ( RHS). : Respondent fact,   Drools, .  gender  result. , , framework  .  $.





 Excel-:





حكم المثال في Excel
Excel

?

, , , , . ,  Drools  ,  Miscrosoft Excel OpenOffice,  CSV.  DRL-.





: .  RuleSet, –  RuleTable. , .





منطقة وضع القاعدة

 DRL- . - . . : 





  • RuleSet –  DRL.





  • Import – ,  Java-, , , java.lang.Math





  • Functions – ,  RuleSet’.  DRL-.





,  RuleTable, , ,  Drools   DRL-. .  nameforRuleTable.





منطقة وصف القاعدة

:





  • NAME – . .





  • DESCRIPTION – . . , . 





  • CONDITION –  Left Hand Side  ,  ACTION. .





  • ACTION – , .  addResult,  Map  . .  ACTION  Java-, . .





    ,  CONDITION  ACTION  . 





,  $s  Respondent. , , ,  Import.  CONDITION  , .  CONDITION-: ,  Import.





, ,  CONDITION   ACTION, . , . . (Text-Parameter-Result  ). . /, , Drools . .





?

, , . .





,  Respondent. – , . (, , ). , ,  Drools,  Respondent. ,  Map<String, String> result, . ,  Respondent  :





public class Respondent {

    public int id;
    public String gender;
    public Boolean isActive;
    public Integer age;
    public List<String> pets;
    public String city;
    public List<String> devices;
    public Map<String, String> properties;
    public Car car;
    public MobileBrand mobileBrand;
    public Household household;

    public Map<String, String> result = new HashMap<>();

    public void addResult(String key, String value) {
        result.put(key, value);
    }

//  getters, setters, constructor

}
      
      



, , . , , ?  isActive.  true – , false – .





قواعد تحديد جنس المستفتى

, : . , , ,  .  Respondent.  DRL:





rule "name_for_RuleTable_20"
	when
		$s: Respondent(isActive == true, gender == "male")
	then
		$s.addResult("SEX", "M");
end

rule "name_for_RuleTable_21"
	when
		$s: Respondent(isActive == true, gender == "female")
	then
		$s.addResult("SEX", "F");
end
      
      



 $param -  .  isActive == $param   isActive == true. .  Drools , . ,  gender.





. :





قواعد تحديد سمة الجنس والعمر

, - 17 18 . , .





, – . , . , ,  PHONE_SALES_PER  2019 . ,  $param . ,  MobileBrand   Import  .





قواعد تحديد نسبة المبيعات

, . ,  ACTION   $param, . .  in:





قواعد تحديد قطاع سوق الهواتف الذكية





:  SAMSUNG  APPLE,  PREMIUM. ,  HUAWEI  XIAOMI,  NOT_PREMIUM. ( ,    :) ) , . 





, ?  contains.  java.util.Collection.  Respondent   pets.  , . , , . « » – ,  $param .





حكم تحديد حيوان أليف

forall(<>){<>}.  . , . ,  ,  . . , , ,  param. , – ($s). , ,  Drools , - (city devices),  CONDITION  . 





تحديد المقاطعة وإرشادات نشاط الإنترنت
-

, – .  size:





قواعد تحديد عدد الأجهزة المملوكة

- , , . «-». Drools  :





قواعد تعريف التعليم

, . . ,  Car c  : , , . , , . , -, .  from:





قواعد تحديد عمر السيارة

, . , ,  Car,   Respondent,  Map<String, String> properties .  POWER.  Drools getValue.  Functions :





وصف وظيفة GetValue
getValue

:





قواعد تحديد قوة السيارة

, . : ,  PlayStation. ,  Household  Respondent  TVDevices   PlayStation. :





قاعدة بلاي ستيشن
PlayStation

?

.  ACTION? ,  Java. . , ,  ACTION  .





 Drools, :





  • set –  ,  Drools  ;





  • update –  ,  set;





  • modify –  , , ;





  • insert –  .





 modify.





 RuleTable  , - 99 0. ,  $r,  Respondent’a   false.   RuleTable   isActive   REJECTED   TRUE.





 CONDITION. , . , , . . Drools . , , , . 





 Drools  (https://github.com/sxexesx/drools-decision-table).





شكرا للاهتمام! آمل أن تكون هذه المقالة مفيدة لأولئك الذين يريدون الغوص في عالم BRMS الرائع!








All Articles