我遵循了该教程并构建了基于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中使用目标的方法不同?
经过大量的尝试,我已经做到了这一点。
我的观察:
Connectivity
使用本地S4后端时,还需要绑定服务。
日志中没有错误,我对代码进行了某些修改以使用 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
从目标位置删除后,它开始工作。