点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨同事!
我在一项服务中定义并实现了一项功能:
文件卡服务.cds
服务CardService { 函数getUser(cardno:String)返回String; }
文件card-service.js
module.exports =异步功能(){ this.on('getUser',async req => { 返回等待getUserNTLM(req.data.cardno) }); };
我想在同一MTA应用程序中的另一个服务的函数中调用此函数。
文件order-service.cds
service OrderService { 函数isValidUser(cardno:String)返回布尔值; }
文件order-service.js
module.exports =异步功能(){ const srv = cds.connect.to('card-service') this.on('isValidUser',async req => { const user = srv.getUser(req.data.cardno) 如果(user.value)返回true; 否则返回假; }); };
使用当前代码,当我尝试通过浏览器执行isValidUser函数时:
https://blablabla.eu10。 hana.ondemand.com/order/isValidUser(cardno='kjsdg87fg ')
我在Cloud Foundry的应用程序的日志中收到以下错误消息:[内部错误] TypeError:srv.getUser不是函数。
我怀疑我应该以某种方式在OrderService的Service定义中声明该函数,但是在CAP文档中没有与此主题相关的内容。 您能给我个提示怎么做吗?
亲切的问候,
Evgeniy
Evgeniy,
请您检查一下您是否真正获得了服务
const srv = cds.connect.to ("卡片服务") >
? 您可以通过console.log(srv)执行此操作。 也许应该
const srv = cds.connect.to ('CardService')
(取决于您的名称空间,也取决于名称空间)
由于CardService定义了" getUser",因此应该可以。
最诚挚的问候,
大卫
嗨,大卫!
非常感谢您的快速解答,并帮助您理解该问题。
它仅适用于内部服务,不适用于外部服务。
亲切的问候,
Evgeniy
顺便说一句:您应该始终使用cds.connect进行等待:
David Kunz 请将您的评论升级为答案,以便将其标记为 有效的答案。
您好 Evgeniy Obraztsov ,
您需要在 cds.connect.to 方法中定义服务名称。
例如:
一周热门 更多>