温馨提示:本文翻译自stackoverflow.com,查看原文请点击:其他 - SAP Cloud SDK for javascript using the destination
sap sap-cloud-foundry sap-cloud-sdk

其他 - SAP Cloud SDK for javascript使用目标

发布于 2020-05-26 17:23:17

我遵循了该教程并构建了基于CF的基本nodejs应用,以显示我的S4 Hana内部部署目标中的所有BusinessPartners。

function getAllBusinessPartners(): Promise<BusinessPartner[]> {
  return BusinessPartner.requestBuilder()
    .getAll()
    .execute({
      destinationName: 'MockServer'
    });
}

目标是使用来自云连接器的虚拟主机配置的。

但是在部署到Cloud Foundry之后,我收到GET请求的以下错误

{“ message”:“不支持目标类型的服务!在调用destinationForServiceBinding时,请考虑提供自己的转换函数,例如:\ n destinationServiceForBinding(yourServiceName,{serviceBindingToDestination:yourTransformationFunction});”,“ level”:“ warn”, “ custom_fields”:{“ package”:“ core”,“ messageContext”:“ destination-accessor”},“ logger”:“ sap-cloud-sdk-logger”,“ timestamp”:“ 2020-03-09T18:15 :41.856Z“,” msg“:”不支持目标类型的服务!在调用destinationForServiceBinding时考虑提供您自己的转换函数,例如:\ n destinationServiceForBinding(yourServiceName,{serviceBindingToDestination:yourTransformationFunction});“,“ write_ts”:1583777741856,“ write_at”:“ 2020-03-09T18:15:41.856Z”}

该应用程序也已经绑定到目标服务。

有人可以帮我吗,出了什么问题?还是在新版本的Cloud-SDK中使用目标的方法不同?

查看更多

提问者
Navin
被浏览
24
Navin 2020-03-13 00:25

经过大量的尝试,我已经做到了这一点。

我的观察:

  1. Connectivity 使用本地S4后端时,还需要绑定服务。

  2. 日志中没有错误,我对代码进行了某些修改以使用 async/await

async function getAllBusinessPartners(): Promise<BusinessPartner[]> {
  return await BusinessPartner.requestBuilder()
    .getAll()
    .execute({
      destinationName: 'MockServer'
    });
}

进行此修改后,当我遇到GET请求时,它给了我以下错误:

“无法获得业务合作伙伴-无法获得对http:// s4h-scc-basic:500 / sap / opu / odata / sap / API_BUSINESS_PARTNER / sap / opu / odata / sap / API_BUSINESS_PARTNER的请求!”

可以注意到suffix后的http://domain:port两倍。我给了目的地,另一个VDM自动添加。理想情况下,甚至应该在添加之前抛出此错误async/await

suffix从目标位置删除后,它开始工作。