【发布时间】:2017-10-24 15:23:15
【问题描述】:
我是 drools 的新手,我尝试搜索 API 文档,但找不到关于比较关键字“LIKE”的任何信息。我已经成功地使用 、=、==、!= 创建了规则,但现在我正在尝试使用“LIKE”关键字创建规则。前辈告诉我,它应该像 SQL like 关键字一样工作。以下是我在 drl 文件中的规则,但我在规则 5495Y 中收到有关输入“LIKE”不匹配的错误
使用流口水 5.6.0
**From DRL File:**
rule "5495Y"
agenda-group "1"
date-effective "04-Sep-2017"
when
JournalEntry : JournalEntry( (ledgerCd=="COMN") && accountNumber LIKE 1234
&& entryTypeCode == "Y" );
DroolsUtil : DroolsUtil( );
then
JournalEntry.addConsequence("rejectReason","kk like test");
JournalEntry.addConsequence("sendToLedger","N");
DroolsUtil.reclassEntry(JournalEntry,"NOCHG", "5495Y");
end
**Exact Error I am getting:**
[38583,71]: [ERR 102] Line 38583:71 mismatched input 'LIKE' in rule "5495R"
[38596,71]: [ERR 102] Line 38596:71 mismatched input 'LIKE' in rule "5495Y"
[0,0]: Parser returned a null Package
11:09:17,118 ERROR main ReclassAccountingRuleJob:132 - java.lang.Exception: Know
ledgeBuilder has errors. DRL File parsing error
java.lang.Exception: KnowledgeBuilder has errors. DRL File parsing error
【问题讨论】:
-
你希望它做什么? “喜欢1234”应该是什么意思? - SQL "like" 做模式匹配,Drools 手册会告诉你有一个 "matches" 运算符用于模式匹配。
-
可能是“like 1234*”或“like 1234%”应该表示以 1234 开头的任何内容。我确信语法正确。
标签: drools