Pentaho PDI无法在转换中使用参数

Pentaho PDI无法在转换中使用参数,pentaho,pdi,Pentaho,Pdi,使用Pentaho PDI 8.3.0 我无法在转换内的REST调用中使用参数。我所做的是: 创建一个转换,并给它一个名为PAGE_NR的参数,默认值为1 创造一份工作 使用参数PAGE_NR=1调用转换 在转换中,设置对RESTAPI的GET请求 在URL字段中,设置类似${PAGE_NR}的调用 当我从SoapUI或浏览器调用它时,它可以工作,但在运行作业时总是中断。它似乎没有将此参数转换为值,而是像上面提到的那样传递它 我需要这个参数,因为调用相同的URL,但结果不同。我不知道前面的页

使用Pentaho PDI 8.3.0

我无法在转换内的REST调用中使用参数。我所做的是:

  • 创建一个转换,并给它一个名为PAGE_NR的参数,默认值为1
  • 创造一份工作
  • 使用参数PAGE_NR=1调用转换
  • 在转换中,设置对RESTAPI的GET请求
  • 在URL字段中,设置类似${PAGE_NR}的调用
当我从SoapUI或浏览器调用它时,它可以工作,但在运行作业时总是中断。它似乎没有将此参数转换为值,而是像上面提到的那样传递它

我需要这个参数,因为调用相同的URL,但结果不同。我不知道前面的页数,但在后面的转换中注意这个逻辑


在Linux上工作。顺便说一句,我尝试了调用参数的不同变体,但似乎没有任何效果。

根据评论中给出的信息,我愿意做出一个有根据的猜测:

如果URL来自流中的字段,REST客户端步骤不会对其执行变量替换。您可以做的是在其余步骤之前插入一个计算器步骤,操作“字符串a上的变量替换”,URL字段为字段a


这将为您提供所需的URL和页码。

如果您在Spoon中运行转换,并在配置屏幕上手动填写参数值,会发生什么情况?仍然有文字${PAGE\u NR}在那里通常意味着没有使用该名称定义变量/参数。这正是我所做的。我在Spoon中运行了转换,并确保提供了一个默认值。从帖子中,听起来像是从父作业运行转换,而不是直接运行转换,这就是我问的原因。我将尝试在行中的一个字段中获取URL,并在其余步骤中使用它。这样更容易验证您的字段是否正确。啊,现在我明白了。我已经运行了这两种情况,但我现在谈论的是独立运行的转换(这里没有作业)。我使用“Generate rows”设置REST调用的URL,并在其中设置上面提到的字符串。如果我将${PAGE_NR}替换为它的硬编码值1,则流可以完美地工作。我尝试了各种版本,我可以找到(如$.PAGE\u NR或${“PAGE\u NR”}),但似乎没有一个工作。我验证了我给了参数一个默认值(CTRL-T和“Parameters”选项卡)。您提到这将是一个变异参数,您需要从KJB调用此KTR,并通过另一个KTR调用父作业的变量。我不知道在Linux中是否会发生这种情况,但在Windows中,仅数字的变量通常被解释为数字而不是字符串,因此有时变量中的数字会显示为“1”而不是“1”,请注意数字前的空格。您的猜测是有根据的,是正确的!显然,字段确实不能替代它的值。像你提到的那样添加一个计算过的步骤就成功了。谢谢