SAP Cloud SDK for javascript 使用目标
SAP Cloud SDK for javascript using the destination
我已经按照 Tutorial 构建了基于 CF 的基本 nodejs 应用程序,以显示来自我的 S/4HANA 内部部署目的地的所有 BusinessPartners。
function getAllBusinessPartners(): Promise<BusinessPartner[]> {
return BusinessPartner.requestBuilder()
.getAll()
.execute({
destinationName: 'MockServer'
});
}
目标配置了来自云连接器的虚拟主机。
但是在部署到 Cloud Foundry 之后,我收到以下 GET 请求错误
{"message":"Service of type destination is not supported! Consider providing your own transformation function when calling destinationForServiceBinding, like this:\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":"Service of type destination is not supported! Consider providing your own transformation function when calling destinationForServiceBinding, like this:\n destinationServiceForBinding(yourServiceName, { serviceBindingToDestination: yourTransformationFunction });","written_ts":1583777741856,"written_at":"2020-03-09T18:15:41.856Z"}
该应用程序也已绑定到目标服务。
有人可以帮我吗,哪里出了问题?还是新版本的Cloud-SDK使用destination的方法不同?
如果您的请求确实出错,那么您从日志中发布的内容很可能不是失败的原因。我们知道此消息令人困惑,并将对其进行改进 (https://github.com/SAP/cloud-sdk/pull/32)。
你能检查一下你的日志中是否有更多的错误吗?根据您发布的代码和您描述的设置,这应该可行。您是否绑定到 XSUAA 服务。
经过多次尝试,我成功了。
我的观察:
Connectivity
服务也需要绑定,当使用本地S4后端时。
日志中没有错误,我对代码进行了一定的修改以使用async/await
async function getAllBusinessPartners(): Promise<BusinessPartner[]> {
return await BusinessPartner.requestBuilder()
.getAll()
.execute({
destinationName: 'MockServer'
});
}
修改后,当我点击 GET 请求时,出现以下错误:
"Failed to get business partners - get request to http://s4h-scc-basic:500/sap/opu/odata/sap/API_BUSINESS_PARTNER/sap/opu/odata/sap/API_BUSINESS_PARTNER failed!"
可以注意到http://domain:port
之后的suffix
是两次。一个我在目的地给的,另一个VDM
自动添加。
理想情况下,甚至在添加 async/await
.
之前就应该抛出此错误
从目标中删除 suffix
后,它开始工作了。
我已经按照 Tutorial 构建了基于 CF 的基本 nodejs 应用程序,以显示来自我的 S/4HANA 内部部署目的地的所有 BusinessPartners。
function getAllBusinessPartners(): Promise<BusinessPartner[]> {
return BusinessPartner.requestBuilder()
.getAll()
.execute({
destinationName: 'MockServer'
});
}
目标配置了来自云连接器的虚拟主机。
但是在部署到 Cloud Foundry 之后,我收到以下 GET 请求错误
{"message":"Service of type destination is not supported! Consider providing your own transformation function when calling destinationForServiceBinding, like this:\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":"Service of type destination is not supported! Consider providing your own transformation function when calling destinationForServiceBinding, like this:\n destinationServiceForBinding(yourServiceName, { serviceBindingToDestination: yourTransformationFunction });","written_ts":1583777741856,"written_at":"2020-03-09T18:15:41.856Z"}
该应用程序也已绑定到目标服务。
有人可以帮我吗,哪里出了问题?还是新版本的Cloud-SDK使用destination的方法不同?
如果您的请求确实出错,那么您从日志中发布的内容很可能不是失败的原因。我们知道此消息令人困惑,并将对其进行改进 (https://github.com/SAP/cloud-sdk/pull/32)。 你能检查一下你的日志中是否有更多的错误吗?根据您发布的代码和您描述的设置,这应该可行。您是否绑定到 XSUAA 服务。
经过多次尝试,我成功了。
我的观察:
Connectivity
服务也需要绑定,当使用本地S4后端时。日志中没有错误,我对代码进行了一定的修改以使用
async/await
async function getAllBusinessPartners(): Promise<BusinessPartner[]> {
return await BusinessPartner.requestBuilder()
.getAll()
.execute({
destinationName: 'MockServer'
});
}
修改后,当我点击 GET 请求时,出现以下错误:
"Failed to get business partners - get request to http://s4h-scc-basic:500/sap/opu/odata/sap/API_BUSINESS_PARTNER/sap/opu/odata/sap/API_BUSINESS_PARTNER failed!"
可以注意到http://domain:port
之后的suffix
是两次。一个我在目的地给的,另一个VDM
自动添加。
理想情况下,甚至在添加 async/await
.
从目标中删除 suffix
后,它开始工作了。