Pentaho厨房参数未传递给Pentaho作业

时间:2019-01-25 17:54:48

标签: pentaho pentaho-data-integration

使用Pentaho Kitchen运行Spoon / PDI Job。在运行时由Kitchen参数设置应在主作业中定义的参数。在Windows下运行。以下内容不起作用:

public class Counter {
    private int count = 0;
    public void increment() {
       synchronized (this) {
       count++;
    }
}
public int getCount() {
    synchronized (this) {
        return count;
    }
}
}

即使使用非常简单的工作就尝试过此操作,也无法在Kitchen中使用参数。

感谢您的帮助。

这也不起作用:

list1 = [('10.180.13.101', '10.50.60.30', 'STCMGMTUNIX01')]
list2 = [('0.0.0.0', 'STCMGMTUNIX01')]
matches = []
for i in list1[0]:
    if i in list2[0]:
        matches.append(i)
print(matches)
#['STCMGMTUNIX01']

在路径名中使用正斜杠时。得到错误:由于它不是文件,因此无法从“ file:/// C:/NoAnalogPhones.csv”中读取。

2 个答案:

答案 0 :(得分:0)

这可能只是您的命令中的拼写错误,您正在使用C:\ pentaho8.0 \ data-integration \ kitchen ...批处理文件的实际名称是Kitchen,大写K。

尝试使用此命令:

C:\ pentaho8.0 \ data-integration \ Kitchen.bat

代替小写。

编辑:

在KJB的KTR调用步骤中,如果您在“参数”标签中设置了参数,则需要向其馈送信息(值)或流列以从中接收值,如果您保持原样,我非常确定,Transformation将使用空白/空的那些参数运行,因此,除非您需要静态值或“为每一行执行”类型的执行,否则将“参数”选项卡全部保留为空。

enter image description here

此外,在KTR内的参数标签中,除非KTR将通过JOB调用接收参数,否则您可以将所有参数保留为空,将选项“将所有参数值传递给子转换”将发送所有的JOB参数,直到执行KTR。

在批处理文件中,只要从C:\ pentaho8.0 \ data-integration \ kitchen内部执行此批处理文件,就可以了,但是如果从另一个文件夹执行,则需要批处理文件首先进入那里,因此将其添加到开始中:

C: cd C:\ pentaho8.0 \ data-integration \

Kitchen.bat / file:....

这就是我现在能想到的。

答案 1 :(得分:0)

传递参数时,Kitchen命令行有错误。您必须四处走走,并删除所有换行符/换行符,并在“ params:var = someval”之间放置一个空格

这有效:

CD C:\ Pentaho \ data-integration

REM C:\ pentaho8.0 \ data-integration \ kitchen / file:C:\ Users \ nbessmer \ Source \ Professional_Services \ Rapid7客户交付\ NexposeLoad.kjb

。\ kitchen / file:“ C:\ Users \ NBessmer \ Source \ Professional_Services_New \ Client Implementations \ MIS \ Spoon \ IP Phones \ IP_PHONES \ testParms.kjb”“ -param:InputFile = C:\ Users \ NBessmer \源\专业服务_新\客户端实现\ MIS \ Spoon \ IP电话\ IP_PHONES(2018年11月29日).xlsx“” -param:OutputDirectory = C:Users \ NBessmer \ Source \ Professional_Services_New \客户端实现\ MIS \ Spoon \ IP_Phones \ IP_PHONES \ output“” -param:InputDirectory = C:\ Users \ NBessmer \ Source \ Professional_Services_New \ Client Implementations \ MIS \ Spoon \ IP Phones \ IP_PHONES“

CD C:\ Users \ NBessmer \ Source \ Professional_Services_New \ Client Implementations \ MIS \ Spoon \ IP Phones \ IP_PHONES