1

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

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

任何帮助,将不胜感激。

4

1 回答 1

2

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

仅在 ObjectType Matching 行中指定 ...,即 CONDTION、ACTION 行下方。从合并单元格的开头到合并单元格的结尾。请注意,对于继续合并的单元格,您不能只使用“...”,而是在规范化和修剪后代码会忽略它并将其视为空单元格并默默地忽略它。放任何东西,例如a...,b...等。这是示例。

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

这是一个简化的例子。

条件,条件,条件,行动,行动
$Client:Client(),$Product:Product()...,anythingButNotJust3Dots...,,
"clientType == ""$param""","planType == ""$param""","accountType == ""$param""","documents.add(""$param"");" ,"documents.add(""$param"");"
个人,RRSP,现金,document1,document2
个人,RESP,CASH,document2,
个人,RIF,现金,document3,
个人,,保证金,document4,document6
于 2013-04-17T22:13:09.440 回答