需要有关Groovy脚本的帮助以汇总XML和聚合

2020-08-27 01:09发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)人们好, 请...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


人们好,

请使用groovy脚本在以下requiremtn上帮助我

我想使用groovy脚本进行映射以汇总和汇总输出

我的来源是:




0002
1
100



0001
1
200



0002
1
300



0001
1
300


------------------

我的要求输出是

---------



0002
1 < br> 400



0001
1
500


致谢

DV

5条回答

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

一周热门 更多>