在错误/升级结束的异常子流程中使用自定义消息

2020-08-15 17:46发布

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

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


你好

当前,我正在使用自定义界面创建iFlows。 当一个人将异常子流程放入错误/升级结束的iFlow中时,发送者将收到如下消息:

发生内部服务器错误:消息以Escalation结束事件结束。 失败消息的MPL ID为:有关更多详细信息,请检查尾部日志。

我想做的是返回一个自定义消息,同时在消息监视器中保持升级/错误标签。

我的问题是这是否可以做到以及如何做到。

提前谢谢!

布拉姆

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

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


你好

当前,我正在使用自定义界面创建iFlows。 当一个人将异常子流程放入错误/升级结束的iFlow中时,发送者将收到如下消息:

发生内部服务器错误:消息以Escalation结束事件结束。 失败消息的MPL ID为:有关更多详细信息,请检查尾部日志。

我想做的是返回一个自定义消息,同时在消息监视器中保持升级/错误标签。

我的问题是这是否可以做到以及如何做到。

提前谢谢!

布拉姆

付费偷看设置
发送
11条回答
小灯塔
1楼 · 2020-08-15 18:20.采纳回答

你好,布拉姆,

我已经尝试了此功能,但无法正常工作。 以下是一些指针。

1)可以设置自定义异常,但是CPI中的消息处理状态为COMPLETED(错误结束或消息结束的用法)。

---- >使用内容修改器删除属性" CamelExceptionCaught",并使用以下脚本。

导入com.sap.gateway.ip.core.customdev.util.Message;
 导入java.util.HashMap;
 def消息processData(消息消息){
    //身体
     def主体= message.getBody();
     def map = message.getHeaders();
     map.put(" Content-Type"," application/json");
     map.put(" CamelHttpResponseCode",400);
  
     message.setBody(" {\"状态\":\"嗨,邦德,请检查CPI监视以获取错误详细信息\"}");
    
     返回消息;
 }
 

2)您要使用标准错误响应将CPI中的消息处理状态设置为FAILED或ESCALATED

---->只需添加Exception子进程并将事件设置为Error 结束或升级。

3)您想将"自定义异常"发回给发件人,并将CPI中的消息处理状态设置为"失败"或"退出"。

---->这在SAP中不起作用 CPI并跟进开发团队。您可以向SAP团队提出票证,以便优先处理此问题。

问候,

Sriprasad Shivaram Bhat

打个大熊猫
2楼-- · 2020-08-15 18:33

你好Sriprasad,

我们在所有这些集成流程中都使用HTTP发送器适配器。

感谢您的帮助!

Bram

落灬小鱼
3楼-- · 2020-08-15 18:23

Bram

在异常子进程(带有错误结束事件)中使用Groovy脚本引发新的异常(任何您喜欢的类型)。 该脚本可能很简单,如下所示,它为触发子进程的异常添加了前缀。

 def Message processData(Message message){
     抛出新异常('这是我的新自定义异常:-'+ message.getProperty('CamelExceptionCaught'))
     返回讯息
 }
 

此新异常将返回给调用者,并记录到失败的消息中。

粗暴的香蕉
4楼-- · 2020-08-15 18:20

我不知道一种完全替换整个格式的方法 返回发送者的异常。 我认为在CPI框架内的某个地方,这些异常都用"内部服务器...."消息包裹了,是的,将其弄乱可能不是一个好主意。

恕我直言,它应该 足以让您使用上述方法替换错误内容,并且只要您提供了足够的错误原因,发件人就应该足以找出问题所在。

CJones
5楼-- · 2020-08-15 18:31

嗨,团队,

我正在寻找相同的要求。 请对此进行任何最新更新。

谢谢

桑托什

一周热门 更多>