执行数据处理时出错;引起:文件过早结束。 (用groovy脚本);引起:文件过早结束

时间:2015-11-16 10:53:14

标签: groovy boomi

我在boomi的groovy脚本中遇到上述错误请帮帮我!!下面是代码。我正在尝试格式化为xml。数据处理正在抛出此错误。

import java.util.Properties;
import java.io.InputStream;
import java.io.ByteArrayInputStream;
import com.boomi.execution.ExecutionUtil;
import java.io.BufferedReader;
import java.io.InputStreamReader;
// Retrieve a handle to the Logger
logger = ExecutionUtil.getBaseLogger();

InputStream io = dataContext.getStream(0);
Properties props = dataContext.getProperties(0);

BufferedReader br = new BufferedReader(new InputStreamReader(io));
StringBuilder sb = new StringBuilder();

String line;
while ((line = br.readLine()) != null) {
  sb.append(line);
}
def text = sb.toString();
text = text.replaceAll('&lt', '')
text = text.replaceAll('&gt', '')

def xmlStream = new XmlParser().parseText(text);
def data = xmlStream.data;

def result = "<records>"
for (child in data) {
  def stringWriter = new StringWriter()
  new XmlNodePrinter(new PrintWriter(stringWriter)).print(child)
  result = result + stringWriter.toString();
}
result = result + "</records>"
def childIO = new ByteArrayInputStream(result.getBytes());
dataContext.storeStream(childIO, props);

1 个答案:

答案 0 :(得分:0)

除非在这个问题中给出带有配置文件的输入数据,否则很难回答它。但是从代码中可以看出,正在为输入XML创建一个额外的父节点。

这可以通过Boomi中的Message组件轻松实现。
使用消息形状并输入以下内容:
000-default并在消息形状中形成参数选项,使用当前数据。这将为您尝试通过代码实现的所有文档提供相同的输出。

如果不符合您的要求,请提供更多详细信息,如输入配置文件,字段和预期输出。