Drools-규칙 구문

.drl (규칙 파일)에는 자체 구문이 있으므로이 장에서 규칙 구문의 일부를 다루겠습니다.

규칙의 조건

규칙은 다음과 같은 많은 조건과 패턴을 포함 할 수 있습니다.

  • 계정 (잔액 == 200)
  • 고객 (이름 ==“Vivek”)

위의 조건은 계정 잔액이 200인지 또는 고객 이름이 "Vivek"인지 확인합니다.

규칙의 변수

Drools의 변수 이름은 달러 ($) 기호로 시작합니다.

  • $ account − 계정 ()
  • $ account는 Account () 클래스의 변수입니다.

Drools는 모든 기본 Java 유형 및 심지어 Enum과 함께 작동 할 수 있습니다.

규칙의 주석

특수 문자 인 # 또는 //를 사용하여 한 줄 주석을 표시 할 수 있습니다.

여러 줄 주석의 경우 다음 형식을 사용하십시오.

/*
   Another line
   .........
   .........
*/

글로벌 변수

전역 변수는 세션에 할당 된 변수입니다. 다음과 같은 다양한 이유로 사용할 수 있습니다.

  • 입력 매개 변수의 경우 (예 : 세션간에 사용자 정의 할 수있는 상수 값).

  • 출력 매개 변수의 경우 (예 :보고-규칙이 전역 보고서 변수에 일부 메시지를 쓸 수 있음)

  • 규칙 내에서 사용할 수있는 로깅과 같은 서비스의 진입 점입니다.

규칙의 기능

기능은 편의 기능입니다. 그들은 조건과 결과에 사용될 수 있습니다. 함수는 유틸리티 / 도우미 클래스의 대안을 나타냅니다. 예를 들면

function double calculateSquare (double value) {
   return value * value;
}

방언

방언은 조건 또는 결과에있는 모든 코드 식에 사용되는 구문을 지정합니다. 여기에는 반환 값, 평가, 인라인 평가, 술어, 두드러진 표현, 결과 등이 포함됩니다. 기본값은Java. Drools는 현재MVEL. 기본 언어는 다음과 같이 패키지 수준에서 지정할 수 있습니다.

package org.mycompany.somePackage
dialect "mvel"

MVEL 방언

MVEL은 Java 기반 애플리케이션을위한 표현 언어입니다. 필드 및 방법 / 게터 액세스를 지원합니다. Java 구문을 기반으로합니다.

돌출

Salience는 Rule Syntax의 매우 중요한 기능입니다. Salience는 충돌 해결 전략에서 먼저 실행할 규칙을 결정하는 데 사용됩니다. 기본적으로 기본 기준입니다.

salience를 사용하여 실행 규칙의 순서를 정의 할 수 있습니다. Salience에는 int 유형의 숫자를 반환하는 모든 표현식을 사용하는 하나의 속성이 있습니다 (음수뿐 아니라 양수도 유효 함). 값이 높을수록 충돌 해결 전략에서 규칙이 실행될 가능성이 높아집니다.

salience ($account.balance * 5)

기본 salience 값은 0입니다. salience 값을 일부 규칙에만 할당 할 때이를 염두에 두어야합니다.

규칙 구문에는 다른 많은 기능 / 매개 변수가 있지만 여기서는 중요한 기능 만 다루었습니다.

규칙 결과 키워드

규칙 결과 키워드는 "then”규칙의 일부입니다.

  • Modify − 사실의 속성은 then 규칙의 일부.

  • Insert − 일부 조건에 따라 참이면 규칙 엔진의 현재 세션에 새로운 사실을 삽입 할 수 있습니다.

  • Retract − 규칙에서 특정 조건이 참이고 해당 사실에 대해 다른 조치를 취하지 않으려는 경우 규칙 엔진에서 특정 사실을 철회 할 수 있습니다.

Note− 규칙 결과 내에 조건부 논리 (if 문)를 사용하는 것은 매우 나쁜 습관으로 간주됩니다. 대부분의 경우 새 규칙을 만들어야합니다.