GET错误400正文响应SAP HCI/剩余POST请求(HTTP)

2020-09-21 11:33发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家们, 我们有一个场景,我们...

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

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


专家们,

我们有一个场景,我们通过REST服务(POST操作)发布一些数据,我们在SAP HCI中使用HTTP适配器,有时字段以错误的方式发送,并且出现400错误 服务器需要验证有效负载,这是正确的,但是我们希望从HTTP适配器获取主体响应错误,然后将其发送回ECC。

有人已经这样做了吗?

关于如何做到这一点的任何想法?

谢谢

2条回答
渐行渐远_HoldOn
2020-09-21 12:30 .采纳回答

您好,布鲁诺。

我认为您必须编写脚本以进行响应,然后将其发送回SAP ERP。

https://uacp2.hana.ondemand.com/viewer/368c481cd6954bdd5d

下面是SAP HELP中提供的示例脚本

 import com.sap.gateway.ip.core.customdev.util.Message;

 def消息processData(消息消息){

                //获取iflow属性的映射
                 def map = message.getProperties();

                //获取异常java类实例
                 def ex = map.get(" CamelExceptionCaught");
                 如果(ex!= null)
                 {

              //http适配器抛出org.apache.camel.component.ahc.AhcOperationFailedException的实例
                     如果(ex.getClass()。getCanonicalName()。equals(" org.apache.camel.component.ahc.AhcOperationFailedException"))
                     {

                    //将http错误响应另存为消息附件
                     def messageLog = messageLogFactory.getMessageLog(message);
                     messageLog.addAttachmentAsString(" http.ResponseBody",ex.getResponseBody()," text/plain");

                    //将http错误响应复制到iflow的属性
                     message.setProperty(" http.ResponseBody",ex.getResponseBody());

                    //将http错误响应复制到消息正文
                     message.setBody(ex.getResponseBody());

                    //将http错误代码的值(即500)复制到属性中
                     message.setProperty(" http.StatusCode",ex.getStatusCode());

                    //将http错误文本的值(即"内部服务器错误")复制到属性中
                     message.setProperty(" http.StatusText",ex.getStatusText());

                     }
                 }

     返回消息;
 } 

您可以在Script本身中形成XML,或者在使用脚本中设置的属性对构建XML进行脚本编写之后,可以使用内容修饰符。

注意

Sriprasad Shivaram Bhat

一周热门 更多>