Drools:以CSV格式合并细胞

时间:2012-11-20 14:13:30

标签: csv drools

我有一组存储在Excel文档中的Drools规则,由于各种原因需要用.csv文件替换。问题是.csv文件不支持合并的单元格,这使得很难(如果不是不可能)正确地转换规则。

经过大量的谷歌搜索,我发现使用“...”来表示合并的单元格,但没有关于如何使用它的明确示例。源代码中的文档提供了一些提示,但仍然过于模糊;我已经尝试过无数种不同的解释而没有任何成功。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

我们和你有同样的问题。在查看了他们的源代码:CsvParser + DefaultRuleSheetListener之后,我找到了解决方案。这篇文章可以帮助您节省时间。

仅在ObjectType Matching行指定...,即CONDTION,ACTION行下面的那一行。从合并单元格的开头到合并单元格的结尾。请注意,对于继续合并的单元格,您不能只使用“...”,但代码将在规范化和修剪后忽略它并将其视为空单元格并静默忽略它。放置诸如......,b ......之类的东西。这是一个例子。

请注意Drools使用缓冲读卡器,而不是CSV读卡器,它无法处理跨越多行的一个单元格值。除非您的CSVParser使用CSVReader。

这是一个简化的例子。

CONDITION,CONDITION,CONDITION,ACTION,ACTION
$Client:Client(),$Product:Product()...,anythingButNotJust3Dots...,,
"clientType == ""$param""","planType == ""$param""","accountType == ""$param""","documents.add(""$param"");","documents.add(""$param"");"
INDIVIDUAL,RRSP,CASH,document1,document2
INDIVIDUAL,RESP,CASH,document2,
INDIVIDUAL,RIF,CASH,document3,
INDIVIDUAL,,MARGIN,document4,document6
相关问题