大家好! 我已经创建了一个水壶跨图片。 现在,在“ concat值”步骤中,我想使用其“ A,B”步骤元信息,但我不知道如何获得它。您能帮帮我吗。 我可以获取映射输入步骤信息,但是我不知道如何获取其私有步骤 我想获取“ A,B”步骤信息。 Tks! “ concat值”步骤代码:
//Script here
function format() {
var args = arguments;
return this.replace(/\{(\d+)\}/g, function (m, i) {
return args[i * 1 - 1];
});
}
function getArr() {
var fs = getVariable('fields', '');
var arr = fs.split(',');
var varr = [];
for (var j = 0; j < arr.length; j++) {
for (var i = 0; i < getInputRowMeta().size(); i++) { //loop through the actual row
// Grab the metadata for this value
//
var valueMeta = getInputRowMeta().getValueMeta(i);
//using the IDs instead of "String" would make it faster, see API for the IDs
//
if (valueMeta.getName().equals(arr[j])) { //only for String types
varr.push(row[i]);
break;
}
}
}
return varr;
}
function getwww() {
var trans = _step_.getTrans();
if (trans == null) {
return 'err';
}
var transmeta = trans.getTransMeta();
if (transmeta == null) {
return 'err';
}
var minput = trans.findMappingInput();
if (minput == null) {
return 'err';
}
var arrs = transmeta.getPrevStepNames(minput[0].getStepMeta());
var arr2 = [];
var rowset = minput[0].getInputRowSets()
for (var i = 0; i < rowset.length; i++) {
arr2.push(rowset[i].getName());
}
return arr2.join('/');
}
var result = format.apply(getVariable('format', ''), getArr());
var pname = getwww();
答案 0 :(得分:0)
我不知道子转换,但是您可以通过以下方式使用修改后的Java脚本值:
var last_step = _step_.getInputRowSets();
这将返回上一步的名称,后跟当前步骤的名称(修改后的Java脚本值),您可以通过几个“字符串清理/拆分”步骤来提取该值。
通过将其与虚拟步骤一起使用,它会输出以下字符串:
[虚拟(不执行任何操作)2.0-修改的Java脚本Value.0]
答案 1 :(得分:0)
我找到了解决问题的方法。 //在这里编写脚本
function getSubPreStepName() {
var trans = _step_.getTrans();
if (trans == null) {
return 'err';
}
var transpar = trans.getParentTrans();
if (transpar == null) {
return 'err';
}
var transmeta = trans.getTransMeta();
if (transmeta == null) {
return 'err';
}
var ptransmeta = transpar.getTransMeta();
var arrs = trans.toString().split("\\.");
var subname = arrs[arrs.length - 2].replace('\[', '').replace('\]', '');
var topstep = ptransmeta.findStep(subname)
return ptransmeta.getPrevStepNames(topstep)[0];
}
var pname = getSubPreStepName();