点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨,
我的问题类似于这些问题
SAP CPI SOAP接收器出现错误,但可以在SOAP UI中使用
我试图向Web服务发送一条消息,其中目标系统使用下一个WSDL:
<?xml version =" 1.0" encoding =" UTF-8"?>
我的SOAP接收器通道具有下一个配置:
在我的iFlow中,在使用请求回复组件之前,我创建了一个Groovy脚本来进行映射:
def消息processData(消息){ def生成器; def outxml; def xml = message.getBody(java.lang.String); def xmlPath = new XmlSlurper()。parseText(xml); 字符串orgVtas = xmlPath.depthFirst()。findAll(){it.name()=='VKORG'} 字符串fechaIni = xmlPath.depthFirst()。findAll(){it.name()=='FEC_INI'} 字符串fechaFin = xmlPath.depthFirst()。findAll(){it.name()=='FEC_FIN'} 字符串descuento = xmlPath.depthFirst()。findAll(){it.name()=='ENTERO1'} 字符串cantidadPtos = xmlPath.depthFirst()。findAll(){it.name()=='CANTIDAD1'} 字符串textDescto = xmlPath.depthFirst()。findAll(){it.name()=='REFERENCIA1'} def xmlWriter =新的StringWriter() def xmlMarkup =新的MarkupBuilder(xmlWriter) //建立输入XML xmlMarkup.'p6:parametrosRedencionPuntos'(" xmlns:p6":" urn:INT065Controllerwsdl"){ 'p6:id_organizacion_ventas'(orgVtas) 'p6:fechaInicio'(fechaIni) 'p6:fechaFinal'(fechaFin) 'p6:textDescuento'(textDescto) 'p6:id_descuento'(descuento) 'p6:cantidadPuntos'(cantidadPtos) } //身体 字符串结果= xmlWriter.toString(); 结果= result.replaceAll('\\]','').replaceAll('\\ [',''); message.setBody(结果) //设置标题 message.setHeader(" CamelHttpMethod"," POST"); message.setHeader(" SOAPAction"," http://loyalty.mxg33k.com/iNT065/quote?ws=1"); message.setHeader(" Content-Type"," application/soap + xml"); message.setHeader(" operationName"," parametrosRedencionPuntos"); message.setHeader(" operationNamespace"," urn:INT065Controllerwsdl"); 返回消息;
我设置标题的原因是因为我正在测试不同的建议。
但是,当我测试界面时,会向我显示错误:
java.lang.IllegalArgumentException:PayLoad元素不适合BindingOperation的消息部分。 请检查BindingOperation和PayLoadMessage.Message处理日志: 开始时间=星期五12月20日05:35:10.987 UTC 2019 StopTime =星期五12月20日05:35:11.116 UTC 2019 总体状态=处理中 MessageGuid = AF38XY6wcrpYqoG5r1puXWOVpH_w ChildCount = 0 儿童数= 15 上下文名称= INT043_065_RET_C4C_LOY_Replica_de_Parametros_de_Redencion_de_Puntos CorrelationId = AF38XY7-0PhwigSK-mximLZmtq3w IntermediateError = true LastError = java.lang.IllegalArgumentException:PayLoad元素不适合BindingOperation的消息部分。 请检查BindingOperation和PayLoadMessage。 LastErrorModelStepId = MessageFlow_573 节点= vsa7079780 PreviousComponentName = CPI_e250024 ProcessId = b362530d2fc7a0514a41be98315ab1ac958d00ec ReceiverId = C4C_WS_SOAP SenderId = RETAIL_CC_SOAP_043_RetailToC4C_Snd TransactionId = c9e8a47490f5479d8c851e4e116fbf8c ReceiverIds [C4C_WS_SOAP]
有什么想法,我做错了什么吗?
谢谢你。
最诚挚的问候。
ERVA。
(205.0 kB)
嗨,
我解决了我的问题:
然后我更新了Groovy脚本函数:
此外,我按照Wizdler的显示方式修改了布局请求: