点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
Hello SAP Cloud SDK/SAP CAP专家
解决问题后
我正在继续我的旅程,以使用Cloud Connector和主体传播从SAP CP Cloud Foundry调用NodeJS中实现的CAP Service调用我的onPrem ABAP Developer Edition系统。
我已经在GitHub上更新了示例项目。 您可以在 README.md 中找到安装说明。
因此,在访问已部署的MTA的应用程序部分时,这里起作用了:
- 我可以通过/api/userInfo路径读取req.user的内容
- 我可以通过/api/jwt路径读取JWT
- 调用仅从HANA持久性返回数据的/catalog/Orders路径也可以
- 通过xs-app.json中定义的NPL目标调用后端确实适用于公共ping服务(/sap/public/ping)以及经过身份验证的ping(/sap/bc/ping)和 OData端点。 该请求通过云连接器调用后端,并且主体传播工作完成。
但是当我呼叫端点/catalog/Orders?$ expand = EPMBusinessPartner时,我看到以下错误返回给用户:
<?xml version =" 1.0" encoding =" UTF-8"?>500
内部服务器错误
在日志中,我看到:
无法为服务绑定建立目标:无法为给定名称" NPL"找到服务绑定! 找到以下绑定:epmbp消费者应用程序目的地服务,epmbp消费者应用程序uaa,epmbp消费者应用程序db hdi容器,epmbp消费者应用程序连接服务。
我什至添加了 Dennis Hempfing 建议的编码: S/4HANA Cloud SDK JavaScript代码以注入JWT 。 但这并没有改变行为。 而且我希望这不是必需的,将由CAP或SAP Cloud SDK处理。
所以请让我知道我在做什么错,以便找不到目标NPL。
最诚挚的问候
格雷戈尔
你好,格雷戈尔,
我在这里注意到很多事情:
1。 您在日志中看到的警告很可能与这种情况无关。 您并不是第一个对此感到困惑的人,我完全明白为什么,措辞令人困惑。 我已对信息进行了调整,以期将来避免此类混乱。
2。 此处返回的错误表明有多种情况:
a)由于服务器返回了该错误,因此我说fetchung和使用目的地似乎可行。 b)由于这是内部服务器错误,因此 您是否已检查服务器日志以获取更多信息?
c)附加到b),我猜测该请求的构造不正确,或者ABAP系统中实际上出了点问题。
3。 我查看了您的更新代码,对于您尝试执行的请求感到困惑(/catalog/Orders?$ expand = EPMBusinessPartner)。 服务定义( https://github.com/gregorwolf/epmbp-consumer-app/tree/master/srv/service-specifications ),以及存储库中生成的客户端代码a)不定义任何导航属性,b)描述" EPMBusinessPartner", 是您要在请求中扩展为的实体。 因此,无论如何,您尝试执行的请求都无法用给定的生成代码执行。 您可以将我链接到代码中执行请求的地方吗?
4。 关于解析和传递JWT:对于与SAP Cloud Platform的某些交互,例如,获取使用主体传播作为身份验证类型的目的地(无论是Cloud还是OnPremise),都需要知道JWT,因为这就是表示所述主体的内容。 SAP Cloud SDK在这里不会为您执行任何类型的集成,即您必须手动解析并传递它。 有一个更简单的函数来解析( retrieveJwt ,现在可用于Node的IncomingMessage抽象)。
我们遇到的问题是,一旦我们与某种为您提供服务的服务器库/框架进行某种形式的集成,我们就需要对您所使用的技术做出假设 使用。 这是某些用户可能无法接受的事情,并且到目前为止,优先级方面的重要性不如用户要求的其他事情重要。 因此,到目前为止,我们的座右铭是不做任何技术假设以支持与所有内容兼容(例如,您不需要任何类型的服务器库来执行OData请求,您只需在脚本中进行任何操作即可) 上)。
我希望这会有所帮助并提供一些背景信息! 就像我在3中所说的,如果您可以指出当前发生问题的地方,那么我很乐意再看一遍。
最好的问候,
丹尼斯
很高兴听到这种解决方法为您服务! 感谢您提出诉讼的提议,但我认为这不会有所作为。 我无法给您提供ETA,但我将检查是否有一种快速的方法可以让我们摆脱此变通办法。 我确实将它添加到了发行说明的已知问题中。
关于将其复制到Java的问题:我当然只能猜测,但是考虑到Java SDK比JS SDK更成熟并且可以在更长的时间内支持这些用例,所以我不希望 您会遇到有关使用OnPremise系统进行主体传播的任何问题。 但是,您面临的SSL错误是完全不同的野兽。 据我了解,您尚未解决问题,只是抑制了此问题。 根据实际的问题,用Java实现时可能需要做同样的事情。 Java目标上有一个类似的属性,它使您可以信任所有证书(出于完整性考虑,我强烈建议在生产中不要使用它!)
如果在那里确实遇到任何错误,最好在这里打开一个新的问题,这样它就不会在这里巨大的评论链中迷失了。
只是一目了然:也许使用 https ://www.npmjs.com/package/sap-cf-destination ?
谢谢Voker。 我在研究过程中已经看到了这一点。 但是,由于使用目的地已经可以进行本地开发,因此我希望它也可以在云中使用。 让我们看看我从SAP端得到了什么响应。
您好,Gregor,
您确定xs-app.json中的配置正确吗? 我有一个应用程序,使用具有以下配置的目标连接到本地abap系统:
是的,我确定
部分在我从approuter到达后端(包括具有主要传播的SSO)时起作用。
一周热门 更多>