如何从服务调用中获取内容修饰符中的异常消息

2020-09-29 18:22发布

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

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


亲爱的

请找到我的情况。

我选择了" GET"操作来从OData中获取一些记录,

当Odata中存在所选值时,我将获得如下所述的响应有效载荷

要求是:

1。 当我们尝试获取Odata中不可用的值时,我们需要将该值发送到Odata适配器

2。 当我们尝试获取Odata中可用的值时,我们需要发送一封邮件,说明" Odata中已经存在该值"

问题是:

当我们尝试获取OData中可用的值时,我们应该获取上面提到的值(第二张图片),而当我们尝试获取OData中不可用的值时,我们应该在content修饰符中获取异常

请注意:我使用了异常子进程$ {exception.message},但是无法存储异常消息

我可以在我的处理日志中看到异常,如下所述,但是我无法将异常消息发送到我的内容容器中。

例外是:

LastError = com.sap.gateway.core.ip.component.odata.exception.OsciException:找不到:404:HTTP/1.1 http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"> xml:lang =" zh-CN">找不到请求的实体。 ,原因:com.sap.gateway.core.ip.component.odata.exception.OsciException:找不到:404:HTTP/1.1 http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"> xml:lang =" zh-CN">找不到请求的实体。

在这种情况下,请帮助如何在content修饰符中获取异常。

请做有需要的

致谢

Ramesh

(26.6 kB)

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

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


亲爱的

请找到我的情况。

我选择了" GET"操作来从OData中获取一些记录,

当Odata中存在所选值时,我将获得如下所述的响应有效载荷

要求是:

1。 当我们尝试获取Odata中不可用的值时,我们需要将该值发送到Odata适配器

2。 当我们尝试获取Odata中可用的值时,我们需要发送一封邮件,说明" Odata中已经存在该值"

问题是:

当我们尝试获取OData中可用的值时,我们应该获取上面提到的值(第二张图片),而当我们尝试获取OData中不可用的值时,我们应该在content修饰符中获取异常

请注意:我使用了异常子进程$ {exception.message},但是无法存储异常消息

我可以在我的处理日志中看到异常,如下所述,但是我无法将异常消息发送到我的内容容器中。

例外是:

LastError = com.sap.gateway.core.ip.component.odata.exception.OsciException:找不到:404:HTTP/1.1 http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"> xml:lang =" zh-CN">找不到请求的实体。 ,原因:com.sap.gateway.core.ip.component.odata.exception.OsciException:找不到:404:HTTP/1.1 http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"> xml:lang =" zh-CN">找不到请求的实体。

在这种情况下,请帮助如何在content修饰符中获取异常。

请做有需要的

致谢

Ramesh

(26.6 kB)
付费偷看设置
发送
8条回答
一只江湖小虾
1楼 · 2020-09-29 19:06.采纳回答

您好,Ramesh,

我不好,也有根元素,因此在以下情况下应该可以工作

/Invoices/Invoice

or

< p>//发票

致谢

Sriprasad Shivaram Bhat

jovirus
2楼-- · 2020-09-29 19:09

太棒了!!! 真好

非常感谢您。

我以为需要安排条件。 简直太棒了。

这种情况下工作正常,

但是您可以检查线程根据情况如何获得有效载荷 https://answers.sap.com/questions/120515/how-to-get -con-in-incoming-payload-based-on-the-condi.html 用于具有不同问题的相同情况。

重获

Ramesh

一只江湖小虾
3楼-- · 2020-09-29 18:47

嗨Ramesh,

尝试使用路由器并使用非XML条件表达式$ {header.CamelHttpResponseCode} ='404'

My梦
4楼-- · 2020-09-29 18:54

亲爱的马克。

感谢您的响应,在实时情况下,将使用LocalIntegrationProcess调用此服务,并将实际条件放置在主集成流程中。

如果我将条件$ {header.CamelHttpResponseCode} ='404'放入路由器的主要集成中,则条件不会发生。

请进一步提出建议。

致谢

Ramesh

d56caomao
5楼-- · 2020-09-29 18:53

Hello Ramesh,

$ {exception.message}仅在Exception子进程内起作用。

如标记所示,您可以尝试 如果消息状态为"完成",则处于上述条件,但是根据屏幕快照,它会立即抛出错误并使整个消息变为失败状态。

在理想情况下,如果第二个get调用中没有数据

为便于您理解,一旦消息进入Exception Subprocess,消息处理将被强制终止(错误结束事件为

问候,

Sriprasad Shivaram Bhat

SKY徐
6楼-- · 2020-09-29 18:47

尊敬的斯里。

感谢您的建议。

在理想情况下,如果您的第二个get调用中没有数据,它应该返回一些响应,并提供一些带有状态错误的信息,并且应该在"监视"中完成消息状态。

是的,您是对的。 谢谢你的建议。

我对OData适配器进行了小型研究。

实际上,Odata中提供了两种GET操作。

1.Read(GET)

2。 查询(GET)

如果当Odata中的记录不可用时我们使用Read(GET),则消息失败,如我之前提到的。

如果当Odata中的记录不可用时使用Query(GET),则通过使用空消息类型标记给出响应来完成消息。

是的,现在方案没有失败。 希望这就是你要说的。

但是现在的问题是如何路由响应?

现在我收到两种响应消息。

1。 如果记录退出,那么我将从如下所示的Odata获取响应有效载荷

 <发票>
     <发票>
       
        Roield 
        4716001571 
        01 
        R20 
       已收到
        -144309 
        2016-10-31T13:51:39.000 
        INR 
       技术私人有限公司
     
   
 

2。 如果记录不存在,那么我将从如下所示的Odata获取响应有效载荷

 <发票/> 

请您现在提出建议,在这种情况下我们该如何路由。

请提出建议

致谢

Ramesh

SAP小菜
7楼-- · 2020-09-29 18:51

Hello Ramesh,

在请求回复后添加路由器并使用以下条件。

问候,

Sriprasad Shivaram Bhat

一周热门 更多>