PO 系列解决报错 Interface Determination

作者:ABAP技巧与实战 约 6 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:ABAP, Basis, Data Engineering, PP, 开发, 数据工程, 生产, 系统管理
目录

原创 无峰 [ ABAP 技巧与实战 ](javascript:void\(0\);)

前言

最近帮用户解决了一个奇怪的PO问题

同一个接口,配置WEBSERVICE 发出能通过, 配置成 REST 发出系统报错

InterfaceDetermination did not yield any actual interface

本文主要介绍追踪这个报错并解决的过程

问题描述

同一个接口, 配置成WEBSERVICE 调用测试成功,配置成REST调用测试报错

PO 系列解决报错 Interface Determination - 封面图
PO 系列解决报错 Interface Determination - 封面图

开启详细日志之前. SOAPUI直接返回500错误及报错信息. 消息无法在消息监控其中查看, 但是可以在通道监控器中看到报错信息

Error while sending message to module processor: Sender Channel

'CCO_PMS_QMIS_P10061' (ID: c54145a5d6ab37c88091ad6f693b557c): Catching

exception calling messaging system: InterfaceDetermination did not yield any

actual interface

PO 系列解决报错 Interface Determination - 封面图
PO 系列解决报错 Interface Determination - 封面图

开启详细日志后(图一), SOAPUI返回202成功信息(图二)

PO 系列解决报错 Interface Determination - 封面图
PO 系列解决报错 Interface Determination - 封面图

图一

PO 系列解决报错 Interface Determination - 封面图
PO 系列解决报错 Interface Determination - 封面图

图二

消息进入消息监控器,看到报错信息

PO 系列解决报错 Interface Determination - 封面图
PO 系列解决报错 Interface Determination - 封面图

图三

问题解决过程

解决PO问题的大致过程

• 重新激活相关对象: Integrated Configuration / message mapping 等

• 通过INSPECT跟踪报错,获取详细报错信息

• google/bing报错信息

• 根据报错信息查找NOTES

• 检查接口的所有配置对象,看看是否存在因为粗心而导致命名不规范的对象.

**上述过程排名不分先后**

_**01** _

**查找NOTES**

2628224 - Throwing com.sap.aii.adapter.xi.routing.RoutingException

InterfaceDetermination did not yield any actual interface

来自

https://launchpad.support.sap.com/#/notes/0002628224

notes的描述和报错信息很像,但并没有什么实际的用处.

PO 系列解决报错 Interface Determination - 封面图
PO 系列解决报错 Interface Determination - 封面图

_**02** _

**监控端口**

使用INSPECTOR的方式

> 详见链接 无峰,公众号:ABAP 技巧与实战 [ PO系列之 使用XPI_INSPECTOR跟踪PO报错

> ](https://mp.weixin.qq.com/s?__biz=Mzg4MjA1MjE4NQ==&mid=2247487118&idx=1&sn=63a3cb6daacac2bafa8485ca4e689dc5&chksm=cf5dd3b8f82a5aae1cad36b48bd5ac43ecee857ce54e2389237aef4300b8a6baad45433d96bb&token=738161928&lang=zh_CN#rd)

判断报错的信息是通道处理时报错,因此尝试通过INSPECTOR监控动态的处理

分析监视的报错信息, (无法获取接口对象),也看不出什么头绪.

PO 系列解决报错 Interface Determination - 封面图
PO 系列解决报错 Interface Determination - 封面图
PO 系列解决报错 Interface Determination - 封面图
PO 系列解决报错 Interface Determination - 封面图

_**03** _

**重建对象**

因为报错信息涉及到消息确认,所以初步怀疑是IC(Integrated Configuration)对象的问题.

删除IC,SOAP调用接口报错信息改变, 重新创建IC后, 恢复原来的报错信息.

_重建或重新激活对象的目的是更新缓存. 之前碰到过很多因为缓存更新不及时或缓存失效而导致的报错.因此需要尝试一下该方式_

PO 系列解决报错 Interface Determination - 封面图
PO 系列解决报错 Interface Determination - 封面图
PO 系列解决报错 Interface Determination - 封面图
PO 系列解决报错 Interface Determination - 封面图

_**04** _

**问题解决**

最后重新检查所有对象时发现

发出的SERVICE INTERFACE 中的MESSAGE TYPE 用错了.

导致REST中的 ELEMENT NAME 和 SI 中的消息MESSAGE TYEP 不一样.

REST通道通过地址

/RESTAdapter/MTO_PMS_QMIS_P10061

查找 ENDPOINT (图四)找到通道, 通过通道中的ELEMENT NAME(图五)找到消息, 通过消息找到SEND SERVICE

INTERFACE(SI).

Element name 中定义的消息名没有被SERVICE INTERFACE 使用, 导致系统报错

InterfaceDetermination did not yield any actual interface .

而WEBSERVICE中没有报错的原因很简单: SOAP的调用地址中指定了 SEND SI(图六) ,无需查找. (通过参数interface )指定了SI

对象

PO 系列解决报错 Interface Determination - 封面图
PO 系列解决报错 Interface Determination - 封面图

图四

PO 系列解决报错 Interface Determination - 封面图
PO 系列解决报错 Interface Determination - 封面图

图五

PO 系列解决报错 Interface Determination - 封面图
PO 系列解决报错 Interface Determination - 封面图

图六

总结

PO配置时会涉及到很多对象, 因此对象命名必须规范(最好每种对象的名称字符长度都能固定),不符合规范的命名对象可以很方便的被发现.

推荐使用WEBSERVICE方式定义接口, 因为相比REST接口, WEBSERVICE 定义的内容更少,减少了出错的概率.并且生成WSDL定义文件,

便于其它系统引入使用.

** THE **

** END **

**约定**

如果你对这篇文章感兴趣,请帮忙点赞,在看,分享.

( **如果你真的喜欢这篇文章,请记得回来打个赏,作为支持我继续下去的动力,这是一个正反馈过程.

越多的人打赏,作者越有动力分享,读者就能享受更多的福利.毕竟打赏的金额富不了我,穷不了你,却能支持这个公众号长久发文.** )

PO 系列解决报错 Interface Determination - 封面图
PO 系列解决报错 Interface Determination - 封面图

**公众号 : syjf1976_abap**

**ABAP开发技巧**

**微信号 : 392077**

请微信联系管理员

syjf1976

sharry_xlp

Yannick_Duan

申请进入公众号讨论群提问或者参与话题讨论

ABAP技巧与实战

关于作者:ABAP技巧与实战

企业信息化与 SAP 技术顾问,长期专注 SAP ABAP、FI/CO、MM、SD 等模块的技术分享与实战经验总结。查看更多介绍

来源说明:本文内容由「PO系列解决报错InterfaceDetermination.md」整理生成,仅用于内部技术分享与学习交流。