大家好!我创造了一个像图片一样的水壶。现在,在“concat value”步骤中,我想使用它的“A,B”步骤metainfo,但我不知道如何得到它。你能帮助我吗?我可以获得映射输入步骤信息,但我不知道如何得到它的秘密步骤。我想获得“A,B”步骤信息。 TKS! “concat value”步骤代码:
//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();
我不知道子转换,但你可以使用这个修改的Java脚本值:
var last_step = _step_.getInputRowSets();
这将返回上一步的名称,后跟当前步骤的名称(Modified Java Script Value),您可以使用一些String清除/拆分步骤提取此值。
通过在它之前使用Dummy步骤,它输出此字符串:
[Dummy(什么都不做)2.0 - 修改过的Java Script Value.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();