0

我在 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);
4

1 回答 1

0

除非在这个问题中给出带有 profile 的输入数据,否则很难回答。但是从代码来看,似乎正在为输入 XML 创建一个额外的父节点。

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

如果它不满足您的要求,请提供更多详细信息,例如带有字段的输入配置文件和预期输出。

于 2017-02-14T13:18:21.367 回答