0

我在 pentaho 服务器中使用 CDE 创建了一个表单。此表单是一个带有一些输入字段的表格。单击按钮时会生成一个数组,该数组作为参数值发送。在 db 表中,我有 3 列:alfa、beta、gamma。

//var data = JSON.stringify(array);
var data = [
 {"alfa":"some txt","beta":"another text","gamma": 23},
 {"alfa":"stxt","beta":"anoxt","gamma": 43}
]

我创建了一个按预期运行的水壶转换。这 2 行数组被插入到数据库中,但是当我在 Pentaho 中的kettleTransFromFile 上使用 CDA 水壶运行相同的水壶转换时,只插入第一行。这是我的转变:

在此处输入图像描述

  1. 获取变量:数据(字符串)
  2. 修改后的 Java 脚本值:data_decode包含 json 数组

    var data_decode = eval(data.toString());

  3. JSON 输入:alfa - $..[0].alpha,beta - $..[0].beta,gamma -$..[0].gamma

  4. tableinsert - 插入数据库。

... 从勺子,水壶命令行都可以,但不是来自 Pentaho。怎么了?

谢谢!地理


更新

也许是错过配置或错误或功能,但我不使用这种方法。我找到了一个简单的方法:我在脚本数据源上创建了一个可编写脚本的脚本,其中包含一个简单的 java 代码(使用 beanshell)。现在它按预期工作。我将在 Sparkl 插件中移动此表单。谢谢你。

这个问题仍然悬而未决,也许有人想尝试这种方法。

4

1 回答 1

0

请使用正确的 JSONPath 来消除副作用:$.*.alpha

于 2017-01-27T09:17:36.297 回答