如何在一个服务的另一个功能中使用一个服务的功能

2020-08-13 23:34发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨同事! 我在一项服务中定义并...

         点击此处--->   EasySAP.com群内免费提供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

5条回答
compass1988
2020-08-14 00:31

您好 Evgeniy Obraztsov

您需要在 cds.connect.to 方法中定义服务名称。

例如:

 module.exports =异步功能(){
   const srv = cds.connect.to('CardService')
   this.on('isValidUser',async req => {
     const user = srv.getUser(req.data.cardno)if(user.value)return true; elsereturn false;});}; 

一周热门 更多>