我想基于Excel文件创建Pentaho报告(带报告设计器)。但是,我希望这个Excel文件具有通用性,并使用Pentaho数据集成(Kettle)转换从中选择一个特定的子集。
我可以使用Pentaho Report Designer:我创建了一个转换数据源,它又读取了一个Excel文件,所有三个文件(报告,转换和Excel)都在同一个目录中。
如何在发布到BA(BI)服务器时使其工作?
我已经按照这个答案(Using PDI transformation in Pentaho BI server as data source for report parameters)让我的转换由Pentaho BA Server加载,所以现在我可以根据从报表设计器文件本身加载的转换来生成报表。我的问题是我如何将Excel文件用作转换的源?我试图将它作为一种资源包含在内,并将其作为文件名引用,而不是转换中的路径,但它没有用。
答案 0 :(得分:1)
这个很棘手,因为你需要引用PRPT里面的文件(基本上是一个ZIP文件)。这是一个对我有用的程序:
1)在Pentaho报表设计器(PRD)中将Excel(或其他)文件添加为资源。对于我的测试,我使用了PDI示例中的customers-100.txt文件,并将资源命名为“customers-100”。然后我将报告保存为prd_test.prpt。
2)打开Spoon并在与PRPT相同的目录中创建新的PDI转换。我使用文本文件输入和文件名,我把以下内容:
ZIP:$ {Internal.Transformation.Filename.Directory} /prd_test.prpt!customers-100
“zip”是一个VFS方案,告诉PDI它是一个ZIP文件。变量是转换位置(应该与PRPT相同),并且bang(!)告诉VFS进入PRPT包并查找名为customers-100的文件(资源名称)。我想我也必须告诉它混合行结尾和US-ASCII编码,我不知道这些是否真的有必要,或者它们是否适用于你的Excel步骤。
3)在PRD中打开prd_test.prpt,将转换添加为资源(我将其命名为prdTest),并针对资源名称创建查询(在本例中为prdTest,而不是文件名)。保存PRPT,关闭PRD,然后重新启动。
我没有尝试过发布的报告,我刚从珠三角工作。
如果您遇到错误并且控制台显示“Stream closed”之类的内容,请尝试重新启动PRD和/或重新导入资源。