我正在使用提取两列textractjson
并将其传递给一个tmap
组件,在该组件中我将两列连接为单个列。
另外,除了最后一行之外,我希望在每一行的末尾有一个逗号。
我不知道该怎么做。
例子:
有两列tmap
作为输入:
FirstName
LastName
在输出中,我将它们连接到:
FirstName+LastName+","
问题是我不想要最后一行的逗号。
我正在使用提取两列textractjson
并将其传递给一个tmap
组件,在该组件中我将两列连接为单个列。
另外,除了最后一行之外,我希望在每一行的末尾有一个逗号。
我不知道该怎么做。
例子:
有两列tmap
作为输入:
FirstName
LastName
在输出中,我将它们连接到:
FirstName+LastName+","
问题是我不想要最后一行的逗号。
我也可能是错的。基本上连接 FirstName 和 LastName ,使用Numeric.Sequence()函数创建记录编号列,并使用另一个上下文变量并将相同的序列号存储在这里(它可能存储最后一个值)也在tJavaRow组件中。
output_row.name = input_row.FirstName+""+input_row.LastName+","+;
output_row.record_number = Numeric.sequence("recNo", 1, 1);
context.lastNumber = Numeric.sequence("recNo", 1, 1);
在自定义 java 例程中创建一个方法。
public static string main _nameChange(String name,Integer record_number){
if(context.lastNumber == record_number){
name = name.substring(0,name.length()-1);
return name;
}
else{
return name;
}
}
现在在tmap组件中调用_nameChange方法。现在您可以修剪最后一行的最后一个字符。
Ror 参考 检查这个
这取决于您的工作布局和输入结构。
您似乎使用tExtractJSON
,这可能意味着您从 REST 调用或数据库中获取数据。
由于 JSON 数据结构没有固定的行数,因此您将无法使用((Integer)globalMap.get("tFileInputDelimited_1_NB_LINE"))
. 同样,由于我们不知道您的工作布局,这取决于它。
如果不是这种情况,我会tJavaRow
先计算组件中的行数,然后添加第二个tJavaRow
连接字符串的位置(在 tMap 中不会这样做),但省略最后一个逗号。我将能够找到我首先进行的计数的最后一行。这取决于您的 Java 技能。
您还可以使用 tJavaRow 连接全局变量中的所有行,每行末尾有一个逗号。
然后,开始一个新的子作业(onSubjobOk),然后使用 tJava,删除最后一个字符(所以最后一个逗号)。
非常简单,不必知道输入流中有多少行,但假设您希望将结果作为单个字符串(此处包含在全局变量中)。