2020-08-27 01:09发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
人们好,
请使用groovy脚本在以下requiremtn上帮助我
我想使用groovy脚本进行映射以汇总和汇总输出
我的来源是:
0002 1 100 0001 1 200 0002 1 300 0001 1 300 row> ------------------
我的要求输出是
--------- 0002 1 < br> 400 0001 1 500
致谢
DV
你好
如果要在Groovy中解决此问题,则需要首先解析消息正文XML,对元素的内容进行汇总,然后输出包含汇总和的新XML文档。 我只是回答了另一个问题,其中详细介绍了如何执行此操作。
此致
Morten
Hi DV
到目前为止,您尝试了什么? 如果您发布脚本,我们将有更好的机会帮助您。
Hello DV,
您可以尝试使用以下代码,这可能会对您有所帮助:
----------------
导入com.sap.gateway.ip.core.customdev.util.Message; 导入java.util.HashMap; 导入groovy.xml.MarkupBuilder def消息processData(Message message){ 字符串正文= message.getBody(java.lang.String)as String; //构建XML文档//SAXBuilder builder = new SAXBuilder(); < br> def worklogs =新的XmlSlurper()。parseText(body); def stringWriter =新的StringWriter() def peopleBuilder =新的MarkupBuilder(stringWriter) def t11 = 0; //def with_kids = node.findAll {it.userId.unique()} def btNumbers = worklogs.row.collect {it.userId} def countMap = btNumbers.unique(false).collectEntries {btNumber-> [btNumber,btNumbers.count(btNumber)] } peopleBuilder。" root" { countMap.each {k,v-> 工作日志。 row.each {node-> if(k == node.userId.text()) { le = node.Marks.text() t11 = t11 + le.toInteger() } } 出局{键(k)值(v)总计(t11)} t11 = 0 } } < br> def xml1 = stringWriter.toString() message.setBody(xml1); 返回消息; } >
---------------------
GB
另外,为什么还要在Groovy中解决这个问题?
总和对我来说是0。 该代码有效吗?
最多设置5个标签!
你好
如果要在Groovy中解决此问题,则需要首先解析消息正文XML,对元素的内容进行汇总,然后输出包含汇总和的新XML文档。 我只是回答了另一个问题,其中详细介绍了如何执行此操作。
此致
Morten
Hi DV
到目前为止,您尝试了什么? 如果您发布脚本,我们将有更好的机会帮助您。
此致
Morten
Hello DV,
您可以尝试使用以下代码,这可能会对您有所帮助:
----------------
导入com.sap.gateway.ip.core.customdev.util.Message;
导入java.util.HashMap;
导入groovy.xml.MarkupBuilder
def消息processData(Message message){
字符串正文= message.getBody(java.lang.String)as String;
//构建XML文档
//SAXBuilder builder = new SAXBuilder(); < br> def worklogs =新的XmlSlurper()。parseText(body);
def stringWriter =新的StringWriter()
def peopleBuilder =新的MarkupBuilder(stringWriter)
def t11 = 0;
//def with_kids = node.findAll {it.userId.unique()}
def btNumbers = worklogs.row.collect {it.userId}
def countMap = btNumbers.unique(false).collectEntries {btNumber->
[btNumber,btNumbers.count(btNumber)]
}
peopleBuilder。" root" {
countMap.each {k,v->
工作日志。 row.each {node->
if(k == node.userId.text())
{
le = node.Marks.text()
t11 = t11 + le.toInteger()
}
}
出局{
键(k)
值(v)
总计(t11)
}
t11 = 0
}
}
< br>
def xml1 = stringWriter.toString()
message.setBody(xml1);
返回消息;
} >
---------------------
致谢
GB
另外,为什么还要在Groovy中解决这个问题?
Morten
总和对我来说是0。 该代码有效吗?
一周热门 更多>