本博客是关于SAP PI REST适配器架构概念和配置的一系列博客文章的一部分。我们还添加了一些示例场景,以便您更容易理解如何使用PI REST适配器实现您的场景。
从版本7.31 SP15 / 7.4 SP10开始,我们增强了REST适配器的功能,支持自定义错误处理。您可以维护规则来定义在特定(错误)情况下消息处理应该如何行为。例如,您可能希望忽略特定的错误代码,或者根据消息内容回复自定义消息等。在本博客中,我想向您展示在定义自定义错误处理时的各种选项。
从版本7.31 SP17 / 7.4 SP12 / 7.5 SP01开始,自定义错误处理进一步增强,可以处理无错误发生的情况。引入了以下新功能:
一种新的规则类型“始终”
一个用于反转规则表达式的标志
一种新的规则类型,用于检查消息是否为空
新的变量保存了HTTP属性,这些属性可以在自定义消息中使用。
场景1 - 接收端的自定义错误处理
我想介绍基于REST接收适配器所支持的各种自定义错误处理选项。我配置了一个从SOAP到REST的集成流,该集成流调用了之前博客中场景暴露的REST端点PI REST适配器 - 将功能模块作为RESTful服务暴露。使用该场景中REST发送端的自定义错误处理,我可以模拟各种错误情况。这样,我可以通过比较在Google Chrome浏览器中使用高级REST客户端应用程序或通过额外的SOAP到REST集成流调用RESTful服务时的不同表现,向您展示特定错误情况下的行为。
对于每一个选项,让我们仔细看看适配器类型为REST的接收通道是如何维护的。
自定义错误处理选项
双击类型为REST的接收通道,并切换到“适配器特定”标签下的“错误处理”标签。在这里,您可以定义在运行时验证的规则。对于每条规则,您需要定义一个条件和一个动作。条件通常由一个源和一个值组成,而动作可以是引发错误、忽略错误或用自定义消息回应。
根据HTTP错误情况获取不同的HTTP错误情况并用相应的自定义消息回应
我们希望根据HTTP传输层的特定错误情况返回自定义文本。我定义了两条规则如下:
如果服务调用响应的HTTP状态文本包含短语"Not Found",则用自定义文本 <error>not found</error>
回应。
如果HTTP状态