在我的多租户CAP应用程序中找不到目标

2020-08-19 20:40发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好 在我的多租户CAP应用程...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好

在我的多租户CAP应用程序中,从客户子帐户通过Cloud SDK访问S/4HANA Cloud时出现错误。 从我的提供程序访问时,它工作正常。 我的情况如下:

也许自己的s/4hana云系统与提供商子帐户可能有点怪异,但这只是出于测试目的。

访问https://提供者- myapp-aa.cfapps.eu10.hana.ondemand.com/mobile/getData(cardTemplate =''),成功访问了自己的s4hc并检索了数据,但从 消费者,https://消费者- myapp-aa.cfapps.eu10.hana.ondemand.com/mobile/getData(cardTemplate =''),在提供程序应用中出现以下错误:

 2020-04-15T09:46:27.639 + 0000 [APP/PROC/WEB/0] OUT错误,调用api错误:找不到名称为" s4n103C1"的目的地! 无法执行请求。
 2020-04-15T09:46:27.639 + 0000 [APP/PROC/WEB/0]在Object.errorWithCause(/home/vcap/app/node_modules/@ sap/cloud-sdk-core/node_modules/@ sap/cloud  -sdk-util/dist/error.js:14:20)
 2020-04-15T09:46:27.639 + 0000 [APP/PROC/WEB/0]在/home/vcap/app/node_modules/@ sap/cloud-sdk-core/dist/request-builder/request-builder-  base.js:125:78
 2020-04-15T09:46:27.639 + 0000 [APP/PROC/WEB/0]在process._tickCallback处退出(内部/进程/next_tick.js:68:7)
 2020-04-15T09:46:27.639 + 0000 [APP/PROC/WEB/0] OUT原因:
 2020-04-15T09:46:27.639 + 0000 [APP/PROC/WEB/0] OUT错误:FetchTokenError:客户端凭据授予失败! 请求失败,状态码为401
 2020-04-15T09:46:27.639 + 0000 [APP/PROC/WEB/0]在Object.errorWithCause(/home/vcap/app/node_modules/@ sap/cloud-sdk-core/node_modules/@ sap/cloud  -sdk-util/dist/error.js:14:20)
 2020-04-15T09:46:27.639 + 0000 [APP/PROC/WEB/0]在accessTokenError(/home/vcap/app/node_modules/@ sap/cloud-sdk-core/dist/scp-cf/xsuaa-  service.js:166:29)
 2020-04-15T09:46:27.639 + 0000 [APP/PROC/WEB/0]在/home/vcap/app/node_modules/@ sap/cloud-sdk-core/dist/scp-cf/xsuaa-service处输出。  js:43:57
 2020-04-15T09:46:27.639 + 0000 [APP/PROC/WEB/0]在process._tickCallback处退出(内部/进程/next_tick.js:68:7)
 2020-04-15T09:46:27.639 + 0000 [APP/PROC/WEB/0] OUT原因:
 2020-04-15T09:46:27.639 + 0000 [APP/PROC/WEB/0] OUT错误:请求失败,状态码为401
 2020-04-15T09:46:27.639 + 0000 [APP/PROC/WEB/0]在createError处退出(/home/vcap/app/node_modules/axios/lib/core/createError.js:16:15)
 2020-04-15T09:46:27.639 + 0000 [APP/PROC/WEB/0]在解决时退出(/home/vcap/app/node_modules/axios/lib/core/settle.js:17:12)
 2020-04-15T09:46:27.639 + 0000 [APP/PROC/WEB/0]在IncomingMessage.handleStreamEnd(/home/vcap/app/node_modules/axios/lib/adapters/http.js:237:11)处退出
 2020-04-15T09:46:27.639 + 0000 [APP/PROC/WEB/0]在IncomingMessage.emit处退出(events.js:203:15)
 2020-04-15T09:46:27.639 + 0000 [APP/PROC/WEB/0]在endReadableNT处输出(_stream_visible.js:1145:12)
 2020-04-15T09:46:27.639 + 0000 [APP/PROC/WEB/0]在process._tickCallback退出(内部/进程/next_tick.js:63:19)
 

目标s4n103C1是在提供商子帐户中创建的,并且我确保已正确填写字段。 我尝试在消费者子帐户中创建目标,但遇到了同样的错误。

让我在这里说一下,从消费者子帐户访问其他CAP服务(即https://消费者- myapp-aa.cfapps.eu10.hana.ondemand.com/mobile/books )工作正常,访问后端时发生错误 通过Cloud SDK访问目的地。

引发错误的源代码是:

 var cloud_sdk_core_1 = require(" @ sap/cloud-sdk-core");
     const {serializeEntity} = require(" @ sap/cloud-sdk-core");
    
    //构建选择字段数组
     ....
     
     var jwt = resolveJwt(req ._。req)

    //调用api
     const salesOrder =等待SalesOrder
       .requestBuilder()
       。得到所有()
       .select(... selectFields)
       .filter(过滤器)
       .top(顶部)
       .execute({destinationName:destination,jwt:jwt})
       .then(结果=> result.map(so => serializeEntity(so,SalesOrder)))
       .catch(原因=> {
           console.log(``调用api时出错,原因)
       })
 

这是我的mta.yaml文件:

 _schema版本:2.0.0
 ID:myapp
 版本:1.0.0
 模块:
   -名称:myapp-db
     类型:hdb
     路径:db
     参数:
       记忆体:256M
       磁盘配额:256M
     要求:
       -名称:myapp-db-hdi-container
   -名称:myapp-srv
     类型:nodejs
     路径:srv
     参数:
       内存:512M
       磁盘配额:512M
     提供:
       -名称:srv_api
         特性:
           网址:$ {default-url}
     要求:
       -名称:myapp-db-hdi-container
       -名称:myapp-uaa
       -名称:myapp_destination
       -名称:myapp_connectivity
     特性:
       SAP_JWT_TRUST_ACL:
        -客户编号:" *"
          identityzone:" *"
       调试:"假"
   -名称:myapp-ui
     类型:nodejs
     路径:应用
     参数:
       记忆体:256M
       磁盘配额:256M
     要求:
       -名称:myapp-uaa
       -名称:srv_api
         组:目的地
         特性:
           forwardAuthToken:true
           strictSSL:true
           名称:srv_api
           网址:〜{url}
     特性:
       SAP_JWT_TRUST_ACL:
        -客户编号:" *"
          identityzone:" *"
       TENANT_HOST_PATTERN:" ^(。*)-myapp-ui.cfapps.eu10.hana.ondemand.com"
 资源:
   -名称:myapp-db-hdi-container
     类型:com.sap.xs.hdi-container
     特性:
       hdi-container-name:$ {服务名称}
   -名称:myapp-uaa
     类型:org.cloudfoundry.managed-service
     参数:
       服务计划:应用
       服务:xsuaa
       路径:./xs-security.json
       共享:真实
       配置:
         xsappname:myapp-$ {space}
   -名称:myapp_destination
     类型:org.cloudfoundry.managed-service
     参数:
       服务计划:精简版
       服务:目的地
   -名称:myapp_connectivity
     类型:org.cloudfoundry.managed-service
     参数:
       服务计划:精简版
       服务:连通性
 

有关此问题的任何线索吗?

谢谢。

最诚挚的问候,

马克

(118.8 kB)