在SAP CPI中的单个catch中处理多个异常

2020-08-20 22:23发布

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

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


大家好,
我们可以在一次响应中收集所有异常吗? 我的意思是,如果从源头接收到20条记录,则前10条消息成功,接下来2条消息失败,之后5条成功和即将失败。 所以我需要在一个响应中收集每个失败响应。

目前仅执行以下简单的异常处理。

首先我要用一个小脚本收集租户详细信息。

获取租户详细信息:

在"子流程内容修改器"中,异常是存储数据并收集响应有效载荷。

此致

Sandhya

(25.4 kB)

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

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


大家好,
我们可以在一次响应中收集所有异常吗? 我的意思是,如果从源头接收到20条记录,则前10条消息成功,接下来2条消息失败,之后5条成功和即将失败。 所以我需要在一个响应中收集每个失败响应。

目前仅执行以下简单的异常处理。

首先我要用一个小脚本收集租户详细信息。

获取租户详细信息:

在"子流程内容修改器"中,异常是存储数据并收集响应有效载荷。

此致

Sandhya

(25.4 kB)
付费偷看设置
发送
2条回答
callcenter油条
1楼-- · 2020-08-20 22:33

Sandhya,您好

这取决于您的IFlow的构建方式以及异常发生的位置。 如果您拆分了一条消息并将每个记录(可能会引发异常)作为新消息处理,则您可以处理子异常过程中的错误,将它们写入数据存储区并构建第二个流程,该流程将定期收集错误并发送

如果流程中没有拆分,例如 您的记录是在屏幕快照的脚本"响应"中处理的,而不是必须通过try-catch逻辑在此响应脚本中捕获错误。

抽象示例:

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

 def消息processData(消息消息){
    //用于收集错误
     def allErrors =""
    //添加代码以在此处读取记录
     def记录=新的XmlSlurper()。parseText(message.getBody())
     records.record.each {记录->
         尝试{
            //在这里进行记录处理。 将伪代码替换为您的
             def结果= record.text()。toInteger()/2
         } catch(异常例外){
             allErrors + ="错误:$ {ex.getMessage()} \ r \ n"
         }
     }
     如果(allErrors!=""){
         message.setBody(allErrors)
     }
     返回讯息
 } 

上面的代码示例

N-Moskvin
2楼-- · 2020-08-20 22:41

拉斐尔·赫尔曼(Raffael Herrmann)

感谢我建立的iflow响应,该消息用于拆分和处理消息 我已禁用的每个记录都将在异常情况下停止,因此在异常子进程中添加数据存储后,此处仍然无法在单个响应中收集所有失败消息。


关于

Sandhya

一周热门 更多>