SAP CPI如何从HTTP捕获响应消息

2020-08-20 23:22发布

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

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


任何人都可以帮助我捕获HTTP响应

在这里,我被困在要从HTTP响应中获取要发送电子邮件的消息和状态,我在异常子过程中添加了内容修饰符和邮件适配器,在该子过程中它触发了异常并且还发送了邮件,但是我无法获得 我尝试使用CamelhttpStatusCode和CamelhttpText从响应中得到的消息,但我没有得到预期的相关消息

我已附上我从HTTP获得的响应和状态

请帮助我捕获消息和状态

致谢

Naveen V

(31.8 kB)

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

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


任何人都可以帮助我捕获HTTP响应

在这里,我被困在要从HTTP响应中获取要发送电子邮件的消息和状态,我在异常子过程中添加了内容修饰符和邮件适配器,在该子过程中它触发了异常并且还发送了邮件,但是我无法获得 我尝试使用CamelhttpStatusCode和CamelhttpText从响应中得到的消息,但我没有得到预期的相关消息

我已附上我从HTTP获得的响应和状态

请帮助我捕获消息和状态

致谢

Naveen V

(31.8 kB)
付费偷看设置
发送
3条回答
Cikesha
1楼-- · 2020-08-20 23:27

您必须使用CamelExceptionCaught属性,该属性可在ExceptionSubprocesses中访问。 该对象包含异常的信息。 如果发生HTTP异常,则可以通过getResponseBody()函数访问响应主体。 调用此函数,然后使用例如 XmlSlurper对其进行解析。

导入com.sap.gateway.ip.core.customdev.util.Message
 导入java.util.HashMap

 def消息processData(消息消息){
     def map = message.getProperties()
    //获取异常对象
     def ex = map.get(" CamelExceptionCaught")
     如果(ex!= null){
        //检查HTTP是否异常
         如果(ex.getClass()。getCanonicalName()。equals(" org.apache.camel.component.ahc.AhcOperationFailedException")){
            //获取HTTP状态码
             def httpStatusCode = ex.getStatusCode()
            //解析HTTP响应
             def xml =新的XmlSlurper()。parseText(ex.getResponseBody())
            //获取HTTP响应字段
             def status = xml。'**'。find {it.name()==" status"}。text()
             def message = xml。'**'。find {it.name()==" message"}。text()
            //设置邮件文字
             def mailText =""" HTTP状态码:$ {httpStatusCode}
 内容状态:$ {status}
 内容信息:$ {message}"""
            //设置正文(稍后在邮件接收者通道中使用正文)
             message.setBody(mailText)
         }
     }
     返回讯息
 }


 
95年老男孩
2楼-- · 2020-08-20 23:47

嗨,Naveen,

此页面说明XmlSlurper的查找功能如何工作。 但是也许您也应该查看页面上的其他示例,因为它们都非常有帮助。 http://grails.asia/groovy-xmlslurper-examples-for-parsing-xml

关于XPath。 如此处所示,您是否已将名称空间前缀添加到IFlow? https://blogs.sap.com/wp-content/uploads /2018/11/NamespaceMappingMultipleBookings.jpg (屏幕截图是象征性的。您必须在其中的响应消息中添加特定的名称空间前缀。)

Violet凡
3楼-- · 2020-08-20 23:30

一周热门 更多>